Proxmox/static/js/main.35283654.js.map
2023-01-15 16:15:24 -05:00

1 line
3.1 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"static/js/main.35283654.js","mappings":"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AG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,IAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,MAAM,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,KAAK,KAAK,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,EAAE,KAAK,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,KAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,IAAI,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,IAAI,MAAM,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,KAAK,KAAK,GAAG,EAAE,KAAK,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,EAAE,KAAK,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,GAAG,MAAM,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,MAAM,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,GAAG,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,MAAM,MAAM,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,GAAG,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,KAAK,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,MAAM,MAAM,IAAI,IAAI,IA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F,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,KAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,KAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,KAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,KAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,KAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,MAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB,SAASrsF,EAAQ,OAC3BqtF,EAAUhB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YAET,mBAAoB,CAElB75E,QAAS,iCACTy6E,YAAY,EACZZ,MAAO,WAET,uBAAwB,CACtB75E,QAAS,KACTy6E,YAAY,EACZZ,MAAO,YA0BT,4BAA6B,CAC3B75E,QACE,0MACFy6E,YAAY,EACZZ,MAAO,WAET,eAAgB,CACd75E,QAAS,6DACTy6E,YAAY,EACZO,QAAQ,EACRnB,MAAO,YAET,wBAAyB,CACvB75E,QAAS,uBACTy6E,YAAY,EACZZ,MAAO,YAGT,gCAAiC,CAC/B,CAEE75E,QAAS,wBACTy6E,YAAY,EACZZ,MAAO,YAET,CAEE75E,QAAS,iBACTy6E,YAAY,EACZZ,MAAO,aAIX,sBAAuB,CACrB,CAEE75E,QAAS,iBACTy6E,YAAY,EACZZ,MAAO,YAET,CAEE75E,QAAS,iBACTy6E,YAAY,EACZZ,MAAO,aAGX,cAAe,CACb75E,QAAS,0BACTy6E,YAAY,GAiBd1vE,OAAQ,CACN/K,QAAS,qBACTg7E,QAAQ,EACRC,OAAQ8O,IAGRhT,EAAS,SAAUruE,GACrB,OAAQA,EAAM,IAAI9X,QAAQ,4BAA6B,OACzD,EACIs5F,EAAmB,SAAUlgG,GAC/B,OAAO,IAAIoxF,OAAO,aAAepxF,EAAImtF,IAAIJ,GAAQpoF,KAAK,KAAO,aAC/D,EACIw7F,EAAW,CACb,iBAAkB,CAChB,KACA,QACA,QACA,OACA,UACA,MACA,WACA,kBACA,MACA,OACA,YACA,aACA,OACA,WACA,OACA,OACA,QACA,WACA,OACA,QACA,OACA,MACA,IACA,IACA,QACA,QACA,QACA,OACA,kBACA,MACA,SACA,MACA,QACA,OACA,QACA,SACA,OACA,UACA,UACA,OACA,UACA,MACA,gBACA,WACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,QACA,UACA,YACA,OACA,QACA,OACA,SACA,gBACA,SACA,QACA,YACA,WACA,oBACA,kBACA,OACA,YACA,MACA,QACA,MACA,QACA,MACA,iBACA,WAEF,uBAAwB,CAEtB,UACA,YACA,YACA,KACA,SACA,MACA,IACA,WACA,KACA,SACA,QACA,SACA,YACA,aACA,WACA,SACA,UACA,gBACA,oBACA,YACA,UACA,mBACA,KACA,WACA,IACA,KACA,MAEF,oBAAqB,CACnB,aACA,WACA,SACA,mBACA,SACA,aACA,aACA,YACA,mBACA,kBACA,WACA,aACA,OACA,WACA,UACA,aACA,YACA,WACA,OACA,OACA,MACA,WACA,UACA,SACA,UACA,aACA,aACA,SACA,QACA,UACA,oBACA,aACA,cACA,OACA,SACA,gBACA,oBACA,gCACA,iCACA,YACA,UACA,WACA,SACA,aACA,aACA,UACA,SACA,OACA,eACA,eACA,QACA,OACA,SACA,YACA,UACA,QACA,WACA,cACA,WACA,QACA,YACA,aACA,aACA,qBACA,SACA,SACA,WACA,eACA,UACA,aACA,OACA,UACA,QACA,SACA,SACA,OACA,aACA,WACA,YACA,MACA,aACA,UACA,aACA,SACA,cACA,YACA,OACA,YACA,SACA,YACA,iBACA,UACA,eACA,UACA,gBACA,eACA,YACA,mBACA,UACA,SACA,WACA,OACA,aACA,oBACA,YACA,UACA,UACA,YACA,WACA,WACA,aACA,OACA,cACA,iBACA,QACA,UACA,YACA,gBACA,cACA,oBACA,MACA,UACA,OACA,SACA,OACA,sBACA,aACA,aACA,mBACA,UACA,cACA,SACA,aACA,WACA,kBACA,OACA,OACA,QACA,QACA,QACA,YACA,SACA,eACA,eACA,WACA,WACA,MACA,aACA,YACA,WACA,QACA,oBACA,eACA,OACA,cACA,QACA,UACA,UACA,OACA,cACA,SACA,OACA,gBACA,YACA,eAEF,eAAgB,CACd,UACA,kBACA,MACA,cACA,iBACA,aACA,UACA,eACA,UACA,WACA,cACA,MACA,IACA,IACA,cACA,IACA,MACA,IACA,KACA,SACA,cACA,wBACA,OACA,IACA,OACA,IACA,WACA,SACA,cACA,KACA,QACA,aACA,SACA,QACA,SACA,QACA,QACA,QACA,UACA,SACA,UACA,WACA,KACA,iBACA,KACA,MACA,UACA,aACA,KACA,KACA,MACA,QACA,WACA,SACA,KACA,UACA,UACA,MACA,SACA,KACA,SACA,QACA,OACA,WACA,aACA,UACA,WACA,OACA,YACA,cACA,QACA,MACA,iBACA,YACA,yBACA,aACA,QACA,aACA,QACA,UACA,MACA,SACA,wBACA,MACA,OACA,KACA,OACA,WACA,QACA,YACA,cAGJ5gG,OAAO8kC,KAAK87D,GAAU57D,SAAQ,SAAUslB,GACtCg2C,EAAOh2C,GAAG7zC,QAAUkqF,EAAiBC,EAASt2C,GAChD,IAyNAg2C,EAAOI,YAAYjqF,QAAUkqF,EAxNX,CAEhB,MACA,QACA,OACA,MACA,OACA,QACA,QACA,OACA,QACA,UACA,MACA,MACA,OACA,QACA,QACA,UACA,SACA,OACA,OACA,QACA,QACA,MACA,SACA,KACA,UACA,YACA,MACA,OACA,YACA,QACA,OACA,QACA,OACA,QACA,UACA,KACA,QACA,OACA,SACA,aACA,aACA,WACA,QACA,UACA,OACA,KACA,OACA,SACA,QACA,OACA,SACA,MACA,OACA,SACA,MACA,WACA,YACA,iBACA,kBACA,SACA,YACA,QACA,YACA,YACA,WACA,cACA,UACA,YACA,gBACA,mBACA,SACA,MACA,UACA,cACA,aACA,SACA,cACA,OACA,eACA,YACA,UACA,eACA,eACA,aACA,kBACA,QACA,aACA,SACA,eACA,YACA,eACA,WACA,SACA,WACA,aACA,OACA,YACA,gBACA,eACA,OACA,UACA,UACA,YACA,gBACA,iBACA,kBACA,gBACA,UACA,OACA,YACA,cACA,UACA,cACA,aACA,OACA,aACA,iBACA,aACA,OACA,eACA,cACA,WACA,gBACA,YACA,UACA,QACA,aACA,QACA,OACA,aACA,UACA,aACA,aACA,QACA,OACA,YACA,iBACA,YACA,UACA,eACA,cACA,iBACA,YACA,oBACA,kBACA,QACA,iBACA,eACA,gBACA,kBACA,cACA,gBACA,gBACA,kBACA,cACA,OACA,UACA,YACA,YACA,UACA,eACA,iBACA,aACA,OACA,SACA,cA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CZZ,MAAO,YAET,CAGE75E,QACE,qGACFy6E,YAAY,EACZZ,MAAO,YAET,CAEE75E,QACE,mEACFy6E,YAAY,EACZZ,MAAO,YAET,CAEE75E,QACE,uFACFy6E,YAAY,EACZZ,MAAO,aAGXrgF,MAAO,CACLwG,QAAS,0CACTy6E,YAAY,EACZO,QAAQ,EACRnB,MAAO,YAET50E,KAAM,CACJjF,QAAS,gEACT65E,MAAO,UAET9uE,OAAQ,CACN/K,QAAS,cACTg7E,QAAQ,GAEVa,WAAY,CACV77E,QACE,gGACF65E,MAAO,aAETa,QAAS,CAEP,CACE16E,QACE,yOACFy6E,YAAY,EACZO,QAAQ,GAEV,CACEh7E,QACE,2KACFy6E,YAAY,EACZO,QAAQ,IAGZnvE,OAAQ,cACR8uE,SAAU,CACR36E,QAAS,gCACTy6E,YAAY,GAEdG,YAAa,UAEjB,CApHAzvF,EAAOC,QAAUswG,EACjBA,EAAQ9rG,YAAc,UACtB8rG,EAAQ7gB,QAAU,kCCClB,SAAS8gB,EAAM9iB,GACbA,EAAMY,UAAUkiB,MAAQ,CACtB1xF,QAAS,OACTywE,QACE,s0BACFqF,UAAW,CACT//E,QAAS,cACT65E,MAAO,YAET2B,SAAU,aACVpsF,OAAQ,gBACRurF,SAAU,mBACVC,YAAa,wBAEjB,CAjBAzvF,EAAOC,QAAUuwG,EACjBA,EAAM/rG,YAAc,QACpB+rG,EAAM9gB,QAAU,kCCChB,SAAS+gB,EAAQ/iB,IACd,SAAWA,GACV,IAAIgjB,EAAY,CAEd,MACA,MACA,OACA,MACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,MACA,UACA,QACA,QACA,cACA,OACA,SACA,QACA,SACA,iBACA,aACA,QACA,cACA,OACA,aACA,QACA,gBACA,cACA,gBACA,cACA,WACA,aACA,QACA,SACA,eACA,OACA,OACA,OACA,OACA,UACA,OACA,eACA,SACA,YACA,OACA,QACA,QACA,WACA,QACA,YACA,SACA,QACA,OACA,aACA,UACA,cACA,aACA,SACA,aACA,SACA,WACA,eACA,SACA,cACA,SACA,qBACA,gBACA,UACA,SACA,SACA,OACA,kBACA,WACA,UACA,eACA,eACA,UACA,OACA,QACA,QACA,eACA,aACA,SACA,UACA,mBACA,OACA,eACA,QACA,SACA,OACA,YACA,mBACA,OACA,kBACA,eACA,iBACA,QACA,SACA,QACA,SACA,SACA,OACA,cACA,YACA,QACA,OACA,UACA,gBACA,QACA,WACA,OACA,iBACA,eACA,kBACA,gBACA,cACA,aACA,aACA,oBACA,UACA,MACA,OACA,UACA,SACA,SACA,YACA,MACA,OACA,QACA,UACA,MACA,gBACA,gBACA,aACA,WACA,YACA,gBACA,WACA,eACA,QACA,QACA,OACA,WACA,MACA,OACA,SACA,MACA,OACA,SACA,OACA,OACA,gBACA,QACA,OACA,eACA,UACA,OACA,SACA,YACA,MACA,OACA,iBACA,MACA,OACA,QACA,oBACA,SACA,UACA,aACA,gBACA,cACA,cACA,cACA,gBACA,SACA,SACA,UACA,iBACA,aACA,mBACA,eACA,YACA,QACA,OACA,SACA,SACA,QACA,aACA,cACA,cACA,eACA,YACA,UACA,eACA,YACA,YACA,OACA,UACA,OACA,UACA,UACA,aACA,YACA,SACA,UACA,cACA,YACA,WACA,WACA,QACA,SACA,QACA,QACA,QACA,OACA,SACA,WACA,YACA,gBACA,aACA,YACA,QACA,cACA,YACA,cACA,WACA,WACA,QACA,OACA,aACA,OACA,WACA,SACA,aACA,eACA,YAmBEC,EAAkB,OAHtBD,EAAYA,EAAU1kB,KAAI,SAAUwD,GAClC,OAAOA,EAAS/pF,QAAQ,IAAK,MAC/B,KACwCjC,KAAK,KAAO,OACpDkqF,EAAMY,UAAUmiB,QAAU/iB,EAAMY,UAAUpuF,OAAO,aAAc,CAAC,GAChEwtF,EAAMY,UAAUx+C,aAAa,UAAW,SAAU,CAChDntC,SAAU,CACRkS,QACE,oHACFg7E,QAAQ,EACRC,OAAQ,CACNP,QAASU,OAAO,YAAc0gB,EAAkB,iBAItDjjB,EAAMY,UAAUmiB,QAAQ7wF,OAAOkwE,OAAS,CACtC9uB,IAAK,CAEHnsD,QACE,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,gBAEjB,CAhDAzvF,EAAOC,QAAU4xG,EACjBA,EAAKptG,YAAc,OACnBotG,EAAKniB,QAAU,kCCCf,SAASqiB,EAAMrkB,GACbA,EAAMY,UAAUyjB,MAAQ,CACtBjzF,QAAS,oCACTc,OAAQ,CACN/K,QAAS,mDACTg7E,QAAQ,EACRC,OAAQ,CACN,eAAgB,gBAGpB/iE,UAAW,CACTlY,QAAS,0CACTy6E,YAAY,GAEdz6E,QAAS,CACPA,QACE,qHACFy6E,YAAY,EACZQ,OAAQ,CACN,eAAgB,CACdj7E,QAAS,qBACT65E,MAAO,cAETsjB,OAAQ,CACNn9F,QAAS,SACTi7E,OAAQ,CACN,aAAc,CACZj7E,QAAS,kBACT65E,MAAO,YAETe,YAAa,QACbD,SAAU,CACR36E,QAAS,IACT65E,MAAO,yBAMjBxtF,OAAQ,CACN2T,QAAS,iDACT65E,MAAO,WACPY,YAAY,GAEdC,QACE,sEACF,mBAAoB,CAClB16E,QACE,kIACFi7E,OAAQ,CACN,wBAAyB,CACvBj7E,QAAS,mBACT65E,MAAO,WAETujB,WAAY,CACVp9F,QAAS,mCACT65E,MAAO,UAET,wBAAyB,CACvB75E,QAAS,kBACT65E,MAAO,WAETe,YAAa,UAGjBwiB,WAAY,CACVp9F,QAAS,mCACT65E,MAAO,UAETc,SAAU,CACR,CACE36E,QAAS,IACT65E,MAAO,eAET,CACE75E,QAAS,IACT65E,MAAO,eAET,CACE75E,QAAS,IACT65E,MAAO,aAET,CACE75E,QAAS,KACT65E,MAAO,eAET,CACE75E,QAAS,QACT65E,MAAO,cAET,CACE75E,QAAS,OACT65E,MAAO,aAET,CACE75E,QAAS,OACT65E,MAAO,YAET,CACE75E,QAAS,UACT65E,MAAO,SAGX,gBAAiB,CACf,CACE75E,QACE,2HACFy6E,YAAY,EACZQ,OAAQ,CACN,aAAc,CACZj7E,QAAS,kBACT65E,MAAO,YAETwjB,MAAO,MAGX,CACEr9F,QAAS,sBACTi7E,OAAQ,CACN,aAAc,CACZj7E,QAAS,kBACT65E,MAAO,YAETwjB,MAAO,OAIbziB,YAAa,UACbhwF,KAAM,kBAEV,CArIAO,EAAOC,QAAU8xG,EACjBA,EAAMttG,YAAc,QACpBstG,EAAMriB,QAAU,kCCChB,SAASyiB,EAAMzkB,IACZ,SAAWA,GACV,IAAI2C,EACF,gEACF3C,EAAMY,UAAU6jB,MAAQ,CACtBrzF,QAAS,CACPjK,QAAS,iBACTy6E,YAAY,EACZO,QAAQ,GAEVqD,UAAW,CACTr+E,QACE,0GACFy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNlwE,OAAQ,CACN/K,QACE,gEACFy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNlE,OAAQ,CACN/2E,QAAS,cACT65E,MAAO,UAET2B,SAAUA,IAGdvxE,QAAS,CACPjK,QAAS,UACTy6E,YAAY,EACZO,QAAQ,GAEVN,QAAS,CACP16E,QAAS,OACTg7E,QAAQ,GAGVxrF,QAAS,CACPwQ,QAAS,uBACTy6E,YAAY,GAEdrrF,OAAQ,CACN4Q,QAAS,uBACTy6E,YAAY,GAEde,SAAUA,IAGdZ,YAAa,QAEhB,CAnDA,CAmDE/B,EACL,CAxDA1tF,EAAOC,QAAUkyG,EACjBA,EAAM1tG,YAAc,QACpB0tG,EAAMziB,QAAU,iCCChB,SAAS0iB,EAAI1kB,GACXA,EAAMY,UAAU8jB,IAAM,CACpBtzF,QAAS,CACPjK,QAAS,MACTg7E,QAAQ,GAEVjwE,OAAQ,CAEN/K,QACE,iGACFg7E,QAAQ,GAEVl4E,KAAM,CAEJ9C,QAAS,0CACTg7E,QAAQ,GAEVU,SAAU,CACR17E,QACE,oFACFg7E,QAAQ,EACRC,OAAQ,CACNN,SAAU,QAIdoC,WAAY,CACV/8E,QAAS,cACTg7E,QAAQ,EACRC,OAAQ,CACNL,YAAa,MAIjBxrF,OACE,iGACFsrF,QACE,8VACFC,SAAU,CAIR36E,QACE,kJACFy6E,YAAY,GAEdG,YAAa,kCAEjB,CAnDAzvF,EAAOC,QAAUmyG,EACjBA,EAAI3tG,YAAc,MAClB2tG,EAAI1iB,QAAU,kCCCd,SAAS2iB,EAAI3kB,GACXA,EAAMY,UAAU+jB,IAAM,CACpBvzF,QAAS,CACPjK,QAAS,uBACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,+DACTg7E,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CAEbngF,QAAS,mDACTy6E,YAAY,EACZQ,OAAQ,QAId9uB,IAAK,CACH,0CACA,CACEnsD,QACE,oFACFy6E,YAAY,IAGhBgjB,cAAe,CACbz9F,QAAS,WACT65E,MAAO,aAETzqF,OAAQ,UACRsrF,QAAS,mEACTgB,SACE,mgBACFlsF,QAAS,qBACTmrF,SAAU,uCACVC,YAAa,iBAEf/B,EAAMY,UAAU+jB,IAAIzyF,OAAOkwE,OAAOkF,cAAclF,OAASpC,EAAMY,UAAU+jB,GAC3E,CA1CAryG,EAAOC,QAAUoyG,EACjBA,EAAI5tG,YAAc,MAClB4tG,EAAI3iB,QAAU,kCCCd,SAAS6iB,EAAK7kB,GAMZA,EAAMY,UAAUikB,KAAO,CACrBzzF,QAAS,CACPjK,QAAS,uCACTy6E,YAAY,EACZO,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,kCACTg7E,QAAQ,GAEVN,QAAS,CACP16E,QACE,kqEACFy6E,YAAY,GAEd3sF,SACE,8tBACFguF,SAAU,wCACVN,SAAU,cACVpsF,OAAQ,8DACRurF,SAAU,8CACVC,YAAa,gBACbgE,UAAW,CACT5+E,QACE,iTACFy6E,YAAY,GAGlB,CArCAtvF,EAAOC,QAAUsyG,EACjBA,EAAK9tG,YAAc,OACnB8tG,EAAK7iB,QAAU,sCCHf,IAAI4F,EAAavzF,EAAQ,KAIzB,SAASywG,EAAW9kB,GAClBA,EAAMU,SAASkH,GACf5H,EAAMY,UAAUkkB,WAAa9kB,EAAMY,UAAUpuF,OAAO,IAAK,CACvD0f,OAAQ,CACN/K,QAAS,wCACTg7E,QAAQ,GAEVN,QACE,wYACFC,SAAU,iEAEL9B,EAAMY,UAAUkkB,WAAW,cAClC9kB,EAAMY,UAAUmkB,KAAO/kB,EAAMY,UAAUkkB,UACzC,CAhBAxyG,EAAOC,QAAUuyG,EACjBA,EAAW/tG,YAAc,aACzB+tG,EAAW9iB,QAAU,CAAC,uCCCtB,SAASgjB,EAAMhlB,GAEbA,EAAMY,UAAUokB,MAAQ,CACtB5zF,QAAS,CACPjK,QAAS,mBACTg7E,QAAQ,GAEVl4E,KAAM,CACJ9C,QAAS,+CACTg7E,QAAQ,GAEVjwE,OAAQ,CACN,CACE/K,QAAS,sCACTg7E,QAAQ,GAEV,CACEh7E,QAAS,8BACTg7E,QAAQ,IAGZ5rF,OAAQ,CAEN,uCACA,oEACA,qDAEFivF,UAAW,CACTr+E,QAAS,SACT65E,MAAO,YAETrgF,MAAO,CACLwG,QAAS,SACT65E,MAAO,YAET,gBAAiB,CACf75E,QAAS,SACT65E,MAAO,YAETikB,QAAS,CACP99F,QAAS,OACT65E,MAAO,UAITa,QACE,gSACFlrF,QAAS,qBACT,4BAA6B,CAC3BwQ,QAAS,yBACT65E,MAAO,eAGTc,SACE,wGACFC,YAAa,8BAEjB,CA5DAzvF,EAAOC,QAAUyyG,EACjBA,EAAMjuG,YAAc,QACpBiuG,EAAMhjB,QAAU,sCCHhB,IAAI4F,EAAavzF,EAAQ,KAIzB,SAAS6wG,EAAOllB,GACdA,EAAMU,SAASkH,GACd,SAAW5H,GAEVA,EAAMY,UAAUskB,OAASllB,EAAMY,UAAUpuF,OAAO,IAAK,CAEnDqvF,QACE,ggBAIFtrF,OACE,qHACFI,QAAS,qBACT,yBAA0B,CACxBwQ,QACE,ukBACF65E,MAAO,cAGXhB,EAAMY,UAAUx+C,aAAa,SAAU,aAAc,CAGnD,eAAgB,CACdj7B,QACE,gVACF65E,MAAO,aAGX,IAAI3kF,EAAa,CAEf,mBAAoB,CAClB8K,QACE,whBACF65E,MAAO,WAET,sBAAuB,CACrB75E,QAAS,wBACT65E,MAAO,WAGT,uBAAwB,CACtB75E,QACE,07KACF65E,MAAO,YAGT,uBAAwB,CACtB75E,QACE,4rCACF65E,MAAO,aAIXhB,EAAMY,UAAUx+C,aAAa,IAAK,UAAW/lC,GACzC2jF,EAAMY,UAAUgI,MAElBvsF,EAAW,wBAA0B,CACnC8K,QACE,+ZACF65E,MAAO,WAEThB,EAAMY,UAAUx+C,aAAa,MAAO,UAAW/lC,GAElD,CA9DA,CA8DE2jF,EACL,CApEA1tF,EAAOC,QAAU2yG,EACjBA,EAAOnuG,YAAc,SACrBmuG,EAAOljB,QAAU,kCCCjB,SAASmjB,EAASnlB,GAEhBA,EAAMY,UAAUukB,SAAW,CACzB/zF,QAAS,0BACTc,OAAQ,CACN/K,QAAS,8BACTg7E,QAAQ,GAEVN,QACE,+NACF,aACE,6EACFgB,SAAU,8DACVI,SAAU,kDACV1sF,OAAQ,CACN4Q,QACE,4EACFy6E,YAAY,GAEdE,SAAU,oDACVC,YAAa,kBAEf/B,EAAMY,UAAUwkB,KAAOplB,EAAMY,UAAUukB,QACzC,CA1BA7yG,EAAOC,QAAU4yG,EACjBA,EAASpuG,YAAc,WACvBouG,EAASnjB,QAAU,CAAC,uCCCpB,SAASqjB,EAAGrlB,GACVA,EAAMY,UAAUykB,GAAK,CACnBj0F,QAAS,CACPjK,QAAS,uBACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,yBACTg7E,QAAQ,GAEV+N,KAAM,CACJ/oF,QAAS,yBACTg7E,QAAQ,EACRnB,MAAO,WAETa,QACE,gQACFgB,SAAU,CACR,2BACA,CACE17E,QAAS,yBACTy6E,YAAY,IAGhBrrF,OACE,2EACFosF,SAAU,oBACV,YAAa,2BACbb,SACE,+FACFC,YAAa,iBAEjB,CAnCAzvF,EAAOC,QAAU8yG,EACjBA,EAAGtuG,YAAc,KACjBsuG,EAAGrjB,QAAU,kCCCb,SAASsjB,EAAOtlB,GACdA,EAAMY,UAAU0kB,OAAS,CACvBl0F,QAAS,0BACTc,OAAQ,CACN/K,QAAS,wBACTg7E,QAAQ,GAKVN,QAAU,WACR,IAAI0B,EAAW,CACb,aACA,QACA,WACA,UACA,SACA,QACA,eACA,SACA,SACA,UACA,WACA,UACA,cACA,SACA,MACA,QACA,KACA,QACA,KACA,OACA,SACA,QACA,SAOF,OALAA,EAAWA,EACRjF,KAAI,SAAUuD,GACb,OAAOA,EAAQ3yE,MAAM,IAAIpZ,KAAK,KAChC,IACCA,KAAK,KACDysF,OAAO,SAAWgB,EAAW,OACtC,CAhCU,GAiCVV,SAAU,4BACVtsF,OAAQ,CAEN4Q,QACE,gHACFy6E,YAAY,GAEdE,SACE,sLACFC,YAAa,kBAEjB,CAzDAzvF,EAAOC,QAAU+yG,EACjBA,EAAOvuG,YAAc,SACrBuuG,EAAOtjB,QAAU,kCCCjB,SAASzyD,EAAOywD,IACb,SAAWA,GACV,IAAIzwD,EAAUywD,EAAMY,UAAUrxD,OAASywD,EAAMY,UAAUpuF,OAAO,SAAU,CACtEqvF,QAAS,CACP16E,QACE,+GACFy6E,YAAY,GAEde,SAAU,CACRx7E,QAAS,4DACTy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,UAGjBc,SAAU,CACR17E,QAAS,iDACTy6E,YAAY,EACZQ,OAAQ,CACNP,QAAS,CACP16E,QAAS,oBACTy6E,YAAY,GAEdG,YAAa,UAGjB7D,OAAQ,CACN/2E,QAAS,qCACT65E,MAAO,WAETe,YAAa,gBAEfxyD,EAASywD,EAAMY,UAAUx+C,aAAa,SAAU,UAAW,CACzD,iBAAkB,CAChBj7B,QAAS,UACTy6E,YAAY,EACZZ,MAAO,WAETuG,WAAY,CAEVpgF,QAAS,uDACTg7E,QAAQ,EACRP,YAAY,EACZQ,OAAQ,CACNlwE,OAAQ,CACN/K,QAAS,2CACTy6E,YAAY,GAEdC,QAAStyD,EAAOsyD,QAChBc,SAAUpzD,EAAOozD,SACjBE,SAAUtzD,EAAOszD,SACjBlsF,QAAS,qBACTJ,OAAQ,kDACR2nF,OAAQ3uD,EAAO2uD,OACf4D,SACE,iGACFC,YAAaxyD,EAAOwyD,gBAI1B/B,EAAMY,UAAUx+C,aACd,SACA,cACA,CACEmlD,WAAYh4D,EAAOg4D,WACnB1F,QAAStyD,EAAOsyD,QAChBc,SAAUpzD,EAAOozD,SACjBE,SAAUtzD,EAAOszD,SACjB3E,OAAQ3uD,EAAO2uD,OACf,qBAAsB,CACpB/2E,QAASooB,EAAOwyD,YAChBf,MAAO,gBAGXzxD,EAAY,IAAE6yD,OAAO,cAExB,CA3EA,CA2EEpC,EACL,CAhFA1tF,EAAOC,QAAUg9B,EACjBA,EAAOx4B,YAAc,SACrBw4B,EAAOyyD,QAAU,iCCCjB,SAASujB,EAAOvlB,GAKdA,EAAMY,UAAU2kB,OAAS,CACvB/f,UAAW,CACTr+E,QAAS,iBACTg7E,QAAQ,EACRnB,MAAO,CAAC,QAAS,aAEnB5vE,QAAS,CACPjK,QAAS,uCACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,wDACTg7E,QAAQ,GAEVqjB,IAAK,CACHr+F,QAAS,qCACTy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,MAEVP,QAAS,CACP,CAEE16E,QACE,iTACFy6E,YAAY,GAEd,CAEEz6E,QAAS,+CACTy6E,YAAY,GAEd,CAEEz6E,QACE,mKACFy6E,YAAY,GAEd,CAEEz6E,QACE,mhBACFy6E,YAAY,IAGhBrrF,OAAQ,CAEN,0BACA,kCAEFurF,SAAU,CACR,+CACA,CACE36E,QACE,0EACFy6E,YAAY,IAGhBG,YAAa,0BAEf/B,EAAMY,UAAU2kB,OAAOC,IAAIpjB,OAASpC,EAAMY,UAAUpuF,OAAO,SAAU,CACnEgzG,SAAK9vG,EACLmsF,aAASnsF,EACTosF,cAAUpsF,IAEZsqF,EAAMY,UAAU6kB,aAAezlB,EAAMY,UAAU2kB,MACjD,CA1EAjzG,EAAOC,QAAUgzG,EACjBA,EAAOxuG,YAAc,SACrBwuG,EAAOvjB,QAAU,CAAC,+CCClB,SAAS0jB,EAAU1lB,IAChB,SAAWA,GAEV,IAAIkc,EAAS,2CAA2C1rF,OACpDxc,EAAO,kCAAkCwc,OAAOzY,QAClD,aACA,WACE,OAAOmkG,CACT,IAEEwJ,EAAa1lB,EAAMY,UAAU8kB,UAAY,CAC3Ct0F,QAAS,0BACTc,OAAQ,CACN/K,QAAS,8CACTg7E,QAAQ,GAEV,aAAc,CACZ,CACEh7E,QAASo7E,OACP,+BAA+B/xE,OAAOzY,QACpC,WACA,WACE,OAAO/D,CACT,IAEF,KAEF4tF,YAAY,EACZQ,OAAQ,MAEV,CACEj7E,QAASo7E,OACP,oBAAoB/xE,OAAOzY,QAAQ,WAAW,WAC5C,OAAO/D,CACT,IACA,KAEFouF,OAAQ,MAEV,CACEj7E,QAASo7E,OACP,eAAe/xE,OAAOzY,QAAQ,WAAW,WACvC,OAAO/D,CACT,KAEF4tF,YAAY,EACZQ,OAAQ,OAGZP,QAAS,CACP16E,QACE,mIACFy6E,YAAY,GAEdjrF,QAAS,CACPwQ,QAAS,8BACTy6E,YAAY,GAEdyC,QAAS,CACPl9E,QAAS,4DACTy6E,YAAY,GAEdiB,SAAU,iBACVtsF,OAAQ,CAEN,6BACA,4CAEFurF,SACE,2EACFC,YAAa,4BAEX0B,EAAkB,CACpB,UACA,UACA,UACA,WACA,eACAhvC,QAAO,SAAUkxD,EAAOn0G,GAExB,OADAm0G,EAAMn0G,GAAOk0G,EAAUl0G,GAChBm0G,CACT,GAAG,CAAC,GACJD,EAAU,cAAchwE,SAAQ,SAAUkF,GACxCA,EAAEwnD,OAASqB,CACb,GACD,CApFA,CAoFEzD,EACL,CAzFA1tF,EAAOC,QAAUmzG,EACjBA,EAAU3uG,YAAc,YACxB2uG,EAAU1jB,QAAU,kCCCpB,SAAS4jB,EAAO5lB,GACdA,EAAMY,UAAUglB,OAAS,CACvB1zF,OAAQ,UACR2vE,QAAS,CACP16E,QACE,qFACFy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNP,QAAS,aACThhF,SAAU,CACRsG,QAAS,mBACTy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,UACb9sF,SAAU,WAGd,UAAW,CACTkS,QAAS,kBACTy6E,YAAY,EACZQ,OAAQ,CACN8E,UAAW,CACT//E,QAAS,UACT65E,MAAO,YAETe,YAAa,gBAKrBD,SAAU,IACV+jB,MAAO,CACL1+F,QACE,uEACFg7E,QAAQ,EACRC,OAAQ,CACNS,SAAU,SACV5tF,SAAU,CACRkS,QAAS,iBACTy6E,YAAY,GAEd1vE,OAAQ,UACR6vE,YAAa,QACbD,SAAU,MAGdC,YAAa,OACbxrF,OAAQ,CACN4Q,QAAS,4BACTy6E,YAAY,GAEdjrF,QAAS,UAEXqpF,EAAMY,UAAUklB,GAAK9lB,EAAMY,UAAUglB,MACvC,CA1DAtzG,EAAOC,QAAUqzG,EACjBA,EAAO7uG,YAAc,SACrB6uG,EAAO5jB,QAAU,CAAC,qCCClB,SAAS+jB,EAAW/lB,GAClBA,EAAMY,UAAUmlB,WAAa,CAC3B30F,QAASmxE,OACP,CAEE,mBAAmB/xE,OACnB,cAAcA,OACd,4DAA4DA,OAC5D,mBAAmBA,QACnB1a,KAAK,MAEToc,OAAQ,CACN/K,QAAS,kDACTg7E,QAAQ,GAEVQ,SAAU,OACV,sBAAuB,CACrBx7E,QAAS,2CACTy6E,YAAY,EACZZ,MAAO,YAET,aAAc,CACZ75E,QACE,iIACFy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,MAGjBF,QACE,gYACF,mBAAoB,CAClB16E,QAAS,sBACT65E,MAAO,YAET6B,SAAU,sBACVlsF,QAAS,sBACTJ,OAAQ,oBACRurF,SAAU,8BACVC,YAAa,eAEf/B,EAAMY,UAAUolB,MAAQhmB,EAAMY,UAAUmlB,UAC1C,CA7CAzzG,EAAOC,QAAUwzG,EACjBA,EAAWhvG,YAAc,aACzBgvG,EAAW/jB,QAAU,CAAC,wCCCtB,SAASikB,EAAKjmB,IACX,SAAWA,GACV,IAAIyU,EACF,6GACGjkF,OACLwvE,EAAMY,UAAUqlB,KAAO,CACrB70F,QAAS,CACP,CAEEjK,QAAS,2BACTy6E,YAAY,EACZO,QAAQ,GAEV,CACEh7E,QAAS,gBACTy6E,YAAY,EACZO,QAAQ,IAIZjwE,OAAQ,CACN,CACE/K,QAASo7E,OACP,qCAAqC/xE,OACnC,MACA,CAEE,mDAAmDA,OAEnD,2CAA2CA,OAI3CikF,GACA3+F,KAAK,KACP,KAEJqsF,QAAQ,GAEV,CACEh7E,QAAS,mCACTg7E,QAAQ,GAGV,CACEh7E,QAAS,wBACTg7E,QAAQ,IAGZiB,MAAO,CACL,CACEj8E,QAASo7E,OACP,+BAA+B/xE,OAC7B,MACA,CAEE,mDAAmDA,OAEnD,2CAA2CA,OAI3CikF,GACA3+F,KAAK,KACP,IACA,mBAAmB0a,QAEvB2xE,QAAQ,GAEV,CACEh7E,QAASo7E,OACP,yCAAyC/xE,OACvC,MACA,CAGE,8EACGA,OAEH,sEACGA,OAKHikF,EAAW,MAAMjkF,OAASikF,GAC1B3+F,KAAK,KACP,IACA,qBAAqB0a,QAEzBoxE,YAAY,EACZO,QAAQ,GAKV,CACEh7E,QACE,4HACFg7E,QAAQ,IAIZQ,SAAU,CAER,sBACA,kBACA,kBACA,sDACA,aAEA,qDAEFujB,WAAY,CAEV/+F,QAAS,uBACT65E,MAAO,UAET,WAAY,CAEV75E,QAAS,kCACT65E,MAAO,UAET6B,SAAU,CACR17E,QAAS,mBACTy6E,YAAY,GAEdC,QACE,6MACFtrF,OACE,8GACFurF,SACE,gNACFC,YAAa,eAEhB,CAtIA,CAsIE/B,EACL,CA3IA1tF,EAAOC,QAAU0zG,EACjBA,EAAKlvG,YAAc,OACnBkvG,EAAKjkB,QAAU,sCCHf,IAAI6b,EAAexpG,EAAQ,MAI3B,SAAS8xG,EAAUnmB,GACjBA,EAAMU,SAASmd,GACf7d,EAAMY,UAAUx+C,aAAa,MAAO,WAAY,CAC9Cv0B,KAAM,CACJ1G,QAAS,WACT65E,MAAO,WAETlB,OACE,uIACF73E,MAAO,CACLd,QAAS,cACTi7E,OAAQ,CACNP,QAAS,6BACTE,YAAa,WAIrB,CApBAzvF,EAAOC,QAAU4zG,EACjBA,EAAUpvG,YAAc,YACxBovG,EAAUnkB,QAAU,sCCHpB,IAAIsM,EAA4Bj6F,EAAQ,KAIxC,SAAS0pG,EAAI/d,GACXA,EAAMU,SAAS4N,GAQd,SAAWtO,GACV,IAAI5uE,EAAU,oCACV6xE,EAAW,CACb,CACE97E,QAAS,sBACT65E,MAAO,WAET,CACE75E,QAAS,iCACTg7E,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QAAS,+CACTg7E,QAAQ,EACRP,YAAY,GAEd,gBACA,iCAEErrF,EACF,6IACEurF,EACF,wFACEC,EAAc,gBAClB/B,EAAMY,UAAUmd,IAAM,CACpBjW,UAAW,CACT3gF,QAAS,6BACT65E,MAAO,aAET5vE,QAASA,EACTuxE,SAAU,sBACVyjB,QAAS,CACPj/F,QACE,oEACFy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,OAGjB,wBAAyB,CACvB56E,QAAS,4DACTy6E,YAAY,EACZZ,MAAO,cAET,sBAAuB,CACrB75E,QAAS,qCACTy6E,YAAY,EACZZ,MAAO,YAETa,QAAS,CACP,CACE16E,QACE,8EACF65E,MAAO,eACPmB,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QACE,sIACF65E,MAAO,YACPmB,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QACE,6IACF65E,MAAO,cACPmB,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QACE,2EACF65E,MAAO,mBACPmB,QAAQ,GAEV,CACEh7E,QAAS,qDACT65E,MAAO,mBACPmB,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QAAS,qCACT65E,MAAO,iBACPmB,QAAQ,GAEV,CAEEh7E,QAAS,sBACTy6E,YAAY,GAEd,aACA,CAKEz6E,QACE,8hBACFy6E,YAAY,IAGhB,gBAAiB,CACfz6E,QAAS,qCACTy6E,YAAY,GAEd,aAAc,CACZ,CACEz6E,QACE,qGACFg7E,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QAAS,8BACTg7E,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QAAS,gCACTg7E,QAAQ,GAEV,CACEh7E,QAAS,gCACT65E,MAAO,6BACPmB,QAAQ,EACRP,YAAY,EACZQ,OAAQ,CACNL,YAAa,OAGjB,CACE56E,QAAS,kCACT65E,MAAO,6BACPmB,QAAQ,EACRC,OAAQ,CACNL,YAAa,OAGjB,CACE56E,QACE,iHACF65E,MAAO,6BACPmB,QAAQ,EACRP,YAAY,EACZQ,OAAQ,CACNL,YAAa,OAGjB,CACE56E,QAAS,wBACT65E,MAAO,mBACPmB,QAAQ,GAEV,CACEh7E,QAAS,gCACT65E,MAAO,CAAC,6BAA8B,oBACtCmB,QAAQ,EACRC,OAAQ,CACNL,YAAa,OAGjB,CACE56E,QAAS,wBACT65E,MAAO,iBACPmB,QAAQ,GAEV,CACEh7E,QAAS,gCACT65E,MAAO,CAAC,6BAA8B,kBACtCmB,QAAQ,EACRC,OAAQ,CACNL,YAAa,OAGjB,CACE56E,QAAS,gCACT65E,MAAO,YACPmB,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QAAS,0CACT65E,MAAO,CAAC,6BAA8B,aACtCmB,QAAQ,EACRP,YAAY,EACZQ,OAAQ,CACNL,YAAa,OAGjB,CACE56E,QAAS,4CACT65E,MAAO,cACPmB,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QAAS,oDACT65E,MAAO,CAAC,6BAA8B,eACtCmB,QAAQ,EACRP,YAAY,EACZQ,OAAQ,CACNL,YAAa,QAInBkB,SAAUA,EACVJ,SAAU,CACR17E,QAAS,+CACTy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,OAGjB9sF,SAAU,CACRkS,QAAS,aACTy6E,YAAY,GAEdrrF,OAAQA,EACRurF,SAAUA,EACVC,YAAaA,GAEf,IAAIskB,EAAuB,CACzBl/F,QACE,6FACFy6E,YAAY,EACZQ,OAAQpC,EAAMY,UAAUmd,KAEtB7rF,EAAS,CACX,CACE/K,QAAS,sCACT65E,MAAO,gBACPmB,QAAQ,EACRC,OAAQ,CACN0F,UAAW,CACT3gF,QAAS,2BACT65E,MAAO,SACPoB,OAAQ,CACNL,YAAa,mBAKrB,CACE56E,QACE,8EACF65E,MAAO,iBACPmB,QAAQ,EACRC,OAAQ,CACN0F,UAAW,CACT3gF,QAAS,yCACT65E,MAAO,SACPoB,OAAQ,CACNL,YAAa,iBAGjBuF,cAAe+e,IAGnB,CACEl/F,QAAS,yBACT65E,MAAO,yBACPmB,QAAQ,GAEV,CACEh7E,QAAS,yBACT65E,MAAO,uBACPmB,QAAQ,GAEV,CACEh7E,QAAS,yBACT65E,MAAO,uBACPmB,QAAQ,EACRC,OAAQ,CACNkF,cAAe+e,KAIrBrmB,EAAMY,UAAUx+C,aAAa,MAAO,WAAY,CAC9ClwB,OAAQA,EACRpa,UAAW,CACTqP,QACE,4IACFg7E,QAAQ,EACRC,OAAQ,CACN,oBAAqB,CACnBj7E,QAAS,uBACTy6E,YAAY,EAEZQ,OAAQ,CACNhxE,QAASA,EACTc,OAAQA,EACR,uBAAwB,CACtB,CACE/K,QAAS,+BACT65E,MAAO,aACPmB,QAAQ,EACRP,YAAY,GAEd,CACEz6E,QAAS,+BACT65E,MAAO,CAAC,aAAc,8BACtBmB,QAAQ,EACRP,YAAY,EACZQ,OAAQ,CACNL,YAAa,QAInBkB,SAAUA,EACV1sF,OAAQA,EACRurF,SAAUA,EACVC,YAAaA,IAGjB+F,UAAW,CACT3gF,QAAS,WACT65E,MAAO,mBAKfhB,EAAMwB,MAAMlqC,IAAI,mBAAmB,SAAU+pC,GAC3C,GAAK,MAAMzpF,KAAKypF,EAAIh3E,MAApB,CAKA21E,EAAMY,UAAU,qBAAqB8N,kBACnCrN,EACA,MAHA,oKAFF,CAQF,IACArB,EAAMwB,MAAMlqC,IAAI,kBAAkB,SAAU+pC,GAC1CrB,EAAMY,UAAU,qBAAqB+N,qBAAqBtN,EAAK,MACjE,GACD,CApVA,CAoVErB,EACL,CAjWA1tF,EAAOC,QAAUwrG,EACjBA,EAAIhnG,YAAc,MAClBgnG,EAAI/b,QAAU,sCCHd,IAAI6b,EAAexpG,EAAQ,MACvBqjG,EAAuBrjG,EAAQ,MAInC,SAASiyG,EAAOtmB,GACdA,EAAMU,SAASmd,GACf7d,EAAMU,SAASgX,GACd,SAAW1X,GACV,IAAI+K,EAAiB,8BAA8Bv6E,OACnDwvE,EAAMY,UAAU0lB,OAAStmB,EAAMY,UAAUpuF,OAAO,cAAe,CAC7D00F,UAAW,CACT//E,QAASo7E,OACP,0DACEwI,EACA,kBAEJnJ,YAAY,KAGhB5B,EAAMY,UAAUx+C,aAAa,SAAU,UAAW,CAChD,aAAc,CACZ,CACEj7B,QAASo7E,OACP,yFACEwI,GAEJnJ,YAAY,EACZQ,OAAQ,CACNP,QACE,sHACFE,YAAa,kBAKrB/B,EAAMY,UAAUmX,YAAYC,WAAW,MAAOhY,EAAMY,UAAU0lB,OAC/D,CA7BA,CA6BEtmB,EACL,CApCA1tF,EAAOC,QAAU+zG,EACjBA,EAAOvvG,YAAc,SACrBuvG,EAAOtkB,QAAU,sCCJjB,IAAIqB,EAAehvF,EAAQ,MAI3B,SAASkyG,EAAMvmB,GACbA,EAAMU,SAAS2C,GACfrD,EAAMY,UAAU2lB,MAAQvmB,EAAMY,UAAUpuF,OAAO,MAAO,CACpD4e,QAAS,CACPjK,QAAS,wBACTg7E,QAAQ,GAGVN,QACE,u6EAEFC,SAAU,+CAEZ9B,EAAMY,UAAUx+C,aAAa,QAAS,WAAY,CAChDzhC,MAAO,CACLwG,QAAS,gBACT65E,MAAO,WAGb,CAtBA1uF,EAAOC,QAAUg0G,EACjBA,EAAMxvG,YAAc,QACpBwvG,EAAMvkB,QAAU,kCCChB,SAASwkB,EAAWxmB,GAElBA,EAAMY,UAAU4lB,WAAa,CAC3Bp1F,QAAS,CACPjK,QAAS,uCACTy6E,YAAY,EACZO,QAAQ,GAEV,oBAAqB,CACnBh7E,QAAS,2BACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,iCACTg7E,QAAQ,GAEVc,SAAU,CACR,wEACA,iEACA,qCACA,sCACA,+DACA,6CACA,+BACA,4EACA,kCACA,yCACA,gGACA,+BACA,oCACA,0CACA,0EACA,+IACA,YAEFtsF,QAAS,qBACTkrF,QACE,6MACFgB,SAAU,CACR17E,QAAS,oCACTy6E,YAAY,GAEd,YAAa,CACXz6E,QACE,6HACF65E,MAAO,cAETzqF,OAAQ,CACN4Q,QACE,uFACFy6E,YAAY,GAEdE,SAAU,0CACVC,YAAa,gBAEf/B,EAAMY,UAAU6lB,GAAKzmB,EAAMY,UAAsB,WACjDZ,EAAMY,UAAU8lB,QAAU1mB,EAAMY,UAAsB,UACxD,CA5DAtuF,EAAOC,QAAUi0G,EACjBA,EAAWzvG,YAAc,aACzByvG,EAAWxkB,QAAU,kCCCrB,SAAS2kB,EAAW3mB,IACjB,SAAWA,GACV,IAAI2mB,EAAc3mB,EAAMY,UAAU+lB,WAAa,CAC7Cv1F,QAAS,CACP,CACEjK,QAAS,uBACTy6E,YAAY,GAEd,CACEz6E,QAAS,cACTy6E,YAAY,IAGhB1vE,OAAQ,CACN,CACE/K,QAAS,uBACTg7E,QAAQ,EACRC,OAAQ,MAEV,CACEj7E,QAAS,iBACTg7E,QAAQ,IAKZ9iE,UAAW,qDACX1oB,QAAS,sBACTgsF,SAAU,UAIVE,SAAU,CACR,wrBACA,ycAGFhB,QACE,kPACFC,SAAU,CACR36E,QACE,wJACFy6E,YAAY,GAEdG,YAAa,iBAEf4kB,EAAWz0F,OAAO,GAAGkwE,OAAS,CAC5BS,SAAU,CAER17E,QAAS,uDACTy6E,YAAY,EACZQ,OAAQukB,GAEVhwG,QAASgwG,EAAWhwG,QACpBgsF,SAAUgkB,EAAWhkB,SAExB,CAvDA,CAuDE3C,EACL,CA5DA1tF,EAAOC,QAAUo0G,EACjBA,EAAW5vG,YAAc,aACzB4vG,EAAW3kB,QAAU,kCCCrB,SAAS4kB,EAAW5mB,GAClBA,EAAMY,UAAUgmB,WAAa5mB,EAAMY,UAAUpuF,OAAO,QAAS,CAC3DqvF,QACE,qKAEFgB,SAAU,iBACVf,SAAU,8CAEZ9B,EAAMY,UAAUx+C,aAAa,aAAc,SAAU,CAEnD6gD,SAAU,8BACVjvF,KAAM,CACJmT,QAAS,4DACT65E,MAAO,eAGb,CAnBA1uF,EAAOC,QAAUq0G,EACjBA,EAAW7vG,YAAc,aACzB6vG,EAAW5kB,QAAU,kCCCrB,SAASmb,EAAOnd,GACdA,EAAMY,UAAUuc,OAAS,CAEvB/rF,QAAS,CACPjK,QAAS,uBACTg7E,QAAQ,GAGVjwE,OAAQ,CACN/K,QAAS,4DACTg7E,QAAQ,GAEVkC,QAAS,6BAETxB,SAAU,6BACVtsF,OAAQ,kBAERurF,SAAU,iDACVC,YAAa,cAEjB,CAvBAzvF,EAAOC,QAAU4qG,EACjBA,EAAOpmG,YAAc,SACrBomG,EAAOnb,QAAU,kCCCjB,SAAS6kB,EAAO7mB,IAGb,SAAWA,GAGV,IAeI8mB,EAAiB,CACnB,KACA,WACA,cACA,aACA,KACA,WAIEvjB,EAzBe,CACjB,MACA,MACA,MACA,MACA,QACA,SACA,SACA,QACA,eACA,UACA,OACA,YAa0BvtF,OAAO8wG,EADd,CAAC,WAEtB9mB,EAAMY,UAAUimB,OAAS,CACvBz1F,QAAS,CACPjK,QAAS,gBACTy6E,YAAY,GAEd,eAAgB,CAEdz6E,QAAS,IAAIo7E,OACX,OAASukB,EAAehxG,KAAK,KAAO,qBAEtC8rF,YAAY,EACZQ,OAAQ,CACN,YAAa,CACXj7E,QAAS,YACT65E,MAAO,aAETe,YAAa,UAGjB,iBAAkB,CAChB56E,QAAS,aACTi7E,OAAQ,CACN,YAAa,CACXj7E,QAAS,gCACT65E,MAAO,aAET,cAAe,CACb75E,QAAS,qCACTg7E,QAAQ,EACRnB,MAAO,cAETe,YAAa,sBAGjB,gBAAiB,CACf,CACE56E,QAAS,eAETi7E,OAAQ,CACNL,YAAa,UACb,iBAAkB,CAChB56E,QAAS,+BACT65E,MAAO,YAIb,CACE75E,QAAS,mBAETy6E,YAAY,EACZQ,OAAQ,CACN,iBAAkB,CAChBj7E,QAAS,+BACT65E,MAAO,aAKfa,QAAS,IAAIU,OAAO,SAAWgB,EAASztF,KAAK,KAAO,OAAQ,KAC5D+sF,SAAU,wBACVtsF,OACE,oFACFurF,SAAU,mDACVC,YAAa,gBAEhB,CA9FA,CA8FE/B,EACL,CArGA1tF,EAAOC,QAAUs0G,EACjBA,EAAO9vG,YAAc,SACrB8vG,EAAO7kB,QAAU,kCCCjB,SAAS9tF,EAAW8rF,GAClBA,EAAMY,UAAU1sF,WAAa,CAC3Bkd,QAAS,kBACT,aAAc,CACZjK,QACE,gGACFy6E,YAAY,GAEd,YAAa,uDACbG,YAAa,OAEjB,CAdAzvF,EAAOC,QAAU2B,EACjBA,EAAW6C,YAAc,aACzB7C,EAAW8tF,QAAU,kCCCrB,SAAS+kB,EAAS/mB,IACf,SAAWA,GACV,IAAIgnB,EACF,4EACFhnB,EAAMY,UAAUmmB,SAAW/mB,EAAMY,UAAUpuF,OAAO,QAAS,CACzD,aAAc,CACZ,CACE2U,QACE,8DACFy6E,YAAY,GAEd,CACEz6E,QACE,6FACFy6E,YAAY,IAGhBC,QACE,2KACFgB,SAAU,0BAEZ7C,EAAMY,UAAUx+C,aAAa,WAAY,WAAY,CACnDk8C,IAAK,CACHn3E,QAAS,2DACT65E,MAAO,aACPoB,OAAQ,CACNL,YAAa,SACbsC,QAAS2iB,IAGb3iB,QAAS2iB,EACT,wBAAyB,CACvB7/F,QAAS,+DACT65E,MAAO,aACPoB,OAAQ,CACNL,YAAa,OAGjBiB,WAAY,CACV77E,QAAS,4BACTy6E,YAAY,IAGjB,CA1CA,CA0CE5B,EACL,CA/CA1tF,EAAOC,QAAUw0G,EACjBA,EAAShwG,YAAc,WACvBgwG,EAAS/kB,QAAU,kCCCnB,SAASilB,EAAIjnB,GACXA,EAAMY,UAAUqmB,IAAM,CACpB71F,QAAS,CACPjK,QAAS,MACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,oBACTg7E,QAAQ,EACRC,OAAQ,CACNlsC,OAAQ,mBAGZ,iBAAkB,CAChB/uC,QAAS,4CACT65E,MAAO,SACPmB,QAAQ,GAEVN,QACE,uJACFoB,SACE,8fACFtsF,QAAS,gEACTgsF,SAAU,qCACV0B,QAAS,CACPl9E,QACE,wwDACF65E,MAAO,oBAET,mBAAoB,CAClB75E,QACE,6EACFy6E,YAAY,EACZO,QAAQ,GAEVU,SAAU,0BACVtsF,OAAQ,qCACRurF,SAAU,+DACVC,YAAa,eAEjB,CA3CAzvF,EAAOC,QAAU00G,EACjBA,EAAIlwG,YAAc,MAClBkwG,EAAIjlB,QAAU,kCCCd,SAASklB,EAAIlnB,IACV,SAAWA,GAQVA,EAAMY,UAAUsmB,IAAM,CAGpB91F,QAAS,CACPjK,QAAS,+CACTy6E,YAAY,GAId,mBAAoB,CAClBz6E,QACE,sFACFy6E,YAAY,EACZQ,OAAQpC,EAAMY,UAAUiF,YAG1B2I,OAAQ,CACNrnF,QACE,uEACFy6E,YAAY,EACZQ,OAAQ,CACN,cAAe,CACbj7E,QAAS,WACT65E,MAAO,YAET50E,KAAM,cAGV,uBAAwB,CACtBjF,QACE,qFACFy6E,YAAY,GAEdxB,OAAQ,CACNj5E,QAAS,gBACTy6E,YAAY,EACZQ,OAAQpC,EAAMY,UAAUR,QAE1BloD,QAAS,CACP/wB,QAAS,kCACTy6E,YAAY,GAGd,eAAgB,CACdz6E,QACE,sEACFy6E,YAAY,EACZQ,OAAQ,CACN+kB,KAAM,CACJhgG,QAAS,iBACTi7E,OAAQ,CACNP,QAAS,kBACTE,YAAa,MAGjBqlB,OAAQ,CACNjgG,QAAS,gDACT65E,MAAO,WAETqE,KAAMrF,EAAMY,UAAUiF,aAG1BhE,QAAS,CACP16E,QAAS,yDACTy6E,YAAY,GAEd3sC,MAAO,CAEL,CACE9tC,QAAS,qBACTy6E,YAAY,EACZQ,OAAQ,CACNP,QAAS,SACTgB,SAAU,oBACVd,YAAa,WAGjB,CACE56E,QAAS,iBACTy6E,YAAY,EACZQ,OAAQ,CACNrwF,KAAM,CACJoV,QAAS,SACT65E,MAAO,YAETqE,KAAMrF,EAAMY,UAAUiF,cAI5BlmD,OAAQ,CACNx4B,QAAS,mDACTy6E,YAAY,EACZQ,OAAQpC,EAAMY,UAAUiF,YAE1B,aAAc,CACZ1+E,QACE,oEACFy6E,YAAY,GAEdzmC,IAAK,CACHh0C,QAAS,+DACTy6E,YAAY,EACZQ,OAAQ,CACN/lF,WAAY,CACV,CACE8K,QAAS,kBACTi7E,OAAQpC,EAAMY,UAAUiF,YAE1B,CACE1+E,QAAS,YACTi7E,OAAQ,CACN,aAAc,CACZj7E,QAAS,uCACTy6E,YAAY,EACZQ,OAAQpC,EAAMY,UAAUiF,YAE1B,YAAa,2BACb9D,YAAa,cAInBA,YAAa,IACb,UAAW,WACX,aAAc,cAGlB13E,KAAM,CACJ,CACElD,QAAS,wBACTy6E,YAAY,EACZQ,OAAQpC,EAAMY,UAAUiF,aAG5B9D,YAAa,aA0Bf,IAxBA,IAAIslB,EACF,iFACG72F,OACD8jF,EAAU,CACZ,CACE9F,OAAQ,OACR3tF,SAAU,QAEZ,CACE2tF,OAAQ,SACR3tF,SAAU,gBAEZ,MACA,aACA,OACA,aACA,WACA,CACE2tF,OAAQ,OACR3tF,SAAU,QAEZ,UAEE0zF,EAAc,CAAC,EACVzhG,EAAI,EAAGuf,EAAIiiF,EAAQvhG,OAAQD,EAAIuf,EAAGvf,IAAK,CAC9C,IAAI07F,EAAS8F,EAAQxhG,GACrB07F,EACoB,kBAAXA,EACH,CACEA,OAAQA,EACR3tF,SAAU2tF,GAEZA,EACFxO,EAAMY,UAAU4N,EAAO3tF,YACzB0zF,EAAY,UAAY/F,EAAOA,QAAU,CACvCrnF,QAASo7E,OACP8kB,EAAetvG,QAAQ,iBAAiB,WACtC,OAAOy2F,EAAOA,MAChB,IACA,KAEF5M,YAAY,EACZQ,OAAQ,CACN,cAAe,CACbj7E,QAAS,WACT65E,MAAO,YAET50E,KAAM,CACJjF,QAAS,YACT65E,MAAO,CAACwN,EAAO3tF,SAAU,YAAc2tF,EAAO3tF,UAC9CuhF,OAAQpC,EAAMY,UAAU4N,EAAO3tF,aAKzC,CACAm/E,EAAMY,UAAUx+C,aAAa,MAAO,SAAUmyD,EAC/C,CAxMA,CAwMEvU,EACL,CA7MA1tF,EAAOC,QAAU20G,EACjBA,EAAInwG,YAAc,MAClBmwG,EAAIllB,QAAU,iCCCd,SAASslB,EAAOtnB,IACb,SAAWA,GACVA,EAAMY,UAAU0mB,OAAS,CACvBtS,QAAS,CAEP,CACE7tF,QACE,qHACFy6E,YAAY,EACZZ,MAAO,SACPoB,OAAQ,CAENL,YAAa,sBAGjB,CACE56E,QACE,mHACFy6E,YAAY,EACZO,QAAQ,EACRnB,MAAO,SACPoB,OAAQ,CAENL,YAAa,sBAGjB,CACE56E,QAAS,8CACT65E,MAAO,SACPoB,OAAQ,CACNL,YAAa,CACX56E,QAAS,gBACTy6E,YAAY,MAKpB,oBAAqB,CACnBz6E,QAAS,4BACTy6E,YAAY,EACZO,QAAQ,EACRnB,MAAO,WAEToC,MAAO,CAELj8E,QACE,uFACFy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CAEN,iBAAkB,CAChBj7E,QAAS,yCACTi7E,OAAQ,CACNhxE,QAAS,UAKjBA,QAAS,CACPjK,QAAS,eACTy6E,YAAY,EACZO,QAAQ,GAEVjwE,OAAQ,CAEN/K,QACE,kGACFg7E,QAAQ,EACRC,OAAQ,CACN,gBAAiB,CACfj7E,QAAS,cACTi7E,OAAQ,CAER,KAINO,SAAU,CACRx7E,QAAS,yBACTi7E,OAAQ,CACNL,YAAa,OAGjB,YAAa,wBACbc,SAAU,CACR,CACE17E,QAAS,gBACTy6E,YAAY,GAEd,oGAEFrrF,OAAQ,+CACRI,QAAS,qBAETkrF,QACE,6IACF2F,SAAU,CACRrgF,QACE,gNACF65E,MAAO,UAETc,SACE,mFACFC,YAAa,oBAEf,IAAIuF,EAAgB,CAClB,CAEEngF,QACE,0EACFy6E,YAAY,EACZQ,OAAQ,CACN,iBAAkB,CAEhBj7E,QAAS,uCACTy6E,YAAY,EACZZ,MAAO,WACPoB,OAAQ,CACNL,YAAa,OAGjB+F,UAAW,CACT3gF,QAAS,MACT65E,MAAO,YAETqE,KAAMrF,EAAMY,UAAU0mB,SAG1B,CACEngG,QAAS,kCACTy6E,YAAY,EACZZ,MAAO,WACPoB,OAAQ,CACNL,YAAa,QAInB/B,EAAMY,UAAU0mB,OAAgB,QAAE,GAAGllB,OAAOkF,cAAgBA,EAC5DtH,EAAMY,UAAU0mB,OAAe,OAAEllB,OAC/B,iBACAA,OAAOkF,cAAgBA,CAC1B,CA7IA,CA6IEtH,EACL,CAlJA1tF,EAAOC,QAAU+0G,EACjBA,EAAOvwG,YAAc,SACrBuwG,EAAOtlB,QAAU,iCCCjB,SAASulB,EAAKvnB,IACX,SAAWA,GAEVA,EAAMY,UAAU2mB,KAAO,CACrBn2F,QAAS,CACP,CACEjK,QAAS,4BACTy6E,YAAY,GAEd,CACEz6E,QAAS,mBACTy6E,YAAY,GAEd,QAEF,cAAe,CACbz6E,QAAS,eACTg7E,QAAQ,EACRC,OAAQ,CACNxhF,KAAM,CACJuG,QAAS,qBACTy6E,YAAY,EACZZ,MAAO,WAET8G,UAAW,CACT3gF,QAAS,YACT65E,MAAO,iBAIb9uE,OAAQ,CACN/K,QAAS,wBACTg7E,QAAQ,GAEV5rF,OAAQ,CAEN4Q,QACE,kGACFy6E,YAAY,GAEdC,QACE,0SACFgB,SACE,00DACF6M,QAAS,CACPvoF,QAAS,kBACT65E,MAAO,WAITc,SACE,8GAEFC,YAAa,iBAEf,IAQIylB,EAAmB,sCAAsCh3F,OARvC,CACpB,IACA,CACE5P,KAAM,MACNogF,MAAO,OAET,WAGctrD,SAAQ,SAAU90B,GAChC,IAAIogF,EAAQpgF,EAKZ,GAJoB,kBAATA,IACTogF,EAAQpgF,EAAKogF,MACbpgF,EAAOA,EAAKA,MAEVo/E,EAAMY,UAAUI,GAAQ,CAC1B,IAAIoE,EAAI,CAAC,EACTA,EAAE,eAAiBpE,GAAS,CAC1B75E,QAASo7E,OACPilB,EAAiBzvG,QACf,SACA6I,EAAK7I,QAAQ,wBAAyB,SAExC,KAEFqqF,OAAQpC,EAAMe,KAAKnuF,MAAMotF,EAAMY,UAAU2mB,KAAK,eAAenlB,SAE/DgD,EAAE,eAAiBpE,GAAOoB,OAAOiD,KAAOrF,EAAMe,KAAKnuF,MACjDotF,EAAMY,UAAUI,IAElBhB,EAAMY,UAAUx+C,aAAa,OAAQ,cAAegjD,EACtD,CACF,IACIpF,EAAMY,UAAUzvE,IAClB6uE,EAAMY,UAAU2mB,KAAK,eAAenlB,OAAOiD,KAAOrF,EAAMe,KAAKnuF,MAC3DotF,EAAMY,UAAUzvE,GAGrB,CA5FA,CA4FE6uE,EACL,CAjGA1tF,EAAOC,QAAUg1G,EACjBA,EAAKxwG,YAAc,OACnBwwG,EAAKvlB,QAAU,kCCCf,SAASylB,EAAUznB,GAQjBA,EAAMY,UAAU6mB,UAAYznB,EAAMY,UAAUpuF,OAAO,QAAS,CAC1D4e,QAAS,MACTywE,QACE,u8BACFgB,SAAU,2BACVtsF,OAAQ,8DACRurF,SACE,2EAEJ9B,EAAMY,UAAUx+C,aAAa,YAAa,UAAW,CACnD+Y,IAAK,UACLqqD,IAAK,CACHr+F,QAAS,gBACTy6E,YAAY,EACZZ,MAAO,MACPoB,OAAQ,CACNhxE,QAAS,MACTc,OAAQ,CACN/K,QAAS,oCACTg7E,QAAQ,GAGV,4BAA6B,CAC3Bh7E,QAAS,yBACTy6E,YAAY,EACZZ,MAAO,cAGT,4BAA6B,CAC3B75E,QAAS,yCACTy6E,YAAY,EACZZ,MAAO,cAETa,QAAS,CACP,kCACA,+BAEFgB,SAAU,CACR17E,QAAS,kCACTy6E,YAAY,GAEd,kBAAmB,CACjBz6E,QAAS,wBACTy6E,YAAY,EACZZ,MAAO,YAETrgF,MAAO,CACLwG,QAAS,8CACTy6E,YAAY,EACZZ,MAAO,cAETN,SACE,gHACFnqF,OACE,kMACFurF,SAAU,oCAIT9B,EAAMY,UAAU6mB,UAAU,qBAC1BznB,EAAMY,UAAU6mB,UAAmB,QAC1CznB,EAAMY,UAAU8mB,OAAS1nB,EAAMY,UAAqB,SACtD,CAzEAtuF,EAAOC,QAAUk1G,EACjBA,EAAU1wG,YAAc,YACxB0wG,EAAUzlB,QAAU,sCCHpB,IAAIuU,EAAmBliG,EAAQ,MAI/B,SAASszG,EAAW3nB,GAClBA,EAAMU,SAAS6V,GACfvW,EAAMY,UAAU+mB,WAAa3nB,EAAMY,UAAUpuF,OAAO,UAAW,CAC7DqvF,QACE,wIACF,mBAAoB,CAIlB16E,QACE,6GACFy6E,YAAY,EACZQ,OAAQ,CACNP,QAAS,2BACTE,YAAa,OAIjBsC,QACE,uSACFvC,SAAU,CAER9B,EAAMY,UAAU+T,QAAQ7S,SAAS,GACjC9B,EAAMY,UAAU+T,QAAQ7S,SAAS,GAGjC,k7CAGJ9B,EAAMY,UAAUgnB,KAAO5nB,EAAMY,UAAU+mB,UACzC,CAjCAr1G,EAAOC,QAAUo1G,EACjBA,EAAW5wG,YAAc,aACzB4wG,EAAW3lB,QAAU,CAAC,uCCCtB,SAAS6lB,EAAO7nB,GACdA,EAAMY,UAAUinB,OAAS,CACvBz2F,QAAS,CACPjK,QAAS,eACTy6E,YAAY,EACZO,QAAQ,GAEV,uBAAwB,CACtBh7E,QACE,sEACFg7E,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CAEbngF,QACE,sFACFy6E,YAAY,EACZQ,OAAQ,CACN,cAAe,CACbj7E,QAAS,sBACTy6E,YAAY,GAEd,oBAAqB,CACnBz6E,QAAS,kBACT65E,MAAO,eAETqE,KAAM,OAGVnzE,OAAQ,YAGZ,uBAAwB,CACtB/K,QAAS,uCACTg7E,QAAQ,EACRnB,MAAO,UAET9uE,OAAQ,CACN/K,QAAS,mDACTg7E,QAAQ,GAEVU,SAAU,CACR17E,QAAS,4CACTy6E,YAAY,GAEd,aAAc,CACZz6E,QAAS,mBACTy6E,YAAY,GAEd6F,UAAW,CACTtgF,QAAS,2BACTy6E,YAAY,EACZZ,MAAO,CAAC,aAAc,eACtBoB,OAAQ,CACNL,YAAa,OAGjBF,QACE,wNACFwC,QACE,shBACF1tF,QAAS,0BACTJ,OACE,mJACFurF,SAAU,uDACVC,YAAa,iBAEf/B,EAAMY,UAAUinB,OAAO,wBAAwBzlB,OAC9B,cACfA,OAAOiD,KAAOrF,EAAMY,UAAUinB,OAChC7nB,EAAMY,UAAUknB,GAAK9nB,EAAMY,UAAUinB,MACvC,CA1EAv1G,EAAOC,QAAUs1G,EACjBA,EAAO9wG,YAAc,SACrB8wG,EAAO7lB,QAAU,CAAC,qCCClB,SAAS/e,EAAE+c,GACTA,EAAMY,UAAU3d,EAAI,CAClB/wD,OAAQ,wBACRd,QAAS,CAGP,CACEjK,QAAS,kBACTy6E,YAAY,EACZO,QAAQ,GAMV,CACEh7E,QACE,oGACFy6E,YAAY,EACZO,QAAQ,GAGV,CACEh7E,QAAS,gCACTg7E,QAAQ,GAEV,CACEh7E,QAAS,SACTg7E,QAAQ,IAGZjsC,OAAQ,mBACR6c,SAAU,CACR5rD,QACE,6IACF65E,MAAO,UAITzqF,OACE,0FACFsrF,QACE,u4BACFwV,OAAQ,CACNlwF,QAAS,qBACT65E,MAAO,YAETkW,KAAM,CACJ/vF,QAAS,8DACT65E,MAAO,YAETe,YAAa,eAEjB,CAxDAzvF,EAAOC,QAAU0wE,EACjBA,EAAElsE,YAAc,IAChBksE,EAAE+e,QAAU,kCCCZ,SAAS+lB,EAAI/nB,IACV,SAAWA,GAWV,IAVA,IAAIgoB,EAAW,8CAA8Cx3F,OACzDy3F,EAAY,yCAAyCz3F,OACrD03F,EACF,iGAAiG13F,OAC9FzY,QAAQ,aAAa,WACpB,OAAOiwG,CACT,IACCjwG,QAAQ,cAAc,WACrB,OAAOkwG,CACT,IACKn1G,EAAI,EAAGA,EAAI,EAAGA,IACrBo1G,EAASA,EAAOnwG,QAAQ,WAAW,WACjC,OAAOmwG,CACT,IAEFA,EAASA,EAAOnwG,QAAQ,UAAW,aACnCioF,EAAMY,UAAUmnB,IAAM,CACpB32F,QAAS,CACPjK,QAAS,0BACTg7E,QAAQ,GAEV,sBAAuB,CACrBh7E,QAASo7E,OACP,2GAA2G/xE,OAAOzY,QAChH,SACA,WACE,OAAOmwG,CACT,IAEF,KAEFtmB,YAAY,EACZO,QAAQ,EACRnB,MAAO,sBACPoB,OAAQpC,EAAMY,UAAUiF,YAE1B,aAAc,CACZ1+E,QAAS,sDACTy6E,YAAY,GAEd3sF,SAAU,CACR,CACEkS,QAAS,oDACTy6E,YAAY,GAEd,CACEz6E,QACE,2FACFy6E,YAAY,EACZQ,OAAQ,CACNP,QAAS,YACT5sF,SAAU,mBAIhB,wBAAyB,CACvBkS,QAASo7E,OACP,0CAA0C/xE,OAAOzY,QAC/C,SACA,WACE,OAAOmwG,CACT,IAEF,KAEFtmB,YAAY,EACZO,QAAQ,EACRnB,MAAO,sBACPoB,OAAQpC,EAAMY,UAAUiF,YAE1B3zE,OAAQ,CACN/K,QAAS,wBACTg7E,QAAQ,GAEVN,QAAS,uBACTE,YAAa,aAEhB,CA9EA,CA8EE/B,EACL,CAnFA1tF,EAAOC,QAAUw1G,EACjBA,EAAIhxG,YAAc,MAClBgxG,EAAI/lB,QAAU,kCCCd,SAASmmB,EAAKnoB,GACZA,EAAMY,UAAUunB,KAAOnoB,EAAMY,UAAUpuF,OAAO,QAAS,CACrD4e,QAAS,CACPjK,QAAS,6CACTy6E,YAAY,GAGd1vE,OAAQ,CACN/K,QAAS,mCACTg7E,QAAQ,GAEVN,QACE,udACFlrF,QAAS,sBACTksF,SAAU,uBACVtsF,OACE,6GACFurF,SAAU,CACR36E,QACE,8FACFy6E,YAAY,GAEde,SAAU,iBAEd,CA3BArwF,EAAOC,QAAU41G,EACjBA,EAAKpxG,YAAc,OACnBoxG,EAAKnmB,QAAU,kCCCf,SAASomB,EAAOpoB,IACb,SAAWA,GAWV,SAASjoF,EAAQoP,EAAS++E,GACxB,OAAO/+E,EAAQpP,QAAQ,cAAc,SAAUkZ,EAAGrd,GAChD,MAAO,MAAQsyF,GAActyF,GAAS,GACxC,GACF,CAOA,SAASod,EAAG7J,EAAS++E,EAAc1hC,GACjC,OAAO+9B,OAAOxqF,EAAQoP,EAAS++E,GAAe1hC,GAAS,GACzD,CA2BA,IAAI++B,EAAWhB,OAFN,UAND,sHASgC,IANpC,kQAGsBnrF,OAAOW,QAAQ,KAAM,KAAO,QAMlDswG,EAAgBtwG,EAAQ,0BAA0ByY,OAAQ,CAD7C,mBAAmBA,SAEhCw6E,EAAa,CACfnJ,QAAS0B,EACTxB,YAAa,iBAEXkJ,EAAgB,oBAAoBz6E,OACxCwvE,EAAMY,UAAUwnB,OAASpoB,EAAMY,UAAUpuF,OAAO,QAAS,CACvD4e,QAAS,SACTc,OAAQ,CACN,CACE/K,QAAS6J,EAAG,kBAAkBR,OAAQ,CAACy6E,IACvCrJ,YAAY,EACZO,QAAQ,IAGZ,aAAc,CACZ,CAGEh7E,QAAS6J,EAAG,2CAA2CR,OAAQ,CAC7D63F,IAEFzmB,YAAY,EACZQ,OAAQ4I,GAEV,CAEE7jF,QAAS6J,EAAG,iCAAiCR,OAAQ,CAAC63F,IACtDzmB,YAAY,EACZQ,OAAQ4I,IAGZnJ,QAAS0B,EACThtF,OACE,qFACFurF,SACE,+GACFC,YAAa,qBAEf/B,EAAMY,UAAUx+C,aAAa,SAAU,SAAU,CAC/C+wB,MAAO,CACLhsD,QAAS,OACT65E,MAAO,cAGX,IAAIsnB,EApEJ,SAAgBnhG,EAASgjF,GACvB,IAAK,IAAIr3F,EAAI,EAAGA,EAAIq3F,EAAWr3F,IAC7BqU,EAAUA,EAAQpP,QAAQ,aAAa,WACrC,MAAO,MAAQoP,EAAU,GAC3B,IAEF,OAAOA,EAAQpP,QAAQ,YAAa,YACtC,CA6DwBmyF,CACtBnyF,EAAQ,iCAAiCyY,OAAQ,CAACy6E,IAClD,GAEFjL,EAAMY,UAAUx+C,aAAa,SAAU,SAAU,CAC/C,uBAAwB,CACtBj7B,QAAS6J,EAAG,6BAA6BR,OAAQ,CAAC83F,IAClDnmB,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACbngF,QAAS6J,EAAG,8BAA8BR,OAAQ,CAChD83F,IAEF1mB,YAAY,EACZQ,OAAQ,CACNL,YAAa,UACbwF,WAAY,CACVpgF,QAAS,UACT65E,MAAO,kBACPoB,OAAQpC,EAAMY,UAAUwnB,UAI9Bl2F,OAAQ,aAIf,CA/HA,CA+HE8tE,GACHA,EAAMY,UAAU2nB,GAAKvoB,EAAMY,UAAUwnB,MACvC,CArIA91G,EAAOC,QAAU61G,EACjBA,EAAOrxG,YAAc,SACrBqxG,EAAOpmB,QAAU,CAAC,qCCClB,SAAS9e,EAAE8c,GACTA,EAAMY,UAAU1d,EAAI,CAClB9xD,QAAS,MACTc,OAAQ,CACN/K,QAAS,mCACTg7E,QAAQ,GAEV,mBAAoB,CAGlBh7E,QAAS,YACT65E,MAAO,YAETrqF,QAAS,qBACT6xG,SAAU,iBACVjyG,OAAQ,CACN,kBACA,iFAEFsrF,QACE,iHACFC,SAAU,qDACVC,YAAa,eAEjB,CA3BAzvF,EAAOC,QAAU2wE,EACjBA,EAAEnsE,YAAc,IAChBmsE,EAAE8e,QAAU,qCCHZ,IAAIkc,EAAkB7pG,EAAQ,MAI9B,SAASo0G,EAAOzoB,GACdA,EAAMU,SAASwd,GACfle,EAAMY,UAAU6nB,OAASzoB,EAAMY,UAAUpuF,OAAO,SAAU,CACxD,mBAAoB,CAGlB2U,QAAS,qCACTy6E,YAAY,KAGhB5B,EAAMY,UAAUx+C,aAAa,SAAU,SAAU,CAC/CxhC,KAAM,CACJuG,QAAS,YACTg7E,QAAQ,EACRnB,MAAO,aAGXhB,EAAMY,UAAU8nB,IAAM1oB,EAAMY,UAAU6nB,MACxC,CArBAn2G,EAAOC,QAAUk2G,EACjBA,EAAO1xG,YAAc,SACrB0xG,EAAOzmB,QAAU,CAAC,sCCClB,SAASnxE,EAAOmvE,GACdA,EAAMY,UAAU/vE,OAASmvE,EAAMY,UAAUpuF,OAAO,QAAS,CACvD0f,OAAQ,CACN/K,QAAS,sCACTg7E,QAAQ,GAGV,aAAc,aACdN,QACE,4RACFC,SACE,wGAEJ9B,EAAMY,UAAUx+C,aAAa,SAAU,aAAc,CACnDn4B,KAAM,CACJ9C,QAAS,gEACTg7E,QAAQ,GAGVxwF,YAAa,wBACbgP,MAAO,CACLwG,QAAS,mBACT65E,MAAO,mBAGJhB,EAAMY,UAAU/vE,OAAOgyE,QAChC,CA7BAvwF,EAAOC,QAAUse,EACjBA,EAAO9Z,YAAc,SACrB8Z,EAAOmxE,QAAU,kCCCjB,SAASoB,EAAMpD,IACZ,SAAWA,GACV,IAAI2oB,EAAgB,CAClBxhG,QAAS,uBACT65E,MAAO,UAEL9C,EACF,6FASE0qB,EAAY,eAAiB1qB,EAAO1tE,OAAS,IAC7C2iD,EAAQovB,OAAOqmB,EAAY,IAAMA,GACjCC,EAAY,CACd1hG,QAAS,wBACTy6E,YAAY,EACZZ,MAAO,YAEThB,EAAMY,UAAUwC,MAAQ,CACtB,aAAc,CACZj8E,QAAS,kDACTy6E,YAAY,EACZQ,OAAQ,CACN,sBAAuB,CACrBj7E,QAAS,UACTy6E,YAAY,EACZZ,MAAO,YAET,yBAA0B,CACxB75E,QAAS,UACT65E,MAAO,eAET7tB,MAAO,CACLhsD,QAASgsD,EACTivB,OAAQ,CACNlE,OAAQA,EACR,oBAAqB,CACnB/2E,QAAS,IACT65E,MAAO,cAIb,iBAAkB2nB,EAClB,WApCkB,CACtBxhG,QAAS,yBACT65E,MAAO,cAmCH9C,OAAQA,IAGZ,iBAAkByqB,EAClB,WA7CY,CACZxhG,QAAS,4BACT65E,MAAO,cA4CP8nB,cAAe,CACb,CAEE3hG,QAAS,2BACT65E,MAAO,WAET,CACE75E,QAAS,eACT65E,MAAO,UACPoB,OAAQ,CACN,aAAcymB,KAIpBE,OAAQ,CACN5hG,QAAS,kBACT65E,MAAO,YAET9C,OAAQA,EACR8qB,MAAO,CACL,CAIE7hG,QACE,8EACF65E,MAAO,cACPoB,OAAQ,CACN,aAAcymB,IAGlB,CACE1hG,QAAS,KACT65E,MAAO,gBAGXujB,WAAY,CACVp9F,QAAS,kCACT65E,MAAO,UAETioB,YAAa,CACX9hG,QAAS,KACT65E,MAAO,WAGZ,CAlGA,CAkGEhB,EACL,CAvGA1tF,EAAOC,QAAU6wF,EACjBA,EAAMrsF,YAAc,QACpBqsF,EAAMpB,QAAU,kCCChB,SAASknB,EAAKlpB,GAEZA,EAAMY,UAAUsoB,KAAO,CACrB93F,QAAS,MACTnc,SAAU,CACRkS,QACE,0EACFy6E,YAAY,EACZO,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,yCACTy6E,YAAY,EACZO,QAAQ,GAEVN,QACE,yEACFlrF,QAAS,qBACTksF,SAAU,CACR17E,QAAS,oDACTi7E,OAAQ,CACN/iE,UAAW,mBACX0iE,YAAa,OAGjBxrF,OAAQ,qCACRurF,SAAU,8BACVC,YAAa,gBAEjB,CAhCAzvF,EAAOC,QAAU22G,EACjBA,EAAKnyG,YAAc,OACnBmyG,EAAKlnB,QAAU,kCCCf,SAASmnB,EAAMnpB,GACbA,EAAMY,UAAUuoB,MAAQ,CACtB/3F,QAAS,CACPjK,QAAS,eACTy6E,YAAY,GAEd1vE,OAAQ,CACN/K,QACE,iGACFg7E,QAAQ,GAEVU,SAAU,qBACV5tF,SACE,+lFACFkmD,IAAK,uPACL0mC,QACE,41BACFlrF,QAAS,2BACTJ,OACE,kFACFurF,SACE,+EACFC,YAAa,iBAEf/B,EAAMY,UAAUwoB,IAAMppB,EAAMY,UAAUuoB,KACxC,CA5BA72G,EAAOC,QAAU42G,EACjBA,EAAMpyG,YAAc,QACpBoyG,EAAMnnB,QAAU,CAAC,sCCCjB,SAASqD,EAAKrF,GACZA,EAAMY,UAAUyE,KAAO,CACrBV,MAAO,CACL,CACEx9E,QACE,oFACFy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,sBAGjB,CACE56E,QACE,0FACFy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,WAKnB,mBAAoB,CAClB56E,QAAS,wDACTy6E,YAAY,EACZQ,OAAQ,CACN6U,aAAc,CACZ9vF,QAAS,oCACT65E,MAAO,aACPoB,OAAQ,CACNL,YAAa,YAGjByD,UAAW,CACTr+E,QAAS,kBACTy6E,YAAY,EACZZ,MAAO,WACPoB,OAAQ,CACNL,YAAa,UAKrB,cAAe,CACb,CACE56E,QAAS,4BACTy6E,YAAY,EACZZ,MAAO,SACPoB,OAAQ,CACNL,YAAa,YAGjB,CACE56E,QAAS,+CACTy6E,YAAY,EACZZ,MAAO,SACPoB,OAAQ,CACNL,YAAa,WAInByD,UAAW,CACTr+E,QAAS,yBACTy6E,YAAY,EACZZ,MAAO,WACPoB,OAAQ,CACNL,YAAa,QAGjB3wE,QAAS,CAEPjK,QACE,yEACFy6E,YAAY,GAEd54E,MAAO,CAEL,CACE7B,QACE,gFACFi7E,OAAQ,CACNL,YACE,sFACFgE,UAAW,OAGf,CACE5+E,QACE,8FACFy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,4CACbgE,UAAW,QAIjBhkC,GAAI,CACF56C,QACE,sFACFy6E,YAAY,EACZZ,MAAO,eAET8W,MAAO,CACL3wF,QAAS,6BACTy6E,YAAY,EACZZ,MAAO,aAET,sBAAuB,CACrB75E,QACE,mLACFy6E,YAAY,EACZZ,MAAO,UAET,gBAAiB,CACf75E,QAAS,4DACTi7E,OAAQ,CACN,4BAA6B,CAC3Bj7E,QAAS,MACT65E,MAAO,iBAIb,uBAAwB,CACtB75E,QACE,oFACFi7E,OAAQ,CACN,4BAA6B,CAC3Bj7E,QAAS,wDACT65E,MAAO,iBAIb,cAAe,CACb75E,QACE,wGACFy6E,YAAY,EACZZ,MAAO,eAET,gBAAiB,CACf75E,QAAS,sCACTy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,SAGjBiD,OAAQ,CACN,CACE79E,QACE,sHACFy6E,YAAY,EACZQ,OAAQ,CACN8C,KAAM,CACJ/9E,QAAS,qBACTy6E,YAAY,GAEdqD,OAAQ,CACN99E,QAAS,iBACTy6E,YAAY,GAEd,iBAAkB,CAChBz6E,QAAS,iBACTy6E,YAAY,EACZZ,MAAO,UAET9kF,KAAM,CACJiL,QAAS,oBACT65E,MAAO,WACPoB,OAAQ,CACNL,YAAa,UAGjB,mBAAoB,CAClB56E,QAAS,eACTy6E,YAAY,EACZZ,MAAO,cAETiW,aAAc,CACZ9vF,QAAS,iBACTy6E,YAAY,EACZZ,MAAO,cAETe,YAAa,kBAInB92E,KAAM,CACJ,CACE9D,QAAS,4CACT65E,MAAO,SACPoB,OAAQ,CACNL,YAAa,aAGjB,CACE56E,QACE,wFACF65E,MAAO,SACPoB,OAAQ,CACNL,YAAa,oBAQnBA,YAAa,CACX56E,QAAS,6DACTy6E,YAAY,GAGlB,CArNAtvF,EAAOC,QAAU8yF,EACjBA,EAAKtuF,YAAc,OACnBsuF,EAAKrD,QAAU,kCCCf,SAASqnB,EAAIrpB,GACXA,EAAMY,UAAUyoB,IAAM,CACpBj4F,QAAS,CACPjK,QAAS,MACTg7E,QAAQ,GAEVl4E,KAAM,CACJ9C,QAAS,mCACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,kCACTg7E,QAAQ,GAEViB,MAAO,CACLj8E,QACE,iFACFy6E,YAAY,EACZO,QAAQ,GAEVN,QACE,kFACFwC,QAAS,eACT1tF,QAAS,qBACTm8D,KAAM,wBACNO,KAAM,wBACNN,SAAU,0CACV7c,OAAQ,6DACR3/C,OAAQ,4BACRwrF,YAAa,qCACb9tE,UAAW,4DAEf,CAnCA3hB,EAAOC,QAAU82G,EACjBA,EAAItyG,YAAc,MAClBsyG,EAAIrnB,QAAU,kCCCd,SAASsnB,EAAStpB,GAChBA,EAAMY,UAAU0oB,SAAW,CACzBl4F,QAAS,MACTywE,QAAS,CACP16E,QACE,gFACFy6E,YAAY,GAEd2nB,UAAW,CACTpiG,QAAS,qBACT65E,MAAO,YAET/rF,SAAU,qBACV/C,MAAO,CACLiV,QAAS,2BACTy6E,YAAY,EACZZ,MAAO,cAETwoB,SAAU,CACRriG,QAAS,eACT65E,MAAO,WAETyoB,SAAU,CACRtiG,QAAS,SACTy6E,YAAY,EACZZ,MAAO,YAETe,YAAa,YAEjB,CAhCAzvF,EAAOC,QAAU+2G,EACjBA,EAASvyG,YAAc,WACvBuyG,EAAStnB,QAAU,kCCCnB,SAAS0nB,EAAe1pB,IACrB,SAAWA,GACV,IAAI5uE,EAAU,CACZjK,QAAS,wBACTy6E,YAAY,EACZO,QAAQ,GAENQ,EAAW,CACbx7E,QAAS,iEACTy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,kBAGjB,SAAS4nB,EAAc53G,EAAMqwF,GAC3B,IAAIwnB,EAAiB,CACrBA,iBAAmC,CACjCziG,QAAS,mBACT65E,MAAO,YAET,IAAK,IAAIlqE,KAASsrE,EAChBwnB,EAAe9yF,GAASsrE,EAAOtrE,GAWjC,OATA8yF,EAAoB,IAAI,CACtBziG,QAAS,sCACTy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,UAGjB6nB,EAAyB,SAAIjnB,EAC7BinB,EAAwB,QAAIx4F,EACrB,CACLjK,QAASo7E,OACP,wDAAwD/xE,OAAOzY,QAC7D,WACA,WACE,OAAOhG,CACT,IAEF,MAEFivF,MAAO,UACPoB,OAAQwnB,EAEZ,CACA,IAAIC,EAAS,CACX1iG,QACE,gFACFy6E,YAAY,EACZZ,MAAO,UAEL8oB,EAAe,CACjB3iG,QAAS,qCACTy6E,YAAY,EACZZ,MAAO,WACPoB,OAAQ,CACNO,SAAUA,IAGVonB,EAAmB,CACrB5iG,QAAS,6DACTy6E,YAAY,EACZQ,OAAQ,CACNO,SAAUA,IAGd3C,EAAMY,UAA0B,eAAI,CAClCjtE,SAAUg2F,EAAc,WAAY,CAClCK,cAAe,CACb7iG,QACE,oFACFy6E,YAAY,EACZZ,MAAO,UAET/rF,SAAU,CACRkS,QAAS,2CACTy6E,YAAY,KAGhBqoB,UAAWN,EAAc,aACzB,aAAcA,EAAc,aAAc,CACxC,YAAaG,EACbE,cAAeH,EACf50G,SAAU80G,IAEZxmB,SAAUomB,EAAc,WAAY,CAClC,eAAgBG,EAChBE,cAAeH,EACf50G,SAAU80G,IAEZG,MAAOP,EAAc,QAAS,CAC5B,YAAaG,EACbE,cAAeH,EACf50G,SAAU80G,IAEZ34F,QAASA,GAEX4uE,EAAMY,UAAUupB,MAAQnqB,EAAMY,UAA0B,cACzD,CAlGA,CAkGEZ,EACL,CAvGA1tF,EAAOC,QAAUm3G,EACjBA,EAAe3yG,YAAc,iBAC7B2yG,EAAe1nB,QAAU,kCCCzB,SAAS+H,EAAK/J,IAOX,SAAWA,GACVA,EAAMY,UAAUmJ,KAAO/J,EAAMY,UAAUpuF,OAAO,QAAS,CACrD4e,QAAS,CACPjK,QAAS,8BACTg7E,QAAQ,GAEV,aAAc,CACZh7E,QACE,4EACFy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,UAGjBF,QACE,mSACFC,SACE,4EACFC,YAAa,iBAEf/B,EAAMY,UAAUx+C,aAAa,OAAQ,WAAY,CAC/C,eAAgB,CACdj7B,QAAS,KACT65E,MAAO,iBAGX,IAAIsG,EAAgB,CAClBngF,QAAS,oDACTy6E,YAAY,EACZQ,OAAQ,CACN5sF,QAAS,CACP2R,QAAS,uBACTy6E,YAAY,EACZQ,OAAQpC,EAAMY,UAAUmJ,MAE1BjC,UAAW,CACT3gF,QAAS,WACT65E,MAAO,wBAINhB,EAAMY,UAAUmJ,KAAKlH,SAC5B,IAAIunB,EACF,MACA,CACE,oDAAoD55F,OACpD,sDAAsDA,OACtD,sDAAsDA,OACtD,0DAA0DA,OAC1D,kDAAkDA,QAClD1a,KAAK,KACP,IACEu0G,EACF,sEACG75F,OACLwvE,EAAMY,UAAUx+C,aAAa,OAAQ,UAAW,CAC9C,gBAAiB,CACf,CACEj7B,QAASo7E,OACP,KAAK/xE,OAAS45F,EAAoB,mBAAmB55F,QAEvD2xE,QAAQ,EACRC,OAAQ,CACNkF,cAAeA,EACflE,MAAO,YAGX,CACEj8E,QACE,iGACFy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNkF,cAAeA,EACflE,MAAO,aAIbT,SAAU,+BACVzsC,OAAQ,CACN,CACE/uC,QAASo7E,OAAO,YAAY/xE,OAAS65F,GACrCzoB,YAAY,EACZO,QAAQ,GAEV,CACEh7E,QAASo7E,OACP,oBAAoB/xE,OAAS65F,EAAa,aAAa75F,QAEzDoxE,YAAY,EACZO,QAAQ,IAGZ,oBAAqB,CACnBh7E,QAAS,gCACTy6E,YAAY,EACZQ,OAAQ,CACNS,SAAU,SACVhB,QAAS,UACT,aAAc,OACdE,YAAa,SAInB/B,EAAMY,UAAUx+C,aAAa,OAAQ,SAAU,CAC7C,iBAAkB,CAChB,CACEj7B,QAASo7E,OAAO,cAAc/xE,OAAS45F,GACvCjoB,QAAQ,EACRC,OAAQ,CACNkF,cAAeA,EACfp1E,OAAQ,YAGZ,CACE/K,QACE,oEACFg7E,QAAQ,EACRC,OAAQ,CACNkF,cAAeA,EACfp1E,OAAQ,YAGZ,CACE/K,QAAS,kDACT65E,MAAO,iBACPmB,QAAQ,EACRC,OAAQ,CACN0F,UAAW,CACT3gF,QAAS,kCACTi7E,OAAQ,CACNlsC,OAAQ,QACR6rC,YAAa,aAGjBuF,cAAeA,EACfp1E,OAAQ,YAGZ,CACE/K,QAAS,oDACT65E,MAAO,iBACPmB,QAAQ,EACRC,OAAQ,CACN0F,UAAW,CACT3gF,QAAS,oCACTi7E,OAAQ,CACNlsC,OAAQ,QACR6rC,YAAa,iBAGjB7vE,OAAQ,aAId,kBAAmB,CACjB,CACE/K,QAASo7E,OAAO,KAAK/xE,OAAS45F,GAC9BjoB,QAAQ,EACRC,OAAQ,CACNkF,cAAeA,EACfvE,QAAS,CACP57E,QAAS,UACT65E,MAAO,YAIb,CACE75E,QAAS,0DACTg7E,QAAQ,EACRC,OAAQ,CACNkF,cAAeA,EACfvE,QAAS,CACP57E,QAAS,UACT65E,MAAO,sBAMVhB,EAAMY,UAAUmJ,KAAK73E,OAC5B8tE,EAAMY,UAAUx+C,aAAa,OAAQ,SAAU,CAC7CiiD,QACE,+OACFpB,SAAU,iCAEZjD,EAAMY,UAAUr/B,GAAKy+B,EAAMY,UAAUmJ,IACtC,CA3LA,CA2LE/J,EACL,CAtMA1tF,EAAOC,QAAUw3F,EACjBA,EAAKhzF,YAAc,OACnBgzF,EAAK/H,QAAU,CAAC,oCCChB,SAASsoB,EAAKtqB,IACX,SAAWA,GAEV,IADA,IAAIuqB,EAAmB,8CAA8C/5F,OAC5D1d,EAAI,EAAGA,EAAI,EAAGA,IAErBy3G,EAAmBA,EAAiBxyG,QAAQ,WAAW,WACrD,OAAOwyG,CACT,IAEFA,EAAmBA,EAAiBxyG,QAAQ,WAAW,WACrD,MAAO,UAAUyY,MACnB,IACAwvE,EAAMY,UAAU0pB,KAAO,CACrBl5F,QAAS,CACP,CACEjK,QAASo7E,OAAO,YAAY/xE,OAAS+5F,GACrC3oB,YAAY,EACZO,QAAQ,GAEV,CACEh7E,QAAS,mBACTy6E,YAAY,EACZO,QAAQ,IAGZjwE,OAAQ,CACN/K,QAAS,wDACTg7E,QAAQ,GAEVl4E,KAAM,CACJ9C,QACE,2EACFg7E,QAAQ,GAEVrqF,UAAW,CACTqP,QAAS,8CACTg7E,QAAQ,EACRnB,MAAO,YACPoB,OAAQ,CACNlwE,OAAQ,OAIZ,iBAAkB,CAChB/K,QAAS,2DACTy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACN,sBAAuB,CACrBj7E,QAAS,UACT65E,MAAO,eAETqE,KAAM,OAGV,sBAAuB,CACrBl+E,QAAS,OACT65E,MAAO,UAET,qBAAsB,CACpB75E,QAAS,iBACTy6E,YAAY,EACZZ,MAAO,eAET2B,SAAU,QACV,sBAAuB,CACrBx7E,QAAS,eACTy6E,YAAY,EACZZ,MAAO,YAET,kBAAmB,CACjB75E,QAAS,6CACTy6E,YAAY,EACZZ,MAAO,cAET,qBAAsB,CACpB,CACE75E,QAAS,qCACTy6E,YAAY,EACZZ,MAAO,aAET,CACE75E,QACE,wFACFy6E,YAAY,EACZZ,MAAO,YACPoB,OAAQ,CACNL,YAAa,QAInBF,QAAS,CAEP,8RAEA,gEAKFgB,SAAU,kCACVkC,MAAO,CACL59E,QAAS,SACT65E,MAAO,YAETiC,SAAU,sBACV,aAAc,eACd5jE,UAAW,CACTlY,QAAS,6DACTi7E,OAAQ,CACNL,YAAa,OAIjBxrF,OACE,6KACFI,QAAS,qBACTorF,YAAa,mCACbD,SAAU,uDAEZ9B,EAAMY,UAAU0pB,KAAK,kBAAkBloB,OAAOiD,KAAOrF,EAAMY,UAAU0pB,KACrEtqB,EAAMY,UAAU0pB,KAAgB,UAAEloB,OAAe,OAC/CpC,EAAMY,UAAU0pB,KAAa,MAChC,CA1HA,CA0HEtqB,EACL,CA/HA1tF,EAAOC,QAAU+3G,EACjBA,EAAKvzG,YAAc,OACnBuzG,EAAKtoB,QAAU,kCCCf,SAASwoB,EAAIxqB,IACV,SAAWA,GACV,IAAIoW,EAAgB,8CAA8C5lF,OAC9Dja,EAAS,mDACTk0G,EAAkB,CACpBtjG,QAASo7E,OAAO6T,EAAgB,QAChCpV,MAAO,UAEL0pB,EAAgB,CAClBvjG,QAAS,eAEPwjG,EAAe,CACjBxjG,QACE,kVACFy6E,YAAY,EACZZ,MAAO,WAELl4E,EAAO,CACT3B,QAAS,6CACT65E,MAAO,UACPY,YAAY,GAEVxwE,EAAU,CACZ,mBACA,CACEjK,QAAS,0BACTy6E,YAAY,IAGZ1vE,EAAS,CACX/K,QAASo7E,OAAO6T,GAChBjU,QAAQ,GAENJ,EAAc,qBACd9rC,EAAO,CACT9uC,QAAS,gBACT65E,MAAO,WAELgJ,EAAO,CACTnH,SAAU5sC,EACV,YAAa,CACX9uC,QAAS,kBACTy6E,YAAY,GAEdE,SAAU,IACV,iBAAkB4oB,EAClBpL,IAAK,CACHn4F,QAAS,UACT65E,MAAO,WAETzqF,OAAQA,EACR,mBAAoBk0G,EACpB1oB,YAAaA,EACb7vE,OAAQA,GAEN04F,EAAS,CACXzjG,QAAS,gCACTi7E,OAAQ,CACNP,QAAS,wBACTgpB,OAAQ,IACRD,OAAQ,CACNzjG,QAAS,oBACT65E,MAAO,YAIT8pB,EAAY,CACd3jG,QAAS,iDACTi7E,OAAQ,CACNP,QAAS,mBACT+oB,OAAQ,CACNzjG,QAAS,cACT65E,MAAO,YAIT+pB,EAAmB,CACrB5jG,QACE,iLACFy6E,YAAY,EACZZ,MAAO,WAELgqB,EAAkB,CACpB7jG,QAAS,gEACTy6E,YAAY,EACZZ,MAAO,WAELiqB,EACF,+iCACGz6F,OACD06F,EAAa,CACf/jG,QAASo7E,OACP,+CAA+C/xE,OAAOzY,QACpD,UACA,WACE,OAAOkzG,CACT,IAEF,KAEFrpB,YAAY,EACZQ,OAAQ,CACNP,QAASU,OACP,sBAAsB/xE,OAAOzY,QAAQ,UAAU,WAC7C,OAAOkzG,CACT,IACA,KAEFluG,OAAQ,CACNoK,QAAS,cACT65E,MAAO,WAET5vE,QAASA,EACTyxE,SAAU5sC,EACV,YAAa+zC,EAAK,aAClBlI,SAAUkI,EAAKlI,SACfsE,SAAU4D,EAAKsV,IACf/oG,OAAQA,EACR,mBAAoBk0G,EACpB1oB,YAAaA,EACb7vE,OAAQA,IAGRqxE,EAAW,CACbp8E,QACE,yxBACFy6E,YAAY,GAEd5B,EAAMY,UAAU4pB,IAAM,CACpBW,UAAW,CACThkG,QAAS,uDACTy6E,YAAY,EACZZ,MAAO,SACPoB,OAAQ,CACNP,QAAS,CACP16E,QAAS,8BAEX46E,YAAa,MAGjB,WAAY,CACV56E,QACE,+FACFy6E,YAAY,EACZQ,OAAQ,CACNsB,IAAK,CACHv8E,QAASo7E,OACP,oKAAoK/xE,OAAOzY,QACzK,UACA,WACE,OAAOq+F,CACT,IAEF,MAEFpV,MAAO,eACPoB,OAAQpC,EAAMY,UAAU8C,KAE1B,oBAAqBqnB,EACrB,iBAAkB,CAChB5jG,QACE,mFACFy6E,YAAY,EACZZ,MAAO,WAETzqF,OAAQA,EACR,mBAAoBk0G,EACpB1oB,YAAaA,EACb7vE,OAAQA,IAGZ,cAAe,CACb/K,QACE,0FACFy6E,YAAY,EACZQ,OAAQ,CACNhxE,QAASA,EACTgjF,OAAQ,CACNjtF,QAASo7E,OACP,iFAAiF/xE,OAAOzY,QACtF,UACA,WACE,OAAOq+F,CACT,IAEF,MAEFxU,YAAY,EACZZ,MAAO,kBACPoB,OAAQpC,EAAMY,UAAUwT,QAE1BvS,QAAS0B,EACT,mBAAoBynB,EACpB,oBAAqBD,EACrBx0G,OAAQA,EACR,mBAAoBk0G,EACpB1oB,YAAaA,EACb7vE,OAAQA,IAGZ,WAAY,CACV/K,QACE,uFACFy6E,YAAY,EACZQ,OAAQ,CACNhxE,QAASA,EACTq/E,IAAK,CACHtpF,QAASo7E,OACP,iFAAiF/xE,OAAOzY,QACtF,UACA,WACE,OAAOq+F,CACT,IAEF,MAEFxU,YAAY,EACZZ,MAAO,eACPoB,OAAQpC,EAAMY,UAAU6P,KAE1B5O,QAAS0B,EACT,mBAAoBynB,EACpB,oBAAqBD,EACrBx0G,OAAQA,EACR,mBAAoBk0G,EACpB1oB,YAAaA,EACb7vE,OAAQA,IAGZ,WAAY,CACV/K,QACE,mFACFy6E,YAAY,EACZQ,OAAQ,CACNhxE,QAASA,EACT,gBAAiB,CACfjK,QAAS,kCACTy6E,YAAY,EACZQ,OAAQ,CACNyB,UAAW,CACT18E,QAAS,qBACTi7E,OAAQ,CACNP,QAAS,qBAGbwD,KAAM2E,IAGV,cAAekhB,EACfrnB,UAAW,CACT18E,QACE,6DACFy6E,YAAY,EACZQ,OAAQ4H,GAEVlhF,KAAMA,EACN+4E,QAAS0B,EACTV,SAAU5sC,EACV20D,OAAQA,EACRE,UAAWA,EACX,oBAAqBC,EACrBx0G,OAAQA,EACR,mBAAoBk0G,EACpB1oB,YAAaA,EACb7vE,OAAQA,IAGZ,YAAa,CACX/K,QAASo7E,OACP,2CAA2C/xE,OAAOzY,QAChD,UACA,WACE,OAAOq+F,CACT,IAEF,MAEFxU,YAAY,EACZQ,OAAQ4H,GAGV,gBAAiB2gB,EACjB,iBAAkBD,EAClB,yBAA0B,CACxBvjG,QACE,2EACFy6E,YAAY,EACZQ,OAAQ,CACNS,SAAU,CACR17E,QAAS,gDACT65E,MAAO,WAET,gBAAiB2pB,EACjB,iBAAkBD,EAClB,eAAgB,CACdvjG,QAAS,uBAEX46E,YAAaA,IAGjB,oBAAqB,CACnB56E,QAAS,sBACTi7E,OAAQ,CACNP,QAAS,YAGb,YAAa,CACX16E,QAAS,qBACTi7E,OAAQ,CACNP,QAAS,WAIbkD,MAAO,CACL59E,QAAS,cACT65E,MAAO,WAET/pF,MAAO,CACLkQ,QAAS,2BACTi7E,OAAQ,CACNnrF,MAAO,CACL+pF,MAAO,UACP75E,QAAS,WAEXiK,QAASA,EACT7a,OAAQA,EACR,mBAAoBk0G,IAGxB,eAAgB,CACdtjG,QAAS,0CACTy6E,YAAY,EACZQ,OAAQ4H,GAEV,cAAekhB,EACf95F,QAASA,EACTyxE,SAAU5sC,EACV20D,OAAQA,EACRE,UAAWA,EACX,mBAAoBL,EACpB13C,SAAU,CAER5rD,QAASo7E,OAAO6T,EAAgB,aAChCpV,MAAO,UAET9uE,OAAQA,EACRpJ,KAAMA,EACN+4E,QAAS0B,EAET,mBAAoB,CAClBp8E,QAAS,oCACT65E,MAAO,YAGTzqF,OAAQA,EACRurF,SAAU,8DACVC,YAAaA,EAEhB,CArWA,CAqWE/B,EACL,CA1WA1tF,EAAOC,QAAUi4G,EACjBA,EAAIzzG,YAAc,MAClByzG,EAAIxoB,QAAU,kCCCd,SAASopB,EAAKprB,IACX,SAAWA,GACVA,EAAMY,UAAUwqB,KAAOprB,EAAMY,UAAUpuF,OAAO,MAAO,CAEnD4e,QAAS,CACPjK,QAAS,gDACTy6E,YAAY,EACZO,QAAQ,KAGZnC,EAAMY,UAAUx+C,aAAa,OAAQ,SAAU,CAE7C,cAAe,CAEbj7B,QAAS,sBACTg7E,QAAQ,EACRC,OAAQ,CACNkL,OAAQ,8BAIPtN,EAAMY,UAAUwqB,KAAK9d,OAC5B,IAAI3K,EAAW,yBACXb,EAAW,CACb,2CACA,CACE36E,QAAS,cACTy6E,YAAY,IAGhB5B,EAAMY,UAAUx+C,aAAa,OAAQ,WAAY,CAE/C,gBAAiB,CACfj7B,QAAS,eACTg7E,QAAQ,EACRC,OAAQ,CACNL,YAAa,IACbY,SAAUA,EACVb,SAAUA,IAId,gBAAiB,CACf36E,QAAS,qCACTg7E,QAAQ,EACRC,OAAQ,CACNntF,SAAU,CACR,kBACA,CACEkS,QAAS,aACTy6E,YAAY,IAGhBG,YAAa,IACbY,SAAUA,EACVb,SAAUA,EACViE,UAAW/F,EAAMY,UAAUwqB,KAAKrlB,qBAI/B/F,EAAMY,UAAUwqB,KAAKn2G,gBACrB+qF,EAAMY,UAAUwqB,KAAKrlB,UAE5B/F,EAAMY,UAAUx+C,aAAa,OAAQ,cAAe,CAClDnvC,SAAU,CACRkU,QACE,yHACFy6E,YAAY,EACZO,QAAQ,IAGb,CAtEA,CAsEEnC,EACL,CA3EA1tF,EAAOC,QAAU64G,EACjBA,EAAKr0G,YAAc,OACnBq0G,EAAKppB,QAAU,sCCHf,IAAIyV,EAAgBpjG,EAAQ,MAI5B,SAASg3G,EAAMrrB,GACbA,EAAMU,SAAS+W,GACfzX,EAAMY,UAAUyqB,MAAQrrB,EAAMY,UAAUpuF,OAAO,OAAQ,CACrD,uBAAwB,CACtB2U,QAAS,iBACTg7E,QAAQ,EACRnB,MAAO,UAET9uE,OAAQ,CACN/K,QAAS,kCACTg7E,QAAQ,GAEVN,QACE,qPACFtrF,OACE,0EACF8tF,QACE,8FACFnuC,OAAQ,kBAEV8pC,EAAMY,UAAUx+C,aAAa,QAAS,uBAAwB,CAC5D,uBAAwB,CACtBj7B,QACE,6HACFg7E,QAAQ,EACRC,OAAQ,CACNvuF,GAAI,CACFsT,QAAS,OACTg7E,QAAQ,EACRnB,MAAO,YAET9C,OAAQ,CACN/2E,QAAS,eACTg7E,QAAQ,EACRnB,MAAO,UAETsG,cAAe,CACbngF,QAAS,sCACTg7E,QAAQ,EACRC,OAAQ,CACNL,YAAa,aACbwF,WAAY,CACVpgF,QAAS,UACTi7E,OAAQpC,EAAMY,UAAUyqB,SAI9Bn5F,OAAQ,qBAIP8tE,EAAMY,UAAUyqB,MAAM,qBACtBrrB,EAAMY,UAAUyqB,MAAgB,QACzC,CAxDA/4G,EAAOC,QAAU84G,EACjBA,EAAMt0G,YAAc,QACpBs0G,EAAMrpB,QAAU,kCCChB,SAASh2E,EAAOg0E,IACb,SAAWA,GACVA,EAAMY,UAAU50E,OAAS,CAMvBoF,QACE,yIACFc,OAAQ,CACN/K,QAAS,oBACTg7E,QAAQ,GAEVjsC,OAAQ,CACN/uC,QAAS,kBACTg7E,QAAQ,GAEVl4E,KAAM,CACJ9C,QACE,0EACFg7E,QAAQ,GAEV,mBAAoB,CAElB,CACEh7E,QACE,qEACFy6E,YAAY,GAEd,CACEz6E,QAAS,+CACTy6E,YAAY,IAGhBC,QAAS,CACP16E,QACE,qZACFy6E,YAAY,GAEdyC,QAAS,CAEPl9E,QACE,0oDACFy6E,YAAY,GAEdE,SAAU,CACR36E,QAAS,4DACTy6E,YAAY,GAEdrrF,OAAQ,CA0BN4Q,QAASo7E,OA+Cb,SAAmB5B,GACjB,IAAK,IAAInvF,KAAOmvF,EACdA,EAAQnvF,GAAOmvF,EAAQnvF,GAAKuG,QAAQ,cAAc,SAAUvG,GAC1D,MAAO,MAAQmvF,EAAQnvF,GAAK4F,OAAS,GACvC,IAEF,OAAOupF,EAAQnvF,EACjB,CArDM85G,CAAU,CACR,cACE,2DAA2D96F,OAC7D,aAAc,sCAAsCA,OACpD,kBAAmB,uCAAuCA,OAC1D,gBACE,6DACGA,OACL,YAAa,8CAA8CA,OAC3D,cAAe,4BAA4BA,OAC3C,aAAc,sCAAsCA,OACpD,kBAAmB,uCAAuCA,OAC1D,gBACE,6DACGA,OACL,YAAa,iDACVA,OACH,WAAY,wDACTA,SAEL,KAEFoxE,YAAY,GAEdjrF,QAAS,CACPwQ,QAAS,qDACTy6E,YAAY,GAEdiB,SAAU,CACR17E,QACE,4EACFy6E,YAAY,GAEdsC,WAAY,CACV/8E,QAAS,oDACTy6E,YAAY,EACZO,QAAQ,GAEVJ,YAAa,YAgBhB,CAlIA,CAkIE/B,EACL,CAvIA1tF,EAAOC,QAAUyZ,EACjBA,EAAOjV,YAAc,SACrBiV,EAAOg2E,QAAU,kCCCjB,SAASupB,EAAKvrB,GACZA,EAAMY,UAAU2qB,KAAOvrB,EAAMY,UAAUpuF,OAAO,MAAO,CACnD4e,QAAS,CACPjK,QAAS,uCACTy6E,YAAY,GAEd0L,OAAQ,CACNnmF,QAAS,sDACTi7E,OAAQ,CACNI,KAAM,YAIVlvB,IAAK,0BAQLrgE,SAAU,CAERkU,QACE,iGACFi7E,OAAQ,CACN5uD,OAAQ,CACNrsB,QAAS,IACT65E,MAAO,aAET35E,YAAa,UACbs7E,SAAU,2BAGd1tF,SAAU,CACRkS,QAAS,2CACTi7E,OAAQ,CACNO,SAAU,6BAIhB3C,EAAMY,UAAUx+C,aAAa,OAAQ,SAAU,CAC7Cy/C,QAAS,CACP,oHACA,CACE16E,QAAS,2BACTy6E,YAAY,MAIlB5B,EAAMY,UAAUx+C,aAAa,OAAQ,YAAa,CAEhDugD,SAAU,2BAEZ3C,EAAMY,UAAUx+C,aAAa,OAAQ,WAAY,CAC/C,kBAAmB,CACjBj7B,QAAS,6BACT65E,MAAO,WAET35E,YAAa,CACXF,QAAS,UACT65E,MAAO,YAET6C,UAAW,CACT18E,QAAS,6BACT65E,MAAO,WAETrqF,QAAS,qBACTilG,KAAM,CACJz0F,QAAS,WACT65E,MAAO,WAETc,SAAU,CACR36E,QAAS,kDACTy6E,YAAY,KAGhB5B,EAAMY,UAAU2qB,KAAa,OAAEnpB,OAAOiD,KAAOrF,EAAMY,UAAU2qB,IAC/D,CAjFAj5G,EAAOC,QAAUg5G,EACjBA,EAAKx0G,YAAc,OACnBw0G,EAAKvpB,QAAU,sCCHf,IAAIwpB,EAAgBn3G,EAAQ,MAI5B,SAASo3G,EAAazrB,GACpBA,EAAMU,SAAS8qB,GACd,SAAWxrB,GAGV,IAAI0rB,EAAU,CAEZ,wDAAwDl7F,OACxD,UAAUA,OACV,2BAA2BA,OAE3B,0CAA0CA,QAC1C1a,KAAK,KACPkqF,EAAMY,UAAU,iBAAmB,CACjCmC,QAAS,CACP57E,QAASo7E,OAEP,IAAI/xE,OACF,MACC,kEACEA,OACD,IAGA,+BAA+BA,OACjC,KACA,cAAcA,OACd,qFAAqFA,OAAOzY,QAC1F,YACA,WACE,OAAO2zG,CACT,IAEJ,KAEFvpB,QAAQ,EACRC,OAAQ,CACN3sF,KAAM,CAIJ0R,QAAS,WACT65E,MAAO,cACPoB,OAAQ,CACNupB,KAAM,uCACN5pB,YAAa,IACb8O,KAAM,YAGVrK,KAAM,CACJr/E,QAAS,uBACTy6E,YAAY,EACZZ,MAAO,gBACPoB,OAAQpC,EAAMY,UAAU4F,MAE1B,eAAgB,CACdr/E,QAAS,SACT65E,MAAO,eAIb5sE,OAAQ,yBAEV4rE,EAAMY,UAAU,cAAgBZ,EAAMY,UAAwB,aAC5DZ,EAAMY,UAAU,gBACnB,CA/DA,CA+DEZ,EACL,CArEA1tF,EAAOC,QAAUk5G,EACjBA,EAAa10G,YAAc,eAC3B00G,EAAazpB,QAAU,kCCCvB,SAAS4pB,EAAM5rB,GAGbA,EAAMY,UAAUgrB,MAAQ,CACtBx6F,QAAS,MACTc,OAAQ,CACN/K,QAAS,gEACTg7E,QAAQ,GAEV,aAAc,CACZh7E,QACE,oEACFy6E,YAAY,EACZQ,OAAQ,CACN,aAAc,CACZj7E,QAAS,iCACTy6E,YAAY,GAEdviE,UAAW,CACTlY,QAAS,iCACTy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,OAGjBsC,QAAS,OAGbA,QAAS,CACP,CAEEl9E,QAAS,wBACTy6E,YAAY,GAEd,CAEEz6E,QAAS,uBACTy6E,YAAY,IAGhBC,QAAS,CACP,CACE16E,QAAS,mBACTy6E,YAAY,GAEd,CACEz6E,QAAS,4BACTy6E,YAAY,GAEd,CACEz6E,QACE,0JACFy6E,YAAY,IAGhBiB,SAAU,CACR17E,QAAS,qCACTy6E,YAAY,GAEdkW,MAAO,CACL3wF,QAAS,cACT65E,MAAO,YAETN,SAAU,CACRv5E,QAAS,8BACTy6E,YAAY,EACZZ,MAAO,YAETrqF,QAAS,CACPwQ,QAAS,sCACTy6E,YAAY,GAEdrrF,OAAQ,CACN4Q,QACE,sJACFy6E,YAAY,GAEdjhF,MAAO,CACLwG,QAAS,SACTy6E,YAAY,EACZZ,MAAO,YAETc,SAAU,gBACVC,YAAa,YAEjB,CAxFAzvF,EAAOC,QAAUq5G,EACjBA,EAAM70G,YAAc,QACpB60G,EAAM5pB,QAAU,kCCChB,SAAS6pB,EAAU7rB,GACjBA,EAAMY,UAAUirB,UAAY,CAC1Bz6F,QAAS,CACPjK,QAAS,iBACTg7E,QAAQ,GAEVl4E,KAAM,CACJ9C,QAAS,MACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,iBACTg7E,QAAQ,GAEVjsC,OAAQ,oDACR,kBAAmB,CACjB/uC,QAAS,oBACTy6E,YAAY,EACZQ,OAAQ,CACNO,SAAU,aACVZ,YAAa,OAGjB,sBAAuB,CACrB56E,QAAS,YACTi7E,OAAQ,CACNO,SAAU,YACVZ,YAAa,OAGjBF,QAAS,6BACTlrF,QAAS,qBACTJ,OAAQ,CACN,2CACA,8BAEFurF,SAAU,iDACVC,YAAa,iBAEjB,CA1CAzvF,EAAOC,QAAUs5G,EACjBA,EAAU90G,YAAc,YACxB80G,EAAU7pB,QAAU,sCCHpB,IAAIsM,EAA4Bj6F,EAAQ,KAIxC,SAASy3G,EAAO9rB,GACdA,EAAMU,SAAS4N,GACd,SAAWtO,GACVA,EAAMY,UAAUkrB,OAAS,CACvB16F,QAAS,CACPjK,QAAS,oBACTg7E,QAAQ,GAEV,eAAgB,CACdh7E,QAAS,4BACTg7E,QAAQ,EACRC,OAAQ,CACN0pB,OAAQ,CACN3kG,QAAS,sBACTi7E,OAAQ,MAEV2b,IAAK,CACH52F,QAAS,UACT65E,MAAO,eACPoB,OAAQpC,EAAMY,UAAUmd,OAI9B7rF,OAAQ,CACN,CACE/K,QAAS,wBACTg7E,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACbngF,QAAS,qBACTi7E,OAAQ,CACN,4BAA6B,CAC3Bj7E,QAAS,cACT65E,MAAO,eAETuG,WAAY,CACVpgF,QAAS,UACTi7E,OAAQ,QAIdO,SAAU,UAGd,CACEx7E,QAAS,wBACTg7E,QAAQ,IAGZN,QAAS,CACP16E,QAAS,6BACTy6E,YAAY,EACZO,QAAQ,GAEV2F,UAAW,CACT3gF,QAAS,aACTg7E,QAAQ,EACRnB,MAAO,eAETzqF,OAAQ,+DACRosF,SAAU,CACR,cACA,cACA,CACEx7E,QAAS,kCACTy6E,YAAY,GAEd,CACEz6E,QAAS,sBACTy6E,YAAY,IAGhBiB,SAAU,CACR17E,QAAS,wCACTy6E,YAAY,GAEd,YAAa,uBACbjrF,QAAS,mCACTorF,YAAa,oBACbD,SAAU,CACR,mCACA,iDACA,mDAGJ9B,EAAMY,UAAUkrB,OAAO,gBAAgB1pB,OAAO0pB,OAAO1pB,OACnDpC,EAAMY,UAAUkrB,OAClB9rB,EAAMY,UAAUkrB,OAAO55F,OAAO,GAAGkwE,OAAOkF,cAAclF,OAAOmF,WAAWnF,OACtEpC,EAAMY,UAAUkrB,OAClB,IAAI55F,EAAS,8CACT65F,EAAgBxpB,OAElB,mBAAmB/xE,OACjB,IACA,2BAA2BA,OAC3B,IACA,uEAAuEA,OAAOzY,QAC5E,UACA,WACE,OAAOma,EAAO1B,MAChB,IAEJ,KAEFwvE,EAAMwB,MAAMlqC,IAAI,mBAAmB,SAAU+pC,GAC3C,IAEI2qB,GAAoB,EACxBhsB,EAAMY,UAAU,qBAAqB8N,kBACnCrN,EACA,SACA0qB,GACA,SAAU14G,GAKR,MAXmB,eAQfA,IACF24G,GAAoB,IAEjBA,IAZgB,cAaf34G,IACF24G,GAAoB,IAEf,EAGX,GAEJ,IACAhsB,EAAMwB,MAAMlqC,IAAI,kBAAkB,SAAU+pC,GAC1CrB,EAAMY,UAAU,qBAAqB+N,qBAAqBtN,EAAK,SACjE,GACD,CAhIA,CAgIErB,EACL,CAtIA1tF,EAAOC,QAAUu5G,EACjBA,EAAO/0G,YAAc,SACrB+0G,EAAO9pB,QAAU,kCCCjB,SAASiqB,EAAIjsB,IAGV,SAAWA,GACV,IAAIuD,EACF,0PACFvD,EAAMY,UAAUqrB,IAAM,CAEpB76F,QACE,4EACFc,OAAQ,CACN/K,QAAS,sBACTg7E,QAAQ,GAEV,aAAc,CACZ,CAOEh7E,QAASo7E,OACP,2HAA2H/xE,OACxHzY,QAAQ,eAAe,WACtB,MAAO,iBAAiByY,MAC1B,IACCzY,QAAQ,eAAe,WACtB,MAAO,6FACJyY,MACL,IACCzY,QAAQ,cAAc,WACrB,MAAO,+BAA+ByY,MACxC,IACCzY,QAAQ,cAAc,WACrB,OAAOwrF,EAAS/yE,MAClB,IACF,KAEFoxE,YAAY,EACZO,QAAQ,EACRC,OAAQ,MAEV,CACEj7E,QACE,yFACFy6E,YAAY,IAGhBiB,SAAU,CACR17E,QAAS,qCACTy6E,YAAY,GAEdC,QAAS0B,EACTZ,SAAU,CACRx7E,QAAS,oBACTy6E,YAAY,GAEdrrF,OAAQ,iDACR21G,KAAM,CACJ/kG,QAAS,2BACT65E,MAAO,YAETrqF,QAAS,sBACTmrF,SAAU,4CACVC,YAAa,kBAEf/B,EAAMY,UAAUqrB,IAAI,cAAc,GAAG7pB,OAASpC,EAAMY,UAAUqrB,IAC9DjsB,EAAMY,UAAUurB,MAAQnsB,EAAMY,UAAUqrB,GACzC,CAlEA,CAkEEjsB,EACL,CAzEA1tF,EAAOC,QAAU05G,EACjBA,EAAIl1G,YAAc,MAClBk1G,EAAIjqB,QAAU,CAAC,wCCCf,SAASoqB,EAASpsB,GAChBA,EAAMY,UAAUwrB,SAAWpsB,EAAMY,UAAUpuF,OAAO,QAAS,CACzD,aAAc,CACZ2U,QACE,0EACFy6E,YAAY,GAEdC,QACE,+YACFC,SAAU,qEAEZ9B,EAAMY,UAAUx+C,aAAa,WAAY,UAAW,CAClDiiD,QACE,gMAEJrE,EAAMY,UAAUx+C,aAAa,WAAY,SAAU,CACjD71B,QAAS,CACPpF,QAAS,6BACTy6E,YAAY,EACZZ,MAAO,YAGXhB,EAAMY,UAAUyrB,IAAMrsB,EAAMY,UAAUwrB,QACxC,CA1BA95G,EAAOC,QAAU65G,EACjBA,EAASr1G,YAAc,WACvBq1G,EAASpqB,QAAU,CAAC,sCCCpB,SAASsqB,EAAatsB,IACnB,SAAWA,GACV,IAAIusB,EAAO,CAETplG,QAAS,+DACT65E,MAAO,WACPoB,OAAQ,CACNL,YAAa,SAGjB/B,EAAMY,UAAU,iBAAmB,CACjCxvE,QAAS,CACPjK,QAAS,MACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,0BACTg7E,QAAQ,EACRC,OAAQ,CACNmqB,KAAMA,IAGV7gG,OAAQ,CAMNvE,QACE,kHACFy6E,YAAY,EACZO,QAAQ,EACRnB,MAAO,WAET/rF,SAAU,CACRkS,QAAS,kDACTy6E,YAAY,EACZQ,OAAQ,CACNmqB,KAAMA,IAGVA,KAAMA,EACNh2G,OAAQ,oBACRI,QAAS,qBACTmrF,SAAU,IACVC,YAAa,SAEf/B,EAAMY,UAAe,IAAIZ,EAAMY,UAAU,gBAC1C,CA/CA,CA+CEZ,EACL,CApDA1tF,EAAOC,QAAU+5G,EACjBA,EAAav1G,YAAc,eAC3Bu1G,EAAatqB,QAAU,sCCHvB,IAAIsM,EAA4Bj6F,EAAQ,KAIxC,SAASm4G,EAAIxsB,GACXA,EAAMU,SAAS4N,GACd,SAAWtO,GACV,IAAIoW,EAAgB,iDAChBqW,EAAgB,oDACpBzsB,EAAMY,UAAU4rB,IAAM,CACpBp7F,QAAS,CACP,mBACA,CACEjK,QAAS,aACTy6E,YAAY,EACZO,QAAQ,IAGZ,cAAe,CACbh7E,QACE,0FACFy6E,YAAY,EACZZ,MAAO,SACPoB,OAAQ,CACNL,YAAa,OAGjBmF,UAAW,CACT//E,QAAS,oCACTy6E,YAAY,EACZZ,MAAO,YAETa,QAAS,CACP,CACE16E,QACE,mNACFy6E,YAAY,GAEd,2FAEFkG,UAAW,CACT3gF,QAAS,kBACT65E,MAAO,eAET/rF,SAAU,WACV0tF,SAAU,CACRx7E,QAAS,2CACTi7E,OAAQ,CACNlwE,OAAQ,CACN/K,QAASivF,EACTjU,QAAQ,GAEV5rF,OAAQk2G,EACR1qB,YAAa,aAGjB7vE,OAAQ,CACN/K,QAASivF,EACTjU,QAAQ,GAEVU,SAAU,CACR,YACA,CACE17E,QAAS,oBACTy6E,YAAY,IAGhBjrF,QAAS,qBACTJ,OAAQk2G,EACR3qB,SAAU,iDACVC,YAAa,kBAEf/B,EAAMwB,MAAMlqC,IAAI,mBAAmB,SAAU+pC,GAC3C,IAGIqrB,GAAkB,EACtB1sB,EAAMY,UAAU,qBAAqB8N,kBACnCrN,EACA,MANe,kDAQf,SAAUhuF,GAKR,MAXiB,eAQbA,IACFq5G,GAAkB,IAEfA,IAZc,cAabr5G,IACFq5G,GAAkB,IAEb,EAGX,GAEJ,IACA1sB,EAAMwB,MAAMlqC,IAAI,kBAAkB,SAAU+pC,GAC1CrB,EAAMY,UAAU,qBAAqB+N,qBAAqBtN,EAAK,MACjE,GACD,CA7FA,CA6FErB,EACL,CAnGA1tF,EAAOC,QAAUi6G,EACjBA,EAAIz1G,YAAc,MAClBy1G,EAAIxqB,QAAU,sCCHd,IAAI2qB,EAAkBt4G,EAAQ,MAI9B,SAASu4G,EAAO5sB,GACdA,EAAMU,SAASisB,GACf3sB,EAAMY,UAAUgsB,OAAS5sB,EAAMY,UAAUpuF,OAAO,SAAU,CACxDmE,QAAS,sBACTgsF,SAAU,CACRx7E,QAAS,UACTg7E,QAAQ,KAGZnC,EAAMY,UAAUx+C,aAAa,SAAU,cAAe,CACpDy/C,QAAS,CACP,8SACA,0YACA,gCAGJ7B,EAAMY,UAAUisB,GAAK7sB,EAAMY,UAAUgsB,MACvC,CApBAt6G,EAAOC,QAAUq6G,EACjBA,EAAO71G,YAAc,SACrB61G,EAAO5qB,QAAU,CAAC,qCCClB,SAAS8qB,EAAU9sB,GACjBA,EAAMY,UAAU,cAAgB,CAC9BxvE,QAAS,iCACTc,OAAQ,CACN/K,QAAS,oBACTg7E,QAAQ,GAGVN,QACE,8tCACF,gBAAiB,CACf16E,QAAS,gCACT65E,MAAO,YAET6B,SAAU,iBACV5tF,SAAU,qBACV69D,KAAM,CAEJ3rD,QAAS,oDACT65E,MAAO,UAETzqF,OAAQ,oBACRI,QAAS,0BACTmrF,SAAU,mBACVC,YAAa,WAEjB,CA7BAzvF,EAAOC,QAAUu6G,EACjBA,EAAU/1G,YAAc,YACxB+1G,EAAU9qB,QAAU,kCCCpB,SAAS+qB,EAAI/sB,GACXA,EAAMY,UAAUmsB,IAAM/sB,EAAMY,UAAUpuF,OAAO,QAAS,CACpD0f,OAAQ,CACN/K,QAAS,sCACTg7E,QAAQ,GAEVN,QACE,mRACFlrF,QAAS,sBACTksF,SACE,+h/BACFtsF,OACE,qEACFurF,SAAU,2DACV,iBAAkB,CAChB36E,QACE,oJACF65E,MAAO,WAETiC,SAAU,2BAEZjD,EAAMY,UAAUx+C,aAAa,MAAO,SAAU,CAC5C2iD,MAAO,CACL59E,QAAS,oDACTy6E,YAAY,EACZO,QAAQ,EACRnB,MAAO,WACPoB,OAAQ,CACNoD,UAAW,CACTr+E,QAAS,aACT65E,MAAO,WAET5vE,QAAS4uE,EAAMY,UAAUmsB,IAAI37F,mBAI5B4uE,EAAMY,UAAUmsB,IAAI,aAC7B,CAxCAz6G,EAAOC,QAAUw6G,EACjBA,EAAIh2G,YAAc,MAClBg2G,EAAI/qB,QAAU,kCCCd,SAAS0B,EAAI1D,GACXA,EAAMY,UAAU8C,IAAM,CACpBtyE,QAAS,CACPjK,QAAS,gDACTy6E,YAAY,GAEde,SAAU,CACR,CACEx7E,QAAS,sCACTg7E,QAAQ,GAEV,YAEFjwE,OAAQ,CACN/K,QAAS,kDACTg7E,QAAQ,EACRP,YAAY,GAEdsC,WAAY,CACV/8E,QAAS,sCACTg7E,QAAQ,EACRP,YAAY,EACZQ,OAAQ,CACNL,YAAa,UAGjBc,SACE,4FAEFhB,QACE,u9EACFlrF,QAAS,2BACTJ,OAAQ,4CACRurF,SACE,+HACFC,YAAa,cAEjB,CAxCAzvF,EAAOC,QAAUmxF,EACjBA,EAAI3sF,YAAc,MAClB2sF,EAAI1B,QAAU,kCCCd,SAASgrB,EAAShtB,GAChBA,EAAMY,UAAUosB,SAAWhtB,EAAMY,UAAUpuF,OAAO,QAAS,CACzD4e,QAAS,CACP4uE,EAAMY,UAAUN,MAAe,QAAE,GACjC,CACEn5E,QAAS,yBACTy6E,YAAY,EACZO,QAAQ,IAGZjwE,OAAQ,CACN/K,QAAS,6DACTy6E,YAAY,EACZO,QAAQ,GAEV,aAAc,CACZh7E,QAAS,wDACTy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,OAGjBF,QACE,yOACFtrF,OAAQ,wDACRurF,SAAU,0DACVC,YAAa,kBAEf/B,EAAMY,UAAUx+C,aAAa,WAAY,SAAU,CACjDn4B,KAAM,CACJ9C,QAAS,6DACTy6E,YAAY,EACZO,QAAQ,KAGZnC,EAAMY,UAAUx+C,aAAa,WAAY,WAAY,CACnD,wBAAyB,CACvBj7B,QAAS,UACT65E,MAAO,aAEToe,OAAQ,CACNj4F,QAAS,UACT65E,MAAO,aAGb,CAhDA1uF,EAAOC,QAAUy6G,EACjBA,EAASj2G,YAAc,WACvBi2G,EAAShrB,QAAU,kCCCnB,SAASirB,EAAKjtB,IACX,SAAWA,GAEV,IAAIktB,EACF,8MACFltB,EAAMY,UAAUqsB,KAAO,CACrB77F,QAAS,yCACTc,OAAQ,CAGN/K,QAAS,kCACTg7E,QAAQ,GAEVqD,UAAW,CACTr+E,QAAS,yBACTy6E,YAAY,EACZZ,MAAO,YAET,eAAgB,CACd75E,QAASo7E,OACP,IACE2qB,EAAqB18F,OACrB,WAAWA,OACX,IACA,cAAcA,QAElBoxE,YAAY,EACZZ,MAAO,YAETmsB,WAAY,CACVhmG,QAAS,uDACTy6E,YAAY,EACZQ,OAAQ,CACNmF,WAAY,CACVpgF,QAAS,sDACTy6E,YAAY,EACZQ,OAAQ,MAEVntF,SAAU,sBACV6sF,SAAU,IACVC,YAAa,YAGjBF,QAAS,CACP,CACE16E,QACE,sFACF65E,MAAO,iBAET,mQACAksB,GAEFrqB,SAAU,uBACVtsF,OACE,8FACFI,QAAS,qBACTmrF,SAAU,8CACVC,YAAa,gBAEf/B,EAAMY,UAAUqsB,KAAKE,WAAW/qB,OAAOmF,WAAWnF,OAChDpC,EAAMY,UAAUqsB,IACnB,CA5DA,CA4DEjtB,EACL,CAjEA1tF,EAAOC,QAAU06G,EACjBA,EAAKl2G,YAAc,OACnBk2G,EAAKjrB,QAAU,iCCCf,SAASorB,EAAOptB,IACb,SAAWA,GACV,IAAIoN,EAAO,CACTjmF,QAAS,sBACTy6E,YAAY,GAEVrrF,EAAS,CACX4Q,QAAS,uCACTy6E,YAAY,GAEVQ,EAAS,CACXhxE,QAAS,CACPjK,QAAS,uCACTy6E,YAAY,GAEdtuB,IAAK,CACHnsD,QAAS,yBACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,gDACTg7E,QAAQ,GAEVmF,cAAe,KAEfrxC,KAAM,KAEN8vC,UAAW,+BACXlE,QAAS,CACP16E,QAAS,2DACTy6E,YAAY,GAEdyL,QAAS,iBACT7iF,MAAO,CACL,q5CACA,CACErD,QACE,4JACFi7E,OAAQ,CACNgL,KAAMA,EACN72F,OAAQA,EACRssF,SAAU,eACVd,YAAa,WAInB/uE,OAAQ,kBACRo6E,KAAMA,EACNz2F,QAAS,qBACTmrF,SAAU,CAGR,wGAEFvrF,OAAQA,EACRwrF,YAAa,iBAEfK,EAAsB,cAAI,CACxBj7E,QAAS,iBACT65E,MAAO,WACPoB,OAAQ,CACN0F,UAAW,CACT3gF,QAAS,UACT65E,MAAO,eAETqE,KAAMjD,IAGVA,EAAa,KAAI,CACfj7E,QAAS,oBACTi7E,OAAQ,CACNS,SAAU,SACVwC,KAAMjD,IAGVpC,EAAMY,UAAUwsB,OAAS,CACvB,qBAAsB,CACpBjmG,QAAS,gBACTy6E,YAAY,EACZQ,OAAQ,CACNkL,OAAQ,WACRjI,KAAMjD,IAGV,uBAAwB,CACtBj7E,QAAS,qDACTy6E,YAAY,EACZQ,OAAQ,CACNO,SAAU,OACV0C,KAAMjD,IAGVyB,UAAW,CACT18E,QAAS,iDACTy6E,YAAY,EACZQ,OAAQ,CACNP,QAAS,OACTwD,KAAMjD,IAKV,uBAAwB,CACtBj7E,QACE,6HACFy6E,YAAY,EACZQ,OAAQ,CACNntF,SAAU,CACRkS,QAAS,WACTi7E,OAAQ,CACNkF,cAAelF,EAAOkF,gBAG1BjC,KAAMjD,IAMVnvF,SAAU,CACRkU,QACE,wOACFy6E,YAAY,EACZQ,OAAQ,CACNkF,cAAelF,EAAOkF,cACtBl2E,QAASgxE,EAAOhxE,QAChB2wE,YAAa,UAGjB9rC,KAAMmsC,EAAOnsC,KACb/jC,OAAQkwE,EAAOlwE,OACfd,QAAS,CACPjK,QAAS,uCACTy6E,YAAY,EACZO,QAAQ,GAEVmF,cAAelF,EAAOkF,cACtBvF,YAAa,gBAEhB,CA1IA,CA0IE/B,EACL,CA/IA1tF,EAAOC,QAAU66G,EACjBA,EAAOr2G,YAAc,SACrBq2G,EAAOprB,QAAU,kCCCjB,SAASqrB,EAAMrtB,GACbA,EAAMY,UAAUysB,MAAQ,CACtBj8F,QAAS,CAEPjK,QACE,uFACFy6E,YAAY,EACZO,QAAQ,GAEV,iBAAkB,CAEhB,CACEh7E,QAASo7E,OACP,YAAY/xE,OACV,MACA,8DACGA,OACH,IACA,iEACGA,OACH,IACA,WAAWA,QAEfoxE,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACbngF,QAAS,oCACTy6E,YAAY,EACZQ,OAAQ,MAEV,4BAA6B,CAC3Bj7E,QAAS,YACT65E,MAAO,eAETe,YAAa,eACb7vE,OAAQ,YAGZ,CACE/K,QAASo7E,OACP,gBAAgB/xE,OACd,MACA,gEACGA,OACH,IACA,2DAA2DA,OAL7D,QASFoxE,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACbngF,QAAS,sCACTy6E,YAAY,EACZQ,OAAQ,MAEV,4BAA6B,CAC3Bj7E,QAAS,cACT65E,MAAO,eAET9uE,OAAQ,aAIdszE,UAAW,CAETr+E,QAASo7E,OACP,IAAI/xE,OACF,MACC,kBAAkBA,OACjB,YAGA,8GACGA,OAPP,MAUE,mBAAmBA,OACnB,KAEJwwE,MAAO,WACPoB,OAAQ,CACN,iBAAkB,QAClBzrF,QAAS,qBACTJ,OAAQ,oBACRurF,SAAU,mBACVC,YAAa,UAGjBqiB,QAAS,CACPj9F,QACE,2FACF65E,MAAO,YAET,kBAAmB,CACjB75E,QAAS,SACT65E,MAAO,YAETlpF,UAAW,CACTqP,QAAS,OACT65E,MAAO,UAET,sBAAuB,CACrB75E,QAAS,iBACTy6E,YAAY,EACZZ,MAAO,YAETrgF,MAAO,CAELwG,QACE,2EACFy6E,YAAY,EACZZ,MAAO,aAETa,QACE,unBACFlrF,QAAS,qBACT22G,IAAK,CACHnmG,QAAS,UACT65E,MAAO,YAET,iBAAkB,UAClBusB,KAAM,CACJpmG,QAAS,QACT65E,MAAO,WAETzqF,OACE,kFAEF,aAAc,kCACdssF,SAAU,wBACVI,SAAU,sCAIVnB,SAAU,0CACVC,YAAa,mBAEf/B,EAAMY,UAAUysB,MAAM,kBAAkB33E,SAAQ,SAAU8sD,GACxDA,EAAKJ,OAAsB,cAAEA,OAASpC,EAAMY,UAAUysB,KACxD,GACF,CAlJA/6G,EAAOC,QAAU86G,EACjBA,EAAMt2G,YAAc,QACpBs2G,EAAMrrB,QAAU,kCCChB,SAASwrB,EAAQxtB,IAEd,SAAWA,GACV,IAAI5uE,EAAU,CACZjK,QAAS,WACTg7E,QAAQ,GAENsrB,EAAe,4CAA4Cj9F,OAC/DwvE,EAAMY,UAAU4sB,QAAU,CACxBp8F,QAASA,EACTw+E,QAAS,CACPzoF,QAAS,gCACTg7E,QAAQ,EACRC,OAAQ,CACNL,YAAa,UACb,eAAgB,CACd56E,QAAS,UACT65E,MAAO,cAIbxvF,IAAK,CACH2V,QAAS,uBACTg7E,QAAQ,EACRnB,MAAO,aAET9uF,MAAO,CAMLiV,QAASo7E,OACP,kBAAkB/xE,OAChB,MACAi9F,EAFF,oBAKG,UAAUj9F,OAAV,wBAGCi9F,EAHD,KAMC,sCAAsCj9F,OACxC,MAEJoxE,YAAY,EACZO,QAAQ,EACRnB,MAAO,aACPoB,OAAQ,CACNhxE,QAASA,EACTqzE,OAAQ,CACNt9E,QAASo7E,OAAO,SAAS/xE,OAASi9F,GAClC7rB,YAAY,EACZO,QAAQ,GAEVJ,YAAa,OACbprF,QAAS,CACPwQ,QAAS,iCACTg7E,QAAQ,KAIdJ,YAAa,IAEhB,CAhEA,CAgEE/B,EACL,CAtEA1tF,EAAOC,QAAUi7G,EACjBA,EAAQz2G,YAAc,UACtBy2G,EAAQxrB,QAAU,sCCHlB,IAAI0rB,EAAwBr5G,EAAQ,MAChCqxF,EAAkBrxF,EAAQ,MAI9B,SAASs5G,EAAK3tB,GACZA,EAAMU,SAASgtB,GACf1tB,EAAMU,SAASgF,GACf1F,EAAMY,UAAUgtB,GAAK5tB,EAAMY,UAAU,SACnCZ,EAAMY,UAAU,iBAAiBitB,SAAS,SAC9C,CARAv7G,EAAOC,QAAUo7G,EACjBA,EAAK52G,YAAc,OACnB42G,EAAK3rB,QAAU,kCCAf,SAAS8rB,EAAa9tB,IACnB,SAAWA,GACV,SAAS+tB,EAAY/gG,EAAQo1E,EAAQ4rB,GACnC,MAAO,CACL7mG,QAASo7E,OAAO,KAAOv1E,EAAS,gBAChCg0E,MAAO,QACPoB,OAAQ,CACN0F,UAAW,CACT3gF,QAASo7E,OAAO,MAAQv1E,EAAS,QACjCg0E,MAAO,aAETxrF,QAAS,CACP2R,QAAS,UACTi7E,OAAQA,EACRpB,MAAOgtB,IAIf,CAyBAhuB,EAAMY,UAAU,iBAAmBlwF,OAAOK,eAAe,CAAC,EAAG,WAAY,CACvEmB,MAzBF,SAAkB+7G,GAChB,IAAIttB,EAAUX,EAAMY,UAAUqtB,GAC1Bn6G,EAAY,YAAcm6G,EAC9B,MAAO,CACLthB,MAAO,CACLxlF,QAAS,eACTi7E,OAAQ,CACNoD,UAAWuoB,EAAY,IAAK,CAC1B,aAAc,CACZ5mG,QAAS,mDACTi7E,OAAQ,CACNL,YAAa,mBAGjBF,QAAS,cACT,YAAa,UAEf0F,WAAYwmB,EAAY,IAAKptB,EAAS7sF,GACtC,gBAAiBi6G,EAAY,MAAOptB,EAAS7sF,GAC7Co6G,SAAUH,EAAY,GAAIptB,EAAS7sF,KAI3C,GAID,CA7CA,CA6CEksF,EACL,CAlDA1tF,EAAOC,QAAUu7G,EACjBA,EAAa/2G,YAAc,eAC3B+2G,EAAa9rB,QAAU,sCCHvB,IAAI0rB,EAAwBr5G,EAAQ,MAChC85G,EAAiB95G,EAAQ,MAI7B,SAAS+5G,EAAKpuB,GACZA,EAAMU,SAASgtB,GACf1tB,EAAMU,SAASytB,GACfnuB,EAAMY,UAAU,SAAWZ,EAAMY,UAAU,iBAAiBitB,SAAS,QACvE,CAPAv7G,EAAOC,QAAU67G,EACjBA,EAAKr3G,YAAc,OACnBq3G,EAAKpsB,QAAU,sCCJf,IAAIqsB,EAAgBh6G,EAAQ,MAI5B,SAASi6G,EAAItuB,GACXA,EAAMU,SAAS2tB,GAEfruB,EAAMY,UAAU0tB,IAAM,CACpBC,KAAM,mBACNC,KAAM,eACNC,OAAQ,oBACRC,QAAS,eACTniG,QAAS,mBACToiG,KAAM,yBACNC,QAAS,CACPznG,QAAS,qBACTg7E,QAAQ,GAEVJ,YAAa,OACbyD,UAAW,MACXqpB,QAAS,CACP1nG,QAAS,2CACTy6E,YAAY,EACZQ,OAAQpC,EAAMY,UAAU+f,KACxB3f,MAAO,iBAGb,CA1BA1uF,EAAOC,QAAU+7G,EACjBA,EAAIv3G,YAAc,MAClBu3G,EAAItsB,QAAU,kCCCd,SAAS8sB,EAAI9uB,GACXA,EAAMY,UAAUkuB,IAAM,CACpB19F,QAAS,CACPjK,QAAS,eACTy6E,YAAY,GAEd1vE,OAAQ,CACN/K,QAAS,sCACTg7E,QAAQ,GAEVQ,SAAU,CACR,CACEx7E,QAAS,oCACTy6E,YAAY,GAEd,CACEz6E,QAAS,gBACTy6E,YAAY,GAEd,CACEz6E,QAAS,mDACTy6E,YAAY,IAGhBiB,SAAU,CACR17E,QAAS,0BACTy6E,YAAY,GAEdyC,QAAS,CACP,CACEl9E,QACE,+FACFy6E,YAAY,GAEd,uBAEF35E,MAAO,CACLd,QAAS,wCACTy6E,YAAY,EACZZ,MAAO,YAETa,QAAS,CACP16E,QACE,mvBACFy6E,YAAY,GAEdE,SACE,sEACFC,YAAa,aAEjB,CArDAzvF,EAAOC,QAAUu8G,EACjBA,EAAI/3G,YAAc,MAClB+3G,EAAI9sB,QAAU,kCCCd,SAAS+sB,EAAQ/uB,IACd,SAAWA,GAGV,IAAIgvB,EAAgB,yCAAyCx+F,OAEzDy+F,EAAmB,uBAAuBz+F,OAK9C,SAAS0+F,EAAa1+F,EAAQg0C,GAC5B,OAAO+9B,OACL/xE,EACGzY,QAAQ,UAAU,WACjB,MAAO,MAAQi3G,EAAgB,GACjC,IACCj3G,QAAQ,UAAU,WACjB,MAAO,MAAQk3G,EAAmB,GACpC,IACFzqD,GAAS,GAEb,CACA,IAAI2qD,EAAiB,CACnB9uB,IAAK,CACHl5E,QAAS,aACTi7E,OAAQ,CACNiD,KAAMrF,EAAMY,UAAUP,MAG1B,WAAY,CACVl5E,QAAS,mBACTy6E,YAAY,EACZZ,MAAO,cAETpgF,KAAM,CACJuG,QAAS,qBACTy6E,YAAY,EACZZ,MAAO,cAGTe,YAAa,gBAEXgtB,EAAW/uB,EAAMY,UAAUmuB,QAAU/uB,EAAMY,UAAUpuF,OAAO,SAAU,CACxE48G,OAAQ,CACNjoG,QAAS,2CACTy6E,YAAY,EACZQ,OAAQ,CAEN,YAAa,CACXj7E,QAAS+nG,EAAa,oCAAoC1+F,QAC1D4xE,OAAQ,CACNitB,SAAU,CACRloG,QAAS+nG,EACP,0CAA0C1+F,QAE5CoxE,YAAY,EACZQ,OAAQ+sB,GAEVh0D,IAAK,YACL4mC,YAAa,QAKjBjhF,KAAM,CACJqG,QAAS+nG,EAAa,sBAAsB1+F,OAAQ,KACpD4xE,OAAQ,CACNitB,SAAU,CACRloG,QAAS+nG,EAAa,iBAAiB1+F,QACvCoxE,YAAY,EACZQ,OAAQ+sB,GAEVptB,YAAa,WAIjB4C,MAAO,CAGLx9E,QAAS+nG,EACP,qIACG1+F,OACH,KAEF4xE,OAAQ,CACNitB,SAAU,CAGRloG,QAAS+nG,EACP,8DACG1+F,QAELoxE,YAAY,EACZQ,OAAQ+sB,GAEVptB,YAAa,WAGjBiD,OAAQ,CAEN79E,QAAS+nG,EACP,qEACG1+F,QAELoxE,YAAY,EACZQ,OAAQ,CAGN8C,KAAM,CAEJ/9E,QAAS+nG,EAAa,4BAA4B1+F,QAClDoxE,YAAY,GAGdqD,OAAQ,CAEN99E,QAAS+nG,EAAa,0BAA0B1+F,QAChDoxE,YAAY,GAGd9jF,KAAM,CAEJqJ,QAAS+nG,EAAa,2BAA2B1+F,QACjDoxE,YAAY,EACZZ,MAAO,UAGT32E,KAAM,CAEJlD,QAAS+nG,EAAa,qBAAqB1+F,QAC3CoxE,YAAY,EACZZ,MAAO,WAGTgI,SAAU,CAER7hF,QAAS+nG,EAAa,uBAAuB1+F,QAC7CoxE,YAAY,GAGd+Q,QAAS,CAEPxrF,QAAS+nG,EAAa,qBAAqB1+F,QAC3CoxE,YAAY,GAGdn5E,KAAM,CAEJtB,QAAS+nG,EAAa,qBAAqB1+F,QAC3CoxE,YAAY,GAEdytB,SAAU,CACRloG,QAAS+nG,EACP,oCAAoC1+F,QAEtCoxE,YAAY,EACZQ,OAAQ+sB,GAEVptB,YAAa,kBAIjB,WAAY,CACV56E,QAAS,mBACTi7E,OAAQ,CACNlwE,OAAQ,CACN/K,QAAS,oBACTy6E,YAAY,GAEdtuB,IAAK,CACHnsD,QAAS,YACTy6E,YAAY,GAEdG,YAAa,WAKjB92E,KAAM,CAEJ9D,QAAS+nG,EACP,uCAAuC1+F,QAEzC4xE,OAAQ,CACNh2E,KAAM,CAEJjF,QAAS+nG,EAAa,uBAAuB1+F,QAC7CoxE,YAAY,GAEdytB,SAAU,CACRloG,QAAS+nG,EAAa,aAAa1+F,QACnCoxE,YAAY,EACZQ,OAAQ+sB,GAEV77C,IAAK,CACHnsD,QAAS,QACTy6E,YAAY,GAEdG,YAAa,SAKjButB,MAAO,CACLnoG,QAAS+nG,EACP,uFACG1+F,QAEL4xE,OAAQ,CACN5xE,OAAQ,CACNrJ,QAAS+nG,EACP,kEACG1+F,QAELoxE,YAAY,EACZZ,MAAO,OAETquB,SAAU,CACRloG,QAAS+nG,EAAa,6BAA6B1+F,QACnDoxE,YAAY,EACZQ,OAAQ+sB,GAEV77C,IAAK,CACHnsD,QAAS,QACTy6E,YAAY,GAEdG,YAAa,SAIjBwtB,SAAU,CACRpoG,QAAS,YACT65E,MAAO,UACPoB,OAAQ,CACNL,YAAa,UAIjBytB,QAAS,CACProG,QAAS,sBACTi7E,OAAQ,CACNhxE,QAAS,CACPjK,QAAS,mBACTy6E,YAAY,GAEdG,YAAa,SAIjBn0E,KAAM,CACJzG,QAAS,mBACT65E,MAAO,UACPoB,OAAQ,CACNL,YAAa,aAMnB0tB,EAAeV,EAAgB,OAAE3sB,OACjCstB,EAAiB,CACnB1qB,OAAQyqB,EAAqB,OAC7BxkG,KAAMwkG,EAAmB,KACzBH,MAAOG,EAAoB,MAC3BF,SAAUE,EAAuB,SACjCD,QAASC,EAAsB,QAC/B7hG,KAAM6hG,EAAmB,MAE3BV,EAAQ5zD,IAAIh0C,QACV,qGACF,IAAIwoG,EAAqBF,EAAqB,OAAErtB,OAChDutB,EAAyB,KAAEvtB,OAASstB,EACpCC,EAA2B,OAAEvtB,OAASstB,EACtCC,EAA6B,SAAEvtB,OAASstB,EACxCC,EAA4B,QAAEvtB,OAASstB,EACvCC,EAAyB,KAAEvtB,OAASstB,EACpC,IAAIE,EAAoBH,EAAoB,MAAErtB,OAC9CwtB,EAA0B,OAAIF,EAAuB,OACrDE,EAAwB,KAAIF,EAAqB,KACjDE,EAAyB,MAAIF,EAAsB,MACnDE,EAA4B,SAAIF,EAAyB,SACzDE,EAA2B,QAAIF,EAAwB,QACvDE,EAAwB,KAAIF,EAAqB,IAClD,CA3RA,CA2RE1vB,EACL,CAhSA1tF,EAAOC,QAAUw8G,EACjBA,EAAQh4G,YAAc,UACtBg4G,EAAQ/sB,QAAU,kCCClB,SAAS6tB,EAAK7vB,IACX,SAAWA,GACV,IAAIxuF,EAAM,+CAA+Cgf,OAIzD,SAASs/F,EAAU3oG,GACjB,OAAOA,EAAQpP,QAAQ,OAAO,WAC5B,OAAOvG,CACT,GACF,CACAwuF,EAAMY,UAAUivB,KAAO,CACrBz+F,QAAS,CACPjK,QAAS,MACTg7E,QAAQ,GAEVwC,MAAO,CACLx9E,QAASo7E,OACPutB,EACE,qDAAqDt/F,QAEvD,KAEFoxE,YAAY,EACZO,QAAQ,EACRnB,MAAO,cAETxvF,IAAK,CACH2V,QAASo7E,OACPutB,EAAU,6CAA6Ct/F,QACvD,KAEFoxE,YAAY,EACZO,QAAQ,EACRnB,MAAO,YAET9uE,OAAQ,CACN/K,QACE,8EACFg7E,QAAQ,GAEVrvB,KAAM,CACJ,CAEE3rD,QACE,oFACF65E,MAAO,UAET,CAEE75E,QAAS,kCACT65E,MAAO,WAGXzqF,OACE,2KACFI,QAAS,qBACTorF,YAAa,aAEhB,CA1DA,CA0DE/B,EACL,CA/DA1tF,EAAOC,QAAUs9G,EACjBA,EAAK94G,YAAc,OACnB84G,EAAK7tB,QAAU,kCCCf,SAAS+tB,EAAO/vB,IACb,SAAWA,GACVA,EAAMY,UAAUmvB,OAAS,CACvB3+F,QAAS,CACPjK,QAAS,gDACTy6E,YAAY,GAEd,sBAAuB,KAEvBouB,UAAW,CACT7oG,QAAS,oDACTg7E,QAAQ,EACRC,OAAQ,CACNgB,MAAO,CACLj8E,QAAS,iBACTy6E,YAAY,GAEdiB,SAAU,OACV3wF,MAAO,cAGXgyF,WAAY,CACV/8E,QAAS,UACTg7E,QAAQ,GAEVU,SAAU,oCACVhB,QACE,mUACFlrF,QAAS,2BACTJ,OACE,+EACF,sBAAuB,CACrB4Q,QAAS,aACT65E,MAAO,eAETc,SACE,wFACFC,YAAa,uBAEf,IAAI4X,EACF,kEAAkEnpF,OACpEwvE,EAAMY,UAAUmvB,OAAO,uBAAyB,CAC9C5oG,QAASo7E,OACP,YAAY/xE,OAAZ,YAGE,mCAAmCA,OACnC,IACAmpF,EALF,aASE,wCAAwCnpF,OACxC,IACAmpF,EAXF,QAeF/X,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACbngF,QAASo7E,OAAOoX,GAChBvX,OAAQ,CACNL,YAAa,WACbwF,WAAY,CACVpgF,QAAS,UACTi7E,OAAQpC,EAAMY,UAAUmvB,UAI9B79F,OAAQ,YAGZ8tE,EAAMY,UAAUqvB,KAAOjwB,EAAMY,UAAkB,OAC/CZ,EAAMY,UAAUsvB,QAAUlwB,EAAMY,UAAkB,MACnD,CA3EA,CA2EEZ,EACL,CAhFA1tF,EAAOC,QAAUw9G,EACjBA,EAAOh5G,YAAc,SACrBg5G,EAAO/tB,QAAU,sCCHjB,IAAImuB,EAAe97G,EAAQ,KACvBmnG,EAAsBnnG,EAAQ,MAIlC,SAAS+mG,EAAIpb,GACXA,EAAMU,SAASyvB,GACfnwB,EAAMU,SAAS8a,GACd,SAAWxb,GACV,IAAIkb,EAAalb,EAAMe,KAAKnuF,MAAMotF,EAAMY,UAAUsa,YAClDlb,EAAMY,UAAUwa,IAAMpb,EAAMY,UAAUpuF,OAAO,MAAO0oG,UAC7Clb,EAAMY,UAAUwa,IAAe,iBAC/Bpb,EAAMY,UAAUwa,IAAI,oBAG3B,IAAIjgD,EAAM6kC,EAAMY,UAAUwa,IAAIjgD,IAC9BA,EAAIh0C,QAAUo7E,OACZ,qBAAqB/xE,OAAS,MAAQ2qC,EAAIh0C,QAAQqJ,OAAS,IAC3D2qC,EAAIh0C,QAAQq9C,OAEdrJ,EAAIymC,YAAa,CAClB,CAbA,CAaE5B,EACL,CApBA1tF,EAAOC,QAAU6oG,EACjBA,EAAIrkG,YAAc,MAClBqkG,EAAIpZ,QAAU,sCCJd,IAAIsM,EAA4Bj6F,EAAQ,KAIxC,SAAS+7G,EAAIpwB,GACXA,EAAMU,SAAS4N,GACd,SAAWtO,GACVA,EAAMY,UAAUwvB,IAAMpwB,EAAMY,UAAUpuF,OAAO,QAAS,CACpD4e,QAAS,sBACTywE,QACE,0NACFE,YAAa,eAEf/B,EAAMY,UAAUx+C,aAAa,MAAO,SAAU,CAC5C0/C,SAAU,iDACVa,SAAU,CACRx7E,QAAS,mDAGb64E,EAAMY,UAAUx+C,aAAa,MAAO,UAAW,CAC7C0lD,UAAW,CACT3gF,QAAS,uBACT65E,MAAO,iBAGXhB,EAAMY,UAAUx+C,aAAa,MAAO,SAAU,CAC5C,uBAAwB,CACtBj7B,QAAS,gCACTg7E,QAAQ,EACRnB,MAAO,UAET,uBAAwB,CACtB75E,QAAS,gCACTg7E,QAAQ,EACRnB,MAAO,SACPoB,OAAQ,CACNO,SAAU,CACRx7E,QAAS,wDAKV64E,EAAMY,UAAUwvB,IAAIl+F,OAC3B8tE,EAAMwB,MAAMlqC,IAAI,mBAAmB,SAAU+pC,GAE3CrB,EAAMY,UAAU,qBAAqB8N,kBACnCrN,EACA,MAHe,kBAMnB,IACArB,EAAMwB,MAAMlqC,IAAI,kBAAkB,SAAU+pC,GAC1CrB,EAAMY,UAAU,qBAAqB+N,qBAAqBtN,EAAK,MACjE,GACD,CAhDA,CAgDErB,EACL,CAtDA1tF,EAAOC,QAAU69G,EACjBA,EAAIr5G,YAAc,MAClBq5G,EAAIpuB,QAAU,kCCCd,SAASquB,EAAOrwB,GACdA,EAAMY,UAAUyvB,OAAS,CACvBj/F,QAAS,CACPjK,QAAS,MACTg7E,QAAQ,GAEV,mBAAoB,CAClBh7E,QACE,sEACFg7E,QAAQ,EACRnB,MAAO,SACPoB,OAAQ,CACNhxE,QAAS,QAGbc,OAAQ,CACN/K,QAAS,8CACTg7E,QAAQ,GAEV7uB,IAAK,CACHnsD,QACE,oEACFg7E,QAAQ,EACRC,OAAQ,CACNL,YAAa,SAGjBc,SAAU,CACR17E,QACE,kGACFi7E,OAAQ,CACN,aAAc,CACZj7E,QAAS,kBACTy6E,YAAY,GAEd50E,OAAQ,CACN7F,QAAS,UACTi7E,OAAQ,CACNL,YAAa,QAKrBxrF,OAAQ,sCACRwrF,YAAa,oBACbprF,QAAS,qBACTkrF,QAAS,CAAC,4BAA6B,8BACvC1mC,IAAK,CACHh0C,QAAS,yBACTi7E,OAAQ,CACNL,YAAa,OAInB/B,EAAMY,UAAU0vB,KAAOtwB,EAAMY,UAAkB,MACjD,CA1DAtuF,EAAOC,QAAU89G,EACjBA,EAAOt5G,YAAc,SACrBs5G,EAAOruB,QAAU,sCCHjB,IAAIsM,EAA4Bj6F,EAAQ,KAIxC,SAASk8G,EAAKvwB,GACZA,EAAMU,SAAS4N,GACftO,EAAMY,UAAU2vB,KAAO,CACrBn/F,QAAS,mBACT,WAAY,CACVjK,QAAS,iBACTy6E,YAAY,EACZZ,MAAO,WAET8G,UAAW,CACT3gF,QAAS,sBACT65E,MAAO,eAET9uE,OAAQ,CACN/K,QAAS,kCACTi7E,OAAQ,CACNL,YAAa,gBAGjBF,QAAS,sBACTlrF,QAAS,0BACTJ,OAAQ,+DACRurF,SAAU,CACR,CACE36E,QACE,wFACFy6E,YAAY,GAEd,uCAEFG,YAAa,iBAEf/B,EAAMwB,MAAMlqC,IAAI,mBAAmB,SAAU+pC,GAC3C,GAAqB,SAAjBA,EAAIxgF,SAAR,CAIAm/E,EAAMY,UAAU,qBAAqB8N,kBAAkBrN,EAAK,OAD9C,8CADd,CAGF,IACArB,EAAMwB,MAAMlqC,IAAI,kBAAkB,SAAU+pC,GAC1CrB,EAAMY,UAAU,qBAAqB+N,qBAAqBtN,EAAK,OACjE,GACF,CA7CA/uF,EAAOC,QAAUg+G,EACjBA,EAAKx5G,YAAc,OACnBw5G,EAAKvuB,QAAU,kCCCf,SAASkZ,EAAWlb,IACjB,SAAWA,GACVA,EAAMY,UAAUsa,WAAalb,EAAMY,UAAUpuF,OAAO,aAAc,CAChE,aAAc,CACZ2U,QACE,+KACFy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,MAEViC,QACE,0FAEJrE,EAAMY,UAAUsa,WAAWrZ,QAAQ9tF,KACjC,qDACA,2FACA,qCAEKisF,EAAMY,UAAUsa,WAAsB,iBACtClb,EAAMY,UAAUsa,WAAW,oBAClC,IAAIlQ,EAAahL,EAAMY,UAAUpuF,OAAO,aAAc,CAAC,UAChDw4F,EAAW,cAClBhL,EAAMY,UAAUsa,WAAW,cAAc9Y,OAAS4I,EAClDhL,EAAMY,UAAUx+C,aAAa,aAAc,WAAY,CACrDqlD,UAAW,CACTtgF,QAAS,qBACTi7E,OAAQ,CACNouB,GAAI,CACFrpG,QAAS,KACT65E,MAAO,YAET6B,SAAU,aAGd,mBAAoB,CAElB17E,QACE,yGACFg7E,QAAQ,EACRC,OAAQ,CACNS,SAAU,4DACV+G,QAAS,CACPziF,QAAS,WAET65E,MAAO,aACPoB,OAAQ4I,OAKhBhL,EAAMY,UAAUua,GAAKnb,EAAMY,UAAUsa,UACtC,CAlDA,CAkDElb,EACL,CAvDA1tF,EAAOC,QAAU2oG,EACjBA,EAAWnkG,YAAc,aACzBmkG,EAAWlZ,QAAU,CAAC,qCCCtB,SAASyuB,EAAWzwB,IACjB,SAAWA,GACV,IAAIuD,EACF,gcACFvD,EAAMY,UAAU6vB,WAAa,CAC3Br/F,QAAS,CACP,CAEEjK,QAAS,kCACTy6E,YAAY,GAEd,CAGEz6E,QAAS,2CACTy6E,YAAY,EACZO,QAAQ,GAEV,CAEEh7E,QAAS,eACTy6E,YAAY,EACZO,QAAQ,IAGZU,SAAU,CACR,CAEE17E,QACE,sEACFi7E,OAAQ,CACNlwE,OAAQ,CACN/K,QAAS,0BACTi7E,OAAQ,CACNP,QAAS0B,IAGb1B,QAAS,CACP16E,QAAS,wBAIf,CAEEA,QAAS,wCACTi7E,OAAQ,CACNlwE,OAAQ,6BAIdA,OAAQ,CACN/K,QAAS,+BACTy6E,YAAY,EACZQ,OAAQ,CACNS,SAAU,WAEVhB,QAAS0B,EACThtF,OAAQ,QACRwrF,YAAa,UAGjBF,QAAS0B,EACThtF,OAAQ,CAEN4Q,QAAS,gBACTi7E,OAAQ,CACNN,SAAU,UAGd3mC,IAAK,CACHh0C,QAAS,iBACTi7E,OAAQ,CACNL,YAAa,OAGjBA,YAAa,iBACbD,SAAU,gDAEZ9B,EAAMY,UAAU8vB,SAAW1wB,EAAMY,UAAU6vB,UAC5C,CA9EA,CA8EEzwB,EACL,CAnFA1tF,EAAOC,QAAUk+G,EACjBA,EAAW15G,YAAc,aACzB05G,EAAWzuB,QAAU,CAAC,2CCCtB,SAAS2uB,EAAa3wB,GACpBA,EAAMY,UAAU+vB,aAAe,CAC7Bv/F,QAAS,0BACTc,OAAQ,CACN/K,QAAS,iDACTg7E,QAAQ,GAEVyuB,SAAU,CACRzpG,QACE,kEACFy6E,YAAY,EACZO,QAAQ,EACRnB,MAAO,YAET2G,SAAU,CACRxgF,QAAS,+DACTy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNntF,SAAU,gBACV6sF,SAAU,IACVC,YAAa,UAGjBgD,MAAO,CACL59E,QAAS,OACT65E,MAAO,YAET,aAAc,CACZ75E,QACE,0EACFy6E,YAAY,GAEdC,QACE,k2BACFgB,SAAU,wBACVlsF,QAAS,qBACTJ,OAAQ,4DAERurF,SACE,2FACFC,YAAa,gBAEf/B,EAAMY,UAAU35B,GAAK+4B,EAAMY,UAAUiwB,QAAU7wB,EAAMY,UAAU+vB,YACjE,CA/CAr+G,EAAOC,QAAUo+G,EACjBA,EAAa55G,YAAc,eAC3B45G,EAAa3uB,QAAU,CAAC,KAAM,0CCC9B,SAAS8uB,EAAQ9wB,GACfA,EAAMY,UAAUkwB,QAAU,CACxB,eAAgB,CACd3pG,QAAS,MACT65E,MAAO,UACPmB,QAAQ,GAEV,gBAAiB,CACfh7E,QAAS,SACT65E,MAAO,UACPmB,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,kCACTi7E,OAAQ,CACNL,YAAa,eAEfI,QAAQ,GAEV,gBAAiB,CACfh7E,QACE,6TACF65E,MAAO,YAET,kBAAmB,CACjB75E,QACE,0rBACF65E,MAAO,YAET,WAAY,CACV75E,QAAS,iBACTy6E,YAAY,EACZZ,MAAO,WAET8G,UAAW,CACT3gF,QAAS,sBACT65E,MAAO,eAET6B,SACE,yfACFhB,QACE,uGACFlrF,QAAS,0BACTJ,OAAQ,+DACRurF,SAAU,CACR,CACE36E,QACE,wFACFy6E,YAAY,GAEd,uCAEFG,YAAa,gBAEjB,CAzDAzvF,EAAOC,QAAUu+G,EACjBA,EAAQ/5G,YAAc,UACtB+5G,EAAQ9uB,QAAU,kCCClB,SAASuT,EAAIvV,GAEXA,EAAMY,UAAU2U,IAAM,CACpBvpF,OAAQ,CACN7E,QAAS,wBACTg7E,QAAQ,EACRC,OAAQ,CACN,mBAAoB,OAGxBzjD,SAAU,CACRx3B,QAAS,6BACTi7E,OAAQ,CACN,qBAAsB,OAG1B2uB,MAAO,CACL5pG,QAAS,8BACTi7E,OAAQ,CACN,kBAAmB,CACjBj7E,QAAS,MACTg7E,QAAQ,GAEV,iBAAkB,OAClB6uB,KAAM,CACJ7pG,QAAS,eACTi7E,OAAQ,CACN5wF,IAAK,SACLU,MAAO,CACLiV,QAAS,cACTy6E,YAAY,OAMtBqvB,UAAW,CACT9pG,QAASo7E,OACP,QAAQ/xE,OACN,+BAA+BA,OAC9B,MACC,kEACGA,OACH,IACA,wBAAwBA,OACxB,IACF,YAAYA,OACd,KAEF4xE,OAAQ,CACN,sBAAuB,QACvB,oBAAqB,CACnBj7E,QAAS,2BACTi7E,OAAQ,CACN,sBAAuB,KACvB,YAAa,4BAGjB,eAAgB,CACdj7E,QAAS,QACTi7E,OAAQ,CACN,iBAAkB,KAClB8uB,KAAM,SAGV9iF,KAAM,CACJjnB,QAAS,UACTi7E,OAAQ,CACN,aAAc,CACZj7E,QAAS,gBACTi7E,OAAQ,CACN,uBAAwB,UACxB,aAAc,YACd,eAAgB,aAGpB,eACE,oEAKVyO,KAAM,CACJ1pF,QAAS,6BACTi7E,OAAQ,CACN,iBAAkB,QAIxBpC,EAAMY,UAAUttB,IAAM0sB,EAAMY,UAAU2U,GACxC,CA7FAjjG,EAAOC,QAAUgjG,EACjBA,EAAIx+F,YAAc,MAClBw+F,EAAIvT,QAAU,CAAC,sCCCf,SAASnqC,EAAEmoC,IACR,SAAWA,GACV,IAAIsoB,EAAoB,CACtBnhG,QAAS,UACTi7E,OAAQ,MAEVpC,EAAMY,UAAU/oC,EAAImoC,EAAMY,UAAUpuF,OAAO,QAAS,CAClD0f,OAAQ,CACN/K,QAAS,mDACT65E,MAAO,gBACPmB,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACbngF,QACE,sFACFy6E,YAAY,EACZQ,OAAQ,CACN,yBAA0B,CACxBj7E,QAAS,gBACT65E,MAAO,YAET,4BAA6B,CAC3B75E,QAAS,YACT65E,MAAO,eAET,2BAA4BsnB,MAKpC,aAAc,CACZnhG,QAAS,mDACTy6E,YAAY,GAEdC,QACE,sRACFtrF,OACE,4GACFurF,SACE,8FACFuC,QACE,sIAEJikB,EAAkBlmB,OAASpC,EAAMY,UAAU/oC,EAC3CmoC,EAAMY,UAAUx+C,aAAa,IAAK,SAAU,CAC1Cn4B,KAAM,CACJ9C,QAAS,yBAET65E,MAAO,UAGXhB,EAAMY,UAAUx+C,aAAa,IAAK,WAAY,CAC5CtqC,UAAW,CACTqP,QACE,+GACFy6E,YAAY,EACZZ,MAAO,aACPoB,OAAQ,CACNL,YAAa,SACbF,QAAS,QAGb+H,QAAS,CACPziF,QAAS,qBACTi7E,OAAQ,CACNL,YAAa,OACb,aAAc,UAIpB/B,EAAMY,UAAUx+C,aAAa,IAAK,WAAY,CAC5C,mBAAoB,CAElBj7B,QAAS,sBACTi7E,OAAQ,CACNS,SAAU,OACV+G,QAAS,CACPziF,QAAS,QACTi7E,OAAQpC,EAAMY,UAAU/oC,EAAE+xC,QAAQxH,WAK3C,CAlFA,CAkFEpC,EACL,CAvFA1tF,EAAOC,QAAUslD,EACjBA,EAAE9gD,YAAc,IAChB8gD,EAAEmqC,QAAU,kCCCZ,SAASmvB,EAAKnxB,GACZA,EAAMY,UAAUuwB,KAAOnxB,EAAMY,UAAUpuF,OAAO,QAAS,CAErD,aAAc,CACZ,CAEE2U,QAAS,kDACTi7E,OAAQ,CACNL,YAAa,OAGjB,CAEE56E,QAAS,2BACTy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,OAGjB,CAEE56E,QACE,0EACFy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,OAGjB,CAEE56E,QACE,oFACFy6E,YAAY,EACZQ,OAAQ,CACNL,YAAa,QAInBF,QACE,4kBACFgB,SAAU,iBACVtsF,OACE,2EACFurF,SACE,oEACFC,YAAa,gBACbkB,SAAU,mBAEZjD,EAAMY,UAAUx+C,aAAa,OAAQ,SAAU,CAC7C,aAAc,CACZj7B,QAAS,iBACTg7E,QAAQ,EACRnB,MAAO,UAET,kBAAmB,CACjB75E,QAAS,cACTg7E,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CACbngF,QAAS,8BACTi7E,OAAQ,CACN0F,UAAW,CACT3gF,QAAS,aACT65E,MAAO,eAETqE,KAAMrF,EAAMY,UAAUuwB,OAG1Bj/F,OAAQ,cAId8tE,EAAMY,UAAUx+C,aAAa,OAAQ,UAAW,CAC9CghD,MAAO,CACLj8E,QACE,0FACFg7E,QAAQ,EACRC,OAAQ,CACN,eAAgB,CACdj7E,QAAS,4BACTy6E,YAAY,EACZZ,MAAO,iBACPoB,OAAQpC,EAAMY,UAAUwC,OAE1B,kBAAmB,MACnB,cAAe,cAIvB,CA5FA9wF,EAAOC,QAAU4+G,EACjBA,EAAKp6G,YAAc,OACnBo6G,EAAKnvB,QAAU,sCCHf,IAAIovB,EAAiB/8G,EAAQ,MAI7B,SAASg9G,EAAMrxB,GACbA,EAAMU,SAAS0wB,GACfpxB,EAAMY,UAAUywB,MAAQrxB,EAAMY,UAAUpuF,OAAO,QAAS,CACtD4e,QAAS,CACP,CACEjK,QAAS,iBACTi7E,OAAQ,CACNP,QAAS,UAGb,CACE16E,QAAS,gBACTy6E,YAAY,EACZO,QAAQ,IAGZjwE,OAAQ,CACN/K,QAAS,8BACTy6E,YAAY,EACZO,QAAQ,GAEVN,QACE,86CACFE,YAAa,aAEjB,CA5BAzvF,EAAOC,QAAU8+G,EACjBA,EAAMt6G,YAAc,QACpBs6G,EAAMrvB,QAAU,kCCChB,SAASsvB,EAAStxB,IACf,SAAWA,GACVA,EAAMY,UAAU0wB,SAAWtxB,EAAMY,UAAUpuF,OAAO,SAAU,CAAC,GAC7D,IAAI8+G,EAAW,CACb3uB,SAAU,CACRx7E,QACE,4GACFy6E,YAAY,EACZQ,OAAQ,CAAC,GAEXlwE,OAAQ,CACN/K,QAAS,kBACTg7E,QAAQ,GAEV5rF,OAAQ,UACRI,QAAS,qBACTmrF,SACE,iEACFC,YAAa,gBAEfuvB,EAAS3uB,SAASP,OAAS,CACzBlwE,OAAQo/F,EAAiB,OACzBzuB,SAAU,CACR17E,QAAS,4BACTy6E,YAAY,GAEdrrF,OAAQ+6G,EAAiB,OACzB36G,QAAS26G,EAAkB,QAC3BvvB,YAAauvB,EAAsB,aAErCtxB,EAAMY,UAAUx+C,aAAa,WAAY,UAAW,CAClDmvE,SAAU,CACRpqG,QAAS,8BACTy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNL,YAAa,kBAGjB,mBAAoB,CAClB,CACE56E,QAAS,0BACTy6E,YAAY,EACZO,QAAQ,EACRnB,MAAO,WAET,CACE75E,QAAS,gBACTy6E,YAAY,EACZO,QAAQ,EACRnB,MAAO,YAGXwE,UAAW,CACTr+E,QACE,yFACFy6E,YAAY,EACZQ,OAAQ,CACNP,QAAS,CACP16E,QAAS,6CACTi7E,OAAQ,CACNL,YAAa,SAGjBsD,KAAMisB,IAGV3uB,SAAU2uB,EAAmB,WAE/BtxB,EAAMY,UAAU0wB,SAAc,IAAElvB,OAAO,cAAcA,OAAOiD,KAC1DrF,EAAMY,UAAU0wB,QACnB,CAtEA,CAsEEtxB,EACL,CA3EA1tF,EAAOC,QAAU++G,EACjBA,EAASv6G,YAAc,WACvBu6G,EAAStvB,QAAU,kCCCnB,SAASwvB,EAAQxxB,GACfA,EAAMY,UAAU4wB,QAAU,CACxBpgG,QAAS,CACPjK,QAAS,0BACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,sCACTg7E,QAAQ,GAEV,kBAAmB,CAEjBh7E,QAAS,YACT65E,MAAO,YAGTiC,SAAU,WACVJ,SAAU,cAEVhB,QACE,gmDAEFkE,UAAW,4DAEXxvF,OACE,4EACFurF,SAAU,uBACVC,YAAa,cAEjB,CAhCAzvF,EAAOC,QAAUi/G,EACjBA,EAAQz6G,YAAc,UACtBy6G,EAAQxvB,QAAU,kCCClB,SAASyvB,EAAKzxB,GACZA,EAAMY,UAAU6wB,KAAO,CACrBrgG,QAAS,OAET,eAAgB,CACdjK,QAAS,qCACT65E,MAAO,UAGT,kBAAmB,CACjB75E,QAAS,eACT65E,MAAO,YAET9uE,OAAQ,sCACR+wE,SAAU,uBAEVpB,QACE,mzBACFlrF,QAAS,sBACTksF,SAAU,YAEVtsF,OAAQ,+DACRurF,SACE,+FACFC,YAAa,gBAEjB,CA7BAzvF,EAAOC,QAAUk/G,EACjBA,EAAK16G,YAAc,OACnB06G,EAAKzvB,QAAU,kCCCf,SAAS0vB,EAAI1xB,GACXA,EAAMY,UAAU8wB,IAAM,CACpBx/F,OAAQ,2CACRd,QAAS,MACTyxE,SAAU,cACVhB,QACE,4xJACFwC,QACE,40RACF9tF,OAAQ,oCACRurF,SACE,4EACFC,YAAa,eAEjB,CAjBAzvF,EAAOC,QAAUm/G,EACjBA,EAAI36G,YAAc,MAClB26G,EAAI1vB,QAAU,kCCCd,SAAS2vB,EAAY3xB,GACnBA,EAAMY,UAAU,gBAAkB,CAChCxvE,QAAS,CACPjK,QAAS,yDACTi7E,OAAQ,CACNP,QAAS,UAGb2D,UAAW,CACTr+E,QACE,oGACF65E,MAAO,WACPmB,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,+EACTg7E,QAAQ,GAEVrvB,KAAM,CACJ3rD,QACE,qKACF65E,MAAO,UAETzqF,OACE,+EACFI,QAAS,8BACTkrF,QACE,6gCACFC,SAAU,0CACVC,YAAa,cAEf/B,EAAMY,UAAUr+B,GAAKy9B,EAAMY,UAAU,gBACrCZ,EAAMY,UAAUgxB,IAAM5xB,EAAMY,UAAU,eACxC,CApCAtuF,EAAOC,QAAUo/G,EACjBA,EAAY56G,YAAc,cAC1B46G,EAAY3vB,QAAU,kCCCtB,SAAS6vB,EAAW7xB,GAClBA,EAAMY,UAAUixB,WAAa,CAC3BzgG,QAAS,8BACTc,OAAQ,CACN/K,QACE,yEACFg7E,QAAQ,GAEVQ,SAAU,QACVoC,MAAO,CACL59E,QAAS,OACT65E,MAAO,YAITa,QACE,+JACFtrF,OACE,iFACFI,QAAS,yBACTorF,YAAa,kBAGbD,SACE,qEAEN,CA7BAxvF,EAAOC,QAAUs/G,EACjBA,EAAW96G,YAAc,aACzB86G,EAAW7vB,QAAU,kCCCrB,SAAS8vB,EAAK9xB,GACZA,EAAMY,UAAUkxB,KAAO,CACrB1gG,QAAS,CACP,iBACA,CACEjK,QAAS,OACTg7E,QAAQ,IAGZjwE,OAAQ,CACN/K,QAAS,yBACTg7E,QAAQ,GAEVN,QAAS,CACP,CACE16E,QAAS,sBACTi7E,OAAQ,CACNN,SAAU,MAGd,CACE36E,QACE,ibACFi7E,OAAQ,CACNL,YAAa,OAGjB,4QAEFY,SAAU,kCACVpsF,OACE,kNACFwrF,YAAa,OAEjB,CArCAzvF,EAAOC,QAAUu/G,EACjBA,EAAK/6G,YAAc,OACnB+6G,EAAK9vB,QAAU,kCCCf,SAAS+vB,EAAO/xB,IACb,SAAWA,GACV,IAAInsF,EAAK,wCAAwC2c,OAC7Cxc,EACF,MACA,yCAAyCwc,OACzC,IACA,gDAAgDA,OAChD,IACA,kCAAkCA,OAClC3c,EACA,gCAAgC2c,OAChC,IACA,aAAaA,OACXw6E,EAAa,CAAC,EAwFlB,IAAK,IAAIx5F,KAvFTwuF,EAAMY,UAAU,WAAa,CAC3BxvE,QAAS,CACPjK,QAAS,0BACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,UACTg7E,QAAQ,GAEV9iE,UAAW,CACTlY,QAASo7E,OAAO,mBAAmB/xE,OAAS3c,GAC5C+tF,YAAY,GAEd,aAAc,CACZ,CACEz6E,QACE,iEACFy6E,YAAY,EACZQ,OAAQ4I,GAEV,CACE7jF,QAASo7E,OACP,4DAA4D/xE,OAC1Dxc,GAEJ4tF,YAAY,EACZQ,OAAQ4I,GAEV,CAEE7jF,QAASo7E,OACP,IAAM,gBAAgB/xE,OAAS3c,EAAK,UAAU2c,OAAS,IAAMxc,GAE/D4tF,YAAY,EACZQ,OAAQ4I,GAEV,CAEE7jF,QAASo7E,OAAO,mBAAmB/xE,OAASxc,GAC5C4tF,YAAY,EACZQ,OAAQ4I,GAEV,CACE7jF,QAASo7E,OACP,sFACG/xE,OAAS3c,GAEd+tF,YAAY,GAEd,CAEEz6E,QAASo7E,OAAO,SAAS/xE,OAAS3c,GAClC+tF,YAAY,GAEdW,OAAO1uF,EAAK,mCAAmC2c,QAC/C,CACErJ,QAASo7E,OAAO,iCAAiC/xE,OAAS3c,GAC1D+tF,YAAY,GAEd,CAEEz6E,QAASo7E,OACPvuF,EACE,MACA,mBAAmBwc,OACnB3c,EACA,aAAa2c,OACb,KAEJ4xE,OAAQ4I,IAGZ3G,QACE,8OACFxC,QAAS,CACP,oOACA,gJAEFlrF,QAAS,qBACTJ,OAAQ,CACN4Q,QACE,2FACFy6E,YAAY,GAEdE,SAAU,iBACVC,YAAa,gBAEC/B,EAAMY,UAAU,WAClB,eAARpvF,IACFw5F,EAAWx5F,GAAOwuF,EAAMY,UAAU,WAAWpvF,IAGjDwuF,EAAMY,UAAkB,OAAIZ,EAAMY,UAAU,UAC7C,CA3GA,CA2GEZ,EACL,CAhHA1tF,EAAOC,QAAUw/G,EACjBA,EAAOh7G,YAAc,SACrBg7G,EAAO/vB,QAAU,kCCCjB,SAASgwB,EAAKhyB,GACZA,EAAMY,UAAUoxB,KAAOhyB,EAAMY,UAAUpuF,OAAO,SAAU,CACtD,gBAAiB,CACf2U,QAAS,4BACTy6E,YAAY,EACZZ,MAAO,WAETge,QAAS,CACP73F,QAAS,sBACTi7E,OAAQ,CACNL,YAAa,UACbgE,UAAW,OAGfksB,SAAU,CAER9qG,QAAS,gBACTi7E,OAAQ,CACN,cAAe,CACbj7E,QAAS,mBACTy6E,YAAY,EACZZ,MAAO,CAAC,OAAQ,WAElBkE,KAAM,CACJ/9E,QAAS,8BACTy6E,YAAY,GAEdqD,OAAQ,CACN99E,QAAS,6BACTy6E,YAAY,GAEdG,YAAa,cAGjBhgC,GAAI,CACF56C,QAAS,UACT65E,MAAO,eAET1tB,IAAK,CACH,iEACA,uBAEFqvB,SAAU,CACR,aAEA,gBACA,eAEFzsC,OAAQ,CAAC,eAAgB,UAKzB,YAAa,CACX/uC,QAAS,qCACTy6E,YAAY,EACZQ,OAAQ,CACN,YAAa,CACXj7E,QAAS,MACT65E,MAAO,eAETqE,KAAMrF,EAAMY,UAAUR,OAAY,IAAEgC,SAGxCL,YAAa,yCAEf/B,EAAMY,UAAUx+C,aAAa,OAAQ,MAAO,CAE1C8vE,OAAQ,CACN/qG,QAAS,8CACTi7E,OAAQ,CACNjnC,IAAK,CACHh0C,QAAS,4DACTi7E,OAAQpC,EAAMY,UAAUR,OAAY,IAAEgC,WAKhD,CAjFA9vF,EAAOC,QAAUy/G,EACjBA,EAAKj7G,YAAc,OACnBi7G,EAAKhwB,QAAU,kCCCf,SAASmwB,EAAQnyB,GACfA,EAAMY,UAAUuxB,QAAU,CAExB/gG,QAAS,0DACTc,OAAQ,CACN/K,QAAS,wBACTg7E,QAAQ,GAEVN,QACE,4HACFtgB,QAAS,CACPp6D,QAAS,aACT65E,MAAO,cAEToxB,MAAO,CACLjrG,QAAS,WACT65E,MAAO,SAET,kBAAmB,CACjB75E,QAAS,QACT65E,MAAO,YAETrqF,QAAS,qBACTJ,OACE,iGACFurF,SACE,6IACFC,YAAa,iBAEf/B,EAAMY,UAAUyxB,YAAcryB,EAAMY,UAAUuxB,QAC9CnyB,EAAMY,UAAU5F,GAAKgF,EAAMY,UAAUuxB,QACrCnyB,EAAMY,UAAU5iC,GAAKgiC,EAAMY,UAAUuxB,OACvC,CAnCA7/G,EAAOC,QAAU4/G,EACjBA,EAAQp7G,YAAc,UACtBo7G,EAAQnwB,QAAU,CAAC,cAAe,KAAM,qCCCxC,SAASswB,EAAKtyB,GAEZA,EAAMY,UAAU0xB,KAAO,CAGrBlhG,QAAS,CACP,CAGEjK,QACE,iHACFg7E,QAAQ,GAEV,CACEh7E,QAAS,mBACTy6E,YAAY,EACZO,QAAQ,IAKZ,uBAAwB,CACtBh7E,QAAS,iBACTg7E,QAAQ,EACRnB,MAAO,UAGT,iBAAkB,KAElBqX,SAAU,CACRlxF,QAAS,UACTg7E,QAAQ,EACRnB,MAAO,WAGTlpF,UAAW,CAITqP,QAAS,qBACT65E,MAAO,WAET,aAAc,CACZ,CAGE75E,QAAS,kBACTy6E,YAAY,GAGd,sBAGFqB,SAAU,qBACV2Y,KAAM,CACJz0F,QAAS,WACT65E,MAAO,WAETa,QACE,gHACFlrF,QAAS,qBACTJ,OAAQ,kDAERssF,SAAU,0BACVf,SAAU,+CACVC,YAAa,iBAEf/B,EAAMY,UAAU0xB,KAAK,kBAAoB,CAEvCnrG,QACE,qFACFy6E,YAAY,EACZO,QAAQ,EACRC,OAAQ,CACNkF,cAAe,CAEbngF,QACE,kEACFy6E,YAAY,EACZQ,OAAQ,CACNmF,WAAY,CACVpgF,QAAS,uBACTy6E,YAAY,EACZQ,OAAQpC,EAAMY,UAAU0xB,MAE1B,4BAA6B,CAC3BnrG,QAAS,WACT65E,MAAO,iBAIb9uE,OAAQ,WAGd,CAjGA5f,EAAOC,QAAU+/G,EACjBA,EAAKv7G,YAAc,OACnBu7G,EAAKtwB,QAAU,kCCCf,SAASuwB,EAAMvyB,IACZ,SAAWA,GACVA,EAAMY,UAAU2xB,MAAQvyB,EAAMY,UAAUpuF,OAAO,SAAU,CACvDywF,SAAU,CACR97E,QAAS,4CACTi7E,OAAQ,CACNL,YAAa,CACX56E,QAAS,QAIfw7E,SAAU,CACRx7E,QAAS,+BACTi7E,OAAQ,CACNL,YAAa,CACX56E,QAAS,QAEX26E,SAAU,CACR36E,QAAS,kBAIf,kBAAmB,CACjBA,QACE,wMACFi7E,OAAQ,CACNO,SAAU,CACRx7E,QAAS,mCACTi7E,OAAQ,CACNL,YAAa,CACX56E,QAAS,SAEX26E,SAAU,CACR36E,QAAS,kBAIf46E,YAAa,CACX56E,QAAS,mBAGb65E,MAAO,YAET,iBAAkB,CAChB75E,QACE,gNACFi7E,OAAQ,CACNL,YAAa,CACX56E,QAAS,eAGb65E,MAAO,YAET,mBAAoB,CAClB75E,QAAS,+CACTi7E,OAAQ,CACNL,YAAa,CACX56E,QAAS,iCACTi7E,OAAQ,CACNjnC,IAAK,CACHh0C,QAAS,UAKjB65E,MAAO,YAET,uBAAwB,CACtB75E,QACE,mEACFi7E,OAAQ,CACNL,YAAa,CACX56E,QAAS,iCACTi7E,OAAQ,CACNjnC,IAAK,CACHh0C,QAAS,SAIfrP,UAAW,CACTqP,QAAS,WACTi7E,OAAQ,CACNL,YAAa,CACX56E,QAAS,MAGb65E,MAAO,YAGXA,MAAO,YAET,4BAA6B,CAC3B75E,QAAS,gBACTi7E,OAAQ,CACNL,YAAa,CACX56E,QAAS,UAGb65E,MAAO,YAET,wBAAyB,CACvB75E,QAAS,eACTi7E,OAAQ,CACNL,YAAa,CACX56E,QAAS,WAGb65E,MAAO,cAGXhB,EAAMY,UAAUx+C,aACd,SACA,cACA,CACEugD,SAAU3C,EAAMY,UAAU2xB,MAAM,mBAAmBnwB,OAAiB,UAEtEpC,EAAMY,UAAU2xB,MAAM,mBAExBvyB,EAAMY,UAAU4xB,UAAYxyB,EAAMY,UAAU2xB,KAC7C,CAtHA,CAsHEvyB,EACL,CA3HA1tF,EAAOC,QAAUggH,EACjBA,EAAMx7G,YAAc,QACpBw7G,EAAMvwB,QAAU,CAAC,4CCCjB,SAASywB,EAAOzyB,IACb,SAAWA,GAOV,SAAS0yB,EAAiB9xG,EAAM+xG,GAC1B3yB,EAAMY,UAAUhgF,IAClBo/E,EAAMY,UAAUx+C,aAAaxhC,EAAM,UAAW,CAC5C,cAAe+xG,GAGrB,CACA,IAAIx3D,EAAM6kC,EAAMY,UAAUR,OAAOjlC,IAC7By3D,EAAkB,CACpBzrG,QAAS,WACTg7E,QAAQ,EACRnB,MAAO,UACPoB,OAAQ,CACNjnC,IAAKA,IAGL03D,EAAiB,CACnB1rG,QAAS,QACTg7E,QAAQ,EACRnB,MAAO,UACPoB,OAAQ,CACNjnC,IAAKA,IAGTu3D,EAAiB,SAAUE,GAC3BF,EAAiB,SAAUE,GAC3BF,EAAiB,QAASG,EAC3B,CAlCA,CAkCE7yB,EACL,CAvCA1tF,EAAOC,QAAUkgH,EACjBA,EAAO17G,YAAc,SACrB07G,EAAOzwB,QAAU,kCCCjB,SAAS8wB,EAAK9yB,GACZA,EAAMY,UAAUkyB,KAAO,CACrB1hG,QAAS,CACPjK,QAAS,sBACTg7E,QAAQ,GAEVjwE,OAAQ,CACN/K,QAAS,iBACTg7E,QAAQ,GAEV5rF,OAAQ,CAAC,6CAA8C,qBACvDivF,UAAW,CACTr+E,QAAS,sCACT65E,MAAO,YAETa,QACE,ktBACFC,SACE,6FACFC,YAAa,WAEjB,CAxBAzvF,EAAOC,QAAUugH,EACjBA,EAAK/7G,YAAc,OACnB+7G,EAAK9wB,QAAU,iCCCf,SAAS+wB,EAAO/yB,IACb,SAAWA,GACVA,EAAMY,UAAUmyB,OAAS/yB,EAAMY,UAAUpuF,OAAO,SAAU,CACxD,iBAAkB,CAChB2U,QAAS,iBACTg7E,QAAQ,EACRnB,MAAO,WAET9uE,OAAQ,CACN/K,QAAS,iCACTg7E,QAAQ,GAEV6wB,UAAW,CACT7rG,QAAS,YACT65E,MAAO,UAET2B,SAAU,YACVl5E,KAAM,CACJtC,QACE,4IACFy6E,YAAY,EACZZ,MAAO,YAET,mBAAoB,CAClB75E,QACE,sHACFy6E,YAAY,EACZZ,MAAO,YAETa,QAAS,CACP16E,QACE,ocACFy6E,YAAY,GAEdiB,SAAU,8BACV,iBAAkB,CAChB17E,QAAS,iCACTy6E,YAAY,EACZZ,MAAO,OAET,mBAAoB,CAClB75E,QAAS,mCACTy6E,YAAY,EACZZ,MAAO,aAETqD,QAAS,CACPl9E,QACE,shBACFy6E,YAAY,GAEdrrF,OAAQ,gCACRurF,SAAU,CACR,qCACA,CACE36E,QAAS,cACTy6E,YAAY,IAGhBG,YAAa,kBAEf/B,EAAMY,UAAUmyB,OAAO53D,IAAIh0C,QACzB,uJACF64E,EAAMY,UAAUmyB,OAAY,IAAE3wB,OAAO,cAAcj7E,QACjD,kGACF64E,EAAMY,UAAUmyB,OAAY,IAAE3wB,OAAO,cAAcA,OAAoB,YACrE,SACFpC,EAAMY,UAAUmyB,OAAY,IAAE3wB,OAAO,cAAcA,OAAmB,WAAI,CAExEj7E,QAAS,iDACTi7E,OAAQpC,EAAMY,UAAUmyB,OACxB/xB,MAAO,mBAET,IAAImb,EAAiB,SAAjBA,EAA2BrlF,GAC7B,MAAqB,kBAAVA,EACFA,EAEoB,kBAAlBA,EAAMthB,QACRshB,EAAMthB,QAERshB,EAAMthB,QAAQ8oF,IAAI6d,GAAgBrmG,KAAK,GAChD,EACI4kG,EAAa,SAAbA,EAAuBvZ,GAEzB,IADA,IAAIib,EAAa,GACRtpG,EAAI,EAAGA,EAAIquF,EAAOpuF,OAAQD,IAAK,CACtC,IAAIgkB,EAAQqqE,EAAOruF,GACfupG,GAAiB,EAsDrB,GArDqB,kBAAVvlF,IAEQ,QAAfA,EAAM9iB,MACN8iB,EAAMthB,QAAQ,IACY,QAA1BshB,EAAMthB,QAAQ,GAAGxB,KAG2B,OAAxC8iB,EAAMthB,QAAQ,GAAGA,QAAQ,GAAGA,QAG5B4mG,EAAWrpG,OAAS,GACpBqpG,EAAWA,EAAWrpG,OAAS,GAAGkB,UAChCkoG,EAAerlF,EAAMthB,QAAQ,GAAGA,QAAQ,KAG1C4mG,EAAW1rE,MAG2C,OAApD5Z,EAAMthB,QAAQshB,EAAMthB,QAAQzC,OAAS,GAAGyC,SAI1C4mG,EAAWroG,KAAK,CACdE,QAASkoG,EAAerlF,EAAMthB,QAAQ,GAAGA,QAAQ,IACjD8mG,aAAc,MAKpBF,EAAWrpG,OAAS,GACL,gBAAf+jB,EAAM9iB,MACY,MAAlB8iB,EAAMthB,UACJ2rF,EAAOruF,EAAI,IACY,gBAAvBquF,EAAOruF,EAAI,GAAGkB,MACY,MAA1BmtF,EAAOruF,EAAI,GAAG0C,SACd2rF,EAAOruF,EAAI,IACY,eAAvBquF,EAAOruF,EAAI,GAAGkB,MACY,MAA1BmtF,EAAOruF,EAAI,GAAG0C,QAKhB4mG,EAAWrpG,OAAS,GACpBqpG,EAAWA,EAAWrpG,OAAS,GAAGupG,aAAe,GAClC,gBAAfxlF,EAAM9iB,MACY,MAAlB8iB,EAAMthB,QAGN4mG,EAAWA,EAAWrpG,OAAS,GAAGupG,eACV,YAAfxlF,EAAM9iB,OACfqoG,GAAiB,GAVjBD,EAAWA,EAAWrpG,OAAS,GAAGupG,iBAalCD,GAAmC,kBAAVvlF,IAEzBslF,EAAWrpG,OAAS,GAC+B,IAAnDqpG,EAAWA,EAAWrpG,OAAS,GAAGupG,aAClC,CAGA,IAAIC,EAAYJ,EAAerlF,GAE7BhkB,EAAIquF,EAAOpuF,OAAS,IACM,kBAAlBouF,EAAOruF,EAAI,IACM,eAAvBquF,EAAOruF,EAAI,GAAGkB,QAEhBuoG,GAAaJ,EAAehb,EAAOruF,EAAI,IACvCquF,EAAOzpD,OAAO5kC,EAAI,EAAG,IAGrBA,EAAI,IACsB,kBAAlBquF,EAAOruF,EAAI,IACM,eAAvBquF,EAAOruF,EAAI,GAAGkB,QAEhBuoG,EAAYJ,EAAehb,EAAOruF,EAAI,IAAMypG,EAC5Cpb,EAAOzpD,OAAO5kC,EAAI,EAAG,GACrBA,KAEE,QAAQ8E,KAAK2kG,GACfpb,EAAOruF,GAAKypG,EAEZpb,EAAOruF,GAAK,IAAIktF,EAAMoB,MACpB,aACAmb,EACA,KACAA,EAGN,CAEEzlF,EAAMthB,SAAoC,kBAAlBshB,EAAMthB,SAChCklG,EAAW5jF,EAAMthB,QAErB,CACF,EACAwqF,EAAMwB,MAAMlqC,IAAI,kBAAkB,SAAU+pC,GACrB,WAAjBA,EAAIxgF,UAGR65F,EAAWrZ,EAAIF,OACjB,GACD,CA1LA,CA0LEnB,EACL,CA/LA1tF,EAAOC,QAAUwgH,EACjBA,EAAOh8G,YAAc,SACrBg8G,EAAO/wB,QAAU,kCCCjB,SAAS2e,EAAK3gB,IACX,SAAWA,GAGV,IAAIizB,EAAgB,mBAChB93D,EACF,mFACEjnD,EACF,MACAinD,EAAI3qC,OACJ,YACAyiG,EAAcziG,OACd,MACAyiG,EAAcziG,OACd,YACA2qC,EAAI3qC,OACJ,MAGE0iG,EACF,kJAAkJ1iG,OAAOzY,QACvJ,YACA,WACE,MAAO,2EACJyY,MACL,IAEA0B,EAAS,8CAA8C1B,OAO3D,SAAS2iG,EAAmBjhH,EAAOsyD,GACjCA,GAASA,GAAS,IAAIzsD,QAAQ,KAAM,IAAM,IAC1C,IAAIoP,EACF,yFAAyFqJ,OACtFzY,QAAQ,aAAa,WACpB,OAAO7D,CACT,IACC6D,QAAQ,cAAc,WACrB,OAAO7F,CACT,IACJ,OAAOqwF,OAAOp7E,EAASq9C,EACzB,CACAw7B,EAAMY,UAAU+f,KAAO,CACrBrN,OAAQ,CACNnsF,QAASo7E,OACP,6FAA6F/xE,OAAOzY,QAClG,aACA,WACE,OAAO7D,CACT,KAGJ0tF,YAAY,EACZZ,MAAO,UAET5vE,QAAS,MACT5f,IAAK,CACH2V,QAASo7E,OACP,kEAAkE/xE,OAC/DzY,QAAQ,aAAa,WACpB,OAAO7D,CACT,IACC6D,QAAQ,YAAY,WACnB,MAAO,MAAQm7G,EAAW,IAAMhhG,EAAS,GAC3C,KAEJ0vE,YAAY,EACZO,QAAQ,EACRnB,MAAO,UAETwE,UAAW,CACTr+E,QAAS,gBACTy6E,YAAY,EACZZ,MAAO,aAETjuB,SAAU,CACR5rD,QAASgsG,EACP,sJACG3iG,QAELoxE,YAAY,EACZZ,MAAO,UAETrqF,QAAS,CACPwQ,QAASgsG,EAAmB,aAAa3iG,OAAQ,KACjDoxE,YAAY,EACZZ,MAAO,aAET4a,KAAM,CACJz0F,QAASgsG,EAAmB,SAAS3iG,OAAQ,KAC7CoxE,YAAY,EACZZ,MAAO,aAET9uE,OAAQ,CACN/K,QAASgsG,EAAmBjhG,GAC5B0vE,YAAY,EACZO,QAAQ,GAEV5rF,OAAQ,CACN4Q,QAASgsG,EACP,iFACG3iG,OACH,KAEFoxE,YAAY,GAEdzmC,IAAKA,EACL4qC,UAAWktB,EACXlxB,YAAa,6BAEf/B,EAAMY,UAAUwyB,IAAMpzB,EAAMY,UAAU+f,IACvC,CAlHA,CAkHE3gB,EACL,CAvHA1tF,EAAOC,QAAUouG,EACjBA,EAAK5pG,YAAc,OACnB4pG,EAAK3e,QAAU,CAAC,sCCChB,SAASqxB,EAAKrzB,GACZA,EAAMY,UAAUyyB,KAAO,CAGrBjiG,QAAS,0BACTc,OAAQ,CACN/K,QAAS,4BACTg7E,QAAQ,GAEVN,QAAS,CACP16E,QAAS,oCACTy6E,YAAY,GAEdviE,UAAW,CACTlY,QAAS,0BACTy6E,YAAY,GAEdjrF,QAAS,qBACTmrF,SAAU,KACVC,YAAa,SAEjB,CAxBAzvF,EAAOC,QAAU8gH,EACjBA,EAAKt8G,YAAc,OACnBs8G,EAAKrxB,QAAU,kCCCf,SAASsxB,EAAItzB,IACV,SAAWA,GACV,SAASokB,EAAQv0F,GACf,OAAO,WACL,OAAOA,CACT,CACF,CACA,IAAIgyE,EACF,iXACE0xB,EAAa,SAAW1xB,EAAQrxE,OAAS,kBACzCgjG,EAAQ,oCAAoChjG,OAW5CmW,EACF,sBAVA,0GAA0GnW,OAAOzY,QAC/G,WACAqsG,EAAQoP,IAQ+B,SALzC,2DAA2DhjG,OAAOzY,QAChE,QACAqsG,EAAQmP,IAGwD,KAiBpEvzB,EAAMY,UAAU0yB,IAAM,CACpBliG,QAAS,CACP,CACEjK,QAAS,aACT65E,MAAO,eAET,WAEF9uE,OAAQ,CACN,CAEE/K,QAAS,oCACTy6E,YAAY,EACZO,QAAQ,GAEV,CAEEh7E,QAAS,iDACTy6E,YAAY,EACZO,QAAQ,IAGZl4E,KAAM,CAEJ9C,QACE,2FACFy6E,YAAY,EACZO,QAAQ,GAEVkC,QAAS,wBACT1jF,MAAO,CACLwG,QACE,4EACFy6E,YAAY,GAEd,aAAc,CAEZ,8EACA,CAIEz6E,QAASo7E,OACP,0EAA0E/xE,OACvEzY,QAAQ,UAAWqsG,EAAQz9E,IAC3B5uB,QAAQ,WAAYqsG,EAAQoP,KAEjC5xB,YAAY,EACZQ,OAAQ,MAEV,CAEEj7E,QAASo7E,OACP,uCAAuC/xE,OACpCzY,QAAQ,UAAWqsG,EAAQz9E,IAC3B5uB,QAAQ,WAAYqsG,EAAQoP,KAEjC5xB,YAAY,EACZQ,OAAQ,OAGZ,eAAgB,CACdj7E,QACE,oKACF65E,MAAO,WAETa,QAASA,EACTgB,SAAU,uBACVtsF,OACE,mHACFI,QAAS,qBACTmrF,SACE,6EACFC,YAAa,iBAEf/B,EAAMY,UAAU0yB,IAAI,cAAc59E,SAAQ,SAAUnkC,GAC/B,OAAfA,EAAI6wF,SACN7wF,EAAI6wF,OAASpC,EAAMY,UAAU0yB,IAEjC,GACD,CAtHA,CAsHEtzB,EACL,CA3HA1tF,EAAOC,QAAU+gH,EACjBA,EAAIv8G,YAAc,MAClBu8G,EAAItxB,QAAU,yBCFd,IAgBIhC,EAAS,SAAUyzB,GAGtB,IAAI7yG,EAAO,0CACP8yG,EAAW,EAGXC,EAAmB,CAAC,EAGpB16G,EAAI,CAsBPgnF,OAAQwzB,EAAMzzB,OAASyzB,EAAMzzB,MAAMC,OAsBnCC,4BAA6BuzB,EAAMzzB,OAASyzB,EAAMzzB,MAAME,4BAWxDa,KAAM,CACL9uE,OAAQ,SAASA,EAAOkvE,GACvB,OAAIA,aAAkBC,EACd,IAAIA,EAAMD,EAAOntF,KAAMie,EAAOkvE,EAAO3rF,SAAU2rF,EAAOH,OACnD5vF,MAAMF,QAAQiwF,GACjBA,EAAO7C,IAAIrsE,GAEXkvE,EAAOppF,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,UAAW,IAEhF,EAkBA/D,KAAM,SAAUoxF,GACf,OAAO10F,OAAOC,UAAUG,SAASO,KAAK+zF,GAAGzxF,MAAM,GAAI,EACpD,EAQAigH,MAAO,SAAUriH,GAIhB,OAHKA,EAAU,MACdb,OAAOK,eAAeQ,EAAK,OAAQ,CAAEW,QAASwhH,IAExCniH,EAAU,IAClB,EAYAqB,MAAO,SAASihH,EAAUzuB,EAAG0uB,GAG5B,IAAIlhH,EAAWiB,EACf,OAHAigH,EAAUA,GAAW,CAAC,EAGd76G,EAAE8nF,KAAK/sF,KAAKoxF,IACnB,IAAK,SAEJ,GADAvxF,EAAKoF,EAAE8nF,KAAK6yB,MAAMxuB,GACd0uB,EAAQjgH,GACX,OAAOigH,EAAQjgH,GAKhB,IAAK,IAAIrC,KAHToB,EAA4C,CAAC,EAC7CkhH,EAAQjgH,GAAMjB,EAEEwyF,EACXA,EAAEx0F,eAAeY,KACpBoB,EAAMpB,GAAOqiH,EAAUzuB,EAAE5zF,GAAMsiH,IAIjC,OAAO,EAER,IAAK,QAEJ,OADAjgH,EAAKoF,EAAE8nF,KAAK6yB,MAAMxuB,GACd0uB,EAAQjgH,GACJigH,EAAQjgH,IAEhBjB,EAAQ,GACRkhH,EAAQjgH,GAAMjB,EAE2BwyF,EAAK1vD,SAAQ,SAAUmiB,EAAG/kD,GAClEF,EAAME,GAAK+gH,EAAUh8D,EAAGi8D,EACzB,IAEO,GAER,QACC,OAAO1uB,EAEV,EAUA2uB,YAAa,SAAU/iF,GACtB,KAAOA,GAAS,CACf,IAAI/f,EAAIrQ,EAAKlN,KAAKs9B,EAAQl9B,WAC1B,GAAImd,EACH,OAAOA,EAAE,GAAGlc,cAEbi8B,EAAUA,EAAQgjF,aACnB,CACA,MAAO,MACR,EASAC,YAAa,SAAUjjF,EAASnwB,GAG/BmwB,EAAQl9B,UAAYk9B,EAAQl9B,UAAUiE,QAAQwqF,OAAO3hF,EAAM,MAAO,IAIlEowB,EAAQkjF,UAAU58D,IAAI,YAAcz2C,EACrC,EASAszG,cAAe,WACd,GAAwB,qBAAblhG,SACV,OAAO,KAER,GAAI,kBAAmBA,SACtB,OAA2BA,SAAsB,cAOlD,IACC,MAAM,IAAI5c,KAmBX,CAlBE,MAAOua,GAQR,IAAIne,GAAO,qCAAqCiB,KAAKkd,EAAI4f,QAAU,IAAI,GACvE,GAAI/9B,EAAK,CACR,IAAI2hH,EAAUnhG,SAASohG,qBAAqB,UAC5C,IAAK,IAAIvhH,KAAKshH,EACb,GAAIA,EAAQthH,GAAGL,KAAOA,EACrB,OAAO2hH,EAAQthH,EAGlB,CACA,OAAO,IACR,CACD,EAqBAwhH,SAAU,SAAUtjF,EAASl9B,EAAWygH,GAGvC,IAFA,IAAIC,EAAK,MAAQ1gH,EAEVk9B,GAAS,CACf,IAAIkjF,EAAYljF,EAAQkjF,UACxB,GAAIA,EAAUvyE,SAAS7tC,GACtB,OAAO,EAER,GAAIogH,EAAUvyE,SAAS6yE,GACtB,OAAO,EAERxjF,EAAUA,EAAQgjF,aACnB,CACA,QAASO,CACV,GAUD3zB,UAAW,CAIVgV,MAAO+d,EACPc,UAAWd,EACXvnG,KAAMunG,EACNe,IAAKf,EA8BLnhH,OAAQ,SAAUqB,EAAI8gH,GACrB,IAAI/zG,EAAO3H,EAAE8nF,KAAKnuF,MAAMqG,EAAE2nF,UAAU/sF,IAEpC,IAAK,IAAIrC,KAAOmjH,EACf/zG,EAAKpP,GAAOmjH,EAAMnjH,GAGnB,OAAOoP,CACR,EA6EAwhC,aAAc,SAAUggD,EAAQwY,EAAQga,EAAQC,GAE/C,IAAIl0B,GADJk0B,EAAOA,GAA4B57G,EAAE2nF,WAClBwB,GAEf7wE,EAAM,CAAC,EAEX,IAAK,IAAIuF,KAAS6pE,EACjB,GAAIA,EAAQ/vF,eAAekmB,GAAQ,CAElC,GAAIA,GAAS8jF,EACZ,IAAK,IAAIka,KAAYF,EAChBA,EAAOhkH,eAAekkH,KACzBvjG,EAAIujG,GAAYF,EAAOE,IAMrBF,EAAOhkH,eAAekmB,KAC1BvF,EAAIuF,GAAS6pE,EAAQ7pE,GAEvB,CAGD,IAAIi+F,EAAMF,EAAKzyB,GAUf,OATAyyB,EAAKzyB,GAAU7wE,EAGftY,EAAE2nF,UAAUo0B,IAAI/7G,EAAE2nF,WAAW,SAAUpvF,EAAKU,GACvCA,IAAU6iH,GAAOvjH,GAAO4wF,IAC3Bv0E,KAAKrc,GAAO+f,EAEd,IAEOA,CACR,EAGAyjG,IAAK,SAASA,EAAI5vB,EAAGziB,EAAU3uE,EAAM8/G,GACpCA,EAAUA,GAAW,CAAC,EAEtB,IAAIF,EAAQ36G,EAAE8nF,KAAK6yB,MAEnB,IAAK,IAAI9gH,KAAKsyF,EACb,GAAIA,EAAEx0F,eAAekC,GAAI,CACxB6vE,EAAStxE,KAAK+zF,EAAGtyF,EAAGsyF,EAAEtyF,GAAIkB,GAAQlB,GAElC,IAAImC,EAAWmwF,EAAEtyF,GACbmiH,EAAeh8G,EAAE8nF,KAAK/sF,KAAKiB,GAEV,WAAjBggH,GAA8BnB,EAAQF,EAAM3+G,IAGpB,UAAjBggH,GAA6BnB,EAAQF,EAAM3+G,MACrD6+G,EAAQF,EAAM3+G,KAAa,EAC3B+/G,EAAI//G,EAAU0tE,EAAU7vE,EAAGghH,KAJ3BA,EAAQF,EAAM3+G,KAAa,EAC3B+/G,EAAI//G,EAAU0tE,EAAU,KAAMmxC,GAKhC,CAEF,GAGDzS,QAAS,CAAC,EAcV6T,aAAc,SAAU53G,EAAOqlE,GAC9B1pE,EAAEk8G,kBAAkBliG,SAAU3V,EAAOqlE,EACtC,EAiBAwyC,kBAAmB,SAAUC,EAAW93G,EAAOqlE,GAC9C,IAAI0e,EAAM,CACT1e,SAAUA,EACVyyC,UAAWA,EACXniH,SAAU,oGAGXgG,EAAEuoF,MAAMC,IAAI,sBAAuBJ,GAEnCA,EAAIg0B,SAAWjkH,MAAMT,UAAUgD,MAAMsa,MAAMozE,EAAI+zB,UAAUl8B,iBAAiBmI,EAAIpuF,WAE9EgG,EAAEuoF,MAAMC,IAAI,gCAAiCJ,GAE7C,IAAK,IAAWrwD,EAAPl+B,EAAI,EAAak+B,EAAUqwD,EAAIg0B,SAASviH,MAChDmG,EAAEq8G,iBAAiBtkF,GAAmB,IAAV1zB,EAAgB+jF,EAAI1e,SAElD,EA8BA2yC,iBAAkB,SAAUtkF,EAAS1zB,EAAOqlE,GAE3C,IAAI9hE,EAAW5H,EAAE8nF,KAAKgzB,YAAY/iF,GAC9B2vD,EAAU1nF,EAAE2nF,UAAU//E,GAG1B5H,EAAE8nF,KAAKkzB,YAAYjjF,EAASnwB,GAG5B,IAAI2yB,EAASxC,EAAQgjF,cACjBxgF,GAA4C,QAAlCA,EAAO4f,SAASr+C,eAC7BkE,EAAE8nF,KAAKkzB,YAAYzgF,EAAQ3yB,GAG5B,IAEIwgF,EAAM,CACTrwD,QAASA,EACTnwB,SAAUA,EACV8/E,QAASA,EACTt2E,KANU2mB,EAAQ5d,aASnB,SAASmiG,EAAsBC,GAC9Bn0B,EAAIm0B,gBAAkBA,EAEtBv8G,EAAEuoF,MAAMC,IAAI,gBAAiBJ,GAE7BA,EAAIrwD,QAAQ7d,UAAYkuE,EAAIm0B,gBAE5Bv8G,EAAEuoF,MAAMC,IAAI,kBAAmBJ,GAC/BpoF,EAAEuoF,MAAMC,IAAI,WAAYJ,GACxB1e,GAAYA,EAAStxE,KAAKgwF,EAAIrwD,QAC/B,CAUA,GARA/3B,EAAEuoF,MAAMC,IAAI,sBAAuBJ,IAGnC7tD,EAAS6tD,EAAIrwD,QAAQgjF,gBAC2B,QAAlCxgF,EAAO4f,SAASr+C,gBAA4By+B,EAAOiiF,aAAa,aAC7EjiF,EAAOwlB,aAAa,WAAY,MAG5BqoC,EAAIh3E,KAGR,OAFApR,EAAEuoF,MAAMC,IAAI,WAAYJ,QACxB1e,GAAYA,EAAStxE,KAAKgwF,EAAIrwD,UAM/B,GAFA/3B,EAAEuoF,MAAMC,IAAI,mBAAoBJ,GAE3BA,EAAIV,QAKT,GAAIrjF,GAASm2G,EAAMiC,OAAQ,CAC1B,IAAIC,EAAS,IAAID,OAAOz8G,EAAE6X,UAE1B6kG,EAAOC,UAAY,SAAUC,GAC5BN,EAAsBM,EAAIt+G,KAC3B,EAEAo+G,EAAOG,YAAY38B,KAAKC,UAAU,CACjCv4E,SAAUwgF,EAAIxgF,SACdwJ,KAAMg3E,EAAIh3E,KACV0rG,gBAAgB,IAElB,MACCR,EAAsBt8G,EAAE4nF,UAAUQ,EAAIh3E,KAAMg3E,EAAIV,QAASU,EAAIxgF,gBAjB7D00G,EAAsBt8G,EAAE8nF,KAAK9uE,OAAOovE,EAAIh3E,MAmB1C,EAsBAw2E,UAAW,SAAUz0E,EAAMu0E,EAAS9/E,GACnC,IAAIwgF,EAAM,CACTh3E,KAAM+B,EACNu0E,QAASA,EACT9/E,SAAUA,GAGX,GADA5H,EAAEuoF,MAAMC,IAAI,kBAAmBJ,IAC1BA,EAAIV,QACR,MAAM,IAAItqF,MAAM,iBAAmBgrF,EAAIxgF,SAAW,qBAInD,OAFAwgF,EAAIF,OAASloF,EAAE+gG,SAAS3Y,EAAIh3E,KAAMg3E,EAAIV,SACtC1nF,EAAEuoF,MAAMC,IAAI,iBAAkBJ,GACvBD,EAAMhI,UAAUngF,EAAE8nF,KAAK9uE,OAAOovE,EAAIF,QAASE,EAAIxgF,SACvD,EA0BAm5F,SAAU,SAAU5tF,EAAMu0E,GACzB,IAAI0E,EAAO1E,EAAQ0E,KACnB,GAAIA,EAAM,CACT,IAAK,IAAIvuE,KAASuuE,EACjB1E,EAAQ7pE,GAASuuE,EAAKvuE,UAGhB6pE,EAAQ0E,IAChB,CAEA,IAAI2wB,EAAY,IAAIC,EAKpB,OAJAC,EAASF,EAAWA,EAAUG,KAAM/pG,GAEpCgqG,EAAahqG,EAAM4pG,EAAWr1B,EAASq1B,EAAUG,KAAM,GAyazD,SAAiBr1G,GAChB,IAAIg1C,EAAQ,GACR5gD,EAAO4L,EAAKq1G,KAAK5hG,KACrB,KAAOrf,IAAS4L,EAAK0vE,MACpB16B,EAAM/hD,KAAKmB,EAAKhD,OAChBgD,EAAOA,EAAKqf,KAEb,OAAOuhC,CACR,CA/aS0oC,CAAQw3B,EAChB,EAOAx0B,MAAO,CACN60B,IAAK,CAAC,EAcN/+D,IAAK,SAAUvlD,EAAM4wE,GACpB,IAAI6e,EAAQvoF,EAAEuoF,MAAM60B,IAEpB70B,EAAMzvF,GAAQyvF,EAAMzvF,IAAS,GAE7ByvF,EAAMzvF,GAAMgC,KAAK4uE,EAClB,EAWA8e,IAAK,SAAU1vF,EAAMsvF,GACpB,IAAIi1B,EAAYr9G,EAAEuoF,MAAM60B,IAAItkH,GAE5B,GAAKukH,GAAcA,EAAUvjH,OAI7B,IAAK,IAAW4vE,EAAP7vE,EAAI,EAAc6vE,EAAW2zC,EAAUxjH,MAC/C6vE,EAAS0e,EAEX,GAGDD,MAAOA,GAqBR,SAASA,EAAMptF,EAAMwB,EAASwrF,EAAOu1B,GAUpC1oG,KAAK7Z,KAAOA,EASZ6Z,KAAKrY,QAAUA,EAQfqY,KAAKmzE,MAAQA,EAEbnzE,KAAK9a,OAAqC,GAA3BwjH,GAAc,IAAIxjH,MAClC,CA6EA,SAASyjH,EAAarvG,EAASkK,EAAKjF,EAAMw1E,GACzCz6E,EAAQ1T,UAAY4d,EACpB,IAAIhe,EAAQ8T,EAAQzT,KAAK0Y,GACzB,GAAI/Y,GAASuuF,GAAcvuF,EAAM,GAAI,CAEpC,IAAIojH,EAAmBpjH,EAAM,GAAGN,OAChCM,EAAMO,OAAS6iH,EACfpjH,EAAM,GAAKA,EAAM,GAAGM,MAAM8iH,EAC3B,CACA,OAAOpjH,CACR,CAgBA,SAAS+iH,EAAahqG,EAAM4pG,EAAWr1B,EAAS+1B,EAAWC,EAAUC,GACpE,IAAK,IAAI9/F,KAAS6pE,EACjB,GAAKA,EAAQ/vF,eAAekmB,IAAW6pE,EAAQ7pE,GAA/C,CAIA,IAAI+/F,EAAWl2B,EAAQ7pE,GACvB+/F,EAAWzlH,MAAMF,QAAQ2lH,GAAYA,EAAW,CAACA,GAEjD,IAAK,IAAIr/E,EAAI,EAAGA,EAAIq/E,EAAS9jH,SAAUykC,EAAG,CACzC,GAAIo/E,GAAWA,EAAQE,OAAShgG,EAAQ,IAAM0gB,EAC7C,OAGD,IAAIu/E,EAAaF,EAASr/E,GACtB4qD,EAAS20B,EAAW30B,OACpBR,IAAem1B,EAAWn1B,WAC1BO,IAAW40B,EAAW50B,OACtBnB,EAAQ+1B,EAAW/1B,MAEvB,GAAImB,IAAW40B,EAAW5vG,QAAQ24E,OAAQ,CAEzC,IAAIt7B,EAAQuyD,EAAW5vG,QAAQrW,WAAWuC,MAAM,aAAa,GAC7D0jH,EAAW5vG,QAAUo7E,OAAOw0B,EAAW5vG,QAAQqJ,OAAQg0C,EAAQ,IAChE,CAKA,IAFA,IAAIr9C,EAAU4vG,EAAW5vG,SAAW4vG,EAG/BC,EAAcN,EAAUniG,KAAMlD,EAAMslG,EACxCK,IAAgBhB,EAAUxlC,QAItBomC,GAAWvlG,GAAOulG,EAAQK,OAH9B5lG,GAAO2lG,EAAY9kH,MAAMa,OAAQikH,EAAcA,EAAYziG,KAC1D,CAMD,IAAI1E,EAAMmnG,EAAY9kH,MAEtB,GAAI8jH,EAAUjjH,OAASqZ,EAAKrZ,OAE3B,OAGD,KAAI8c,aAAeuxE,GAAnB,CAIA,IACI/tF,EADA6jH,EAAc,EAGlB,GAAI/0B,EAAQ,CAEX,KADA9uF,EAAQmjH,EAAarvG,EAASkK,EAAKjF,EAAMw1E,KAC3BvuF,EAAMO,OAASwY,EAAKrZ,OACjC,MAGD,IAAIokH,EAAO9jH,EAAMO,MACbwjH,EAAK/jH,EAAMO,MAAQP,EAAM,GAAGN,OAC5B6nC,EAAIvpB,EAIR,IADAupB,GAAKo8E,EAAY9kH,MAAMa,OAChBokH,GAAQv8E,GAEdA,IADAo8E,EAAcA,EAAYziG,MACTriB,MAAMa,OAOxB,GAHAse,EADAupB,GAAKo8E,EAAY9kH,MAAMa,OAInBikH,EAAY9kH,iBAAiBkvF,EAChC,SAID,IACC,IAAIpmC,EAAIg8D,EACRh8D,IAAMg7D,EAAUxlC,OAAS51C,EAAIw8E,GAAyB,kBAAZp8D,EAAE9oD,OAC5C8oD,EAAIA,EAAEzmC,KAEN2iG,IACAt8E,GAAKogB,EAAE9oD,MAAMa,OAEdmkH,IAGArnG,EAAMzD,EAAKzY,MAAM0d,EAAKupB,GACtBvnC,EAAMO,OAASyd,CAChB,MAEC,KADAhe,EAAQmjH,EAAarvG,EAAS,EAAG0I,EAAK+xE,IAErC,SAKEu1B,EAAO9jH,EAAMO,MAAjB,IACIyjH,EAAWhkH,EAAM,GACjBunG,EAAS/qF,EAAIlc,MAAM,EAAGwjH,GACtBrc,EAAQjrF,EAAIlc,MAAMwjH,EAAOE,EAAStkH,QAElCkkH,EAAQ5lG,EAAMxB,EAAI9c,OAClB6jH,GAAWK,EAAQL,EAAQK,QAC9BL,EAAQK,MAAQA,GAGjB,IAAIK,EAAaN,EAAY1iG,KAgB7B,GAdIsmF,IACH0c,EAAapB,EAASF,EAAWsB,EAAY1c,GAC7CvpF,GAAOupF,EAAO7nG,QAGfwkH,EAAYvB,EAAWsB,EAAYJ,GAGnCF,EAAcd,EAASF,EAAWsB,EADpB,IAAIl2B,EAAMtqE,EAAOsrE,EAASnpF,EAAE+gG,SAASqd,EAAUj1B,GAAUi1B,EAAUr2B,EAAOq2B,IAGpFvc,GACHob,EAASF,EAAWgB,EAAalc,GAG9Boc,EAAc,EAAG,CAKpB,IAAIM,EAAgB,CACnBV,MAAOhgG,EAAQ,IAAM0gB,EACrBy/E,MAAOA,GAERb,EAAahqG,EAAM4pG,EAAWr1B,EAASq2B,EAAY1iG,KAAMjD,EAAKmmG,GAG1DZ,GAAWY,EAAcP,MAAQL,EAAQK,QAC5CL,EAAQK,MAAQO,EAAcP,MAEhC,CA7FA,CA8FD,CACD,CA3IA,CA6IF,CAeA,SAAShB,IAER,IAAIE,EAAO,CAAEjkH,MAAO,KAAMoiB,KAAM,KAAMC,KAAM,MAExCi8D,EAAO,CAAEt+E,MAAO,KAAMoiB,KAAM6hG,EAAM5hG,KAAM,MAC5C4hG,EAAK5hG,KAAOi8D,EAGZ3iE,KAAKsoG,KAAOA,EAEZtoG,KAAK2iE,KAAOA,EACZ3iE,KAAK9a,OAAS,CACf,CAWA,SAASmjH,EAASp1G,EAAM5L,EAAMhD,GAE7B,IAAIqiB,EAAOrf,EAAKqf,KAEZi/B,EAAU,CAAEthD,MAAOA,EAAOoiB,KAAMpf,EAAMqf,KAAMA,GAKhD,OAJArf,EAAKqf,KAAOi/B,EACZj/B,EAAKD,KAAOk/B,EACZ1yC,EAAK/N,SAEEygD,CACR,CASA,SAAS+jE,EAAYz2G,EAAM5L,EAAMqpF,GAEhC,IADA,IAAIhqE,EAAOrf,EAAKqf,KACPzhB,EAAI,EAAGA,EAAIyrF,GAAShqE,IAASzT,EAAK0vE,KAAM19E,IAChDyhB,EAAOA,EAAKA,KAEbrf,EAAKqf,KAAOA,EACZA,EAAKD,KAAOpf,EACZ4L,EAAK/N,QAAUD,CAChB,CAiBA,GA3XA2gH,EAAMzzB,MAAQ/mF,EA+EdmoF,EAAMhI,UAAY,SAASA,EAAUgM,EAAGvkF,GACvC,GAAgB,iBAALukF,EACV,OAAOA,EAER,GAAIh0F,MAAMF,QAAQk0F,GAAI,CACrB,IAAIuV,EAAI,GAIR,OAHAvV,EAAE1vD,SAAQ,SAAUqiB,GACnB4iD,GAAKvhB,EAAUrhC,EAAGl3C,EACnB,IACO85F,CACR,CAEA,IAAItZ,EAAM,CACTrtF,KAAMoxF,EAAEpxF,KACRwB,QAAS4jF,EAAUgM,EAAE5vF,QAASqL,GAC9Bs6C,IAAK,OACLomC,QAAS,CAAC,QAAS6D,EAAEpxF,MACrBqI,WAAY,CAAC,EACbwE,SAAUA,GAGPmhF,EAAUoD,EAAEpE,MACZgB,IACC5wF,MAAMF,QAAQ8wF,GACjB5wF,MAAMT,UAAUoD,KAAKka,MAAMozE,EAAIE,QAASS,GAExCX,EAAIE,QAAQxtF,KAAKiuF,IAInB/oF,EAAEuoF,MAAMC,IAAI,OAAQJ,GAEpB,IAAIhlF,EAAa,GACjB,IAAK,IAAItK,KAAQsvF,EAAIhlF,WACpBA,GAAc,IAAMtK,EAAO,MAAQsvF,EAAIhlF,WAAWtK,IAAS,IAAIgG,QAAQ,KAAM,UAAY,IAG1F,MAAO,IAAMspF,EAAIlmC,IAAM,WAAakmC,EAAIE,QAAQzrF,KAAK,KAAO,IAAMuG,EAAa,IAAMglF,EAAI7rF,QAAU,KAAO6rF,EAAIlmC,IAAM,GACrH,GAsQKs4D,EAAMxgG,SACV,OAAKwgG,EAAM7vD,kBAKN3qD,EAAEinF,6BAENuzB,EAAM7vD,iBAAiB,WAAW,SAAUiyD,GAC3C,IAAIzpC,EAAU+M,KAAKpjE,MAAM8/F,EAAIt+G,MACzBqJ,EAAOwrE,EAAQvrE,SACfwJ,EAAO+hE,EAAQ/hE,KACf0rG,EAAiB3pC,EAAQ2pC,eAE7BtC,EAAMqC,YAAY78G,EAAE4nF,UAAUx2E,EAAMpR,EAAE2nF,UAAUhgF,GAAOA,IACnDm1G,GACHtC,EAAMvf,OAER,IAAG,GAGGj7F,GAlBCA,EAsBT,IAAI0mC,EAAS1mC,EAAE8nF,KAAKozB,gBAUpB,SAASsD,IACHx+G,EAAEgnF,QACNhnF,EAAEi8G,cAEJ,CAEA,GAdIv1E,IACH1mC,EAAE6X,SAAW6uB,EAAOltC,IAEhBktC,EAAO81E,aAAa,iBACvBx8G,EAAEgnF,QAAS,KAURhnF,EAAEgnF,OAAQ,CAOd,IAAIy3B,EAAazkG,SAASykG,WACP,YAAfA,GAA2C,gBAAfA,GAAgC/3E,GAAUA,EAAOlhC,MAChFwU,SAAS2wC,iBAAiB,mBAAoB6zD,GAE1CjgE,OAAOmgE,sBACVngE,OAAOmgE,sBAAsBF,GAE7BjgE,OAAO8jB,WAAWm8C,EAAgC,GAGrD,CAEA,OAAOx+G,CAER,CAlqCa,CAhBkB,qBAAXu+C,OACjBA,OAE6B,qBAAtBogE,mBAAqC/3B,gBAAgB+3B,kBAC1D/3B,KACA,CAAC,GA+qC+BvtF,EAAOC,UAC3CD,EAAOC,QAAUytF,GAII,qBAAXF,EAAAA,IACVA,EAAAA,EAAOE,MAAQA,oCCnrCH,SAAShoC,EAAEjB,EAAEC,GAAG,IAAI7lC,EAAE4lC,EAAEhkD,OAAOgkD,EAAEhjD,KAAKijD,GAAGD,EAAE,KAAK,EAAE5lC,GAAG,CAAC,IAAI2mC,EAAE3mC,EAAE,IAAI,EAAE4mC,EAAEhB,EAAEe,GAAG,KAAG,EAAEG,EAAEF,EAAEf,IAA0B,MAAMD,EAA7BA,EAAEe,GAAGd,EAAED,EAAE5lC,GAAG4mC,EAAE5mC,EAAE2mC,CAAc,CAAC,CAAC,SAASiD,EAAEhE,GAAG,OAAO,IAAIA,EAAEhkD,OAAO,KAAKgkD,EAAE,EAAE,CAAC,SAASiE,EAAEjE,GAAG,GAAG,IAAIA,EAAEhkD,OAAO,OAAO,KAAK,IAAIikD,EAAED,EAAE,GAAG5lC,EAAE4lC,EAAErmB,MAAM,GAAGvf,IAAI6lC,EAAE,CAACD,EAAE,GAAG5lC,EAAE4lC,EAAE,IAAI,IAAIe,EAAE,EAAEC,EAAEhB,EAAEhkD,OAAOgnE,EAAEhiB,IAAI,EAAED,EAAEiiB,GAAG,CAAC,IAAI9oD,EAAE,GAAG6mC,EAAE,GAAG,EAAEgQ,EAAE/Q,EAAE9lC,GAAGyoD,EAAEzoD,EAAE,EAAE4oD,EAAE9iB,EAAE2iB,GAAG,GAAG,EAAEzhB,EAAE6P,EAAE32C,GAAGuoD,EAAE3hB,GAAG,EAAEE,EAAE4hB,EAAE/R,IAAI/Q,EAAEe,GAAG+hB,EAAE9iB,EAAE2iB,GAAGvoD,EAAE2mC,EAAE4hB,IAAI3iB,EAAEe,GAAGgQ,EAAE/Q,EAAE9lC,GAAGE,EAAE2mC,EAAE7mC,OAAQ,MAAGyoD,EAAE3hB,GAAG,EAAEE,EAAE4hB,EAAE1oD,IAA0B,MAAM4lC,EAA7BA,EAAEe,GAAG+hB,EAAE9iB,EAAE2iB,GAAGvoD,EAAE2mC,EAAE4hB,CAAc,EAAC,CAAC,OAAO1iB,CAAC,CAC3c,SAASiB,EAAElB,EAAEC,GAAG,IAAI7lC,EAAE4lC,EAAE8gE,UAAU7gE,EAAE6gE,UAAU,OAAO,IAAI1mG,EAAEA,EAAE4lC,EAAEljD,GAAGmjD,EAAEnjD,EAAE,CAAC,GAAG,kBAAkBikH,aAAa,oBAAoBA,YAAY5iG,IAAI,CAAC,IAAI7C,EAAEylG,YAAYvlH,EAAQkzD,aAAa,WAAW,OAAOpzC,EAAE6C,KAAK,CAAC,KAAK,CAAC,IAAI0lB,EAAEgyB,KAAKqW,EAAEroC,EAAE1lB,MAAM3iB,EAAQkzD,aAAa,WAAW,OAAO7qB,EAAE1lB,MAAM+tD,CAAC,CAAC,CAAC,IAAIC,EAAE,GAAGvJ,EAAE,GAAGG,EAAE,EAAEjiB,EAAE,KAAKsrB,EAAE,EAAE3qB,GAAE,EAAGzxB,GAAE,EAAGjF,GAAE,EAAGk3C,EAAE,oBAAoBsC,WAAWA,WAAW,KAAKuB,EAAE,oBAAoBrB,aAAaA,aAAa,KAAKxB,EAAE,qBAAqB+9C,aAAaA,aAAa,KACnT,SAASj7C,EAAE/lB,GAAG,IAAI,IAAIC,EAAE+D,EAAE4e,GAAG,OAAO3iB,GAAG,CAAC,GAAG,OAAOA,EAAE2rB,SAAS3nB,EAAE2e,OAAQ,MAAG3iB,EAAEghE,WAAWjhE,GAAgD,MAA9CiE,EAAE2e,GAAG3iB,EAAE6gE,UAAU7gE,EAAEihE,eAAejgE,EAAEkrB,EAAElsB,EAAa,CAACA,EAAE+D,EAAE4e,EAAE,CAAC,CAAC,SAASqD,EAAEjmB,GAAa,GAAVj1B,GAAE,EAAGg7C,EAAE/lB,IAAOhwB,EAAE,GAAG,OAAOg0B,EAAEmoB,GAAGn8C,GAAE,EAAG5D,EAAEy2C,OAAO,CAAC,IAAI5iB,EAAE+D,EAAE4e,GAAG,OAAO3iB,GAAG6rB,EAAE7F,EAAEhmB,EAAEghE,UAAUjhE,EAAE,CAAC,CACra,SAAS6iB,EAAE7iB,EAAEC,GAAGjwB,GAAE,EAAGjF,IAAIA,GAAE,EAAG+6C,EAAEiH,GAAGA,GAAG,GAAGtrB,GAAE,EAAG,IAAIrnC,EAAEgyD,EAAE,IAAS,IAALrG,EAAE9lB,GAAOa,EAAEkD,EAAEmoB,GAAG,OAAOrrB,MAAMA,EAAEogE,eAAejhE,IAAID,IAAI4vB,MAAM,CAAC,IAAI7uB,EAAED,EAAE8qB,SAAS,GAAG,oBAAoB7qB,EAAE,CAACD,EAAE8qB,SAAS,KAAKQ,EAAEtrB,EAAEqgE,cAAc,IAAIngE,EAAED,EAAED,EAAEogE,gBAAgBjhE,GAAGA,EAAEzkD,EAAQkzD,eAAe,oBAAoB1N,EAAEF,EAAE8qB,SAAS5qB,EAAEF,IAAIkD,EAAEmoB,IAAIloB,EAAEkoB,GAAGpG,EAAE9lB,EAAE,MAAMgE,EAAEkoB,GAAGrrB,EAAEkD,EAAEmoB,EAAE,CAAC,GAAG,OAAOrrB,EAAE,IAAIkiB,GAAE,MAAO,CAAC,IAAI9oD,EAAE8pC,EAAE4e,GAAG,OAAO1oD,GAAG4xD,EAAE7F,EAAE/rD,EAAE+mG,UAAUhhE,GAAG+iB,GAAE,CAAE,CAAC,OAAOA,CAAyB,CAAvB,QAAQliB,EAAE,KAAKsrB,EAAEhyD,EAAEqnC,GAAE,CAAE,CAAC,CAD1a,qBAAqB2/D,gBAAW,IAASA,UAAUC,iBAAY,IAASD,UAAUC,WAAWC,gBAAgBF,UAAUC,WAAWC,eAAe7+C,KAAK2+C,UAAUC,YAC2Q,IACzPt0F,EAD6PujD,GAAE,EAAGC,EAAE,KAAKxD,GAAG,EAAEngD,EAAE,EAAEgkD,GAAG,EACvc,SAAShB,IAAI,QAAOp0E,EAAQkzD,eAAekiB,EAAEhkD,EAAO,CAAC,SAASylD,IAAI,GAAG,OAAO9B,EAAE,CAAC,IAAIvwB,EAAExkD,EAAQkzD,eAAekiB,EAAE5wB,EAAE,IAAIC,GAAE,EAAG,IAAIA,EAAEswB,GAAE,EAAGvwB,EAA8B,CAA3B,QAAQC,EAAElzB,KAAKujD,GAAE,EAAGC,EAAE,KAAK,CAAC,MAAMD,GAAE,CAAE,CAAO,GAAG,oBAAoBrN,EAAEl2C,EAAE,WAAWk2C,EAAEoP,EAAE,OAAO,GAAG,qBAAqBkvC,eAAe,CAAC,IAAIpnC,EAAE,IAAIonC,eAAe/zF,EAAE2sD,EAAEqnC,MAAMrnC,EAAEsnC,MAAM5C,UAAUxsC,EAAEtlD,EAAE,WAAWS,EAAEuxF,YAAY,KAAK,CAAC,MAAMhyF,EAAE,WAAWk1C,EAAEoQ,EAAE,EAAE,EAAE,SAASjmD,EAAE4zB,GAAGuwB,EAAEvwB,EAAEswB,IAAIA,GAAE,EAAGvjD,IAAI,CAAC,SAAS++C,EAAE9rB,EAAEC,GAAG8sB,EAAE9K,GAAE,WAAWjiB,EAAExkD,EAAQkzD,eAAe,GAAEzO,EAAE,CAC5dzkD,EAAQ8zD,sBAAsB,EAAE9zD,EAAQszD,2BAA2B,EAAEtzD,EAAQ4zD,qBAAqB,EAAE5zD,EAAQ0zD,wBAAwB,EAAE1zD,EAAQkmH,mBAAmB,KAAKlmH,EAAQwzD,8BAA8B,EAAExzD,EAAQ6yD,wBAAwB,SAASrO,GAAGA,EAAE4rB,SAAS,IAAI,EAAEpwE,EAAQmmH,2BAA2B,WAAW3xF,GAAGyxB,IAAIzxB,GAAE,EAAG5D,EAAEy2C,GAAG,EAC1UrnE,EAAQomH,wBAAwB,SAAS5hE,GAAG,EAAEA,GAAG,IAAIA,EAAEy1B,QAAQ97D,MAAM,mHAAmHiT,EAAE,EAAEozB,EAAE3oC,KAAKmzF,MAAM,IAAIxqD,GAAG,CAAC,EAAExkD,EAAQozD,iCAAiC,WAAW,OAAOwd,CAAC,EAAE5wE,EAAQqmH,8BAA8B,WAAW,OAAO79D,EAAEmoB,EAAE,EAAE3wE,EAAQsmH,cAAc,SAAS9hE,GAAG,OAAOosB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAInsB,EAAE,EAAE,MAAM,QAAQA,EAAEmsB,EAAE,IAAIhyD,EAAEgyD,EAAEA,EAAEnsB,EAAE,IAAI,OAAOD,GAAe,CAAX,QAAQosB,EAAEhyD,CAAC,CAAC,EAAE5e,EAAQumH,wBAAwB,WAAW,EAC9fvmH,EAAQizD,sBAAsB,WAAW,EAAEjzD,EAAQwmH,yBAAyB,SAAShiE,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAI5lC,EAAEgyD,EAAEA,EAAEpsB,EAAE,IAAI,OAAOC,GAAe,CAAX,QAAQmsB,EAAEhyD,CAAC,CAAC,EAChM5e,EAAQ2yD,0BAA0B,SAASnO,EAAEC,EAAE7lC,GAAG,IAAI2mC,EAAEvlD,EAAQkzD,eAA8F,OAA/E,kBAAkBt0C,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAE6nG,QAA6B,EAAE7nG,EAAE2mC,EAAE3mC,EAAE2mC,EAAG3mC,EAAE2mC,EAASf,GAAG,KAAK,EAAE,IAAIgB,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAAmN,OAAzMhB,EAAE,CAACljD,GAAGimE,IAAI6I,SAAS3rB,EAAEkhE,cAAcnhE,EAAEihE,UAAU7mG,EAAE8mG,eAAvDlgE,EAAE5mC,EAAE4mC,EAAoE8/D,WAAW,GAAG1mG,EAAE2mC,GAAGf,EAAE8gE,UAAU1mG,EAAE6mC,EAAE2hB,EAAE5iB,GAAG,OAAOgE,EAAEmoB,IAAInsB,IAAIgE,EAAE4e,KAAK73C,GAAG+6C,EAAEiH,GAAGA,GAAG,GAAGhiD,GAAE,EAAG+gD,EAAE7F,EAAE7rD,EAAE2mC,MAAMf,EAAE8gE,UAAU9/D,EAAEC,EAAEkrB,EAAEnsB,GAAGhwB,GAAGyxB,IAAIzxB,GAAE,EAAG5D,EAAEy2C,KAAY7iB,CAAC,EACnexkD,EAAQ+yD,qBAAqBqhB,EAAEp0E,EAAQ0mH,sBAAsB,SAASliE,GAAG,IAAIC,EAAEmsB,EAAE,OAAO,WAAW,IAAIhyD,EAAEgyD,EAAEA,EAAEnsB,EAAE,IAAI,OAAOD,EAAE9oC,MAAMJ,KAAKhb,UAAsB,CAAX,QAAQswE,EAAEhyD,CAAC,CAAC,CAAC,qCCf7J7e,EAAOC,QAAU,EAAjBD,4BCHF,IAAIyjB,EAAQ1hB,EAAQ,MAyCpB/B,EAAOC,QA5BP,SAAuBwD,EAAOskD,GAC5B,IAKI/oC,EALA8C,EAAS,KACb,IAAKre,GAA0B,kBAAVA,EACnB,OAAOqe,EAST,IALA,IAEInf,EACA/C,EAHAwf,EAAeqE,EAAMhgB,GACrBmjH,EAAkC,oBAAb7+D,EAIhBvnD,EAAI,EAAGqmH,EAAMznG,EAAa3e,OAAQD,EAAIqmH,EAAKrmH,IAElDmC,GADAqc,EAAcI,EAAa5e,IACJmC,SACvB/C,EAAQof,EAAYpf,MAEhBgnH,EACF7+D,EAASplD,EAAU/C,EAAOof,GACjBpf,IACTkiB,IAAWA,EAAS,CAAC,GACrBA,EAAOnf,GAAY/C,GAIvB,OAAOkiB,CACT,oBCvCA9hB,EAAOC,QAIP,WAGI,IAFA,IAAIV,EAAS,CAAC,EAELiB,EAAI,EAAGA,EAAID,UAAUE,OAAQD,IAAK,CACvC,IAAI0d,EAAS3d,UAAUC,GAEvB,IAAK,IAAItB,KAAOgf,EACR5f,EAAeS,KAAKmf,EAAQhf,KAC5BK,EAAOL,GAAOgf,EAAOhf,GAGjC,CAEA,OAAOK,CACX,EAhBA,IAAIjB,EAAiBF,OAAOC,UAAUC,iCCItC0B,EAAOC,QANP,SAAgCstF,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIu5B,eAAe,6DAE3B,OAAOv5B,CACT,EACyCvtF,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,0BCD9GD,EAAOC,QALP,SAAyBumE,EAAUwgD,GACjC,KAAMxgD,aAAoBwgD,GACxB,MAAM,IAAIxpG,UAAU,oCAExB,EACkCxd,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,0BCLvG,SAASgnH,EAAkB1nH,EAAQyB,GACjC,IAAK,IAAIR,EAAI,EAAGA,EAAIQ,EAAMP,OAAQD,IAAK,CACrC,IAAI0mH,EAAalmH,EAAMR,GACvB0mH,EAAWxnH,WAAawnH,EAAWxnH,aAAc,EACjDwnH,EAAWvnH,cAAe,EACtB,UAAWunH,IAAYA,EAAWpnH,UAAW,GACjD1B,OAAOK,eAAec,EAAQ2nH,EAAWhoH,IAAKgoH,EAChD,CACF,CASAlnH,EAAOC,QARP,SAAsB+mH,EAAaG,EAAYC,GAM7C,OALID,GAAYF,EAAkBD,EAAY3oH,UAAW8oH,GACrDC,GAAaH,EAAkBD,EAAaI,GAChDhpH,OAAOK,eAAeuoH,EAAa,YAAa,CAC9ClnH,UAAU,IAELknH,CACT,EAC+BhnH,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,8BCjBpG,IAAIonH,EAAiB,EAAQ,MACzBC,EAA2B,EAAQ,MACnCC,EAA4B,EAAQ,MAexCvnH,EAAOC,QAdP,SAAsBunH,GACpB,IAAIC,EAA4BH,IAChC,OAAO,WACL,IACE9kH,EADEklH,EAAQL,EAAeG,GAE3B,GAAIC,EAA2B,CAC7B,IAAIE,EAAYN,EAAe9rG,MAAMlc,YACrCmD,EAAS+lD,QAAQC,UAAUk/D,EAAOnnH,UAAWonH,EAC/C,MACEnlH,EAASklH,EAAM/rG,MAAMJ,KAAMhb,WAE7B,OAAOgnH,EAA0BhsG,KAAM/Y,EACzC,CACF,EAC+BxC,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,0BCJpGD,EAAOC,QAbP,SAAyBhB,EAAKC,EAAKU,GAWjC,OAVIV,KAAOD,EACTb,OAAOK,eAAeQ,EAAKC,EAAK,CAC9BU,MAAOA,EACPF,YAAY,EACZC,cAAc,EACdG,UAAU,IAGZb,EAAIC,GAAOU,EAENX,CACT,EACkCe,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,8BCbvG,IAAI2nH,EAAgB,EAAQ,MAC5B,SAASC,IAcP,MAbuB,qBAAZt/D,SAA2BA,QAAQkB,KAC5CzpD,EAAOC,QAAU4nH,EAAOt/D,QAAQkB,IAAIyd,OAAQlnE,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,UAEjHD,EAAOC,QAAU4nH,EAAO,SAActoH,EAAQoD,EAAUmlH,GACtD,IAAIx4D,EAAOs4D,EAAcroH,EAAQoD,GACjC,GAAK2sD,EAAL,CACA,IAAIy4D,EAAO3pH,OAAOO,yBAAyB2wD,EAAM3sD,GACjD,OAAIolH,EAAKt+D,IACAs+D,EAAKt+D,IAAI1qD,KAAKwB,UAAUE,OAAS,EAAIlB,EAASuoH,GAEhDC,EAAKnoH,KALK,CAMnB,EAAGI,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,SAEnE4nH,EAAKlsG,MAAMJ,KAAMhb,UAC1B,CACAP,EAAOC,QAAU4nH,EAAM7nH,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,0BCjB5F,SAAS+nH,EAAgBl1B,GAIvB,OAHA9yF,EAAOC,QAAU+nH,EAAkB5pH,OAAO6pH,eAAiB7pH,OAAOipH,eAAengD,OAAS,SAAyB4rB,GACjH,OAAOA,EAAEo1B,WAAa9pH,OAAOipH,eAAev0B,EAC9C,EAAG9yF,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,QACjE+nH,EAAgBl1B,EACzB,CACA9yF,EAAOC,QAAU+nH,EAAiBhoH,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,8BCNvG,IAAIgoH,EAAiB,EAAQ,MAiB7BjoH,EAAOC,QAhBP,SAAmBkoH,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI5qG,UAAU,sDAEtB2qG,EAAS9pH,UAAYD,OAAOoI,OAAO4hH,GAAcA,EAAW/pH,UAAW,CACrEgB,YAAa,CACXO,MAAOuoH,EACProH,UAAU,EACVH,cAAc,KAGlBvB,OAAOK,eAAe0pH,EAAU,YAAa,CAC3CroH,UAAU,IAERsoH,GAAYH,EAAeE,EAAUC,EAC3C,EAC4BpoH,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,0BCNjGD,EAAOC,QAXP,WACE,GAAuB,qBAAZsoD,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAU6/D,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EACxC,IAEE,OADA5f,QAAQrqG,UAAUstD,QAAQ5sD,KAAKwpD,QAAQC,UAAUkgD,QAAS,IAAI,WAAa,MACpE,CAGT,CAFE,MAAOjjD,GACP,OAAO,CACT,CACF,EAC4CzlD,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,8BCXjH,IAAIsoH,EAAU,gBACVC,EAAwB,EAAQ,MASpCxoH,EAAOC,QARP,SAAoCstF,EAAMxuF,GACxC,GAAIA,IAA2B,WAAlBwpH,EAAQxpH,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIye,UAAU,4DAEtB,OAAOgrG,EAAsBj7B,EAC/B,EAC6CvtF,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,0BCVlH,SAASwoH,EAAgB31B,EAAGxqD,GAK1B,OAJAtoC,EAAOC,QAAUwoH,EAAkBrqH,OAAO6pH,eAAiB7pH,OAAO6pH,eAAe/gD,OAAS,SAAyB4rB,EAAGxqD,GAEpH,OADAwqD,EAAEo1B,UAAY5/E,EACPwqD,CACT,EAAG9yF,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,QACjEwoH,EAAgB31B,EAAGxqD,EAC5B,CACAtoC,EAAOC,QAAUwoH,EAAiBzoH,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,8BCPvG,IAAIonH,EAAiB,EAAQ,MAQ7BrnH,EAAOC,QAPP,SAAwBmZ,EAAQzW,GAC9B,MAAQvE,OAAOC,UAAUC,eAAeS,KAAKqa,EAAQzW,IAEpC,QADfyW,EAASiuG,EAAejuG,MAG1B,OAAOA,CACT,EACiCpZ,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,0BCRtG,SAASsoH,EAAQtpH,GAGf,OAAQe,EAAOC,QAAUsoH,EAAU,mBAAqBvhE,QAAU,iBAAmBA,OAAOe,SAAW,SAAU9oD,GAC/G,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqB+nD,QAAU/nD,EAAII,cAAgB2nD,QAAU/nD,IAAQ+nD,OAAO3oD,UAAY,gBAAkBY,CAC1H,EAAGe,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,QAAUsoH,EAAQtpH,EAC5F,CACAe,EAAOC,QAAUsoH,EAASvoH,EAAOC,QAAQ8mH,YAAa,EAAM/mH,EAAOC,QAAiB,QAAID,EAAOC,8iECR3FyoH,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBxlH,IAAjBylH,EACH,OAAOA,EAAa5oH,QAGrB,IAAID,EAAS0oH,EAAyBE,GAAY,CAGjD3oH,QAAS,CAAC,GAOX,OAHA6oH,EAAoBF,GAAU5oH,EAAQA,EAAOC,QAAS0oH,GAG/C3oH,EAAOC,OACf,CCrBA0oH,EAAoBvhD,EAAI,SAASpnE,GAChC,IAAI+oH,EAAS/oH,GAAUA,EAAO+mH,WAC7B,WAAa,OAAO/mH,EAAgB,OAAG,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADA2oH,EAAoBnjE,EAAEujE,EAAQ,CAAEtkE,EAAGskE,IAC5BA,CACR,ECNAJ,EAAoBnjE,EAAI,SAASvlD,EAAS+a,GACzC,IAAI,IAAI9b,KAAO8b,EACX2tG,EAAoB71B,EAAE93E,EAAY9b,KAASypH,EAAoB71B,EAAE7yF,EAASf,IAC5Ed,OAAOK,eAAewB,EAASf,EAAK,CAAEQ,YAAY,EAAM+pD,IAAKzuC,EAAW9b,IAG3E,ECPAypH,EAAoBhjE,EAAI,WACvB,GAA0B,kBAAf2nC,WAAyB,OAAOA,WAC3C,IACC,OAAO/xE,MAAQ,IAAImI,SAAS,cAAb,EAGhB,CAFE,MAAO+hC,GACR,GAAsB,kBAAXP,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxByjE,EAAoB71B,EAAI,SAAS7zF,EAAKkG,GAAQ,OAAO/G,OAAOC,UAAUC,eAAeS,KAAKE,EAAKkG,EAAO,ECCtGwjH,EAAoB/3C,EAAI,SAAS3wE,GACX,qBAAX+mD,QAA0BA,OAAOgiE,aAC1C5qH,OAAOK,eAAewB,EAAS+mD,OAAOgiE,YAAa,CAAEppH,MAAO,WAE7DxB,OAAOK,eAAewB,EAAS,aAAc,CAAEL,OAAO,GACvD,6nBCNe,SAASqpH,EAAgBhqH,EAAKC,EAAKU,GAWhD,OAVIV,KAAOD,EACTb,OAAOK,eAAeQ,EAAKC,EAAK,CAC9BU,MAAOA,EACPF,YAAY,EACZC,cAAc,EACdG,UAAU,IAGZb,EAAIC,GAAOU,EAENX,CACT,CCXA,SAASiqH,EAAQ9vG,EAAQ+vG,GACvB,IAAIjmF,EAAO9kC,OAAO8kC,KAAK9pB,GACvB,GAAIhb,OAAOgrH,sBAAuB,CAChC,IAAIC,EAAUjrH,OAAOgrH,sBAAsBhwG,GAC3C+vG,IAAmBE,EAAUA,EAAQntB,QAAO,SAAUotB,GACpD,OAAOlrH,OAAOO,yBAAyBya,EAAQkwG,GAAK5pH,UACtD,KAAKwjC,EAAKzhC,KAAKka,MAAMunB,EAAMmmF,EAC7B,CACA,OAAOnmF,CACT,CACe,SAASqmF,EAAehqH,GACrC,IAAK,IAAIiB,EAAI,EAAGA,EAAID,UAAUE,OAAQD,IAAK,CACzC,IAAI0d,EAAS,MAAQ3d,UAAUC,GAAKD,UAAUC,GAAK,CAAC,EACpDA,EAAI,EAAI0oH,EAAQ9qH,OAAO8f,IAAS,GAAIklB,SAAQ,SAAUlkC,GACpD,EAAeK,EAAQL,EAAKgf,EAAOhf,GACrC,IAAKd,OAAOorH,0BAA4BprH,OAAOqxG,iBAAiBlwG,EAAQnB,OAAOorH,0BAA0BtrG,IAAWgrG,EAAQ9qH,OAAO8f,IAASklB,SAAQ,SAAUlkC,GAC5Jd,OAAOK,eAAec,EAAQL,EAAKd,OAAOO,yBAAyBuf,EAAQhf,GAC7E,GACF,CACA,OAAOK,CACT,CCpBe,SAASkqH,EAAyBvrG,EAAQwrG,GACvD,GAAc,MAAVxrG,EAAgB,MAAO,CAAC,EAC5B,IACIhf,EAAKsB,EADLjB,ECHS,SAAuC2e,EAAQwrG,GAC5D,GAAc,MAAVxrG,EAAgB,MAAO,CAAC,EAC5B,IAEIhf,EAAKsB,EAFLjB,EAAS,CAAC,EACVoqH,EAAavrH,OAAO8kC,KAAKhlB,GAE7B,IAAK1d,EAAI,EAAGA,EAAImpH,EAAWlpH,OAAQD,IACjCtB,EAAMyqH,EAAWnpH,GACbkpH,EAAS9kH,QAAQ1F,IAAQ,IAC7BK,EAAOL,GAAOgf,EAAOhf,IAEvB,OAAOK,CACT,CDRe,CAA6B2e,EAAQwrG,GAElD,GAAItrH,OAAOgrH,sBAAuB,CAChC,IAAIQ,EAAmBxrH,OAAOgrH,sBAAsBlrG,GACpD,IAAK1d,EAAI,EAAGA,EAAIopH,EAAiBnpH,OAAQD,IACvCtB,EAAM0qH,EAAiBppH,GACnBkpH,EAAS9kH,QAAQ1F,IAAQ,GACxBd,OAAOC,UAAUwrH,qBAAqB9qH,KAAKmf,EAAQhf,KACxDK,EAAOL,GAAOgf,EAAOhf,GAEzB,CACA,OAAOK,CACT,CEfe,SAASuqH,EAAkBjrH,EAAKgoH,IAClC,MAAPA,GAAeA,EAAMhoH,EAAI4B,UAAQomH,EAAMhoH,EAAI4B,QAC/C,IAAK,IAAID,EAAI,EAAGupH,EAAO,IAAIjrH,MAAM+nH,GAAMrmH,EAAIqmH,EAAKrmH,IAC9CupH,EAAKvpH,GAAK3B,EAAI2B,GAEhB,OAAOupH,CACT,CCNe,SAASC,EAAiBC,GACvC,GAAsB,qBAAXjjE,QAAmD,MAAzBijE,EAAKjjE,OAAOe,WAA2C,MAAtBkiE,EAAK,cAAuB,OAAOnrH,MAAM+lH,KAAKoF,EACtH,CCDe,SAASC,EAA4Bp3B,EAAGq3B,GACrD,GAAKr3B,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,EAAiBA,EAAGq3B,GACtD,IAAI/iD,EAAIhpE,OAAOC,UAAUG,SAASO,KAAK+zF,GAAGzxF,MAAM,GAAI,GAEpD,MADU,WAAN+lE,GAAkB0rB,EAAEzzF,cAAa+nE,EAAI0rB,EAAEzzF,YAAYI,MAC7C,QAAN2nE,GAAqB,QAANA,EAAoBtoE,MAAM+lH,KAAK/xB,GACxC,cAAN1rB,GAAqB,2CAA2C9hE,KAAK8hE,GAAW,EAAiB0rB,EAAGq3B,QAAxG,CALc,CAMhB,CCJe,SAASC,EAAmBvrH,GACzC,OCJa,SAA4BA,GACzC,GAAIC,MAAMF,QAAQC,GAAM,OAAO,EAAiBA,EAClD,CDES,CAAkBA,IAAQ,EAAgBA,IAAQ,EAA2BA,IELvE,WACb,MAAM,IAAI2e,UAAU,uIACtB,CFG8F,EAC9F,CGNe,SAAS6sG,EAAgBxrH,GACtC,GAAIC,MAAMF,QAAQC,GAAM,OAAOA,CACjC,CCFe,SAASyrH,IACtB,MAAM,IAAI9sG,UAAU,4IACtB,CCEe,SAAS+sG,EAAe1rH,EAAK2B,GAC1C,OAAO,EAAe3B,ICLT,SAA+BA,EAAK2B,GACjD,IAAIgqH,EAAY,MAAP3rH,EAAc,KAAyB,qBAAXmoD,QAA0BnoD,EAAImoD,OAAOe,WAAalpD,EAAI,cAC3F,GAAU,MAAN2rH,EAAJ,CACA,IAGIC,EAAIC,EAHJC,EAAO,GACPC,GAAK,EACLC,GAAK,EAET,IACE,IAAKL,EAAKA,EAAGzrH,KAAKF,KAAQ+rH,GAAMH,EAAKD,EAAGvoG,QAAQwxD,QAC9Ck3C,EAAKlpH,KAAKgpH,EAAG7qH,QACTY,GAAKmqH,EAAKlqH,SAAWD,GAF4BoqH,GAAK,GAa9D,CATE,MAAOtsG,GACPusG,GAAK,EACLH,EAAKpsG,CACP,CAAE,QACA,IACOssG,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,QAG9C,CAFE,QACA,GAAIK,EAAI,MAAMH,CAChB,CACF,CACA,OAAOC,CApBe,CAqBxB,CDlBgC,CAAqB9rH,EAAK2B,IAAM,EAA2B3B,EAAK2B,IAAM,GACtG,CELA,IA8tEA,EA9tEa,CACX,WAAc,CACd,CACE,MAAS,iBACR,CACD,MAAS,kBACR,CACD,MAAS,cACR,CACD,MAAS,QACR,CACD,MAAS,YACR,CACD,MAAS,kBACR,CACD,MAAS,0BACR,CACD,MAAS,uBACR,CACD,MAAS,oBACR,CACD,MAAS,uBACR,CACD,MAAS,iBACR,CACD,MAAS,oBACR,CACD,MAAS,oBACR,CACD,MAAS,cACR,CACD,MAAS,eACR,CACD,MAAS,kBAEX,MAAS,CACT,CACE,SAAY,gBACZ,MAAS,4BACT,QAAU,6tBAcZ,CACE,SAAY,gBAEZ,MAAS,uBACT,QAAU,yfAWZ,CACE,SAAY,gBAEZ,MAAS,2BACT,QAAU,siBAYZ,CACE,SAAY,gBAEZ,MAAS,+BACT,QAAU,2nBAYZ,CACE,SAAY,gBAEZ,MAAS,sBACT,QAAU,mjBAWZ,CACE,SAAY,gBAEZ,MAAS,qBACT,QAAU,2rBAcZ,CACE,SAAY,gBAEZ,MAAS,qCACT,QAAU,8uBAaZ,CACE,SAAY,iBAEZ,MAAS,uBACT,QAAU,snCAkBZ,CACE,SAAY,iBAEZ,MAAS,gBACT,QAAU,6/BAkBZ,CACE,SAAY,iBAEZ,MAAS,+BACT,QAAU,y2CA6BZ,CACE,SAAY,iBAEZ,MAAS,0BACT,QAAU,85BAyBZ,CACE,SAAY,iBAEZ,MAAS,sCACT,QAAU,qlCAuBZ,CACE,SAAY,aAEZ,MAAS,eACT,QAAU,6oBAiBZ,CACE,SAAY,aAEZ,MAAS,cACT,QAAU,2nBAgBZ,CACE,SAAY,aAEZ,MAAS,iBACT,QAAU,q7BAsBZ,CACE,SAAY,aAEZ,MAAS,cACT,QAAU,izBAiBZ,CACE,SAAY,aAEZ,MAAS,eACT,QAAU,myBAiBZ,CACE,SAAY,aAEZ,MAAS,UACT,QAAU,wqBAgBZ,CACE,SAAY,aAEZ,MAAS,eACT,QAAU,o0BAoBZ,CACC,SAAY,OAEZ,MAAS,WACR,QAAU,owCAsCZ,CACE,SAAY,OAEZ,MAAS,WACT,QAAU,6nCA0BZ,CACE,SAAY,WAEZ,MAAS,cACT,QAAU,i5IAyGZ,CACE,SAAY,WAEZ,MAAS,iBACT,QAAU,qnEA8DZ,CACE,SAAY,WAEZ,MAAS,eACT,QAAU,6lCA6BZ,CACE,SAAY,iBAEZ,MAAS,kBACT,QAAU,6jEA8DZ,CACE,SAAY,iBAEZ,MAAS,aACT,QAAU,wtBAkBZ,CACE,SAAY,iBAEZ,MAAS,mBACT,QAAU,i3BAmBZ,CACE,SAAY,yBAEZ,MAAS,kBACT,QAAU,qzBAkBZ,CACE,SAAY,yBAEZ,MAAS,uBACT,QAAU,wrBAgBZ,CACE,SAAY,yBAEZ,MAAS,iBACT,QAAU,soBAiBZ,CACE,SAAY,yBAEZ,MAAS,cACT,QAAU,k3BAuBZ,CACE,SAAY,sBAEZ,MAAS,aACT,QAAU,0hCAsBZ,CACE,SAAY,sBAEZ,MAAS,aAET,QAAU,0rBAkBZ,CACE,SAAY,sBAEZ,MAAS,aAET,QAAU,kpBAkBZ,CACE,SAAY,sBAEZ,MAAS,qBAET,QAAU,ysBAuBZ,CACE,SAAY,sBAEZ,MAAS,aAET,QAAU,gpBAgBZ,CACE,SAAY,mBAEZ,MAAS,aACT,QAAU,0kBAcZ,CACE,SAAY,mBAEZ,MAAS,aACT,QAAU,isBAeZ,CACE,SAAY,mBAEZ,MAAS,aACT,QAAU,mxBAqBZ,CACE,SAAY,mBAEZ,MAAS,WACT,QAAU,0qCAyBZ,CACE,SAAY,sBAEZ,MAAS,0BACT,QAAU,g3CAgCZ,CACE,SAAY,sBAEZ,MAAS,eACT,QAAU,6sBAiBZ,CACE,SAAY,sBAEZ,MAAS,gCACT,QAAU,m3BAmBZ,CACE,SAAY,sBAEZ,MAAS,uBACT,QAAU,6mBAiBZ,CACE,SAAY,sBAEZ,MAAS,gBAET,QAAU,u1BAwBZ,CACE,SAAY,sBAEZ,MAAS,uBACT,QAAU,ijCAwBZ,CACE,SAAY,sBAEZ,MAAS,kBACT,QAAU,sxBAiBZ,CACE,SAAY,sBAEZ,MAAS,YACT,QAAU,wzBAgBZ,CACE,SAAY,sBAEZ,MAAS,WACT,QAAU,2qBAcZ,CACE,SAAY,sBAEZ,MAAS,eACT,QAAU,o6CAiCZ,CACE,SAAY,sBAEZ,MAAS,uBACT,QAAU,i1BAeZ,CACE,SAAY,gBAEZ,MAAS,wBACT,QAAU,suBAgBZ,CACE,SAAY,gBAEZ,MAAS,wBACT,QAAU,6uBAeZ,CACE,SAAY,gBAEZ,MAAS,4BACT,QAAU,iwBAiBZ,CACE,SAAY,gBAGZ,MAAS,kBACT,QAAU,8qBAeZ,CACE,SAAY,gBAEZ,MAAS,qBACT,QAAU,81BAsBZ,CACE,SAAY,gBAEZ,MAAS,gBACT,QAAU,o/BAmBZ,CACE,SAAY,gBAEZ,MAAS,iBACT,QAAU,usCA0BZ,CACE,SAAY,gBAGZ,MAAS,aACT,QAAU,4mBAeZ,CACE,SAAY,gBAGZ,MAAS,eACT,QAAU,isBAeZ,CACE,SAAY,gBAGZ,MAAS,aACT,QAAU,4mBAeZ,CACE,SAAY,gBAGZ,MAAS,cACT,QAAU,goBAeZ,CACE,SAAY,gBAGZ,MAAS,aACT,QAAU,olBAeZ,CACE,SAAY,gBAGZ,MAAS,YACT,QAAU,ynBAeZ,CACE,SAAY,gBAGZ,MAAS,eACT,QAAU,gpBAeZ,CACE,SAAY,mBAEZ,MAAS,cACT,QAAU,02BAuBZ,CACE,SAAY,mBAEZ,MAAS,qBACT,QAAU,krBAgBZ,CACE,SAAY,mBAEZ,MAAS,mBACT,QAAU,+0BAiBZ,CACE,SAAY,mBAEZ,MAAS,aACT,QAAU,wuBAqBZ,CACE,SAAY,mBAEZ,MAAS,oBACT,QAAU,m5BAkBZ,CACE,SAAY,mBAEZ,MAAS,cACT,QAAU,wxBAiBZ,CACE,SAAY,mBAEZ,MAAS,cACT,QAAU,srBAgBZ,CACE,SAAY,mBAGZ,MAAS,aACT,QAAU,svBAiBZ,CACE,SAAY,aAEZ,MAAS,yBACT,QAAU,6+BAgBZ,CACE,SAAY,aAEZ,MAAS,eACT,QAAU,q3BAmBZ,CACE,SAAY,aAEZ,MAAS,YACT,QAAU,w1BAkBZ,CACE,SAAY,cAEZ,MAAS,eACT,QAAU,i+BA0BZ,CACE,SAAY,cAEZ,MAAS,iBACT,QAAU,mxBAcZ,CACE,SAAY,cAEZ,MAAS,aACT,QAAU,8mBAkBZ,CACE,SAAY,cAEZ,MAAS,+BACT,QAAU,kwCA+BZ,CACE,SAAY,cAEZ,MAAS,gBACT,QAAU,6tBAiBZ,CACE,SAAY,cAEZ,MAAS,yBACT,QAAU,s0BAkBZ,CACE,SAAY,gBAEZ,MAAS,kBACT,QAAU,k3CAuBZ,CACE,SAAY,gBAEZ,MAAS,YACT,QAAU,40BAuBZ,CACE,SAAY,gBAEZ,MAAS,yBAET,QAAU,i6BAsBZ,CACE,SAAY,gBAEZ,MAAS,cACT,QAAU,gtBAiBZ,CACE,SAAY,gBAEZ,MAAS,kBACT,QAAU,61BAuBd,CACI,SAAY,gBAEZ,MAAS,oBACT,QAAU,8yBAqBd,CACE,SAAY,gBAEZ,MAAS,eACT,QAAU,goBC3sEG,SAASsqH,EAAgBtkD,EAAUwgD,GAChD,KAAMxgD,aAAoBwgD,GACxB,MAAM,IAAIxpG,UAAU,oCAExB,CCJA,SAASypG,EAAkB1nH,EAAQyB,GACjC,IAAK,IAAIR,EAAI,EAAGA,EAAIQ,EAAMP,OAAQD,IAAK,CACrC,IAAI0mH,EAAalmH,EAAMR,GACvB0mH,EAAWxnH,WAAawnH,EAAWxnH,aAAc,EACjDwnH,EAAWvnH,cAAe,EACtB,UAAWunH,IAAYA,EAAWpnH,UAAW,GACjD1B,OAAOK,eAAec,EAAQ2nH,EAAWhoH,IAAKgoH,EAChD,CACF,CACe,SAAS6D,EAAa/D,EAAaG,EAAYC,GAM5D,OALID,GAAYF,EAAkBD,EAAY3oH,UAAW8oH,GACrDC,GAAaH,EAAkBD,EAAaI,GAChDhpH,OAAOK,eAAeuoH,EAAa,YAAa,CAC9ClnH,UAAU,IAELknH,CACT,eChBe,SAASyB,EAAgB31B,EAAGxqD,GAKzC,OAJAmgF,EAAkBrqH,OAAO6pH,eAAiB7pH,OAAO6pH,eAAe/gD,OAAS,SAAyB4rB,EAAGxqD,GAEnG,OADAwqD,EAAEo1B,UAAY5/E,EACPwqD,CACT,EACO21B,EAAgB31B,EAAGxqD,EAC5B,CCLe,SAAS0iF,EAAU7C,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI5qG,UAAU,sDAEtB2qG,EAAS9pH,UAAYD,OAAOoI,OAAO4hH,GAAcA,EAAW/pH,UAAW,CACrEgB,YAAa,CACXO,MAAOuoH,EACProH,UAAU,EACVH,cAAc,KAGlBvB,OAAOK,eAAe0pH,EAAU,YAAa,CAC3CroH,UAAU,IAERsoH,GAAY,EAAeD,EAAUC,EAC3C,CChBe,SAASJ,EAAgBl1B,GAItC,OAHAk1B,EAAkB5pH,OAAO6pH,eAAiB7pH,OAAOipH,eAAengD,OAAS,SAAyB4rB,GAChG,OAAOA,EAAEo1B,WAAa9pH,OAAOipH,eAAev0B,EAC9C,EACOk1B,EAAgBl1B,EACzB,CCLe,SAASm4B,IACtB,GAAuB,qBAAZ1iE,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAU6/D,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EACxC,IAEE,OADA5f,QAAQrqG,UAAUstD,QAAQ5sD,KAAKwpD,QAAQC,UAAUkgD,QAAS,IAAI,WAAa,MACpE,CAGT,CAFE,MAAOjjD,GACP,OAAO,CACT,CACF,CCVe,SAAS8iE,EAAQtpH,GAG9B,OAAOspH,EAAU,mBAAqBvhE,QAAU,iBAAmBA,OAAOe,SAAW,SAAU9oD,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqB+nD,QAAU/nD,EAAII,cAAgB2nD,QAAU/nD,IAAQ+nD,OAAO3oD,UAAY,gBAAkBY,CAC1H,EAAGspH,EAAQtpH,EACb,CCRe,SAASisH,EAAuB39B,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIu5B,eAAe,6DAE3B,OAAOv5B,CACT,CCHe,SAAS49B,EAA2B59B,EAAMxuF,GACvD,GAAIA,IAA2B,WAAlBwpH,EAAQxpH,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIye,UAAU,4DAEtB,OAAO,EAAsB+vE,EAC/B,CCNe,SAAS69B,EAAa5D,GACnC,IAAIC,EAA4B,IAChC,OAAO,WACL,IACEjlH,EADEklH,EAAQ,EAAeF,GAE3B,GAAIC,EAA2B,CAC7B,IAAIE,EAAY,EAAepsG,MAAMlc,YACrCmD,EAAS+lD,QAAQC,UAAUk/D,EAAOnnH,UAAWonH,EAC/C,MACEnlH,EAASklH,EAAM/rG,MAAMJ,KAAMhb,WAE7B,OAAO,EAA0Bgb,KAAM/Y,EACzC,CACF,CCde,SAAS6oH,EAAWC,EAAQ5zB,EAAM6zB,GAa/C,OAXEF,EADE,IACW9iE,QAAQC,UAAU0e,OAElB,SAAoBokD,EAAQ5zB,EAAM6zB,GAC7C,IAAI9mE,EAAI,CAAC,MACTA,EAAEhjD,KAAKka,MAAM8oC,EAAGizC,GAChB,IACIlxB,EAAW,IADG9iD,SAASwjD,KAAKvrD,MAAM2vG,EAAQ7mE,IAG9C,OADI8mE,GAAO,EAAe/kD,EAAU+kD,EAAMltH,WACnCmoE,CACT,EAEK6kD,EAAW1vG,MAAM,KAAMpb,UAChC,CCZe,SAASirH,EAAiBD,GACvC,IAAIE,EAAwB,oBAARp1D,IAAqB,IAAIA,SAAQjzD,EAuBrD,OAtBAooH,EAAmB,SAA0BD,GAC3C,GAAc,OAAVA,ICPkCG,EDOEH,GCNsB,IAAzD7nG,SAASllB,SAASO,KAAK2sH,GAAI9mH,QAAQ,kBDMQ,OAAO2mH,ECP5C,IAA2BG,EDQtC,GAAqB,oBAAVH,EACT,MAAM,IAAI/tG,UAAU,sDAEtB,GAAsB,qBAAXiuG,EAAwB,CACjC,GAAIA,EAAO7kD,IAAI2kD,GAAQ,OAAOE,EAAOhiE,IAAI8hE,GACzCE,EAAOnjE,IAAIijE,EAAOI,EACpB,CACA,SAASA,IACP,OAAO,EAAUJ,EAAOhrH,UAAW,EAAegb,MAAMlc,YAC1D,CASA,OARAssH,EAAQttH,UAAYD,OAAOoI,OAAO+kH,EAAMltH,UAAW,CACjDgB,YAAa,CACXO,MAAO+rH,EACPjsH,YAAY,EACZI,UAAU,EACVH,cAAc,KAGX,EAAegsH,EAASJ,EACjC,EACOC,EAAiBD,EAC1B,CEfO,SAASK,EAAkBhsH,GAEhC,OAAKA,GAA0B,kBAAVA,EAKjB,aAAcA,GAAS,SAAUA,EAC5Bke,EAASle,EAAMke,UAIpB,UAAWle,GAAS,QAASA,EACxBke,EAASle,GAId,SAAUA,GAAS,WAAYA,EAC1BisH,EAAMjsH,GAIR,GAnBE,EAoBX,CAMA,SAASisH,EAAMA,GACb,OAAOvqH,EAAMuqH,GAASA,EAAM9tG,MAAQ,IAAMzc,EAAMuqH,GAASA,EAAMnuG,OACjE,CAMA,SAASI,EAASiB,GAChB,OAAO8sG,EAAM9sG,GAAOA,EAAI9d,OAAS,IAAM4qH,EAAM9sG,GAAOA,EAAIla,IAC1D,CAMA,SAASvD,EAAM1B,GACb,OAAOA,GAA0B,kBAAVA,EAAqBA,EAAQ,CACtD,CCpDO,IAAMksH,EAAY,8BASvB,WAAYvtG,EAAQwtG,EAAOC,GAAQ,gBAEjC,IAAMC,EAAQ,CAAC,KAAM,MAEjBnuG,EAAW,CAEb7c,MAAO,CAAC8c,KAAM,KAAML,OAAQ,MAE5B7Y,IAAK,CAACkZ,KAAM,KAAML,OAAQ,OAU5B,GAPA,eAEqB,kBAAVquG,IACTC,EAASD,EACTA,OAAQ3oH,GAGY,kBAAX4oH,EAAqB,CAC9B,IAAM1qH,EAAQ0qH,EAAOpnH,QAAQ,MAEd,IAAXtD,EACF2qH,EAAM,GAAKD,GAEXC,EAAM,GAAKD,EAAO3qH,MAAM,EAAGC,GAC3B2qH,EAAM,GAAKD,EAAO3qH,MAAMC,EAAQ,GAEpC,CA8FA,OA5FIyqH,IAEE,SAAUA,GAAS,aAAcA,EAC/BA,EAAMjuG,WACRA,EAAWiuG,EAAMjuG,UAIZ,UAAWiuG,GAAS,QAASA,EACpCjuG,EAAWiuG,GAGJ,SAAUA,GAAS,WAAYA,KACtCjuG,EAAS7c,MAAQ8qH,IAKrB,EAAKtsH,KAAOmsH,EAAkBG,IAAU,MACxC,EAAKjyC,QAA4B,kBAAXv7D,EAAsBA,EAAOu7D,QAAUv7D,EAC7D,EAAK2f,MAA0B,kBAAX3f,EAAsBA,EAAO2f,MAAQ,GAMzD,EAAK3f,OAAS,EAAKu7D,QAMnB,EAAKoyC,MAKL,EAAKnuG,KAAOD,EAAS7c,MAAM8c,KAK3B,EAAKL,OAASI,EAAS7c,MAAMyc,OAK7B,EAAKQ,OAAS+tG,EAAM,GAKpB,EAAKE,OAASF,EAAM,GAMpB,EAAKnuG,SAAWA,EAYhB,EAAKsuG,OAML,EAAKC,SAKL,EAAK/tB,KAKL,EAAKt9B,IAKL,EAAKsrD,KACL,CACF,CAAC,YAnIsB,CAmItB,EAnI+BvoH,QAsIlC+nH,EAAaztH,UAAUigG,KAAO,GAC9BwtB,EAAaztH,UAAUoB,KAAO,GAC9BqsH,EAAaztH,UAAUkgB,OAAS,GAChCutG,EAAaztH,UAAUy7E,QAAU,GACjCgyC,EAAaztH,UAAU6/B,MAAQ,GAC/B4tF,EAAaztH,UAAU6tH,MAAQ,KAC/BJ,EAAaztH,UAAUqf,OAAS,KAChCouG,EAAaztH,UAAU0f,KAAO,KAC9B+tG,EAAaztH,UAAU6f,OAAS,KAChC4tG,EAAaztH,UAAU8tH,OAAS,KAChCL,EAAaztH,UAAUyf,SAAW,KCtG3B,IAAMygF,EAAO,CAACguB,SASrB,SAAkBhuB,EAAMiuB,GACtB,QAAYppH,IAARopH,GAAoC,kBAARA,EAC9B,MAAM,IAAIhvG,UAAU,mCAGtBivG,EAAWluB,GACX,IAIImuB,EAJAzrH,EAAQ,EACR4D,GAAO,EACPvD,EAAQi9F,EAAK99F,OAIjB,QAAY2C,IAARopH,GAAoC,IAAfA,EAAI/rH,QAAgB+rH,EAAI/rH,OAAS89F,EAAK99F,OAAQ,CACrE,KAAOa,KACL,GAA+B,KAA3Bi9F,EAAKj/E,WAAWhe,IAGlB,GAAIorH,EAAc,CAChBzrH,EAAQK,EAAQ,EAChB,KACF,OACSuD,EAAM,IAGf6nH,GAAe,EACf7nH,EAAMvD,EAAQ,GAIlB,OAAOuD,EAAM,EAAI,GAAK05F,EAAKl9F,MAAMJ,EAAO4D,EAC1C,CAEA,GAAI2nH,IAAQjuB,EACV,MAAO,GAGT,IAAIouB,GAAoB,EACpBC,EAAWJ,EAAI/rH,OAAS,EAE5B,KAAOa,KACL,GAA+B,KAA3Bi9F,EAAKj/E,WAAWhe,IAGlB,GAAIorH,EAAc,CAChBzrH,EAAQK,EAAQ,EAChB,KACF,OAEIqrH,EAAmB,IAGrBD,GAAe,EACfC,EAAmBrrH,EAAQ,GAGzBsrH,GAAY,IAEVruB,EAAKj/E,WAAWhe,KAAWkrH,EAAIltG,WAAWstG,KACxCA,EAAW,IAGb/nH,EAAMvD,IAKRsrH,GAAY,EACZ/nH,EAAM8nH,IAMV1rH,IAAU4D,EACZA,EAAM8nH,EACG9nH,EAAM,IACfA,EAAM05F,EAAK99F,QAGb,OAAO89F,EAAKl9F,MAAMJ,EAAO4D,EAC3B,EAzF+BgoH,QA+F/B,SAAiBtuB,GAGf,GAFAkuB,EAAWluB,GAES,IAAhBA,EAAK99F,OACP,MAAO,IAGT,IAGIqsH,EAHAjoH,GAAO,EACPvD,EAAQi9F,EAAK99F,OAKjB,OAASa,GACP,GAA+B,KAA3Bi9F,EAAKj/E,WAAWhe,IAClB,GAAIwrH,EAAgB,CAClBjoH,EAAMvD,EACN,KACF,OACUwrH,IAEVA,GAAiB,GAIrB,OAAOjoH,EAAM,EACc,KAAvB05F,EAAKj/E,WAAW,GACd,IACA,IACM,IAARza,GAAoC,KAAvB05F,EAAKj/E,WAAW,GAC7B,KACAi/E,EAAKl9F,MAAM,EAAGwD,EACpB,EA/HwCkoH,QAqIxC,SAAiBxuB,GACfkuB,EAAWluB,GAEX,IASIuuB,EATAxrH,EAAQi9F,EAAK99F,OAEboE,GAAO,EACPmoH,EAAY,EACZC,GAAY,EAGZC,EAAc,EAIlB,KAAO5rH,KAAS,CACd,IAAMyW,EAAOwmF,EAAKj/E,WAAWhe,GAE7B,GAAa,KAATyW,EAWAlT,EAAM,IAGRioH,GAAiB,EACjBjoH,EAAMvD,EAAQ,GAGH,KAATyW,EAEEk1G,EAAW,EACbA,EAAW3rH,EACc,IAAhB4rH,IACTA,EAAc,GAEPD,GAAY,IAGrBC,GAAe,QAzBf,GAAIJ,EAAgB,CAClBE,EAAY1rH,EAAQ,EACpB,KACF,CAwBJ,CAEA,GACE2rH,EAAW,GACXpoH,EAAM,GAEU,IAAhBqoH,GAEiB,IAAhBA,GAAqBD,IAAapoH,EAAM,GAAKooH,IAAaD,EAAY,EAEvE,MAAO,GAGT,OAAOzuB,EAAKl9F,MAAM4rH,EAAUpoH,EAC9B,EAlMiDrB,KAwMjD,WAGY,IAFV,IAEI2pH,EAFA7rH,GAAS,EAEH,mBAHK8rH,EAAQ,yBAARA,EAAQ,gBAKvB,OAAS9rH,EAAQ8rH,EAAS3sH,QACxBgsH,EAAWW,EAAS9rH,IAEhB8rH,EAAS9rH,KACX6rH,OACa/pH,IAAX+pH,EAAuBC,EAAS9rH,GAAS6rH,EAAS,IAAMC,EAAS9rH,IAIvE,YAAkB8B,IAAX+pH,EAAuB,IAAMnrH,EAAUmrH,EAChD,EAvNuDE,IAAK,KAgO5D,SAASrrH,EAAUu8F,GACjBkuB,EAAWluB,GAEX,IAAM+uB,EAAkC,KAAvB/uB,EAAKj/E,WAAW,GAG7B1f,EAoBN,SAAyB2+F,EAAMgvB,GAC7B,IAMIx1G,EAEAy1G,EARAhrH,EAAS,GACTirH,EAAoB,EACpBC,GAAa,EACbC,EAAO,EACPrsH,GAAS,EAMb,OAASA,GAASi9F,EAAK99F,QAAQ,CAC7B,GAAIa,EAAQi9F,EAAK99F,OACfsX,EAAOwmF,EAAKj/E,WAAWhe,OAClB,IAAa,KAATyW,EACT,MAEAA,EAAO,EACT,CAEA,GAAa,KAATA,EAAuB,CACzB,GAAI21G,IAAcpsH,EAAQ,GAAc,IAATqsH,QAExB,GAAID,IAAcpsH,EAAQ,GAAc,IAATqsH,EAAY,CAChD,GACEnrH,EAAO/B,OAAS,GACM,IAAtBgtH,GACyC,KAAzCjrH,EAAO8c,WAAW9c,EAAO/B,OAAS,IACO,KAAzC+B,EAAO8c,WAAW9c,EAAO/B,OAAS,GAElC,GAAI+B,EAAO/B,OAAS,GAGlB,IAFA+sH,EAAiBhrH,EAAOqb,YAAY,QAEbrb,EAAO/B,OAAS,EAAG,CACpC+sH,EAAiB,GACnBhrH,EAAS,GACTirH,EAAoB,GAGpBA,GADAjrH,EAASA,EAAOnB,MAAM,EAAGmsH,IACE/sH,OAAS,EAAI+B,EAAOqb,YAAY,KAG7D6vG,EAAYpsH,EACZqsH,EAAO,EACP,QACF,OACK,GAAInrH,EAAO/B,OAAS,EAAG,CAC5B+B,EAAS,GACTirH,EAAoB,EACpBC,EAAYpsH,EACZqsH,EAAO,EACP,QACF,CAGEJ,IACF/qH,EAASA,EAAO/B,OAAS,EAAI+B,EAAS,MAAQ,KAC9CirH,EAAoB,EAExB,MACMjrH,EAAO/B,OAAS,EAClB+B,GAAU,IAAM+7F,EAAKl9F,MAAMqsH,EAAY,EAAGpsH,GAE1CkB,EAAS+7F,EAAKl9F,MAAMqsH,EAAY,EAAGpsH,GAGrCmsH,EAAoBnsH,EAAQosH,EAAY,EAG1CA,EAAYpsH,EACZqsH,EAAO,CACT,MAAoB,KAAT51G,GAAyB41G,GAAQ,EAC1CA,IAEAA,GAAQ,CAEZ,CAEA,OAAOnrH,CACT,CAnGcorH,CAAgBrvB,GAAO+uB,GAUnC,OARqB,IAAjB1tH,EAAMa,QAAiB6sH,IACzB1tH,EAAQ,KAGNA,EAAMa,OAAS,GAA0C,KAArC89F,EAAKj/E,WAAWi/E,EAAK99F,OAAS,KACpDb,GAAS,KAGJ0tH,EAAW,IAAM1tH,EAAQA,CAClC,CA6FA,SAAS6sH,EAAWluB,GAClB,GAAoB,kBAATA,EACT,MAAM,IAAI/gF,UACR,mCAAqCqpE,KAAKC,UAAUyX,GAG1D,CCpYO,IAAMsvB,EAAO,CAACC,IAErB,WACE,MAAO,GACT,GCgBO,SAASC,EAAMC,GACpB,OACoB,OAAlBA,GACyB,kBAAlBA,GAEPA,EAAc3gH,MAEd2gH,EAAchC,MAElB,CCvBO,SAASiC,EAAU1vB,GACxB,GAAoB,kBAATA,EACTA,EAAO,IAAI2vB,IAAI3vB,QACV,IAAKwvB,EAAMxvB,GAAO,CAEvB,IAAMngF,EAAQ,IAAIZ,UAChB,+EACE+gF,EACA,KAGJ,MADAngF,EAAMrG,KAAO,uBACPqG,CACR,CAEA,GAAsB,UAAlBmgF,EAAK4vB,SAAsB,CAE7B,IAAM/vG,EAAQ,IAAIZ,UAAU,kCAE5B,MADAY,EAAMrG,KAAO,yBACPqG,CACR,CAEA,OAMF,SAA6B4iD,GAC3B,GAAqB,KAAjBA,EAAIotD,SAAiB,CAEvB,IAAMhwG,EAAQ,IAAIZ,UAChB,wDAGF,MADAY,EAAMrG,KAAO,4BACPqG,CACR,CAEA,IAAMiwG,EAAWrtD,EAAIqtD,SACjB/sH,GAAS,EAEb,OAASA,EAAQ+sH,EAAS5tH,QACxB,GACiC,KAA/B4tH,EAAS/uG,WAAWhe,IACe,KAAnC+sH,EAAS/uG,WAAWhe,EAAQ,GAC5B,CACA,IAAMgtH,EAAQD,EAAS/uG,WAAWhe,EAAQ,GAC1C,GAAc,KAAVgtH,GAAoC,MAAVA,EAAyB,CAErD,IAAMlwG,EAAQ,IAAIZ,UAChB,uDAGF,MADAY,EAAMrG,KAAO,4BACPqG,CACR,CACF,CAGF,OAAOmwG,mBAAmBF,EAC5B,CArCSG,CAAoBjwB,EAC7B,CC0BA,IAAMrwC,EAAQ,CAAC,UAAW,OAAQ,WAAY,OAAQ,UAAW,WAEpDugE,EAAK,WAkBhB,WAAY7uH,GAEV,IAAIJ,EAFa,UAQfA,EAJGI,EAEuB,kBAAVA,GAAsB8uH,EAAO9uH,GAEnC,CAACA,MAAAA,GACFmuH,EAAMnuH,GACL,CAAC2+F,KAAM3+F,GAGPA,EARA,CAAC,EAiBb2b,KAAKtW,KAAO,CAAC,EAMbsW,KAAKiI,SAAW,GAOhBjI,KAAKozG,QAAU,GAMfpzG,KAAKuyG,IAAMD,EAAKC,MAOhBvyG,KAAK3b,MAUL2b,KAAKqzG,OASLrzG,KAAK/Y,OASL+Y,KAAKywE,IAML,IAFA,IAcI7mF,EAdA7D,GAAS,IAEJA,EAAQ4sD,EAAMztD,QAAQ,CAC7B,IAAM0E,EAAO+oD,EAAM5sD,GAIf6D,KAAQ3F,QAA6B4D,IAAlB5D,EAAQ2F,KAE7BoW,KAAKpW,GAAiB,YAATA,EAAqB,EAAI3F,EAAQ2F,IAAS3F,EAAQ2F,GAEnE,CAMA,IAAKA,KAAQ3F,EAEN0uD,EAAMvF,SAASxjD,KAAOoW,KAAKpW,GAAQ3F,EAAQ2F,GAEpD,CAuMC,OArMD,qBAIA,WACE,OAAOoW,KAAKozG,QAAQpzG,KAAKozG,QAAQluH,OAAS,EAC5C,EAEA,IAOA,SAAS89F,GACHwvB,EAAMxvB,KACRA,EAAO0vB,EAAU1vB,IAGnBswB,EAAetwB,EAAM,QAEjBhjF,KAAKgjF,OAASA,GAChBhjF,KAAKozG,QAAQltH,KAAK88F,EAEtB,GAEA,mBAGA,WACE,MAA4B,kBAAdhjF,KAAKgjF,KAAoBA,EAAKsuB,QAAQtxG,KAAKgjF,WAAQn7F,CACnE,EAEA,IAIA,SAAYypH,GACVJ,EAAWlxG,KAAKgxG,SAAU,WAC1BhxG,KAAKgjF,KAAOA,EAAK/6F,KAAKqpH,GAAW,GAAItxG,KAAKgxG,SAC5C,GAEA,oBAGA,WACE,MAA4B,kBAAdhxG,KAAKgjF,KAAoBA,EAAKguB,SAAShxG,KAAKgjF,WAAQn7F,CACpE,EAEA,IAMA,SAAampH,GACXsC,EAAetC,EAAU,YACzBuC,EAAWvC,EAAU,YACrBhxG,KAAKgjF,KAAOA,EAAK/6F,KAAK+X,KAAKsxG,SAAW,GAAIN,EAC5C,GAEA,mBAGA,WACE,MAA4B,kBAAdhxG,KAAKgjF,KAAoBA,EAAKwuB,QAAQxxG,KAAKgjF,WAAQn7F,CACnE,EAEA,IAMA,SAAY2pH,GAIV,GAHA+B,EAAW/B,EAAS,WACpBN,EAAWlxG,KAAKsxG,QAAS,WAErBE,EAAS,CACX,GAA8B,KAA1BA,EAAQztG,WAAW,GACrB,MAAM,IAAIvb,MAAM,iCAGlB,GAAIgpH,EAAQpkE,SAAS,IAAK,GACxB,MAAM,IAAI5kD,MAAM,yCAEpB,CAEAwX,KAAKgjF,KAAOA,EAAK/6F,KAAK+X,KAAKsxG,QAAStxG,KAAKwzG,MAAQhC,GAAW,IAC9D,GAEA,gBAGA,WACE,MAA4B,kBAAdxxG,KAAKgjF,KACfA,EAAKguB,SAAShxG,KAAKgjF,KAAMhjF,KAAKwxG,cAC9B3pH,CACN,EAEA,IAMA,SAAS2rH,GACPF,EAAeE,EAAM,QACrBD,EAAWC,EAAM,QACjBxzG,KAAKgjF,KAAOA,EAAK/6F,KAAK+X,KAAKsxG,SAAW,GAAIkC,GAAQxzG,KAAKwxG,SAAW,IACpE,GAEA,sBASA,SAASiC,GACP,OAAQzzG,KAAK3b,OAAS,IAAIpB,SAASwwH,EACrC,GAEA,qBAcA,SAAQzwG,EAAQwtG,EAAOC,GACrB,IAAMlyC,EAAU,IAAIgyC,EAAavtG,EAAQwtG,EAAOC,GAWhD,OATIzwG,KAAKgjF,OACPzkB,EAAQr6E,KAAO8b,KAAKgjF,KAAO,IAAMzkB,EAAQr6E,KACzCq6E,EAAQwkB,KAAO/iF,KAAKgjF,MAGtBzkB,EAAQoyC,OAAQ,EAEhB3wG,KAAKiI,SAAS/hB,KAAKq4E,GAEZA,CACT,GAEA,kBAaA,SAAKv7D,EAAQwtG,EAAOC,GAClB,IAAMlyC,EAAUv+D,KAAKu+D,QAAQv7D,EAAQwtG,EAAOC,GAI5C,OAFAlyC,EAAQoyC,MAAQ,KAETpyC,CACT,GAEA,kBAeA,SAAKv7D,EAAQwtG,EAAOC,GAClB,IAAMlyC,EAAUv+D,KAAKu+D,QAAQv7D,EAAQwtG,EAAOC,GAI5C,MAFAlyC,EAAQoyC,OAAQ,EAEVpyC,CACR,KAAC,EA9Te,GAwUlB,SAASg1C,EAAWG,EAAMxvH,GACxB,GAAIwvH,GAAQA,EAAKtmE,SAAS41C,EAAK8uB,KAC7B,MAAM,IAAItpH,MACR,IAAMtE,EAAO,uCAAyC8+F,EAAK8uB,IAAM,IAGvE,CASA,SAASwB,EAAeI,EAAMxvH,GAC5B,IAAKwvH,EACH,MAAM,IAAIlrH,MAAM,IAAMtE,EAAO,oBAEjC,CASA,SAASgtH,EAAWluB,EAAM9+F,GACxB,IAAK8+F,EACH,MAAM,IAAIx6F,MAAM,YAActE,EAAO,kCAEzC,CC/Ze,SAASyvH,EAASrwH,GAC/B,OAAO,EAAeA,IAAQ,EAAgBA,IAAQ,EAA2BA,IAAQ,GAC3F,CCCO,SAASswH,EAAK/wG,GACnB,GAAIA,EACF,MAAMA,CAEV,eCXe,SAASpf,EAAcY,GACrC,GAAqB,kBAAVA,GAAgC,OAAVA,EAChC,OAAO,EAGR,IAAMvB,EAAYD,OAAOipH,eAAeznH,GACxC,OAAsB,OAAdvB,GAAsBA,IAAcD,OAAOC,WAAkD,OAArCD,OAAOipH,eAAehpH,OAA0B2oD,OAAOgiE,eAAeppH,MAAYonD,OAAOe,YAAYnoD,EACtK,CCqFO,SAASmX,EAAKq4G,EAAY/+C,GAE/B,IAAIg/C,EAEJ,OAQA,WAAgC,2BAAZC,EAAU,yBAAVA,EAAU,gBAC5B,IAEI9sH,EAFE+sH,EAAoBH,EAAW3uH,OAAS6uH,EAAW7uH,OAIrD8uH,GACFD,EAAW7tH,KAAKgyE,GAGlB,IACEjxE,EAAS4sH,EAAWzzG,MAAMJ,KAAM+zG,EAalC,CAZE,MAAOlxG,GACP,IAAMqvF,EAAkCrvF,EAMxC,GAAImxG,GAAqBF,EACvB,MAAM5hB,EAGR,OAAOh6B,EAAKg6B,EACd,CAEK8hB,IACC/sH,aAAkB4mE,QACpB5mE,EAAOgnE,KAAKA,EAAMiK,GACTjxE,aAAkBuB,MAC3B0vE,EAAKjxE,GAELgnE,EAAKhnE,GAGX,EAMA,SAASixE,EAAKr1D,GACZ,IAAKixG,EAAQ,CACXA,GAAS,EAAI,2BAFOvtG,EAAM,iCAANA,EAAM,kBAG1BuuD,EAAQ,cAACjyD,GAAK,OAAK0D,GACrB,CACF,CAOA,SAAS0nD,EAAK5pE,GACZ6zE,EAAK,KAAM7zE,EACb,CACF,CCnIO,IAAM4vH,EAQb,SAASlgE,IACP,IAMImgE,EANEC,EDpBD,WAEL,IAAMC,EAAM,GAENC,EAAW,CAACzgC,IAKlB,WAAwB,2BAAR5sF,EAAM,yBAANA,EAAM,gBACpB,IAAIstH,GAAmB,EAEjBx/C,EAAW9tE,EAAO67B,MAExB,GAAwB,oBAAbiyC,EACT,MAAM,IAAI7yD,UAAU,2CAA6C6yD,GAWnE,SAASpuD,EAAK7D,GACZ,IAAMstG,EAAKiE,IAAME,GACbvuH,GAAS,EAEb,GAAI8c,EACFiyD,EAASjyD,OADX,CAKA,2BATsB0D,EAAM,iCAANA,EAAM,kBAU5B,OAASxgB,EAAQiB,EAAO9B,QACA,OAAlBqhB,EAAOxgB,SAAqC8B,IAAlB0e,EAAOxgB,KACnCwgB,EAAOxgB,GAASiB,EAAOjB,IAK3BiB,EAASuf,EAGL4pG,EACF30G,EAAK20G,EAAIzpG,GAAK,aAAIH,GAElBuuD,EAAQ,cAAC,MAAI,OAAKvuD,GAhBpB,CAkBF,CAjCAG,EAAI,cAAC,MAAI,SAAK1f,IAkChB,EAhDuButH,IAmDvB,SAAaC,GACX,GAA0B,oBAAfA,EACT,MAAM,IAAIvyG,UACR,+CAAiDuyG,GAKrD,OADAJ,EAAIluH,KAAKsuH,GACFH,CACT,GA1DA,OAAOA,CA2DT,CC7CuBI,GAEfC,EAAY,GAEdljG,EAAY,CAAC,EAGbmjG,GAAe,EA2BnB,OAvBAC,EAAUlrH,KA6CV,SAAc/F,EAAKU,GACjB,GAAmB,kBAARV,EAET,OAAyB,IAArBqB,UAAUE,QACZ2vH,GAAe,OAAQX,GACvB1iG,EAAU7tB,GAAOU,EACVuwH,GAIDttH,EAAI9D,KAAKguB,EAAW7tB,IAAQ6tB,EAAU7tB,IAAS,KAIzD,GAAIA,EAGF,OAFAkxH,GAAe,OAAQX,GACvB1iG,EAAY7tB,EACLixH,EAIT,OAAOpjG,CACT,EAlEAojG,EAAUtkF,YAASzoC,EACnB+sH,EAAUE,cAAWjtH,EAGrB+sH,EAAUG,OAiEV,WACE,GAAIb,EACF,OAAOU,EAGT,OAASD,EAAcD,EAAUxvH,QAAQ,CACvC,QAA+BwvH,EAAUC,IAAlCK,EAAQ,KAAK/wH,EAAO,WAE3B,IAAmB,IAAfA,EAAQ,GAAZ,EAImB,IAAfA,EAAQ,KACVA,EAAQ,QAAK4D,GAIf,IAAMotH,EAAcD,EAASxxH,KAAI,MAAbwxH,EAAQ,CAAMJ,GAAS,SAAK3wH,KAErB,oBAAhBgxH,GACTd,EAAaI,IAAIU,EAVnB,CAYF,CAKA,OAHAf,GAAS,EACTS,EAAc9rH,OAAOqsH,kBAEdN,CACT,EA1FAA,EAAUF,UAAYA,EAEtBE,EAAUL,IA+FV,SAAalwH,GAAmB,2BAATJ,EAAO,iCAAPA,EAAO,kBAE5B,IAAI6hB,EAIJ,GAFA+uG,GAAe,MAAOX,GAER,OAAV7vH,QAA4BwD,IAAVxD,QAEf,GAAqB,oBAAVA,EAChB8wH,EAAS,cAAC9wH,GAAK,OAAKJ,QACf,IAAqB,kBAAVI,EAOhB,MAAM,IAAI4d,UAAU,+BAAiC5d,EAAQ,KANzDd,MAAMF,QAAQgB,GAChB+wH,EAAQ/wH,GAERgxH,EAAUhxH,EAId,CAEIyhB,IACF0L,EAAU1L,SAAWjjB,OAAO6gC,OAAOlS,EAAU1L,UAAY,CAAC,EAAGA,IAG/D,OAAO8uG,EAMP,SAASnrE,EAAIplD,GACX,GAAqB,oBAAVA,EACT8wH,EAAU9wH,OACL,IAAqB,kBAAVA,EAQhB,MAAM,IAAI4d,UAAU,+BAAiC5d,EAAQ,KAP7D,GAAId,MAAMF,QAAQgB,GAAQ,CACxB,QAA6BA,GAAtBixH,EAAM,KAAKrxH,EAAO,WACzBkxH,EAAS,cAACG,GAAM,SAAKrxH,IACvB,MACEoxH,EAAUhxH,EAId,CACF,CAMA,SAASgxH,EAAUpuH,GACjBmuH,EAAQnuH,EAAOusG,SAEXvsG,EAAO6e,WACTA,EAAWjjB,OAAO6gC,OAAO5d,GAAY,CAAC,EAAG7e,EAAO6e,UAEpD,CAMA,SAASsvG,EAAQ5hB,GACf,IAAIztG,GAAS,EAEb,GAAgB,OAAZytG,QAAgC3rG,IAAZ2rG,OAEjB,KAAIjwG,MAAMF,QAAQmwG,GAMvB,MAAM,IAAIvxF,UAAU,oCAAsCuxF,EAAU,KALpE,OAASztG,EAAQytG,EAAQtuG,QAAQ,CAE/BukD,EADc+pD,EAAQztG,GAExB,CAGF,CACF,CAOA,SAASovH,EAAUG,EAAQjxH,GAKzB,IAJA,IAEI6kC,EAFAnjC,GAAS,IAIJA,EAAQ2uH,EAAUxvH,QACzB,GAAIwvH,EAAU3uH,GAAO,KAAOuvH,EAAQ,CAClCpsF,EAAQwrF,EAAU3uH,GAClB,KACF,CAGEmjC,GACEqsF,EAAWrsF,EAAM,KAAOqsF,EAAWlxH,KACrCA,EAAQM,GAAO,EAAMukC,EAAM,GAAI7kC,IAGjC6kC,EAAM,GAAK7kC,GAGXqwH,EAAUxuH,KAAK,MAAD,qBAAKlB,WAEvB,CACF,EApMA4vH,EAAU1sG,MAuMV,SAAek6E,GACbwyB,EAAUG,SACV,IAAMhyB,EAAOyyB,GAAMpzB,GACb9xD,EAASskF,EAAUtkF,OAGzB,GAFAmlF,GAAa,QAASnlF,GAElBolF,GAAQplF,EAAQ,SAElB,OAAO,IAAIA,EAAO7nC,OAAOs6F,GAAOA,GAAM76E,QAIxC,OAAOooB,EAAO7nC,OAAOs6F,GAAOA,EAC9B,EAnNA6xB,EAAUrpC,UAsNV,SAAmBlkF,EAAM+6F,GACvBwyB,EAAUG,SACV,IAAMhyB,EAAOyyB,GAAMpzB,GACb0yB,EAAWF,EAAUE,SAI3B,GAHAa,GAAe,YAAab,GAC5Bc,GAAWvuH,GAEPquH,GAAQZ,EAAU,WAEpB,OAAO,IAAIA,EAASztH,EAAM07F,GAAM8yB,UAIlC,OAAOf,EAASztH,EAAM07F,EACxB,EAlOA6xB,EAAUhhC,IA0OV,SAAavsF,EAAM+6F,EAAKttB,GACtB8gD,GAAWvuH,GACXutH,EAAUG,SAELjgD,GAA2B,oBAARstB,IACtBttB,EAAWstB,EACXA,OAAMv6F,GAGR,IAAKitE,EACH,OAAO,IAAIjH,QAAQioD,GAUrB,SAASA,EAAS9nD,EAAS+nD,GAUzB,SAAS79C,EAAKr1D,EAAOmzG,EAAMjzB,GACzBizB,EAAOA,GAAQ3uH,EACXwb,EACFkzG,EAAOlzG,GACEmrD,EACTA,EAAQgoD,GAGRlhD,EAAS,KAAMkhD,EAAMjzB,EAEzB,CAlBAoxB,EAAavgC,IAAIvsF,EAAMmuH,GAAMpzB,GAAMlqB,EAmBrC,CA5BA49C,EAAS,KAAMhhD,EA6BjB,EAnRA8/C,EAAUqB,QAsRV,SAAiB5uH,EAAM07F,GAErB,IAAI97F,EAEAivH,EAOJ,OALAtB,EAAUhhC,IAAIvsF,EAAM07F,EAAM7qB,GAE1Bi+C,GAAW,UAAW,MAAOD,GAGtBjvH,EAOP,SAASixE,EAAKr1D,EAAOmzG,GACnBpC,EAAK/wG,GACL5b,EAAS+uH,EACTE,GAAW,CACb,CACF,EA3SAtB,EAAUwB,QAkTV,SAAiBh0B,EAAKttB,GAKpB,GAJA8/C,EAAUG,SACVU,GAAa,UAAWb,EAAUtkF,QAClCqlF,GAAe,UAAWf,EAAUE,WAE/BhgD,EACH,OAAO,IAAIjH,QAAQioD,GAUrB,SAASA,EAAS9nD,EAAS+nD,GACzB,IAAMhzB,EAAOyyB,GAAMpzB,GA0BnB,SAASlqB,EAAKr1D,EAAOkgF,GACflgF,IAAUkgF,EACZgzB,EAAOlzG,GACEmrD,EACTA,EAAQ+0B,GAGRjuB,EAAS,KAAMiuB,EAEnB,CAjCA6xB,EAAUhhC,IAAIghC,EAAU1sG,MAAM66E,GAAOA,GAAM,SAAClgF,EAAOmzG,EAAMjzB,GACvD,IAAIlgF,GAAUmzG,GAASjzB,EAEhB,CAEL,IAAM97F,EAAS2tH,EAAUrpC,UAAUyqC,EAAMjzB,QAE1Bl7F,IAAXZ,GAAmC,OAAXA,IAsMZ,kBADI5C,EAnMY4C,IAoMJid,EAAS7f,GAnMnC0+F,EAAK1+F,MAAQ4C,EAEb87F,EAAK97F,OAASA,GAGhBixE,EAAKr1D,EAAOkgF,EACd,MAdE7qB,EAAKr1D,GA0Mf,IAA8Bxe,CA3LxB,GAiBF,CA5CAyxH,EAAS,KAAMhhD,EA6CjB,EAvWA8/C,EAAUyB,YA0WV,SAAqBj0B,GAEnB,IAAI8zB,EAEJtB,EAAUG,SACVU,GAAa,cAAeb,EAAUtkF,QACtCqlF,GAAe,cAAef,EAAUE,UAExC,IAAM/xB,EAAOyyB,GAAMpzB,GAMnB,OAJAwyB,EAAUwB,QAAQrzB,EAAM7qB,GAExBi+C,GAAW,cAAe,UAAWD,GAE9BnzB,EAMP,SAAS7qB,EAAKr1D,GACZqzG,GAAW,EACXtC,EAAK/wG,EACP,CACF,EA/XO+xG,EAIP,SAASA,IAIP,IAHA,IAAM0B,EAAcviE,IAChBhuD,GAAS,IAEJA,EAAQ2uH,EAAUxvH,QACzBoxH,EAAY/B,IAAG,MAAf+B,EAAW,EAAQ5B,EAAU3uH,KAK/B,OAFAuwH,EAAY5sH,KAAK/E,GAAO,EAAM,CAAC,EAAG6sB,IAE3B8kG,CACT,CAiXF,CA3auBviE,GAAOghE,SAExBztH,EAAM,CAAC,EAAEvE,eAkbf,SAAS2yH,GAAQrxH,EAAOH,GACtB,MACmB,oBAAVG,GAGPA,EAAMvB,YAeV,SAAcuB,GAEZ,IAAIV,EAEJ,IAAKA,KAAOU,EACV,GAAIiD,EAAI9D,KAAKa,EAAOV,GAClB,OAAO,EAIX,OAAO,CACT,CArBKgkC,CAAKtjC,EAAMvB,YAAcoB,KAAQG,EAAMvB,UAE5C,CA4BA,SAAS2yH,GAAavxH,EAAMG,GAC1B,GAAqB,oBAAVA,EACT,MAAM,IAAI4d,UAAU,WAAa/d,EAAO,qBAE5C,CASA,SAASyxH,GAAezxH,EAAMG,GAC5B,GAAqB,oBAAVA,EACT,MAAM,IAAI4d,UAAU,WAAa/d,EAAO,uBAE5C,CASA,SAAS2wH,GAAe3wH,EAAMgwH,GAC5B,GAAIA,EACF,MAAM,IAAI1rH,MACR,gBACEtE,EACA,mHAGR,CAQA,SAAS0xH,GAAWvuH,GAGlB,IAAKkuH,EAAWluH,IAA8B,kBAAdA,EAAKlB,KACnC,MAAM,IAAI8b,UAAU,uBAAyB5a,EAAO,IAGxD,CAUA,SAAS8uH,GAAWjyH,EAAMqyH,EAAWL,GACnC,IAAKA,EACH,MAAM,IAAI1tH,MACR,IAAMtE,EAAO,0BAA4BqyH,EAAY,YAG3D,CAMA,SAASf,GAAMnxH,GACb,OAOF,SAAyBA,GACvB,OAAO8oG,QACL9oG,GACmB,kBAAVA,GACP,YAAaA,GACb,aAAcA,EAEpB,CAdSmyH,CAAgBnyH,GAASA,EAAQ,IAAI6uH,EAAM7uH,EACpD,CCnjBO,SAASpB,GAASoE,EAAMpD,GAC7B,IAA4C,GAAbA,GAAW,CAAC,GAAtCwyH,gBACL,OAAOC,GAAIrvH,OADS,IAAG,GAAI,EAE7B,CAOA,SAASqvH,GAAIrvH,EAAMovH,GACjB,OACGpvH,GACiB,kBAATA,IAENA,EAAKhD,QAEHoyH,EAAkBpvH,EAAKkI,IAAM,KAE7B,aAAclI,GAAQmhH,GAAInhH,EAAKf,SAAUmwH,IACzClzH,MAAMF,QAAQgE,IAASmhH,GAAInhH,EAAMovH,KACtC,EAEJ,CAOA,SAASjO,GAAIxhH,EAAQyvH,GAKnB,IAHA,IAAIxvH,EAAS,GACTlB,GAAS,IAEJA,EAAQiB,EAAO9B,QACtB+B,EAAOlB,GAAS2wH,GAAI1vH,EAAOjB,GAAQ0wH,GAGrC,OAAOxvH,EAAOgB,KAAK,GACrB,CCtCO,SAAS4hC,GAAO52B,EAAMvN,EAAOw9B,EAAQD,GAC1C,IAII8wF,EAJEzqH,EAAM2J,EAAK/N,OACbyxH,EAAa,EAajB,GAPEjxH,EADEA,EAAQ,GACDA,EAAQ4D,EAAM,EAAIA,EAAM5D,EAEzBA,EAAQ4D,EAAMA,EAAM5D,EAG9Bw9B,EAASA,EAAS,EAAIA,EAAS,EAE3BD,EAAM/9B,OAAS,KACjB6uH,EAAaxwH,MAAM+lH,KAAKrmF,IACbz7B,QAAQ9B,EAAOw9B,GACzB,GAAG2G,OAAOzpB,MAAMnN,EAAM8gH,QAKvB,IAFI7wF,GAAQ,GAAG2G,OAAOzpB,MAAMnN,EAAM,CAACvN,EAAOw9B,IAEnCyzF,EAAa1zF,EAAM/9B,SACxB6uH,EAAa9wF,EAAMn9B,MAAM6wH,EAAYA,EAAa,MACvCnvH,QAAQ9B,EAAO,GACzB,GAAGmkC,OAAOzpB,MAAMnN,EAAM8gH,GACvB4C,GAAc,IACdjxH,GAAS,GAGf,CAcO,SAASQ,GAAK+M,EAAMgwB,GACzB,OAAIhwB,EAAK/N,OAAS,GAChB2kC,GAAO52B,EAAMA,EAAK/N,OAAQ,EAAG+9B,GACtBhwB,GAGFgwB,CACT,CC3DA,IAAMlgC,GAAiB,CAAC,EAAEA,eAQnB,SAAS6zH,GAAkBC,GAKhC,IAHA,IAAMrO,EAAM,CAAC,EACTziH,GAAS,IAEJA,EAAQ8wH,EAAW3xH,QAC1B4xH,GAAgBtO,EAAKqO,EAAW9wH,IAGlC,OAAOyiH,CACT,CASA,SAASsO,GAAgBtO,EAAKrD,GAE5B,IAAI4R,EAEJ,IAAKA,KAAQ5R,EAAW,CACtB,IACMp8C,GADQhmE,GAAeS,KAAKglH,EAAKuO,GAAQvO,EAAIuO,QAAQlvH,KACpC2gH,EAAIuO,GAAQ,CAAC,GAC9BC,EAAQ7R,EAAU4R,GAEpBv6G,OAAI,EAER,IAAKA,KAAQw6G,EAAO,CACbj0H,GAAeS,KAAKulE,EAAMvsD,KAAOusD,EAAKvsD,GAAQ,IACnD,IAAMnY,EAAQ2yH,EAAMx6G,GACpBy6G,GAEEluD,EAAKvsD,GACLjZ,MAAMF,QAAQgB,GAASA,EAAQA,EAAQ,CAACA,GAAS,GAErD,CACF,CACF,CAUA,SAAS4yH,GAAWC,EAAUjkH,GAK5B,IAJA,IAAIlN,GAAS,EAEPgnG,EAAS,KAENhnG,EAAQkN,EAAK/N,SAEE,UAApB+N,EAAKlN,GAAO0jD,IAAkBytE,EAAWnqB,GAAQ7mG,KAAK+M,EAAKlN,IAG/D8jC,GAAOqtF,EAAU,EAAG,EAAGnqB,EACzB,CCxEO,ICWMoqB,GAAaC,GAAW,YAQxBC,GAAaD,GAAW,MAexBE,GAAgBF,GAAW,cAS3BG,GAAoBH,GAAW,cAU/BI,GAAmBJ,GAAW,kBAkB9BK,GAAaL,GAAW,uBAW9B,SAASM,GAAal7G,GAC3B,OAGW,OAATA,IAAkBA,EAAO,IAAe,MAATA,EAEnC,CASO,SAASm7G,GAA0Bn7G,GACxC,OAAgB,OAATA,IAAkBA,EAAO,GAAc,KAATA,EACvC,CAeO,SAASo7G,GAAmBp7G,GACjC,OAAgB,OAATA,GAAiBA,GAAQ,CAClC,CAeO,SAASq7G,GAAcr7G,GAC5B,OAAiB,IAAVA,IAAyB,IAAVA,GAAwB,KAATA,CACvC,CAiBO,IAAMs7G,GAAoBV,GAAW,MAkB/BW,GAAqBX,GDvKhC,+vCC+KF,SAASA,GAAW7hC,GAClB,OAQA,SAAe/4E,GACb,OAAgB,OAATA,GAAiB+4E,EAAMxrF,KAAKtB,OAAOoc,aAAarI,GACzD,CACF,CCrLO,SAASw7G,GAAavjD,EAASyR,EAAI//E,EAAMmN,GAC9C,IAAM2kH,EAAQ3kH,EAAMA,EAAM,EAAIzK,OAAOqsH,kBACjCz6G,EAAO,EACX,OAGA,SAAe+B,GACb,GAAIq7G,GAAcr7G,GAEhB,OADAi4D,EAAQyjD,MAAM/xH,GACPgZ,EAAO3C,GAGhB,OAAO0pE,EAAG1pE,EACZ,EAGA,SAAS2C,EAAO3C,GACd,OAAIq7G,GAAcr7G,IAAS/B,IAASw9G,GAClCxjD,EAAQ0jD,QAAQ37G,GACT2C,IAGTs1D,EAAQ2jD,KAAKjyH,GACN+/E,EAAG1pE,GACZ,CACF,CC5BO,IAAM7U,GAAU,CACrBwkG,SAIF,SAA2B13B,GACzB,IAOIlvE,EAPE8yH,EAAe5jD,EAAQ6jD,QAC3Bt4G,KAAK0hB,OAAOu1F,WAAWsB,gBAUzB,SAAoC/7G,GAClC,GAAa,OAATA,EAEF,YADAi4D,EAAQ0jD,QAAQ37G,GAOlB,OAHAi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACNJ,GAAavjD,EAAS4jD,EAAc,aAC7C,IAGA,SAA0B77G,GAExB,OADAi4D,EAAQyjD,MAAM,aACPM,EAAUh8G,EACnB,IAnBA,OAAO67G,EAsBP,SAASG,EAAUh8G,GACjB,IAAMyM,EAAQwrD,EAAQyjD,MAAM,YAAa,CACvChwB,YAAa,OACb3iG,SAAAA,IAQF,OALIA,IACFA,EAASmhB,KAAOuC,GAGlB1jB,EAAW0jB,EACJvf,EAAK8S,EACd,CAGA,SAAS9S,EAAK8S,GACZ,OAAa,OAATA,GACFi4D,EAAQ2jD,KAAK,aACb3jD,EAAQ2jD,KAAK,kBACb3jD,EAAQ0jD,QAAQ37G,IAIdo7G,GAAmBp7G,IACrBi4D,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,aACNI,IAGT/jD,EAAQ0jD,QAAQ37G,GACT9S,EACT,CACF,GC1DO,IAAM0b,GAAW,CACtB+mF,SASF,SAA4B13B,GAC1B,IAOIgkD,EAGAC,EAGAC,EAbE3mC,EAAOhyE,KAGP2iB,EAAQ,GACVi2F,EAAY,EAUhB,OAAOlzH,EAGP,SAASA,EAAM8W,GAWb,GAAIo8G,EAAYj2F,EAAMz9B,OAAQ,CAC5B,IAAM2zH,EAAOl2F,EAAMi2F,GAEnB,OADA5mC,EAAK8mC,eAAiBD,EAAK,GACpBpkD,EAAQ6jD,QACbO,EAAK,GAAG30B,aACR60B,EACAC,EAHKvkD,CAILj4D,EACJ,CAEA,OAAOw8G,EAAmBx8G,EAC5B,CAGA,SAASu8G,EAAiBv8G,GAKxB,GAJAo8G,IAII5mC,EAAK8mC,eAAeG,WAAY,CAClCjnC,EAAK8mC,eAAeG,gBAAapxH,EAE7B4wH,GACFS,IAUF,IANA,IAII5I,EAJE6I,EAAmBnnC,EAAKonC,OAAOl0H,OACjCm0H,EAAkBF,EAKfE,KACL,GACsC,SAApCrnC,EAAKonC,OAAOC,GAAiB,IACY,cAAzCrnC,EAAKonC,OAAOC,GAAiB,GAAGlzH,KAChC,CACAmqH,EAAQt+B,EAAKonC,OAAOC,GAAiB,GAAG/vH,IACxC,KACF,CAGFgwH,EAAeV,GAIf,IAFA,IAAI7yH,EAAQozH,EAELpzH,EAAQisF,EAAKonC,OAAOl0H,QACzB8sF,EAAKonC,OAAOrzH,GAAO,GAAGuD,IAAMzG,OAAO6gC,OAAO,CAAC,EAAG4sF,GAC9CvqH,IAWF,OARA8jC,GACEmoD,EAAKonC,OACLC,EAAkB,EAClB,EACArnC,EAAKonC,OAAOtzH,MAAMqzH,IAGpBnnC,EAAKonC,OAAOl0H,OAASa,EACdizH,EAAmBx8G,EAC5B,CAEA,OAAO9W,EAAM8W,EACf,CAGA,SAASw8G,EAAmBx8G,GAM1B,GAAIo8G,IAAcj2F,EAAMz9B,OAAQ,CAI9B,IAAKuzH,EACH,OAAOc,EAAkB/8G,GAK3B,GAAIi8G,EAAUe,kBAAoBf,EAAUe,iBAAiBC,SAC3D,OAAOC,EAAUl9G,GAKnBw1E,EAAK2nC,UAAYxsB,QACfsrB,EAAUe,mBAAqBf,EAAUmB,8BAE7C,CAGA,OADA5nC,EAAK8mC,eAAiB,CAAC,EAChBrkD,EAAQ30D,MACb+5G,GACAC,EACAC,EAHKtlD,CAILj4D,EACJ,CAGA,SAASs9G,EAAqBt9G,GAG5B,OAFIi8G,GAAWS,IACfI,EAAeV,GACRW,EAAkB/8G,EAC3B,CAGA,SAASu9G,EAAsBv9G,GAG7B,OAFAw1E,EAAKtwD,OAAOgwD,KAAKM,EAAK3qE,MAAM7E,MAAQo2G,IAAcj2F,EAAMz9B,OACxDyzH,EAAkB3mC,EAAK3qE,MAAMW,OACtB0xG,EAAUl9G,EACnB,CAGA,SAAS+8G,EAAkB/8G,GAGzB,OADAw1E,EAAK8mC,eAAiB,CAAC,EAChBrkD,EAAQ6jD,QACbuB,GACAG,EACAN,EAHKjlD,CAILj4D,EACJ,CAGA,SAASw9G,EAAkBx9G,GAIzB,OAHAo8G,IACAj2F,EAAMz8B,KAAK,CAAC8rF,EAAKwnC,iBAAkBxnC,EAAK8mC,iBAEjCS,EAAkB/8G,EAC3B,CAGA,SAASk9G,EAAUl9G,GACjB,OAAa,OAATA,GACEi8G,GAAWS,IACfI,EAAe,QACf7kD,EAAQ0jD,QAAQ37G,KAIlBi8G,EAAYA,GAAazmC,EAAKtwD,OAAOkiE,KAAK5R,EAAK3qE,OAC/CotD,EAAQyjD,MAAM,YAAa,CACzBhwB,YAAa,OACb3iG,SAAUmzH,EACVuB,WAAYxB,IAEPyB,EAAa19G,GACtB,CAGA,SAAS09G,EAAa19G,GACpB,OAAa,OAATA,GACF29G,EAAa1lD,EAAQ2jD,KAAK,cAAc,GACxCkB,EAAe,QACf7kD,EAAQ0jD,QAAQ37G,IAIdo7G,GAAmBp7G,IACrBi4D,EAAQ0jD,QAAQ37G,GAChB29G,EAAa1lD,EAAQ2jD,KAAK,cAE1BQ,EAAY,EACZ5mC,EAAK2nC,eAAY9xH,EACVnC,IAGT+uE,EAAQ0jD,QAAQ37G,GACT09G,EACT,CAOA,SAASC,EAAalxG,EAAOmxG,GAC3B,IAAMC,EAASroC,EAAKsoC,YAAYrxG,GAwChC,GAvCImxG,GAAKC,EAAOn0H,KAAK,MACrB+iB,EAAM1jB,SAAWmzH,EACbA,IAAYA,EAAWhyG,KAAOuC,GAClCyvG,EAAazvG,EACbwvG,EAAU8B,WAAWtxG,EAAMvjB,OAC3B+yH,EAAUjoF,MAAM6pF,GAkCZroC,EAAKtwD,OAAOgwD,KAAKzoE,EAAMvjB,MAAM8c,MAAO,CAGtC,IAFA,IAAIzc,EAAQ0yH,EAAUW,OAAOl0H,OAEtBa,KACL,GAEE0yH,EAAUW,OAAOrzH,GAAO,GAAGL,MAAMsiB,OAAS2wG,KACxCF,EAAUW,OAAOrzH,GAAO,GAAGuD,KAC3BmvH,EAAUW,OAAOrzH,GAAO,GAAGuD,IAAI0e,OAAS2wG,GAI1C,OAcJ,IATA,IAII6B,EAGAlK,EAPE6I,EAAmBnnC,EAAKonC,OAAOl0H,OACjCm0H,EAAkBF,EAQfE,KACL,GACsC,SAApCrnC,EAAKonC,OAAOC,GAAiB,IACY,cAAzCrnC,EAAKonC,OAAOC,GAAiB,GAAGlzH,KAChC,CACA,GAAIq0H,EAAM,CACRlK,EAAQt+B,EAAKonC,OAAOC,GAAiB,GAAG/vH,IACxC,KACF,CAEAkxH,GAAO,CACT,CAOF,IAJAlB,EAAeV,GAEf7yH,EAAQozH,EAEDpzH,EAAQisF,EAAKonC,OAAOl0H,QACzB8sF,EAAKonC,OAAOrzH,GAAO,GAAGuD,IAAMzG,OAAO6gC,OAAO,CAAC,EAAG4sF,GAC9CvqH,IAGF8jC,GACEmoD,EAAKonC,OACLC,EAAkB,EAClB,EACArnC,EAAKonC,OAAOtzH,MAAMqzH,IAGpBnnC,EAAKonC,OAAOl0H,OAASa,CACvB,CACF,CAMA,SAASuzH,EAAe7+G,GAGtB,IAFA,IAAI1U,EAAQ48B,EAAMz9B,OAEXa,KAAU0U,GAAM,CACrB,IAAMyuB,EAAQvG,EAAM58B,GACpBisF,EAAK8mC,eAAiB5vF,EAAM,GAC5BA,EAAM,GAAGkvF,KAAK50H,KAAKwuF,EAAMvd,EAC3B,CAEA9xC,EAAMz9B,OAASuV,CACjB,CAEA,SAASy+G,IACPT,EAAUjoF,MAAM,CAAC,OACjBkoF,OAAa7wH,EACb4wH,OAAY5wH,EACZmqF,EAAK8mC,eAAeG,gBAAapxH,CACnC,CACF,GAjVMgyH,GAAqB,CACzB1tB,SAmVF,SAA2B13B,EAASyR,EAAIu0C,GACtC,OAAOzC,GACLvjD,EACAA,EAAQ6jD,QAAQt4G,KAAK0hB,OAAOu1F,WAAW7xG,SAAU8gE,EAAIu0C,GACrD,aACAz6G,KAAK0hB,OAAOu1F,WAAWyD,QAAQ3sB,KAAK3gD,SAAS,qBAAkBvlD,EAAY,EAE/E,GC3WO,IAAM8yH,GAAY,CACvBxuB,SAKF,SAA2B13B,EAASyR,EAAIu0C,GACtC,OAAOzC,GAAavjD,GAGpB,SAAyBj4D,GACvB,OAAgB,OAATA,GAAiBo7G,GAAmBp7G,GAAQ0pE,EAAG1pE,GAAQi+G,EAAIj+G,EACpE,GAL8C,aAMhD,EAXEo+G,SAAS,GCEJ,SAASC,GAAYzB,GA0B1B,IAxBA,IAIIt8G,EAGAg+G,EAGAC,EAGAC,EAGAjH,EAGAkH,EAGAtwB,EAtBEuwB,EAAQ,CAAC,EACXn1H,GAAS,IAuBJA,EAAQqzH,EAAOl0H,QAAQ,CAC9B,KAAOa,KAASm1H,GACdn1H,EAAQm1H,EAAMn1H,GAMhB,GAHA+W,EAAQs8G,EAAOrzH,GAIbA,GACkB,cAAlB+W,EAAM,GAAG3W,MACqB,mBAA9BizH,EAAOrzH,EAAQ,GAAG,GAAGI,QAGrB40H,EAAa,IADbE,EAAYn+G,EAAM,GAAGm9G,WAAWb,QAIPl0H,QACW,oBAAlC+1H,EAAUF,GAAY,GAAG50H,OAEzB40H,GAAc,GAIdA,EAAaE,EAAU/1H,QACW,YAAlC+1H,EAAUF,GAAY,GAAG50H,MAEzB,OAAS40H,EAAaE,EAAU/1H,QACQ,YAAlC+1H,EAAUF,GAAY,GAAG50H,MAIS,cAAlC80H,EAAUF,GAAY,GAAG50H,OAC3B80H,EAAUF,GAAY,GAAGI,6BAA8B,EACvDJ,KAMR,GAAiB,UAAbj+G,EAAM,GACJA,EAAM,GAAGorF,cACXrlG,OAAO6gC,OAAOw3F,EAAOE,GAAWhC,EAAQrzH,IACxCA,EAAQm1H,EAAMn1H,GACd4kG,GAAO,QAGN,GAAI7tF,EAAM,GAAGu+G,WAAY,CAI5B,IAHAN,EAAah1H,EACb+0H,OAAYjzH,EAELkzH,MAIoB,gBAHzBC,EAAa5B,EAAO2B,IAGP,GAAG50H,MACS,oBAAvB60H,EAAW,GAAG70H,OAEQ,UAAlB60H,EAAW,KACTF,IACF1B,EAAO0B,GAAW,GAAG30H,KAAO,mBAG9B60H,EAAW,GAAG70H,KAAO,aACrB20H,EAAYC,GAOdD,IAEFh+G,EAAM,GAAGxT,IAAMzG,OAAO6gC,OAAO,CAAC,EAAG01F,EAAO0B,GAAW,GAAGp1H,QAEtDquH,EAAaqF,EAAOtzH,MAAMg1H,EAAW/0H,IAC1ByB,QAAQsV,GACnB+sB,GAAOuvF,EAAQ0B,EAAW/0H,EAAQ+0H,EAAY,EAAG/G,GAErD,CACF,CAEA,OAAQppB,CACV,CASA,SAASywB,GAAWhC,EAAQkC,GA+B1B,IA9BA,IAiBIjB,EAGA90H,EApBE0jB,EAAQmwG,EAAOkC,GAAY,GAC3B5nD,EAAU0lD,EAAOkC,GAAY,GAC/BC,EAAgBD,EAAa,EAG3BE,EAAiB,GACjBv5F,EACJhZ,EAAMgxG,YAAcvmD,EAAQhyC,OAAOzY,EAAMi/E,aAAaj/E,EAAMvjB,OACxD+1H,EAAcx5F,EAAUm3F,OAGxB8B,EAAQ,GAGRQ,EAAO,CAAC,EAOV31H,GAAS,EAGT+8B,EAAU7Z,EACVliB,EAAS,EACTrB,EAAQ,EACNi2H,EAAS,CAACj2H,GAGTo9B,GAAS,CAEd,KAAOs2F,IAASmC,GAAe,KAAOz4F,IAItC04F,EAAet1H,KAAKq1H,GAEfz4F,EAAQm3F,aACXI,EAAS3mD,EAAQ4mD,YAAYx3F,GAExBA,EAAQpc,MACX2zG,EAAOn0H,KAAK,MAGVX,GACF08B,EAAUs4F,WAAWz3F,EAAQp9B,OAG3Bo9B,EAAQq4F,8BACVl5F,EAAU25F,oCAAqC,GAGjD35F,EAAUuO,MAAM6pF,GAEZv3F,EAAQq4F,8BACVl5F,EAAU25F,wCAAqC/zH,IAInDtC,EAAWu9B,EACXA,EAAUA,EAAQpc,IACpB,CAKA,IAFAoc,EAAU7Z,IAEDljB,EAAQ01H,EAAYv2H,QAGC,SAA1Bu2H,EAAY11H,GAAO,IACW,UAA9B01H,EAAY11H,EAAQ,GAAG,IACvB01H,EAAY11H,GAAO,GAAGI,OAASs1H,EAAY11H,EAAQ,GAAG,GAAGI,MACzDs1H,EAAY11H,GAAO,GAAGL,MAAM8c,OAASi5G,EAAY11H,GAAO,GAAGuD,IAAIkZ,OAE/D9c,EAAQK,EAAQ,EAChB41H,EAAOz1H,KAAKR,GAEZo9B,EAAQm3F,gBAAapyH,EACrBi7B,EAAQv9B,cAAWsC,EACnBi7B,EAAUA,EAAQpc,MAmBtB,IAfAub,EAAUm3F,OAAS,GAIft2F,GAEFA,EAAQm3F,gBAAapyH,EACrBi7B,EAAQv9B,cAAWsC,GAEnB8zH,EAAO94F,MAIT98B,EAAQ41H,EAAOz2H,OAERa,KAAS,CACd,IAAMD,EAAQ21H,EAAY31H,MAAM61H,EAAO51H,GAAQ41H,EAAO51H,EAAQ,IACxDL,EAAQ81H,EAAe34F,MAC7Bq4F,EAAM1zH,QAAQ,CAAC9B,EAAOA,EAAQI,EAAMZ,OAAS,IAC7C2kC,GAAOuvF,EAAQ1zH,EAAO,EAAGI,EAC3B,CAIA,IAFAC,GAAS,IAEAA,EAAQm1H,EAAMh2H,QACrBw2H,EAAK30H,EAASm0H,EAAMn1H,GAAO,IAAMgB,EAASm0H,EAAMn1H,GAAO,GACvDgB,GAAUm0H,EAAMn1H,GAAO,GAAKm1H,EAAMn1H,GAAO,GAAK,EAGhD,OAAO21H,CACT,CCvOO,IAAM/zH,GAAU,CACrBwkG,SAsBF,SAAyB13B,EAASyR,GAEhC,IAAI3gF,EACJ,OAGA,SAAeiX,GAKb,OAJAi4D,EAAQyjD,MAAM,WACd3yH,EAAWkvE,EAAQyjD,MAAM,eAAgB,CACvChwB,YAAa,YAERx+F,EAAK8S,EACd,EAGA,SAAS9S,EAAK8S,GACZ,OAAa,OAATA,EACKq/G,EAAWr/G,GAGhBo7G,GAAmBp7G,GACdi4D,EAAQ30D,MACbg8G,GACAC,EACAF,EAHKpnD,CAILj4D,IAGJi4D,EAAQ0jD,QAAQ37G,GACT9S,EACT,CAGA,SAASmyH,EAAWr/G,GAGlB,OAFAi4D,EAAQ2jD,KAAK,gBACb3jD,EAAQ2jD,KAAK,WACNlyC,EAAG1pE,EACZ,CAGA,SAASu/G,EAAgBv/G,GAQvB,OAPAi4D,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,gBACb7yH,EAASmhB,KAAO+tD,EAAQyjD,MAAM,eAAgB,CAC5ChwB,YAAa,UACb3iG,SAAAA,IAEFA,EAAWA,EAASmhB,KACbhd,CACT,CACF,EAvEEskE,QAeF,SAAwBorD,GAEtB,OADAyB,GAAYzB,GACLA,CACT,GAdM0C,GAAwB,CAC5B3vB,SAqEF,SAA8B13B,EAASyR,EAAIu0C,GACzC,IAAMzoC,EAAOhyE,KACb,OAGA,SAAwBxD,GAKtB,OAJAi4D,EAAQ2jD,KAAK,gBACb3jD,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACNJ,GAAavjD,EAASunD,EAAU,aACzC,EAGA,SAASA,EAASx/G,GAChB,GAAa,OAATA,GAAiBo7G,GAAmBp7G,GACtC,OAAOi+G,EAAIj+G,GAGb,IAAMmmE,EAAOqP,EAAKonC,OAAOpnC,EAAKonC,OAAOl0H,OAAS,GAE9C,OACG8sF,EAAKtwD,OAAOu1F,WAAWyD,QAAQ3sB,KAAK3gD,SAAS,iBAC9Cu1B,GACiB,eAAjBA,EAAK,GAAGx8E,MACRw8E,EAAK,GAAGs5C,eAAet5C,EAAK,IAAI,GAAMz9E,QAAU,EAEzCghF,EAAG1pE,GAGLi4D,EAAQklD,UAAU3nC,EAAKtwD,OAAOu1F,WAAWrzB,KAAM62B,EAAKv0C,EAApDzR,CAAwDj4D,EACjE,CACF,EApGEo+G,SAAS,GCbJ,IAAMh3B,GAAO,CAClBuI,SAIF,SAAwB13B,GACtB,IAAMud,EAAOhyE,KACPk8G,EAAUznD,EAAQ6jD,QAEtBqC,IAmBF,SAAuBn+G,GACrB,GAAa,OAATA,EAEF,YADAi4D,EAAQ0jD,QAAQ37G,GAQlB,OAJAi4D,EAAQyjD,MAAM,mBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,mBACbpmC,EAAKwnC,sBAAmB3xH,EACjBq0H,CACT,GA5BEznD,EAAQ6jD,QACNt4G,KAAK0hB,OAAOu1F,WAAWkF,YACvBC,EACApE,GACEvjD,EACAA,EAAQ6jD,QACNt4G,KAAK0hB,OAAOu1F,WAAWrzB,KACvBw4B,EACA3nD,EAAQ6jD,QAAQ3wH,GAASy0H,IAE3B,gBAIN,OAAOF,EAiBP,SAASE,EAAe5/G,GACtB,GAAa,OAATA,EASJ,OAJAi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACbpmC,EAAKwnC,sBAAmB3xH,EACjBq0H,EARLznD,EAAQ0jD,QAAQ37G,EASpB,CACF,GCxDO,IAAM6/G,GAAW,CACtBC,WAAYC,MAEDl4G,GAASm4G,GAAkB,UAC3Bj+G,GAAOi+G,GAAkB,QAMtC,SAASA,GAAkBvyB,GACzB,MAAO,CACLkC,SAOF,SAAwB13B,GACtB,IAAMud,EAAOhyE,KACPi3G,EAAaj3G,KAAK0hB,OAAOu1F,WAAWhtB,GACpC1rF,EAAOk2D,EAAQ6jD,QAAQrB,EAAYvxH,EAAO+2H,GAChD,OAAO/2H,EAGP,SAASA,EAAM8W,GACb,OAAOkgH,EAAQlgH,GAAQ+B,EAAK/B,GAAQigH,EAAQjgH,EAC9C,CAGA,SAASigH,EAAQjgH,GACf,GAAa,OAATA,EAOJ,OAFAi4D,EAAQyjD,MAAM,QACdzjD,EAAQ0jD,QAAQ37G,GACT9S,EANL+qE,EAAQ0jD,QAAQ37G,EAOpB,CAGA,SAAS9S,EAAK8S,GACZ,OAAIkgH,EAAQlgH,IACVi4D,EAAQ2jD,KAAK,QACN75G,EAAK/B,KAGdi4D,EAAQ0jD,QAAQ37G,GACT9S,EACT,CAMA,SAASgzH,EAAQlgH,GACf,GAAa,OAATA,EACF,OAAO,EAGT,IAAMvJ,EAAOgkH,EAAWz6G,GACpBzW,GAAS,EAEb,GAAIkN,EACF,OAASlN,EAAQkN,EAAK/N,QAAQ,CAC5B,IAAM2zH,EAAO5lH,EAAKlN,GAElB,IAAK8yH,EAAKtzH,UAAYszH,EAAKtzH,SAAS/B,KAAKwuF,EAAMA,EAAKzsF,UAClD,OAAO,CAEX,CAGF,OAAO,CACT,CACF,EAhEE+2H,WAAYC,GACA,SAAVtyB,EAAmB0yB,QAAyB90H,GAgElD,CAMA,SAAS00H,GAAeK,GACtB,OAGA,SAAwBxD,EAAQ1lD,GAC9B,IAGIwkD,EAHAnyH,GAAS,EAMb,OAASA,GAASqzH,EAAOl0H,aACT2C,IAAVqwH,EACEkB,EAAOrzH,IAAoC,SAA1BqzH,EAAOrzH,GAAO,GAAGI,OACpC+xH,EAAQnyH,EACRA,KAEQqzH,EAAOrzH,IAAoC,SAA1BqzH,EAAOrzH,GAAO,GAAGI,OAExCJ,IAAUmyH,EAAQ,IACpBkB,EAAOlB,GAAO,GAAG5uH,IAAM8vH,EAAOrzH,EAAQ,GAAG,GAAGuD,IAC5C8vH,EAAOvvF,OAAOquF,EAAQ,EAAGnyH,EAAQmyH,EAAQ,GACzCnyH,EAAQmyH,EAAQ,GAGlBA,OAAQrwH,GAIZ,OAAO+0H,EAAgBA,EAAcxD,EAAQ1lD,GAAW0lD,CAC1D,CACF,CAaA,SAASuD,GAAuBvD,EAAQ1lD,GAGtC,IAFA,IAAI4nD,EAAa,IAERA,GAAclC,EAAOl0H,QAC5B,IACGo2H,IAAelC,EAAOl0H,QACU,eAA/Bk0H,EAAOkC,GAAY,GAAGn1H,OACW,SAAnCizH,EAAOkC,EAAa,GAAG,GAAGn1H,KAC1B,CAUA,IATA,IAAMuD,EAAO0vH,EAAOkC,EAAa,GAAG,GAC9BuB,EAASnpD,EAAQ4mD,YAAY5wH,GAC/B3D,EAAQ82H,EAAO33H,OACf43H,GAAe,EACfriH,EAAO,EAGPsiH,OAAI,EAEDh3H,KAAS,CACd,IAAM28C,EAAQm6E,EAAO92H,GAErB,GAAqB,kBAAV28C,EAAoB,CAG7B,IAFAo6E,EAAcp6E,EAAMx9C,OAEyB,KAAtCw9C,EAAM3+B,WAAW+4G,EAAc,IACpCriH,IACAqiH,IAGF,GAAIA,EAAa,MACjBA,GAAe,CACjB,MACK,IAAe,IAAXp6E,EACPq6E,GAAO,EACPtiH,SACK,IAAe,IAAXioC,EAEJ,CAEL38C,IACA,KACF,CACF,CAEA,GAAI0U,EAAM,CACR,IAAMwO,EAAQ,CACZ9iB,KACEm1H,IAAelC,EAAOl0H,QAAU63H,GAAQtiH,EAAO,EAC3C,aACA,oBACN/U,MAAO,CACL8c,KAAM9Y,EAAKJ,IAAIkZ,KACfL,OAAQzY,EAAKJ,IAAI6Y,OAAS1H,EAC1BuN,OAAQte,EAAKJ,IAAI0e,OAASvN,EAC1BuiH,OAAQtzH,EAAKhE,MAAMs3H,OAASj3H,EAC5Bk3H,aAAcl3H,EACV+2H,EACApzH,EAAKhE,MAAMu3H,aAAeH,GAEhCxzH,IAAKzG,OAAO6gC,OAAO,CAAC,EAAGh6B,EAAKJ,MAE9BI,EAAKJ,IAAMzG,OAAO6gC,OAAO,CAAC,EAAGza,EAAMvjB,OAE/BgE,EAAKhE,MAAMsiB,SAAWte,EAAKJ,IAAI0e,OACjCnlB,OAAO6gC,OAAOh6B,EAAMuf,IAEpBmwG,EAAOvvF,OACLyxF,EACA,EACA,CAAC,QAASryG,EAAOyqD,GACjB,CAAC,OAAQzqD,EAAOyqD,IAElB4nD,GAAc,EAElB,CAEAA,GACF,CAGF,OAAOlC,CACT,CC3MO,SAASkD,GAAWrF,EAAYmC,EAAQ1lD,GAK7C,IAHA,IAAMogD,EAAS,GACX/tH,GAAS,IAEJA,EAAQkxH,EAAW/xH,QAAQ,CAClC,IAAM8oE,EAAUipD,EAAWlxH,GAAOu2H,WAE9BtuD,IAAY8lD,EAAO1mE,SAAS4gB,KAC9BorD,EAASprD,EAAQorD,EAAQ1lD,GACzBogD,EAAO5tH,KAAK8nE,GAEhB,CAEA,OAAOorD,CACT,CCcO,SAAS8D,GAAgBx7F,EAAQy7F,EAAY7T,GAElD,IAAIgH,EAAQztH,OAAO6gC,OACjB4lF,EACIzmH,OAAO6gC,OAAO,CAAC,EAAG4lF,GAClB,CACE9mG,KAAM,EACNL,OAAQ,EACR6F,OAAQ,GAEd,CACEg1G,OAAQ,EACRC,cAAe,IAKbG,EAAc,CAAC,EAGfC,EAAuB,GAGzBR,EAAS,GAGTl6F,EAAQ,GAUN8xC,EAAU,CACd0jD,QA2IF,SAAiB37G,GACXo7G,GAAmBp7G,IACrB8zG,EAAM9tG,OACN8tG,EAAMnuG,OAAS,EACfmuG,EAAMtoG,SAAoB,IAAVxL,EAAc,EAAI,EAClC8gH,MACmB,IAAV9gH,IACT8zG,EAAMnuG,SACNmuG,EAAMtoG,UAGJsoG,EAAM2M,aAAe,EACvB3M,EAAM0M,UAEN1M,EAAM2M,eAIF3M,EAAM2M,eAAiBJ,EAAOvM,EAAM0M,QAAQ93H,SAC9CorH,EAAM2M,cAAgB,EACtB3M,EAAM0M,WAIVtpD,EAAQnuE,SAAWiX,GAER,CACb,EArKE07G,MAwKF,SAAe/xH,EAAMswG,GAGnB,IAAMxtF,EAAQwtF,GAAU,CAAC,EAKzB,OAJAxtF,EAAM9iB,KAAOA,EACb8iB,EAAMvjB,MAAQ2hB,IACdqsD,EAAQ0lD,OAAOlzH,KAAK,CAAC,QAAS+iB,EAAOyqD,IACrC/wC,EAAMz8B,KAAK+iB,GACJA,CACT,EAhLEmvG,KAmLF,SAAcjyH,GACZ,IAAM8iB,EAAQ0Z,EAAME,MAGpB,OAFA5Z,EAAM3f,IAAM+d,IACZqsD,EAAQ0lD,OAAOlzH,KAAK,CAAC,OAAQ+iB,EAAOyqD,IAC7BzqD,CACT,EAvLEqvG,QAASiF,GA8LX,SAA+BtwE,EAAWrlD,GACxC41H,EAAUvwE,EAAWrlD,EAAK0hH,KAC5B,IA/LExpG,MAAOy9G,EAAiBE,GACxB9D,UAAW4D,EAAiBE,EAAmB,CAC7C9D,WAAW,KASTjmD,EAAU,CACdnuE,SAAU,KACViX,KAAM,KACNs8G,eAAgB,CAAC,EACjBM,OAAQ,GACR13F,OAAAA,EACA44F,YAAAA,EACA2B,eA6CF,SAAwBhzG,EAAOy0G,GAC7B,OAsYJ,SAAyBb,EAAQa,GAC/B,IAMIC,EANA53H,GAAS,EAGPkB,EAAS,GAKf,OAASlB,EAAQ82H,EAAO33H,QAAQ,CAC9B,IAAMw9C,EAAQm6E,EAAO92H,GAGjB1B,OAAK,EAET,GAAqB,kBAAVq+C,EACTr+C,EAAQq+C,OAER,OAAQA,GACN,KAAM,EACJr+C,EAAQ,KACR,MAGF,KAAM,EACJA,EAAQ,KACR,MAGF,KAAM,EACJA,EAAQ,OACR,MAGF,KAAM,EACJA,EAAQq5H,EAAa,IAAM,KAC3B,MAGF,KAAM,EACJ,IAAKA,GAAcC,EAAO,SAC1Bt5H,EAAQ,IACR,MAGF,QAEEA,EAAQoE,OAAOoc,aAAa69B,GAIlCi7E,GAAmB,IAAXj7E,EACRz7C,EAAOf,KAAK7B,EACd,CAEA,OAAO4C,EAAOgB,KAAK,GACrB,CA9bW21H,CAAgBtD,EAAYrxG,GAAQy0G,EAC7C,EA9CEr2G,IAAAA,EACAkzG,WA0DF,SAAoBl2H,GAClB+4H,EAAY/4H,EAAMme,MAAQne,EAAM8d,OAChCm7G,GACF,EA5DE9sF,MAwBF,SAAe1qC,GAIb,GAHA+2H,EAAS32H,GAAK22H,EAAQ/2H,GACtB+3H,IAEkC,OAA9BhB,EAAOA,EAAO33H,OAAS,GACzB,MAAO,GAMT,OAHAs4H,EAAUL,EAAY,GAEtBzpD,EAAQ0lD,OAASkD,GAAWe,EAAsB3pD,EAAQ0lD,OAAQ1lD,GAC3DA,EAAQ0lD,MACjB,GA5BIrxF,EAAQo1F,EAAWhxB,SAAS3oG,KAAKkwE,EAASe,GAa9C,OAJI0oD,EAAWb,YACbe,EAAqBn3H,KAAKi3H,GAGrBzpD,EA0BP,SAAS4mD,EAAYrxG,GACnB,OA6VJ,SAAqB4zG,EAAQ5zG,GAC3B,IAMIk2C,EANE2+D,EAAa70G,EAAMvjB,MAAMs3H,OACzBe,EAAmB90G,EAAMvjB,MAAMu3H,aAC/Be,EAAW/0G,EAAM3f,IAAI0zH,OACrBiB,EAAiBh1G,EAAM3f,IAAI2zH,aAK7Ba,IAAeE,EAEjB7+D,EAAO,CAAC09D,EAAOiB,GAAYh4H,MAAMi4H,EAAkBE,KAEnD9+D,EAAO09D,EAAO/2H,MAAMg4H,EAAYE,GAE5BD,GAAoB,IAEtB5+D,EAAK,GAAKA,EAAK,GAAGr5D,MAAMi4H,IAGtBE,EAAiB,GAEnB9+D,EAAKj5D,KAAK22H,EAAOmB,GAAUl4H,MAAM,EAAGm4H,KAIxC,OAAO9+D,CACT,CAxXW++D,CAAYrB,EAAQ5zG,EAC7B,CAGA,SAAS5B,IACP,OAAOxkB,OAAO6gC,OAAO,CAAC,EAAG4sF,EAC3B,CAqBA,SAASuN,IAIP,IAFA,IAAIM,EAEG7N,EAAM0M,OAASH,EAAO33H,QAAQ,CACnC,IAAMw9C,EAAQm6E,EAAOvM,EAAM0M,QAE3B,GAAqB,kBAAVt6E,EAOT,IANAy7E,EAAa7N,EAAM0M,OAEf1M,EAAM2M,aAAe,IACvB3M,EAAM2M,aAAe,GAIrB3M,EAAM0M,SAAWmB,GACjB7N,EAAM2M,aAAev6E,EAAMx9C,QAE3BmgG,EAAG3iD,EAAM3+B,WAAWusG,EAAM2M,oBAG5B53B,EAAG3iD,EAEP,CACF,CAQA,SAAS2iD,EAAG7oF,QACC3U,EACI2U,EACfurB,EAAQA,EAAMvrB,EAChB,CAkEA,SAASihH,EAAkBryH,EAAGxD,GAC5BA,EAAKsqF,SACP,CAQA,SAASqrC,EAAiBa,EAAU3nB,GAClC,OAWA,SAAcwgB,EAAYj1E,EAAaq8E,GAErC,IAAIC,EAGAC,EAGA/E,EAGA5xH,EACJ,OAAOrE,MAAMF,QAAQ4zH,GAEjBuH,EAAuBvH,GACvB,aAAcA,EACduH,EAAuB,CAACvH,IAS5B,SAA+BxmC,GAC7B,OAAO/qF,EAGP,SAASA,EAAM8W,GACb,IAAM+3F,EAAe,OAAT/3F,GAAiBi0E,EAAIj0E,GAC3BgsG,EAAe,OAAThsG,GAAiBi0E,EAAIsd,KAQjC,OAAOywB,EAPM,GAAH,SAIJj7H,MAAMF,QAAQkxG,GAAOA,EAAMA,EAAM,CAACA,GAAO,IAAE,EAC3ChxG,MAAMF,QAAQmlH,GAAOA,EAAMA,EAAM,CAACA,GAAO,KAExCgW,CAA6BhiH,EACtC,CACF,CAxBIiiH,CAAsBxH,GAgC1B,SAASuH,EAAuBvrH,GAI9B,OAHAqrH,EAAmBrrH,EACnBsrH,EAAiB,EAEG,IAAhBtrH,EAAK/N,OACAm5H,EAGFK,EAAgBzrH,EAAKsrH,GAC9B,CAQA,SAASG,EAAgBzxE,GACvB,OAGA,SAAezwC,GAKb5U,EA4ER,WACE,IAAM+2H,EAAat3G,IACbu3G,EAAgBlrD,EAAQnuE,SACxBs5H,EAAwBnrD,EAAQ8lD,iBAChCsF,EAAmBprD,EAAQ0lD,OAAOl0H,OAClC65H,EAAax7H,MAAM+lH,KAAK3mF,GAC9B,MAAO,CACLuvD,QAAAA,EACAo3B,KAAMwV,GAQR,SAAS5sC,IACPo+B,EAAQqO,EACRjrD,EAAQnuE,SAAWq5H,EACnBlrD,EAAQ8lD,iBAAmBqF,EAC3BnrD,EAAQ0lD,OAAOl0H,OAAS45H,EACxBn8F,EAAQo8F,EACRzB,GACF,CACF,CApGe0B,GACPxF,EAAmBvsE,EAEdA,EAAU2tE,UACblnD,EAAQ8lD,iBAAmBvsE,GAG7B,GACEA,EAAU/oD,MACVwvE,EAAQhyC,OAAOu1F,WAAWyD,QAAQ3sB,KAAK3gD,SAASH,EAAU/oD,MAE1D,OAAOu2H,EAAIj+G,GAGb,OAAOywC,EAAUk/C,SAAS3oG,KAIxBizG,EAAS5zG,OAAO6gC,OAAO7gC,OAAOoI,OAAOyoE,GAAU+iC,GAAU/iC,EACzDe,EACAyR,EACAu0C,EAPKxtE,CAQLzwC,EACJ,CACF,CAGA,SAAS0pE,EAAG1pE,GAGV,OAFW,EACX4hH,EAAS5E,EAAkB5xH,GACpBo6C,CACT,CAGA,SAASy4E,EAAIj+G,GAIX,OAHW,EACX5U,EAAKsqF,YAECqsC,EAAiBD,EAAiBp5H,OAC/Bw5H,EAAgBJ,EAAiBC,IAGnCF,CACT,CACF,CACF,CAOA,SAASb,EAAUvwE,EAAWq8D,GACxBr8D,EAAUqvE,aAAee,EAAqBjwE,SAASH,IACzDowE,EAAqBn3H,KAAK+mD,GAGxBA,EAAU+gB,SACZnkC,GACE6pC,EAAQ0lD,OACR9P,EACA51C,EAAQ0lD,OAAOl0H,OAASokH,EACxBr8D,EAAU+gB,QAAQ0F,EAAQ0lD,OAAOtzH,MAAMwjH,GAAO51C,IAI9CzmB,EAAUgyE,YACZvrD,EAAQ0lD,OAASnsE,EAAUgyE,UAAUvrD,EAAQ0lD,OAAQ1lD,GAEzD,CAuCA,SAAS4pD,IACHhN,EAAM9tG,QAAQ46G,GAAe9M,EAAMnuG,OAAS,IAC9CmuG,EAAMnuG,OAASi7G,EAAY9M,EAAM9tG,MACjC8tG,EAAMtoG,QAAUo1G,EAAY9M,EAAM9tG,MAAQ,EAE9C,CACF,CCneO,IAAM08G,GAAgB,CAC3Bh7H,KAAM,gBACNioG,SAIF,SAA+B13B,EAASyR,EAAIu0C,GAC1C,IAGIzpB,EAHAv2F,EAAO,EAIX,OAGA,SAAe+B,GAGb,OAFAi4D,EAAQyjD,MAAM,iBACdlnB,EAASx0F,EACFkgH,EAAQlgH,EACjB,EAGA,SAASkgH,EAAQlgH,GACf,OAAIA,IAASw0F,GACXv8B,EAAQyjD,MAAM,yBACPiH,EAAS3iH,IAGdq7G,GAAcr7G,GACTw7G,GAAavjD,EAASioD,EAAS,aAA/B1E,CAA6Cx7G,GAGlD/B,EAAO,GAAe,OAAT+B,IAAkBo7G,GAAmBp7G,GAC7Ci+G,EAAIj+G,IAGbi4D,EAAQ2jD,KAAK,iBACNlyC,EAAG1pE,GACZ,CAGA,SAAS2iH,EAAS3iH,GAChB,OAAIA,IAASw0F,GACXv8B,EAAQ0jD,QAAQ37G,GAChB/B,IACO0kH,IAGT1qD,EAAQ2jD,KAAK,yBACNsE,EAAQlgH,GACjB,CACF,GCzCO,IAAMvJ,GAAO,CAClB/O,KAAM,OACNioG,SAuBF,SAA2B13B,EAASyR,EAAIu0C,GACtC,IAAMzoC,EAAOhyE,KACP2iE,EAAOqP,EAAKonC,OAAOpnC,EAAKonC,OAAOl0H,OAAS,GAC1Ck6H,EACFz8C,GAAyB,eAAjBA,EAAK,GAAGx8E,KACZw8E,EAAK,GAAGs5C,eAAet5C,EAAK,IAAI,GAAMz9E,OACtC,EACFuV,EAAO,EACX,OAGA,SAAe+B,GACb,IAAM3J,EACJm/E,EAAK8mC,eAAe3yH,OACV,KAATqW,GAAwB,KAATA,GAAwB,KAATA,EAC3B,gBACA,eAEN,GACW,kBAAT3J,GACKm/E,EAAK8mC,eAAe9nB,QAAUx0F,IAASw1E,EAAK8mC,eAAe9nB,OAC5DqmB,GAAW76G,GACf,CAQA,GAPKw1E,EAAK8mC,eAAe3yH,OACvB6rF,EAAK8mC,eAAe3yH,KAAO0M,EAC3B4hE,EAAQyjD,MAAMrlH,EAAM,CAClBwoH,YAAY,KAIH,kBAATxoH,EAEF,OADA4hE,EAAQyjD,MAAM,kBACE,KAAT17G,GAAwB,KAATA,EAClBi4D,EAAQ30D,MAAMo/G,GAAezE,EAAK4E,EAAlC5qD,CAA4Cj4D,GAC5C6iH,EAAS7iH,GAGf,IAAKw1E,EAAK2nC,WAAsB,KAATn9G,EAGrB,OAFAi4D,EAAQyjD,MAAM,kBACdzjD,EAAQyjD,MAAM,iBACP3jC,EAAO/3E,EAElB,CAEA,OAAOi+G,EAAIj+G,EACb,EAGA,SAAS+3E,EAAO/3E,GACd,OAAI66G,GAAW76G,MAAW/B,EAAO,IAC/Bg6D,EAAQ0jD,QAAQ37G,GACT+3E,KAILvC,EAAK2nC,WAAal/G,EAAO,KAC1Bu3E,EAAK8mC,eAAe9nB,OACjBx0F,IAASw1E,EAAK8mC,eAAe9nB,OACpB,KAATx0F,GAAwB,KAATA,IAEnBi4D,EAAQ2jD,KAAK,iBACNiH,EAAS7iH,IAGXi+G,EAAIj+G,EACb,CAKA,SAAS6iH,EAAS7iH,GAKhB,OAJAi4D,EAAQyjD,MAAM,kBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,kBACbpmC,EAAK8mC,eAAe9nB,OAAShf,EAAK8mC,eAAe9nB,QAAUx0F,EACpDi4D,EAAQ30D,MACb66G,GACA3oC,EAAK2nC,UAAYc,EAAM6E,EACvB7qD,EAAQ6jD,QACNiH,GACAC,EACAC,GAGN,CAGA,SAASH,EAAQ9iH,GAGf,OAFAw1E,EAAK8mC,eAAe4G,kBAAmB,EACvCN,IACOI,EAAYhjH,EACrB,CAGA,SAASijH,EAAYjjH,GACnB,OAAIq7G,GAAcr7G,IAChBi4D,EAAQyjD,MAAM,4BACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,4BACNoH,GAGF/E,EAAIj+G,EACb,CAGA,SAASgjH,EAAYhjH,GAInB,OAHAw1E,EAAK8mC,eAAer+G,KAClB2kH,EACAptC,EAAKiqC,eAAexnD,EAAQ2jD,KAAK,mBAAmB,GAAMlzH,OACrDghF,EAAG1pE,EACZ,CACF,EAtIE0nF,aAAc,CACZiI,SA2IJ,SAAkC13B,EAASyR,EAAIu0C,GAC7C,IAAMzoC,EAAOhyE,KAEb,OADAgyE,EAAK8mC,eAAeG,gBAAapxH,EAC1B4sE,EAAQ30D,MAAM66G,GAAW2E,EAASK,GAGzC,SAASL,EAAQ9iH,GAMf,OALAw1E,EAAK8mC,eAAe8G,kBAClB5tC,EAAK8mC,eAAe8G,mBACpB5tC,EAAK8mC,eAAe4G,iBAGf1H,GACLvjD,EACAyR,EACA,iBACA8L,EAAK8mC,eAAer+G,KAAO,EAJtBu9G,CAKLx7G,EACJ,CAGA,SAASmjH,EAASnjH,GAChB,OAAIw1E,EAAK8mC,eAAe8G,oBAAsB/H,GAAcr7G,IAC1Dw1E,EAAK8mC,eAAe8G,uBAAoB/3H,EACxCmqF,EAAK8mC,eAAe4G,sBAAmB73H,EAChCg4H,EAAiBrjH,KAG1Bw1E,EAAK8mC,eAAe8G,uBAAoB/3H,EACxCmqF,EAAK8mC,eAAe4G,sBAAmB73H,EAChC4sE,EAAQ6jD,QAAQwH,GAAiB55C,EAAI25C,EAArCprD,CAAuDj4D,GAChE,CAGA,SAASqjH,EAAiBrjH,GAKxB,OAHAw1E,EAAK8mC,eAAeG,YAAa,EAEjCjnC,EAAK2nC,eAAY9xH,EACVmwH,GACLvjD,EACAA,EAAQ6jD,QAAQrlH,GAAMizE,EAAIu0C,GAC1B,aACAzoC,EAAKtwD,OAAOu1F,WAAWyD,QAAQ3sB,KAAK3gD,SAAS,qBACzCvlD,EACA,EANCmwH,CAOLx7G,EACJ,CACF,GAzLE47G,KAuNF,SAAyB3jD,GACvBA,EAAQ2jD,KAAKp4G,KAAK84G,eAAe3yH,KACnC,GArNMo5H,GAAoC,CACxCpzB,SA0NF,SAA0C13B,EAASyR,EAAIu0C,GACrD,IAAMzoC,EAAOhyE,KACb,OAAOg4G,GACLvjD,GASF,SAAqBj4D,GACnB,IAAMmmE,EAAOqP,EAAKonC,OAAOpnC,EAAKonC,OAAOl0H,OAAS,GAC9C,OAAQ2yH,GAAcr7G,IACpBmmE,GACiB,6BAAjBA,EAAK,GAAGx8E,KACN+/E,EAAG1pE,GACHi+G,EAAIj+G,EACV,GAdE,2BACAw1E,EAAKtwD,OAAOu1F,WAAWyD,QAAQ3sB,KAAK3gD,SAAS,qBACzCvlD,EACA,EAYR,EA7OE+yH,SAAS,GAILkF,GAAkB,CACtB3zB,SAoLF,SAAwB13B,EAASyR,EAAIu0C,GACnC,IAAMzoC,EAAOhyE,KACb,OAAOg4G,GACLvjD,GAOF,SAAqBj4D,GACnB,IAAMmmE,EAAOqP,EAAKonC,OAAOpnC,EAAKonC,OAAOl0H,OAAS,GAC9C,OAAOy9E,GACY,mBAAjBA,EAAK,GAAGx8E,MACRw8E,EAAK,GAAGs5C,eAAet5C,EAAK,IAAI,GAAMz9E,SAAW8sF,EAAK8mC,eAAer+G,KACnEyrE,EAAG1pE,GACHi+G,EAAIj+G,EACV,GAZE,iBACAw1E,EAAK8mC,eAAer+G,KAAO,EAY/B,EArMEmgH,SAAS,GC3BJ,IAAMmF,GAAa,CACxB77H,KAAM,aACNioG,SAQF,SAAiC13B,EAASyR,EAAIu0C,GAC5C,IAAMzoC,EAAOhyE,KACb,OAGA,SAAexD,GACb,GAAa,KAATA,EAAa,CACf,IAAMurB,EAAQiqD,EAAK8mC,eAanB,OAXK/wF,EAAM3uB,OACTq7D,EAAQyjD,MAAM,aAAc,CAC1BmD,YAAY,IAEdtzF,EAAM3uB,MAAO,GAGfq7D,EAAQyjD,MAAM,oBACdzjD,EAAQyjD,MAAM,oBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,oBACNnrB,CACT,CAEA,OAAOwtB,EAAIj+G,EACb,EAGA,SAASywF,EAAMzwF,GACb,OAAIq7G,GAAcr7G,IAChBi4D,EAAQyjD,MAAM,8BACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,8BACb3jD,EAAQ2jD,KAAK,oBACNlyC,IAGTzR,EAAQ2jD,KAAK,oBACNlyC,EAAG1pE,GACZ,CACF,EA9CE0nF,aAAc,CACZiI,SAgDJ,SAAwC13B,EAASyR,EAAIu0C,GACnD,OAAOzC,GACLvjD,EACAA,EAAQ6jD,QAAQyH,GAAY75C,EAAIu0C,GAChC,aACAz6G,KAAK0hB,OAAOu1F,WAAWyD,QAAQ3sB,KAAK3gD,SAAS,qBAAkBvlD,EAAY,EAE/E,GArDEuwH,KAwDF,SAAc3jD,GACZA,EAAQ2jD,KAAK,aACf,GCnDO,SAAS4H,GACdvrD,EACAyR,EACAu0C,EACAt0H,EACA85H,EACAC,EACAC,EACAC,EACA9sH,GAEA,IAAM2kH,EAAQ3kH,GAAOzK,OAAOqsH,kBACxBmL,EAAU,EACd,OAGA,SAAe7jH,GACb,GAAa,KAATA,EAMF,OALAi4D,EAAQyjD,MAAM/xH,GACdsuE,EAAQyjD,MAAM+H,GACdxrD,EAAQyjD,MAAMgI,GACdzrD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK8H,GACNI,EAGT,GAAa,OAAT9jH,GAA0B,KAATA,GAAek7G,GAAal7G,GAC/C,OAAOi+G,EAAIj+G,GASb,OANAi4D,EAAQyjD,MAAM/xH,GACdsuE,EAAQyjD,MAAMiI,GACd1rD,EAAQyjD,MAAMkI,GACd3rD,EAAQyjD,MAAM,cAAe,CAC3BhwB,YAAa,WAERq4B,EAAe/jH,EACxB,EAGA,SAAS8jH,EAA0B9jH,GACjC,OAAa,KAATA,GACFi4D,EAAQyjD,MAAMgI,GACdzrD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK8H,GACbzrD,EAAQ2jD,KAAK6H,GACbxrD,EAAQ2jD,KAAKjyH,GACN+/E,IAGTzR,EAAQyjD,MAAMkI,GACd3rD,EAAQyjD,MAAM,cAAe,CAC3BhwB,YAAa,WAERs4B,EAAoBhkH,GAC7B,CAGA,SAASgkH,EAAoBhkH,GAC3B,OAAa,KAATA,GACFi4D,EAAQ2jD,KAAK,eACb3jD,EAAQ2jD,KAAKgI,GACNE,EAA0B9jH,IAGtB,OAATA,GAA0B,KAATA,GAAeo7G,GAAmBp7G,GAC9Ci+G,EAAIj+G,IAGbi4D,EAAQ0jD,QAAQ37G,GACA,KAATA,EAAcikH,EAA4BD,EACnD,CAGA,SAASC,EAA0BjkH,GACjC,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAChCi4D,EAAQ0jD,QAAQ37G,GACTgkH,GAGFA,EAAoBhkH,EAC7B,CAGA,SAAS+jH,EAAe/jH,GACtB,OAAa,KAATA,IACI6jH,EAAUpI,EAAcwC,EAAIj+G,IAClCi4D,EAAQ0jD,QAAQ37G,GACT+jH,GAGI,KAAT/jH,EACG6jH,KAQL5rD,EAAQ0jD,QAAQ37G,GACT+jH,IARL9rD,EAAQ2jD,KAAK,eACb3jD,EAAQ2jD,KAAKgI,GACb3rD,EAAQ2jD,KAAK+H,GACb1rD,EAAQ2jD,KAAKjyH,GACN+/E,EAAG1pE,IAOD,OAATA,GAAiBm7G,GAA0Bn7G,GACzC6jH,EAAgB5F,EAAIj+G,IACxBi4D,EAAQ2jD,KAAK,eACb3jD,EAAQ2jD,KAAKgI,GACb3rD,EAAQ2jD,KAAK+H,GACb1rD,EAAQ2jD,KAAKjyH,GACN+/E,EAAG1pE,IAGRk7G,GAAal7G,GAAci+G,EAAIj+G,IACnCi4D,EAAQ0jD,QAAQ37G,GACA,KAATA,EAAckkH,EAAuBH,EAC9C,CAGA,SAASG,EAAqBlkH,GAC5B,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAChCi4D,EAAQ0jD,QAAQ37G,GACT+jH,GAGFA,EAAe/jH,EACxB,CACF,CCpIO,SAASmkH,GAAalsD,EAASyR,EAAIu0C,EAAKt0H,EAAMy6H,EAAYR,GAC/D,IAII12H,EAJEsoF,EAAOhyE,KACTvF,EAAO,EAIX,OAGA,SAAe+B,GAMb,OALAi4D,EAAQyjD,MAAM/xH,GACdsuE,EAAQyjD,MAAM0I,GACdnsD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAKwI,GACbnsD,EAAQyjD,MAAMkI,GACP1D,CACT,EAGA,SAASA,EAAQlgH,GACf,OACW,OAATA,GACS,KAATA,GACU,KAATA,IAAgB9S,GAQP,KAAT8S,IACE/B,GACD,2BAA4Bu3E,EAAKtwD,OAAOu1F,YAC1Cx8G,EAAO,IAEAggH,EAAIj+G,GAGA,KAATA,GACFi4D,EAAQ2jD,KAAKgI,GACb3rD,EAAQyjD,MAAM0I,GACdnsD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAKwI,GACbnsD,EAAQ2jD,KAAKjyH,GACN+/E,GAGL0xC,GAAmBp7G,IACrBi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACNsE,IAGTjoD,EAAQyjD,MAAM,cAAe,CAC3BhwB,YAAa,WAERp1F,EAAM0J,GACf,CAGA,SAAS1J,EAAM0J,GACb,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACAo7G,GAAmBp7G,IACnB/B,IAAS,KAETg6D,EAAQ2jD,KAAK,eACNsE,EAAQlgH,KAGjBi4D,EAAQ0jD,QAAQ37G,GAChB9S,EAAOA,IAASmuH,GAAcr7G,GACd,KAATA,EAAcqkH,EAAc/tH,EACrC,CAGA,SAAS+tH,EAAYrkH,GACnB,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAChCi4D,EAAQ0jD,QAAQ37G,GAChB/B,IACO3H,GAGFA,EAAM0J,EACf,CACF,CCzFO,SAASskH,GAAarsD,EAASyR,EAAIu0C,EAAKt0H,EAAMy6H,EAAYR,GAE/D,IAAIpvB,EACJ,OAGA,SAAex0F,GAMb,OALAi4D,EAAQyjD,MAAM/xH,GACdsuE,EAAQyjD,MAAM0I,GACdnsD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAKwI,GACb5vB,EAAkB,KAATx0F,EAAc,GAAKA,EACrBukH,CACT,EAGA,SAASA,EAAkBvkH,GACzB,OAAIA,IAASw0F,GACXv8B,EAAQyjD,MAAM0I,GACdnsD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAKwI,GACbnsD,EAAQ2jD,KAAKjyH,GACN+/E,IAGTzR,EAAQyjD,MAAMkI,GACPY,EAAaxkH,GACtB,CAGA,SAASwkH,EAAaxkH,GACpB,OAAIA,IAASw0F,GACXv8B,EAAQ2jD,KAAKgI,GACNW,EAAkB/vB,IAGd,OAATx0F,EACKi+G,EAAIj+G,GAGTo7G,GAAmBp7G,IACrBi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACNJ,GAAavjD,EAASusD,EAAc,gBAG7CvsD,EAAQyjD,MAAM,cAAe,CAC3BhwB,YAAa,WAER/sF,EAAMqB,GACf,CAGA,SAASrB,EAAMqB,GACb,OAAIA,IAASw0F,GAAmB,OAATx0F,GAAiBo7G,GAAmBp7G,IACzDi4D,EAAQ2jD,KAAK,eACN4I,EAAaxkH,KAGtBi4D,EAAQ0jD,QAAQ37G,GACA,KAATA,EAAcykH,EAAc9lH,EACrC,CAGA,SAAS8lH,EAAYzkH,GACnB,OAAIA,IAASw0F,GAAmB,KAATx0F,GACrBi4D,EAAQ0jD,QAAQ37G,GACTrB,GAGFA,EAAMqB,EACf,CACF,CChFO,SAAS0kH,GAAkBzsD,EAASyR,GAEzC,IAAIs0C,EACJ,OAGA,SAAS90H,EAAM8W,GACb,GAAIo7G,GAAmBp7G,GAKrB,OAJAi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACboC,GAAO,EACA90H,EAGT,GAAImyH,GAAcr7G,GAChB,OAAOw7G,GACLvjD,EACA/uE,EACA80H,EAAO,aAAe,aAHjBxC,CAILx7G,GAGJ,OAAO0pE,EAAG1pE,EACZ,CACF,CC9BO,SAAS2kH,GAAoB98H,GAClC,OACEA,EACG6F,QAAQ,cAAe,KACvBA,QAAQ,SAAU,IAMlBhD,cACAmD,aAEP,CCFO,IAAMoV,GAAa,CACxBvb,KAAM,aACNioG,SAUF,SAA4B13B,EAASyR,EAAIu0C,GACvC,IAGIpkC,EAHErE,EAAOhyE,KAIb,OAGA,SAAexD,GAEb,OADAi4D,EAAQyjD,MAAM,cACPyI,GAAan9H,KAClBwuF,EACAvd,EACA2sD,EACA3G,EACA,kBACA,wBACA,wBAPKkG,CAQLnkH,EACJ,EAGA,SAAS4kH,EAAW5kH,GAKlB,OAJA65E,EAAa8qC,GACXnvC,EAAKiqC,eAAejqC,EAAKonC,OAAOpnC,EAAKonC,OAAOl0H,OAAS,GAAG,IAAIY,MAAM,GAAI,IAG3D,KAAT0W,GACFi4D,EAAQyjD,MAAM,oBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,oBAEN8I,GACLzsD,EACAurD,GACEvrD,EACAA,EAAQ6jD,QACN+I,GACArJ,GAAavjD,EAASw4B,EAAO,cAC7B+qB,GAAavjD,EAASw4B,EAAO,eAE/BwtB,EACA,wBACA,+BACA,qCACA,2BACA,iCAKCA,EAAIj+G,EACb,CAGA,SAASywF,EAAMzwF,GACb,OAAa,OAATA,GAAiBo7G,GAAmBp7G,IACtCi4D,EAAQ2jD,KAAK,cAERpmC,EAAKtwD,OAAOhiB,QAAQ0tC,SAASipC,IAChCrE,EAAKtwD,OAAOhiB,QAAQxZ,KAAKmwF,GAGpBnQ,EAAG1pE,IAGLi+G,EAAIj+G,EACb,CACF,GA1EM6kH,GAAiB,CACrBl1B,SA4EF,SAAuB13B,EAASyR,EAAIu0C,GAClC,OAGA,SAAej+G,GACb,OAAOm7G,GAA0Bn7G,GAC7B0kH,GAAkBzsD,EAASs4B,EAA3Bm0B,CAAmC1kH,GACnCi+G,EAAIj+G,EACV,EAGA,SAASuwF,EAAOvwF,GACd,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,EACzBskH,GACLrsD,EACAujD,GAAavjD,EAASw4B,EAAO,cAC7BwtB,EACA,kBACA,wBACA,wBANKqG,CAOLtkH,GAGGi+G,EAAIj+G,EACb,CAGA,SAASywF,EAAMzwF,GACb,OAAgB,OAATA,GAAiBo7G,GAAmBp7G,GAAQ0pE,EAAG1pE,GAAQi+G,EAAIj+G,EACpE,CACF,EAzGEo+G,SAAS,GCdJ,IAAM0G,GAAe,CAC1Bp9H,KAAM,eACNioG,SAUF,SAA8B13B,EAASyR,EAAIu0C,GACzC,IAAMzoC,EAAOhyE,KACb,OAGA,SAAexD,GAEb,OADAi4D,EAAQyjD,MAAM,gBACPF,GAAavjD,EAAS8sD,EAAkB,aAAc,EAAtDvJ,CAA6Dx7G,EACtE,EAGA,SAAS+kH,EAAiB/kH,GACxB,IAAMmmE,EAAOqP,EAAKonC,OAAOpnC,EAAKonC,OAAOl0H,OAAS,GAC9C,OAAOy9E,GACY,eAAjBA,EAAK,GAAGx8E,MACRw8E,EAAK,GAAGs5C,eAAet5C,EAAK,IAAI,GAAMz9E,QAAU,EAC9Cs8H,EAAYhlH,GACZi+G,EAAIj+G,EACV,CAGA,SAASglH,EAAYhlH,GACnB,OAAa,OAATA,EACKywF,EAAMzwF,GAGXo7G,GAAmBp7G,GACdi4D,EAAQ6jD,QAAQmJ,GAAiBD,EAAav0B,EAA9Cx4B,CAAqDj4D,IAG9Di4D,EAAQyjD,MAAM,iBACPvwH,EAAQ6U,GACjB,CAGA,SAAS7U,EAAQ6U,GACf,OAAa,OAATA,GAAiBo7G,GAAmBp7G,IACtCi4D,EAAQ2jD,KAAK,iBACNoJ,EAAYhlH,KAGrBi4D,EAAQ0jD,QAAQ37G,GACT7U,EACT,CAGA,SAASslG,EAAMzwF,GAEb,OADAi4D,EAAQ2jD,KAAK,gBACNlyC,EAAG1pE,EACZ,CACF,GAxDMilH,GAAkB,CACtBt1B,SA0DF,SAAiC13B,EAASyR,EAAIu0C,GAC5C,IAAMzoC,EAAOhyE,KACb,OAAOta,EAGP,SAASA,EAAM8W,GAEb,OAAIw1E,EAAKtwD,OAAOgwD,KAAKM,EAAK3qE,MAAM7E,MACvBi4G,EAAIj+G,GAGTo7G,GAAmBp7G,IACrBi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACN1yH,GAGFsyH,GAAavjD,EAAS+sD,EAAa,aAAc,EAAjDxJ,CAAwDx7G,EACjE,CAGA,SAASglH,EAAYhlH,GACnB,IAAMmmE,EAAOqP,EAAKonC,OAAOpnC,EAAKonC,OAAOl0H,OAAS,GAC9C,OAAOy9E,GACY,eAAjBA,EAAK,GAAGx8E,MACRw8E,EAAK,GAAGs5C,eAAet5C,EAAK,IAAI,GAAMz9E,QAAU,EAC9CghF,EAAG1pE,GACHo7G,GAAmBp7G,GACnB9W,EAAM8W,GACNi+G,EAAIj+G,EACV,CACF,EAzFEo+G,SAAS,GCHJ,IAAM8G,GAAa,CACxBx9H,KAAM,aACNioG,SA4DF,SAA4B13B,EAASyR,EAAIu0C,GACvC,IAAMzoC,EAAOhyE,KACTvF,EAAO,EACX,OAGA,SAAe+B,GAGb,OAFAi4D,EAAQyjD,MAAM,cACdzjD,EAAQyjD,MAAM,sBACPyJ,EAAgBnlH,EACzB,EAGA,SAASmlH,EAAgBnlH,GACvB,OAAa,KAATA,GAAe/B,IAAS,GAC1Bg6D,EAAQ0jD,QAAQ37G,GACTmlH,GAGI,OAATnlH,GAAiBm7G,GAA0Bn7G,IAC7Ci4D,EAAQ2jD,KAAK,sBACNpmC,EAAK2nC,UAAYzzC,EAAG1pE,GAAQolH,EAAaplH,IAG3Ci+G,EAAIj+G,EACb,CAGA,SAASolH,EAAaplH,GACpB,OAAa,KAATA,GACFi4D,EAAQyjD,MAAM,sBACPiH,EAAS3iH,IAGL,OAATA,GAAiBo7G,GAAmBp7G,IACtCi4D,EAAQ2jD,KAAK,cACNlyC,EAAG1pE,IAGRq7G,GAAcr7G,GACTw7G,GAAavjD,EAASmtD,EAAc,aAApC5J,CAAkDx7G,IAG3Di4D,EAAQyjD,MAAM,kBACPxuH,EAAK8S,GACd,CAGA,SAAS2iH,EAAS3iH,GAChB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT2iH,IAGT1qD,EAAQ2jD,KAAK,sBACNwJ,EAAaplH,GACtB,CAGA,SAAS9S,EAAK8S,GACZ,OAAa,OAATA,GAA0B,KAATA,GAAem7G,GAA0Bn7G,IAC5Di4D,EAAQ2jD,KAAK,kBACNwJ,EAAaplH,KAGtBi4D,EAAQ0jD,QAAQ37G,GACT9S,EACT,CACF,EA/HEskE,QAIF,SAA2BorD,EAAQ1lD,GACjC,IAII/rE,EAGA4W,EAPAs9G,EAAazC,EAAOl0H,OAAS,EAC7BmzH,EAAe,EAQkB,eAAjCe,EAAOf,GAAc,GAAGlyH,OAC1BkyH,GAAgB,GAIhBwD,EAAa,EAAIxD,GACc,eAA/Be,EAAOyC,GAAY,GAAG11H,OAEtB01H,GAAc,GAIiB,uBAA/BzC,EAAOyC,GAAY,GAAG11H,OACrBkyH,IAAiBwD,EAAa,GAC5BA,EAAa,EAAIxD,GACmB,eAAnCe,EAAOyC,EAAa,GAAG,GAAG11H,QAE9B01H,GAAcxD,EAAe,IAAMwD,EAAa,EAAI,GAGlDA,EAAaxD,IACf1wH,EAAU,CACRxB,KAAM,iBACNT,MAAO0zH,EAAOf,GAAc,GAAG3yH,MAC/B4D,IAAK8vH,EAAOyC,GAAY,GAAGvyH,KAE7BiV,EAAO,CACLpY,KAAM,YACNT,MAAO0zH,EAAOf,GAAc,GAAG3yH,MAC/B4D,IAAK8vH,EAAOyC,GAAY,GAAGvyH,IAE3B4+F,YAAa,QAEfr+D,GAAOuvF,EAAQf,EAAcwD,EAAaxD,EAAe,EAAG,CAC1D,CAAC,QAAS1wH,EAAS+rE,GACnB,CAAC,QAASn1D,EAAMm1D,GAChB,CAAC,OAAQn1D,EAAMm1D,GACf,CAAC,OAAQ/rE,EAAS+rE,MAItB,OAAO0lD,CACT,GChEO,IAAMyI,GAAkB,CAC7B39H,KAAM,kBACNioG,SA+DF,SAAiC13B,EAASyR,EAAIu0C,GAC5C,IAIIzpB,EAGA8wB,EAPE9vC,EAAOhyE,KACTja,EAAQisF,EAAKonC,OAAOl0H,OAQxB,KAAOa,KAGL,GACiC,eAA/BisF,EAAKonC,OAAOrzH,GAAO,GAAGI,MACS,eAA/B6rF,EAAKonC,OAAOrzH,GAAO,GAAGI,MACS,YAA/B6rF,EAAKonC,OAAOrzH,GAAO,GAAGI,KACtB,CACA27H,EAA2C,cAA/B9vC,EAAKonC,OAAOrzH,GAAO,GAAGI,KAClC,KACF,CAGF,OAGA,SAAeqW,GACb,IAAKw1E,EAAKtwD,OAAOgwD,KAAKM,EAAK3qE,MAAM7E,QAAUwvE,EAAK2nC,WAAamI,GAI3D,OAHArtD,EAAQyjD,MAAM,qBACdzjD,EAAQyjD,MAAM,6BACdlnB,EAASx0F,EACFulH,EAAgBvlH,GAGzB,OAAOi+G,EAAIj+G,EACb,EAGA,SAASulH,EAAgBvlH,GACvB,OAAIA,IAASw0F,GACXv8B,EAAQ0jD,QAAQ37G,GACTulH,IAGTttD,EAAQ2jD,KAAK,6BACNJ,GAAavjD,EAASutD,EAAoB,aAA1ChK,CAAwDx7G,GACjE,CAGA,SAASwlH,EAAmBxlH,GAC1B,OAAa,OAATA,GAAiBo7G,GAAmBp7G,IACtCi4D,EAAQ2jD,KAAK,qBACNlyC,EAAG1pE,IAGLi+G,EAAIj+G,EACb,CACF,EAvHEyiH,UAIF,SAAkC7F,EAAQ1lD,GACxC,IAGI/rE,EAGA4W,EAGAkB,EATA1Z,EAAQqzH,EAAOl0H,OAYnB,KAAOa,KACL,GAAyB,UAArBqzH,EAAOrzH,GAAO,GAAgB,CAChC,GAA8B,YAA1BqzH,EAAOrzH,GAAO,GAAGI,KAAoB,CACvCwB,EAAU5B,EACV,KACF,CAE8B,cAA1BqzH,EAAOrzH,GAAO,GAAGI,OACnBoY,EAAOxY,EAEX,KAEgC,YAA1BqzH,EAAOrzH,GAAO,GAAGI,MAEnBizH,EAAOvvF,OAAO9jC,EAAO,GAGlB0Z,GAAwC,eAA1B25G,EAAOrzH,GAAO,GAAGI,OAClCsZ,EAAa1Z,GAKnB,IAAMorG,EAAU,CACdhrG,KAAM,gBACNT,MAAO7C,OAAO6gC,OAAO,CAAC,EAAG01F,EAAO76G,GAAM,GAAG7Y,OACzC4D,IAAKzG,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOA,EAAOl0H,OAAS,GAAG,GAAGoE,MAGtD8vH,EAAO76G,GAAM,GAAGpY,KAAO,oBAGnBsZ,GACF25G,EAAOvvF,OAAOtrB,EAAM,EAAG,CAAC,QAAS4yF,EAASz9B,IAC1C0lD,EAAOvvF,OAAOpqB,EAAa,EAAG,EAAG,CAAC,OAAQ25G,EAAOzxH,GAAS,GAAI+rE,IAC9D0lD,EAAOzxH,GAAS,GAAG2B,IAAMzG,OAAO6gC,OAAO,CAAC,EAAG01F,EAAO35G,GAAY,GAAGnW,MAEjE8vH,EAAOzxH,GAAS,GAAKwpG,EAIvB,OADAioB,EAAOlzH,KAAK,CAAC,OAAQirG,EAASz9B,IACvB0lD,CACT,GC/DO,IAAM6I,GAAiB,CAC5B,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,MAaWC,GAAe,CAAC,MAAO,SAAU,QAAS,YClE1CC,GAAW,CACtBj+H,KAAM,WACNioG,SAkCF,SAA0B13B,EAASyR,EAAIu0C,GACrC,IAGI5nH,EAGA8wB,EAGAwvF,EAGAptH,EAGAirG,EAfEhf,EAAOhyE,KAgBb,OAGA,SAAexD,GAIb,OAHAi4D,EAAQyjD,MAAM,YACdzjD,EAAQyjD,MAAM,gBACdzjD,EAAQ0jD,QAAQ37G,GACTpD,CACT,EAGA,SAASA,EAAKoD,GACZ,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT4lH,GAGI,KAAT5lH,GACFi4D,EAAQ0jD,QAAQ37G,GACT6lH,GAGI,KAAT7lH,GACFi4D,EAAQ0jD,QAAQ37G,GAChB3J,EAAO,EAGAm/E,EAAK2nC,UAAYzzC,EAAKo8C,GAG3BnL,GAAW36G,IACbi4D,EAAQ0jD,QAAQ37G,GAChB22G,EAAS1qH,OAAOoc,aAAarI,GAC7BmnB,GAAW,EACJv9B,GAGFq0H,EAAIj+G,EACb,CAGA,SAAS4lH,EAAiB5lH,GACxB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GAChB3J,EAAO,EACA0vH,GAGI,KAAT/lH,GACFi4D,EAAQ0jD,QAAQ37G,GAChB3J,EAAO,EACPsgH,EAAS,SACTptH,EAAQ,EACDy8H,GAGLrL,GAAW36G,IACbi4D,EAAQ0jD,QAAQ37G,GAChB3J,EAAO,EACAm/E,EAAK2nC,UAAYzzC,EAAKo8C,GAGxB7H,EAAIj+G,EACb,CAGA,SAAS+lH,EAAkB/lH,GACzB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTw1E,EAAK2nC,UAAYzzC,EAAKo8C,GAGxB7H,EAAIj+G,EACb,CAGA,SAASgmH,EAAgBhmH,GACvB,OAAIA,IAAS22G,EAAOpvG,WAAWhe,MAC7B0uE,EAAQ0jD,QAAQ37G,GACTzW,IAAUotH,EAAOjuH,OACpB8sF,EAAK2nC,UACHzzC,EACAge,EACFs+B,GAGC/H,EAAIj+G,EACb,CAGA,SAAS6lH,EAAc7lH,GACrB,OAAI26G,GAAW36G,IACbi4D,EAAQ0jD,QAAQ37G,GAChB22G,EAAS1qH,OAAOoc,aAAarI,GACtBpW,GAGFq0H,EAAIj+G,EACb,CAGA,SAASpW,EAAQoW,GACf,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACAm7G,GAA0Bn7G,GAGf,KAATA,GACAmnB,GACAu+F,GAAa90E,SAAS+lE,EAAOjsH,gBAE7B2L,EAAO,EACAm/E,EAAK2nC,UAAYzzC,EAAG1pE,GAAQ0nF,EAAa1nF,IAG9CylH,GAAe70E,SAAS+lE,EAAOjsH,gBACjC2L,EAAO,EAEM,KAAT2J,GACFi4D,EAAQ0jD,QAAQ37G,GACTimH,GAGFzwC,EAAK2nC,UAAYzzC,EAAG1pE,GAAQ0nF,EAAa1nF,KAGlD3J,EAAO,EAEAm/E,EAAK2nC,YAAc3nC,EAAKtwD,OAAOgwD,KAAKM,EAAK3qE,MAAM7E,MAClDi4G,EAAIj+G,GACJmnB,EACA++F,EAA4BlmH,GAC5BmmH,EAAwBnmH,IAGjB,KAATA,GAAe+6G,GAAkB/6G,IACnCi4D,EAAQ0jD,QAAQ37G,GAChB22G,GAAU1qH,OAAOoc,aAAarI,GACvBpW,GAGFq0H,EAAIj+G,EACb,CAGA,SAASimH,EAAiBjmH,GACxB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTw1E,EAAK2nC,UAAYzzC,EAAKge,GAGxBu2B,EAAIj+G,EACb,CAGA,SAASmmH,EAAwBnmH,GAC/B,OAAIq7G,GAAcr7G,IAChBi4D,EAAQ0jD,QAAQ37G,GACTmmH,GAGFC,EAAYpmH,EACrB,CAGA,SAASkmH,EAA4BlmH,GACnC,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTomH,GAGI,KAATpmH,GAAwB,KAATA,GAAe26G,GAAW36G,IAC3Ci4D,EAAQ0jD,QAAQ37G,GACTqmH,GAGLhL,GAAcr7G,IAChBi4D,EAAQ0jD,QAAQ37G,GACTkmH,GAGFE,EAAYpmH,EACrB,CAGA,SAASqmH,EAAsBrmH,GAC7B,OACW,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACA+6G,GAAkB/6G,IAElBi4D,EAAQ0jD,QAAQ37G,GACTqmH,GAGFC,EAA2BtmH,EACpC,CAGA,SAASsmH,EAA2BtmH,GAClC,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTumH,GAGLlL,GAAcr7G,IAChBi4D,EAAQ0jD,QAAQ37G,GACTsmH,GAGFJ,EAA4BlmH,EACrC,CAGA,SAASumH,EAA6BvmH,GACpC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,EAEOi+G,EAAIj+G,GAGA,KAATA,GAAwB,KAATA,GACjBi4D,EAAQ0jD,QAAQ37G,GAChBw0F,EAASx0F,EACFwmH,GAGLnL,GAAcr7G,IAChBi4D,EAAQ0jD,QAAQ37G,GACTumH,IAGT/xB,EAAS,KACFiyB,EAA+BzmH,GACxC,CAGA,SAASwmH,EAA6BxmH,GACpC,OAAa,OAATA,GAAiBo7G,GAAmBp7G,GAC/Bi+G,EAAIj+G,GAGTA,IAASw0F,GACXv8B,EAAQ0jD,QAAQ37G,GACT0mH,IAGTzuD,EAAQ0jD,QAAQ37G,GACTwmH,EACT,CAGA,SAASC,EAA+BzmH,GACtC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACAm7G,GAA0Bn7G,GAEnBsmH,EAA2BtmH,IAGpCi4D,EAAQ0jD,QAAQ37G,GACTymH,EACT,CAGA,SAASC,EAAkC1mH,GACzC,OAAa,KAATA,GAAwB,KAATA,GAAeq7G,GAAcr7G,GACvCkmH,EAA4BlmH,GAG9Bi+G,EAAIj+G,EACb,CAGA,SAASomH,EAAYpmH,GACnB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT2mH,GAGF1I,EAAIj+G,EACb,CAGA,SAAS2mH,EAAc3mH,GACrB,OAAIq7G,GAAcr7G,IAChBi4D,EAAQ0jD,QAAQ37G,GACT2mH,GAGO,OAAT3mH,GAAiBo7G,GAAmBp7G,GACvC0nF,EAAa1nF,GACbi+G,EAAIj+G,EACV,CAGA,SAAS0nF,EAAa1nF,GACpB,OAAa,KAATA,GAAwB,IAAT3J,GACjB4hE,EAAQ0jD,QAAQ37G,GACT4mH,GAGI,KAAT5mH,GAAwB,IAAT3J,GACjB4hE,EAAQ0jD,QAAQ37G,GACT6mH,GAGI,KAAT7mH,GAAwB,IAAT3J,GACjB4hE,EAAQ0jD,QAAQ37G,GACT8mH,GAGI,KAAT9mH,GAAwB,IAAT3J,GACjB4hE,EAAQ0jD,QAAQ37G,GACT8lH,GAGI,KAAT9lH,GAAwB,IAAT3J,GACjB4hE,EAAQ0jD,QAAQ37G,GACT+mH,IAGL3L,GAAmBp7G,IAAmB,IAAT3J,GAAuB,IAATA,EAQlC,OAAT2J,GAAiBo7G,GAAmBp7G,GAC/BgnH,EAAyBhnH,IAGlCi4D,EAAQ0jD,QAAQ37G,GACT0nF,GAZEzvB,EAAQ30D,MACb2jH,GACAH,EACAE,EAHK/uD,CAILj4D,EASN,CAGA,SAASgnH,EAAyBhnH,GAEhC,OADAi4D,EAAQ2jD,KAAK,gBACNsL,EAAkBlnH,EAC3B,CAGA,SAASknH,EAAkBlnH,GACzB,OAAa,OAATA,EACK07D,EAAK17D,GAGVo7G,GAAmBp7G,GACdi4D,EAAQ6jD,QACb,CACEnsB,SAAUw3B,EACV/I,SAAS,GAEX8I,EACAxrD,EANKzD,CAOLj4D,IAGJi4D,EAAQyjD,MAAM,gBACPh0B,EAAa1nF,GACtB,CAGA,SAASmnH,EAAYlvD,EAASyR,EAAIu0C,GAChC,OAGA,SAAej+G,GAIb,OAHAi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACNI,CACT,EAGA,SAASA,EAAUh8G,GACjB,OAAOw1E,EAAKtwD,OAAOgwD,KAAKM,EAAK3qE,MAAM7E,MAAQi4G,EAAIj+G,GAAQ0pE,EAAG1pE,EAC5D,CACF,CAGA,SAAS4mH,EAA0B5mH,GACjC,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT8lH,GAGFp+B,EAAa1nF,EACtB,CAGA,SAAS6mH,EAAuB7mH,GAC9B,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GAChB22G,EAAS,GACFyQ,GAGF1/B,EAAa1nF,EACtB,CAGA,SAASonH,EAAsBpnH,GAC7B,OAAa,KAATA,GAAe0lH,GAAa90E,SAAS+lE,EAAOjsH,gBAC9CutE,EAAQ0jD,QAAQ37G,GACT8mH,GAGLnM,GAAW36G,IAAS22G,EAAOjuH,OAAS,GACtCuvE,EAAQ0jD,QAAQ37G,GAChB22G,GAAU1qH,OAAOoc,aAAarI,GACvBonH,GAGF1/B,EAAa1nF,EACtB,CAGA,SAAS+mH,EAAgC/mH,GACvC,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT8lH,GAGFp+B,EAAa1nF,EACtB,CAGA,SAAS8lH,EAA8B9lH,GACrC,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT8mH,GAGI,KAAT9mH,GAAwB,IAAT3J,GACjB4hE,EAAQ0jD,QAAQ37G,GACT8lH,GAGFp+B,EAAa1nF,EACtB,CAGA,SAAS8mH,EAAkB9mH,GACzB,OAAa,OAATA,GAAiBo7G,GAAmBp7G,IACtCi4D,EAAQ2jD,KAAK,gBACNlgD,EAAK17D,KAGdi4D,EAAQ0jD,QAAQ37G,GACT8mH,EACT,CAGA,SAASprD,EAAK17D,GAEZ,OADAi4D,EAAQ2jD,KAAK,YACNlyC,EAAG1pE,EACZ,CACF,EA7gBEyiH,UAWF,SAA2B7F,GACzB,IAAIrzH,EAAQqzH,EAAOl0H,OAEnB,KAAOa,MACoB,UAArBqzH,EAAOrzH,GAAO,IAA4C,aAA1BqzH,EAAOrzH,GAAO,GAAGI,QAKnDJ,EAAQ,GAAmC,eAA9BqzH,EAAOrzH,EAAQ,GAAG,GAAGI,OAEpCizH,EAAOrzH,GAAO,GAAGL,MAAQ0zH,EAAOrzH,EAAQ,GAAG,GAAGL,MAE9C0zH,EAAOrzH,EAAQ,GAAG,GAAGL,MAAQ0zH,EAAOrzH,EAAQ,GAAG,GAAGL,MAElD0zH,EAAOvvF,OAAO9jC,EAAQ,EAAG,IAG3B,OAAOqzH,CACT,EA7BEK,UAAU,GAINgK,GAAqB,CACzBt3B,SA0gBF,SAA2B13B,EAASyR,EAAIu0C,GACtC,OAGA,SAAej+G,GAKb,OAJAi4D,EAAQ2jD,KAAK,gBACb3jD,EAAQyjD,MAAM,mBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,mBACN3jD,EAAQ6jD,QAAQqC,GAAWz0C,EAAIu0C,EACxC,CACF,EAphBEG,SAAS,GCfJ,IAAMiJ,GAAa,CACxB3/H,KAAM,aACNioG,SAKF,SAA4B13B,EAASyR,EAAIu0C,GACvC,IAqBIzpB,EArBEhf,EAAOhyE,KAGP8jH,EAAwB,CAC5B33B,SAuKF,SAA8B13B,EAASyR,EAAIu0C,GACzC,IAAIhgH,EAAO,EACX,OAAOu9G,GACLvjD,EACAsvD,EACA,aACA/jH,KAAK0hB,OAAOu1F,WAAWyD,QAAQ3sB,KAAK3gD,SAAS,qBACzCvlD,EACA,GAIN,SAASk8H,EAAqBvnH,GAG5B,OAFAi4D,EAAQyjD,MAAM,mBACdzjD,EAAQyjD,MAAM,2BACP6J,EAAgBvlH,EACzB,CAGA,SAASulH,EAAgBvlH,GACvB,OAAIA,IAASw0F,GACXv8B,EAAQ0jD,QAAQ37G,GAChB/B,IACOsnH,GAGLtnH,EAAOupH,EAAiBvJ,EAAIj+G,IAChCi4D,EAAQ2jD,KAAK,2BACNJ,GAAavjD,EAASutD,EAAoB,aAA1ChK,CAAwDx7G,GACjE,CAGA,SAASwlH,EAAmBxlH,GAC1B,OAAa,OAATA,GAAiBo7G,GAAmBp7G,IACtCi4D,EAAQ2jD,KAAK,mBACNlyC,EAAG1pE,IAGLi+G,EAAIj+G,EACb,CACF,EA9MEo+G,SAAS,GAILqJ,EAAc,CAClB93B,SA8IF,SAA6B13B,EAASyR,EAAIu0C,GACxC,IAAMzoC,EAAOhyE,KACb,OAAOta,EAGP,SAASA,EAAM8W,GAIb,OAHAi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACNI,CACT,CAGA,SAASA,EAAUh8G,GACjB,OAAOw1E,EAAKtwD,OAAOgwD,KAAKM,EAAK3qE,MAAM7E,MAAQi4G,EAAIj+G,GAAQ0pE,EAAG1pE,EAC5D,CACF,EA7JEo+G,SAAS,GAELj4C,EAAO3iE,KAAKo5G,OAAOp5G,KAAKo5G,OAAOl0H,OAAS,GACxCg/H,EACJvhD,GAAyB,eAAjBA,EAAK,GAAGx8E,KACZw8E,EAAK,GAAGs5C,eAAet5C,EAAK,IAAI,GAAMz9E,OACtC,EACF8+H,EAAW,EAIf,OAGA,SAAexnH,GAKb,OAJAi4D,EAAQyjD,MAAM,cACdzjD,EAAQyjD,MAAM,mBACdzjD,EAAQyjD,MAAM,2BACdlnB,EAASx0F,EACF2nH,EAAa3nH,EACtB,EAGA,SAAS2nH,EAAa3nH,GACpB,OAAIA,IAASw0F,GACXv8B,EAAQ0jD,QAAQ37G,GAChBwnH,IACOG,IAGT1vD,EAAQ2jD,KAAK,2BACN4L,EAAW,EACdvJ,EAAIj+G,GACJw7G,GAAavjD,EAAS2vD,EAAU,aAAhCpM,CAA8Cx7G,GACpD,CAGA,SAAS4nH,EAAS5nH,GAChB,OAAa,OAATA,GAAiBo7G,GAAmBp7G,GAC/B6nH,EAAU7nH,IAGnBi4D,EAAQyjD,MAAM,uBACdzjD,EAAQyjD,MAAM,cAAe,CAC3BhwB,YAAa,WAERtgG,EAAK4U,GACd,CAGA,SAAS5U,EAAK4U,GACZ,OAAa,OAATA,GAAiBm7G,GAA0Bn7G,IAC7Ci4D,EAAQ2jD,KAAK,eACb3jD,EAAQ2jD,KAAK,uBACNJ,GAAavjD,EAAS6vD,EAAW,aAAjCtM,CAA+Cx7G,IAG3C,KAATA,GAAeA,IAASw0F,EAAeypB,EAAIj+G,IAC/Ci4D,EAAQ0jD,QAAQ37G,GACT5U,EACT,CAGA,SAAS08H,EAAU9nH,GACjB,OAAa,OAATA,GAAiBo7G,GAAmBp7G,GAC/B6nH,EAAU7nH,IAGnBi4D,EAAQyjD,MAAM,uBACdzjD,EAAQyjD,MAAM,cAAe,CAC3BhwB,YAAa,WAER7zC,EAAK73C,GACd,CAGA,SAAS63C,EAAK73C,GACZ,OAAa,OAATA,GAAiBo7G,GAAmBp7G,IACtCi4D,EAAQ2jD,KAAK,eACb3jD,EAAQ2jD,KAAK,uBACNiM,EAAU7nH,IAGN,KAATA,GAAeA,IAASw0F,EAAeypB,EAAIj+G,IAC/Ci4D,EAAQ0jD,QAAQ37G,GACT63C,EACT,CAGA,SAASgwE,EAAU7nH,GAEjB,OADAi4D,EAAQ2jD,KAAK,mBACNpmC,EAAK2nC,UAAYzzC,EAAG1pE,GAAQ67G,EAAa77G,EAClD,CAGA,SAAS67G,EAAa77G,GACpB,OAAa,OAATA,EACKywF,EAAMzwF,GAGXo7G,GAAmBp7G,GACdi4D,EAAQ6jD,QACb2L,EACAxvD,EAAQ6jD,QACNwL,EACA72B,EACAi3B,EACIlM,GACEvjD,EACA4jD,EACA,aACA6L,EAAgB,GAElB7L,GAENprB,EAdKx4B,CAeLj4D,IAGJi4D,EAAQyjD,MAAM,iBACP6D,EAAgBv/G,GACzB,CAGA,SAASu/G,EAAgBv/G,GACvB,OAAa,OAATA,GAAiBo7G,GAAmBp7G,IACtCi4D,EAAQ2jD,KAAK,iBACNC,EAAa77G,KAGtBi4D,EAAQ0jD,QAAQ37G,GACTu/G,EACT,CAGA,SAAS9uB,EAAMzwF,GAEb,OADAi4D,EAAQ2jD,KAAK,cACNlyC,EAAG1pE,EACZ,CA+DF,EAzNEi9G,UAAU,GCZZ,IAAMt2F,GAAU/d,SAASC,cAAc,KAMhC,SAASk/G,GAA8BlgI,GAC5C,IAAMmgI,EAAqB,IAAMngI,EAAQ,IACzC8+B,GAAQ7d,UAAYk/G,EACpB,IAAMpoH,EAAO+mB,GAAQ5d,YAUrB,OAAyC,KAArCnJ,EAAK2H,WAAW3H,EAAKlX,OAAS,IAAiC,SAAVb,KAQlD+X,IAASooH,GAA6BpoH,EAC/C,CCjBO,IAAMooH,GAAqB,CAChCtgI,KAAM,qBACNioG,SAIF,SAAoC13B,EAASyR,EAAIu0C,GAC/C,IAIInnH,EAGAvJ,EAPEioF,EAAOhyE,KACTvF,EAAO,EAOX,OAGA,SAAe+B,GAKb,OAJAi4D,EAAQyjD,MAAM,sBACdzjD,EAAQyjD,MAAM,4BACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,4BACNh/G,CACT,EAGA,SAASA,EAAKoD,GACZ,OAAa,KAATA,GACFi4D,EAAQyjD,MAAM,mCACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,mCACNqM,IAGThwD,EAAQyjD,MAAM,2BACd5kH,EAAM,GACNvJ,EAAOwtH,GACAlzH,EAAMmY,GACf,CAGA,SAASioH,EAAQjoH,GACf,OAAa,KAATA,GAAwB,MAATA,GACjBi4D,EAAQyjD,MAAM,uCACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,uCACb3jD,EAAQyjD,MAAM,2BACd5kH,EAAM,EACNvJ,EAAOutH,GACAjzH,IAGTowE,EAAQyjD,MAAM,2BACd5kH,EAAM,EACNvJ,EAAOstH,GACAhzH,EAAMmY,GACf,CAGA,SAASnY,EAAMmY,GAEb,IAAIyM,EAEJ,OAAa,KAATzM,GAAe/B,GACjBwO,EAAQwrD,EAAQ2jD,KAAK,2BAGnBruH,IAASwtH,IACRgN,GAA8BvyC,EAAKiqC,eAAehzG,KAKrDwrD,EAAQyjD,MAAM,4BACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,4BACb3jD,EAAQ2jD,KAAK,sBACNlyC,GAPEu0C,EAAIj+G,IAUXzS,EAAKyS,IAAS/B,IAASnH,GACzBmhE,EAAQ0jD,QAAQ37G,GACTnY,GAGFo2H,EAAIj+G,EACb,CACF,GC/FO,IAAMkoH,GAAkB,CAC7BxgI,KAAM,kBACNioG,SAIF,SAAiC13B,EAASyR,EAAIu0C,GAC5C,OAGA,SAAej+G,GAKb,OAJAi4D,EAAQyjD,MAAM,mBACdzjD,EAAQyjD,MAAM,gBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,gBACNh/G,CACT,EAGA,SAASA,EAAKoD,GACZ,OAAIg7G,GAAiBh7G,IACnBi4D,EAAQyjD,MAAM,wBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,wBACb3jD,EAAQ2jD,KAAK,mBACNlyC,GAGFu0C,EAAIj+G,EACb,CACF,GC7BO,IAAMmoH,GAAa,CACxBzgI,KAAM,aACNioG,SAIF,SAA4B13B,EAASyR,GACnC,OAGA,SAAe1pE,GAIb,OAHAi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACNJ,GAAavjD,EAASyR,EAAI,aACnC,CACF,GCNO,IAAM0+C,GAAW,CACtB1gI,KAAM,WACNioG,SAgJF,SAA0B13B,EAASyR,EAAIu0C,GACrC,IAIIoK,EAGAnlH,EAPEsyE,EAAOhyE,KACTja,EAAQisF,EAAKonC,OAAOl0H,OAQxB,KAAOa,KACL,IACkC,eAA/BisF,EAAKonC,OAAOrzH,GAAO,GAAGI,MACU,cAA/B6rF,EAAKonC,OAAOrzH,GAAO,GAAGI,QACvB6rF,EAAKonC,OAAOrzH,GAAO,GAAG++H,UACvB,CACAD,EAAa7yC,EAAKonC,OAAOrzH,GAAO,GAChC,KACF,CAGF,OAGA,SAAeyW,GACb,IAAKqoH,EACH,OAAOpK,EAAIj+G,GAGb,OAAIqoH,EAAWE,UAAkBC,EAASxoH,IAC1CkD,EAAUsyE,EAAKtwD,OAAOhiB,QAAQ0tC,SAC5B+zE,GACEnvC,EAAKiqC,eAAe,CAClBv2H,MAAOm/H,EAAWv7H,IAClBA,IAAK0oF,EAAK3qE,UAIhBotD,EAAQyjD,MAAM,YACdzjD,EAAQyjD,MAAM,eACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,eACb3jD,EAAQ2jD,KAAK,YACN6M,EACT,EAGA,SAASA,EAAczoH,GAErB,OAAa,KAATA,EACKi4D,EAAQ6jD,QACb4M,GACAh/C,EACAxmE,EAAUwmE,EAAK8+C,EAHVvwD,CAILj4D,GAGS,KAATA,EACKi4D,EAAQ6jD,QACb6M,GACAj/C,EACAxmE,EACI+0D,EAAQ6jD,QAAQ8M,GAA6Bl/C,EAAI8+C,GACjDA,EALCvwD,CAMLj4D,GAGGkD,EAAUwmE,EAAG1pE,GAAQwoH,EAASxoH,EACvC,CAGA,SAASwoH,EAASxoH,GAEhB,OADAqoH,EAAWC,WAAY,EAChBrK,EAAIj+G,EACb,CACF,EA1NEyiH,UA6CF,SAA2B7F,EAAQ1lD,GACjC,IAIIzqD,EAGA7P,EAGAitF,EAGA7yF,EAbAzN,EAAQqzH,EAAOl0H,OACf8iB,EAAS,EAcb,KAAOjiB,KAGL,GAFAkjB,EAAQmwG,EAAOrzH,GAAO,GAElBqT,EAAM,CAER,GACiB,SAAf6P,EAAM9iB,MACU,cAAf8iB,EAAM9iB,MAAwB8iB,EAAM87G,UAErC,MAIuB,UAArB3L,EAAOrzH,GAAO,IAAiC,cAAfkjB,EAAM9iB,OACxC8iB,EAAM87G,WAAY,EAEtB,MAAO,GAAI1+B,GACT,GACuB,UAArB+yB,EAAOrzH,GAAO,KACE,eAAfkjB,EAAM9iB,MAAwC,cAAf8iB,EAAM9iB,QACrC8iB,EAAM67G,YAEP1rH,EAAOrT,EAEY,cAAfkjB,EAAM9iB,MAAsB,CAC9B6hB,EAAS,EACT,KACF,MAEsB,aAAfiB,EAAM9iB,OACfkgG,EAAQtgG,GAIZ,IAAMo1G,EAAQ,CACZh1G,KAA+B,cAAzBizH,EAAOhgH,GAAM,GAAGjT,KAAuB,OAAS,QACtDT,MAAO7C,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOhgH,GAAM,GAAG1T,OACzC4D,IAAKzG,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOA,EAAOl0H,OAAS,GAAG,GAAGoE,MAEhDwJ,EAAQ,CACZ3M,KAAM,QACNT,MAAO7C,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOhgH,GAAM,GAAG1T,OACzC4D,IAAKzG,OAAO6gC,OAAO,CAAC,EAAG01F,EAAO/yB,GAAO,GAAG/8F,MAEpCiV,EAAO,CACXpY,KAAM,YACNT,MAAO7C,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOhgH,EAAO4O,EAAS,GAAG,GAAG1e,KACtDA,IAAKzG,OAAO6gC,OAAO,CAAC,EAAG01F,EAAO/yB,EAAQ,GAAG,GAAG3gG,QA+B9C,OAxBA8N,EAAQtN,GALRsN,EAAQ,CACN,CAAC,QAAS2nG,EAAOznC,GACjB,CAAC,QAAS5gE,EAAO4gE,IAGC0lD,EAAOtzH,MAAMsT,EAAO,EAAGA,EAAO4O,EAAS,IAE3DxU,EAAQtN,GAAKsN,EAAO,CAAC,CAAC,QAAS+K,EAAMm1D,KAErClgE,EAAQtN,GACNsN,EACA8oH,GACE5oD,EAAQhyC,OAAOu1F,WAAWoO,WAAWt3B,KACrCqrB,EAAOtzH,MAAMsT,EAAO4O,EAAS,EAAGq+E,EAAQ,GACxC3yB,IAIJlgE,EAAQtN,GAAKsN,EAAO,CAClB,CAAC,OAAQ+K,EAAMm1D,GACf0lD,EAAO/yB,EAAQ,GACf+yB,EAAO/yB,EAAQ,GACf,CAAC,OAAQvzF,EAAO4gE,KAGlBlgE,EAAQtN,GAAKsN,EAAO4lH,EAAOtzH,MAAMugG,EAAQ,IAEzC7yF,EAAQtN,GAAKsN,EAAO,CAAC,CAAC,OAAQ2nG,EAAOznC,KACrC7pC,GAAOuvF,EAAQhgH,EAAMggH,EAAOl0H,OAAQsO,GAC7B4lH,CACT,EA3IEkD,WAmBF,SAA4BlD,GAC1B,IAGInwG,EAHAljB,GAAS,EAKb,OAASA,EAAQqzH,EAAOl0H,QAIL,gBAHjB+jB,EAAQmwG,EAAOrzH,GAAO,IAGdI,MACS,cAAf8iB,EAAM9iB,MACS,aAAf8iB,EAAM9iB,OAGNizH,EAAOvvF,OAAO9jC,EAAQ,EAAkB,eAAfkjB,EAAM9iB,KAAwB,EAAI,GAC3D8iB,EAAM9iB,KAAO,OACbJ,KAIJ,OAAOqzH,CACT,GArCM8L,GAAoB,CACxB/4B,SAuNF,SAA0B13B,EAASyR,EAAIu0C,GACrC,OAGA,SAAej+G,GAKb,OAJAi4D,EAAQyjD,MAAM,YACdzjD,EAAQyjD,MAAM,kBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,kBACN8I,GAAkBzsD,EAASr7D,EACpC,EAGA,SAASA,EAAKoD,GACZ,OAAa,KAATA,EACKlT,EAAIkT,GAGNwjH,GACLvrD,EACA6wD,EACA7K,EACA,sBACA,6BACA,mCACA,yBACA,4BACA,GATKuF,CAULxjH,EACJ,CAGA,SAAS8oH,EAAiB9oH,GACxB,OAAOm7G,GAA0Bn7G,GAC7B0kH,GAAkBzsD,EAAS8wD,EAA3BrE,CAAoC1kH,GACpClT,EAAIkT,EACV,CAGA,SAAS+oH,EAAQ/oH,GACf,OAAa,KAATA,GAAwB,KAATA,GAAwB,KAATA,EACzBskH,GACLrsD,EACAysD,GAAkBzsD,EAASnrE,GAC3BmxH,EACA,gBACA,sBACA,sBANKqG,CAOLtkH,GAGGlT,EAAIkT,EACb,CAGA,SAASlT,EAAIkT,GACX,OAAa,KAATA,GACFi4D,EAAQyjD,MAAM,kBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,kBACb3jD,EAAQ2jD,KAAK,YACNlyC,GAGFu0C,EAAIj+G,EACb,CACF,GArRM2oH,GAAyB,CAC7Bh5B,SAuRF,SAA+B13B,EAASyR,EAAIu0C,GAC1C,IAAMzoC,EAAOhyE,KACb,OAGA,SAAexD,GACb,OAAOmkH,GAAan9H,KAClBwuF,EACAvd,EACA+wD,EACA/K,EACA,YACA,kBACA,kBAPKkG,CAQLnkH,EACJ,EAGA,SAASgpH,EAAWhpH,GAClB,OAAOw1E,EAAKtwD,OAAOhiB,QAAQ0tC,SACzB+zE,GACEnvC,EAAKiqC,eAAejqC,EAAKonC,OAAOpnC,EAAKonC,OAAOl0H,OAAS,GAAG,IAAIY,MAAM,GAAI,KAGtEogF,EAAG1pE,GACHi+G,EAAIj+G,EACV,CACF,GA9SM4oH,GAA8B,CAClCj5B,SAgTF,SAAoC13B,EAASyR,EAAIu0C,GAC/C,OAGA,SAAej+G,GAKb,OAJAi4D,EAAQyjD,MAAM,aACdzjD,EAAQyjD,MAAM,mBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,mBACNh/G,CACT,EAGA,SAASA,EAAKoD,GACZ,OAAa,KAATA,GACFi4D,EAAQyjD,MAAM,mBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,mBACb3jD,EAAQ2jD,KAAK,aACNlyC,GAGFu0C,EAAIj+G,EACb,CACF,GCtWO,IAAMipH,GAAkB,CAC7BvhI,KAAM,kBACNioG,SAKF,SAAiC13B,EAASyR,EAAIu0C,GAC5C,IAAMzoC,EAAOhyE,KACb,OAGA,SAAexD,GAKb,OAJAi4D,EAAQyjD,MAAM,cACdzjD,EAAQyjD,MAAM,oBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,oBACNh/G,CACT,EAGA,SAASA,EAAKoD,GACZ,OAAa,KAATA,GACFi4D,EAAQyjD,MAAM,eACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,eACb3jD,EAAQ2jD,KAAK,cACNnrB,GAGFwtB,EAAIj+G,EACb,CAGA,SAASywF,EAAMzwF,GAQb,OAAgB,KAATA,GAAe,2BAA4Bw1E,EAAKtwD,OAAOu1F,WAC1DwD,EAAIj+G,GACJ0pE,EAAG1pE,EACT,CACF,EA3CE8/G,WAAYsI,GAAStI,YCUhB,SAASoJ,GAAkBlpH,GAChC,OACW,OAATA,GACAm7G,GAA0Bn7G,IAC1Bs7G,GAAkBt7G,GAEX,EAGLu7G,GAAmBv7G,GACd,OADT,CAGF,CClBO,IAAMmpH,GAAY,CACvBzhI,KAAM,YACNioG,SAwKF,SAA2B13B,EAASyR,GAClC,IAKI8qB,EALE40B,EAAmB5lH,KAAK0hB,OAAOu1F,WAAW2O,iBAAiB73B,KAC3DxoG,EAAWya,KAAKza,SAChBwnG,EAAS24B,GAAkBngI,GAIjC,OAGA,SAAeiX,GAGb,OAFAi4D,EAAQyjD,MAAM,qBACdlnB,EAASx0F,EACF2iH,EAAS3iH,EAClB,EAGA,SAAS2iH,EAAS3iH,GAChB,GAAIA,IAASw0F,EAEX,OADAv8B,EAAQ0jD,QAAQ37G,GACT2iH,EAGT,IAAMl2G,EAAQwrD,EAAQ2jD,KAAK,qBACrBnrB,EAAQy4B,GAAkBlpH,GAC1BpD,GACH6zF,GAAoB,IAAVA,GAAeF,GAAW64B,EAAiBx4E,SAAS5wC,GAC3D6pF,GACH0G,GAAsB,IAAXA,GAAgBE,GAAU24B,EAAiBx4E,SAAS7nD,GAGlE,OAFA0jB,EAAM48G,MAAQ14B,QAAmB,KAAX6D,EAAgB53F,EAAOA,IAAS2zF,IAAW1G,IACjEp9E,EAAM68G,OAAS34B,QAAmB,KAAX6D,EAAgB3K,EAAQA,IAAU4G,IAAU7zF,IAC5D8sE,EAAG1pE,EACZ,CACF,EAxME8/G,WAQF,SAA6BlD,EAAQ1lD,GACnC,IAGIt6D,EAGA+hG,EAGA58F,EAGAwnH,EAGAhE,EAGAxN,EAGAyR,EAGAh+G,EAxBAjiB,GAAS,EA6Bb,OAASA,EAAQqzH,EAAOl0H,QAEtB,GACuB,UAArBk0H,EAAOrzH,GAAO,IACY,sBAA1BqzH,EAAOrzH,GAAO,GAAGI,MACjBizH,EAAOrzH,GAAO,GAAG+/H,OAIjB,IAFA1sH,EAAOrT,EAEAqT,KAEL,GACsB,SAApBggH,EAAOhgH,GAAM,IACY,sBAAzBggH,EAAOhgH,GAAM,GAAGjT,MAChBizH,EAAOhgH,GAAM,GAAGysH,OAChBnyD,EAAQuoD,eAAe7C,EAAOhgH,GAAM,IAAI2K,WAAW,KACjD2vD,EAAQuoD,eAAe7C,EAAOrzH,GAAO,IAAIge,WAAW,GACtD,CAKA,IACGq1G,EAAOhgH,GAAM,GAAG0sH,QAAU1M,EAAOrzH,GAAO,GAAG8/H,SAC3CzM,EAAOrzH,GAAO,GAAGuD,IAAI0e,OAASoxG,EAAOrzH,GAAO,GAAGL,MAAMsiB,QAAU,MAE7DoxG,EAAOhgH,GAAM,GAAG9P,IAAI0e,OACnBoxG,EAAOhgH,GAAM,GAAG1T,MAAMsiB,OACtBoxG,EAAOrzH,GAAO,GAAGuD,IAAI0e,OACrBoxG,EAAOrzH,GAAO,GAAGL,MAAMsiB,QACzB,GAGF,SAGFusG,EACE6E,EAAOhgH,GAAM,GAAG9P,IAAI0e,OAASoxG,EAAOhgH,GAAM,GAAG1T,MAAMsiB,OAAS,GAC5DoxG,EAAOrzH,GAAO,GAAGuD,IAAI0e,OAASoxG,EAAOrzH,GAAO,GAAGL,MAAMsiB,OAAS,EAC1D,EACA,EACN,IAAMtiB,EAAQ7C,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOhgH,GAAM,GAAG9P,KAC1CA,EAAMzG,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOrzH,GAAO,GAAGL,OAC/CugI,GAAUvgI,GAAQ6uH,GAClB0R,GAAU38H,EAAKirH,GACfwR,EAAkB,CAChB5/H,KAAMouH,EAAM,EAAI,iBAAmB,mBACnC7uH,MAAAA,EACA4D,IAAKzG,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOhgH,GAAM,GAAG9P,MAEzCy4H,EAAkB,CAChB57H,KAAMouH,EAAM,EAAI,iBAAmB,mBACnC7uH,MAAO7C,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOrzH,GAAO,GAAGL,OAC1C4D,IAAAA,GAEFiV,EAAO,CACLpY,KAAMouH,EAAM,EAAI,aAAe,eAC/B7uH,MAAO7C,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOhgH,GAAM,GAAG9P,KACzCA,IAAKzG,OAAO6gC,OAAO,CAAC,EAAG01F,EAAOrzH,GAAO,GAAGL,QAE1Cy1G,EAAQ,CACNh1G,KAAMouH,EAAM,EAAI,SAAW,WAC3B7uH,MAAO7C,OAAO6gC,OAAO,CAAC,EAAGqiG,EAAgBrgI,OACzC4D,IAAKzG,OAAO6gC,OAAO,CAAC,EAAGq+F,EAAgBz4H,MAEzC8vH,EAAOhgH,GAAM,GAAG9P,IAAMzG,OAAO6gC,OAAO,CAAC,EAAGqiG,EAAgBrgI,OACxD0zH,EAAOrzH,GAAO,GAAGL,MAAQ7C,OAAO6gC,OAAO,CAAC,EAAGq+F,EAAgBz4H,KAC3D08H,EAAa,GAET5M,EAAOhgH,GAAM,GAAG9P,IAAI0e,OAASoxG,EAAOhgH,GAAM,GAAG1T,MAAMsiB,SACrDg+G,EAAa9/H,GAAK8/H,EAAY,CAC5B,CAAC,QAAS5M,EAAOhgH,GAAM,GAAIs6D,GAC3B,CAAC,OAAQ0lD,EAAOhgH,GAAM,GAAIs6D,MAI9BsyD,EAAa9/H,GAAK8/H,EAAY,CAC5B,CAAC,QAAS7qB,EAAOznC,GACjB,CAAC,QAASqyD,EAAiBryD,GAC3B,CAAC,OAAQqyD,EAAiBryD,GAC1B,CAAC,QAASn1D,EAAMm1D,KAGlBsyD,EAAa9/H,GACX8/H,EACA1J,GACE5oD,EAAQhyC,OAAOu1F,WAAWoO,WAAWt3B,KACrCqrB,EAAOtzH,MAAMsT,EAAO,EAAGrT,GACvB2tE,IAIJsyD,EAAa9/H,GAAK8/H,EAAY,CAC5B,CAAC,OAAQznH,EAAMm1D,GACf,CAAC,QAASquD,EAAiBruD,GAC3B,CAAC,OAAQquD,EAAiBruD,GAC1B,CAAC,OAAQynC,EAAOznC,KAGd0lD,EAAOrzH,GAAO,GAAGuD,IAAI0e,OAASoxG,EAAOrzH,GAAO,GAAGL,MAAMsiB,QACvDA,EAAS,EACTg+G,EAAa9/H,GAAK8/H,EAAY,CAC5B,CAAC,QAAS5M,EAAOrzH,GAAO,GAAI2tE,GAC5B,CAAC,OAAQ0lD,EAAOrzH,GAAO,GAAI2tE,MAG7B1rD,EAAS,EAGX6hB,GAAOuvF,EAAQhgH,EAAO,EAAGrT,EAAQqT,EAAO,EAAG4sH,GAC3CjgI,EAAQqT,EAAO4sH,EAAW9gI,OAAS8iB,EAAS,EAC5C,KACF,CAKNjiB,GAAS,EAET,OAASA,EAAQqzH,EAAOl0H,QACQ,sBAA1Bk0H,EAAOrzH,GAAO,GAAGI,OACnBizH,EAAOrzH,GAAO,GAAGI,KAAO,QAI5B,OAAOizH,CACT,GAgDA,SAAS6M,GAAU3V,EAAOtoG,GACxBsoG,EAAMnuG,QAAU6F,EAChBsoG,EAAMtoG,QAAUA,EAChBsoG,EAAM2M,cAAgBj1G,CACxB,CC7NO,IAAMk+G,GAAW,CACtBhiI,KAAM,WACNioG,SAIF,SAA0B13B,EAASyR,EAAIu0C,GACrC,IAAIhgH,EAAO,EACX,OAGA,SAAe+B,GAMb,OALAi4D,EAAQyjD,MAAM,YACdzjD,EAAQyjD,MAAM,kBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,kBACb3jD,EAAQyjD,MAAM,oBACP9+G,CACT,EAGA,SAASA,EAAKoD,GACZ,OAAI26G,GAAW36G,IACbi4D,EAAQ0jD,QAAQ37G,GACT2pH,GAGF1O,GAAWj7G,GAAQ4pH,EAAW5pH,GAAQi+G,EAAIj+G,EACnD,CAGA,SAAS2pH,EAAmB3pH,GAC1B,OAAgB,KAATA,GAAwB,KAATA,GAAwB,KAATA,GAAe+6G,GAAkB/6G,GAClE6pH,EAAyB7pH,GACzB4pH,EAAW5pH,EACjB,CAGA,SAAS6pH,EAAyB7pH,GAChC,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT8pH,IAIG,KAAT9pH,GAAwB,KAATA,GAAwB,KAATA,GAAe+6G,GAAkB/6G,KAChE/B,IAAS,IAETg6D,EAAQ0jD,QAAQ37G,GACT6pH,GAGFD,EAAW5pH,EACpB,CAGA,SAAS8pH,EAAU9pH,GACjB,OAAa,KAATA,GACFi4D,EAAQ2jD,KAAK,oBACN9uH,EAAIkT,IAGA,OAATA,GAA0B,KAATA,GAAwB,KAATA,GAAek7G,GAAal7G,GACvDi+G,EAAIj+G,IAGbi4D,EAAQ0jD,QAAQ37G,GACT8pH,EACT,CAGA,SAASF,EAAW5pH,GAClB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GAChB/B,EAAO,EACA8rH,GAGL9O,GAAWj7G,IACbi4D,EAAQ0jD,QAAQ37G,GACT4pH,GAGF3L,EAAIj+G,EACb,CAGA,SAAS+pH,EAAiB/pH,GACxB,OAAO+6G,GAAkB/6G,GAAQgqH,EAAWhqH,GAAQi+G,EAAIj+G,EAC1D,CAGA,SAASgqH,EAAWhqH,GAClB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GAChB/B,EAAO,EACA8rH,GAGI,KAAT/pH,GAEFi4D,EAAQ2jD,KAAK,oBAAoBjyH,KAAO,gBACjCmD,EAAIkT,IAGNiqH,EAAWjqH,EACpB,CAGA,SAASiqH,EAAWjqH,GAClB,OAAc,KAATA,GAAe+6G,GAAkB/6G,KAAU/B,IAAS,IACvDg6D,EAAQ0jD,QAAQ37G,GACA,KAATA,EAAciqH,EAAaD,GAG7B/L,EAAIj+G,EACb,CAGA,SAASlT,EAAIkT,GAKX,OAJAi4D,EAAQyjD,MAAM,kBACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,kBACb3jD,EAAQ2jD,KAAK,YACNlyC,CACT,CACF,GC3HO,IAAMwgD,GAAW,CACtBxiI,KAAM,WACNioG,SAIF,SAA0B13B,EAASyR,EAAIu0C,GACrC,IAGIzpB,EAGAmiB,EAGAptH,EAGAi8C,EAZEgwC,EAAOhyE,KAab,OAGA,SAAexD,GAIb,OAHAi4D,EAAQyjD,MAAM,YACdzjD,EAAQyjD,MAAM,gBACdzjD,EAAQ0jD,QAAQ37G,GACTpD,CACT,EAGA,SAASA,EAAKoD,GACZ,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTmqH,GAGI,KAATnqH,GACFi4D,EAAQ0jD,QAAQ37G,GACT6lH,GAGI,KAAT7lH,GACFi4D,EAAQ0jD,QAAQ37G,GACT6kF,GAGL81B,GAAW36G,IACbi4D,EAAQ0jD,QAAQ37G,GACToqH,GAGFnM,EAAIj+G,EACb,CAGA,SAASmqH,EAAgBnqH,GACvB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTqqH,GAGI,KAATrqH,GACFi4D,EAAQ0jD,QAAQ37G,GAChB22G,EAAS,SACTptH,EAAQ,EACD+gI,GAGL3P,GAAW36G,IACbi4D,EAAQ0jD,QAAQ37G,GACTiH,GAGFg3G,EAAIj+G,EACb,CAGA,SAASqqH,EAAYrqH,GACnB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTuqH,GAGFtM,EAAIj+G,EACb,CAGA,SAASuqH,EAAavqH,GACpB,OAAa,OAATA,GAA0B,KAATA,EACZi+G,EAAIj+G,GAGA,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTwqH,GAGFzjH,EAAQ/G,EACjB,CAGA,SAASwqH,EAAiBxqH,GACxB,OAAa,OAATA,GAA0B,KAATA,EACZi+G,EAAIj+G,GAGN+G,EAAQ/G,EACjB,CAGA,SAAS+G,EAAQ/G,GACf,OAAa,OAATA,EACKi+G,EAAIj+G,GAGA,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTyqH,GAGLrP,GAAmBp7G,IACrBwlC,EAAcz+B,EACP2jH,EAAa1qH,KAGtBi4D,EAAQ0jD,QAAQ37G,GACT+G,EACT,CAGA,SAAS0jH,EAAazqH,GACpB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTlT,GAGFia,EAAQ/G,EACjB,CAGA,SAASsqH,EAAUtqH,GACjB,OAAIA,IAAS22G,EAAOpvG,WAAWhe,MAC7B0uE,EAAQ0jD,QAAQ37G,GACTzW,IAAUotH,EAAOjuH,OAAS0qG,EAAQk3B,GAGpCrM,EAAIj+G,EACb,CAGA,SAASozF,EAAMpzF,GACb,OAAa,OAATA,EACKi+G,EAAIj+G,GAGA,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT2qH,GAGLvP,GAAmBp7G,IACrBwlC,EAAc4tD,EACPs3B,EAAa1qH,KAGtBi4D,EAAQ0jD,QAAQ37G,GACTozF,EACT,CAGA,SAASu3B,EAAW3qH,GAClB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT4qH,GAGFx3B,EAAMpzF,EACf,CAGA,SAAS4qH,EAAS5qH,GAChB,OAAa,KAATA,EACKlT,EAAIkT,GAGA,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT4qH,GAGFx3B,EAAMpzF,EACf,CAGA,SAASiH,EAAYjH,GACnB,OAAa,OAATA,GAA0B,KAATA,EACZlT,EAAIkT,GAGTo7G,GAAmBp7G,IACrBwlC,EAAcv+B,EACPyjH,EAAa1qH,KAGtBi4D,EAAQ0jD,QAAQ37G,GACTiH,EACT,CAGA,SAAS49E,EAAY7kF,GACnB,OAAa,OAATA,EACKi+G,EAAIj+G,GAGA,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACT6qH,GAGLzP,GAAmBp7G,IACrBwlC,EAAcq/C,EACP6lC,EAAa1qH,KAGtBi4D,EAAQ0jD,QAAQ37G,GACT6kF,EACT,CAGA,SAASgmC,EAAiB7qH,GACxB,OAAgB,KAATA,EAAclT,EAAIkT,GAAQ6kF,EAAY7kF,EAC/C,CAGA,SAAS6lH,EAAc7lH,GACrB,OAAI26G,GAAW36G,IACbi4D,EAAQ0jD,QAAQ37G,GACT8qH,GAGF7M,EAAIj+G,EACb,CAGA,SAAS8qH,EAAS9qH,GAChB,OAAa,KAATA,GAAe+6G,GAAkB/6G,IACnCi4D,EAAQ0jD,QAAQ37G,GACT8qH,GAGFC,EAAgB/qH,EACzB,CAGA,SAAS+qH,EAAgB/qH,GACvB,OAAIo7G,GAAmBp7G,IACrBwlC,EAAculF,EACPL,EAAa1qH,IAGlBq7G,GAAcr7G,IAChBi4D,EAAQ0jD,QAAQ37G,GACT+qH,GAGFj+H,EAAIkT,EACb,CAGA,SAASoqH,EAAQpqH,GACf,OAAa,KAATA,GAAe+6G,GAAkB/6G,IACnCi4D,EAAQ0jD,QAAQ37G,GACToqH,GAGI,KAATpqH,GAAwB,KAATA,GAAem7G,GAA0Bn7G,GACnDgrH,EAAehrH,GAGjBi+G,EAAIj+G,EACb,CAGA,SAASgrH,EAAehrH,GACtB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTlT,GAGI,KAATkT,GAAwB,KAATA,GAAe26G,GAAW36G,IAC3Ci4D,EAAQ0jD,QAAQ37G,GACTirH,GAGL7P,GAAmBp7G,IACrBwlC,EAAcwlF,EACPN,EAAa1qH,IAGlBq7G,GAAcr7G,IAChBi4D,EAAQ0jD,QAAQ37G,GACTgrH,GAGFl+H,EAAIkT,EACb,CAGA,SAASirH,EAAqBjrH,GAC5B,OACW,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACA+6G,GAAkB/6G,IAElBi4D,EAAQ0jD,QAAQ37G,GACTirH,GAGFC,EAA0BlrH,EACnC,CAGA,SAASkrH,EAA0BlrH,GACjC,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GACTmrH,GAGL/P,GAAmBp7G,IACrBwlC,EAAc0lF,EACPR,EAAa1qH,IAGlBq7G,GAAcr7G,IAChBi4D,EAAQ0jD,QAAQ37G,GACTkrH,GAGFF,EAAehrH,EACxB,CAGA,SAASmrH,EAA4BnrH,GACnC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,EAEOi+G,EAAIj+G,GAGA,KAATA,GAAwB,KAATA,GACjBi4D,EAAQ0jD,QAAQ37G,GAChBw0F,EAASx0F,EACForH,GAGLhQ,GAAmBp7G,IACrBwlC,EAAc2lF,EACPT,EAAa1qH,IAGlBq7G,GAAcr7G,IAChBi4D,EAAQ0jD,QAAQ37G,GACTmrH,IAGTlzD,EAAQ0jD,QAAQ37G,GAChBw0F,OAASnpG,EACFggI,EACT,CAGA,SAASD,EAA4BprH,GACnC,OAAIA,IAASw0F,GACXv8B,EAAQ0jD,QAAQ37G,GACTsrH,GAGI,OAATtrH,EACKi+G,EAAIj+G,GAGTo7G,GAAmBp7G,IACrBwlC,EAAc4lF,EACPV,EAAa1qH,KAGtBi4D,EAAQ0jD,QAAQ37G,GACTorH,EACT,CAGA,SAASE,EAAiCtrH,GACxC,OAAa,KAATA,GAAwB,KAATA,GAAem7G,GAA0Bn7G,GACnDgrH,EAAehrH,GAGjBi+G,EAAIj+G,EACb,CAGA,SAASqrH,EAA8BrrH,GACrC,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,GACS,KAATA,EAEOi+G,EAAIj+G,GAGA,KAATA,GAAem7G,GAA0Bn7G,GACpCgrH,EAAehrH,IAGxBi4D,EAAQ0jD,QAAQ37G,GACTqrH,EACT,CAKA,SAASX,EAAa1qH,GAKpB,OAJAi4D,EAAQ2jD,KAAK,gBACb3jD,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACNJ,GACLvjD,EACA+sD,EACA,aACAxvC,EAAKtwD,OAAOu1F,WAAWyD,QAAQ3sB,KAAK3gD,SAAS,qBACzCvlD,EACA,EAER,CAGA,SAAS25H,EAAYhlH,GAEnB,OADAi4D,EAAQyjD,MAAM,gBACPl2E,EAAYxlC,EACrB,CAGA,SAASlT,EAAIkT,GACX,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,gBACb3jD,EAAQ2jD,KAAK,YACNlyC,GAGFu0C,EAAIj+G,EACb,CACF,GCtdO,IAAMurH,GAAiB,CAC5B7jI,KAAM,iBACNioG,SAKF,SAAgC13B,EAASyR,EAAIu0C,GAC3C,IAAMzoC,EAAOhyE,KACb,OAGA,SAAexD,GAMb,OALAi4D,EAAQyjD,MAAM,aACdzjD,EAAQyjD,MAAM,eACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,eACb3jD,EAAQ2jD,KAAK,aACNnrB,CACT,EAGA,SAASA,EAAMzwF,GAQb,OAAgB,KAATA,GAAe,2BAA4Bw1E,EAAKtwD,OAAOu1F,WAC1DwD,EAAIj+G,GACJ0pE,EAAG1pE,EACT,CACF,EA/BE8/G,WAAYsI,GAAStI,YCHhB,IAAM0L,GAAkB,CAC7B9jI,KAAM,kBACNioG,SAIF,SAAiC13B,EAASyR,EAAIu0C,GAC5C,OAGA,SAAej+G,GAIb,OAHAi4D,EAAQyjD,MAAM,mBACdzjD,EAAQyjD,MAAM,gBACdzjD,EAAQ0jD,QAAQ37G,GACTpD,CACT,EAGA,SAASA,EAAKoD,GACZ,OAAIo7G,GAAmBp7G,IACrBi4D,EAAQ2jD,KAAK,gBACb3jD,EAAQ2jD,KAAK,mBACNlyC,EAAG1pE,IAGLi+G,EAAIj+G,EACb,CACF,GCxBO,mBAAMyrH,GAAW,CACtB/jI,KAAM,WACNioG,SA0EF,SAA0B13B,EAASyR,EAAIu0C,GACrC,IAIIhgH,EAGAwO,EANA+6G,EAAW,EAOf,OAGA,SAAexnH,GAGb,OAFAi4D,EAAQyjD,MAAM,YACdzjD,EAAQyjD,MAAM,oBACP6N,EAAgBvpH,EACzB,EAGA,SAASupH,EAAgBvpH,GACvB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GAChBwnH,IACO+B,IAGTtxD,EAAQ2jD,KAAK,oBACNn0B,EAAIznF,GACb,CAGA,SAASynF,EAAIznF,GAEX,OAAa,OAATA,EACKi+G,EAAIj+G,GAIA,KAATA,GACFyM,EAAQwrD,EAAQyjD,MAAM,oBACtBz9G,EAAO,EACAsnH,EAAgBvlH,IAGZ,KAATA,GACFi4D,EAAQyjD,MAAM,SACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,SACNn0B,GAGL2zB,GAAmBp7G,IACrBi4D,EAAQyjD,MAAM,cACdzjD,EAAQ0jD,QAAQ37G,GAChBi4D,EAAQ2jD,KAAK,cACNn0B,IAGTxvB,EAAQyjD,MAAM,gBACPxuH,EAAK8S,GACd,CAIA,SAAS9S,EAAK8S,GACZ,OACW,OAATA,GACS,KAATA,GACS,KAATA,GACAo7G,GAAmBp7G,IAEnBi4D,EAAQ2jD,KAAK,gBACNn0B,EAAIznF,KAGbi4D,EAAQ0jD,QAAQ37G,GACT9S,EACT,CAIA,SAASq4H,EAAgBvlH,GAEvB,OAAa,KAATA,GACFi4D,EAAQ0jD,QAAQ37G,GAChB/B,IACOsnH,GAGLtnH,IAASupH,GACXvvD,EAAQ2jD,KAAK,oBACb3jD,EAAQ2jD,KAAK,YACNlyC,EAAG1pE,KAGZyM,EAAM9iB,KAAO,eACNuD,EAAK8S,GACd,CACF,EA3KEwxD,QAKF,SAAyBorD,GACvB,IAIIrzH,EAGAmyH,EAPAgQ,EAAgB9O,EAAOl0H,OAAS,EAChCijI,EAAiB,EAQrB,IACsC,eAAnC/O,EAAO+O,GAAgB,GAAGhiI,MACU,UAAnCizH,EAAO+O,GAAgB,GAAGhiI,QACO,eAAlCizH,EAAO8O,GAAe,GAAG/hI,MACU,UAAlCizH,EAAO8O,GAAe,GAAG/hI,MAI3B,IAFAJ,EAAQoiI,IAECpiI,EAAQmiI,GACf,GAA8B,iBAA1B9O,EAAOrzH,GAAO,GAAGI,KAAyB,CAE5CizH,EAAO+O,GAAgB,GAAGhiI,KAAO,kBACjCizH,EAAO8O,GAAe,GAAG/hI,KAAO,kBAChCgiI,GAAkB,EAClBD,GAAiB,EACjB,KACF,CAIJniI,EAAQoiI,EAAiB,EACzBD,IAEA,OAASniI,GAASmiI,QACFrgI,IAAVqwH,EACEnyH,IAAUmiI,GAA2C,eAA1B9O,EAAOrzH,GAAO,GAAGI,OAC9C+xH,EAAQnyH,GAGVA,IAAUmiI,GACgB,eAA1B9O,EAAOrzH,GAAO,GAAGI,OAEjBizH,EAAOlB,GAAO,GAAG/xH,KAAO,eAEpBJ,IAAUmyH,EAAQ,IACpBkB,EAAOlB,GAAO,GAAG5uH,IAAM8vH,EAAOrzH,EAAQ,GAAG,GAAGuD,IAC5C8vH,EAAOvvF,OAAOquF,EAAQ,EAAGnyH,EAAQmyH,EAAQ,GACzCgQ,GAAiBniI,EAAQmyH,EAAQ,EACjCnyH,EAAQmyH,EAAQ,GAGlBA,OAAQrwH,GAIZ,OAAOuxH,CACT,EA5DE7zH,SA+DF,SAAkBiX,GAEhB,OACW,KAATA,GACgD,oBAAhDwD,KAAKo5G,OAAOp5G,KAAKo5G,OAAOl0H,OAAS,GAAG,GAAGiB,IAE3C,GCxDO,IAAMif,IAAQ,QAClB,GAAKnS,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAKA,IAAI,KACT,GAAK8sH,IAAU,IAILxH,GAAiB,KAC3B,GAAK94G,IAIK08G,IAAW,SACpB,EAAImF,IAAY,MAChB,EAAIA,IAAY,KACjB,GAAKA,IAAY,IAIP19B,IAAI,QACd,GAAK89B,IAAU,KACf,GAAKxC,IAAa,KAClB,GAAK,CAAC2C,GAAiB3C,KAAc,KACrC,GAAKiD,IAAQ,KACb,GAAKN,IAAe,KACpB,GAAK3C,IAAa,KAClB,GAAK2E,IAAU,KACf,IAAMA,IAAU,IAINx/G,IAAM,QAChB,GAAKmgH,IAAkB,KACvB,GAAKE,IAAe,IAIVnmH,IAAI,SACb,EAAIomH,IAAU,MACd,EAAIA,IAAU,MACd,EAAIA,IAAU,KACf,GAAKc,IAAe,KACpB,GAAKjB,IAAkB,KACvB,GAAKmB,IAAS,KACd,GAAK,CAACO,GAAUQ,KAAS,KACzB,GAAKqB,IAAc,KACnB,GAAK,CAACC,GAAiBtD,KAAgB,KACvC,GAAKE,IAAQ,KACb,GAAKe,IAAS,KACd,GAAKsC,IAAQ,IAIH5C,GAAa,CACxBt3B,KAAM,CAAC43B,GAAWyC,KAIPxC,GAAmB,CAC9B73B,KAAM,CAAC,GAAI,KAIA2sB,GAAU,CACrB3sB,KAAM,ICzFR,IAAMpoG,GAAS,cCJR,SAAS0iI,GAAgChkI,EAAO0vD,GACrD,IAAMv3C,EAAO3T,OAAO+e,SAASvjB,EAAO0vD,GAEpC,OAEEv3C,EAAO,GACE,KAATA,GACCA,EAAO,IAAMA,EAAO,IACpBA,EAAO,KAAOA,EAAO,KACrBA,EAAO,OAASA,EAAO,OACvBA,EAAO,OAASA,EAAO,OACL,SAAX,MAAPA,IACkB,SAAX,MAAPA,IACDA,EAAO,QAEA,SAGF/T,OAAOoc,aAAarI,EAC7B,CC3BA,IAAM8rH,GACJ,oEAWK,SAASC,GAAalkI,GAC3B,OAAOA,EAAM6F,QAAQo+H,GAA4Bh2C,GACnD,CAQA,SAASA,GAAO5nF,EAAI89H,EAAIC,GACtB,GAAID,EAEF,OAAOA,EAKT,GAAa,KAFAC,EAAG1kH,WAAW,GAEV,CACf,IAAMukG,EAAOmgB,EAAG1kH,WAAW,GACrB2kH,EAAe,MAATpgB,GAAyB,KAATA,EAC5B,OAAO+f,GAAgCI,EAAG3iI,MAAM4iI,EAAM,EAAI,GAAIA,EAAM,GAAK,GAC3E,CAEA,OAAOnE,GAA8BkE,IAAO/9H,CAC9C,CCqDA,IAAMpD,GAAM,CAAC,EAAEvE,eAOF4lI,GAcX,SAAUtkI,EAAOovH,EAAUxvH,GAMzB,MALwB,kBAAbwvH,IACTxvH,EAAUwvH,EACVA,OAAW5rH,GAejB,WAAgC,IAAd5D,EAAU,UAAH,6CAAG,CAAC,EAGrB2kI,EAASC,GACb,CACEC,WAAY,GACZC,eAAgB,CACd,WACA,WACA,UACA,YACA,UAEF7Q,MAAO,CACLgO,SAAU8C,EAAO5rH,IACjB6rH,iBAAkBC,EAClBC,cAAeD,EACfE,WAAYJ,EAAO73B,IACnB4uB,WAAYiJ,EAAOjJ,GACnB2E,gBAAiBwE,EACjB1E,mBAAoB0E,EACpBrF,WAAYmF,EAAOK,GACnBC,oBAAqBnW,EACrBoW,oBAAqBpW,EACrBmO,aAAc0H,EAAOK,EAAUlW,GAC/B8U,SAAUe,EAAOf,EAAU9U,GAC3BqW,aAAcN,EACdx/H,KAAMw/H,EACNO,cAAeP,EACfzpH,WAAYupH,EAAOvpH,GACnBiqH,4BAA6BvW,EAC7BwW,sBAAuBxW,EACvByW,sBAAuBzW,EACvB/O,SAAU4kB,EAAO5kB,GACjB4jB,gBAAiBgB,EAAOa,IACxBC,kBAAmBd,EAAOa,IAC1B1H,SAAU6G,EAAOhgI,GAAMmqH,GACvB4W,aAAcb,EACdxC,SAAUsC,EAAOhgI,GAAMmqH,GACvB6W,aAAcd,EACdznB,MAAOunB,EAAOvnB,IACd3uG,MAAOqgH,EACP/1G,KAAM4rH,EAAO5rH,IACb6sH,SAAUjB,EAAOiB,IACjBC,cAAeC,EACfC,YAAapB,EAAO/1H,GAAMo3H,GAC1BC,cAAetB,EAAO/1H,IACtB6uH,UAAWkH,EAAOlH,IAClB17G,UAAWmkH,EACXC,gBAAiBrX,EACjBsX,0BAA2BtX,EAC3BuX,oBAAqBvX,EACrBwX,cAAe3B,EAAO73B,IACtBy5B,OAAQ5B,EAAO4B,IACf1L,cAAe8J,EAAO9J,KAExB9G,KAAM,CACJgR,WAAYyB,IACZC,mBAAoBC,EACpB7E,SAAU2E,IACV1B,cAAe6B,EACf/B,iBAAkBgC,EAClBlL,WAAY8K,IACZK,qBAAsBC,EACtBC,oCAAqCC,EACrCC,gCAAiCD,EACjCE,wBAAyBC,EACzB3H,WAAYgH,EAAOY,GACnBC,gBAAiBC,EACjBrC,oBAAqBsC,EACrBrC,oBAAqBsC,EACrBpC,cAAe0B,EACf7J,aAAcuJ,EAAOiB,GACrB7D,SAAU4C,EAAOkB,GACjBvC,aAAc2B,EACdzhI,KAAMyhI,EACN1rH,WAAYorH,IACZnB,4BAA6BsC,EAC7BrC,sBAAuBsC,EACvBrC,sBAAuBsC,EACvB9nB,SAAUymB,IACV7C,gBAAiB6C,EAAOsB,GACxBrC,kBAAmBe,EAAOsB,GAC1BhK,SAAU0I,EAAOuB,GACjBrC,aAAcoB,EACdzE,SAAUmE,EAAOwB,GACjBrC,aAAcmB,EACd1pB,MAAOopB,EAAOyB,GACdx5H,MAAOy5H,EACPC,UAAWC,EACX9H,WAAY+H,EACZtvH,KAAMytH,EAAO8B,GACb1C,SAAUY,IACVT,YAAaS,IACbP,cAAeO,IACf/I,UAAW+I,IACXL,gBAAiBoC,EACjBnC,0BAA2BoC,EAC3BnC,oBAAqBoC,EACrBC,SAAUC,EACVrC,cAAeE,EAAOoC,GACtBC,0BAA2BC,EAC3BC,kBAAmBC,EACnBzC,OAAQC,IACR3L,cAAe2L,MAGnB5mI,EAAQqpI,iBAAmB,IAIvB5jI,EAAO,CAAC,EACd,OAAOmsH,EAMP,SAASA,EAAQuD,GA8Bf,IA5BA,IAAIpD,EAAO,CACT7vH,KAAM,OACNG,SAAU,IAON+tG,EAAa,GAGbk5B,EAAY,GAGZ75D,EAAU,CACd/wC,MAVY,CAACqzF,GAWb3hB,WAAAA,EACAu0B,OAAAA,EACA1Q,MAAAA,EACAE,KAAAA,EACAjF,OAAAA,EACAqa,OAAAA,EACAC,QAAAA,EACAC,QAAAA,GAEE3nI,GAAS,IAEJA,EAAQqzH,EAAOl0H,QAAQ,CAG9B,GAC4B,gBAA1Bk0H,EAAOrzH,GAAO,GAAGI,MACS,kBAA1BizH,EAAOrzH,GAAO,GAAGI,KAEjB,GAAyB,UAArBizH,EAAOrzH,GAAO,GAChBwnI,EAAUrnI,KAAKH,QAGfA,EAAQ4nI,EAAYvU,EADPmU,EAAU1qG,MACW98B,EAGxC,CAIA,IAFAA,GAAS,IAEAA,EAAQqzH,EAAOl0H,QAAQ,CAC9B,IAAM0oI,EAAUhF,EAAOxP,EAAOrzH,GAAO,IAEjCuB,GAAI9D,KAAKoqI,EAASxU,EAAOrzH,GAAO,GAAGI,OACrCynI,EAAQxU,EAAOrzH,GAAO,GAAGI,MAAM3C,KAC7BX,OAAO6gC,OACL,CACEu4F,eAAgB7C,EAAOrzH,GAAO,GAAGk2H,gBAEnCvoD,GAEF0lD,EAAOrzH,GAAO,GAGpB,CAEA,GAAIsuG,EAAWnvG,OAAS,EAAG,CACzB,IAAMy9E,EAAO0xB,EAAWA,EAAWnvG,OAAS,IAC5By9E,EAAK,IAAMkrD,IACnBrqI,KAAKkwE,OAAS7rE,EAAW86E,EAAK,GACxC,CAwBA,IAtBAqzC,EAAKzzG,SAAW,CACd7c,MAAO4qH,EACL8I,EAAOl0H,OAAS,EACZk0H,EAAO,GAAG,GAAG1zH,MACb,CACE8c,KAAM,EACNL,OAAQ,EACR6F,OAAQ,IAGhB1e,IAAKgnH,EACH8I,EAAOl0H,OAAS,EACZk0H,EAAOA,EAAOl0H,OAAS,GAAG,GAAGoE,IAC7B,CACEkZ,KAAM,EACNL,OAAQ,EACR6F,OAAQ,KAIlBjiB,GAAS,IAEAA,EAAQ6iI,EAAOE,WAAW5jI,QACjC8wH,EAAO4S,EAAOE,WAAW/iI,GAAOiwH,IAASA,EAG3C,OAAOA,CACT,CAQA,SAAS2X,EAAYvU,EAAQ1zH,EAAOR,GAiBlC,IAhBA,IAKI+kI,EAGAnP,EAGAgT,EAGAzO,EAdAt5H,EAAQL,EAAQ,EAChBqoI,GAAoB,EACpBC,GAAa,IAcRjoI,GAASb,GAAQ,CACxB,IAAM4X,EAAQs8G,EAAOrzH,GAuCrB,GApCoB,kBAAlB+W,EAAM,GAAG3W,MACS,gBAAlB2W,EAAM,GAAG3W,MACS,eAAlB2W,EAAM,GAAG3W,MAEQ,UAAb2W,EAAM,GACRixH,IAEAA,IAGF1O,OAAWx3H,GACgB,oBAAlBiV,EAAM,GAAG3W,KACD,UAAb2W,EAAM,MAENmtH,GACC5K,GACA0O,GACAD,IAEDA,EAAsB/nI,GAGxBs5H,OAAWx3H,GAGK,eAAlBiV,EAAM,GAAG3W,MACS,kBAAlB2W,EAAM,GAAG3W,MACS,mBAAlB2W,EAAM,GAAG3W,MACS,mBAAlB2W,EAAM,GAAG3W,MACS,6BAAlB2W,EAAM,GAAG3W,OAITk5H,OAAWx3H,IAITkmI,GACa,UAAbjxH,EAAM,IACY,mBAAlBA,EAAM,GAAG3W,OACY,IAAtB4nI,GACc,SAAbjxH,EAAM,KACa,kBAAlBA,EAAM,GAAG3W,MACU,gBAAlB2W,EAAM,GAAG3W,MACb,CACA,GAAI8jI,EAAU,CACZ,IAAIgE,EAAYloI,EAGhB,IAFA+0H,OAAYjzH,EAELomI,KAAa,CAClB,IAAMC,EAAY9U,EAAO6U,GAEzB,GACwB,eAAtBC,EAAU,GAAG/nI,MACS,oBAAtB+nI,EAAU,GAAG/nI,KACb,CACA,GAAqB,SAAjB+nI,EAAU,GAAe,SAEzBpT,IACF1B,EAAO0B,GAAW,GAAG30H,KAAO,kBAC5B6nI,GAAa,GAGfE,EAAU,GAAG/nI,KAAO,aACpB20H,EAAYmT,CACd,MAAO,GACiB,eAAtBC,EAAU,GAAG/nI,MACS,qBAAtB+nI,EAAU,GAAG/nI,MACS,+BAAtB+nI,EAAU,GAAG/nI,MACS,qBAAtB+nI,EAAU,GAAG/nI,MACS,mBAAtB+nI,EAAU,GAAG/nI,KAIb,KAEJ,CAGE2nI,KACEhT,GAAagT,EAAsBhT,KAGrCmP,EAASkE,SAAU,GAGrBlE,EAAS3gI,IAAMzG,OAAO6gC,OACpB,CAAC,EACDo3F,EAAY1B,EAAO0B,GAAW,GAAGp1H,MAAQoX,EAAM,GAAGxT,KAEpD8vH,EAAOvvF,OAAOixF,GAAa/0H,EAAO,EAAG,CAAC,OAAQkkI,EAAUntH,EAAM,KAC9D/W,IACAb,GACF,CAEsB,mBAAlB4X,EAAM,GAAG3W,OACX8jI,EAAW,CACT9jI,KAAM,WAENgoI,SAAS,EACTzoI,MAAO7C,OAAO6gC,OAAO,CAAC,EAAG5mB,EAAM,GAAGpX,QAGpC0zH,EAAOvvF,OAAO9jC,EAAO,EAAG,CAAC,QAASkkI,EAAUntH,EAAM,KAClD/W,IACAb,IACA4oI,OAAsBjmI,EACtBw3H,GAAW,EAEf,CACF,CAGA,OADAjG,EAAO1zH,GAAO,GAAGyoI,QAAUH,EACpB9oI,CACT,CAMA,SAASuoI,EAAQ9pI,EAAKU,GACpBqF,EAAK/F,GAAOU,CACd,CAQA,SAASqpI,EAAQ/pI,GACf,OAAO+F,EAAK/F,EACd,CAMA,SAAS2sH,EAAMrmE,GACb,MAAO,CACLznC,KAAMynC,EAAEznC,KACRL,OAAQ8nC,EAAE9nC,OACV6F,OAAQiiC,EAAEjiC,OAEd,CAOA,SAASghH,EAAO/9H,EAAQmjI,GACtB,OAAOh1H,EAOP,SAASA,EAAK6P,GACZivG,EAAM10H,KAAKwc,KAAM/U,EAAOge,GAAQA,GAC5BmlH,GAAKA,EAAI5qI,KAAKwc,KAAMiJ,EAC1B,CACF,CAGA,SAASkqG,IACPnzG,KAAK2iB,MAAMz8B,KAAK,CACdC,KAAM,WACNG,SAAU,IAEd,CAWA,SAAS4xH,EAAM7wH,EAAM4hB,EAAOolH,GAU1B,OATeruH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAEvCoB,SAASJ,KAAKmB,GACrB2Y,KAAK2iB,MAAMz8B,KAAKmB,GAChB2Y,KAAKq0F,WAAWnuG,KAAK,CAAC+iB,EAAOolH,IAE7BhnI,EAAKkb,SAAW,CACd7c,MAAO4qH,EAAMrnG,EAAMvjB,QAEd2B,CACT,CAMA,SAASwjI,EAAOuD,GACd,OAAO/nC,EAOP,SAASA,EAAMp9E,GACTmlH,GAAKA,EAAI5qI,KAAKwc,KAAMiJ,GACxBmvG,EAAK50H,KAAKwc,KAAMiJ,EAClB,CACF,CASA,SAASmvG,EAAKnvG,EAAOqlH,GACnB,IAAMjnI,EAAO2Y,KAAK2iB,MAAME,MAClBzpB,EAAO4G,KAAKq0F,WAAWxxE,MAE7B,IAAKzpB,EACH,MAAM,IAAI5Q,MACR,iBACEygB,EAAM9iB,KACN,MACAkqH,EAAkB,CAChB3qH,MAAOujB,EAAMvjB,MACb4D,IAAK2f,EAAM3f,MAEb,yBAYN,OAVW8P,EAAK,GAAGjT,OAAS8iB,EAAM9iB,OAC5BmoI,EACFA,EAAY9qI,KAAKwc,KAAMiJ,EAAO7P,EAAK,KAEnBA,EAAK,IAAMy0H,IACnBrqI,KAAKwc,KAAMiJ,EAAO7P,EAAK,KAInC/R,EAAKkb,SAASjZ,IAAMgnH,EAAMrnG,EAAM3f,KACzBjC,CACT,CAMA,SAASmmI,IACP,OAAOvqI,GAAS+c,KAAK2iB,MAAME,MAC7B,CAMA,SAASwnG,IACPoD,EAAQ,+BAA+B,EACzC,CAGA,SAAStD,EAAqBlhH,GACxBykH,EAAQ,iCAGR1tH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GACxBQ,MAAQmD,OAAO+e,SAAS5H,KAAKi8G,eAAehzG,GAAQ,IAC7DwkH,EAAQ,+BAEZ,CAGA,SAAS7B,IACP,IAAMliI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5B6N,KAAOrJ,CACd,CAGA,SAASmiI,IACP,IAAMniI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5BmvD,KAAO3qD,CACd,CAGA,SAASiiI,IAEH+B,EAAQ,oBACZ1tH,KAAKmzG,SACLsa,EAAQ,kBAAkB,GAC5B,CAGA,SAAShC,IACP,IAAM/hI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5Bb,MAAQqF,EAAKQ,QAAQ,2BAA4B,IACtDujI,EAAQ,iBACV,CAGA,SAAS3B,IACP,IAAMpiI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5Bb,MAAQqF,EAAKQ,QAAQ,eAAgB,GAC5C,CAGA,SAAS+hI,EAA4BhjH,GAEnC,IAAMnW,EAAQkN,KAAKwtH,SACbnmI,EAEJ2Y,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GACjCmC,EAAKyL,MAAQA,EACbzL,EAAKgvF,WAAa8qC,GAChBnhH,KAAKi8G,eAAehzG,IACpB/hB,aACJ,CAGA,SAASglI,IACP,IAAMxiI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5BiW,MAAQzR,CACf,CAGA,SAASsiI,IACP,IAAMtiI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5BugE,IAAM/7D,CACb,CAGA,SAASqhI,EAAyB9hH,GAChC,IAAM5hB,EAEJ2Y,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAEjC,IAAKmC,EAAKknI,MAAO,CACf,IAAMA,EAAQvuH,KAAKi8G,eAAehzG,GAAO/jB,OACzCmC,EAAKknI,MAAQA,CACf,CACF,CAGA,SAASlB,IACPI,EAAQ,gCAAgC,EAC1C,CAGA,SAASN,EAAgClkH,GAGrCjJ,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5BqpI,MAAqD,KAA7CvuH,KAAKi8G,eAAehzG,GAAOlF,WAAW,GAAY,EAAI,CACrE,CAGA,SAASkpH,IACPQ,EAAQ,+BACV,CAGA,SAASvE,EAAYjgH,GACnB,IAAM0c,EAEJ3lB,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAG7By9E,EAAOh9C,EAAOr/B,SAASq/B,EAAOr/B,SAASpB,OAAS,GAE/Cy9E,GAAsB,SAAdA,EAAKx8E,QAEhBw8E,EAAOpkE,MAEFgE,SAAW,CACd7c,MAAO4qH,EAAMrnG,EAAMvjB,QAGrBigC,EAAOr/B,SAASJ,KAAKy8E,IAGvB3iE,KAAK2iB,MAAMz8B,KAAKy8E,EAClB,CAGA,SAASwoD,EAAWliH,GAClB,IAAM05D,EAAO3iE,KAAK2iB,MAAME,MACxB8/C,EAAKt+E,OAAS2b,KAAKi8G,eAAehzG,GAClC05D,EAAKpgE,SAASjZ,IAAMgnH,EAAMrnG,EAAM3f,IAClC,CAGA,SAASojI,EAAiBzjH,GACxB,IAAMyqD,EAAU1zD,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAG/C,GAAIwoI,EAAQ,eAIV,OAHah6D,EAAQptE,SAASotE,EAAQptE,SAASpB,OAAS,GACnDqd,SAASjZ,IAAMgnH,EAAMrnG,EAAM3f,UAChCmkI,EAAQ,gBAKPC,EAAQ,iCACT9E,EAAOG,eAAe37E,SAASsmB,EAAQvtE,QAEvC+iI,EAAY1lI,KAAKwc,KAAMiJ,GACvBkiH,EAAW3nI,KAAKwc,KAAMiJ,GAE1B,CAGA,SAASkjH,IACPsB,EAAQ,eAAe,EACzB,CAGA,SAASrB,IACP,IAAM1iI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5Bb,MAAQqF,CACf,CAGA,SAAS2iI,IACP,IAAM3iI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5Bb,MAAQqF,CACf,CAGA,SAASqiI,IACP,IAAMriI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5Bb,MAAQqF,CACf,CAGA,SAASijI,IACP,IAAMj5D,EAEJ1zD,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAE7BwoI,EAAQ,gBACVh6D,EAAQvtE,MAAQ,YAEhButE,EAAQ86D,cAAgBd,EAAQ,kBAAoB,kBAE7Ch6D,EAAQjO,WACRiO,EAAQv4D,eAGRu4D,EAAQ2iB,kBAER3iB,EAAQ5gE,OAGjB26H,EAAQ,gBACV,CAGA,SAASnB,IACP,IAAM54D,EAEJ1zD,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAE7BwoI,EAAQ,gBACVh6D,EAAQvtE,MAAQ,YAEhButE,EAAQ86D,cAAgBd,EAAQ,kBAAoB,kBAE7Ch6D,EAAQjO,WACRiO,EAAQv4D,eAGRu4D,EAAQ2iB,kBAER3iB,EAAQ5gE,OAGjB26H,EAAQ,gBACV,CAGA,SAAShB,EAAgBxjH,GACvB,IAAMmrB,EAEJp0B,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC3Bmf,EAASrE,KAAKi8G,eAAehzG,GACnCmrB,EAASthC,MAAQy1H,GAAalkH,GAC9B+vB,EAASiiD,WAAa8qC,GAAoB98G,GAAQnd,aACpD,CAGA,SAASqlI,IACP,IAAMz7F,EAEJ9wB,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC3Bb,EAAQ2b,KAAKwtH,SACbnmI,EAEJ2Y,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAEjCuoI,EAAQ,eAAe,GAEL,SAAdpmI,EAAKlB,KAEPkB,EAAKf,SAAWwqC,EAASxqC,SAEzBe,EAAKkI,IAAMlL,CAEf,CAGA,SAASwoI,IACP,IAAMnjI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5BugE,IAAM/7D,CACb,CAGA,SAASojI,IACP,IAAMpjI,EAAOsW,KAAKwtH,SAGhBxtH,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5BiW,MAAQzR,CACf,CAGA,SAASsjI,IACPS,EAAQ,cACV,CAGA,SAASlD,IACPkD,EAAQ,gBAAiB,YAC3B,CAGA,SAASb,EAAsB3jH,GAC7B,IAAMnW,EAAQkN,KAAKwtH,SACbnmI,EAEJ2Y,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GACjCmC,EAAKyL,MAAQA,EACbzL,EAAKgvF,WAAa8qC,GAChBnhH,KAAKi8G,eAAehzG,IACpB/hB,cACFumI,EAAQ,gBAAiB,OAC3B,CAGA,SAASpC,EAA+BpiH,GACtCwkH,EAAQ,yBAA0BxkH,EAAM9iB,KAC1C,CAGA,SAASqlI,EAA8BviH,GACrC,IAII5kB,EAJEqF,EAAOsW,KAAKi8G,eAAehzG,GAC3B9iB,EAAOunI,EAAQ,0BAKjBvnI,GACF9B,EAAQgkI,GACN3+H,EACS,oCAATvD,EAA6C,GAAK,IAEpDsnI,EAAQ,2BAKRppI,EAAQkgI,GAA8B76H,GAGxC,IAAMi5E,EAAO3iE,KAAK2iB,MAAME,MACxB8/C,EAAKt+E,OAASA,EACds+E,EAAKpgE,SAASjZ,IAAMgnH,EAAMrnG,EAAM3f,IAClC,CAGA,SAAS2hI,EAAuBhiH,GAC9BkiH,EAAW3nI,KAAKwc,KAAMiJ,GAGpBjJ,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5BugE,IAAMzlD,KAAKi8G,eAAehzG,EACjC,CAGA,SAAS+hH,EAAoB/hH,GAC3BkiH,EAAW3nI,KAAKwc,KAAMiJ,GAGpBjJ,KAAK2iB,MAAM3iB,KAAK2iB,MAAMz9B,OAAS,GAC5BugE,IAAM,UAAYzlD,KAAKi8G,eAAehzG,EAC7C,CAMA,SAAS82G,IACP,MAAO,CACL55H,KAAM,aACNG,SAAU,GAEd,CAGA,SAAS+iI,IACP,MAAO,CACLljI,KAAM,OACN4M,KAAM,KACNshD,KAAM,KACNhwD,MAAO,GAEX,CAGA,SAAS4jI,IACP,MAAO,CACL9hI,KAAM,aACN9B,MAAO,GAEX,CAGA,SAASob,IACP,MAAO,CACLtZ,KAAM,aACNkwF,WAAY,GACZvjF,MAAO,KACPqI,MAAO,KACPsqD,IAAK,GAET,CAGA,SAAS2+C,IACP,MAAO,CACLj+G,KAAM,WACNG,SAAU,GAEd,CAGA,SAAS6qG,KAEP,MAAO,CACLhrG,KAAM,UACNooI,WAAO1mI,EACPvB,SAAU,GAEd,CAGA,SAASujI,KACP,MAAO,CACL1jI,KAAM,QAEV,CAGA,SAAS6C,KACP,MAAO,CACL7C,KAAM,OACN9B,MAAO,GAEX,CAGA,SAASo9G,KACP,MAAO,CACLt7G,KAAM,QACNgV,MAAO,KACPsqD,IAAK,GACLl2D,IAAK,KAET,CAGA,SAAS6N,KACP,MAAO,CACLjX,KAAM,OACNgV,MAAO,KACPsqD,IAAK,GACLn/D,SAAU,GAEd,CAMA,SAAS2M,GAAKgW,GACZ,MAAO,CACL9iB,KAAM,OACNsoI,QAAwB,gBAAfxlH,EAAM9iB,KACfT,MAAO,KAEP2lG,OAAQpiF,EAAMklH,QACd7nI,SAAU,GAEd,CAMA,SAAS2jI,GAAShhH,GAChB,MAAO,CACL9iB,KAAM,WAENklG,OAAQpiF,EAAMklH,QACdn+H,QAAS,KACT1J,SAAU,GAEd,CAGA,SAASw7H,KACP,MAAO,CACL37H,KAAM,YACNG,SAAU,GAEd,CAGA,SAASskI,KACP,MAAO,CACLzkI,KAAM,SACNG,SAAU,GAEd,CAGA,SAASiY,KACP,MAAO,CACLpY,KAAM,OACN9B,MAAO,GAEX,CAGA,SAAS66H,KACP,MAAO,CACL/4H,KAAM,gBAEV,CACF,CA9gCWuoI,CAASzqI,EAATyqI,CC9GJ,SAAqBtV,GAC1B,MAAQyB,GAAYzB,KAIpB,OAAOA,CACT,CDyGMuV,CErGC,WAA6B,IAS5BjtG,EAAS,CACbhiB,QAAS,GACTgyE,KAAM,CAAC,EACPulC,WATiBL,GAEjB,CAACgY,GAAmBzmI,QALQ,UAAH,6CAAG,CAAC,GAKM0uH,YAAc,KAQjDlvH,QAASsD,EAAOtD,IAChByd,SAAUna,EAAOma,IACjBw+E,KAAM34F,EAAO24F,IACbv/E,OAAQpZ,EAAOoZ,IACf9F,KAAMtT,EAAOsT,KAEf,OAAOmjB,EAKP,SAASz2B,EAAOixH,GACd,OAGA,SAAiB5S,GACf,OAAO4T,GAAgBx7F,EAAQw6F,EAAS5S,EAC1C,CACF,CACF,CFsEQphG,CAAMjkB,GAASmhB,WAAWorB,MHtG3B,WACL,IAOIq+F,EAPA1sH,EAAS,EACTgxG,EAAS,GAGTztH,GAAQ,EAIZ,OAGA,SAAsBrB,EAAOovH,EAAUnqH,GAErC,IAGI9D,EAGAkhB,EAGA60G,EAGAuT,EAGAtyH,EAfEqgH,EAAS,GA6Bf,IAZAx4H,EAAQ8uH,EAAS9uH,EAAMpB,SAASwwH,GAChC8H,EAAgB,EAChBpI,EAAS,GAELztH,IAC0B,QAAxBrB,EAAM0f,WAAW,IACnBw3G,IAGF71H,OAAQmC,GAGH0zH,EAAgBl3H,EAAMa,QAAQ,CAOnC,GANAS,GAAOC,UAAY21H,EAEnBuT,GADAtpI,EAAQG,GAAOE,KAAKxB,UAEOwD,IAAhBrC,EAAMO,MAAsBP,EAAMO,MAAQ1B,EAAMa,OAC3DsX,EAAOnY,EAAM0f,WAAW+qH,IAEnBtpI,EAAO,CACV2tH,EAAS9uH,EAAMyB,MAAMy1H,GACrB,KACF,CAEA,GAAa,KAAT/+G,GAAe++G,IAAkBuT,GAAeD,EAClDhS,EAAO32H,MAAM,GACb2oI,OAAmBhnI,OAYnB,OAVIgnI,IACFhS,EAAO32H,MAAM,GACb2oI,OAAmBhnI,GAGjB0zH,EAAgBuT,IAClBjS,EAAO32H,KAAK7B,EAAMyB,MAAMy1H,EAAeuT,IACvC3sH,GAAU2sH,EAAcvT,GAGlB/+G,GACN,KAAK,EACHqgH,EAAO32H,KAAK,OACZic,IACA,MAGF,KAAK,EAIH,IAHAuE,EAA+B,EAAxBnG,KAAKylE,KAAK7jE,EAAS,GAC1B06G,EAAO32H,MAAM,GAENic,IAAWuE,GAAMm2G,EAAO32H,MAAM,GAErC,MAGF,KAAK,GACH22H,EAAO32H,MAAM,GACbic,EAAS,EACT,MAGF,QACE0sH,GAAmB,EACnB1sH,EAAS,EAKfo5G,EAAgBuT,EAAc,CAChC,CAQA,OANIxlI,IACEulI,GAAkBhS,EAAO32H,MAAM,GAC/BitH,GAAQ0J,EAAO32H,KAAKitH,GACxB0J,EAAO32H,KAAK,OAGP22H,CACT,CACF,CGPwCkS,GAAa1qI,EAAOovH,GAAU,KAGpE,EAghCF,SAASoV,GAAUmG,EAAUnY,GAG3B,IAFA,IAAI9wH,GAAS,IAEJA,EAAQ8wH,EAAW3xH,QAAQ,CAClC,IAAMb,EAAQwyH,EAAW9wH,GAErBxC,MAAMF,QAAQgB,GAChBwkI,GAAUmG,EAAU3qI,GAEpB8gH,GAAU6pB,EAAU3qI,EAExB,CAEA,OAAO2qI,CACT,CAOA,SAAS7pB,GAAU6pB,EAAU7pB,GAE3B,IAAIxhH,EAEJ,IAAKA,KAAOwhH,EACV,GAAI79G,GAAI9D,KAAK2hH,EAAWxhH,GAAM,CAC5B,IAAMsP,EAAe,mBAARtP,GAAoC,eAARA,EAInColE,GAHQzhE,GAAI9D,KAAKwrI,EAAUrrI,GAAOqrI,EAASrrI,QAAOkE,KAGjCmnI,EAASrrI,GAAOsP,EAAO,GAAK,CAAC,GAC9C+jH,EAAQ7R,EAAUxhH,GAEpBqzH,IACE/jH,EAEF+7H,EAASrrI,GAAO,GAAH,SAAOolE,GAAI,EAAKiuD,IAE7Bn0H,OAAO6gC,OAAOqlC,EAAMiuD,GAG1B,CAEJ,CAGA,SAAS6W,GAAe9kE,EAAMiuD,GAC5B,MAAIjuD,EACI,IAAIvgE,MACR,iBACEugE,EAAK5iE,KACL,MACAkqH,EAAkB,CAChB3qH,MAAOqjE,EAAKrjE,MACZ4D,IAAKy/D,EAAKz/D,MAEZ,0BACA0tH,EAAM7wH,KACN,MACAkqH,EAAkB,CAChB3qH,MAAOsxH,EAAMtxH,MACb4D,IAAK0tH,EAAM1tH,MAEb,aAGE,IAAId,MACR,oCACEwuH,EAAM7wH,KACN,MACAkqH,EAAkB,CAChB3qH,MAAOsxH,EAAMtxH,MACb4D,IAAK0tH,EAAM1tH,MAEb,kBAGR,CGxtCA,OCMe,SAAqBrF,GAAS,WAkB3CpB,OAAO6gC,OAAO1jB,KAAM,CAACswB,OAhBN,SAAC8xD,GAEd,IAAMt8E,EAAmC,EAAKpc,KAAK,YAEnD,OAAOi/H,GACLvmC,EACAv/F,OAAO6gC,OAAO,CAAC,EAAG5d,EAAU7hB,EAAS,CAInC4yH,WAAY,EAAKntH,KAAK,wBAA0B,GAChD4jI,gBAAiB,EAAK5jI,KAAK,2BAA6B,KAG9D,GAGF,ECZWuiE,GAST,SAAU9lE,EAAMV,EAAOpB,GAErB,IAAIgD,EAAO,CAAClB,KAAMsC,OAAOtC,IAiBzB,YAda0B,IAAVxD,GAAiC,OAAVA,GACN,kBAAVoB,IAAsBlC,MAAMF,QAAQoC,GAI5C5C,OAAO6gC,OAAOr8B,EAAM5B,GAFpBpB,EAAQoB,EAKNlC,MAAMF,QAAQgB,GAChBgD,EAAKf,SAAWjC,OACGwD,IAAVxD,GAAiC,OAAVA,IAChCgD,EAAKhD,MAAQoE,OAAOpE,IAGfgD,CACT,ECqEW4nI,GAkBT,SAAUllI,GACR,QAAalC,IAATkC,GAA+B,OAATA,EACxB,OAAOm8E,GAGT,GAAoB,kBAATn8E,EACT,OA+ER,SAAqB+V,GACnB,OAAOovH,GAAY/oI,GAKnB,SAASA,EAAKkB,GACZ,OAAOA,GAAQA,EAAKlB,OAAS2Z,CAC/B,CACF,CAxFeqvH,CAAYplI,GAGrB,GAAoB,kBAATA,EACT,OAAOxG,MAAMF,QAAQ0G,GAAQqlI,GAAWrlI,GAgDhD,SAAsB+V,GACpB,OAAOovH,GAAY1mB,GAMnB,SAASA,EAAInhH,GAEX,IAAI1D,EAEJ,IAAKA,KAAOmc,EAEV,GAAIzY,EAAK1D,KAASmc,EAAMnc,GAAM,OAAO,EAGvC,OAAO,CACT,CACF,CAlEwD0rI,CAAatlI,GAG/D,GAAoB,oBAATA,EACT,OAAOmlI,GAAYnlI,GAGrB,MAAM,IAAIvB,MAAM,+CAClB,EAMJ,SAAS4mI,GAAW1nH,GAKlB,IAHA,IAAM/H,EAAS,GACX5Z,GAAS,IAEJA,EAAQ2hB,EAAMxiB,QACrBya,EAAO5Z,GAASkpI,GAAQvnH,EAAM3hB,IAGhC,OAAOmpI,IAOP,WACgB,IAAd,IAAInpI,GAAS,EAAC,mBADAguH,EAAU,yBAAVA,EAAU,gBAGxB,OAAShuH,EAAQ4Z,EAAOza,QAAQ,OAC9B,IAAI,EAAAya,EAAO5Z,IAAOvC,KAAI,SAACwc,MAAI,OAAK+zG,IAAa,OAAO,CACtD,CAEA,OAAO,CACT,GACF,CAqDA,SAASmb,GAAYpvH,GACnB,OAOA,WAAkC,2BAAZi0G,EAAU,yBAAVA,EAAU,gBAE9B,OAAO5mB,QAAQrtF,EAAMtc,KAAI,MAAVsc,EAAK,CAAME,MAAI,OAAK+zG,IACrC,CACF,CAGA,SAAS7tC,KACP,OAAO,CACT,CCzOO,IAsBMopD,GAcT,SAAUtZ,EAAMjsH,EAAMwlI,EAASC,GACT,oBAATzlI,GAA0C,oBAAZwlI,IACvCC,EAAUD,EAEVA,EAAUxlI,EACVA,EAAO,MAGT,IAAMuI,EAAK28H,GAAQllI,GACbkR,EAAOu0H,GAAW,EAAI,GAS5B,SAASvmI,EAAQ5B,EAAMtB,EAAO0pI,GAG5B,IAEIvrI,EAFEG,EAAwB,kBAATgD,GAA8B,OAATA,EAAgBA,EAAO,CAAC,EAIxC,kBAAfhD,EAAM8B,OACfjC,EAC2B,kBAAlBG,EAAM+B,QACT/B,EAAM+B,QACgB,kBAAf/B,EAAMH,KACbG,EAAMH,UACN2D,EAENhF,OAAOK,eAAewsI,EAAO,OAAQ,CACnCrrI,MACE,SACMA,EAAM8B,MAAQjC,EAAO,IAAMA,EAAO,IAAM,IAC9C,OAIN,OAAOwrI,EAEP,SAASA,IAEP,IAEIC,EAEA3nH,EAEA4nH,EANA3oI,EAAS,GAQb,KAAK8C,GAAQuI,EAAGjL,EAAMtB,EAAO0pI,EAAQA,EAAQvqI,OAAS,IAAM,SAC1D+B,EAsCZ,SAAkB5C,GAChB,GAAId,MAAMF,QAAQgB,GAChB,OAAOA,EAGT,GAAqB,kBAAVA,EACT,MAAO,CAtIa,KAsIFA,GAGpB,MAAO,CAACA,EACV,CAhDqBwrI,CAASN,EAAQloI,EAAMooI,IAlFxB,QAoFJxoI,EAAO,IACT,OAAOA,EAKX,GAAII,EAAKf,UA9FC,SA8FWW,EAAO,GAO1B,IALA+gB,GAAUwnH,EAAUnoI,EAAKf,SAASpB,QAAU,GAAK+V,EAEjD20H,EAAeH,EAAQtnI,OAAOd,GAGvB2gB,GAAU,GAAKA,EAAS3gB,EAAKf,SAASpB,QAAQ,CAInD,GAFAyqI,EAAY1mI,EAAQ5B,EAAKf,SAAS0hB,GAASA,EAAQ4nH,EAAvC3mI,GAnGN,QAqGF0mI,EAAU,GACZ,OAAOA,EAGT3nH,EAC0B,kBAAjB2nH,EAAU,GAAkBA,EAAU,GAAK3nH,EAAS/M,CAC/D,CAGF,OAAOhU,CACT,CACF,CAzEAgC,CAAQ+sH,EAAM,KAAM,GAApB/sH,EA0EF,ECpHG,IAAMymI,GAcT,SAAU1Z,EAAMjsH,EAAMwlI,EAASC,GACT,oBAATzlI,GAA0C,oBAAZwlI,IACvCC,EAAUD,EACVA,EAAUxlI,EACVA,EAAO,MAGTulI,GAAatZ,EAAMjsH,GAMnB,SAAkB1C,EAAMooI,GACtB,IAAM9pG,EAAS8pG,EAAQA,EAAQvqI,OAAS,GACxC,OAAOqqI,EACLloI,EACAs+B,EAASA,EAAOr/B,SAAS+C,QAAQhC,GAAQ,KACzCs+B,EAEJ,GAbmC6pG,EAcrC,EC5CSM,GAAaxf,GAAM,SACnByf,GAAWzf,GAAM,OAiB9B,SAASA,GAAMnqH,GACb,OAQA,SAAekB,GACb,IAAMipH,EAASjpH,GAAQA,EAAKkb,UAAYlb,EAAKkb,SAASpc,IAAU,CAAC,EAEjE,MAAO,CACLqc,KAAM8tG,EAAM9tG,MAAQ,KACpBL,OAAQmuG,EAAMnuG,QAAU,KACxB6F,OAAQsoG,EAAMtoG,QAAU,EAAIsoG,EAAMtoG,OAAS,KAE/C,CACF,CC1CA,IAAM1gB,GAAM,CAAC,EAAEvE,eA0Cf,SAASitI,GAAM3rI,GACb,OAAOoE,OAAOpE,GAAS,IAAIgG,aAC7B,CC1CA,IAAM/C,GAAM,CAAC,EAAEvE,eAOf,SAASktI,GAAQ/iF,EAAG7lD,GAClB,IAAMqC,EAAOrC,EAAKqC,MAAQ,CAAC,EAE3B,MACE,UAAWrC,KAETC,GAAI9D,KAAKkG,EAAM,UACfpC,GAAI9D,KAAKkG,EAAM,gBACfpC,GAAI9D,KAAKkG,EAAM,cAGVwjD,EAAEgjF,QAAQ7oI,EAAM4kE,GAAE,OAAQ5kE,EAAKhD,QAGjC6oD,EAAE7lD,EAAM,MAAOmhH,GAAIt7D,EAAG7lD,GAC/B,CAMO,SAASqvH,GAAIxpE,EAAG7lD,EAAMs+B,GAC3B,IAEIwqF,EAFEhqH,EAAOkB,GAAQA,EAAKlB,KAK1B,IAAKA,EACH,MAAM,IAAIqC,MAAM,uBAAyBnB,EAAO,KAWlD,OAAsB,oBAPpB8oH,EADE7oH,GAAI9D,KAAK0pD,EAAEijF,SAAUhqI,GAClB+mD,EAAEijF,SAAShqI,GACP+mD,EAAEkjF,aAAeljF,EAAEkjF,YAAYhjF,SAASjnD,GAC5CkqI,GAEAnjF,EAAEojF,gBAG0BngB,EAAK8f,IAAS/iF,EAAG7lD,EAAMs+B,EAC5D,CAMA,SAAS0qG,GAAWnjF,EAAG7lD,GAErB,MAAO,aAAcA,EAAO,OAAIA,GAAI,IAAEf,SAAUkiH,GAAIt7D,EAAG7lD,KAASA,CAClE,CAMO,SAASmhH,GAAIt7D,EAAGvnB,GAErB,IAAM3+B,EAAS,GAEf,GAAI,aAAc2+B,EAIhB,IAHA,IAAMp9B,EAAQo9B,EAAOr/B,SACjBP,GAAS,IAEJA,EAAQwC,EAAMrD,QAAQ,CAC7B,IAAM+B,EAASyvH,GAAIxpE,EAAG3kD,EAAMxC,GAAQ4/B,GAEpC,GAAI1+B,EAAQ,CACV,GAAIlB,GAAmC,UAA1BwC,EAAMxC,EAAQ,GAAGI,OACvB5C,MAAMF,QAAQ4D,IAA2B,SAAhBA,EAAOd,OACnCc,EAAO5C,MAAQ4C,EAAO5C,MAAM6F,QAAQ,OAAQ,MAGzC3G,MAAMF,QAAQ4D,IAA2B,YAAhBA,EAAOd,MAAoB,CACvD,IAAMmiH,EAAOrhH,EAAOX,SAAS,GAEzBgiH,GAAsB,SAAdA,EAAKniH,OACfmiH,EAAKjkH,MAAQikH,EAAKjkH,MAAM6F,QAAQ,OAAQ,IAE5C,CAGE3G,MAAMF,QAAQ4D,GAChBD,EAAOd,KAAI,MAAXc,EAAM,EAASC,IAEfD,EAAOd,KAAKe,EAEhB,CACF,CAGF,OAAOD,CACT,CChGO,SAASk4H,GAAchyE,EAAG7lD,GAC/B,OAAO6lD,EAAE7lD,EAAM,KACjB,CCCO,SAASmU,GAAKjT,EAAOgoI,GAE1B,IAAMtpI,EAAS,GACXlB,GAAS,EAMb,IAJIwqI,GACFtpI,EAAOf,KAAK+lE,GAAE,OAAQ,SAGflmE,EAAQwC,EAAMrD,QACjBa,GAAOkB,EAAOf,KAAK+lE,GAAE,OAAQ,OACjChlE,EAAOf,KAAKqC,EAAMxC,IAOpB,OAJIwqI,GAAShoI,EAAMrD,OAAS,GAC1B+B,EAAOf,KAAK+lE,GAAE,OAAQ,OAGjBhlE,CACT,CClBO,SAASgM,GAAKi6C,EAAG7lD,GAEtB,IAAM5B,EAAQ,CAAC,EACTvB,EAAOmD,EAAKonI,QAAU,KAAO,KAC7BxrG,EAAQulF,GAAIt7D,EAAG7lD,GACjBtB,GAAS,EAOb,IAL0B,kBAAfsB,EAAK3B,OAAqC,IAAf2B,EAAK3B,QACzCD,EAAMC,MAAQ2B,EAAK3B,SAIZK,EAAQk9B,EAAM/9B,QAAQ,CAC7B,IAAM2zH,EAAO51F,EAAMl9B,GAEnB,GACgB,YAAd8yH,EAAK1yH,MACY,OAAjB0yH,EAAKzyH,SACLyyH,EAAKxyH,YACL9C,MAAMF,QAAQw1H,EAAKxyH,WAAWJ,YAC9B4yH,EAAKxyH,WAAWJ,UAAUmnD,SAAS,kBACnC,CACA3nD,EAAMQ,UAAY,CAAC,sBACnB,KACF,CACF,CAEA,OAAOinD,EAAE7lD,EAAMnD,EAAMuB,EAAO+V,GAAKynB,GAAO,GAC1C,CChCO,SAASutG,GAAkBtjF,EAAG7lD,GACnC,IAAMopI,EAAgBvjF,EAAEujF,cAClBp6C,EAAa5tF,OAAOpB,EAAKgvF,YACzBtwF,EAAQ0qI,EAAcpnI,QAAQgtF,GAC9B2a,EAASvoG,QACF,IAAX1C,EAAe0qI,EAAcvqI,KAAKmwF,GAActwF,EAAQ,GAG1D,OAAOmnD,EACL7lD,EACA,IACA,CACEyK,KAAM,MAAQk/F,EACd/qG,UAAW,CAAC,gBACZD,GAAI,QAAUgrG,EACd3iG,KAAM,eAER,CAAC6+C,EAAE7lD,EAAKkb,SAAU,MAAO,CAAC0pD,GAAE,OAAQ+kC,MAExC,gBCbO,SAAS0/B,GAAOxjF,EAAG7lD,GACxB,IAAMspI,EAAUtpI,EAAKmnI,cACjBrmC,EAAS,IAQb,GANgB,cAAZwoC,EACFxoC,GAAU,KACW,SAAZwoC,IACTxoC,GAAU,KAAO9gG,EAAKyL,OAASzL,EAAKgvF,YAAc,KAGlC,mBAAdhvF,EAAKlB,KACP,OAAO8lE,GAAE,OAAQ,KAAO5kE,EAAKkI,IAAM44F,GAGrC,IAAMyoC,EAAWpoB,GAAIt7D,EAAG7lD,GAClBihH,EAAOsoB,EAAS,GAElBtoB,GAAsB,SAAdA,EAAKniH,KACfmiH,EAAKjkH,MAAQ,IAAMikH,EAAKjkH,MAExBusI,EAASppI,QAAQykE,GAAE,OAAQ,MAG7B,IAAM0W,EAAOiuD,EAASA,EAAS1rI,OAAS,GAQxC,OANIy9E,GAAsB,SAAdA,EAAKx8E,KACfw8E,EAAKt+E,OAAS8jG,EAEdyoC,EAAS1qI,KAAK+lE,GAAE,OAAQk8B,IAGnByoC,CACT,CC4DA,SAASC,GAAcxpI,GACrB,IAAMgkG,EAAShkG,EAAKgkG,OAEpB,YAAkBxjG,IAAXwjG,GAAmC,OAAXA,EAC3BhkG,EAAKf,SAASpB,OAAS,EACvBmmG,CACN,CC5FO,IAAM8kC,GAAW,CACtBp9B,WCZK,SAAoB7lD,EAAG7lD,GAC5B,OAAO6lD,EAAE7lD,EAAM,aAAcmU,GAAKgtG,GAAIt7D,EAAG7lD,IAAO,GAClD,EDWEypI,MEXK,SAAmB5jF,EAAG7lD,GAC3B,MAAO,CAAC6lD,EAAE7lD,EAAM,MAAO4kE,GAAE,OAAQ,MACnC,EFUEzvD,KGbK,SAAc0wC,EAAG7lD,GACtB,IAAMhD,EAAQgD,EAAKhD,MAAQgD,EAAKhD,MAAQ,KAAO,GAGzC0O,EAAO1L,EAAK0L,MAAQ1L,EAAK0L,KAAKvN,MAAM,uBAEpCC,EAAQ,CAAC,EAEXsN,IACFtN,EAAMQ,UAAY,CAAC,YAAc8M,IAGnC,IAAMyJ,EAAO0wC,EAAE7lD,EAAM,OAAQ5B,EAAO,CAACwmE,GAAE,OAAQ5nE,KAM/C,OAJIgD,EAAKgtD,OACP73C,EAAK9S,KAAO,CAAC2qD,KAAMhtD,EAAKgtD,OAGnBnH,EAAE7lD,EAAKkb,SAAU,MAAO,CAAC/F,GAClC,EHLE2+C,OIhBK,SAAuBjO,EAAG7lD,GAC/B,OAAO6lD,EAAE7lD,EAAM,MAAOmhH,GAAIt7D,EAAG7lD,GAC/B,EJeE+8G,SKjBK,SAAkBl3D,EAAG7lD,GAC1B,OAAO6lD,EAAE7lD,EAAM,KAAMmhH,GAAIt7D,EAAG7lD,GAC9B,ELgBEmpI,kBAAAA,GACA9uB,SMnBK,SAAkBx0D,EAAG7lD,GAK1B,IAJA,IAAM0pI,EAAe7jF,EAAE6jF,aACjBN,EAAgBvjF,EAAEujF,cACpB9pB,EAAK,EAEFA,KAAMoqB,GAAcpqB,IAE3B,IAAMtwB,EAAa5tF,OAAOk+G,GAa1B,OATA8pB,EAAcvqI,KAAKmwF,GAEnB06C,EAAa16C,GAAc,CACzBlwF,KAAM,qBACNkwF,WAAAA,EACA/vF,SAAU,CAAC,CAACH,KAAM,YAAaG,SAAUe,EAAKf,WAC9Cic,SAAUlb,EAAKkb,UAGViuH,GAAkBtjF,EAAG,CAC1B/mD,KAAM,oBACNkwF,WAAAA,EACA9zE,SAAUlb,EAAKkb,UAEnB,ENLE4uF,QOpBK,SAAiBjkD,EAAG7lD,GACzB,OAAO6lD,EAAE7lD,EAAM,IAAMA,EAAKknI,MAAO/lB,GAAIt7D,EAAG7lD,GAC1C,EPmBE2B,KQnBK,SAAckkD,EAAG7lD,GACtB,OAAO6lD,EAAE8jF,UAAY9jF,EAAEgjF,QAAQ7oI,EAAM4kE,GAAE,MAAO5kE,EAAKhD,QAAU,IAC/D,ERkBE4sI,eSpBK,SAAwB/jF,EAAG7lD,GAChC,IAAMktG,EAAMrnD,EAAEztC,WAAWpY,EAAKgvF,YAE9B,IAAKke,EACH,OAAOm8B,GAAOxjF,EAAG7lD,GAInB,IAAM5B,EAAQ,CAACb,IAAK6B,GAAU8tG,EAAI9uC,KAAO,IAAKl2D,IAAKlI,EAAKkI,KAMxD,OAJkB,OAAdglG,EAAIp5F,YAAgCtT,IAAd0sG,EAAIp5F,QAC5B1V,EAAM0V,MAAQo5F,EAAIp5F,OAGb+xC,EAAE7lD,EAAM,MAAO5B,EACxB,ETMEg8G,MUtBK,SAAev0D,EAAG7lD,GAEvB,IAAM5B,EAAQ,CAACb,IAAK6B,GAAUY,EAAKo+D,KAAMl2D,IAAKlI,EAAKkI,KAMnD,OAJmB,OAAflI,EAAK8T,YAAiCtT,IAAfR,EAAK8T,QAC9B1V,EAAM0V,MAAQ9T,EAAK8T,OAGd+xC,EAAE7lD,EAAM,MAAO5B,EACxB,EVcEyrI,WWxBK,SAAoBhkF,EAAG7lD,GAC5B,OAAO6lD,EAAE7lD,EAAM,OAAQ,CAAC4kE,GAAE,OAAQ5kE,EAAKhD,MAAM6F,QAAQ,YAAa,OACpE,EXuBEinI,cYtBK,SAAuBjkF,EAAG7lD,GAC/B,IAAMktG,EAAMrnD,EAAEztC,WAAWpY,EAAKgvF,YAE9B,IAAKke,EACH,OAAOm8B,GAAOxjF,EAAG7lD,GAInB,IAAM5B,EAAQ,CAACqM,KAAMrL,GAAU8tG,EAAI9uC,KAAO,KAM1C,OAJkB,OAAd8uC,EAAIp5F,YAAgCtT,IAAd0sG,EAAIp5F,QAC5B1V,EAAM0V,MAAQo5F,EAAIp5F,OAGb+xC,EAAE7lD,EAAM,IAAK5B,EAAO+iH,GAAIt7D,EAAG7lD,GACpC,EZQE+V,KaxBK,SAAc8vC,EAAG7lD,GAEtB,IAAM5B,EAAQ,CAACqM,KAAMrL,GAAUY,EAAKo+D,MAMpC,OAJmB,OAAfp+D,EAAK8T,YAAiCtT,IAAfR,EAAK8T,QAC9B1V,EAAM0V,MAAQ9T,EAAK8T,OAGd+xC,EAAE7lD,EAAM,IAAK5B,EAAO+iH,GAAIt7D,EAAG7lD,GACpC,EbgBE4iI,SDrBK,SAAkB/8E,EAAG7lD,EAAMs+B,GAChC,IASMm8F,EATA76H,EAASuhH,GAAIt7D,EAAG7lD,GAChBkpI,EAAQ5qG,EA0EhB,SAAmBt+B,GACjB,IAAIkpI,EAAQlpI,EAAKgkG,OACX/kG,EAAWe,EAAKf,SAClBP,GAAS,EAEb,MAAQwqI,KAAWxqI,EAAQO,EAASpB,QAClCqrI,EAAQM,GAAcvqI,EAASP,IAGjC,OAAOonG,QAAQojC,EACjB,CApFyBa,CAAUzrG,GAAUkrG,GAAcxpI,GAEnD5B,EAAQ,CAAC,EAET4rI,EAAU,GAEY,mBAAjBhqI,EAAK2I,UAKZ/I,EAAO,IACY,YAAnBA,EAAO,GAAGd,MACY,MAAtBc,EAAO,GAAGb,QAEV07H,EAAY76H,EAAO,IAEnB66H,EAAY50E,EAAE,KAAM,IAAK,IACzBjmD,EAAOO,QAAQs6H,IAGbA,EAAUx7H,SAASpB,OAAS,GAC9B48H,EAAUx7H,SAASkB,QAAQykE,GAAE,OAAQ,MAGvC61D,EAAUx7H,SAASkB,QACjB0lD,EAAE,KAAM,QAAS,CACf/mD,KAAM,WACN6J,QAAS3I,EAAK2I,QACde,UAAU,KAMdtL,EAAMQ,UAAY,CAAC,mBAKrB,IAFA,IAAIF,GAAS,IAEJA,EAAQkB,EAAO/B,QAAQ,CAC9B,IAAM+tC,EAAQhsC,EAAOlB,IAInBwqI,GACU,IAAVxqI,GACe,YAAfktC,EAAM9sC,MACY,MAAlB8sC,EAAM7sC,UAENirI,EAAQnrI,KAAK+lE,GAAE,OAAQ,OAGN,YAAfh5B,EAAM9sC,MAAwC,MAAlB8sC,EAAM7sC,SAAoBmqI,EAGxDc,EAAQnrI,KAAK+sC,GAFbo+F,EAAQnrI,KAAI,MAAZmrI,EAAO,EAASp+F,EAAM3sC,UAI1B,CAEA,IAAMq8E,EAAO17E,EAAOA,EAAO/B,OAAS,GAOpC,OAJIy9E,IAAS4tD,GAAW,YAAa5tD,GAA0B,MAAjBA,EAAKv8E,SACjDirI,EAAQnrI,KAAK+lE,GAAE,OAAQ,OAGlB/e,EAAE7lD,EAAM,KAAM5B,EAAO4rI,EAC9B,EChDEp+H,KAAAA,GACA6uH,Uc7BK,SAAmB50E,EAAG7lD,GAC3B,OAAO6lD,EAAE7lD,EAAM,IAAKmhH,GAAIt7D,EAAG7lD,GAC7B,Ed4BE2/G,Ke5BK,SAAc95D,EAAG7lD,GAEtB,OAAO6lD,EAAEgjF,QAAQ7oI,EAAM4kE,GAAE,OAAQzwD,GAAKgtG,GAAIt7D,EAAG7lD,KAC/C,Ef0BEujI,OgB/BK,SAAgB19E,EAAG7lD,GACxB,OAAO6lD,EAAE7lD,EAAM,SAAUmhH,GAAIt7D,EAAG7lD,GAClC,EhB8BEyvF,MiB3BK,SAAe5pC,EAAG7lD,GAOvB,IANA,IAAM4S,EAAO5S,EAAKf,SACdP,GAAS,EACP0V,EAAQpU,EAAKoU,OAAS,GAEtBxU,EAAS,KAENlB,EAAQkU,EAAK/U,QAAQ,CAO5B,IANA,IAAMg+F,EAAMjpF,EAAKlU,GAAOO,SAClBpC,EAAiB,IAAV6B,EAAc,KAAO,KAC9Byd,EAAMnc,EAAKoU,MAAQA,EAAMvW,OAASg+F,EAAIh+F,OAEpCosI,EAAM,GAEL9tH,KAAO,CACZ,IAAMy/E,EAAOC,EAAI1/E,GACjB8tH,EAAI9tH,GAAO0pC,EAAE+1C,EAAM/+F,EAAM,CAACuX,MAAOA,EAAM+H,IAAOy/E,EAAOulB,GAAIt7D,EAAG+1C,GAAQ,GACtE,CAEAh8F,EAAOlB,GAASmnD,EAAEjzC,EAAKlU,GAAQ,KAAMyV,GAAK81H,GAAK,GACjD,CAEA,OAAOpkF,EACL7lD,EACA,QACAmU,GACE,CAAC0xC,EAAEjmD,EAAO,GAAGsb,SAAU,QAAS/G,GAAK,CAACvU,EAAO,KAAK,KAAQkB,OACxDlB,EAAO,GACHimD,EACE,CACExnD,MAAOoqI,GAAW7oI,EAAO,IACzBqC,IAAKymI,GAAS9oI,EAAOA,EAAO/B,OAAS,KAEvC,QACAsW,GAAKvU,EAAOnB,MAAM,IAAI,IAExB,KAEN,GAGN,EjBbEyY,KkBjCK,SAAc2uC,EAAG7lD,GACtB,OAAO6lD,EAAEgjF,QACP7oI,EACA4kE,GAAE,OAAQxjE,OAAOpB,EAAKhD,OAAO6F,QAAQ,0BAA2B,OAEpE,ElB6BEg1H,cAAAA,GACAld,KAAMjZ,GACN+J,KAAM/J,GACNtpF,WAAYspF,GACZwoC,mBAAoBxoC,IAItB,SAASA,KACP,OAAO,IACT,CmBgBA,IAAMzhG,GAAM,CAAC,EAAEvE,eAQf,SAASkG,GAAQ+sH,EAAM/xH,GACrB,IAAM6hB,EAAW7hB,GAAW,CAAC,EACvB+sI,EAAYlrH,EAAS0rH,qBAAsB,EAE3CT,EAAe,CAAC,EAuBtB,OArBA7jF,EAAE8jF,UAAYA,EACd9jF,EAAEztC,W3BtEG,SAAqBpY,GAE1B,IAAMqd,EAAQ7hB,OAAOoI,OAAO,MAE5B,IAAK5D,IAASA,EAAKlB,KACjB,MAAM,IAAIqC,MAAM,wCAUlB,OAPAknI,GAAMroI,EAAM,cAAc,SAACoY,GACzB,IAAMzZ,EAAKgqI,GAAMvwH,EAAW42E,YACxBrwF,IAAOsB,GAAI9D,KAAKkhB,EAAO1e,KACzB0e,EAAM1e,GAAMyZ,EAEhB,IAUA,SAAoB42E,GAClB,IAAMrwF,EAAKgqI,GAAM35C,GACjB,OAAOrwF,GAAMsB,GAAI9D,KAAKkhB,EAAO1e,GAAM0e,EAAM1e,GAAM,IACjD,CACF,C2B2CiBma,CAAY61G,GAC3B9oE,EAAE6jF,aAAeA,EAEjB7jF,EAAEujF,cAAgB,GAClBvjF,EAAEgjF,QAAUA,EACZhjF,EAAEijF,SAAW,OAAIA,IAAarqH,EAASqqH,UACvCjjF,EAAEojF,eAAiBxqH,EAASwqH,eAC5BpjF,EAAEkjF,YAActqH,EAASsqH,YAEzBV,GAAM1Z,EAAM,sBAAsB,SAACv2G,GACjC,IAAMzZ,EAAKyC,OAAOgX,EAAW42E,YAAYhsF,cAIpC/C,GAAI9D,KAAKutI,EAAc/qI,KAC1B+qI,EAAa/qI,GAAMyZ,EAEvB,IAGOytC,EAQP,SAASgjF,EAAQnnE,EAAMiuD,GAErB,GAAIjuD,GAAQ,SAAUA,GAAQA,EAAKr/D,KAAM,CAEvC,IAAMA,EAAOq/D,EAAKr/D,KAEdA,EAAK+nI,QACY,YAAfza,EAAM7wH,OACR6wH,EAAQ,CACN7wH,KAAM,UACNC,QAAS,GACTC,WAAY,CAAC,EACbC,SAAU,KAId0wH,EAAM5wH,QAAUsD,EAAK+nI,OAGJ,YAAfza,EAAM7wH,MAAsBuD,EAAKgoI,cACnC1a,EAAM3wH,WAAa,OAAI2wH,EAAM3wH,YAAeqD,EAAKgoI,cAG/C,aAAc1a,GAASA,EAAM1wH,UAAYoD,EAAKioI,YAChD3a,EAAM1wH,SAAWoD,EAAKioI,UAE1B,CAEA,GAAI5oE,EAAM,CACR,IAAM+oB,EAAM,SAAU/oB,EAAOA,EAAO,CAACxmD,SAAUwmD,IC3H3B1hE,ED6HLyqF,IC1HhBzqF,EAAKkb,UACLlb,EAAKkb,SAAS7c,OACd2B,EAAKkb,SAAS7c,MAAM8c,MACpBnb,EAAKkb,SAAS7c,MAAMyc,QACpB9a,EAAKkb,SAASjZ,KACdjC,EAAKkb,SAASjZ,IAAIkZ,MAClBnb,EAAKkb,SAASjZ,IAAI6Y,SDqHf60G,EAAMz0G,SAAW,CAAC7c,MAAOoqI,GAAWh+C,GAAMxoF,IAAKymI,GAASj+C,IAE5D,CChIG,IAAmBzqF,EDkItB,OAAO2vH,CACT,CAOA,SAAS9pE,EAAE7lD,EAAMjB,EAASX,EAAOa,GAO/B,OANI/C,MAAMF,QAAQoC,KAChBa,EAAWb,EACXA,EAAQ,CAAC,GAIJyqI,EAAQ7oI,EAAM,CACnBlB,KAAM,UACNC,QAAAA,EACAC,WAAYZ,GAAS,CAAC,EACtBa,SAAUA,GAAY,IAE1B,CACF,CASO,SAASsrI,GAAO5b,EAAM/xH,GAC3B,IAAMipD,EAAIjkD,GAAQ+sH,EAAM/xH,GAClBoD,EAAOqvH,GAAIxpE,EAAG8oE,EAAM,MACpB6b,EExKD,SAAgB3kF,GAOrB,IANA,IAAM6jF,EAAe7jF,EAAE6jF,aACjBN,EAAgBvjF,EAAEujF,cACpB1qI,GAAS,EAEP+rI,EAAY,KAET/rI,EAAQ0qI,EAAcvrI,QAAQ,CACrC,IAAMqvG,EAAMw8B,EAAaN,EAAc1qI,GAAOsE,eAE9C,GAAKkqG,EAAL,CAIA,IAAMvD,EAASvoG,OAAO1C,EAAQ,GACxB4B,EAAU,EAAI4sG,EAAIjuG,UAElByrI,EAAgB,CACpB5rI,KAAM,OACNs/D,IAAK,SAAWurC,EAChBtnG,KAAM,CAACgoI,YAAa,CAACzrI,UAAW,CAAC,iBAAkBoI,KAAM,iBACzD/H,SAAU,CAAC,CAACH,KAAM,OAAQ9B,MAAO,YAE7Bs+E,EAAOh7E,EAAQA,EAAQzC,OAAS,GAElCy9E,GAAsB,cAAdA,EAAKx8E,KACfw8E,EAAKr8E,SAASJ,KAAK6rI,GAKnBpqI,EAAQzB,KAAK6rI,GAGfD,EAAU5rI,KAAK,CACbC,KAAM,WACNuD,KAAM,CAACgoI,YAAa,CAAC1rI,GAAI,KAAOgrG,EAAQ3iG,KAAM,gBAC9C/H,SAAUqB,EACV4a,SAAUgyF,EAAIhyF,UA1BhB,CA4BF,CAEA,OAAyB,IAArBuvH,EAAU5sI,OACL,KAGFgoD,EACL,KACA,UACA,CAACjnD,UAAW,CAAC,aAAcoI,KAAM,gBACjCmN,GACE,CACE0jH,GAAchyE,GACdj6C,GAAKi6C,EAAG,CAAC/mD,KAAM,OAAQsoI,SAAS,EAAMnoI,SAAUwrI,MAElD,GAGN,CF8GeE,CAAO9kF,GASpB,OAPI2kF,GAIFxqI,EAAKf,SAASJ,KAAK+lE,GAAE,OAAQ,MAAO4lE,GAG/BtuI,MAAMF,QAAQgE,GAAQ,CAAClB,KAAM,OAAQG,SAAUe,GAAQA,CAChE,CGvKA,IAUA,GAPI,SAAUivH,EAAaryH,GACrB,OAAOqyH,GAAe,QAASA,EAcrC,SAAgBA,EAAaryH,GAC3B,OAAO,SAACoD,EAAM07F,EAAMr8E,GAClB4vG,EAAY1iC,IAAIg+C,GAAOvqI,EAAMpD,GAAU8+F,GAAM,SAAClgF,GAC5C6D,EAAK7D,EACP,GACF,CACF,CAnBUovH,CAAO3b,EAAaryH,GA2B9B,SAAgBA,GAEd,OAAO,SAACoD,GAAI,OAAKuqI,GAAOvqI,EAAMpD,EAAQ,CACxC,CA7BUiuI,CAAO5b,EACb,iBC5BS92G,GAAM,GAOjB,WAAYpY,EAAUuC,EAAQ4E,GAAO,UACnCyR,KAAK5Y,SAAWA,EAChB4Y,KAAKrW,OAASA,EACV4E,IACFyR,KAAKzR,MAAQA,EAEjB,ICPK,SAAS5D,GAAMwV,EAAa5R,GAOjC,IALA,IAAMnH,EAAW,CAAC,EAEZuC,EAAS,CAAC,EACZ5D,GAAS,IAEJA,EAAQoa,EAAYjb,QAC3BrC,OAAO6gC,OAAOt8B,EAAU+Y,EAAYpa,GAAOqB,UAC3CvE,OAAO6gC,OAAO/5B,EAAQwW,EAAYpa,GAAO4D,QAG3C,OAAO,IAAI6V,GAAOpY,EAAUuC,EAAQ4E,EACtC,CCrBO,SAAS9H,GAAUpC,GACxB,OAAOA,EAAM6C,aACf,CFiBAsY,GAAO1c,UAAUsE,SAAW,CAAC,EAE7BoY,GAAO1c,UAAU6G,OAAS,CAAC,EAE3B6V,GAAO1c,UAAUyL,MAAQ,KG3BlB,IAAM9E,GAAI,GAMf,WAAYrC,EAAU6C,GAAW,UAE/B+V,KAAK5Y,SAAWA,EAEhB4Y,KAAK/V,UAAYA,CACnB,IAIFR,GAAK3G,UAAUyL,MAAQ,KACvB9E,GAAK3G,UAAUgG,SAAU,EACzBW,GAAK3G,UAAUoI,YAAa,EAC5BzB,GAAK3G,UAAUiG,mBAAoB,EACnCU,GAAK3G,UAAU4F,QAAS,EACxBe,GAAK3G,UAAUiF,gBAAiB,EAChC0B,GAAK3G,UAAUgF,gBAAiB,EAChC2B,GAAK3G,UAAUkF,uBAAwB,EACvCyB,GAAK3G,UAAU+L,iBAAkB,EACjCpF,GAAK3G,UAAU4c,SAAU,ECxBzB,IAAIW,GAAS,EAEAvX,GAAUwX,KACVpV,GAAaoV,KACbvX,GAAoBuX,KACpB5X,GAAS4X,KACTxY,GAAiBwY,KACjBvY,GAAiBuY,KACjBtY,GAAwBsY,KAErC,SAASA,KACP,OAAO,KAAP,IAAO,IAAOD,GAChB,CCPA,IAAMV,GAAS9c,OAAO8kC,KAAK38B,GAEdxB,GAAW,8BAQtB,WAAYpC,EAAU6C,EAAW4V,EAAMtR,GAAO,gBAC5C,IAAIxI,GAAS,EAMb,GAFAga,GAAK,EAFL,cAAM3Y,EAAU6C,IAEL,QAASsE,GAEA,kBAATsR,EACT,OAAS9Z,EAAQ4Z,GAAOza,QAAQ,CAC9B,IAAM4a,EAAQH,GAAO5Z,GACrBga,GAAK,KAAMJ,GAAO5Z,IAAS8Z,EAAO7U,EAAM8U,MAAY9U,EAAM8U,GAC5D,CACD,QACH,CAAC,YArBqB,CAASrW,IA+BjC,SAASsW,GAAK/Y,EAAQrD,EAAKU,GACrBA,IAEF2C,EAAOrD,GAAOU,EAElB,CAZAmF,GAAY1G,UAAU4c,SAAU,ECbhC,IAAMpY,GAAM,CAAC,EAAEvE,eAMR,SAASkI,GAAOwU,GAErB,IAII7V,EAJExC,EAAW,CAAC,EAEZuC,EAAS,CAAC,EAIhB,IAAKC,KAAQ6V,EAAWpZ,WACtB,GAAIiB,GAAI9D,KAAKic,EAAWpZ,WAAYuD,GAAO,CACzC,IAAMvF,EAAQob,EAAWpZ,WAAWuD,GAC9BhC,EAAO,IAAI4B,GACfI,EACA6V,EAAWtU,UAAUsU,EAAWjR,YAAc,CAAC,EAAG5E,GAClDvF,EACAob,EAAWlR,OAIXkR,EAAW5Q,iBACX4Q,EAAW5Q,gBAAgBu+C,SAASxjD,KAEpChC,EAAKiH,iBAAkB,GAGzBzH,EAASwC,GAAQhC,EAEjB+B,EAAOlD,GAAUmD,IAASA,EAC1BD,EAAOlD,GAAUmB,EAAKqC,YAAcL,CACtC,CAGF,OAAO,IAAI4V,GAAOpY,EAAUuC,EAAQ8V,EAAWlR,MACjD,CCvDO,IAAM3D,GAAQK,GAAO,CAC1BsD,MAAO,QACPpD,UAAS,SAACC,EAAGxB,GACX,MAAO,SAAWA,EAAK9D,MAAM,GAAGoB,aAClC,EACAb,WAAY,CACVoa,aAAc,KACdC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,UAAW,QCZFlW,GAAMI,GAAO,CACxBsD,MAAO,MACPpD,UAAS,SAACC,EAAGxB,GACX,MAAO,OAASA,EAAK9D,MAAM,GAAGoB,aAChC,EACAb,WAAY,CAAC2a,QAAS,KAAMC,QAAS,KAAMC,SAAU,QCFhD,SAAS3B,GAAuB/Q,EAAYvE,GACjD,OAAOA,KAAauE,EAAaA,EAAWvE,GAAaA,CAC3D,CCAO,SAASqE,GAAyBE,EAAYpH,GACnD,OAAOmY,GAAuB/Q,EAAYpH,EAASF,cACrD,CCNO,IAAM4D,GAAQG,GAAO,CAC1BsD,MAAO,QACPC,WAAY,CAAC2S,WAAY,eACzBhW,UAAWmD,GACXjI,WAAY,CAACyE,MAAO,KAAMsW,WAAY,QCJ3BrW,GAAOE,GAAO,CACzBE,UAAS,SAACC,EAAGxB,GACX,MAAgB,SAATA,EAAkBA,EAAO,QAAUA,EAAK9D,MAAM,GAAGoB,aAC1D,EACAb,WAAY,CACVgF,qBAAsB,KACtBC,WAAYJ,GACZK,iBAAkB,KAClBC,SAAUN,GACVO,YAAaP,GACbQ,aAAchD,GACdiD,aAAcjD,GACdkD,YAAalD,GACbmD,aAAc/D,GACdgE,YAAa,KACbC,gBAAiBjE,GACjBkE,YAAa,KACbC,aAAcf,GACdgB,eAAgBpE,GAChBqE,iBAAkB,KAClBC,aAAclB,GACdmB,WAAYvE,GACZwE,YAAapB,GACbqB,aAAc,KACdC,WAAYtB,GACZuB,YAAa,KACbC,iBAAkB,KAClBC,UAAW,KACXC,eAAgB9E,GAChB+E,UAAWnE,GACXoE,SAAU,KACVC,UAAW7B,GACX8B,cAAe9B,GACf+B,oBAAqB/B,GACrBgC,gBAAiB,KACjBC,SAAUrF,GACVsF,gBAAiB,KACjBC,aAAc3E,GACd4E,YAAapC,GACbqC,aAAcrC,GACdsC,aAAc,KACdC,aAAcvC,GACdwC,oBAAqB5F,GACrB6F,aAAcjF,GACdkF,aAAclF,GACdmF,YAAanF,GACboF,aAAc5C,GACd6C,YAAarF,GACbsF,SAAU,KACVC,aAAcvF,GACdwF,aAAcxF,GACdyF,aAAczF,GACd0F,cAAe,KACfC,KAAM,QC7CGrF,GAAOiC,GAAO,CACzBsD,MAAO,OACPC,WAAY,CACVC,cAAe,iBACfC,UAAW,QACXC,QAAS,MACTC,UAAW,cAEbzD,UAAWmD,GACXO,gBAAiB,CAAC,UAAW,WAAY,QAAS,YAClDxI,WAAY,CAEVyI,KAAM,KACNC,OAAQhH,GACRiH,cAAelH,GACfmH,UAAWnH,GACXoH,OAAQ,KACRC,MAAO,KACPC,gBAAiBtG,GACjBuG,oBAAqBvG,GACrBwG,eAAgBxG,GAChByG,IAAK,KACLC,GAAI,KACJC,MAAO3G,GACP4G,eAAgB,KAChBC,aAAc7H,GACd8H,UAAW9G,GACX+G,SAAU/G,GACVgH,QAAShH,GACTiH,QAAS,KACTC,QAASlH,GACTmH,KAAM,KACNhK,UAAW6B,GACXoI,KAAMxH,GACNyH,QAAS,KACTxI,QAAS,KACTyI,gBAAiBlF,GACjBmF,SAAUvH,GACVwH,aAAcxI,GACdyI,OAAQ7H,GAASX,GACjByI,YAAa,KACb9G,KAAM,KACN+G,SAAU,KACVC,SAAU,KACVC,QAAS7H,GACT8H,MAAO9H,GACP+H,IAAK,KACLC,QAAS,KACTC,SAAUjI,GACVkI,SAAUjI,GACVkI,UAAW/F,GACXgG,QAAS,KACTC,aAAc,KACdC,KAAM,KACNC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,eAAgB1I,GAChB2I,WAAY,KACZC,QAAS5J,GACT6J,OAAQjJ,GACRkJ,OAAQ9I,GACR+I,KAAMnJ,GACNoJ,KAAM,KACNC,SAAU,KACVC,QAASlK,GACTmK,UAAWnK,GACX9B,GAAI,KACJkM,WAAY,KACZC,YAAa,KACbC,UAAW,KACXC,UAAW,KACXC,GAAI,KACJC,MAAOzJ,GACP0J,OAAQ,KACRC,SAAU3K,GACV4K,QAAS5K,GACT6K,UAAW7J,GACX8J,SAAU9K,GACV+K,KAAM,KACNC,MAAO,KACPC,KAAM,KACNC,SAAU,KACVC,KAAM,KACNC,QAAS,KACTC,KAAMrK,GACNsK,IAAK1K,GACL2K,SAAU,KACVC,IAAK,KACLC,UAAW7K,GACX8K,MAAO,KACPC,OAAQ,KACRC,IAAK,KACLC,UAAWjL,GACXkL,SAAU9K,GACV+K,MAAO/K,GACP5E,KAAM,KACN4P,MAAO,KACPC,SAAUjL,GACVkL,WAAYlL,GACZmL,QAAS,KACTC,aAAc,KACdC,WAAY,KACZC,cAAe,KACfC,eAAgB,KAChBC,OAAQ,KACRC,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBC,SAAU,KACVC,QAAS,KACTC,QAAS,KACTu9H,cAAe,KACft9H,cAAe,KACfu9H,kBAAmB,KACnBt9H,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACXC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,WAAY,KACZC,aAAc,KACdC,QAAS,KACTC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,QAAS,KACTC,iBAAkB,KAClBC,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBC,UAAW,KACXC,YAAa,KACbC,UAAW,KACXC,eAAgB,KAChBC,YAAa,KACbC,aAAc,KACdC,aAAc,KACdC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACdC,mBAAoB,KACpBC,QAAS,KACTC,SAAU,KACVC,SAAU,KACVC,0BAA2B,KAC3BC,SAAU,KACVC,UAAW,KACXC,SAAU,KACVC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,SAAU,KACVC,qBAAsB,KACtBC,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACXC,QAAS,KACTC,KAAMtQ,GACNuQ,QAAS3Q,GACT4Q,QAAS,KACTC,KAAMzR,GACN0R,YAAa,KACbC,YAAa3Q,GACb4Q,OAAQ,KACRC,QAAS,KACTC,SAAU9Q,GACV+Q,eAAgB,KAChBC,IAAKhS,GACLiS,SAAUjR,GACVkR,SAAUlR,GACVmR,KAAMvR,GACNwR,QAASxR,GACTyR,QAASrS,GACTsS,MAAO,KACPC,OAAQvR,GACRwR,SAAUxR,GACVyR,SAAUzR,GACV0R,MAAO,KACPC,KAAM/R,GACNgS,MAAO,KACPC,KAAM,KACNC,KAAMlS,GACNmS,WAAY3P,GACZtG,IAAK,KACLkW,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACRtV,MAAOgD,GACPuS,KAAM,KACN/S,MAAO,KACPgT,SAAUxS,GACV1E,OAAQ,KACRmX,MAAO,KACPC,UAAW,KACXjV,KAAM,KACNkV,cAAevS,GACfwS,OAAQ,KACRjX,MAAO6G,GACPqQ,MAAO7S,GACP8S,KAAM,KAINC,MAAO,KACPC,MAAO,KACPC,QAAS7T,GACT8T,KAAM,KACNC,WAAY,KACZC,QAAS,KACTC,OAAQrT,GACRsT,YAAa,KACbC,aAAcvT,GACdwT,YAAa,KACbC,YAAa,KACbC,KAAM,KACNC,QAAS,KACTC,QAAS,KACTC,MAAO,KACPC,KAAM,KACNC,SAAU,KACVC,SAAU,KACVC,MAAO,KACPC,QAAS9T,GACT+T,QAAS/T,GACTgU,MAAO,KACPC,KAAM,KACNC,MAAO,KACPC,YAAa,KACbC,OAAQxU,GACRyU,WAAYzU,GACZ0U,KAAM,KACNC,SAAU,KACVC,OAAQ,KACRC,aAAc7U,GACd8U,YAAa9U,GACb+U,SAAU3U,GACV4U,OAAQ5U,GACR6U,QAAS7U,GACT8U,OAAQ9U,GACR+U,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACRC,IAAK,KACLC,YAAavV,GACbwV,MAAO,KACPC,OAAQ,KACRC,UAAWlT,GACXmT,QAAS,KACTC,QAAS,KACTC,KAAM,KACNC,UAAW9V,GACX+V,UAAW,KACXC,QAAS,KACTC,OAAQ,KACRC,MAAO,KACPC,OAAQnW,GAGRoW,kBAAmB,KACnBC,YAAa,KACbC,SAAU,KACVC,wBAAyBnW,GACzBoW,sBAAuBpW,GACvBqW,OAAQ,KACR/X,SAAU,KACVgY,QAAS1W,GACT2W,SAAU,KACVC,aAAc,QCxSLm1F,GAAMxpG,GAAO,CACxBsD,MAAO,MACPC,WAAY,CACV6jI,aAAc,gBACdC,kBAAmB,qBACnBC,WAAY,cACZC,cAAe,iBACfC,UAAW,aACXxsI,UAAW,QACXysI,SAAU,YACVC,SAAU,YACVC,mBAAoB,sBACpBC,0BAA2B,8BAC3BC,aAAc,gBACdC,eAAgB,kBAChBviI,YAAa,cACbwiI,SAAU,WACVC,iBAAkB,oBAClBC,iBAAkB,oBAClBjgF,YAAa,eACbkgF,SAAU,YACVC,WAAY,cACZlgF,aAAc,gBACdmgF,WAAY,cACZC,SAAU,YACVC,eAAgB,mBAChBC,YAAa,eACbC,UAAW,aACXC,YAAa,eACbnhF,WAAY,cACZohF,UAAW,aACXC,2BAA4B,+BAC5BC,yBAA0B,6BAC1B9hI,SAAU,WACV+hI,UAAW,cACXC,aAAc,iBACdC,aAAc,iBACdC,eAAgB,kBAChBC,cAAe,iBACfC,cAAe,iBACfC,UAAW,aACXC,UAAW,aACXC,YAAa,eACbC,QAAS,WACTC,YAAa,gBACbC,aAAc,iBACdC,QAAS,WACTC,QAAS,WACTC,QAAS,WACTC,SAAU,YACVC,MAAO,SACPC,UAAW,cACXC,WAAY,eACZ/gI,QAAS,UACTghI,WAAY,aACZ/gI,aAAc,eACdE,cAAe,gBACf8gI,QAAS,UACT3gI,SAAU,WACVC,UAAW,YACXC,iBAAkB,mBAClBC,SAAU,WACVC,QAAS,UACTC,QAAS,UACTE,OAAQ,SACRC,YAAa,cACbC,MAAO,QACPC,WAAY,aACZC,OAAQ,SACRC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,OAAQ,SACRC,iBAAkB,mBAClBC,UAAW,YACXw/H,MAAO,QACPv/H,QAAS,UACTC,QAAS,UACTC,QAAS,UACTs/H,UAAW,YACXC,WAAY,aACZr/H,aAAc,eACdC,QAAS,UACTC,UAAW,YACXC,UAAW,YACXC,WAAY,aACZC,QAAS,UACTE,OAAQ,SACRC,aAAc,eACdC,iBAAkB,mBAClBE,YAAa,cACbC,UAAW,YACXE,YAAa,cACbC,aAAc,eACdC,aAAc,eACdC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,UAAW,YACXk+H,aAAc,eACdj+H,UAAW,YACXC,SAAU,WACVC,WAAY,aACZC,WAAY,aACZC,QAAS,UACTC,QAAS,UACTC,OAAQ,SACRC,UAAW,YACXC,WAAY,aACZC,WAAY,aACZC,aAAc,eACdw9H,SAAU,WACVt9H,QAAS,UACTC,SAAU,WACVC,SAAU,WACVE,SAAU,WACVC,UAAW,YACXC,SAAU,WACVi9H,OAAQ,SACR/8H,UAAW,YACXC,UAAW,YACXC,SAAU,WACVC,UAAW,YACXC,aAAc,eACdC,SAAU,WACVE,SAAU,WACVC,eAAgB,iBAChBC,UAAW,YACXu8H,OAAQ,SACRC,iBAAkB,oBAClBC,kBAAmB,qBACnBC,WAAY,cACZC,QAAS,WACTC,cAAe,iBACfj8H,eAAgB,iBAChBk8H,gBAAiB,mBACjBC,eAAgB,kBAChBC,UAAW,aACX9iF,YAAa,eACb+iF,sBAAuB,yBACvBC,uBAAwB,0BACxBC,gBAAiB,mBACjBC,iBAAkB,oBAClBC,cAAe,iBACfC,eAAgB,kBAChBC,iBAAkB,oBAClBjjF,cAAe,iBACfC,YAAa,eACbt4C,SAAU,WACVu7H,WAAY,cACZC,eAAgB,kBAChBC,cAAe,iBACf7mD,OAAQ,SACR8mD,kBAAmB,qBACnBC,mBAAoB,sBACpBC,YAAa,eACbC,aAAc,gBACdC,WAAY,eACZC,YAAa,eACbC,SAAU,YACVC,aAAc,gBACdC,cAAe,iBACfC,aAAc,gBACdC,SAAU,aACVC,YAAa,gBACbC,YAAa,gBACbC,YAAa,eACbC,YAAa,eACbC,QAAS,WAETC,cAAe,gBACfC,cAAe,iBAEjB1sI,UAAWoU,GACXlZ,WAAY,CACVyxI,MAAO9vI,GACPqqI,aAAc3pI,GACdqvI,WAAY,KACZC,SAAU,KACV1F,kBAAmB,KACnB2F,WAAYvvI,GACZwvI,UAAWxvI,GACX6pI,WAAY,KACZ4F,OAAQzvI,GACR4hD,cAAe,KACf8tF,cAAe,KACfC,QAAS3vI,GACT4vI,UAAW,KACX9F,cAAe,KACf+F,cAAe,KACfC,YAAa,KACbC,KAAM,KACNjyH,MAAO,KACPkyH,KAAMhwI,GACNiwI,GAAI,KACJC,SAAU,KACVnG,UAAW/pI,GACXzC,UAAW6B,GACX+wI,KAAM,KACNnG,SAAU,KACVoG,cAAe,KACfnG,SAAU,KACVh2H,MAAO,KACPi2H,mBAAoB,KACpBC,0BAA2B,KAC3BC,aAAc,KACdC,eAAgB,KAChBprI,QAAS,KACToxI,kBAAmB,KACnBC,iBAAkB,KAClBxoI,YAAa,KACbyoI,OAAQ,KACRC,GAAI,KACJC,GAAI,KACJlvF,EAAG,KACH+oF,SAAU,KACVoG,cAAe,KACfC,QAAS3wI,GACT4wI,gBAAiB5wI,GACjB6wI,UAAW,KACX/zD,QAAS,KACTg0D,IAAK,KACLC,QAAS/wI,GACTuqI,iBAAkB,KAClBjiI,SAAUlI,GACV4wI,GAAI,KACJC,GAAI,KACJC,SAAU,KACVC,SAAU,KACVC,UAAWpxI,GACXwqI,iBAAkB,KAClB5pI,IAAK,KACLwT,MAAO,KACPi9H,SAAUrxI,GACVsxI,0BAA2B,KAC3BC,KAAM,KACNhnF,YAAavqD,GACbyqI,SAAU,KACVxyC,OAAQ,KACRu5C,UAAW,KACXC,YAAa,KACb/G,WAAY,KACZlgF,aAAc,KACdknF,UAAW,KACXC,eAAgB,KAChBhH,WAAY,KACZC,SAAU,KACVC,eAAgB,KAChBC,YAAa,KACbC,UAAW,KACXC,YAAa,KACbnhF,WAAY,KACZwqD,OAAQ,KACRu9B,GAAI,KACJhxB,KAAM,KACNixB,GAAI,KACJC,GAAI,KACJC,GAAI1yI,GACJ2yI,GAAI3yI,GACJ4rI,UAAW5rI,GACX6rI,2BAA4B,KAC5BC,yBAA0B,KAC1B8G,SAAU,KACVC,kBAAmB,KACnBC,cAAe,KACfjN,QAAS,KACTkN,QAASpyI,GACTqyI,kBAAmB,KACnBC,WAAY,KACZrpI,OAAQ,KACRG,KAAM,KACNC,SAAU,KACV+hI,UAAWprI,GACXqrI,aAAcrrI,GACdsrI,aAActrI,GACd1C,GAAI,KACJi1I,YAAavyI,GACburI,eAAgB,KAChBiH,kBAAmB,KACnBC,GAAI,KACJC,IAAK,KACLC,UAAW3yI,GACXykD,EAAGzkD,GACH4yI,GAAI5yI,GACJ6yI,GAAI7yI,GACJ8yI,GAAI9yI,GACJ+yI,GAAI/yI,GACJgzI,aAAc1zI,GACd2zI,iBAAkB,KAClBC,UAAW,KACXC,WAAY,KACZC,SAAU,KACVC,QAAS,KACThpI,KAAM,KACNipI,aAAc,KACd9H,cAAe,KACfC,cAAe,KACf8H,kBAAmBvzI,GACnBwzI,MAAO,KACP9H,UAAW,KACXC,UAAW,KACXC,YAAa,KACb6H,aAAc,KACdC,YAAa,KACbC,YAAa,KACbx8H,KAAM,KACNy8H,iBAAkB,KAClBC,UAAW,KACXC,aAAc,KACdlpI,IAAK,KACLE,MAAO,KACPipI,uBAAwB,KACxBC,sBAAuB,KACvBC,UAAWj0I,GACXk0I,UAAW,KACXnpI,OAAQ,KACRC,IAAK,KACLs5B,KAAM,KACN9oC,KAAM,KACNqwI,QAAS,KACTC,YAAa,KACbC,aAAc,KACdC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,MAAO,KACPC,UAAW,KACXC,WAAY,KACZ6H,WAAY,KACZC,SAAU,KACV90H,OAAQ,KACR/T,QAAS,KACTghI,WAAY,KACZ/gI,aAAc,KACdE,cAAe,KACf8gI,QAAS,KACT3gI,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBC,SAAU,KACVC,QAAS,KACTC,QAAS,KACTE,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACXw/H,MAAO,KACPv/H,QAAS,KACTC,QAAS,KACTC,QAAS,KACTs/H,UAAW,KACXC,WAAY,KACZr/H,aAAc,KACdC,QAAS,KACTC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,QAAS,KACTE,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBE,YAAa,KACbC,UAAW,KACXE,YAAa,KACbC,aAAc,KACdC,aAAc,KACdC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,UAAW,KACXk+H,aAAc,KACdj+H,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACdw9H,SAAU,KACVt9H,QAAS,KACTC,SAAU,KACVC,SAAU,KACVE,SAAU,KACVC,UAAW,KACXC,SAAU,KACVi9H,OAAQ,KACR/8H,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,SAAU,KACVE,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACXu8H,OAAQ,KACR/iF,QAAS,KACTuhC,SAAU,KACVthC,MAAO,KACPoqF,OAAQ,KACRC,YAAa,KACbvsB,OAAQ,KACR5+C,SAAU,KACVorE,QAAS,KACTvH,iBAAkBhtI,GAClBitI,kBAAmBjtI,GACnBktI,WAAY,KACZC,QAAS,KACT7yC,KAAM,KACNk6C,WAAYx0I,GACZy0I,oBAAqB,KACrBC,iBAAkB,KAClBC,aAAc,KACdC,MAAO,KACP/jI,KAAMzR,GACNy1I,MAAO,KACP3F,cAAe,KACf9B,cAAe,KACf0H,OAAQ,KACRC,UAAW/0I,GACXg1I,UAAWh1I,GACXi1I,UAAWj1I,GACXk1I,cAAe,KACfC,oBAAqB,KACrBC,eAAgB,KAChBC,UAAW,KACX32I,SAAUY,GACVqtE,EAAG,KACH2oE,OAAQ,KACRnkI,eAAgB,KAChBokI,KAAM,KACNC,KAAM,KACNpkI,IAAK9R,GACLgW,IAAKhW,GACL+tI,gBAAiB,KACjBoI,YAAa,KACbC,UAAW,KACXC,mBAAoBr2I,GACpBs2I,iBAAkBt2I,GAClBu2I,cAAev2I,GACfw2I,gBAAiBx2I,GACjB+kI,SAAU,KACV0R,QAAS,KACTx3I,OAAQ,KACRy3I,OAAQ,KACRC,GAAI,KACJC,GAAI,KACJC,MAAO,KACPC,KAAM,KACN9I,eAAgB,KAChB+I,KAAM,KACNC,MAAO,KACPC,aAAc,KACdC,iBAAkBx2I,GAClBy2I,iBAAkBz2I,GAClB02I,aAAc,KACdC,QAAS,KACTr+G,YAAa,KACbs+G,aAAc,KACdC,MAAO,KACPC,MAAO,KACPC,YAAa,KACbxJ,UAAW,KACX9iF,YAAa,KACb+iF,sBAAuBxtI,GACvBytI,uBAAwBztI,GACxB2b,OAAQ,KACRq7H,OAAQ,KACRtJ,gBAAiBpuI,GACjBquI,iBAAkB,KAClBC,cAAe,KACfC,eAAgB,KAChBC,iBAAkB9tI,GAClB6qD,cAAe7qD,GACf8qD,YAAa,KACbtrD,MAAO,KACPy3I,aAAcj3I,GACdk3I,aAAc,KACdC,oBAAqB,KACrBC,WAAY,KACZC,cAAe,KACfC,qBAAsB,KACtBC,eAAgBj4I,GAChBkT,SAAUxS,GACVw3I,YAAa,KACbl8I,OAAQ,KACRm8I,QAASz3I,GACT03I,QAAS13I,GACT+tI,WAAY,KACZC,eAAgB,KAChBC,cAAe,KACf0J,WAAY,KACZxI,cAAe,KACf18H,MAAO,KACPmlI,kBAAmB,KACnBn6I,KAAM,KACN2pF,OAAQ9nF,GACRuhH,GAAI,KACJp+G,UAAW,KACXo1I,GAAI,KACJC,GAAI,KACJ5J,kBAAmBluI,GACnBmuI,mBAAoBnuI,GACpB8hC,QAAS,KACTssG,YAAa,KACbC,aAAc,KACdC,WAAYtuI,GACZ1B,OAAQ,KACRiwI,YAAavuI,GACb0uI,cAAe1uI,GACf2uI,aAAc,KACdH,SAAUxuI,GACVyuI,aAAczuI,GACdgW,QAAS,KACT44H,SAAU5uI,GACV6uI,YAAa7uI,GACb8uI,YAAa9uI,GACb+3I,QAAS,KACTC,WAAY,KACZC,WAAY,KACZplI,MAAO,KACPqlI,OAAQ,KACRnJ,YAAa,KACbC,YAAa,KACb1rE,EAAG,KACH60E,GAAI,KACJC,GAAI,KACJC,iBAAkB,KAClBpJ,QAASjvI,GACT4sE,EAAG,KACH0rE,GAAI,KACJC,GAAI,KACJC,iBAAkB,KAClBv2F,EAAG,KACHw2F,WAAY,QCliBHn4I,GAAO2B,GAAM,CAACE,GAAKD,GAAOE,GAAOC,GAAMq2I,IAAW,QAClD3sC,GAAM9pG,GAAM,CAACE,GAAKD,GAAOE,GAAOC,GAAMs2I,IAAU,OCM9C,SAASC,GAAar9I,GACnC,GAAIA,EAAQs9I,iBAAmBt9I,EAAQu9I,mBACrC,MAAM,IAAIv/H,UACR,4EAIJ,GACEhe,EAAQs9I,iBACRt9I,EAAQu9I,oBACRv9I,EAAQw9I,aAER,OAAO,SAACzrB,GACN0Z,GAAM1Z,EAAM,WAAW,SAAC3uH,EAAMtB,EAAO27I,GACnC,IAEIx+G,EAFEyC,EAAsC+7G,EAc5C,GAVIz9I,EAAQs9I,gBACVr+G,GAAUj/B,EAAQs9I,gBAAgBn0F,SAAS/lD,EAAKjB,SACvCnC,EAAQu9I,qBACjBt+G,EAASj/B,EAAQu9I,mBAAmBp0F,SAAS/lD,EAAKjB,WAG/C88B,GAAUj/B,EAAQw9I,cAAiC,kBAAV17I,IAC5Cm9B,GAAUj/B,EAAQw9I,aAAap6I,EAAMtB,EAAO4/B,IAG1CzC,GAA2B,kBAAVn9B,EAAoB,CACQ,MAA/C,GAAI9B,EAAQ09I,kBAAoBt6I,EAAKf,UACnC,EAAAq/B,EAAOr/B,UAASujC,OAAM,SAAC9jC,EAAO,GAAC,SAAKsB,EAAKf,iBAEzCq/B,EAAOr/B,SAASujC,OAAO9jC,EAAO,GAGhC,OAAOA,CACT,CAGF,GACF,CAEJ,CCjEA,IAAM67I,GAAY,CAAC,OAAQ,QAAS,SAAU,sBCIvC,SAASl/H,GAAWm/H,GAEzB,IAAIx9I,EAEFw9I,GAA0B,kBAAVA,GAAqC,SAAfA,EAAM17I,KAExC07I,EAAMx9I,OAAS,GACfw9I,EAIN,MAAwB,kBAAVx9I,GAA4D,KAAtCA,EAAM6F,QAAQ,eAAgB,GACpE,CCRA,IAAMJ,GAAQ,kBACRK,GAAO,UACPI,GAAM,SAOL,SAAShE,GAAKM,EAAQxC,GAC3B,IAAMsF,EAASlD,GAAUpC,GACrBuF,EAAOvF,EACPwF,EAAOJ,GAEX,GAAIE,KAAU9C,EAAO8C,OACnB,OAAO9C,EAAOO,SAASP,EAAO8C,OAAOA,IAGvC,GAAIA,EAAOzE,OAAS,GAA4B,SAAvByE,EAAO7D,MAAM,EAAG,IAAiBgE,GAAMC,KAAK1F,GAAQ,CAE3E,GAAwB,MAApBA,EAAM2F,OAAO,GAAY,CAE3B,IAAMwtF,EAAOnzF,EAAMyB,MAAM,GAAGoE,QAAQC,GAAMC,IAC1CR,EAAO,OAAS4tF,EAAKxtF,OAAO,GAAGK,cAAgBmtF,EAAK1xF,MAAM,EAC5D,KAAO,CAEL,IAAM0xF,EAAOnzF,EAAMyB,MAAM,GAEzB,IAAKqE,GAAKJ,KAAKytF,GAAO,CACpB,IAAIsqD,EAAStqD,EAAKttF,QAAQK,GAAKC,IAEN,MAArBs3I,EAAO93I,OAAO,KAChB83I,EAAS,IAAMA,GAGjBz9I,EAAQ,OAASy9I,CACnB,CACF,CAEAj4I,EAAOL,EACT,CAEA,OAAO,IAAIK,EAAKD,EAAMvF,EACxB,CAMA,SAASmG,GAAME,GACb,MAAO,IAAMA,EAAGxD,aAClB,CAMA,SAASkD,GAAUM,GACjB,OAAOA,EAAGV,OAAO,GAAGK,aACtB,CCnEO,IAAM03I,GAAc,CACzBzlI,QAAS,UACT02H,SAAU,WACVxgI,OAAQ,SACR4jI,gBAAiB,kBACjBC,iBAAkB,mBAClBC,cAAe,gBACfC,eAAgB,iBAChBC,iBAAkB,mBAClB1mD,OAAQ,SACRrvE,aAAc,eACdC,aAAc,eACdC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,WAAY,aACZC,UAAW,YACXK,WAAY,cCXP,SAAS8G,GAAM7jB,GACpB,IAAM+E,EAAQX,OAAOpE,GAAS,IAAIkF,OAClC,OAAOH,EAAQA,EAAMiY,MAAM,iBAAmB,EAChD,CAQO,SAASkqE,GAAUvkF,GACxB,OAAOA,EAAOiB,KAAK,KAAKsB,MAC1B,CCPO,SAAS2e,GAAM7jB,GAWpB,IATA,IAKIiF,EAEA2f,EAPAqqE,EAAS,GACTlqF,EAAQX,OAAOpE,GAAS,IACxB0B,EAAQqD,EAAMC,QAAQ,KACtB3D,EAAQ,GAMJ4D,IACS,IAAXvD,IACFA,EAAQqD,EAAMlE,OACdoE,GAAM,KAGR2f,EAAQ7f,EAAMtD,MAAMJ,EAAOK,GAAOwD,SAEpBD,GACZgqF,EAAOptF,KAAK+iB,GAGdvjB,EAAQK,EAAQ,EAChBA,EAAQqD,EAAMC,QAAQ,IAAK3D,GAG7B,OAAO4tF,CACT,CASO,SAAS/H,GAAUvkF,EAAQ/C,GAChC,IAAI6hB,EAAW7hB,GAAW,CAAC,EAO3B,MAJkC,KAA9B+C,EAAOA,EAAO9B,OAAS,KACzB8B,EAASA,EAAOmB,OAAO,KAGlBnB,EACJiB,MACE6d,EAASk8H,SAAW,IAAM,IACzB,MACsB,IAArBl8H,EAASm8H,QAAoB,GAAK,MAEtC14I,MACL,gBC4CMjC,GAAM,CAAC,EAAEvE,eAITm/I,GAAgB,IAAI74F,IAAI,CAAC,QAAS,QAAS,QAAS,QAAS,OAM5D,SAAS84F,GAAgBzuE,EAASrsE,GAOvC,IALA,IAGI4rC,EAHE3sC,EAAW,GACb87I,GAAc,IAITA,EAAa/6I,EAAKf,SAASpB,QAGf,aAFnB+tC,EAAQ5rC,EAAKf,SAAS87I,IAEZj8I,KACRG,EAASJ,KAAKm8I,GAAQ3uE,EAASzgC,EAAOmvG,EAAY/6I,IAC1B,SAAf4rC,EAAM9sC,KASC,YAAdkB,EAAKlB,MACJ+7I,GAAc72E,IAAIhkE,EAAKjB,UACvBsc,GAAWuwB,IAEZ3sC,EAASJ,KAAK+sC,EAAM5uC,OAEE,QAAf4uC,EAAM9sC,MAAmButE,EAAQzvE,QAAQq+I,UAElDh8I,EAASJ,KAAK+sC,EAAM5uC,OAIxB,OAAOiC,CACT,CAQA,SAAS+7I,GAAQ3uE,EAASrsE,EAAMtB,EAAO4/B,GACrC,IASIv+B,EATEnD,EAAUyvE,EAAQzvE,QAClBs+I,EAAe7uE,EAAQ7sE,OAGvB3C,EAAOmD,EAAKjB,QAEZC,EAAa,CAAC,EAChBQ,EAAS07I,EASb,GAL2B,SAAvBA,EAAah0I,OAA6B,QAATrK,IACnC2C,EAAS4tG,GACT/gC,EAAQ7sE,OAASA,GAGfQ,EAAKhB,WACP,IAAKe,KAAYC,EAAKhB,WAChBiB,GAAI9D,KAAK6D,EAAKhB,WAAYe,IAC5BK,GAAYpB,EAAYe,EAAUC,EAAKhB,WAAWe,GAAWssE,GAKtD,OAATxvE,GAA0B,OAATA,GACnBwvE,EAAQ8uE,YAGV,IAAMl8I,EAAW67I,GAAgBzuE,EAASrsE,GAE7B,OAATnD,GAA0B,OAATA,GACnBwvE,EAAQ8uE,YAIV9uE,EAAQ7sE,OAAS07I,EAIjB,IA4OuB/+H,EA5OjBjB,EAAWlb,EAAKkb,UAAY,CAChC7c,MAAO,CAAC8c,KAAM,KAAML,OAAQ,KAAM6F,OAAQ,MAC1C1e,IAAK,CAACkZ,KAAM,KAAML,OAAQ,KAAM6F,OAAQ,OAEpC0zF,EACJz3G,EAAQw+I,YAAcn7I,GAAI9D,KAAKS,EAAQw+I,WAAYv+I,GAC/CD,EAAQw+I,WAAWv+I,GACnBA,EACAi1F,EAA6B,kBAAduiB,GAA0BA,IAAcgnC,EAAAA,SAE7D,IAAKC,GAAAA,mBAA2BjnC,GAC9B,MAAM,IAAIz5F,UAAU,uBAAD,OACO/d,EAAI,uCA2DhC,GAvDAmC,EAAW1C,IAAM,CACfO,EACAqe,EAAS7c,MAAM8c,KACfD,EAAS7c,MAAMyc,OACfpc,GACAkC,KAAK,KAEM,MAAT/D,GAAgBD,EAAQ2+I,aAC1Bv8I,EAAWrC,OACqB,oBAAvBC,EAAQ2+I,WACX3+I,EAAQ2+I,WACNn6I,OAAOpC,EAAWyL,MAAQ,IAC1BzK,EAAKf,SACuB,kBAArBD,EAAW8U,MAAqB9U,EAAW8U,MAAQ,MAE5DlX,EAAQ2+I,YAGH,MAAT1+I,GAAgBD,EAAQ4+I,mBAC1Bx8I,EAAWyL,KAAO7N,EAAQ4+I,iBACxBp6I,OAAOpC,EAAWyL,MAAQ,IAC1BzK,EAAKf,SACuB,kBAArBD,EAAW8U,MAAqB9U,EAAW8U,MAAQ,OAK3Dg+E,GACQ,SAATj1F,GACgB,YAAhByhC,EAAOx/B,MACY,QAAnBw/B,EAAOv/B,UAEPC,EAAW8wF,QAAS,GAInBgC,GACS,OAATj1F,GACU,OAATA,GACS,OAATA,GACS,OAATA,GACS,OAATA,GACS,OAATA,IAEFmC,EAAWg1F,MAAQxyF,OAAO+e,SAAS1jB,EAAK8F,OAAO,GAAI,KAGxC,QAAT9F,GAAkBD,EAAQ6+I,oBAC5Bz8I,EAAWzB,IAAMX,EAAQ6+I,kBACvBr6I,OAAOpC,EAAWzB,KAAO,IACzB6D,OAAOpC,EAAWkJ,KAAO,IACG,kBAArBlJ,EAAW8U,MAAqB9U,EAAW8U,MAAQ,QAIzDg+E,GAAkB,OAATj1F,GAAiC,YAAhByhC,EAAOx/B,KAAoB,CACxD,IAAMiD,EA0DV,SAAyB/B,GACvB,IAAItB,GAAS,EAEb,OAASA,EAAQsB,EAAKf,SAASpB,QAAQ,CACrC,IAAM+tC,EAAQ5rC,EAAKf,SAASP,GAE5B,GAAmB,YAAfktC,EAAM9sC,MAAwC,UAAlB8sC,EAAM7sC,QACpC,OAAO6sC,CAEX,CAEA,OAAO,IACT,CAtEkB8vG,CAAgB17I,GAC9BhB,EAAW2J,QACT5G,GAASA,EAAM/C,WAAa8mG,QAAQ/jG,EAAM/C,WAAW2J,SAAW,KAClE3J,EAAWN,MAAQi9I,GAAuBr9G,EAAQt+B,GAClDhB,EAAWooI,QAA6B,OAAnB9oG,EAAOv/B,OAC9B,CA4CA,OA1CK+yF,GAAmB,OAATj1F,GAA0B,OAATA,IAC9BmC,EAAWooI,QAAmB,OAATvqI,EACrBmC,EAAWkoI,MAAQ76D,EAAQ8uE,WAGhB,OAATt+I,GAA0B,OAATA,IACfmC,EAAWoV,QACRpV,EAAW6B,QAAO7B,EAAW6B,MAAQ,CAAC,GAE3C7B,EAAW6B,MAAM+6I,UAAY58I,EAAWoV,aACjCpV,EAAWoV,OAGf09E,IACH9yF,EAAW68I,SAAoB,OAATh/I,IAIrBi1F,GAAkB,OAATj1F,GAAiC,YAAhByhC,EAAOx/B,OACpCE,EAAW68I,SAAW/1C,QAA2B,UAAnBxnE,EAAOv/B,UAInCnC,EAAQk/I,YACV98I,EAAW,kBAsIN,EADgBmd,EArI0BjB,GAuI3C7c,MAAM8c,KACV,IACAgB,EAAI9d,MAAMyc,OACV,IACAqB,EAAIla,IAAIkZ,KACR,IACAgB,EAAIla,IAAI6Y,QAEPsuE,KAAI,SAACxmC,GAAC,OAAKxhD,OAAOwhD,EAAE,IACpBhiD,KAAK,MA7IHkxF,GAASl1F,EAAQm/I,eACpB/8I,EAAWg9I,eAAiBh8I,EAAKkb,WAI9B42E,GAASl1F,EAAQq/I,sBACpBj9I,EAAWN,MAAQi9I,GAAuBr9G,EAAQt+B,GAClDhB,EAAWk9I,aAAeP,GAAuBr9G,IAG9CwzD,IACH9yF,EAAWgB,KAAOA,GAIbf,EAASpB,OAAS,EACrBw9I,EAAAA,cAAoBhnC,EAAWr1G,EAAYC,GAC3Co8I,EAAAA,cAAoBhnC,EAAWr1G,EACrC,CAyBA,SAAS28I,GAAuBr9G,EAAQt+B,GAItC,IAHA,IAAItB,GAAS,EACT2qF,EAAQ,IAEH3qF,EAAQ4/B,EAAOr/B,SAASpB,QAC3BygC,EAAOr/B,SAASP,KAAWsB,GACK,YAAhCs+B,EAAOr/B,SAASP,GAAOI,MAAoBuqF,IAGjD,OAAOA,CACT,CAQA,SAASjpF,GAAYhC,EAAOmE,EAAMvF,EAAOytF,GACvC,IAAMlqF,EAAOrB,GAAKurF,EAAIjrF,OAAQ+C,GAC1B3C,EAAS5C,EAIE,OAAX4C,QAA8BY,IAAXZ,GAAwBA,IAAWA,IAMtD1D,MAAMF,QAAQ4D,KAChBA,EAASW,EAAKG,eAAiBnB,GAAOK,GAAUN,GAAOM,IAGnC,UAAlBW,EAAKR,UAA0C,kBAAXH,IACtCA,EAkBJ,SAAoB5C,GAElB,IAAM4C,EAAS,CAAC,EAEhB,IACEiB,GAAM7D,EAAOmoD,EAGf,CAFE,SAEF,CAEA,OAAOvlD,EAMP,SAASulD,EAAStoD,EAAM8lD,GACtB,IAAMmD,EAAyB,SAArBjpD,EAAK4B,MAAM,EAAG,GAAgB,MAAH,OAAS5B,EAAK4B,MAAM,IAAO5B,EAChE+C,EAAOkmD,EAAEjjD,QAAQ,YAAas5I,KAAkBx5F,CAClD,CACF,CAtCay5F,CAAWx8I,IAGlBW,EAAK2G,OAAS3G,EAAKR,SACrB3B,EACE6B,GAAI9D,KAAKu+I,GAAan6I,EAAKR,UACvB26I,GAAYn6I,EAAKR,UACjBQ,EAAKR,UACPH,EACKW,EAAKqC,YACdxE,EAAMmC,EAAKqC,WAAahD,GAE5B,CAgCA,SAASu8I,GAAcp4I,EAAGo9H,GACxB,OAAOA,EAAGn+H,aACZ,CCzYA,IAAM/C,GAAM,CAAC,EAAEvE,eAKT2gJ,GAAa,CACjBC,UAAW,CAACp6B,GAAI,aAAcvjH,GAAI,kCAClC49I,WAAY,CAAC59I,GAAI,wCACjBwrI,mBAAoB,CAACxrI,GAAI,wCACzB69I,WAAY,CAAC79I,GAAI,wCACjB2c,OAAQ,CAAC4mG,GAAI,WAAYvjH,GAAI,6BAC7B89I,UAAW,CACTv6B,GAAI,eACJvjH,GAAI,sDAEN+9I,aAAc,CACZx6B,GAAI,kBACJvjH,GAAI,sDAENg+I,gBAAiB,CACfz6B,GAAI,qBACJvjH,GAAI,sDAENi+I,iBAAkB,CAChB16B,GAAI,sBACJvjH,GAAI,mDAUD,SAASk+I,GAAcjgJ,GAC5B,IAAK,IAAMN,KAAO+/I,GAChB,GAAIp8I,GAAI9D,KAAKkgJ,GAAY//I,IAAQ2D,GAAI9D,KAAKS,EAASN,GAAM,CACvD,IAAMwgJ,EAAcT,GAAW//I,GAC/Bg7E,QAAQylE,KAAK,oCAAD,OAERD,EAAY56B,GAAK,QAAH,OAAY46B,EAAY56B,GAAE,gBAAkB,SAAQ,aAC9D5lH,EAAG,mBAxCf,oEAwCoC,YAAIwgJ,EAAYn+I,GAAE,4BAE3C09I,GAAW//I,EACpB,CAGF,IAAMixH,EAAYX,IACfM,IAAI8vB,IAEJ9vB,IAAItwH,EAAQqgJ,eAAiBrgJ,EAAQuvG,SAAW,IAChD+gB,IAAIgwB,GAAc,CAAC/S,oBAAoB,IACvCjd,IAAItwH,EAAQugJ,eAAiB,IAC7BjwB,IAAI+sB,GAAcr9I,GAEf8+F,EAAO,IAAImwB,EAEe,kBAArBjvH,EAAQqC,SACjBy8F,EAAK1+F,MAAQJ,EAAQqC,cACSuB,IAArB5D,EAAQqC,UAA+C,OAArBrC,EAAQqC,UACnDq4E,QAAQylE,KAAK,uEAAD,OACgEngJ,EAAQqC,SAAQ,OAI9F,IAAMm+I,EAAW7vB,EAAUqB,QAAQrB,EAAU1sG,MAAM66E,GAAOA,GAE1D,GAAsB,SAAlB0hD,EAASt+I,KACX,MAAM,IAAI8b,UAAU,0BAItB,IAAIhb,EAASy7I,EAAAA,cACXA,EAAAA,SACA,CAAC,EACDP,GAAgB,CAACl+I,QAAAA,EAAS4C,OAAQmC,GAAMw5I,UAAW,GAAIiC,IAOzD,OAJIxgJ,EAAQgC,YACVgB,EAASy7I,EAAAA,cAAoB,MAAO,CAACz8I,UAAWhC,EAAQgC,WAAYgB,IAG/DA,CACT,CCzHe,SAASy9I,KAYtB,OAXAA,GAAW7hJ,OAAO6gC,OAAS7gC,OAAO6gC,OAAOioC,OAAS,SAAU3nE,GAC1D,IAAK,IAAIiB,EAAI,EAAGA,EAAID,UAAUE,OAAQD,IAAK,CACzC,IAAI0d,EAAS3d,UAAUC,GACvB,IAAK,IAAItB,KAAOgf,EACV9f,OAAOC,UAAUC,eAAeS,KAAKmf,EAAQhf,KAC/CK,EAAOL,GAAOgf,EAAOhf,GAG3B,CACA,OAAOK,CACT,EACO0gJ,GAAStkI,MAAMJ,KAAMhb,UAC9B,CCVA,SAAS2oH,GAAQ9vG,EAAQ+vG,GAAkB,IAAIjmF,EAAO9kC,OAAO8kC,KAAK9pB,GAAS,GAAIhb,OAAOgrH,sBAAuB,CAAE,IAAIC,EAAUjrH,OAAOgrH,sBAAsBhwG,GAAS+vG,IAAmBE,EAAUA,EAAQntB,QAAO,SAAUotB,GAAO,OAAOlrH,OAAOO,yBAAyBya,EAAQkwG,GAAK5pH,UAAY,KAAKwjC,EAAKzhC,KAAKka,MAAMunB,EAAMmmF,EAAU,CAAE,OAAOnmF,CAAM,CAEpV,SAASg9G,GAAc3gJ,GAAU,IAAK,IAAIiB,EAAI,EAAGA,EAAID,UAAUE,OAAQD,IAAK,CAAE,IAAI0d,EAAS,MAAQ3d,UAAUC,GAAKD,UAAUC,GAAK,CAAC,EAAGA,EAAI,EAAI0oH,GAAQ9qH,OAAO8f,IAAS,GAAIklB,SAAQ,SAAUlkC,GAAO+pH,EAAgB1pH,EAAQL,EAAKgf,EAAOhf,GAAO,IAAKd,OAAOorH,0BAA4BprH,OAAOqxG,iBAAiBlwG,EAAQnB,OAAOorH,0BAA0BtrG,IAAWgrG,GAAQ9qH,OAAO8f,IAASklB,SAAQ,SAAUlkC,GAAOd,OAAOK,eAAec,EAAQL,EAAKd,OAAOO,yBAAyBuf,EAAQhf,GAAO,GAAI,CAAE,OAAOK,CAAQ,CFsHzfkgJ,GAAcxxE,aAAe,CAACmwE,iBPrHvB,SAAwBn7C,GAC7B,IAAMjiC,GAAOiiC,GAAO,IAAIn+F,OAClBq7I,EAAQn/E,EAAIz7D,OAAO,GAEzB,GAAc,MAAV46I,GAA2B,MAAVA,EACnB,OAAOn/E,EAGT,IAAMkxC,EAAQlxC,EAAIp8D,QAAQ,KAC1B,IAAe,IAAXstG,EACF,OAAOlxC,EAKT,IAFA,IAAI1/D,GAAS,IAEJA,EAAQ67I,GAAU18I,QAAQ,CACjC,IAAM0tH,EAAWgvB,GAAU77I,GAE3B,GACE4wG,IAAUic,EAAS1tH,QACnBugE,EAAI3/D,MAAM,EAAG8sH,EAAS1tH,QAAQgC,gBAAkB0rH,EAEhD,OAAOntD,CAEX,CAGA,OAAe,KADf1/D,EAAQ0/D,EAAIp8D,QAAQ,OACAstG,EAAQ5wG,IAKb,KADfA,EAAQ0/D,EAAIp8D,QAAQ,OACAstG,EAAQ5wG,EAJnB0/D,EASF,oBACT,GOiFAy+E,GAAcW,UAAY,CAExBv+I,SAAUyiD,GAAAA,OAEV9iD,UAAW8iD,GAAAA,OAEX04F,aAAc14F,GAAAA,KACdw4F,gBAAiBx4F,GAAAA,QAAkBA,GAAAA,QACnCy4F,mBAAoBz4F,GAAAA,QAAkBA,GAAAA,QACtC44F,iBAAkB54F,GAAAA,KAElBu7F,cAAev7F,GAAAA,QACbA,GAAAA,UAAoB,CAClBA,GAAAA,OACAA,GAAAA,KACAA,GAAAA,QAAkBA,GAAAA,UAAoB,CAACA,GAAAA,OAAkBA,GAAAA,WAG7Dy7F,cAAez7F,GAAAA,QACbA,GAAAA,UAAoB,CAClBA,GAAAA,OACAA,GAAAA,KACAA,GAAAA,QAAkBA,GAAAA,UAAoB,CAACA,GAAAA,OAAkBA,GAAAA,WAI7Do6F,UAAWp6F,GAAAA,KACXq6F,aAAcr6F,GAAAA,KACdu5F,SAAUv5F,GAAAA,KACVu6F,oBAAqBv6F,GAAAA,KACrB85F,iBAAkB95F,GAAAA,UAAoB,CAACA,GAAAA,KAAgBA,GAAAA,OACvD65F,WAAY75F,GAAAA,UAAoB,CAACA,GAAAA,KAAgBA,GAAAA,SACjD+5F,kBAAmB/5F,GAAAA,KACnB05F,WAAY15F,GAAAA,QE9Hd,IAAI+7F,GAAwB,CAAC,EAE7B,SAASC,GAAyBC,GAChC,GAA0B,IAAtBA,EAAW9/I,QAAsC,IAAtB8/I,EAAW9/I,OAAc,OAAO8/I,EAC/D,IAAIrhJ,EAAMqhJ,EAAW/8I,KAAK,KAM1B,OAJK68I,GAAsBnhJ,KACzBmhJ,GAAsBnhJ,GA3B1B,SAA8BL,GAC5B,IAAI2hJ,EAAY3hJ,EAAI4B,OACpB,OAAkB,IAAd+/I,GAAiC,IAAdA,EAAwB3hJ,EAE7B,IAAd2hJ,EAEK,CAAC3hJ,EAAI,GAAIA,EAAI,GAAI,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,KAGjF,IAAd2hJ,EACK,CAAC3hJ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,KAGrmB2hJ,GAAa,EAGR,CAAC3hJ,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,IAAK,GAAG6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,EAAI,GAAI,KAAK6E,OAAO7E,E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","sources":["../node_modules/extend/index.js","../node_modules/hast-util-parse-selector/index.js","../node_modules/hastscript/factory.js","../node_modules/hastscript/html.js","../node_modules/hastscript/index.js","../node_modules/hastscript/node_modules/comma-separated-tokens/index.js","../node_modules/hastscript/node_modules/property-information/find.js","../node_modules/hastscript/node_modules/property-information/html.js","../node_modules/hastscript/node_modules/property-information/lib/aria.js","../node_modules/hastscript/node_modules/property-information/lib/html.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/hastscript/node_modules/property-information/lib/util/create.js","../node_modules/hastscript/node_modules/property-information/lib/util/defined-info.js","../node_modules/hastscript/node_modules/property-information/lib/util/info.js","../node_modules/hastscript/node_modules/property-information/lib/util/merge.js","../node_modules/hastscript/node_modules/property-information/lib/util/schema.js","../node_modules/hastscript/node_modules/property-information/lib/util/types.js","../node_modules/hastscript/node_modules/property-information/lib/xlink.js","../node_modules/hastscript/node_modules/property-information/lib/xml.js","../node_modules/hastscript/node_modules/property-information/lib/xmlns.js","../node_modules/hastscript/node_modules/property-information/normalize.js","../node_modules/hastscript/node_modules/space-separated-tokens/index.js","../node_modules/inline-style-parser/index.js","../node_modules/is-alphabetical/index.js","../node_modules/is-alphanumerical/index.js","../node_modules/is-buffer/index.js","../node_modules/is-decimal/index.js","../node_modules/is-hexadecimal/index.js","../node_modules/mdurl/encode.js","../node_modules/parse-entities/decode-entity.browser.js","../node_modules/parse-entities/index.js","../node_modules/parse5/lib/common/doctype.js","../node_modules/parse5/lib/common/error-codes.js","../node_modules/parse5/lib/common/foreign-content.js","../node_modules/parse5/lib/common/html.js","../node_modules/parse5/lib/common/unicode.js","../node_modules/parse5/lib/extensions/error-reporting/mixin-base.js","../node_modules/parse5/lib/extensions/error-reporting/parser-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/preprocessor-mixin.js","../node_modules/parse5/lib/extensions/error-reporting/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/location-info/open-element-stack-mixin.js","../node_modules/parse5/lib/extensions/location-info/parser-mixin.js","../node_modules/parse5/lib/extensions/location-info/tokenizer-mixin.js","../node_modules/parse5/lib/extensions/position-tracking/preprocessor-mixin.js","../node_modules/parse5/lib/parser/formatting-element-list.js","../node_modules/parse5/lib/parser/index.js","../node_modules/parse5/lib/parser/open-element-stack.js","../node_modules/parse5/lib/tokenizer/index.js","../node_modules/parse5/lib/tokenizer/named-entity-data.js","../node_modules/parse5/lib/tokenizer/preprocessor.js","../node_modules/parse5/lib/tree-adapters/default.js","../node_modules/parse5/lib/utils/merge-options.js","../node_modules/parse5/lib/utils/mixin.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.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/refractor/core.js","../node_modules/refractor/index.js","../node_modules/refractor/lang/abap.js","../node_modules/refractor/lang/abnf.js","../node_modules/refractor/lang/actionscript.js","../node_modules/refractor/lang/ada.js","../node_modules/refractor/lang/agda.js","../node_modules/refractor/lang/al.js","../node_modules/refractor/lang/antlr4.js","../node_modules/refractor/lang/apacheconf.js","../node_modules/refractor/lang/apex.js","../node_modules/refractor/lang/apl.js","../node_modules/refractor/lang/applescript.js","../node_modules/refractor/lang/aql.js","../node_modules/refractor/lang/arduino.js","../node_modules/refractor/lang/arff.js","../node_modules/refractor/lang/asciidoc.js","../node_modules/refractor/lang/asm6502.js","../node_modules/refractor/lang/asmatmel.js","../node_modules/refractor/lang/aspnet.js","../node_modules/refractor/lang/autohotkey.js","../node_modules/refractor/lang/autoit.js","../node_modules/refractor/lang/avisynth.js","../node_modules/refractor/lang/avro-idl.js","../node_modules/refractor/lang/bash.js","../node_modules/refractor/lang/basic.js","../node_modules/refractor/lang/batch.js","../node_modules/refractor/lang/bbcode.js","../node_modules/refractor/lang/bicep.js","../node_modules/refractor/lang/birb.js","../node_modules/refractor/lang/bison.js","../node_modules/refractor/lang/bnf.js","../node_modules/refractor/lang/brainfuck.js","../node_modules/refractor/lang/brightscript.js","../node_modules/refractor/lang/bro.js","../node_modules/refractor/lang/bsl.js","../node_modules/refractor/lang/c.js","../node_modules/refractor/lang/cfscript.js","../node_modules/refractor/lang/chaiscript.js","../node_modules/refractor/lang/cil.js","../node_modules/refractor/lang/clike.js","../node_modules/refractor/lang/clojure.js","../node_modules/refractor/lang/cmake.js","../node_modules/refractor/lang/cobol.js","../node_modules/refractor/lang/coffeescript.js","../node_modules/refractor/lang/concurnas.js","../node_modules/refractor/lang/coq.js","../node_modules/refractor/lang/cpp.js","../node_modules/refractor/lang/crystal.js","../node_modules/refractor/lang/csharp.js","../node_modules/refractor/lang/cshtml.js","../node_modules/refractor/lang/csp.js","../node_modules/refractor/lang/css-extras.js","../node_modules/refractor/lang/css.js","../node_modules/refractor/lang/csv.js","../node_modules/refractor/lang/cypher.js","../node_modules/refractor/lang/d.js","../node_modules/refractor/lang/dart.js","../node_modules/refractor/lang/dataweave.js","../node_modules/refractor/lang/dax.js","../node_modules/refractor/lang/dhall.js","../node_modules/refractor/lang/diff.js","../node_modules/refractor/lang/django.js","../node_modules/refractor/lang/dns-zone-file.js","../node_modules/refractor/lang/docker.js","../node_modules/refractor/lang/dot.js","../node_modules/refractor/lang/ebnf.js","../node_modules/refractor/lang/editorconfig.js","../node_modules/refractor/lang/eiffel.js","../node_modules/refractor/lang/ejs.js","../node_modules/refractor/lang/elixir.js","../node_modules/refractor/lang/elm.js","../node_modules/refractor/lang/erb.js","../node_modules/refractor/lang/erlang.js","../node_modules/refractor/lang/etlua.js","../node_modules/refractor/lang/excel-formula.js","../node_modules/refractor/lang/factor.js","../node_modules/refractor/lang/false.js","../node_modules/refractor/lang/firestore-security-rules.js","../node_modules/refractor/lang/flow.js","../node_modules/refractor/lang/fortran.js","../node_modules/refractor/lang/fsharp.js","../node_modules/refractor/lang/ftl.js","../node_modules/refractor/lang/gap.js","../node_modules/refractor/lang/gcode.js","../node_modules/refractor/lang/gdscript.js","../node_modules/refractor/lang/gedcom.js","../node_modules/refractor/lang/gherkin.js","../node_modules/refractor/lang/git.js","../node_modules/refractor/lang/glsl.js","../node_modules/refractor/lang/gml.js","../node_modules/refractor/lang/gn.js","../node_modules/refractor/lang/go-module.js","../node_modules/refractor/lang/go.js","../node_modules/refractor/lang/graphql.js","../node_modules/refractor/lang/groovy.js","../node_modules/refractor/lang/haml.js","../node_modules/refractor/lang/handlebars.js","../node_modules/refractor/lang/haskell.js","../node_modules/refractor/lang/haxe.js","../node_modules/refractor/lang/hcl.js","../node_modules/refractor/lang/hlsl.js","../node_modules/refractor/lang/hoon.js","../node_modules/refractor/lang/hpkp.js","../node_modules/refractor/lang/hsts.js","../node_modules/refractor/lang/http.js","../node_modules/refractor/lang/ichigojam.js","../node_modules/refractor/lang/icon.js","../node_modules/refractor/lang/icu-message-format.js","../node_modules/refractor/lang/idris.js","../node_modules/refractor/lang/iecst.js","../node_modules/refractor/lang/ignore.js","../node_modules/refractor/lang/inform7.js","../node_modules/refractor/lang/ini.js","../node_modules/refractor/lang/io.js","../node_modules/refractor/lang/j.js","../node_modules/refractor/lang/java.js","../node_modules/refractor/lang/javadoc.js","../node_modules/refractor/lang/javadoclike.js","../node_modules/refractor/lang/javascript.js","../node_modules/refractor/lang/javastacktrace.js","../node_modules/refractor/lang/jexl.js","../node_modules/refractor/lang/jolie.js","../node_modules/refractor/lang/jq.js","../node_modules/refractor/lang/js-extras.js","../node_modules/refractor/lang/js-templates.js","../node_modules/refractor/lang/jsdoc.js","../node_modules/refractor/lang/json.js","../node_modules/refractor/lang/json5.js","../node_modules/refractor/lang/jsonp.js","../node_modules/refractor/lang/jsstacktrace.js","../node_modules/refractor/lang/jsx.js","../node_modules/refractor/lang/julia.js","../node_modules/refractor/lang/keepalived.js","../node_modules/refractor/lang/keyman.js","../node_modules/refractor/lang/kotlin.js","../node_modules/refractor/lang/kumir.js","../node_modules/refractor/lang/kusto.js","../node_modules/refractor/lang/latex.js","../node_modules/refractor/lang/latte.js","../node_modules/refractor/lang/less.js","../node_modules/refractor/lang/lilypond.js","../node_modules/refractor/lang/liquid.js","../node_modules/refractor/lang/lisp.js","../node_modules/refractor/lang/livescript.js","../node_modules/refractor/lang/llvm.js","../node_modules/refractor/lang/log.js","../node_modules/refractor/lang/lolcode.js","../node_modules/refractor/lang/lua.js","../node_modules/refractor/lang/magma.js","../node_modules/refractor/lang/makefile.js","../node_modules/refractor/lang/markdown.js","../node_modules/refractor/lang/markup-templating.js","../node_modules/refractor/lang/markup.js","../node_modules/refractor/lang/matlab.js","../node_modules/refractor/lang/maxscript.js","../node_modules/refractor/lang/mel.js","../node_modules/refractor/lang/mermaid.js","../node_modules/refractor/lang/mizar.js","../node_modules/refractor/lang/mongodb.js","../node_modules/refractor/lang/monkey.js","../node_modules/refractor/lang/moonscript.js","../node_modules/refractor/lang/n1ql.js","../node_modules/refractor/lang/n4js.js","../node_modules/refractor/lang/nand2tetris-hdl.js","../node_modules/refractor/lang/naniscript.js","../node_modules/refractor/lang/nasm.js","../node_modules/refractor/lang/neon.js","../node_modules/refractor/lang/nevod.js","../node_modules/refractor/lang/nginx.js","../node_modules/refractor/lang/nim.js","../node_modules/refractor/lang/nix.js","../node_modules/refractor/lang/nsis.js","../node_modules/refractor/lang/objectivec.js","../node_modules/refractor/lang/ocaml.js","../node_modules/refractor/lang/opencl.js","../node_modules/refractor/lang/openqasm.js","../node_modules/refractor/lang/oz.js","../node_modules/refractor/lang/parigp.js","../node_modules/refractor/lang/parser.js","../node_modules/refractor/lang/pascal.js","../node_modules/refractor/lang/pascaligo.js","../node_modules/refractor/lang/pcaxis.js","../node_modules/refractor/lang/peoplecode.js","../node_modules/refractor/lang/perl.js","../node_modules/refractor/lang/php-extras.js","../node_modules/refractor/lang/php.js","../node_modules/refractor/lang/phpdoc.js","../node_modules/refractor/lang/plsql.js","../node_modules/refractor/lang/powerquery.js","../node_modules/refractor/lang/powershell.js","../node_modules/refractor/lang/processing.js","../node_modules/refractor/lang/prolog.js","../node_modules/refractor/lang/promql.js","../node_modules/refractor/lang/properties.js","../node_modules/refractor/lang/protobuf.js","../node_modules/refractor/lang/psl.js","../node_modules/refractor/lang/pug.js","../node_modules/refractor/lang/puppet.js","../node_modules/refractor/lang/pure.js","../node_modules/refractor/lang/purebasic.js","../node_modules/refractor/lang/purescript.js","../node_modules/refractor/lang/python.js","../node_modules/refractor/lang/q.js","../node_modules/refractor/lang/qml.js","../node_modules/refractor/lang/qore.js","../node_modules/refractor/lang/qsharp.js","../node_modules/refractor/lang/r.js","../node_modules/refractor/lang/racket.js","../node_modules/refractor/lang/reason.js","../node_modules/refractor/lang/regex.js","../node_modules/refractor/lang/rego.js","../node_modules/refractor/lang/renpy.js","../node_modules/refractor/lang/rest.js","../node_modules/refractor/lang/rip.js","../node_modules/refractor/lang/roboconf.js","../node_modules/refractor/lang/robotframework.js","../node_modules/refractor/lang/ruby.js","../node_modules/refractor/lang/rust.js","../node_modules/refractor/lang/sas.js","../node_modules/refractor/lang/sass.js","../node_modules/refractor/lang/scala.js","../node_modules/refractor/lang/scheme.js","../node_modules/refractor/lang/scss.js","../node_modules/refractor/lang/shell-session.js","../node_modules/refractor/lang/smali.js","../node_modules/refractor/lang/smalltalk.js","../node_modules/refractor/lang/smarty.js","../node_modules/refractor/lang/sml.js","../node_modules/refractor/lang/solidity.js","../node_modules/refractor/lang/solution-file.js","../node_modules/refractor/lang/soy.js","../node_modules/refractor/lang/sparql.js","../node_modules/refractor/lang/splunk-spl.js","../node_modules/refractor/lang/sqf.js","../node_modules/refractor/lang/sql.js","../node_modules/refractor/lang/squirrel.js","../node_modules/refractor/lang/stan.js","../node_modules/refractor/lang/stylus.js","../node_modules/refractor/lang/swift.js","../node_modules/refractor/lang/systemd.js","../node_modules/refractor/lang/t4-cs.js","../node_modules/refractor/lang/t4-templating.js","../node_modules/refractor/lang/t4-vb.js","../node_modules/refractor/lang/tap.js","../node_modules/refractor/lang/tcl.js","../node_modules/refractor/lang/textile.js","../node_modules/refractor/lang/toml.js","../node_modules/refractor/lang/tremor.js","../node_modules/refractor/lang/tsx.js","../node_modules/refractor/lang/tt2.js","../node_modules/refractor/lang/turtle.js","../node_modules/refractor/lang/twig.js","../node_modules/refractor/lang/typescript.js","../node_modules/refractor/lang/typoscript.js","../node_modules/refractor/lang/unrealscript.js","../node_modules/refractor/lang/uorazor.js","../node_modules/refractor/lang/uri.js","../node_modules/refractor/lang/v.js","../node_modules/refractor/lang/vala.js","../node_modules/refractor/lang/vbnet.js","../node_modules/refractor/lang/velocity.js","../node_modules/refractor/lang/verilog.js","../node_modules/refractor/lang/vhdl.js","../node_modules/refractor/lang/vim.js","../node_modules/refractor/lang/visual-basic.js","../node_modules/refractor/lang/warpscript.js","../node_modules/refractor/lang/wasm.js","../node_modules/refractor/lang/web-idl.js","../node_modules/refractor/lang/wiki.js","../node_modules/refractor/lang/wolfram.js","../node_modules/refractor/lang/wren.js","../node_modules/refractor/lang/xeora.js","../node_modules/refractor/lang/xml-doc.js","../node_modules/refractor/lang/xojo.js","../node_modules/refractor/lang/xquery.js","../node_modules/refractor/lang/yaml.js","../node_modules/refractor/lang/yang.js","../node_modules/refractor/lang/zig.js","../node_modules/refractor/node_modules/prismjs/components/prism-core.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/style-to-object/index.js","../node_modules/xtend/immutable.js","../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/defineProperty.js","../node_modules/@babel/runtime/helpers/get.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/superPropBase.js","../node_modules/@babel/runtime/helpers/typeof.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.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/@babel/runtime/helpers/esm/arrayWithHoles.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","data.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.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/unist-util-stringify-position/index.js","../node_modules/vfile-message/index.js","../node_modules/vfile/lib/minpath.browser.js","../node_modules/vfile/lib/minproc.browser.js","../node_modules/vfile/lib/minurl.shared.js","../node_modules/vfile/lib/minurl.browser.js","../node_modules/vfile/lib/index.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/bail/index.js","../node_modules/unified/node_modules/is-plain-obj/index.js","../node_modules/trough/index.js","../node_modules/unified/lib/index.js","../node_modules/mdast-util-to-string/index.js","../node_modules/micromark-util-chunked/index.js","../node_modules/micromark-util-combine-extensions/index.js","../node_modules/micromark-util-character/lib/unicode-punctuation-regex.js","../node_modules/micromark-util-character/index.js","../node_modules/micromark-factory-space/index.js","../node_modules/micromark/lib/initialize/content.js","../node_modules/micromark/lib/initialize/document.js","../node_modules/micromark-core-commonmark/lib/blank-line.js","../node_modules/micromark-util-subtokenize/index.js","../node_modules/micromark-core-commonmark/lib/content.js","../node_modules/micromark/lib/initialize/flow.js","../node_modules/micromark/lib/initialize/text.js","../node_modules/micromark-util-resolve-all/index.js","../node_modules/micromark/lib/create-tokenizer.js","../node_modules/micromark-core-commonmark/lib/thematic-break.js","../node_modules/micromark-core-commonmark/lib/list.js","../node_modules/micromark-core-commonmark/lib/block-quote.js","../node_modules/micromark-factory-destination/index.js","../node_modules/micromark-factory-label/index.js","../node_modules/micromark-factory-title/index.js","../node_modules/micromark-factory-whitespace/index.js","../node_modules/micromark-util-normalize-identifier/index.js","../node_modules/micromark-core-commonmark/lib/definition.js","../node_modules/micromark-core-commonmark/lib/code-indented.js","../node_modules/micromark-core-commonmark/lib/heading-atx.js","../node_modules/micromark-core-commonmark/lib/setext-underline.js","../node_modules/micromark-util-html-tag-name/index.js","../node_modules/micromark-core-commonmark/lib/html-flow.js","../node_modules/micromark-core-commonmark/lib/code-fenced.js","../node_modules/decode-named-character-reference/index.dom.js","../node_modules/micromark-core-commonmark/lib/character-reference.js","../node_modules/micromark-core-commonmark/lib/character-escape.js","../node_modules/micromark-core-commonmark/lib/line-ending.js","../node_modules/micromark-core-commonmark/lib/label-end.js","../node_modules/micromark-core-commonmark/lib/label-start-image.js","../node_modules/micromark-util-classify-character/index.js","../node_modules/micromark-core-commonmark/lib/attention.js","../node_modules/micromark-core-commonmark/lib/autolink.js","../node_modules/micromark-core-commonmark/lib/html-text.js","../node_modules/micromark-core-commonmark/lib/label-start-link.js","../node_modules/micromark-core-commonmark/lib/hard-break-escape.js","../node_modules/micromark-core-commonmark/lib/code-text.js","../node_modules/micromark/lib/constructs.js","../node_modules/micromark/lib/preprocess.js","../node_modules/micromark-util-decode-numeric-character-reference/index.js","../node_modules/micromark-util-decode-string/index.js","../node_modules/mdast-util-from-markdown/lib/index.js","../node_modules/micromark/lib/postprocess.js","../node_modules/micromark/lib/parse.js","../node_modules/remark-parse/index.js","../node_modules/remark-parse/lib/index.js","../node_modules/unist-builder/index.js","../node_modules/unist-util-is/index.js","../node_modules/unist-util-visit-parents/index.js","../node_modules/unist-util-visit/index.js","../node_modules/unist-util-position/index.js","../node_modules/mdast-util-definitions/index.js","../node_modules/mdast-util-to-hast/lib/traverse.js","../node_modules/mdast-util-to-hast/lib/handlers/thematic-break.js","../node_modules/mdast-util-to-hast/lib/wrap.js","../node_modules/mdast-util-to-hast/lib/handlers/list.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote-reference.js","../node_modules/mdast-util-to-hast/lib/revert.js","../node_modules/mdast-util-to-hast/lib/handlers/list-item.js","../node_modules/mdast-util-to-hast/lib/handlers/index.js","../node_modules/mdast-util-to-hast/lib/handlers/blockquote.js","../node_modules/mdast-util-to-hast/lib/handlers/break.js","../node_modules/mdast-util-to-hast/lib/handlers/code.js","../node_modules/mdast-util-to-hast/lib/handlers/delete.js","../node_modules/mdast-util-to-hast/lib/handlers/emphasis.js","../node_modules/mdast-util-to-hast/lib/handlers/footnote.js","../node_modules/mdast-util-to-hast/lib/handlers/heading.js","../node_modules/mdast-util-to-hast/lib/handlers/html.js","../node_modules/mdast-util-to-hast/lib/handlers/image-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/image.js","../node_modules/mdast-util-to-hast/lib/handlers/inline-code.js","../node_modules/mdast-util-to-hast/lib/handlers/link-reference.js","../node_modules/mdast-util-to-hast/lib/handlers/link.js","../node_modules/mdast-util-to-hast/lib/handlers/paragraph.js","../node_modules/mdast-util-to-hast/lib/handlers/root.js","../node_modules/mdast-util-to-hast/lib/handlers/strong.js","../node_modules/mdast-util-to-hast/lib/handlers/table.js","../node_modules/mdast-util-to-hast/lib/handlers/text.js","../node_modules/mdast-util-to-hast/lib/index.js","../node_modules/unist-util-generated/index.js","../node_modules/mdast-util-to-hast/lib/footer.js","../node_modules/remark-rehype/index.js","../node_modules/property-information/lib/util/schema.js","../node_modules/property-information/lib/util/merge.js","../node_modules/property-information/lib/normalize.js","../node_modules/property-information/lib/util/info.js","../node_modules/property-information/lib/util/types.js","../node_modules/property-information/lib/util/defined-info.js","../node_modules/property-information/lib/util/create.js","../node_modules/property-information/lib/xlink.js","../node_modules/property-information/lib/xml.js","../node_modules/property-information/lib/util/case-sensitive-transform.js","../node_modules/property-information/lib/util/case-insensitive-transform.js","../node_modules/property-information/lib/xmlns.js","../node_modules/property-information/lib/aria.js","../node_modules/property-information/lib/html.js","../node_modules/property-information/lib/svg.js","../node_modules/property-information/index.js","../node_modules/react-markdown/lib/rehype-filter.js","../node_modules/react-markdown/lib/uri-transformer.js","../node_modules/hast-util-whitespace/index.js","../node_modules/property-information/lib/find.js","../node_modules/property-information/lib/hast-to-react.js","../node_modules/space-separated-tokens/index.js","../node_modules/comma-separated-tokens/index.js","../node_modules/react-markdown/lib/ast-to-react.js","../node_modules/react-markdown/lib/react-markdown.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/prism.js","../node_modules/react-syntax-highlighter/dist/esm/prism.js","../node_modules/react-syntax-highlighter/dist/esm/languages/prism/supported-languages.js","../node_modules/micromark-extension-gfm-autolink-literal/lib/syntax.js","../node_modules/react-syntax-highlighter/dist/esm/styles/prism/coldark-dark.js","../node_modules/micromark-extension-gfm-footnote/lib/syntax.js","../node_modules/micromark-extension-gfm-strikethrough/lib/syntax.js","../node_modules/micromark-extension-gfm-table/lib/syntax.js","../node_modules/micromark-extension-gfm-task-list-item/lib/syntax.js","../node_modules/micromark-extension-gfm/index.js","../node_modules/ccount/index.js","../node_modules/mdast-util-find-and-replace/lib/index.js","../node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp/index.js","../node_modules/mdast-util-gfm-autolink-literal/index.js","../node_modules/mdast-util-to-markdown/lib/util/association.js","../node_modules/mdast-util-to-markdown/lib/util/track.js","../node_modules/mdast-util-to-markdown/lib/util/container-flow.js","../node_modules/mdast-util-to-markdown/lib/util/indent-lines.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-compile.js","../node_modules/mdast-util-to-markdown/lib/util/pattern-in-scope.js","../node_modules/mdast-util-to-markdown/lib/util/safe.js","../node_modules/mdast-util-gfm-footnote/index.js","../node_modules/mdast-util-to-markdown/lib/util/container-phrasing.js","../node_modules/mdast-util-gfm-strikethrough/index.js","../node_modules/mdast-util-to-markdown/lib/handle/inline-code.js","../node_modules/markdown-table/index.js","../node_modules/mdast-util-gfm-table/lib/index.js","../node_modules/mdast-util-to-markdown/lib/handle/list-item.js","../node_modules/mdast-util-to-markdown/lib/util/check-list-item-indent.js","../node_modules/mdast-util-to-markdown/lib/util/check-bullet.js","../node_modules/mdast-util-gfm-task-list-item/index.js","../node_modules/mdast-util-gfm/lib/index.js","../node_modules/remark-gfm/index.js","../node_modules/hast-util-from-parse5/node_modules/hast-util-parse-selector/index.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/core.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/svg-case-sensitive-tag-names.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/svg.js","../node_modules/hast-util-from-parse5/node_modules/hastscript/lib/html.js","../node_modules/web-namespaces/index.js","../node_modules/hast-util-from-parse5/lib/index.js","../node_modules/vfile-location/index.js","../node_modules/hast-to-hyperscript/index.js","../node_modules/zwitch/index.js","../node_modules/hast-util-to-parse5/lib/index.js","../node_modules/html-void-elements/index.js","../node_modules/hast-util-raw/lib/index.js","../node_modules/rehype-raw/index.js","components/right_arrow.js","components/down_arrow.js","App.js","index.js"],"sourcesContent":["'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","'use strict'\n\nmodule.exports = parse\n\nvar search = /[#.]/g\n\n// Create a hast element from a simple CSS selector.\nfunction parse(selector, defaultTagName) {\n var value = selector || ''\n var name = defaultTagName || 'div'\n var props = {}\n var start = 0\n var subvalue\n var previous\n var match\n\n while (start < value.length) {\n search.lastIndex = start\n match = search.exec(value)\n subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n name = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (props.className) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {type: 'element', tagName: name, properties: props, children: []}\n}\n","'use strict'\n\nvar find = require('property-information/find')\nvar normalize = require('property-information/normalize')\nvar parseSelector = require('hast-util-parse-selector')\nvar spaces = require('space-separated-tokens').parse\nvar commas = require('comma-separated-tokens').parse\n\nmodule.exports = factory\n\nvar own = {}.hasOwnProperty\n\nfunction factory(schema, defaultTagName, caseSensitive) {\n var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null\n\n return h\n\n // Hyperscript compatible DSL for creating virtual hast trees.\n function h(selector, properties) {\n var node = parseSelector(selector, defaultTagName)\n var children = Array.prototype.slice.call(arguments, 2)\n var name = node.tagName.toLowerCase()\n var property\n\n node.tagName = adjust && own.call(adjust, name) ? adjust[name] : name\n\n if (properties && isChildren(properties, node)) {\n children.unshift(properties)\n properties = null\n }\n\n if (properties) {\n for (property in properties) {\n addProperty(node.properties, property, properties[property])\n }\n }\n\n addChild(node.children, children)\n\n if (node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n function addProperty(properties, key, value) {\n var info\n var property\n var result\n\n // Ignore nullish and NaN values.\n if (value === null || value === undefined || value !== value) {\n return\n }\n\n info = find(schema, key)\n property = info.property\n result = value\n\n // Handle list values.\n if (typeof result === 'string') {\n if (info.spaceSeparated) {\n result = spaces(result)\n } else if (info.commaSeparated) {\n result = commas(result)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(result).join(' '))\n }\n }\n\n // Accept `object` on style.\n if (property === 'style' && typeof value !== 'string') {\n result = style(result)\n }\n\n // Class-names (which can be added both on the `selector` and here).\n if (property === 'className' && properties.className) {\n result = properties.className.concat(result)\n }\n\n properties[property] = parsePrimitives(info, property, result)\n }\n}\n\nfunction isChildren(value, node) {\n return (\n typeof value === 'string' ||\n 'length' in value ||\n isNode(node.tagName, value)\n )\n}\n\nfunction isNode(tagName, value) {\n var type = value.type\n\n if (tagName === 'input' || !type || typeof type !== 'string') {\n return false\n }\n\n if (typeof value.children === 'object' && 'length' in value.children) {\n return true\n }\n\n type = type.toLowerCase()\n\n if (tagName === 'button') {\n return (\n type !== 'menu' &&\n type !== 'submit' &&\n type !== 'reset' &&\n type !== 'button'\n )\n }\n\n return 'value' in value\n}\n\nfunction addChild(nodes, value) {\n var index\n var length\n\n if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n return\n }\n\n if (typeof value === 'object' && 'length' in value) {\n index = -1\n length = value.length\n\n while (++index < length) {\n addChild(nodes, value[index])\n }\n\n return\n }\n\n if (typeof value !== 'object' || !('type' in value)) {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n\n nodes.push(value)\n}\n\n// Parse a (list of) primitives.\nfunction parsePrimitives(info, name, value) {\n var index\n var length\n var result\n\n if (typeof value !== 'object' || !('length' in value)) {\n return parsePrimitive(info, name, value)\n }\n\n length = value.length\n index = -1\n result = []\n\n while (++index < length) {\n result[index] = parsePrimitive(info, name, value[index])\n }\n\n return result\n}\n\n// Parse a single primitives.\nfunction parsePrimitive(info, name, value) {\n var result = value\n\n if (info.number || info.positiveNumber) {\n if (!isNaN(result) && result !== '') {\n result = Number(result)\n }\n } else if (info.boolean || info.overloadedBoolean) {\n // Accept `boolean` and `string`.\n if (\n typeof result === 'string' &&\n (result === '' || normalize(value) === normalize(name))\n ) {\n result = true\n }\n }\n\n return result\n}\n\nfunction style(value) {\n var result = []\n var key\n\n for (key in value) {\n result.push([key, value[key]].join(': '))\n }\n\n return result.join('; ')\n}\n\nfunction createAdjustMap(values) {\n var length = values.length\n var index = -1\n var result = {}\n var value\n\n while (++index < length) {\n value = values[index]\n result[value.toLowerCase()] = value\n }\n\n return result\n}\n","'use strict'\n\nvar schema = require('property-information/html')\nvar factory = require('./factory')\n\nvar html = factory(schema, 'div')\nhtml.displayName = 'html'\n\nmodule.exports = html\n","'use strict'\n\nmodule.exports = require('./html')\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar comma = ','\nvar space = ' '\nvar empty = ''\n\n// Parse comma-separated tokens to an array.\nfunction parse(value) {\n var values = []\n var input = String(value || empty)\n var index = input.indexOf(comma)\n var lastIndex = 0\n var end = false\n var val\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n val = input.slice(lastIndex, index).trim()\n\n if (val || !end) {\n values.push(val)\n }\n\n lastIndex = index + 1\n index = input.indexOf(comma, lastIndex)\n }\n\n return values\n}\n\n// Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\nfunction stringify(values, options) {\n var settings = options || {}\n var left = settings.padLeft === false ? empty : space\n var right = settings.padRight ? space : empty\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === empty) {\n values = values.concat(empty)\n }\n\n return values.join(right + comma + left).trim()\n}\n","'use strict'\n\nvar normalize = require('./normalize')\nvar DefinedInfo = require('./lib/util/defined-info')\nvar Info = require('./lib/util/info')\n\nvar data = 'data'\n\nmodule.exports = find\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\nfunction find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return data + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return data + value\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","'use strict'\n\nvar merge = require('./lib/util/merge')\nvar xlink = require('./lib/xlink')\nvar xml = require('./lib/xml')\nvar xmlns = require('./lib/xmlns')\nvar aria = require('./lib/aria')\nvar html = require('./lib/html')\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html])\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\n\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\n\nmodule.exports = create({\n transform: ariaTransform,\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n","'use strict'\n\nvar types = require('./util/types')\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nvar boolean = types.boolean\nvar overloadedBoolean = types.overloadedBoolean\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\n\nmodule.exports = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextMenu: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: commaSeparated,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","'use strict'\n\nvar caseSensitiveTransform = require('./case-sensitive-transform')\n\nmodule.exports = caseInsensitiveTransform\n\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","'use strict'\n\nmodule.exports = caseSensitiveTransform\n\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","'use strict'\n\nvar normalize = require('../../normalize')\nvar Schema = require('./schema')\nvar DefinedInfo = require('./defined-info')\n\nmodule.exports = create\n\nfunction create(definition) {\n var space = definition.space\n var mustUseProperty = definition.mustUseProperty || []\n var attributes = definition.attributes || {}\n var props = definition.properties\n var transform = definition.transform\n var property = {}\n var normal = {}\n var prop\n var info\n\n for (prop in props) {\n info = new DefinedInfo(\n prop,\n transform(attributes, prop),\n props[prop],\n space\n )\n\n if (mustUseProperty.indexOf(prop) !== -1) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n\n return new Schema(property, normal, space)\n}\n","'use strict'\n\nvar Info = require('./info')\nvar types = require('./types')\n\nmodule.exports = DefinedInfo\n\nDefinedInfo.prototype = new Info()\nDefinedInfo.prototype.defined = true\n\nvar checks = [\n 'boolean',\n 'booleanish',\n 'overloadedBoolean',\n 'number',\n 'commaSeparated',\n 'spaceSeparated',\n 'commaOrSpaceSeparated'\n]\nvar checksLength = checks.length\n\nfunction DefinedInfo(property, attribute, mask, space) {\n var index = -1\n var check\n\n mark(this, 'space', space)\n\n Info.call(this, property, attribute)\n\n while (++index < checksLength) {\n check = checks[index]\n mark(this, check, (mask & types[check]) === types[check])\n }\n}\n\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n","'use strict'\n\nmodule.exports = Info\n\nvar proto = Info.prototype\n\nproto.space = null\nproto.attribute = null\nproto.property = null\nproto.boolean = false\nproto.booleanish = false\nproto.overloadedBoolean = false\nproto.number = false\nproto.commaSeparated = false\nproto.spaceSeparated = false\nproto.commaOrSpaceSeparated = false\nproto.mustUseProperty = false\nproto.defined = false\n\nfunction Info(property, attribute) {\n this.property = property\n this.attribute = attribute\n}\n","'use strict'\n\nvar xtend = require('xtend')\nvar Schema = require('./schema')\n\nmodule.exports = merge\n\nfunction merge(definitions) {\n var length = definitions.length\n var property = []\n var normal = []\n var index = -1\n var info\n var space\n\n while (++index < length) {\n info = definitions[index]\n property.push(info.property)\n normal.push(info.normal)\n space = info.space\n }\n\n return new Schema(\n xtend.apply(null, property),\n xtend.apply(null, normal),\n space\n )\n}\n","'use strict'\n\nmodule.exports = Schema\n\nvar proto = Schema.prototype\n\nproto.space = null\nproto.normal = {}\nproto.property = {}\n\nfunction Schema(property, normal, space) {\n this.property = property\n this.normal = normal\n\n if (space) {\n this.space = space\n }\n}\n","'use strict'\n\nvar powers = 0\n\nexports.boolean = increment()\nexports.booleanish = increment()\nexports.overloadedBoolean = increment()\nexports.number = increment()\nexports.spaceSeparated = increment()\nexports.commaSeparated = increment()\nexports.commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return Math.pow(2, ++powers)\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xlink',\n transform: xlinkTransform,\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\n\nmodule.exports = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n})\n\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n","'use strict'\n\nvar create = require('./util/create')\nvar caseInsensitiveTransform = require('./util/case-insensitive-transform')\n\nmodule.exports = create({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n})\n","'use strict'\n\nmodule.exports = normalize\n\nfunction normalize(value) {\n return value.toLowerCase()\n}\n","'use strict'\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar empty = ''\nvar space = ' '\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g\n\nfunction parse(value) {\n var input = String(value || empty).trim()\n return input === empty ? [] : input.split(whiteSpace)\n}\n\nfunction stringify(values) {\n return values.join(space).trim()\n}\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function(style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function(node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","'use strict'\n\nmodule.exports = alphabetical\n\n// Check if the given character code, or the character code at the first\n// character, is alphabetical.\nfunction alphabetical(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 && code <= 122) /* a-z */ ||\n (code >= 65 && code <= 90) /* A-Z */\n )\n}\n","'use strict'\n\nvar alphabetical = require('is-alphabetical')\nvar decimal = require('is-decimal')\n\nmodule.exports = alphanumerical\n\n// Check if the given character code, or the character code at the first\n// character, is alphanumerical.\nfunction alphanumerical(character) {\n return alphabetical(character) || decimal(character)\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict'\n\nmodule.exports = decimal\n\n// Check if the given character code, or the character code at the first\n// character, is decimal.\nfunction decimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return code >= 48 && code <= 57 /* 0-9 */\n}\n","'use strict'\n\nmodule.exports = hexadecimal\n\n// Check if the given character code, or the character code at the first\n// character, is hexadecimal.\nfunction hexadecimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 /* a */ && code <= 102) /* z */ ||\n (code >= 65 /* A */ && code <= 70) /* Z */ ||\n (code >= 48 /* A */ && code <= 57) /* Z */\n )\n}\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","'use strict'\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`&not` - for instance),\n // which leads to situations where parsing the assumed entity of &notit; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`&semi;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n","'use strict'\n\nvar legacy = require('character-entities-legacy')\nvar invalid = require('character-reference-invalid')\nvar decimal = require('is-decimal')\nvar hexadecimal = require('is-hexadecimal')\nvar alphanumerical = require('is-alphanumerical')\nvar decodeEntity = require('./decode-entity')\n\nmodule.exports = parseEntities\n\nvar own = {}.hasOwnProperty\nvar fromCharCode = String.fromCharCode\nvar noop = Function.prototype\n\n// Default settings.\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}\n\n// Characters.\nvar tab = 9 // '\\t'\nvar lineFeed = 10 // '\\n'\nvar formFeed = 12 // '\\f'\nvar space = 32 // ' '\nvar ampersand = 38 // '&'\nvar semicolon = 59 // ';'\nvar lessThan = 60 // '<'\nvar equalsTo = 61 // '='\nvar numberSign = 35 // '#'\nvar uppercaseX = 88 // 'X'\nvar lowercaseX = 120 // 'x'\nvar replacementCharacter = 65533 // '<27>'\n\n// Reference types.\nvar name = 'named'\nvar hexa = 'hexadecimal'\nvar deci = 'decimal'\n\n// Map of bases.\nvar bases = {}\n\nbases[hexa] = 16\nbases[deci] = 10\n\n// Map of types to tests.\n// Each type of character reference accepts different characters.\n// This test is used to detect whether a reference has ended (as the semicolon\n// is not strictly needed).\nvar tests = {}\n\ntests[name] = alphanumerical\ntests[deci] = decimal\ntests[hexa] = hexadecimal\n\n// Warning types.\nvar namedNotTerminated = 1\nvar numericNotTerminated = 2\nvar namedEmpty = 3\nvar numericEmpty = 4\nvar namedUnknown = 5\nvar numericDisallowed = 6\nvar numericProhibited = 7\n\n// Warning messages.\nvar messages = {}\n\nmessages[namedNotTerminated] =\n 'Named character references must be terminated by a semicolon'\nmessages[numericNotTerminated] =\n 'Numeric character references must be terminated by a semicolon'\nmessages[namedEmpty] = 'Named character references cannot be empty'\nmessages[numericEmpty] = 'Numeric character references cannot be empty'\nmessages[namedUnknown] = 'Named character references must be known'\nmessages[numericDisallowed] =\n 'Numeric character references cannot be disallowed'\nmessages[numericProhibited] =\n 'Numeric character references cannot be outside the permissible Unicode range'\n\n// Wrap to ensure clean parameters are given to `parse`.\nfunction parseEntities(value, options) {\n var settings = {}\n var option\n var key\n\n if (!options) {\n options = {}\n }\n\n for (key in defaults) {\n option = options[key]\n settings[key] =\n option === null || option === undefined ? defaults[key] : option\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || []\n settings.position = settings.position.start\n }\n\n return parse(value, settings)\n}\n\n// Parse entities.\n// eslint-disable-next-line complexity\nfunction parse(value, settings) {\n var additional = settings.additional\n var nonTerminated = settings.nonTerminated\n var handleText = settings.text\n var handleReference = settings.reference\n var handleWarning = settings.warning\n var textContext = settings.textContext\n var referenceContext = settings.referenceContext\n var warningContext = settings.warningContext\n var pos = settings.position\n var indent = settings.indent || []\n var length = value.length\n var index = 0\n var lines = -1\n var column = pos.column || 1\n var line = pos.line || 1\n var queue = ''\n var result = []\n var entityCharacters\n var namedEntity\n var terminated\n var characters\n var character\n var reference\n var following\n var warning\n var reason\n var output\n var entity\n var begin\n var start\n var type\n var test\n var prev\n var next\n var diff\n var end\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0)\n }\n\n // Cache the current point.\n prev = now()\n\n // Wrap `handleWarning`.\n warning = handleWarning ? parseError : noop\n\n // Ensure the algorithm walks over the first character and the end\n // (inclusive).\n index--\n length++\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1\n }\n\n character = value.charCodeAt(index)\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1)\n\n // The behaviour depends on the identity of the next character.\n if (\n following === tab ||\n following === lineFeed ||\n following === formFeed ||\n following === space ||\n following === ampersand ||\n following === lessThan ||\n following !== following ||\n (additional && following === additional)\n ) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character)\n column++\n\n continue\n }\n\n start = index + 1\n begin = start\n end = start\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin\n\n // The behaviour further depends on the next character.\n following = value.charCodeAt(end)\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa\n end = ++begin\n } else {\n // ASCII digits.\n type = deci\n }\n } else {\n // Named entity.\n type = name\n }\n\n entityCharacters = ''\n entity = ''\n characters = ''\n test = tests[type]\n end--\n\n while (++end < length) {\n following = value.charCodeAt(end)\n\n if (!test(following)) {\n break\n }\n\n characters += fromCharCode(following)\n\n // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n if (type === name && own.call(legacy, characters)) {\n entityCharacters = characters\n entity = legacy[characters]\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon\n\n if (terminated) {\n end++\n\n namedEntity = type === name ? decodeEntity(characters) : false\n\n if (namedEntity) {\n entityCharacters = characters\n entity = namedEntity\n }\n }\n\n diff = 1 + end - start\n\n if (!terminated && !nonTerminated) {\n // Empty.\n } else if (!characters) {\n // An empty (possible) entity is valid, unless its numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff)\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1)\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length\n diff = 1 + end - begin\n terminated = false\n }\n\n // If the reference is not terminated, warn.\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty\n\n if (settings.attribute) {\n following = value.charCodeAt(end)\n\n if (following === equalsTo) {\n warning(reason, diff)\n entity = null\n } else if (alphanumerical(following)) {\n entity = null\n } else {\n warning(reason, diff)\n }\n } else {\n warning(reason, diff)\n }\n }\n }\n\n reference = entity\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff)\n }\n\n // When terminated and number, parse as either hexadecimal or decimal.\n reference = parseInt(characters, bases[type])\n\n // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n if (prohibited(reference)) {\n warning(numericProhibited, diff)\n reference = fromCharCode(replacementCharacter)\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff)\n reference = invalid[reference]\n } else {\n // Parse the number.\n output = ''\n\n // Trigger a warning when the parsed number should not be used.\n if (disallowed(reference)) {\n warning(numericDisallowed, diff)\n }\n\n // Stringify the number.\n if (reference > 0xffff) {\n reference -= 0x10000\n output += fromCharCode((reference >>> (10 & 0x3ff)) | 0xd800)\n reference = 0xdc00 | (reference & 0x3ff)\n }\n\n reference = output + fromCharCode(reference)\n }\n }\n\n // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n if (reference) {\n flush()\n\n prev = now()\n index = end - 1\n column += end - start + 1\n result.push(reference)\n next = now()\n next.offset++\n\n if (handleReference) {\n handleReference.call(\n referenceContext,\n reference,\n {start: prev, end: next},\n value.slice(start - 1, end)\n )\n }\n\n prev = next\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end)\n queue += characters\n column += characters.length\n index = end - 1\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (\n character === 10 // Line feed\n ) {\n line++\n lines++\n column = 0\n }\n\n if (character === character) {\n queue += fromCharCode(character)\n column++\n } else {\n flush()\n }\n }\n }\n\n // Return the reduced nodes.\n return result.join('')\n\n // Get current position.\n function now() {\n return {\n line: line,\n column: column,\n offset: index + (pos.offset || 0)\n }\n }\n\n // “Throw” a parse-error: a warning.\n function parseError(code, offset) {\n var position = now()\n\n position.column += offset\n position.offset += offset\n\n handleWarning.call(warningContext, messages[code], position, code)\n }\n\n // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n function flush() {\n if (queue) {\n result.push(queue)\n\n if (handleText) {\n handleText.call(textContext, queue, {start: prev, end: now()})\n }\n\n queue = ''\n }\n }\n}\n\n// Check if `character` is outside the permissible unicode range.\nfunction prohibited(code) {\n return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n// Check if `character` is disallowed.\nfunction disallowed(code) {\n return (\n (code >= 0x0001 && code <= 0x0008) ||\n code === 0x000b ||\n (code >= 0x000d && code <= 0x001f) ||\n (code >= 0x007f && code <= 0x009f) ||\n (code >= 0xfdd0 && code <= 0xfdef) ||\n (code & 0xffff) === 0xffff ||\n (code & 0xffff) === 0xfffe\n )\n}\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('./html');\n\n//Const\nconst VALID_DOCTYPE_NAME = 'html';\nconst VALID_SYSTEM_ID = 'about:legacy-compat';\nconst QUIRKS_MODE_SYSTEM_ID = 'http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd';\n\nconst QUIRKS_MODE_PUBLIC_ID_PREFIXES = [\n '+//silmaril//dtd html pro v0r11 19970101//',\n '-//as//dtd html 3.0 aswedit + extensions//',\n '-//advasoft ltd//dtd html 3.0 aswedit + extensions//',\n '-//ietf//dtd html 2.0 level 1//',\n '-//ietf//dtd html 2.0 level 2//',\n '-//ietf//dtd html 2.0 strict level 1//',\n '-//ietf//dtd html 2.0 strict level 2//',\n '-//ietf//dtd html 2.0 strict//',\n '-//ietf//dtd html 2.0//',\n '-//ietf//dtd html 2.1e//',\n '-//ietf//dtd html 3.0//',\n '-//ietf//dtd html 3.2 final//',\n '-//ietf//dtd html 3.2//',\n '-//ietf//dtd html 3//',\n '-//ietf//dtd html level 0//',\n '-//ietf//dtd html level 1//',\n '-//ietf//dtd html level 2//',\n '-//ietf//dtd html level 3//',\n '-//ietf//dtd html strict level 0//',\n '-//ietf//dtd html strict level 1//',\n '-//ietf//dtd html strict level 2//',\n '-//ietf//dtd html strict level 3//',\n '-//ietf//dtd html strict//',\n '-//ietf//dtd html//',\n '-//metrius//dtd metrius presentational//',\n '-//microsoft//dtd internet explorer 2.0 html strict//',\n '-//microsoft//dtd internet explorer 2.0 html//',\n '-//microsoft//dtd internet explorer 2.0 tables//',\n '-//microsoft//dtd internet explorer 3.0 html strict//',\n '-//microsoft//dtd internet explorer 3.0 html//',\n '-//microsoft//dtd internet explorer 3.0 tables//',\n '-//netscape comm. corp.//dtd html//',\n '-//netscape comm. corp.//dtd strict html//',\n \"-//o'reilly and associates//dtd html 2.0//\",\n \"-//o'reilly and associates//dtd html extended 1.0//\",\n \"-//o'reilly and associates//dtd html extended relaxed 1.0//\",\n '-//sq//dtd html 2.0 hotmetal + extensions//',\n '-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//',\n '-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//',\n '-//spyglass//dtd html 2.0 extended//',\n '-//sun microsystems corp.//dtd hotjava html//',\n '-//sun microsystems corp.//dtd hotjava strict html//',\n '-//w3c//dtd html 3 1995-03-24//',\n '-//w3c//dtd html 3.2 draft//',\n '-//w3c//dtd html 3.2 final//',\n '-//w3c//dtd html 3.2//',\n '-//w3c//dtd html 3.2s draft//',\n '-//w3c//dtd html 4.0 frameset//',\n '-//w3c//dtd html 4.0 transitional//',\n '-//w3c//dtd html experimental 19960712//',\n '-//w3c//dtd html experimental 970421//',\n '-//w3c//dtd w3 html//',\n '-//w3o//dtd w3 html 3.0//',\n '-//webtechs//dtd mozilla html 2.0//',\n '-//webtechs//dtd mozilla html//'\n];\n\nconst QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES = QUIRKS_MODE_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\nconst QUIRKS_MODE_PUBLIC_IDS = ['-//w3o//dtd w3 html strict 3.0//en//', '-/w3c/dtd html 4.0 transitional/en', 'html'];\nconst LIMITED_QUIRKS_PUBLIC_ID_PREFIXES = ['-//w3c//dtd xhtml 1.0 frameset//', '-//w3c//dtd xhtml 1.0 transitional//'];\n\nconst LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES = LIMITED_QUIRKS_PUBLIC_ID_PREFIXES.concat([\n '-//w3c//dtd html 4.01 frameset//',\n '-//w3c//dtd html 4.01 transitional//'\n]);\n\n//Utils\nfunction enquoteDoctypeId(id) {\n const quote = id.indexOf('\"') !== -1 ? \"'\" : '\"';\n\n return quote + id + quote;\n}\n\nfunction hasPrefix(publicId, prefixes) {\n for (let i = 0; i < prefixes.length; i++) {\n if (publicId.indexOf(prefixes[i]) === 0) {\n return true;\n }\n }\n\n return false;\n}\n\n//API\nexports.isConforming = function(token) {\n return (\n token.name === VALID_DOCTYPE_NAME &&\n token.publicId === null &&\n (token.systemId === null || token.systemId === VALID_SYSTEM_ID)\n );\n};\n\nexports.getDocumentMode = function(token) {\n if (token.name !== VALID_DOCTYPE_NAME) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n const systemId = token.systemId;\n\n if (systemId && systemId.toLowerCase() === QUIRKS_MODE_SYSTEM_ID) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let publicId = token.publicId;\n\n if (publicId !== null) {\n publicId = publicId.toLowerCase();\n\n if (QUIRKS_MODE_PUBLIC_IDS.indexOf(publicId) > -1) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n let prefixes = systemId === null ? QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES : QUIRKS_MODE_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.QUIRKS;\n }\n\n prefixes =\n systemId === null ? LIMITED_QUIRKS_PUBLIC_ID_PREFIXES : LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES;\n\n if (hasPrefix(publicId, prefixes)) {\n return DOCUMENT_MODE.LIMITED_QUIRKS;\n }\n }\n\n return DOCUMENT_MODE.NO_QUIRKS;\n};\n\nexports.serializeContent = function(name, publicId, systemId) {\n let str = '!DOCTYPE ';\n\n if (name) {\n str += name;\n }\n\n if (publicId) {\n str += ' PUBLIC ' + enquoteDoctypeId(publicId);\n } else if (systemId) {\n str += ' SYSTEM';\n }\n\n if (systemId !== null) {\n str += ' ' + enquoteDoctypeId(systemId);\n }\n\n return str;\n};\n","'use strict';\n\nmodule.exports = {\n controlCharacterInInputStream: 'control-character-in-input-stream',\n noncharacterInInputStream: 'noncharacter-in-input-stream',\n surrogateInInputStream: 'surrogate-in-input-stream',\n nonVoidHtmlElementStartTagWithTrailingSolidus: 'non-void-html-element-start-tag-with-trailing-solidus',\n endTagWithAttributes: 'end-tag-with-attributes',\n endTagWithTrailingSolidus: 'end-tag-with-trailing-solidus',\n unexpectedSolidusInTag: 'unexpected-solidus-in-tag',\n unexpectedNullCharacter: 'unexpected-null-character',\n unexpectedQuestionMarkInsteadOfTagName: 'unexpected-question-mark-instead-of-tag-name',\n invalidFirstCharacterOfTagName: 'invalid-first-character-of-tag-name',\n unexpectedEqualsSignBeforeAttributeName: 'unexpected-equals-sign-before-attribute-name',\n missingEndTagName: 'missing-end-tag-name',\n unexpectedCharacterInAttributeName: 'unexpected-character-in-attribute-name',\n unknownNamedCharacterReference: 'unknown-named-character-reference',\n missingSemicolonAfterCharacterReference: 'missing-semicolon-after-character-reference',\n unexpectedCharacterAfterDoctypeSystemIdentifier: 'unexpected-character-after-doctype-system-identifier',\n unexpectedCharacterInUnquotedAttributeValue: 'unexpected-character-in-unquoted-attribute-value',\n eofBeforeTagName: 'eof-before-tag-name',\n eofInTag: 'eof-in-tag',\n missingAttributeValue: 'missing-attribute-value',\n missingWhitespaceBetweenAttributes: 'missing-whitespace-between-attributes',\n missingWhitespaceAfterDoctypePublicKeyword: 'missing-whitespace-after-doctype-public-keyword',\n missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers:\n 'missing-whitespace-between-doctype-public-and-system-identifiers',\n missingWhitespaceAfterDoctypeSystemKeyword: 'missing-whitespace-after-doctype-system-keyword',\n missingQuoteBeforeDoctypePublicIdentifier: 'missing-quote-before-doctype-public-identifier',\n missingQuoteBeforeDoctypeSystemIdentifier: 'missing-quote-before-doctype-system-identifier',\n missingDoctypePublicIdentifier: 'missing-doctype-public-identifier',\n missingDoctypeSystemIdentifier: 'missing-doctype-system-identifier',\n abruptDoctypePublicIdentifier: 'abrupt-doctype-public-identifier',\n abruptDoctypeSystemIdentifier: 'abrupt-doctype-system-identifier',\n cdataInHtmlContent: 'cdata-in-html-content',\n incorrectlyOpenedComment: 'incorrectly-opened-comment',\n eofInScriptHtmlCommentLikeText: 'eof-in-script-html-comment-like-text',\n eofInDoctype: 'eof-in-doctype',\n nestedComment: 'nested-comment',\n abruptClosingOfEmptyComment: 'abrupt-closing-of-empty-comment',\n eofInComment: 'eof-in-comment',\n incorrectlyClosedComment: 'incorrectly-closed-comment',\n eofInCdata: 'eof-in-cdata',\n absenceOfDigitsInNumericCharacterReference: 'absence-of-digits-in-numeric-character-reference',\n nullCharacterReference: 'null-character-reference',\n surrogateCharacterReference: 'surrogate-character-reference',\n characterReferenceOutsideUnicodeRange: 'character-reference-outside-unicode-range',\n controlCharacterReference: 'control-character-reference',\n noncharacterCharacterReference: 'noncharacter-character-reference',\n missingWhitespaceBeforeDoctypeName: 'missing-whitespace-before-doctype-name',\n missingDoctypeName: 'missing-doctype-name',\n invalidCharacterSequenceAfterDoctypeName: 'invalid-character-sequence-after-doctype-name',\n duplicateAttribute: 'duplicate-attribute',\n nonConformingDoctype: 'non-conforming-doctype',\n missingDoctype: 'missing-doctype',\n misplacedDoctype: 'misplaced-doctype',\n endTagWithoutMatchingOpenElement: 'end-tag-without-matching-open-element',\n closingOfElementWithOpenChildElements: 'closing-of-element-with-open-child-elements',\n disallowedContentInNoscriptInHead: 'disallowed-content-in-noscript-in-head',\n openElementsLeftAfterEof: 'open-elements-left-after-eof',\n abandonedHeadElementChild: 'abandoned-head-element-child',\n misplacedStartTagForHeadElement: 'misplaced-start-tag-for-head-element',\n nestedNoscriptInHead: 'nested-noscript-in-head',\n eofInElementThatCanContainOnlyText: 'eof-in-element-that-can-contain-only-text'\n};\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst HTML = require('./html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\n//MIME types\nconst MIME_TYPES = {\n TEXT_HTML: 'text/html',\n APPLICATION_XML: 'application/xhtml+xml'\n};\n\n//Attributes\nconst DEFINITION_URL_ATTR = 'definitionurl';\nconst ADJUSTED_DEFINITION_URL_ATTR = 'definitionURL';\nconst SVG_ATTRS_ADJUSTMENT_MAP = {\n attributename: 'attributeName',\n attributetype: 'attributeType',\n basefrequency: 'baseFrequency',\n baseprofile: 'baseProfile',\n calcmode: 'calcMode',\n clippathunits: 'clipPathUnits',\n diffuseconstant: 'diffuseConstant',\n edgemode: 'edgeMode',\n filterunits: 'filterUnits',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n limitingconeangle: 'limitingConeAngle',\n markerheight: 'markerHeight',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n numoctaves: 'numOctaves',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n refx: 'refX',\n refy: 'refY',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stitchtiles: 'stitchTiles',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textlength: 'textLength',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n xchannelselector: 'xChannelSelector',\n ychannelselector: 'yChannelSelector',\n zoomandpan: 'zoomAndPan'\n};\n\nconst XML_ATTRS_ADJUSTMENT_MAP = {\n 'xlink:actuate': { prefix: 'xlink', name: 'actuate', namespace: NS.XLINK },\n 'xlink:arcrole': { prefix: 'xlink', name: 'arcrole', namespace: NS.XLINK },\n 'xlink:href': { prefix: 'xlink', name: 'href', namespace: NS.XLINK },\n 'xlink:role': { prefix: 'xlink', name: 'role', namespace: NS.XLINK },\n 'xlink:show': { prefix: 'xlink', name: 'show', namespace: NS.XLINK },\n 'xlink:title': { prefix: 'xlink', name: 'title', namespace: NS.XLINK },\n 'xlink:type': { prefix: 'xlink', name: 'type', namespace: NS.XLINK },\n 'xml:base': { prefix: 'xml', name: 'base', namespace: NS.XML },\n 'xml:lang': { prefix: 'xml', name: 'lang', namespace: NS.XML },\n 'xml:space': { prefix: 'xml', name: 'space', namespace: NS.XML },\n xmlns: { prefix: '', name: 'xmlns', namespace: NS.XMLNS },\n 'xmlns:xlink': { prefix: 'xmlns', name: 'xlink', namespace: NS.XMLNS }\n};\n\n//SVG tag names adjustment map\nconst SVG_TAG_NAMES_ADJUSTMENT_MAP = (exports.SVG_TAG_NAMES_ADJUSTMENT_MAP = {\n altglyph: 'altGlyph',\n altglyphdef: 'altGlyphDef',\n altglyphitem: 'altGlyphItem',\n animatecolor: 'animateColor',\n animatemotion: 'animateMotion',\n animatetransform: 'animateTransform',\n clippath: 'clipPath',\n feblend: 'feBlend',\n fecolormatrix: 'feColorMatrix',\n fecomponenttransfer: 'feComponentTransfer',\n fecomposite: 'feComposite',\n feconvolvematrix: 'feConvolveMatrix',\n fediffuselighting: 'feDiffuseLighting',\n fedisplacementmap: 'feDisplacementMap',\n fedistantlight: 'feDistantLight',\n feflood: 'feFlood',\n fefunca: 'feFuncA',\n fefuncb: 'feFuncB',\n fefuncg: 'feFuncG',\n fefuncr: 'feFuncR',\n fegaussianblur: 'feGaussianBlur',\n feimage: 'feImage',\n femerge: 'feMerge',\n femergenode: 'feMergeNode',\n femorphology: 'feMorphology',\n feoffset: 'feOffset',\n fepointlight: 'fePointLight',\n fespecularlighting: 'feSpecularLighting',\n fespotlight: 'feSpotLight',\n fetile: 'feTile',\n feturbulence: 'feTurbulence',\n foreignobject: 'foreignObject',\n glyphref: 'glyphRef',\n lineargradient: 'linearGradient',\n radialgradient: 'radialGradient',\n textpath: 'textPath'\n});\n\n//Tags that causes exit from foreign content\nconst EXITS_FOREIGN_CONTENT = {\n [$.B]: true,\n [$.BIG]: true,\n [$.BLOCKQUOTE]: true,\n [$.BODY]: true,\n [$.BR]: true,\n [$.CENTER]: true,\n [$.CODE]: true,\n [$.DD]: true,\n [$.DIV]: true,\n [$.DL]: true,\n [$.DT]: true,\n [$.EM]: true,\n [$.EMBED]: true,\n [$.H1]: true,\n [$.H2]: true,\n [$.H3]: true,\n [$.H4]: true,\n [$.H5]: true,\n [$.H6]: true,\n [$.HEAD]: true,\n [$.HR]: true,\n [$.I]: true,\n [$.IMG]: true,\n [$.LI]: true,\n [$.LISTING]: true,\n [$.MENU]: true,\n [$.META]: true,\n [$.NOBR]: true,\n [$.OL]: true,\n [$.P]: true,\n [$.PRE]: true,\n [$.RUBY]: true,\n [$.S]: true,\n [$.SMALL]: true,\n [$.SPAN]: true,\n [$.STRONG]: true,\n [$.STRIKE]: true,\n [$.SUB]: true,\n [$.SUP]: true,\n [$.TABLE]: true,\n [$.TT]: true,\n [$.U]: true,\n [$.UL]: true,\n [$.VAR]: true\n};\n\n//Check exit from foreign content\nexports.causesExit = function(startTagToken) {\n const tn = startTagToken.tagName;\n const isFontWithAttrs =\n tn === $.FONT &&\n (Tokenizer.getTokenAttr(startTagToken, ATTRS.COLOR) !== null ||\n Tokenizer.getTokenAttr(startTagToken, ATTRS.SIZE) !== null ||\n Tokenizer.getTokenAttr(startTagToken, ATTRS.FACE) !== null);\n\n return isFontWithAttrs ? true : EXITS_FOREIGN_CONTENT[tn];\n};\n\n//Token adjustments\nexports.adjustTokenMathMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n if (token.attrs[i].name === DEFINITION_URL_ATTR) {\n token.attrs[i].name = ADJUSTED_DEFINITION_URL_ATTR;\n break;\n }\n }\n};\n\nexports.adjustTokenSVGAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrName = SVG_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrName) {\n token.attrs[i].name = adjustedAttrName;\n }\n }\n};\n\nexports.adjustTokenXMLAttrs = function(token) {\n for (let i = 0; i < token.attrs.length; i++) {\n const adjustedAttrEntry = XML_ATTRS_ADJUSTMENT_MAP[token.attrs[i].name];\n\n if (adjustedAttrEntry) {\n token.attrs[i].prefix = adjustedAttrEntry.prefix;\n token.attrs[i].name = adjustedAttrEntry.name;\n token.attrs[i].namespace = adjustedAttrEntry.namespace;\n }\n }\n};\n\nexports.adjustTokenSVGTagName = function(token) {\n const adjustedTagName = SVG_TAG_NAMES_ADJUSTMENT_MAP[token.tagName];\n\n if (adjustedTagName) {\n token.tagName = adjustedTagName;\n }\n};\n\n//Integration points\nfunction isMathMLTextIntegrationPoint(tn, ns) {\n return ns === NS.MATHML && (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS || tn === $.MTEXT);\n}\n\nfunction isHtmlIntegrationPoint(tn, ns, attrs) {\n if (ns === NS.MATHML && tn === $.ANNOTATION_XML) {\n for (let i = 0; i < attrs.length; i++) {\n if (attrs[i].name === ATTRS.ENCODING) {\n const value = attrs[i].value.toLowerCase();\n\n return value === MIME_TYPES.TEXT_HTML || value === MIME_TYPES.APPLICATION_XML;\n }\n }\n }\n\n return ns === NS.SVG && (tn === $.FOREIGN_OBJECT || tn === $.DESC || tn === $.TITLE);\n}\n\nexports.isIntegrationPoint = function(tn, ns, attrs, foreignNS) {\n if ((!foreignNS || foreignNS === NS.HTML) && isHtmlIntegrationPoint(tn, ns, attrs)) {\n return true;\n }\n\n if ((!foreignNS || foreignNS === NS.MATHML) && isMathMLTextIntegrationPoint(tn, ns)) {\n return true;\n }\n\n return false;\n};\n","'use strict';\n\nconst NS = (exports.NAMESPACES = {\n HTML: 'http://www.w3.org/1999/xhtml',\n MATHML: 'http://www.w3.org/1998/Math/MathML',\n SVG: 'http://www.w3.org/2000/svg',\n XLINK: 'http://www.w3.org/1999/xlink',\n XML: 'http://www.w3.org/XML/1998/namespace',\n XMLNS: 'http://www.w3.org/2000/xmlns/'\n});\n\nexports.ATTRS = {\n TYPE: 'type',\n ACTION: 'action',\n ENCODING: 'encoding',\n PROMPT: 'prompt',\n NAME: 'name',\n COLOR: 'color',\n FACE: 'face',\n SIZE: 'size'\n};\n\nexports.DOCUMENT_MODE = {\n NO_QUIRKS: 'no-quirks',\n QUIRKS: 'quirks',\n LIMITED_QUIRKS: 'limited-quirks'\n};\n\nconst $ = (exports.TAG_NAMES = {\n A: 'a',\n ADDRESS: 'address',\n ANNOTATION_XML: 'annotation-xml',\n APPLET: 'applet',\n AREA: 'area',\n ARTICLE: 'article',\n ASIDE: 'aside',\n\n B: 'b',\n BASE: 'base',\n BASEFONT: 'basefont',\n BGSOUND: 'bgsound',\n BIG: 'big',\n BLOCKQUOTE: 'blockquote',\n BODY: 'body',\n BR: 'br',\n BUTTON: 'button',\n\n CAPTION: 'caption',\n CENTER: 'center',\n CODE: 'code',\n COL: 'col',\n COLGROUP: 'colgroup',\n\n DD: 'dd',\n DESC: 'desc',\n DETAILS: 'details',\n DIALOG: 'dialog',\n DIR: 'dir',\n DIV: 'div',\n DL: 'dl',\n DT: 'dt',\n\n EM: 'em',\n EMBED: 'embed',\n\n FIELDSET: 'fieldset',\n FIGCAPTION: 'figcaption',\n FIGURE: 'figure',\n FONT: 'font',\n FOOTER: 'footer',\n FOREIGN_OBJECT: 'foreignObject',\n FORM: 'form',\n FRAME: 'frame',\n FRAMESET: 'frameset',\n\n H1: 'h1',\n H2: 'h2',\n H3: 'h3',\n H4: 'h4',\n H5: 'h5',\n H6: 'h6',\n HEAD: 'head',\n HEADER: 'header',\n HGROUP: 'hgroup',\n HR: 'hr',\n HTML: 'html',\n\n I: 'i',\n IMG: 'img',\n IMAGE: 'image',\n INPUT: 'input',\n IFRAME: 'iframe',\n\n KEYGEN: 'keygen',\n\n LABEL: 'label',\n LI: 'li',\n LINK: 'link',\n LISTING: 'listing',\n\n MAIN: 'main',\n MALIGNMARK: 'malignmark',\n MARQUEE: 'marquee',\n MATH: 'math',\n MENU: 'menu',\n META: 'meta',\n MGLYPH: 'mglyph',\n MI: 'mi',\n MO: 'mo',\n MN: 'mn',\n MS: 'ms',\n MTEXT: 'mtext',\n\n NAV: 'nav',\n NOBR: 'nobr',\n NOFRAMES: 'noframes',\n NOEMBED: 'noembed',\n NOSCRIPT: 'noscript',\n\n OBJECT: 'object',\n OL: 'ol',\n OPTGROUP: 'optgroup',\n OPTION: 'option',\n\n P: 'p',\n PARAM: 'param',\n PLAINTEXT: 'plaintext',\n PRE: 'pre',\n\n RB: 'rb',\n RP: 'rp',\n RT: 'rt',\n RTC: 'rtc',\n RUBY: 'ruby',\n\n S: 's',\n SCRIPT: 'script',\n SECTION: 'section',\n SELECT: 'select',\n SOURCE: 'source',\n SMALL: 'small',\n SPAN: 'span',\n STRIKE: 'strike',\n STRONG: 'strong',\n STYLE: 'style',\n SUB: 'sub',\n SUMMARY: 'summary',\n SUP: 'sup',\n\n TABLE: 'table',\n TBODY: 'tbody',\n TEMPLATE: 'template',\n TEXTAREA: 'textarea',\n TFOOT: 'tfoot',\n TD: 'td',\n TH: 'th',\n THEAD: 'thead',\n TITLE: 'title',\n TR: 'tr',\n TRACK: 'track',\n TT: 'tt',\n\n U: 'u',\n UL: 'ul',\n\n SVG: 'svg',\n\n VAR: 'var',\n\n WBR: 'wbr',\n\n XMP: 'xmp'\n});\n\nexports.SPECIAL_ELEMENTS = {\n [NS.HTML]: {\n [$.ADDRESS]: true,\n [$.APPLET]: true,\n [$.AREA]: true,\n [$.ARTICLE]: true,\n [$.ASIDE]: true,\n [$.BASE]: true,\n [$.BASEFONT]: true,\n [$.BGSOUND]: true,\n [$.BLOCKQUOTE]: true,\n [$.BODY]: true,\n [$.BR]: true,\n [$.BUTTON]: true,\n [$.CAPTION]: true,\n [$.CENTER]: true,\n [$.COL]: true,\n [$.COLGROUP]: true,\n [$.DD]: true,\n [$.DETAILS]: true,\n [$.DIR]: true,\n [$.DIV]: true,\n [$.DL]: true,\n [$.DT]: true,\n [$.EMBED]: true,\n [$.FIELDSET]: true,\n [$.FIGCAPTION]: true,\n [$.FIGURE]: true,\n [$.FOOTER]: true,\n [$.FORM]: true,\n [$.FRAME]: true,\n [$.FRAMESET]: true,\n [$.H1]: true,\n [$.H2]: true,\n [$.H3]: true,\n [$.H4]: true,\n [$.H5]: true,\n [$.H6]: true,\n [$.HEAD]: true,\n [$.HEADER]: true,\n [$.HGROUP]: true,\n [$.HR]: true,\n [$.HTML]: true,\n [$.IFRAME]: true,\n [$.IMG]: true,\n [$.INPUT]: true,\n [$.LI]: true,\n [$.LINK]: true,\n [$.LISTING]: true,\n [$.MAIN]: true,\n [$.MARQUEE]: true,\n [$.MENU]: true,\n [$.META]: true,\n [$.NAV]: true,\n [$.NOEMBED]: true,\n [$.NOFRAMES]: true,\n [$.NOSCRIPT]: true,\n [$.OBJECT]: true,\n [$.OL]: true,\n [$.P]: true,\n [$.PARAM]: true,\n [$.PLAINTEXT]: true,\n [$.PRE]: true,\n [$.SCRIPT]: true,\n [$.SECTION]: true,\n [$.SELECT]: true,\n [$.SOURCE]: true,\n [$.STYLE]: true,\n [$.SUMMARY]: true,\n [$.TABLE]: true,\n [$.TBODY]: true,\n [$.TD]: true,\n [$.TEMPLATE]: true,\n [$.TEXTAREA]: true,\n [$.TFOOT]: true,\n [$.TH]: true,\n [$.THEAD]: true,\n [$.TITLE]: true,\n [$.TR]: true,\n [$.TRACK]: true,\n [$.UL]: true,\n [$.WBR]: true,\n [$.XMP]: true\n },\n [NS.MATHML]: {\n [$.MI]: true,\n [$.MO]: true,\n [$.MN]: true,\n [$.MS]: true,\n [$.MTEXT]: true,\n [$.ANNOTATION_XML]: true\n },\n [NS.SVG]: {\n [$.TITLE]: true,\n [$.FOREIGN_OBJECT]: true,\n [$.DESC]: true\n }\n};\n","'use strict';\n\nconst UNDEFINED_CODE_POINTS = [\n 0xfffe,\n 0xffff,\n 0x1fffe,\n 0x1ffff,\n 0x2fffe,\n 0x2ffff,\n 0x3fffe,\n 0x3ffff,\n 0x4fffe,\n 0x4ffff,\n 0x5fffe,\n 0x5ffff,\n 0x6fffe,\n 0x6ffff,\n 0x7fffe,\n 0x7ffff,\n 0x8fffe,\n 0x8ffff,\n 0x9fffe,\n 0x9ffff,\n 0xafffe,\n 0xaffff,\n 0xbfffe,\n 0xbffff,\n 0xcfffe,\n 0xcffff,\n 0xdfffe,\n 0xdffff,\n 0xefffe,\n 0xeffff,\n 0xffffe,\n 0xfffff,\n 0x10fffe,\n 0x10ffff\n];\n\nexports.REPLACEMENT_CHARACTER = '\\uFFFD';\n\nexports.CODE_POINTS = {\n EOF: -1,\n NULL: 0x00,\n TABULATION: 0x09,\n CARRIAGE_RETURN: 0x0d,\n LINE_FEED: 0x0a,\n FORM_FEED: 0x0c,\n SPACE: 0x20,\n EXCLAMATION_MARK: 0x21,\n QUOTATION_MARK: 0x22,\n NUMBER_SIGN: 0x23,\n AMPERSAND: 0x26,\n APOSTROPHE: 0x27,\n HYPHEN_MINUS: 0x2d,\n SOLIDUS: 0x2f,\n DIGIT_0: 0x30,\n DIGIT_9: 0x39,\n SEMICOLON: 0x3b,\n LESS_THAN_SIGN: 0x3c,\n EQUALS_SIGN: 0x3d,\n GREATER_THAN_SIGN: 0x3e,\n QUESTION_MARK: 0x3f,\n LATIN_CAPITAL_A: 0x41,\n LATIN_CAPITAL_F: 0x46,\n LATIN_CAPITAL_X: 0x58,\n LATIN_CAPITAL_Z: 0x5a,\n RIGHT_SQUARE_BRACKET: 0x5d,\n GRAVE_ACCENT: 0x60,\n LATIN_SMALL_A: 0x61,\n LATIN_SMALL_F: 0x66,\n LATIN_SMALL_X: 0x78,\n LATIN_SMALL_Z: 0x7a,\n REPLACEMENT_CHARACTER: 0xfffd\n};\n\nexports.CODE_POINT_SEQUENCES = {\n DASH_DASH_STRING: [0x2d, 0x2d], //--\n DOCTYPE_STRING: [0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45], //DOCTYPE\n CDATA_START_STRING: [0x5b, 0x43, 0x44, 0x41, 0x54, 0x41, 0x5b], //[CDATA[\n SCRIPT_STRING: [0x73, 0x63, 0x72, 0x69, 0x70, 0x74], //script\n PUBLIC_STRING: [0x50, 0x55, 0x42, 0x4c, 0x49, 0x43], //PUBLIC\n SYSTEM_STRING: [0x53, 0x59, 0x53, 0x54, 0x45, 0x4d] //SYSTEM\n};\n\n//Surrogates\nexports.isSurrogate = function(cp) {\n return cp >= 0xd800 && cp <= 0xdfff;\n};\n\nexports.isSurrogatePair = function(cp) {\n return cp >= 0xdc00 && cp <= 0xdfff;\n};\n\nexports.getSurrogatePairCodePoint = function(cp1, cp2) {\n return (cp1 - 0xd800) * 0x400 + 0x2400 + cp2;\n};\n\n//NOTE: excluding NULL and ASCII whitespace\nexports.isControlCodePoint = function(cp) {\n return (\n (cp !== 0x20 && cp !== 0x0a && cp !== 0x0d && cp !== 0x09 && cp !== 0x0c && cp >= 0x01 && cp <= 0x1f) ||\n (cp >= 0x7f && cp <= 0x9f)\n );\n};\n\nexports.isUndefinedCodePoint = function(cp) {\n return (cp >= 0xfdd0 && cp <= 0xfdef) || UNDEFINED_CODE_POINTS.indexOf(cp) > -1;\n};\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingMixinBase extends Mixin {\n constructor(host, opts) {\n super(host);\n\n this.posTracker = null;\n this.onParseError = opts.onParseError;\n }\n\n _setErrorLocation(err) {\n err.startLine = err.endLine = this.posTracker.line;\n err.startCol = err.endCol = this.posTracker.col;\n err.startOffset = err.endOffset = this.posTracker.offset;\n }\n\n _reportError(code) {\n const err = {\n code: code,\n startLine: -1,\n startCol: -1,\n startOffset: -1,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n\n this._setErrorLocation(err);\n this.onParseError(err);\n }\n\n _getOverriddenMethods(mxn) {\n return {\n _err(code) {\n mxn._reportError(code);\n }\n };\n }\n}\n\nmodule.exports = ErrorReportingMixinBase;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoTokenizerMixin = require('../location-info/tokenizer-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingParserMixin extends ErrorReportingMixinBase {\n constructor(parser, opts) {\n super(parser, opts);\n\n this.opts = opts;\n this.ctLoc = null;\n this.locBeforeToken = false;\n }\n\n _setErrorLocation(err) {\n if (this.ctLoc) {\n err.startLine = this.ctLoc.startLine;\n err.startCol = this.ctLoc.startCol;\n err.startOffset = this.ctLoc.startOffset;\n\n err.endLine = this.locBeforeToken ? this.ctLoc.startLine : this.ctLoc.endLine;\n err.endCol = this.locBeforeToken ? this.ctLoc.startCol : this.ctLoc.endCol;\n err.endOffset = this.locBeforeToken ? this.ctLoc.startOffset : this.ctLoc.endOffset;\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n Mixin.install(this.tokenizer, ErrorReportingTokenizerMixin, mxn.opts);\n Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n },\n\n _processInputToken(token) {\n mxn.ctLoc = token.location;\n\n orig._processInputToken.call(this, token);\n },\n\n _err(code, options) {\n mxn.locBeforeToken = options && options.beforeToken;\n mxn._reportError(code);\n }\n };\n }\n}\n\nmodule.exports = ErrorReportingParserMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingPreprocessorMixin extends ErrorReportingMixinBase {\n constructor(preprocessor, opts) {\n super(preprocessor, opts);\n\n this.posTracker = Mixin.install(preprocessor, PositionTrackingPreprocessorMixin);\n this.lastErrOffset = -1;\n }\n\n _reportError(code) {\n //NOTE: avoid reporting error twice on advance/retreat\n if (this.lastErrOffset !== this.posTracker.offset) {\n this.lastErrOffset = this.posTracker.offset;\n super._reportError(code);\n }\n }\n}\n\nmodule.exports = ErrorReportingPreprocessorMixin;\n","'use strict';\n\nconst ErrorReportingMixinBase = require('./mixin-base');\nconst ErrorReportingPreprocessorMixin = require('./preprocessor-mixin');\nconst Mixin = require('../../utils/mixin');\n\nclass ErrorReportingTokenizerMixin extends ErrorReportingMixinBase {\n constructor(tokenizer, opts) {\n super(tokenizer, opts);\n\n const preprocessorMixin = Mixin.install(tokenizer.preprocessor, ErrorReportingPreprocessorMixin, opts);\n\n this.posTracker = preprocessorMixin.posTracker;\n }\n}\n\nmodule.exports = ErrorReportingTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass LocationInfoOpenElementStackMixin extends Mixin {\n constructor(stack, opts) {\n super(stack);\n\n this.onItemPop = opts.onItemPop;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n pop() {\n mxn.onItemPop(this.current);\n orig.pop.call(this);\n },\n\n popAllUpToHtmlElement() {\n for (let i = this.stackTop; i > 0; i--) {\n mxn.onItemPop(this.items[i]);\n }\n\n orig.popAllUpToHtmlElement.call(this);\n },\n\n remove(element) {\n mxn.onItemPop(this.current);\n orig.remove.call(this, element);\n }\n };\n }\n}\n\nmodule.exports = LocationInfoOpenElementStackMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst LocationInfoTokenizerMixin = require('./tokenizer-mixin');\nconst LocationInfoOpenElementStackMixin = require('./open-element-stack-mixin');\nconst HTML = require('../../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\n\nclass LocationInfoParserMixin extends Mixin {\n constructor(parser) {\n super(parser);\n\n this.parser = parser;\n this.treeAdapter = this.parser.treeAdapter;\n this.posTracker = null;\n this.lastStartTagToken = null;\n this.lastFosterParentingLocation = null;\n this.currentToken = null;\n }\n\n _setStartLocation(element) {\n let loc = null;\n\n if (this.lastStartTagToken) {\n loc = Object.assign({}, this.lastStartTagToken.location);\n loc.startTag = this.lastStartTagToken.location;\n }\n\n this.treeAdapter.setNodeSourceCodeLocation(element, loc);\n }\n\n _setEndLocation(element, closingToken) {\n const loc = this.treeAdapter.getNodeSourceCodeLocation(element);\n\n if (loc) {\n if (closingToken.location) {\n const ctLoc = closingToken.location;\n const tn = this.treeAdapter.getTagName(element);\n\n // NOTE: For cases like <p> <p> </p> - First 'p' closes without a closing\n // tag and for cases like <td> <p> </td> - 'p' closes without a closing tag.\n const isClosingEndTag = closingToken.type === Tokenizer.END_TAG_TOKEN && tn === closingToken.tagName;\n const endLoc = {};\n if (isClosingEndTag) {\n endLoc.endTag = Object.assign({}, ctLoc);\n endLoc.endLine = ctLoc.endLine;\n endLoc.endCol = ctLoc.endCol;\n endLoc.endOffset = ctLoc.endOffset;\n } else {\n endLoc.endLine = ctLoc.startLine;\n endLoc.endCol = ctLoc.startCol;\n endLoc.endOffset = ctLoc.startOffset;\n }\n\n this.treeAdapter.updateNodeSourceCodeLocation(element, endLoc);\n }\n }\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n _bootstrap(document, fragmentContext) {\n orig._bootstrap.call(this, document, fragmentContext);\n\n mxn.lastStartTagToken = null;\n mxn.lastFosterParentingLocation = null;\n mxn.currentToken = null;\n\n const tokenizerMixin = Mixin.install(this.tokenizer, LocationInfoTokenizerMixin);\n\n mxn.posTracker = tokenizerMixin.posTracker;\n\n Mixin.install(this.openElements, LocationInfoOpenElementStackMixin, {\n onItemPop: function(element) {\n mxn._setEndLocation(element, mxn.currentToken);\n }\n });\n },\n\n _runParsingLoop(scriptHandler) {\n orig._runParsingLoop.call(this, scriptHandler);\n\n // NOTE: generate location info for elements\n // that remains on open element stack\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n mxn._setEndLocation(this.openElements.items[i], mxn.currentToken);\n }\n },\n\n //Token processing\n _processTokenInForeignContent(token) {\n mxn.currentToken = token;\n orig._processTokenInForeignContent.call(this, token);\n },\n\n _processToken(token) {\n mxn.currentToken = token;\n orig._processToken.call(this, token);\n\n //NOTE: <body> and <html> are never popped from the stack, so we need to updated\n //their end location explicitly.\n const requireExplicitUpdate =\n token.type === Tokenizer.END_TAG_TOKEN &&\n (token.tagName === $.HTML || (token.tagName === $.BODY && this.openElements.hasInScope($.BODY)));\n\n if (requireExplicitUpdate) {\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const element = this.openElements.items[i];\n\n if (this.treeAdapter.getTagName(element) === token.tagName) {\n mxn._setEndLocation(element, token);\n break;\n }\n }\n }\n },\n\n //Doctype\n _setDocumentType(token) {\n orig._setDocumentType.call(this, token);\n\n const documentChildren = this.treeAdapter.getChildNodes(this.document);\n const cnLength = documentChildren.length;\n\n for (let i = 0; i < cnLength; i++) {\n const node = documentChildren[i];\n\n if (this.treeAdapter.isDocumentTypeNode(node)) {\n this.treeAdapter.setNodeSourceCodeLocation(node, token.location);\n break;\n }\n }\n },\n\n //Elements\n _attachElementToTree(element) {\n //NOTE: _attachElementToTree is called from _appendElement, _insertElement and _insertTemplate methods.\n //So we will use token location stored in this methods for the element.\n mxn._setStartLocation(element);\n mxn.lastStartTagToken = null;\n orig._attachElementToTree.call(this, element);\n },\n\n _appendElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._appendElement.call(this, token, namespaceURI);\n },\n\n _insertElement(token, namespaceURI) {\n mxn.lastStartTagToken = token;\n orig._insertElement.call(this, token, namespaceURI);\n },\n\n _insertTemplate(token) {\n mxn.lastStartTagToken = token;\n orig._insertTemplate.call(this, token);\n\n const tmplContent = this.treeAdapter.getTemplateContent(this.openElements.current);\n\n this.treeAdapter.setNodeSourceCodeLocation(tmplContent, null);\n },\n\n _insertFakeRootElement() {\n orig._insertFakeRootElement.call(this);\n this.treeAdapter.setNodeSourceCodeLocation(this.openElements.current, null);\n },\n\n //Comments\n _appendCommentNode(token, parent) {\n orig._appendCommentNode.call(this, token, parent);\n\n const children = this.treeAdapter.getChildNodes(parent);\n const commentNode = children[children.length - 1];\n\n this.treeAdapter.setNodeSourceCodeLocation(commentNode, token.location);\n },\n\n //Text\n _findFosterParentingLocation() {\n //NOTE: store last foster parenting location, so we will be able to find inserted text\n //in case of foster parenting\n mxn.lastFosterParentingLocation = orig._findFosterParentingLocation.call(this);\n\n return mxn.lastFosterParentingLocation;\n },\n\n _insertCharacters(token) {\n orig._insertCharacters.call(this, token);\n\n const hasFosterParent = this._shouldFosterParentOnInsertion();\n\n const parent =\n (hasFosterParent && mxn.lastFosterParentingLocation.parent) ||\n this.openElements.currentTmplContent ||\n this.openElements.current;\n\n const siblings = this.treeAdapter.getChildNodes(parent);\n\n const textNodeIdx =\n hasFosterParent && mxn.lastFosterParentingLocation.beforeElement\n ? siblings.indexOf(mxn.lastFosterParentingLocation.beforeElement) - 1\n : siblings.length - 1;\n\n const textNode = siblings[textNodeIdx];\n\n //NOTE: if we have location assigned by another token, then just update end position\n const tnLoc = this.treeAdapter.getNodeSourceCodeLocation(textNode);\n\n if (tnLoc) {\n const { endLine, endCol, endOffset } = token.location;\n this.treeAdapter.updateNodeSourceCodeLocation(textNode, { endLine, endCol, endOffset });\n } else {\n this.treeAdapter.setNodeSourceCodeLocation(textNode, token.location);\n }\n }\n };\n }\n}\n\nmodule.exports = LocationInfoParserMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\nconst Tokenizer = require('../../tokenizer');\nconst PositionTrackingPreprocessorMixin = require('../position-tracking/preprocessor-mixin');\n\nclass LocationInfoTokenizerMixin extends Mixin {\n constructor(tokenizer) {\n super(tokenizer);\n\n this.tokenizer = tokenizer;\n this.posTracker = Mixin.install(tokenizer.preprocessor, PositionTrackingPreprocessorMixin);\n this.currentAttrLocation = null;\n this.ctLoc = null;\n }\n\n _getCurrentLocation() {\n return {\n startLine: this.posTracker.line,\n startCol: this.posTracker.col,\n startOffset: this.posTracker.offset,\n endLine: -1,\n endCol: -1,\n endOffset: -1\n };\n }\n\n _attachCurrentAttrLocationInfo() {\n this.currentAttrLocation.endLine = this.posTracker.line;\n this.currentAttrLocation.endCol = this.posTracker.col;\n this.currentAttrLocation.endOffset = this.posTracker.offset;\n\n const currentToken = this.tokenizer.currentToken;\n const currentAttr = this.tokenizer.currentAttr;\n\n if (!currentToken.location.attrs) {\n currentToken.location.attrs = Object.create(null);\n }\n\n currentToken.location.attrs[currentAttr.name] = this.currentAttrLocation;\n }\n\n _getOverriddenMethods(mxn, orig) {\n const methods = {\n _createStartTagToken() {\n orig._createStartTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createEndTagToken() {\n orig._createEndTagToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCommentToken() {\n orig._createCommentToken.call(this);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createDoctypeToken(initialName) {\n orig._createDoctypeToken.call(this, initialName);\n this.currentToken.location = mxn.ctLoc;\n },\n\n _createCharacterToken(type, ch) {\n orig._createCharacterToken.call(this, type, ch);\n this.currentCharacterToken.location = mxn.ctLoc;\n },\n\n _createEOFToken() {\n orig._createEOFToken.call(this);\n this.currentToken.location = mxn._getCurrentLocation();\n },\n\n _createAttr(attrNameFirstCh) {\n orig._createAttr.call(this, attrNameFirstCh);\n mxn.currentAttrLocation = mxn._getCurrentLocation();\n },\n\n _leaveAttrName(toState) {\n orig._leaveAttrName.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _leaveAttrValue(toState) {\n orig._leaveAttrValue.call(this, toState);\n mxn._attachCurrentAttrLocationInfo();\n },\n\n _emitCurrentToken() {\n const ctLoc = this.currentToken.location;\n\n //NOTE: if we have pending character token make it's end location equal to the\n //current token's start location.\n if (this.currentCharacterToken) {\n this.currentCharacterToken.location.endLine = ctLoc.startLine;\n this.currentCharacterToken.location.endCol = ctLoc.startCol;\n this.currentCharacterToken.location.endOffset = ctLoc.startOffset;\n }\n\n if (this.currentToken.type === Tokenizer.EOF_TOKEN) {\n ctLoc.endLine = ctLoc.startLine;\n ctLoc.endCol = ctLoc.startCol;\n ctLoc.endOffset = ctLoc.startOffset;\n } else {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col + 1;\n ctLoc.endOffset = mxn.posTracker.offset + 1;\n }\n\n orig._emitCurrentToken.call(this);\n },\n\n _emitCurrentCharacterToken() {\n const ctLoc = this.currentCharacterToken && this.currentCharacterToken.location;\n\n //NOTE: if we have character token and it's location wasn't set in the _emitCurrentToken(),\n //then set it's location at the current preprocessor position.\n //We don't need to increment preprocessor position, since character token\n //emission is always forced by the start of the next character token here.\n //So, we already have advanced position.\n if (ctLoc && ctLoc.endOffset === -1) {\n ctLoc.endLine = mxn.posTracker.line;\n ctLoc.endCol = mxn.posTracker.col;\n ctLoc.endOffset = mxn.posTracker.offset;\n }\n\n orig._emitCurrentCharacterToken.call(this);\n }\n };\n\n //NOTE: patch initial states for each mode to obtain token start position\n Object.keys(Tokenizer.MODE).forEach(modeName => {\n const state = Tokenizer.MODE[modeName];\n\n methods[state] = function(cp) {\n mxn.ctLoc = mxn._getCurrentLocation();\n orig[state].call(this, cp);\n };\n });\n\n return methods;\n }\n}\n\nmodule.exports = LocationInfoTokenizerMixin;\n","'use strict';\n\nconst Mixin = require('../../utils/mixin');\n\nclass PositionTrackingPreprocessorMixin extends Mixin {\n constructor(preprocessor) {\n super(preprocessor);\n\n this.preprocessor = preprocessor;\n this.isEol = false;\n this.lineStartPos = 0;\n this.droppedBufferSize = 0;\n\n this.offset = 0;\n this.col = 0;\n this.line = 1;\n }\n\n _getOverriddenMethods(mxn, orig) {\n return {\n advance() {\n const pos = this.pos + 1;\n const ch = this.html[pos];\n\n //NOTE: LF should be in the last column of the line\n if (mxn.isEol) {\n mxn.isEol = false;\n mxn.line++;\n mxn.lineStartPos = pos;\n }\n\n if (ch === '\\n' || (ch === '\\r' && this.html[pos + 1] !== '\\n')) {\n mxn.isEol = true;\n }\n\n mxn.col = pos - mxn.lineStartPos + 1;\n mxn.offset = mxn.droppedBufferSize + pos;\n\n return orig.advance.call(this);\n },\n\n retreat() {\n orig.retreat.call(this);\n\n mxn.isEol = false;\n mxn.col = this.pos - mxn.lineStartPos + 1;\n },\n\n dropParsedChunk() {\n const prevPos = this.pos;\n\n orig.dropParsedChunk.call(this);\n\n const reduction = prevPos - this.pos;\n\n mxn.lineStartPos -= reduction;\n mxn.droppedBufferSize += reduction;\n mxn.offset = mxn.droppedBufferSize + this.pos;\n }\n };\n }\n}\n\nmodule.exports = PositionTrackingPreprocessorMixin;\n","'use strict';\n\n//Const\nconst NOAH_ARK_CAPACITY = 3;\n\n//List of formatting elements\nclass FormattingElementList {\n constructor(treeAdapter) {\n this.length = 0;\n this.entries = [];\n this.treeAdapter = treeAdapter;\n this.bookmark = null;\n }\n\n //Noah Ark's condition\n //OPTIMIZATION: at first we try to find possible candidates for exclusion using\n //lightweight heuristics without thorough attributes check.\n _getNoahArkConditionCandidates(newElement) {\n const candidates = [];\n\n if (this.length >= NOAH_ARK_CAPACITY) {\n const neAttrsLength = this.treeAdapter.getAttrList(newElement).length;\n const neTagName = this.treeAdapter.getTagName(newElement);\n const neNamespaceURI = this.treeAdapter.getNamespaceURI(newElement);\n\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n\n const element = entry.element;\n const elementAttrs = this.treeAdapter.getAttrList(element);\n\n const isCandidate =\n this.treeAdapter.getTagName(element) === neTagName &&\n this.treeAdapter.getNamespaceURI(element) === neNamespaceURI &&\n elementAttrs.length === neAttrsLength;\n\n if (isCandidate) {\n candidates.push({ idx: i, attrs: elementAttrs });\n }\n }\n }\n\n return candidates.length < NOAH_ARK_CAPACITY ? [] : candidates;\n }\n\n _ensureNoahArkCondition(newElement) {\n const candidates = this._getNoahArkConditionCandidates(newElement);\n let cLength = candidates.length;\n\n if (cLength) {\n const neAttrs = this.treeAdapter.getAttrList(newElement);\n const neAttrsLength = neAttrs.length;\n const neAttrsMap = Object.create(null);\n\n //NOTE: build attrs map for the new element so we can perform fast lookups\n for (let i = 0; i < neAttrsLength; i++) {\n const neAttr = neAttrs[i];\n\n neAttrsMap[neAttr.name] = neAttr.value;\n }\n\n for (let i = 0; i < neAttrsLength; i++) {\n for (let j = 0; j < cLength; j++) {\n const cAttr = candidates[j].attrs[i];\n\n if (neAttrsMap[cAttr.name] !== cAttr.value) {\n candidates.splice(j, 1);\n cLength--;\n }\n\n if (candidates.length < NOAH_ARK_CAPACITY) {\n return;\n }\n }\n }\n\n //NOTE: remove bottommost candidates until Noah's Ark condition will not be met\n for (let i = cLength - 1; i >= NOAH_ARK_CAPACITY - 1; i--) {\n this.entries.splice(candidates[i].idx, 1);\n this.length--;\n }\n }\n }\n\n //Mutations\n insertMarker() {\n this.entries.push({ type: FormattingElementList.MARKER_ENTRY });\n this.length++;\n }\n\n pushElement(element, token) {\n this._ensureNoahArkCondition(element);\n\n this.entries.push({\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n insertElementAfterBookmark(element, token) {\n let bookmarkIdx = this.length - 1;\n\n for (; bookmarkIdx >= 0; bookmarkIdx--) {\n if (this.entries[bookmarkIdx] === this.bookmark) {\n break;\n }\n }\n\n this.entries.splice(bookmarkIdx + 1, 0, {\n type: FormattingElementList.ELEMENT_ENTRY,\n element: element,\n token: token\n });\n\n this.length++;\n }\n\n removeEntry(entry) {\n for (let i = this.length - 1; i >= 0; i--) {\n if (this.entries[i] === entry) {\n this.entries.splice(i, 1);\n this.length--;\n break;\n }\n }\n }\n\n clearToLastMarker() {\n while (this.length) {\n const entry = this.entries.pop();\n\n this.length--;\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n break;\n }\n }\n }\n\n //Search\n getElementEntryInScopeWithTagName(tagName) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY) {\n return null;\n }\n\n if (this.treeAdapter.getTagName(entry.element) === tagName) {\n return entry;\n }\n }\n\n return null;\n }\n\n getElementEntry(element) {\n for (let i = this.length - 1; i >= 0; i--) {\n const entry = this.entries[i];\n\n if (entry.type === FormattingElementList.ELEMENT_ENTRY && entry.element === element) {\n return entry;\n }\n }\n\n return null;\n }\n}\n\n//Entry types\nFormattingElementList.MARKER_ENTRY = 'MARKER_ENTRY';\nFormattingElementList.ELEMENT_ENTRY = 'ELEMENT_ENTRY';\n\nmodule.exports = FormattingElementList;\n","'use strict';\n\nconst Tokenizer = require('../tokenizer');\nconst OpenElementStack = require('./open-element-stack');\nconst FormattingElementList = require('./formatting-element-list');\nconst LocationInfoParserMixin = require('../extensions/location-info/parser-mixin');\nconst ErrorReportingParserMixin = require('../extensions/error-reporting/parser-mixin');\nconst Mixin = require('../utils/mixin');\nconst defaultTreeAdapter = require('../tree-adapters/default');\nconst mergeOptions = require('../utils/merge-options');\nconst doctype = require('../common/doctype');\nconst foreignContent = require('../common/foreign-content');\nconst ERR = require('../common/error-codes');\nconst unicode = require('../common/unicode');\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\nconst ATTRS = HTML.ATTRS;\n\nconst DEFAULT_OPTIONS = {\n scriptingEnabled: true,\n sourceCodeLocationInfo: false,\n onParseError: null,\n treeAdapter: defaultTreeAdapter\n};\n\n//Misc constants\nconst HIDDEN_INPUT_TYPE = 'hidden';\n\n//Adoption agency loops iteration count\nconst AA_OUTER_LOOP_ITER = 8;\nconst AA_INNER_LOOP_ITER = 3;\n\n//Insertion modes\nconst INITIAL_MODE = 'INITIAL_MODE';\nconst BEFORE_HTML_MODE = 'BEFORE_HTML_MODE';\nconst BEFORE_HEAD_MODE = 'BEFORE_HEAD_MODE';\nconst IN_HEAD_MODE = 'IN_HEAD_MODE';\nconst IN_HEAD_NO_SCRIPT_MODE = 'IN_HEAD_NO_SCRIPT_MODE';\nconst AFTER_HEAD_MODE = 'AFTER_HEAD_MODE';\nconst IN_BODY_MODE = 'IN_BODY_MODE';\nconst TEXT_MODE = 'TEXT_MODE';\nconst IN_TABLE_MODE = 'IN_TABLE_MODE';\nconst IN_TABLE_TEXT_MODE = 'IN_TABLE_TEXT_MODE';\nconst IN_CAPTION_MODE = 'IN_CAPTION_MODE';\nconst IN_COLUMN_GROUP_MODE = 'IN_COLUMN_GROUP_MODE';\nconst IN_TABLE_BODY_MODE = 'IN_TABLE_BODY_MODE';\nconst IN_ROW_MODE = 'IN_ROW_MODE';\nconst IN_CELL_MODE = 'IN_CELL_MODE';\nconst IN_SELECT_MODE = 'IN_SELECT_MODE';\nconst IN_SELECT_IN_TABLE_MODE = 'IN_SELECT_IN_TABLE_MODE';\nconst IN_TEMPLATE_MODE = 'IN_TEMPLATE_MODE';\nconst AFTER_BODY_MODE = 'AFTER_BODY_MODE';\nconst IN_FRAMESET_MODE = 'IN_FRAMESET_MODE';\nconst AFTER_FRAMESET_MODE = 'AFTER_FRAMESET_MODE';\nconst AFTER_AFTER_BODY_MODE = 'AFTER_AFTER_BODY_MODE';\nconst AFTER_AFTER_FRAMESET_MODE = 'AFTER_AFTER_FRAMESET_MODE';\n\n//Insertion mode reset map\nconst INSERTION_MODE_RESET_MAP = {\n [$.TR]: IN_ROW_MODE,\n [$.TBODY]: IN_TABLE_BODY_MODE,\n [$.THEAD]: IN_TABLE_BODY_MODE,\n [$.TFOOT]: IN_TABLE_BODY_MODE,\n [$.CAPTION]: IN_CAPTION_MODE,\n [$.COLGROUP]: IN_COLUMN_GROUP_MODE,\n [$.TABLE]: IN_TABLE_MODE,\n [$.BODY]: IN_BODY_MODE,\n [$.FRAMESET]: IN_FRAMESET_MODE\n};\n\n//Template insertion mode switch map\nconst TEMPLATE_INSERTION_MODE_SWITCH_MAP = {\n [$.CAPTION]: IN_TABLE_MODE,\n [$.COLGROUP]: IN_TABLE_MODE,\n [$.TBODY]: IN_TABLE_MODE,\n [$.TFOOT]: IN_TABLE_MODE,\n [$.THEAD]: IN_TABLE_MODE,\n [$.COL]: IN_COLUMN_GROUP_MODE,\n [$.TR]: IN_TABLE_BODY_MODE,\n [$.TD]: IN_ROW_MODE,\n [$.TH]: IN_ROW_MODE\n};\n\n//Token handlers map for insertion modes\nconst TOKEN_HANDLERS = {\n [INITIAL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInInitialMode,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: doctypeInInitialMode,\n [Tokenizer.START_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.END_TAG_TOKEN]: tokenInInitialMode,\n [Tokenizer.EOF_TOKEN]: tokenInInitialMode\n },\n [BEFORE_HTML_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHtml,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHtml,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHtml,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHtml\n },\n [BEFORE_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenBeforeHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagBeforeHead,\n [Tokenizer.END_TAG_TOKEN]: endTagBeforeHead,\n [Tokenizer.EOF_TOKEN]: tokenBeforeHead\n },\n [IN_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHead,\n [Tokenizer.END_TAG_TOKEN]: endTagInHead,\n [Tokenizer.EOF_TOKEN]: tokenInHead\n },\n [IN_HEAD_NO_SCRIPT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInHeadNoScript,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagInHeadNoScript,\n [Tokenizer.END_TAG_TOKEN]: endTagInHeadNoScript,\n [Tokenizer.EOF_TOKEN]: tokenInHeadNoScript\n },\n [AFTER_HEAD_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterHead,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: misplacedDoctype,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterHead,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterHead,\n [Tokenizer.EOF_TOKEN]: tokenAfterHead\n },\n [IN_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: ignoreToken,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: ignoreToken,\n [Tokenizer.END_TAG_TOKEN]: endTagInText,\n [Tokenizer.EOF_TOKEN]: eofInText\n },\n [IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_TEXT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTableText,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInTableText,\n [Tokenizer.COMMENT_TOKEN]: tokenInTableText,\n [Tokenizer.DOCTYPE_TOKEN]: tokenInTableText,\n [Tokenizer.START_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.END_TAG_TOKEN]: tokenInTableText,\n [Tokenizer.EOF_TOKEN]: tokenInTableText\n },\n [IN_CAPTION_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCaption,\n [Tokenizer.END_TAG_TOKEN]: endTagInCaption,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_COLUMN_GROUP_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenInColumnGroup,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInColumnGroup,\n [Tokenizer.END_TAG_TOKEN]: endTagInColumnGroup,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TABLE_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTableBody,\n [Tokenizer.END_TAG_TOKEN]: endTagInTableBody,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_ROW_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.NULL_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: characterInTable,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInRow,\n [Tokenizer.END_TAG_TOKEN]: endTagInRow,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_CELL_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInCell,\n [Tokenizer.END_TAG_TOKEN]: endTagInCell,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelect,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelect,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_SELECT_IN_TABLE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInSelectInTable,\n [Tokenizer.END_TAG_TOKEN]: endTagInSelectInTable,\n [Tokenizer.EOF_TOKEN]: eofInBody\n },\n [IN_TEMPLATE_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: characterInBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInTemplate,\n [Tokenizer.END_TAG_TOKEN]: endTagInTemplate,\n [Tokenizer.EOF_TOKEN]: eofInTemplate\n },\n [AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToRootHtmlElement,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterBody,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [IN_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagInFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagInFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: insertCharacters,\n [Tokenizer.COMMENT_TOKEN]: appendComment,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: endTagAfterFrameset,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_BODY_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.NULL_CHARACTER_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterBody,\n [Tokenizer.END_TAG_TOKEN]: tokenAfterAfterBody,\n [Tokenizer.EOF_TOKEN]: stopParsing\n },\n [AFTER_AFTER_FRAMESET_MODE]: {\n [Tokenizer.CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.NULL_CHARACTER_TOKEN]: ignoreToken,\n [Tokenizer.WHITESPACE_CHARACTER_TOKEN]: whitespaceCharacterInBody,\n [Tokenizer.COMMENT_TOKEN]: appendCommentToDocument,\n [Tokenizer.DOCTYPE_TOKEN]: ignoreToken,\n [Tokenizer.START_TAG_TOKEN]: startTagAfterAfterFrameset,\n [Tokenizer.END_TAG_TOKEN]: ignoreToken,\n [Tokenizer.EOF_TOKEN]: stopParsing\n }\n};\n\n//Parser\nclass Parser {\n constructor(options) {\n this.options = mergeOptions(DEFAULT_OPTIONS, options);\n\n this.treeAdapter = this.options.treeAdapter;\n this.pendingScript = null;\n\n if (this.options.sourceCodeLocationInfo) {\n Mixin.install(this, LocationInfoParserMixin);\n }\n\n if (this.options.onParseError) {\n Mixin.install(this, ErrorReportingParserMixin, { onParseError: this.options.onParseError });\n }\n }\n\n // API\n parse(html) {\n const document = this.treeAdapter.createDocument();\n\n this._bootstrap(document, null);\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n return document;\n }\n\n parseFragment(html, fragmentContext) {\n //NOTE: use <template> element as a fragment context if context element was not provided,\n //so we will parse in \"forgiving\" manner\n if (!fragmentContext) {\n fragmentContext = this.treeAdapter.createElement($.TEMPLATE, NS.HTML, []);\n }\n\n //NOTE: create fake element which will be used as 'document' for fragment parsing.\n //This is important for jsdom there 'document' can't be recreated, therefore\n //fragment parsing causes messing of the main `document`.\n const documentMock = this.treeAdapter.createElement('documentmock', NS.HTML, []);\n\n this._bootstrap(documentMock, fragmentContext);\n\n if (this.treeAdapter.getTagName(fragmentContext) === $.TEMPLATE) {\n this._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n }\n\n this._initTokenizerForFragmentParsing();\n this._insertFakeRootElement();\n this._resetInsertionMode();\n this._findFormInFragmentContext();\n this.tokenizer.write(html, true);\n this._runParsingLoop(null);\n\n const rootElement = this.treeAdapter.getFirstChild(documentMock);\n const fragment = this.treeAdapter.createDocumentFragment();\n\n this._adoptNodes(rootElement, fragment);\n\n return fragment;\n }\n\n //Bootstrap parser\n _bootstrap(document, fragmentContext) {\n this.tokenizer = new Tokenizer(this.options);\n\n this.stopped = false;\n\n this.insertionMode = INITIAL_MODE;\n this.originalInsertionMode = '';\n\n this.document = document;\n this.fragmentContext = fragmentContext;\n\n this.headElement = null;\n this.formElement = null;\n\n this.openElements = new OpenElementStack(this.document, this.treeAdapter);\n this.activeFormattingElements = new FormattingElementList(this.treeAdapter);\n\n this.tmplInsertionModeStack = [];\n this.tmplInsertionModeStackTop = -1;\n this.currentTmplInsertionMode = null;\n\n this.pendingCharacterTokens = [];\n this.hasNonWhitespacePendingCharacterToken = false;\n\n this.framesetOk = true;\n this.skipNextNewLine = false;\n this.fosterParentingEnabled = false;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n //Parsing loop\n _runParsingLoop(scriptHandler) {\n while (!this.stopped) {\n this._setupTokenizerCDATAMode();\n\n const token = this.tokenizer.getNextToken();\n\n if (token.type === Tokenizer.HIBERNATION_TOKEN) {\n break;\n }\n\n if (this.skipNextNewLine) {\n this.skipNextNewLine = false;\n\n if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN && token.chars[0] === '\\n') {\n if (token.chars.length === 1) {\n continue;\n }\n\n token.chars = token.chars.substr(1);\n }\n }\n\n this._processInputToken(token);\n\n if (scriptHandler && this.pendingScript) {\n break;\n }\n }\n }\n\n runParsingLoopForCurrentChunk(writeCallback, scriptHandler) {\n this._runParsingLoop(scriptHandler);\n\n if (scriptHandler && this.pendingScript) {\n const script = this.pendingScript;\n\n this.pendingScript = null;\n\n scriptHandler(script);\n\n return;\n }\n\n if (writeCallback) {\n writeCallback();\n }\n }\n\n //Text parsing\n _setupTokenizerCDATAMode() {\n const current = this._getAdjustedCurrentElement();\n\n this.tokenizer.allowCDATA =\n current &&\n current !== this.document &&\n this.treeAdapter.getNamespaceURI(current) !== NS.HTML &&\n !this._isIntegrationPoint(current);\n }\n\n _switchToTextParsing(currentToken, nextTokenizerState) {\n this._insertElement(currentToken, NS.HTML);\n this.tokenizer.state = nextTokenizerState;\n this.originalInsertionMode = this.insertionMode;\n this.insertionMode = TEXT_MODE;\n }\n\n switchToPlaintextParsing() {\n this.insertionMode = TEXT_MODE;\n this.originalInsertionMode = IN_BODY_MODE;\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n\n //Fragment parsing\n _getAdjustedCurrentElement() {\n return this.openElements.stackTop === 0 && this.fragmentContext\n ? this.fragmentContext\n : this.openElements.current;\n }\n\n _findFormInFragmentContext() {\n let node = this.fragmentContext;\n\n do {\n if (this.treeAdapter.getTagName(node) === $.FORM) {\n this.formElement = node;\n break;\n }\n\n node = this.treeAdapter.getParentNode(node);\n } while (node);\n }\n\n _initTokenizerForFragmentParsing() {\n if (this.treeAdapter.getNamespaceURI(this.fragmentContext) === NS.HTML) {\n const tn = this.treeAdapter.getTagName(this.fragmentContext);\n\n if (tn === $.TITLE || tn === $.TEXTAREA) {\n this.tokenizer.state = Tokenizer.MODE.RCDATA;\n } else if (\n tn === $.STYLE ||\n tn === $.XMP ||\n tn === $.IFRAME ||\n tn === $.NOEMBED ||\n tn === $.NOFRAMES ||\n tn === $.NOSCRIPT\n ) {\n this.tokenizer.state = Tokenizer.MODE.RAWTEXT;\n } else if (tn === $.SCRIPT) {\n this.tokenizer.state = Tokenizer.MODE.SCRIPT_DATA;\n } else if (tn === $.PLAINTEXT) {\n this.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n }\n }\n }\n\n //Tree mutation\n _setDocumentType(token) {\n const name = token.name || '';\n const publicId = token.publicId || '';\n const systemId = token.systemId || '';\n\n this.treeAdapter.setDocumentType(this.document, name, publicId, systemId);\n }\n\n _attachElementToTree(element) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentElement(element);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.appendChild(parent, element);\n }\n }\n\n _appendElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n }\n\n _insertElement(token, namespaceURI) {\n const element = this.treeAdapter.createElement(token.tagName, namespaceURI, token.attrs);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertFakeElement(tagName) {\n const element = this.treeAdapter.createElement(tagName, NS.HTML, []);\n\n this._attachElementToTree(element);\n this.openElements.push(element);\n }\n\n _insertTemplate(token) {\n const tmpl = this.treeAdapter.createElement(token.tagName, NS.HTML, token.attrs);\n const content = this.treeAdapter.createDocumentFragment();\n\n this.treeAdapter.setTemplateContent(tmpl, content);\n this._attachElementToTree(tmpl);\n this.openElements.push(tmpl);\n }\n\n _insertFakeRootElement() {\n const element = this.treeAdapter.createElement($.HTML, NS.HTML, []);\n\n this.treeAdapter.appendChild(this.openElements.current, element);\n this.openElements.push(element);\n }\n\n _appendCommentNode(token, parent) {\n const commentNode = this.treeAdapter.createCommentNode(token.data);\n\n this.treeAdapter.appendChild(parent, commentNode);\n }\n\n _insertCharacters(token) {\n if (this._shouldFosterParentOnInsertion()) {\n this._fosterParentText(token.chars);\n } else {\n const parent = this.openElements.currentTmplContent || this.openElements.current;\n\n this.treeAdapter.insertText(parent, token.chars);\n }\n }\n\n _adoptNodes(donor, recipient) {\n for (let child = this.treeAdapter.getFirstChild(donor); child; child = this.treeAdapter.getFirstChild(donor)) {\n this.treeAdapter.detachNode(child);\n this.treeAdapter.appendChild(recipient, child);\n }\n }\n\n //Token processing\n _shouldProcessTokenInForeignContent(token) {\n const current = this._getAdjustedCurrentElement();\n\n if (!current || current === this.document) {\n return false;\n }\n\n const ns = this.treeAdapter.getNamespaceURI(current);\n\n if (ns === NS.HTML) {\n return false;\n }\n\n if (\n this.treeAdapter.getTagName(current) === $.ANNOTATION_XML &&\n ns === NS.MATHML &&\n token.type === Tokenizer.START_TAG_TOKEN &&\n token.tagName === $.SVG\n ) {\n return false;\n }\n\n const isCharacterToken =\n token.type === Tokenizer.CHARACTER_TOKEN ||\n token.type === Tokenizer.NULL_CHARACTER_TOKEN ||\n token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n\n const isMathMLTextStartTag =\n token.type === Tokenizer.START_TAG_TOKEN && token.tagName !== $.MGLYPH && token.tagName !== $.MALIGNMARK;\n\n if ((isMathMLTextStartTag || isCharacterToken) && this._isIntegrationPoint(current, NS.MATHML)) {\n return false;\n }\n\n if (\n (token.type === Tokenizer.START_TAG_TOKEN || isCharacterToken) &&\n this._isIntegrationPoint(current, NS.HTML)\n ) {\n return false;\n }\n\n return token.type !== Tokenizer.EOF_TOKEN;\n }\n\n _processToken(token) {\n TOKEN_HANDLERS[this.insertionMode][token.type](this, token);\n }\n\n _processTokenInBodyMode(token) {\n TOKEN_HANDLERS[IN_BODY_MODE][token.type](this, token);\n }\n\n _processTokenInForeignContent(token) {\n if (token.type === Tokenizer.CHARACTER_TOKEN) {\n characterInForeignContent(this, token);\n } else if (token.type === Tokenizer.NULL_CHARACTER_TOKEN) {\n nullCharacterInForeignContent(this, token);\n } else if (token.type === Tokenizer.WHITESPACE_CHARACTER_TOKEN) {\n insertCharacters(this, token);\n } else if (token.type === Tokenizer.COMMENT_TOKEN) {\n appendComment(this, token);\n } else if (token.type === Tokenizer.START_TAG_TOKEN) {\n startTagInForeignContent(this, token);\n } else if (token.type === Tokenizer.END_TAG_TOKEN) {\n endTagInForeignContent(this, token);\n }\n }\n\n _processInputToken(token) {\n if (this._shouldProcessTokenInForeignContent(token)) {\n this._processTokenInForeignContent(token);\n } else {\n this._processToken(token);\n }\n\n if (token.type === Tokenizer.START_TAG_TOKEN && token.selfClosing && !token.ackSelfClosing) {\n this._err(ERR.nonVoidHtmlElementStartTagWithTrailingSolidus);\n }\n }\n\n //Integration points\n _isIntegrationPoint(element, foreignNS) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n const attrs = this.treeAdapter.getAttrList(element);\n\n return foreignContent.isIntegrationPoint(tn, ns, attrs, foreignNS);\n }\n\n //Active formatting elements reconstruction\n _reconstructActiveFormattingElements() {\n const listLength = this.activeFormattingElements.length;\n\n if (listLength) {\n let unopenIdx = listLength;\n let entry = null;\n\n do {\n unopenIdx--;\n entry = this.activeFormattingElements.entries[unopenIdx];\n\n if (entry.type === FormattingElementList.MARKER_ENTRY || this.openElements.contains(entry.element)) {\n unopenIdx++;\n break;\n }\n } while (unopenIdx > 0);\n\n for (let i = unopenIdx; i < listLength; i++) {\n entry = this.activeFormattingElements.entries[i];\n this._insertElement(entry.token, this.treeAdapter.getNamespaceURI(entry.element));\n entry.element = this.openElements.current;\n }\n }\n }\n\n //Close elements\n _closeTableCell() {\n this.openElements.generateImpliedEndTags();\n this.openElements.popUntilTableCellPopped();\n this.activeFormattingElements.clearToLastMarker();\n this.insertionMode = IN_ROW_MODE;\n }\n\n _closePElement() {\n this.openElements.generateImpliedEndTagsWithExclusion($.P);\n this.openElements.popUntilTagNamePopped($.P);\n }\n\n //Insertion modes\n _resetInsertionMode() {\n for (let i = this.openElements.stackTop, last = false; i >= 0; i--) {\n let element = this.openElements.items[i];\n\n if (i === 0) {\n last = true;\n\n if (this.fragmentContext) {\n element = this.fragmentContext;\n }\n }\n\n const tn = this.treeAdapter.getTagName(element);\n const newInsertionMode = INSERTION_MODE_RESET_MAP[tn];\n\n if (newInsertionMode) {\n this.insertionMode = newInsertionMode;\n break;\n } else if (!last && (tn === $.TD || tn === $.TH)) {\n this.insertionMode = IN_CELL_MODE;\n break;\n } else if (!last && tn === $.HEAD) {\n this.insertionMode = IN_HEAD_MODE;\n break;\n } else if (tn === $.SELECT) {\n this._resetInsertionModeForSelect(i);\n break;\n } else if (tn === $.TEMPLATE) {\n this.insertionMode = this.currentTmplInsertionMode;\n break;\n } else if (tn === $.HTML) {\n this.insertionMode = this.headElement ? AFTER_HEAD_MODE : BEFORE_HEAD_MODE;\n break;\n } else if (last) {\n this.insertionMode = IN_BODY_MODE;\n break;\n }\n }\n }\n\n _resetInsertionModeForSelect(selectIdx) {\n if (selectIdx > 0) {\n for (let i = selectIdx - 1; i > 0; i--) {\n const ancestor = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(ancestor);\n\n if (tn === $.TEMPLATE) {\n break;\n } else if (tn === $.TABLE) {\n this.insertionMode = IN_SELECT_IN_TABLE_MODE;\n return;\n }\n }\n }\n\n this.insertionMode = IN_SELECT_MODE;\n }\n\n _pushTmplInsertionMode(mode) {\n this.tmplInsertionModeStack.push(mode);\n this.tmplInsertionModeStackTop++;\n this.currentTmplInsertionMode = mode;\n }\n\n _popTmplInsertionMode() {\n this.tmplInsertionModeStack.pop();\n this.tmplInsertionModeStackTop--;\n this.currentTmplInsertionMode = this.tmplInsertionModeStack[this.tmplInsertionModeStackTop];\n }\n\n //Foster parenting\n _isElementCausesFosterParenting(element) {\n const tn = this.treeAdapter.getTagName(element);\n\n return tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR;\n }\n\n _shouldFosterParentOnInsertion() {\n return this.fosterParentingEnabled && this._isElementCausesFosterParenting(this.openElements.current);\n }\n\n _findFosterParentingLocation() {\n const location = {\n parent: null,\n beforeElement: null\n };\n\n for (let i = this.openElements.stackTop; i >= 0; i--) {\n const openElement = this.openElements.items[i];\n const tn = this.treeAdapter.getTagName(openElement);\n const ns = this.treeAdapter.getNamespaceURI(openElement);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n location.parent = this.treeAdapter.getTemplateContent(openElement);\n break;\n } else if (tn === $.TABLE) {\n location.parent = this.treeAdapter.getParentNode(openElement);\n\n if (location.parent) {\n location.beforeElement = openElement;\n } else {\n location.parent = this.openElements.items[i - 1];\n }\n\n break;\n }\n }\n\n if (!location.parent) {\n location.parent = this.openElements.items[0];\n }\n\n return location;\n }\n\n _fosterParentElement(element) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertBefore(location.parent, element, location.beforeElement);\n } else {\n this.treeAdapter.appendChild(location.parent, element);\n }\n }\n\n _fosterParentText(chars) {\n const location = this._findFosterParentingLocation();\n\n if (location.beforeElement) {\n this.treeAdapter.insertTextBefore(location.parent, chars, location.beforeElement);\n } else {\n this.treeAdapter.insertText(location.parent, chars);\n }\n }\n\n //Special elements\n _isSpecialElement(element) {\n const tn = this.treeAdapter.getTagName(element);\n const ns = this.treeAdapter.getNamespaceURI(element);\n\n return HTML.SPECIAL_ELEMENTS[ns][tn];\n }\n}\n\nmodule.exports = Parser;\n\n//Adoption agency algorithm\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#adoptionAgency)\n//------------------------------------------------------------------\n\n//Steps 5-8 of the algorithm\nfunction aaObtainFormattingElementEntry(p, token) {\n let formattingElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName(token.tagName);\n\n if (formattingElementEntry) {\n if (!p.openElements.contains(formattingElementEntry.element)) {\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n formattingElementEntry = null;\n } else if (!p.openElements.hasInScope(token.tagName)) {\n formattingElementEntry = null;\n }\n } else {\n genericEndTagInBody(p, token);\n }\n\n return formattingElementEntry;\n}\n\n//Steps 9 and 10 of the algorithm\nfunction aaObtainFurthestBlock(p, formattingElementEntry) {\n let furthestBlock = null;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n\n if (element === formattingElementEntry.element) {\n break;\n }\n\n if (p._isSpecialElement(element)) {\n furthestBlock = element;\n }\n }\n\n if (!furthestBlock) {\n p.openElements.popUntilElementPopped(formattingElementEntry.element);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n }\n\n return furthestBlock;\n}\n\n//Step 13 of the algorithm\nfunction aaInnerLoop(p, furthestBlock, formattingElement) {\n let lastElement = furthestBlock;\n let nextElement = p.openElements.getCommonAncestor(furthestBlock);\n\n for (let i = 0, element = nextElement; element !== formattingElement; i++, element = nextElement) {\n //NOTE: store next element for the next loop iteration (it may be deleted from the stack by step 9.5)\n nextElement = p.openElements.getCommonAncestor(element);\n\n const elementEntry = p.activeFormattingElements.getElementEntry(element);\n const counterOverflow = elementEntry && i >= AA_INNER_LOOP_ITER;\n const shouldRemoveFromOpenElements = !elementEntry || counterOverflow;\n\n if (shouldRemoveFromOpenElements) {\n if (counterOverflow) {\n p.activeFormattingElements.removeEntry(elementEntry);\n }\n\n p.openElements.remove(element);\n } else {\n element = aaRecreateElementFromEntry(p, elementEntry);\n\n if (lastElement === furthestBlock) {\n p.activeFormattingElements.bookmark = elementEntry;\n }\n\n p.treeAdapter.detachNode(lastElement);\n p.treeAdapter.appendChild(element, lastElement);\n lastElement = element;\n }\n }\n\n return lastElement;\n}\n\n//Step 13.7 of the algorithm\nfunction aaRecreateElementFromEntry(p, elementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(elementEntry.element);\n const newElement = p.treeAdapter.createElement(elementEntry.token.tagName, ns, elementEntry.token.attrs);\n\n p.openElements.replace(elementEntry.element, newElement);\n elementEntry.element = newElement;\n\n return newElement;\n}\n\n//Step 14 of the algorithm\nfunction aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement) {\n if (p._isElementCausesFosterParenting(commonAncestor)) {\n p._fosterParentElement(lastElement);\n } else {\n const tn = p.treeAdapter.getTagName(commonAncestor);\n const ns = p.treeAdapter.getNamespaceURI(commonAncestor);\n\n if (tn === $.TEMPLATE && ns === NS.HTML) {\n commonAncestor = p.treeAdapter.getTemplateContent(commonAncestor);\n }\n\n p.treeAdapter.appendChild(commonAncestor, lastElement);\n }\n}\n\n//Steps 15-19 of the algorithm\nfunction aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry) {\n const ns = p.treeAdapter.getNamespaceURI(formattingElementEntry.element);\n const token = formattingElementEntry.token;\n const newElement = p.treeAdapter.createElement(token.tagName, ns, token.attrs);\n\n p._adoptNodes(furthestBlock, newElement);\n p.treeAdapter.appendChild(furthestBlock, newElement);\n\n p.activeFormattingElements.insertElementAfterBookmark(newElement, formattingElementEntry.token);\n p.activeFormattingElements.removeEntry(formattingElementEntry);\n\n p.openElements.remove(formattingElementEntry.element);\n p.openElements.insertAfter(furthestBlock, newElement);\n}\n\n//Algorithm entry point\nfunction callAdoptionAgency(p, token) {\n let formattingElementEntry;\n\n for (let i = 0; i < AA_OUTER_LOOP_ITER; i++) {\n formattingElementEntry = aaObtainFormattingElementEntry(p, token, formattingElementEntry);\n\n if (!formattingElementEntry) {\n break;\n }\n\n const furthestBlock = aaObtainFurthestBlock(p, formattingElementEntry);\n\n if (!furthestBlock) {\n break;\n }\n\n p.activeFormattingElements.bookmark = formattingElementEntry;\n\n const lastElement = aaInnerLoop(p, furthestBlock, formattingElementEntry.element);\n const commonAncestor = p.openElements.getCommonAncestor(formattingElementEntry.element);\n\n p.treeAdapter.detachNode(lastElement);\n aaInsertLastNodeInCommonAncestor(p, commonAncestor, lastElement);\n aaReplaceFormattingElement(p, furthestBlock, formattingElementEntry);\n }\n}\n\n//Generic token handlers\n//------------------------------------------------------------------\nfunction ignoreToken() {\n //NOTE: do nothing =)\n}\n\nfunction misplacedDoctype(p) {\n p._err(ERR.misplacedDoctype);\n}\n\nfunction appendComment(p, token) {\n p._appendCommentNode(token, p.openElements.currentTmplContent || p.openElements.current);\n}\n\nfunction appendCommentToRootHtmlElement(p, token) {\n p._appendCommentNode(token, p.openElements.items[0]);\n}\n\nfunction appendCommentToDocument(p, token) {\n p._appendCommentNode(token, p.document);\n}\n\nfunction insertCharacters(p, token) {\n p._insertCharacters(token);\n}\n\nfunction stopParsing(p) {\n p.stopped = true;\n}\n\n// The \"initial\" insertion mode\n//------------------------------------------------------------------\nfunction doctypeInInitialMode(p, token) {\n p._setDocumentType(token);\n\n const mode = token.forceQuirks ? HTML.DOCUMENT_MODE.QUIRKS : doctype.getDocumentMode(token);\n\n if (!doctype.isConforming(token)) {\n p._err(ERR.nonConformingDoctype);\n }\n\n p.treeAdapter.setDocumentMode(p.document, mode);\n\n p.insertionMode = BEFORE_HTML_MODE;\n}\n\nfunction tokenInInitialMode(p, token) {\n p._err(ERR.missingDoctype, { beforeToken: true });\n p.treeAdapter.setDocumentMode(p.document, HTML.DOCUMENT_MODE.QUIRKS);\n p.insertionMode = BEFORE_HTML_MODE;\n p._processToken(token);\n}\n\n// The \"before html\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHtml(p, token) {\n if (token.tagName === $.HTML) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = BEFORE_HEAD_MODE;\n } else {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction endTagBeforeHtml(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML || tn === $.HEAD || tn === $.BODY || tn === $.BR) {\n tokenBeforeHtml(p, token);\n }\n}\n\nfunction tokenBeforeHtml(p, token) {\n p._insertFakeRootElement();\n p.insertionMode = BEFORE_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"before head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.HEAD) {\n p._insertElement(token, NS.HTML);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n } else {\n tokenBeforeHead(p, token);\n }\n}\n\nfunction endTagBeforeHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD || tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenBeforeHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenBeforeHead(p, token) {\n p._insertFakeElement($.HEAD);\n p.headElement = p.openElements.current;\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.BASEFONT || tn === $.BGSOUND || tn === $.LINK || tn === $.META) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TITLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RCDATA);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_HEAD_NO_SCRIPT_MODE;\n }\n } else if (tn === $.NOFRAMES || tn === $.STYLE) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n } else if (tn === $.SCRIPT) {\n p._switchToTextParsing(token, Tokenizer.MODE.SCRIPT_DATA);\n } else if (tn === $.TEMPLATE) {\n p._insertTemplate(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n p.insertionMode = IN_TEMPLATE_MODE;\n p._pushTmplInsertionMode(IN_TEMPLATE_MODE);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenInHead(p, token);\n }\n}\n\nfunction endTagInHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HEAD) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n } else if (tn === $.BODY || tn === $.BR || tn === $.HTML) {\n tokenInHead(p, token);\n } else if (tn === $.TEMPLATE) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.generateImpliedEndTagsThoroughly();\n\n if (p.openElements.currentTagName !== $.TEMPLATE) {\n p._err(ERR.closingOfElementWithOpenChildElements);\n }\n\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHead(p, token) {\n p.openElements.pop();\n p.insertionMode = AFTER_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"in head no script\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.HEAD ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.STYLE\n ) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n p._err(ERR.nestedNoscriptInHead);\n } else {\n tokenInHeadNoScript(p, token);\n }\n}\n\nfunction endTagInHeadNoScript(p, token) {\n const tn = token.tagName;\n\n if (tn === $.NOSCRIPT) {\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n } else if (tn === $.BR) {\n tokenInHeadNoScript(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenInHeadNoScript(p, token) {\n const errCode =\n token.type === Tokenizer.EOF_TOKEN ? ERR.openElementsLeftAfterEof : ERR.disallowedContentInNoscriptInHead;\n\n p._err(errCode);\n p.openElements.pop();\n p.insertionMode = IN_HEAD_MODE;\n p._processToken(token);\n}\n\n// The \"after head\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.BODY) {\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_BODY_MODE;\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n } else if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n p._err(ERR.abandonedHeadElementChild);\n p.openElements.push(p.headElement);\n startTagInHead(p, token);\n p.openElements.remove(p.headElement);\n } else if (tn === $.HEAD) {\n p._err(ERR.misplacedStartTagForHeadElement);\n } else {\n tokenAfterHead(p, token);\n }\n}\n\nfunction endTagAfterHead(p, token) {\n const tn = token.tagName;\n\n if (tn === $.BODY || tn === $.HTML || tn === $.BR) {\n tokenAfterHead(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n p._err(ERR.endTagWithoutMatchingOpenElement);\n }\n}\n\nfunction tokenAfterHead(p, token) {\n p._insertFakeElement($.BODY);\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in body\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n}\n\nfunction characterInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction htmlStartTagInBody(p, token) {\n if (p.openElements.tmplCount === 0) {\n p.treeAdapter.adoptAttributes(p.openElements.items[0], token.attrs);\n }\n}\n\nfunction bodyStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (bodyElement && p.openElements.tmplCount === 0) {\n p.framesetOk = false;\n p.treeAdapter.adoptAttributes(bodyElement, token.attrs);\n }\n}\n\nfunction framesetStartTagInBody(p, token) {\n const bodyElement = p.openElements.tryPeekProperlyNestedBodyElement();\n\n if (p.framesetOk && bodyElement) {\n p.treeAdapter.detachNode(bodyElement);\n p.openElements.popAllUpToHtmlElement();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_FRAMESET_MODE;\n }\n}\n\nfunction addressStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction numberedHeaderStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n const tn = p.openElements.currentTagName;\n\n if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction preStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of pre blocks are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.framesetOk = false;\n}\n\nfunction formStartTagInBody(p, token) {\n const inTemplate = p.openElements.tmplCount > 0;\n\n if (!p.formElement || inTemplate) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n\n if (!inTemplate) {\n p.formElement = p.openElements.current;\n }\n }\n}\n\nfunction listItemStartTagInBody(p, token) {\n p.framesetOk = false;\n\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i >= 0; i--) {\n const element = p.openElements.items[i];\n const elementTn = p.treeAdapter.getTagName(element);\n let closeTn = null;\n\n if (tn === $.LI && elementTn === $.LI) {\n closeTn = $.LI;\n } else if ((tn === $.DD || tn === $.DT) && (elementTn === $.DD || elementTn === $.DT)) {\n closeTn = elementTn;\n }\n\n if (closeTn) {\n p.openElements.generateImpliedEndTagsWithExclusion(closeTn);\n p.openElements.popUntilTagNamePopped(closeTn);\n break;\n }\n\n if (elementTn !== $.ADDRESS && elementTn !== $.DIV && elementTn !== $.P && p._isSpecialElement(element)) {\n break;\n }\n }\n\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction plaintextStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.tokenizer.state = Tokenizer.MODE.PLAINTEXT;\n}\n\nfunction buttonStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.BUTTON)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.BUTTON);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n}\n\nfunction aStartTagInBody(p, token) {\n const activeElementEntry = p.activeFormattingElements.getElementEntryInScopeWithTagName($.A);\n\n if (activeElementEntry) {\n callAdoptionAgency(p, token);\n p.openElements.remove(activeElementEntry.element);\n p.activeFormattingElements.removeEntry(activeElementEntry);\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction bStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction nobrStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n if (p.openElements.hasInScope($.NOBR)) {\n callAdoptionAgency(p, token);\n p._reconstructActiveFormattingElements();\n }\n\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.pushElement(p.openElements.current, token);\n}\n\nfunction appletStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.activeFormattingElements.insertMarker();\n p.framesetOk = false;\n}\n\nfunction tableStartTagInBody(p, token) {\n if (\n p.treeAdapter.getDocumentMode(p.document) !== HTML.DOCUMENT_MODE.QUIRKS &&\n p.openElements.hasInButtonScope($.P)\n ) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n p.insertionMode = IN_TABLE_MODE;\n}\n\nfunction areaStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction inputStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._appendElement(token, NS.HTML);\n\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (!inputType || inputType.toLowerCase() !== HIDDEN_INPUT_TYPE) {\n p.framesetOk = false;\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction paramStartTagInBody(p, token) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n}\n\nfunction hrStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._appendElement(token, NS.HTML);\n p.framesetOk = false;\n token.ackSelfClosing = true;\n}\n\nfunction imageStartTagInBody(p, token) {\n token.tagName = $.IMG;\n areaStartTagInBody(p, token);\n}\n\nfunction textareaStartTagInBody(p, token) {\n p._insertElement(token, NS.HTML);\n //NOTE: If the next token is a U+000A LINE FEED (LF) character token, then ignore that token and move\n //on to the next one. (Newlines at the start of textarea elements are ignored as an authoring convenience.)\n p.skipNextNewLine = true;\n p.tokenizer.state = Tokenizer.MODE.RCDATA;\n p.originalInsertionMode = p.insertionMode;\n p.framesetOk = false;\n p.insertionMode = TEXT_MODE;\n}\n\nfunction xmpStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._reconstructActiveFormattingElements();\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction iframeStartTagInBody(p, token) {\n p.framesetOk = false;\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\n//NOTE: here we assume that we always act as an user agent with enabled plugins, so we parse\n//<noembed> as a rawtext.\nfunction noembedStartTagInBody(p, token) {\n p._switchToTextParsing(token, Tokenizer.MODE.RAWTEXT);\n}\n\nfunction selectStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n p.framesetOk = false;\n\n if (\n p.insertionMode === IN_TABLE_MODE ||\n p.insertionMode === IN_CAPTION_MODE ||\n p.insertionMode === IN_TABLE_BODY_MODE ||\n p.insertionMode === IN_ROW_MODE ||\n p.insertionMode === IN_CELL_MODE\n ) {\n p.insertionMode = IN_SELECT_IN_TABLE_MODE;\n } else {\n p.insertionMode = IN_SELECT_MODE;\n }\n}\n\nfunction optgroupStartTagInBody(p, token) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\nfunction rbStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTags();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction rtStartTagInBody(p, token) {\n if (p.openElements.hasInScope($.RUBY)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.RTC);\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction menuStartTagInBody(p, token) {\n if (p.openElements.hasInButtonScope($.P)) {\n p._closePElement();\n }\n\n p._insertElement(token, NS.HTML);\n}\n\nfunction mathStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenMathMLAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.MATHML);\n } else {\n p._insertElement(token, NS.MATHML);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction svgStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n\n foreignContent.adjustTokenSVGAttrs(token);\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, NS.SVG);\n } else {\n p._insertElement(token, NS.SVG);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction genericStartTagInBody(p, token) {\n p._reconstructActiveFormattingElements();\n p._insertElement(token, NS.HTML);\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction startTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.I || tn === $.S || tn === $.B || tn === $.U) {\n bStartTagInBody(p, token);\n } else if (tn === $.P) {\n addressStartTagInBody(p, token);\n } else if (tn === $.A) {\n aStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.OL || tn === $.UL) {\n addressStartTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderStartTagInBody(p, token);\n } else if (tn === $.LI || tn === $.DD || tn === $.DT) {\n listItemStartTagInBody(p, token);\n } else if (tn === $.EM || tn === $.TT) {\n bStartTagInBody(p, token);\n } else if (tn === $.BR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.HR) {\n hrStartTagInBody(p, token);\n } else if (tn === $.RB) {\n rbStartTagInBody(p, token);\n } else if (tn === $.RT || tn === $.RP) {\n rtStartTagInBody(p, token);\n } else if (tn !== $.TH && tn !== $.TD && tn !== $.TR) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.DIV || tn === $.DIR || tn === $.NAV) {\n addressStartTagInBody(p, token);\n } else if (tn === $.PRE) {\n preStartTagInBody(p, token);\n } else if (tn === $.BIG) {\n bStartTagInBody(p, token);\n } else if (tn === $.IMG || tn === $.WBR) {\n areaStartTagInBody(p, token);\n } else if (tn === $.XMP) {\n xmpStartTagInBody(p, token);\n } else if (tn === $.SVG) {\n svgStartTagInBody(p, token);\n } else if (tn === $.RTC) {\n rbStartTagInBody(p, token);\n } else if (tn !== $.COL) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.HTML) {\n htmlStartTagInBody(p, token);\n } else if (tn === $.BASE || tn === $.LINK || tn === $.META) {\n startTagInHead(p, token);\n } else if (tn === $.BODY) {\n bodyStartTagInBody(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressStartTagInBody(p, token);\n } else if (tn === $.FORM) {\n formStartTagInBody(p, token);\n } else if (tn === $.CODE || tn === $.FONT) {\n bStartTagInBody(p, token);\n } else if (tn === $.NOBR) {\n nobrStartTagInBody(p, token);\n } else if (tn === $.AREA) {\n areaStartTagInBody(p, token);\n } else if (tn === $.MATH) {\n mathStartTagInBody(p, token);\n } else if (tn === $.MENU) {\n menuStartTagInBody(p, token);\n } else if (tn !== $.HEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.STYLE || tn === $.TITLE) {\n startTagInHead(p, token);\n } else if (tn === $.ASIDE) {\n addressStartTagInBody(p, token);\n } else if (tn === $.SMALL) {\n bStartTagInBody(p, token);\n } else if (tn === $.TABLE) {\n tableStartTagInBody(p, token);\n } else if (tn === $.EMBED) {\n areaStartTagInBody(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInBody(p, token);\n } else if (tn === $.PARAM || tn === $.TRACK) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IMAGE) {\n imageStartTagInBody(p, token);\n } else if (tn !== $.FRAME && tn !== $.TBODY && tn !== $.TFOOT && tn !== $.THEAD) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.BUTTON) {\n buttonStartTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n bStartTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletStartTagInBody(p, token);\n } else if (tn === $.KEYGEN) {\n areaStartTagInBody(p, token);\n } else if (tn === $.SOURCE) {\n paramStartTagInBody(p, token);\n } else if (tn === $.IFRAME) {\n iframeStartTagInBody(p, token);\n } else if (tn === $.SELECT) {\n selectStartTagInBody(p, token);\n } else if (tn === $.OPTION) {\n optgroupStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.BGSOUND) {\n startTagInHead(p, token);\n } else if (\n tn === $.DETAILS ||\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.SECTION ||\n tn === $.SUMMARY\n ) {\n addressStartTagInBody(p, token);\n } else if (tn === $.LISTING) {\n preStartTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletStartTagInBody(p, token);\n } else if (tn === $.NOEMBED) {\n noembedStartTagInBody(p, token);\n } else if (tn !== $.CAPTION) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.BASEFONT) {\n startTagInHead(p, token);\n } else if (tn === $.FRAMESET) {\n framesetStartTagInBody(p, token);\n } else if (tn === $.FIELDSET) {\n addressStartTagInBody(p, token);\n } else if (tn === $.TEXTAREA) {\n textareaStartTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else if (tn === $.NOSCRIPT) {\n if (p.options.scriptingEnabled) {\n noembedStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n } else if (tn === $.OPTGROUP) {\n optgroupStartTagInBody(p, token);\n } else if (tn !== $.COLGROUP) {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 9:\n if (tn === $.PLAINTEXT) {\n plaintextStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressStartTagInBody(p, token);\n } else {\n genericStartTagInBody(p, token);\n }\n\n break;\n\n default:\n genericStartTagInBody(p, token);\n }\n}\n\nfunction bodyEndTagInBody(p) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n }\n}\n\nfunction htmlEndTagInBody(p, token) {\n if (p.openElements.hasInScope($.BODY)) {\n p.insertionMode = AFTER_BODY_MODE;\n p._processToken(token);\n }\n}\n\nfunction addressEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction formEndTagInBody(p) {\n const inTemplate = p.openElements.tmplCount > 0;\n const formElement = p.formElement;\n\n if (!inTemplate) {\n p.formElement = null;\n }\n\n if ((formElement || inTemplate) && p.openElements.hasInScope($.FORM)) {\n p.openElements.generateImpliedEndTags();\n\n if (inTemplate) {\n p.openElements.popUntilTagNamePopped($.FORM);\n } else {\n p.openElements.remove(formElement);\n }\n }\n}\n\nfunction pEndTagInBody(p) {\n if (!p.openElements.hasInButtonScope($.P)) {\n p._insertFakeElement($.P);\n }\n\n p._closePElement();\n}\n\nfunction liEndTagInBody(p) {\n if (p.openElements.hasInListItemScope($.LI)) {\n p.openElements.generateImpliedEndTagsWithExclusion($.LI);\n p.openElements.popUntilTagNamePopped($.LI);\n }\n}\n\nfunction ddEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilTagNamePopped(tn);\n }\n}\n\nfunction numberedHeaderEndTagInBody(p) {\n if (p.openElements.hasNumberedHeaderInScope()) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilNumberedHeaderPopped();\n }\n}\n\nfunction appletEndTagInBody(p, token) {\n const tn = token.tagName;\n\n if (p.openElements.hasInScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n }\n}\n\nfunction brEndTagInBody(p) {\n p._reconstructActiveFormattingElements();\n p._insertFakeElement($.BR);\n p.openElements.pop();\n p.framesetOk = false;\n}\n\nfunction genericEndTagInBody(p, token) {\n const tn = token.tagName;\n\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getTagName(element) === tn) {\n p.openElements.generateImpliedEndTagsWithExclusion(tn);\n p.openElements.popUntilElementPopped(element);\n break;\n }\n\n if (p._isSpecialElement(element)) {\n break;\n }\n }\n}\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction endTagInBody(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 1:\n if (tn === $.A || tn === $.B || tn === $.I || tn === $.S || tn === $.U) {\n callAdoptionAgency(p, token);\n } else if (tn === $.P) {\n pEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 2:\n if (tn === $.DL || tn === $.UL || tn === $.OL) {\n addressEndTagInBody(p, token);\n } else if (tn === $.LI) {\n liEndTagInBody(p, token);\n } else if (tn === $.DD || tn === $.DT) {\n ddEndTagInBody(p, token);\n } else if (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) {\n numberedHeaderEndTagInBody(p, token);\n } else if (tn === $.BR) {\n brEndTagInBody(p, token);\n } else if (tn === $.EM || tn === $.TT) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.BIG) {\n callAdoptionAgency(p, token);\n } else if (tn === $.DIR || tn === $.DIV || tn === $.NAV || tn === $.PRE) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.BODY) {\n bodyEndTagInBody(p, token);\n } else if (tn === $.HTML) {\n htmlEndTagInBody(p, token);\n } else if (tn === $.FORM) {\n formEndTagInBody(p, token);\n } else if (tn === $.CODE || tn === $.FONT || tn === $.NOBR) {\n callAdoptionAgency(p, token);\n } else if (tn === $.MAIN || tn === $.MENU) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.ASIDE) {\n addressEndTagInBody(p, token);\n } else if (tn === $.SMALL) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 6:\n if (\n tn === $.CENTER ||\n tn === $.FIGURE ||\n tn === $.FOOTER ||\n tn === $.HEADER ||\n tn === $.HGROUP ||\n tn === $.DIALOG\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.APPLET || tn === $.OBJECT) {\n appletEndTagInBody(p, token);\n } else if (tn === $.STRIKE || tn === $.STRONG) {\n callAdoptionAgency(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 7:\n if (\n tn === $.ADDRESS ||\n tn === $.ARTICLE ||\n tn === $.DETAILS ||\n tn === $.SECTION ||\n tn === $.SUMMARY ||\n tn === $.LISTING\n ) {\n addressEndTagInBody(p, token);\n } else if (tn === $.MARQUEE) {\n appletEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.FIELDSET) {\n addressEndTagInBody(p, token);\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n case 10:\n if (tn === $.BLOCKQUOTE || tn === $.FIGCAPTION) {\n addressEndTagInBody(p, token);\n } else {\n genericEndTagInBody(p, token);\n }\n\n break;\n\n default:\n genericEndTagInBody(p, token);\n }\n}\n\nfunction eofInBody(p, token) {\n if (p.tmplInsertionModeStackTop > -1) {\n eofInTemplate(p, token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"text\" insertion mode\n//------------------------------------------------------------------\nfunction endTagInText(p, token) {\n if (token.tagName === $.SCRIPT) {\n p.pendingScript = p.openElements.current;\n }\n\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n}\n\nfunction eofInText(p, token) {\n p._err(ERR.eofInElementThatCanContainOnlyText);\n p.openElements.pop();\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in table\" insertion mode\n//------------------------------------------------------------------\nfunction characterInTable(p, token) {\n const curTn = p.openElements.currentTagName;\n\n if (curTn === $.TABLE || curTn === $.TBODY || curTn === $.TFOOT || curTn === $.THEAD || curTn === $.TR) {\n p.pendingCharacterTokens = [];\n p.hasNonWhitespacePendingCharacterToken = false;\n p.originalInsertionMode = p.insertionMode;\n p.insertionMode = IN_TABLE_TEXT_MODE;\n p._processToken(token);\n } else {\n tokenInTable(p, token);\n }\n}\n\nfunction captionStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p.activeFormattingElements.insertMarker();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CAPTION_MODE;\n}\n\nfunction colgroupStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n}\n\nfunction colStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.COLGROUP);\n p.insertionMode = IN_COLUMN_GROUP_MODE;\n p._processToken(token);\n}\n\nfunction tbodyStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_TABLE_BODY_MODE;\n}\n\nfunction tdStartTagInTable(p, token) {\n p.openElements.clearBackToTableContext();\n p._insertFakeElement($.TBODY);\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n}\n\nfunction tableStartTagInTable(p, token) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n p._processToken(token);\n }\n}\n\nfunction inputStartTagInTable(p, token) {\n const inputType = Tokenizer.getTokenAttr(token, ATTRS.TYPE);\n\n if (inputType && inputType.toLowerCase() === HIDDEN_INPUT_TYPE) {\n p._appendElement(token, NS.HTML);\n } else {\n tokenInTable(p, token);\n }\n\n token.ackSelfClosing = true;\n}\n\nfunction formStartTagInTable(p, token) {\n if (!p.formElement && p.openElements.tmplCount === 0) {\n p._insertElement(token, NS.HTML);\n p.formElement = p.openElements.current;\n p.openElements.pop();\n }\n}\n\nfunction startTagInTable(p, token) {\n const tn = token.tagName;\n\n switch (tn.length) {\n case 2:\n if (tn === $.TD || tn === $.TH || tn === $.TR) {\n tdStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 3:\n if (tn === $.COL) {\n colStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 4:\n if (tn === $.FORM) {\n formStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 5:\n if (tn === $.TABLE) {\n tableStartTagInTable(p, token);\n } else if (tn === $.STYLE) {\n startTagInHead(p, token);\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n tbodyStartTagInTable(p, token);\n } else if (tn === $.INPUT) {\n inputStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 6:\n if (tn === $.SCRIPT) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 7:\n if (tn === $.CAPTION) {\n captionStartTagInTable(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n case 8:\n if (tn === $.COLGROUP) {\n colgroupStartTagInTable(p, token);\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInTable(p, token);\n }\n\n break;\n\n default:\n tokenInTable(p, token);\n }\n}\n\nfunction endTagInTable(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TABLE)) {\n p.openElements.popUntilTagNamePopped($.TABLE);\n p._resetInsertionMode();\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (\n tn !== $.BODY &&\n tn !== $.CAPTION &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n tokenInTable(p, token);\n }\n}\n\nfunction tokenInTable(p, token) {\n const savedFosterParentingState = p.fosterParentingEnabled;\n\n p.fosterParentingEnabled = true;\n p._processTokenInBodyMode(token);\n p.fosterParentingEnabled = savedFosterParentingState;\n}\n\n// The \"in table text\" insertion mode\n//------------------------------------------------------------------\nfunction whitespaceCharacterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n}\n\nfunction characterInTableText(p, token) {\n p.pendingCharacterTokens.push(token);\n p.hasNonWhitespacePendingCharacterToken = true;\n}\n\nfunction tokenInTableText(p, token) {\n let i = 0;\n\n if (p.hasNonWhitespacePendingCharacterToken) {\n for (; i < p.pendingCharacterTokens.length; i++) {\n tokenInTable(p, p.pendingCharacterTokens[i]);\n }\n } else {\n for (; i < p.pendingCharacterTokens.length; i++) {\n p._insertCharacters(p.pendingCharacterTokens[i]);\n }\n }\n\n p.insertionMode = p.originalInsertionMode;\n p._processToken(token);\n}\n\n// The \"in caption\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCaption(p, token) {\n const tn = token.tagName;\n\n if (tn === $.CAPTION || tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.CAPTION)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped($.CAPTION);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_TABLE_MODE;\n\n if (tn === $.TABLE) {\n p._processToken(token);\n }\n }\n } else if (\n tn !== $.BODY &&\n tn !== $.COL &&\n tn !== $.COLGROUP &&\n tn !== $.HTML &&\n tn !== $.TBODY &&\n tn !== $.TD &&\n tn !== $.TFOOT &&\n tn !== $.TH &&\n tn !== $.THEAD &&\n tn !== $.TR\n ) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in column group\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.COL) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.TEMPLATE) {\n startTagInHead(p, token);\n } else {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction endTagInColumnGroup(p, token) {\n const tn = token.tagName;\n\n if (tn === $.COLGROUP) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n } else if (tn !== $.COL) {\n tokenInColumnGroup(p, token);\n }\n}\n\nfunction tokenInColumnGroup(p, token) {\n if (p.openElements.currentTagName === $.COLGROUP) {\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n}\n\n// The \"in table body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n p.openElements.clearBackToTableBodyContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_ROW_MODE;\n } else if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableBodyContext();\n p._insertFakeElement($.TR);\n p.insertionMode = IN_ROW_MODE;\n p._processToken(token);\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD\n ) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInTableBody(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasTableBodyContextInTableScope()) {\n p.openElements.clearBackToTableBodyContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH && tn !== $.TR)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in row\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TH || tn === $.TD) {\n p.openElements.clearBackToTableRowContext();\n p._insertElement(token, NS.HTML);\n p.insertionMode = IN_CELL_MODE;\n p.activeFormattingElements.insertMarker();\n } else if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else {\n startTagInTable(p, token);\n }\n}\n\nfunction endTagInRow(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TR) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n }\n } else if (tn === $.TABLE) {\n if (p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD) {\n if (p.openElements.hasInTableScope(tn) || p.openElements.hasInTableScope($.TR)) {\n p.openElements.clearBackToTableRowContext();\n p.openElements.pop();\n p.insertionMode = IN_TABLE_BODY_MODE;\n p._processToken(token);\n }\n } else if (\n (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP) ||\n (tn !== $.HTML && tn !== $.TD && tn !== $.TH)\n ) {\n endTagInTable(p, token);\n }\n}\n\n// The \"in cell\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInCell(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.COL ||\n tn === $.COLGROUP ||\n tn === $.TBODY ||\n tn === $.TD ||\n tn === $.TFOOT ||\n tn === $.TH ||\n tn === $.THEAD ||\n tn === $.TR\n ) {\n if (p.openElements.hasInTableScope($.TD) || p.openElements.hasInTableScope($.TH)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else {\n startTagInBody(p, token);\n }\n}\n\nfunction endTagInCell(p, token) {\n const tn = token.tagName;\n\n if (tn === $.TD || tn === $.TH) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.generateImpliedEndTags();\n p.openElements.popUntilTagNamePopped(tn);\n p.activeFormattingElements.clearToLastMarker();\n p.insertionMode = IN_ROW_MODE;\n }\n } else if (tn === $.TABLE || tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD || tn === $.TR) {\n if (p.openElements.hasInTableScope(tn)) {\n p._closeTableCell();\n p._processToken(token);\n }\n } else if (tn !== $.BODY && tn !== $.CAPTION && tn !== $.COL && tn !== $.COLGROUP && tn !== $.HTML) {\n endTagInBody(p, token);\n }\n}\n\n// The \"in select\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.OPTGROUP) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n p._insertElement(token, NS.HTML);\n } else if (tn === $.INPUT || tn === $.KEYGEN || tn === $.TEXTAREA || tn === $.SELECT) {\n if (p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n\n if (tn !== $.SELECT) {\n p._processToken(token);\n }\n }\n } else if (tn === $.SCRIPT || tn === $.TEMPLATE) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInSelect(p, token) {\n const tn = token.tagName;\n\n if (tn === $.OPTGROUP) {\n const prevOpenElement = p.openElements.items[p.openElements.stackTop - 1];\n const prevOpenElementTn = prevOpenElement && p.treeAdapter.getTagName(prevOpenElement);\n\n if (p.openElements.currentTagName === $.OPTION && prevOpenElementTn === $.OPTGROUP) {\n p.openElements.pop();\n }\n\n if (p.openElements.currentTagName === $.OPTGROUP) {\n p.openElements.pop();\n }\n } else if (tn === $.OPTION) {\n if (p.openElements.currentTagName === $.OPTION) {\n p.openElements.pop();\n }\n } else if (tn === $.SELECT && p.openElements.hasInSelectScope($.SELECT)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n } else if (tn === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\n//12.2.5.4.17 The \"in select in table\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n startTagInSelect(p, token);\n }\n}\n\nfunction endTagInSelectInTable(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.CAPTION ||\n tn === $.TABLE ||\n tn === $.TBODY ||\n tn === $.TFOOT ||\n tn === $.THEAD ||\n tn === $.TR ||\n tn === $.TD ||\n tn === $.TH\n ) {\n if (p.openElements.hasInTableScope(tn)) {\n p.openElements.popUntilTagNamePopped($.SELECT);\n p._resetInsertionMode();\n p._processToken(token);\n }\n } else {\n endTagInSelect(p, token);\n }\n}\n\n// The \"in template\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInTemplate(p, token) {\n const tn = token.tagName;\n\n if (\n tn === $.BASE ||\n tn === $.BASEFONT ||\n tn === $.BGSOUND ||\n tn === $.LINK ||\n tn === $.META ||\n tn === $.NOFRAMES ||\n tn === $.SCRIPT ||\n tn === $.STYLE ||\n tn === $.TEMPLATE ||\n tn === $.TITLE\n ) {\n startTagInHead(p, token);\n } else {\n const newInsertionMode = TEMPLATE_INSERTION_MODE_SWITCH_MAP[tn] || IN_BODY_MODE;\n\n p._popTmplInsertionMode();\n p._pushTmplInsertionMode(newInsertionMode);\n p.insertionMode = newInsertionMode;\n p._processToken(token);\n }\n}\n\nfunction endTagInTemplate(p, token) {\n if (token.tagName === $.TEMPLATE) {\n endTagInHead(p, token);\n }\n}\n\nfunction eofInTemplate(p, token) {\n if (p.openElements.tmplCount > 0) {\n p.openElements.popUntilTagNamePopped($.TEMPLATE);\n p.activeFormattingElements.clearToLastMarker();\n p._popTmplInsertionMode();\n p._resetInsertionMode();\n p._processToken(token);\n } else {\n p.stopped = true;\n }\n}\n\n// The \"after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction endTagAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n if (!p.fragmentContext) {\n p.insertionMode = AFTER_AFTER_BODY_MODE;\n }\n } else {\n tokenAfterBody(p, token);\n }\n}\n\nfunction tokenAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"in frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagInFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.FRAMESET) {\n p._insertElement(token, NS.HTML);\n } else if (tn === $.FRAME) {\n p._appendElement(token, NS.HTML);\n token.ackSelfClosing = true;\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagInFrameset(p, token) {\n if (token.tagName === $.FRAMESET && !p.openElements.isRootHtmlElementCurrent()) {\n p.openElements.pop();\n\n if (!p.fragmentContext && p.openElements.currentTagName !== $.FRAMESET) {\n p.insertionMode = AFTER_FRAMESET_MODE;\n }\n }\n}\n\n// The \"after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\nfunction endTagAfterFrameset(p, token) {\n if (token.tagName === $.HTML) {\n p.insertionMode = AFTER_AFTER_FRAMESET_MODE;\n }\n}\n\n// The \"after after body\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterBody(p, token) {\n if (token.tagName === $.HTML) {\n startTagInBody(p, token);\n } else {\n tokenAfterAfterBody(p, token);\n }\n}\n\nfunction tokenAfterAfterBody(p, token) {\n p.insertionMode = IN_BODY_MODE;\n p._processToken(token);\n}\n\n// The \"after after frameset\" insertion mode\n//------------------------------------------------------------------\nfunction startTagAfterAfterFrameset(p, token) {\n const tn = token.tagName;\n\n if (tn === $.HTML) {\n startTagInBody(p, token);\n } else if (tn === $.NOFRAMES) {\n startTagInHead(p, token);\n }\n}\n\n// The rules for parsing tokens in foreign content\n//------------------------------------------------------------------\nfunction nullCharacterInForeignContent(p, token) {\n token.chars = unicode.REPLACEMENT_CHARACTER;\n p._insertCharacters(token);\n}\n\nfunction characterInForeignContent(p, token) {\n p._insertCharacters(token);\n p.framesetOk = false;\n}\n\nfunction startTagInForeignContent(p, token) {\n if (foreignContent.causesExit(token) && !p.fragmentContext) {\n while (\n p.treeAdapter.getNamespaceURI(p.openElements.current) !== NS.HTML &&\n !p._isIntegrationPoint(p.openElements.current)\n ) {\n p.openElements.pop();\n }\n\n p._processToken(token);\n } else {\n const current = p._getAdjustedCurrentElement();\n const currentNs = p.treeAdapter.getNamespaceURI(current);\n\n if (currentNs === NS.MATHML) {\n foreignContent.adjustTokenMathMLAttrs(token);\n } else if (currentNs === NS.SVG) {\n foreignContent.adjustTokenSVGTagName(token);\n foreignContent.adjustTokenSVGAttrs(token);\n }\n\n foreignContent.adjustTokenXMLAttrs(token);\n\n if (token.selfClosing) {\n p._appendElement(token, currentNs);\n } else {\n p._insertElement(token, currentNs);\n }\n\n token.ackSelfClosing = true;\n }\n}\n\nfunction endTagInForeignContent(p, token) {\n for (let i = p.openElements.stackTop; i > 0; i--) {\n const element = p.openElements.items[i];\n\n if (p.treeAdapter.getNamespaceURI(element) === NS.HTML) {\n p._processToken(token);\n break;\n }\n\n if (p.treeAdapter.getTagName(element).toLowerCase() === token.tagName) {\n p.openElements.popUntilElementPopped(element);\n break;\n }\n }\n}\n","'use strict';\n\nconst HTML = require('../common/html');\n\n//Aliases\nconst $ = HTML.TAG_NAMES;\nconst NS = HTML.NAMESPACES;\n\n//Element utils\n\n//OPTIMIZATION: Integer comparisons are low-cost, so we can use very fast tag name length filters here.\n//It's faster than using dictionary.\nfunction isImpliedEndTagRequired(tn) {\n switch (tn.length) {\n case 1:\n return tn === $.P;\n\n case 2:\n return tn === $.RB || tn === $.RP || tn === $.RT || tn === $.DD || tn === $.DT || tn === $.LI;\n\n case 3:\n return tn === $.RTC;\n\n case 6:\n return tn === $.OPTION;\n\n case 8:\n return tn === $.OPTGROUP;\n }\n\n return false;\n}\n\nfunction isImpliedEndTagRequiredThoroughly(tn) {\n switch (tn.length) {\n case 1:\n return tn === $.P;\n\n case 2:\n return (\n tn === $.RB ||\n tn === $.RP ||\n tn === $.RT ||\n tn === $.DD ||\n tn === $.DT ||\n tn === $.LI ||\n tn === $.TD ||\n tn === $.TH ||\n tn === $.TR\n );\n\n case 3:\n return tn === $.RTC;\n\n case 5:\n return tn === $.TBODY || tn === $.TFOOT || tn === $.THEAD;\n\n case 6:\n return tn === $.OPTION;\n\n case 7:\n return tn === $.CAPTION;\n\n case 8:\n return tn === $.OPTGROUP || tn === $.COLGROUP;\n }\n\n return false;\n}\n\nfunction isScopingElement(tn, ns) {\n switch (tn.length) {\n case 2:\n if (tn === $.TD || tn === $.TH) {\n return ns === NS.HTML;\n } else if (tn === $.MI || tn === $.MO || tn === $.MN || tn === $.MS) {\n return ns === NS.MATHML;\n }\n\n break;\n\n case 4:\n if (tn === $.HTML) {\n return ns === NS.HTML;\n } else if (tn === $.DESC) {\n return ns === NS.SVG;\n }\n\n break;\n\n case 5:\n if (tn === $.TABLE) {\n return ns === NS.HTML;\n } else if (tn === $.MTEXT) {\n return ns === NS.MATHML;\n } else if (tn === $.TITLE) {\n return ns === NS.SVG;\n }\n\n break;\n\n case 6:\n return (tn === $.APPLET || tn === $.OBJECT) && ns === NS.HTML;\n\n case 7:\n return (tn === $.CAPTION || tn === $.MARQUEE) && ns === NS.HTML;\n\n case 8:\n return tn === $.TEMPLATE && ns === NS.HTML;\n\n case 13:\n return tn === $.FOREIGN_OBJECT && ns === NS.SVG;\n\n case 14:\n return tn === $.ANNOTATION_XML && ns === NS.MATHML;\n }\n\n return false;\n}\n\n//Stack of open elements\nclass OpenElementStack {\n constructor(document, treeAdapter) {\n this.stackTop = -1;\n this.items = [];\n this.current = document;\n this.currentTagName = null;\n this.currentTmplContent = null;\n this.tmplCount = 0;\n this.treeAdapter = treeAdapter;\n }\n\n //Index of element\n _indexOf(element) {\n let idx = -1;\n\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n idx = i;\n break;\n }\n }\n return idx;\n }\n\n //Update current element\n _isInTemplate() {\n return this.currentTagName === $.TEMPLATE && this.treeAdapter.getNamespaceURI(this.current) === NS.HTML;\n }\n\n _updateCurrentElement() {\n this.current = this.items[this.stackTop];\n this.currentTagName = this.current && this.treeAdapter.getTagName(this.current);\n\n this.currentTmplContent = this._isInTemplate() ? this.treeAdapter.getTemplateContent(this.current) : null;\n }\n\n //Mutations\n push(element) {\n this.items[++this.stackTop] = element;\n this._updateCurrentElement();\n\n if (this._isInTemplate()) {\n this.tmplCount++;\n }\n }\n\n pop() {\n this.stackTop--;\n\n if (this.tmplCount > 0 && this._isInTemplate()) {\n this.tmplCount--;\n }\n\n this._updateCurrentElement();\n }\n\n replace(oldElement, newElement) {\n const idx = this._indexOf(oldElement);\n\n this.items[idx] = newElement;\n\n if (idx === this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n insertAfter(referenceElement, newElement) {\n const insertionIdx = this._indexOf(referenceElement) + 1;\n\n this.items.splice(insertionIdx, 0, newElement);\n\n if (insertionIdx === ++this.stackTop) {\n this._updateCurrentElement();\n }\n }\n\n popUntilTagNamePopped(tagName) {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === tagName && ns === NS.HTML) {\n break;\n }\n }\n }\n\n popUntilElementPopped(element) {\n while (this.stackTop > -1) {\n const poppedElement = this.current;\n\n this.pop();\n\n if (poppedElement === element) {\n break;\n }\n }\n }\n\n popUntilNumberedHeaderPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (\n tn === $.H1 ||\n tn === $.H2 ||\n tn === $.H3 ||\n tn === $.H4 ||\n tn === $.H5 ||\n (tn === $.H6 && ns === NS.HTML)\n ) {\n break;\n }\n }\n }\n\n popUntilTableCellPopped() {\n while (this.stackTop > -1) {\n const tn = this.currentTagName;\n const ns = this.treeAdapter.getNamespaceURI(this.current);\n\n this.pop();\n\n if (tn === $.TD || (tn === $.TH && ns === NS.HTML)) {\n break;\n }\n }\n }\n\n popAllUpToHtmlElement() {\n //NOTE: here we assume that root <html> element is always first in the open element stack, so\n //we perform this fast stack clean up.\n this.stackTop = 0;\n this._updateCurrentElement();\n }\n\n clearBackToTableContext() {\n while (\n (this.currentTagName !== $.TABLE && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableBodyContext() {\n while (\n (this.currentTagName !== $.TBODY &&\n this.currentTagName !== $.TFOOT &&\n this.currentTagName !== $.THEAD &&\n this.currentTagName !== $.TEMPLATE &&\n this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n clearBackToTableRowContext() {\n while (\n (this.currentTagName !== $.TR && this.currentTagName !== $.TEMPLATE && this.currentTagName !== $.HTML) ||\n this.treeAdapter.getNamespaceURI(this.current) !== NS.HTML\n ) {\n this.pop();\n }\n }\n\n remove(element) {\n for (let i = this.stackTop; i >= 0; i--) {\n if (this.items[i] === element) {\n this.items.splice(i, 1);\n this.stackTop--;\n this._updateCurrentElement();\n break;\n }\n }\n }\n\n //Search\n tryPeekProperlyNestedBodyElement() {\n //Properly nested <body> element (should be second element in stack).\n const element = this.items[1];\n\n return element && this.treeAdapter.getTagName(element) === $.BODY ? element : null;\n }\n\n contains(element) {\n return this._indexOf(element) > -1;\n }\n\n getCommonAncestor(element) {\n let elementIdx = this._indexOf(element);\n\n return --elementIdx >= 0 ? this.items[elementIdx] : null;\n }\n\n isRootHtmlElementCurrent() {\n return this.stackTop === 0 && this.currentTagName === $.HTML;\n }\n\n //Element in scope\n hasInScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasNumberedHeaderInScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (\n (tn === $.H1 || tn === $.H2 || tn === $.H3 || tn === $.H4 || tn === $.H5 || tn === $.H6) &&\n ns === NS.HTML\n ) {\n return true;\n }\n\n if (isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInListItemScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if (((tn === $.UL || tn === $.OL) && ns === NS.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInButtonScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (tn === tagName && ns === NS.HTML) {\n return true;\n }\n\n if ((tn === $.BUTTON && ns === NS.HTML) || isScopingElement(tn, ns)) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInTableScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn === $.TABLE || tn === $.TEMPLATE || tn === $.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasTableBodyContextInTableScope() {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === $.TBODY || tn === $.THEAD || tn === $.TFOOT) {\n return true;\n }\n\n if (tn === $.TABLE || tn === $.HTML) {\n return false;\n }\n }\n\n return true;\n }\n\n hasInSelectScope(tagName) {\n for (let i = this.stackTop; i >= 0; i--) {\n const tn = this.treeAdapter.getTagName(this.items[i]);\n const ns = this.treeAdapter.getNamespaceURI(this.items[i]);\n\n if (ns !== NS.HTML) {\n continue;\n }\n\n if (tn === tagName) {\n return true;\n }\n\n if (tn !== $.OPTION && tn !== $.OPTGROUP) {\n return false;\n }\n }\n\n return true;\n }\n\n //Implied end tags\n generateImpliedEndTags() {\n while (isImpliedEndTagRequired(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsThoroughly() {\n while (isImpliedEndTagRequiredThoroughly(this.currentTagName)) {\n this.pop();\n }\n }\n\n generateImpliedEndTagsWithExclusion(exclusionTagName) {\n while (isImpliedEndTagRequired(this.currentTagName) && this.currentTagName !== exclusionTagName) {\n this.pop();\n }\n }\n}\n\nmodule.exports = OpenElementStack;\n","'use strict';\n\nconst Preprocessor = require('./preprocessor');\nconst unicode = require('../common/unicode');\nconst neTree = require('./named-entity-data');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\nconst $$ = unicode.CODE_POINT_SEQUENCES;\n\n//C1 Unicode control character reference replacements\nconst C1_CONTROLS_REFERENCE_REPLACEMENTS = {\n 0x80: 0x20ac,\n 0x82: 0x201a,\n 0x83: 0x0192,\n 0x84: 0x201e,\n 0x85: 0x2026,\n 0x86: 0x2020,\n 0x87: 0x2021,\n 0x88: 0x02c6,\n 0x89: 0x2030,\n 0x8a: 0x0160,\n 0x8b: 0x2039,\n 0x8c: 0x0152,\n 0x8e: 0x017d,\n 0x91: 0x2018,\n 0x92: 0x2019,\n 0x93: 0x201c,\n 0x94: 0x201d,\n 0x95: 0x2022,\n 0x96: 0x2013,\n 0x97: 0x2014,\n 0x98: 0x02dc,\n 0x99: 0x2122,\n 0x9a: 0x0161,\n 0x9b: 0x203a,\n 0x9c: 0x0153,\n 0x9e: 0x017e,\n 0x9f: 0x0178\n};\n\n// Named entity tree flags\nconst HAS_DATA_FLAG = 1 << 0;\nconst DATA_DUPLET_FLAG = 1 << 1;\nconst HAS_BRANCHES_FLAG = 1 << 2;\nconst MAX_BRANCH_MARKER_VALUE = HAS_DATA_FLAG | DATA_DUPLET_FLAG | HAS_BRANCHES_FLAG;\n\n//States\nconst DATA_STATE = 'DATA_STATE';\nconst RCDATA_STATE = 'RCDATA_STATE';\nconst RAWTEXT_STATE = 'RAWTEXT_STATE';\nconst SCRIPT_DATA_STATE = 'SCRIPT_DATA_STATE';\nconst PLAINTEXT_STATE = 'PLAINTEXT_STATE';\nconst TAG_OPEN_STATE = 'TAG_OPEN_STATE';\nconst END_TAG_OPEN_STATE = 'END_TAG_OPEN_STATE';\nconst TAG_NAME_STATE = 'TAG_NAME_STATE';\nconst RCDATA_LESS_THAN_SIGN_STATE = 'RCDATA_LESS_THAN_SIGN_STATE';\nconst RCDATA_END_TAG_OPEN_STATE = 'RCDATA_END_TAG_OPEN_STATE';\nconst RCDATA_END_TAG_NAME_STATE = 'RCDATA_END_TAG_NAME_STATE';\nconst RAWTEXT_LESS_THAN_SIGN_STATE = 'RAWTEXT_LESS_THAN_SIGN_STATE';\nconst RAWTEXT_END_TAG_OPEN_STATE = 'RAWTEXT_END_TAG_OPEN_STATE';\nconst RAWTEXT_END_TAG_NAME_STATE = 'RAWTEXT_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_END_TAG_OPEN_STATE = 'SCRIPT_DATA_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_END_TAG_NAME_STATE = 'SCRIPT_DATA_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_ESCAPE_START_STATE = 'SCRIPT_DATA_ESCAPE_START_STATE';\nconst SCRIPT_DATA_ESCAPE_START_DASH_STATE = 'SCRIPT_DATA_ESCAPE_START_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_STATE = 'SCRIPT_DATA_ESCAPED_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE';\nconst SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE = 'SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE';\nconst SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE = 'SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE';\nconst BEFORE_ATTRIBUTE_NAME_STATE = 'BEFORE_ATTRIBUTE_NAME_STATE';\nconst ATTRIBUTE_NAME_STATE = 'ATTRIBUTE_NAME_STATE';\nconst AFTER_ATTRIBUTE_NAME_STATE = 'AFTER_ATTRIBUTE_NAME_STATE';\nconst BEFORE_ATTRIBUTE_VALUE_STATE = 'BEFORE_ATTRIBUTE_VALUE_STATE';\nconst ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE = 'ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE';\nconst ATTRIBUTE_VALUE_UNQUOTED_STATE = 'ATTRIBUTE_VALUE_UNQUOTED_STATE';\nconst AFTER_ATTRIBUTE_VALUE_QUOTED_STATE = 'AFTER_ATTRIBUTE_VALUE_QUOTED_STATE';\nconst SELF_CLOSING_START_TAG_STATE = 'SELF_CLOSING_START_TAG_STATE';\nconst BOGUS_COMMENT_STATE = 'BOGUS_COMMENT_STATE';\nconst MARKUP_DECLARATION_OPEN_STATE = 'MARKUP_DECLARATION_OPEN_STATE';\nconst COMMENT_START_STATE = 'COMMENT_START_STATE';\nconst COMMENT_START_DASH_STATE = 'COMMENT_START_DASH_STATE';\nconst COMMENT_STATE = 'COMMENT_STATE';\nconst COMMENT_LESS_THAN_SIGN_STATE = 'COMMENT_LESS_THAN_SIGN_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE';\nconst COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE = 'COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE';\nconst COMMENT_END_DASH_STATE = 'COMMENT_END_DASH_STATE';\nconst COMMENT_END_STATE = 'COMMENT_END_STATE';\nconst COMMENT_END_BANG_STATE = 'COMMENT_END_BANG_STATE';\nconst DOCTYPE_STATE = 'DOCTYPE_STATE';\nconst BEFORE_DOCTYPE_NAME_STATE = 'BEFORE_DOCTYPE_NAME_STATE';\nconst DOCTYPE_NAME_STATE = 'DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_NAME_STATE = 'AFTER_DOCTYPE_NAME_STATE';\nconst AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE = 'AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE = 'AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE';\nconst BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE = 'BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE';\nconst AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE = 'AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE';\nconst BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE';\nconst DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE = 'DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE';\nconst AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE = 'AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE';\nconst BOGUS_DOCTYPE_STATE = 'BOGUS_DOCTYPE_STATE';\nconst CDATA_SECTION_STATE = 'CDATA_SECTION_STATE';\nconst CDATA_SECTION_BRACKET_STATE = 'CDATA_SECTION_BRACKET_STATE';\nconst CDATA_SECTION_END_STATE = 'CDATA_SECTION_END_STATE';\nconst CHARACTER_REFERENCE_STATE = 'CHARACTER_REFERENCE_STATE';\nconst NAMED_CHARACTER_REFERENCE_STATE = 'NAMED_CHARACTER_REFERENCE_STATE';\nconst AMBIGUOUS_AMPERSAND_STATE = 'AMBIGUOS_AMPERSAND_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_STATE = 'NUMERIC_CHARACTER_REFERENCE_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_START_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_START_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_START_STATE = 'DECIMAL_CHARACTER_REFERENCE_START_STATE';\nconst HEXADEMICAL_CHARACTER_REFERENCE_STATE = 'HEXADEMICAL_CHARACTER_REFERENCE_STATE';\nconst DECIMAL_CHARACTER_REFERENCE_STATE = 'DECIMAL_CHARACTER_REFERENCE_STATE';\nconst NUMERIC_CHARACTER_REFERENCE_END_STATE = 'NUMERIC_CHARACTER_REFERENCE_END_STATE';\n\n//Utils\n\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isWhitespace(cp) {\n return cp === $.SPACE || cp === $.LINE_FEED || cp === $.TABULATION || cp === $.FORM_FEED;\n}\n\nfunction isAsciiDigit(cp) {\n return cp >= $.DIGIT_0 && cp <= $.DIGIT_9;\n}\n\nfunction isAsciiUpper(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_Z;\n}\n\nfunction isAsciiLower(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_Z;\n}\n\nfunction isAsciiLetter(cp) {\n return isAsciiLower(cp) || isAsciiUpper(cp);\n}\n\nfunction isAsciiAlphaNumeric(cp) {\n return isAsciiLetter(cp) || isAsciiDigit(cp);\n}\n\nfunction isAsciiUpperHexDigit(cp) {\n return cp >= $.LATIN_CAPITAL_A && cp <= $.LATIN_CAPITAL_F;\n}\n\nfunction isAsciiLowerHexDigit(cp) {\n return cp >= $.LATIN_SMALL_A && cp <= $.LATIN_SMALL_F;\n}\n\nfunction isAsciiHexDigit(cp) {\n return isAsciiDigit(cp) || isAsciiUpperHexDigit(cp) || isAsciiLowerHexDigit(cp);\n}\n\nfunction toAsciiLowerCodePoint(cp) {\n return cp + 0x0020;\n}\n\n//NOTE: String.fromCharCode() function can handle only characters from BMP subset.\n//So, we need to workaround this manually.\n//(see: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/fromCharCode#Getting_it_to_work_with_higher_values)\nfunction toChar(cp) {\n if (cp <= 0xffff) {\n return String.fromCharCode(cp);\n }\n\n cp -= 0x10000;\n return String.fromCharCode(((cp >>> 10) & 0x3ff) | 0xd800) + String.fromCharCode(0xdc00 | (cp & 0x3ff));\n}\n\nfunction toAsciiLowerChar(cp) {\n return String.fromCharCode(toAsciiLowerCodePoint(cp));\n}\n\nfunction findNamedEntityTreeBranch(nodeIx, cp) {\n const branchCount = neTree[++nodeIx];\n let lo = ++nodeIx;\n let hi = lo + branchCount - 1;\n\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midCp = neTree[mid];\n\n if (midCp < cp) {\n lo = mid + 1;\n } else if (midCp > cp) {\n hi = mid - 1;\n } else {\n return neTree[mid + branchCount];\n }\n }\n\n return -1;\n}\n\n//Tokenizer\nclass Tokenizer {\n constructor() {\n this.preprocessor = new Preprocessor();\n\n this.tokenQueue = [];\n\n this.allowCDATA = false;\n\n this.state = DATA_STATE;\n this.returnState = '';\n\n this.charRefCode = -1;\n this.tempBuff = [];\n this.lastStartTagName = '';\n\n this.consumedAfterSnapshot = -1;\n this.active = false;\n\n this.currentCharacterToken = null;\n this.currentToken = null;\n this.currentAttr = null;\n }\n\n //Errors\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _errOnNextCodePoint(err) {\n this._consume();\n this._err(err);\n this._unconsume();\n }\n\n //API\n getNextToken() {\n while (!this.tokenQueue.length && this.active) {\n this.consumedAfterSnapshot = 0;\n\n const cp = this._consume();\n\n if (!this._ensureHibernation()) {\n this[this.state](cp);\n }\n }\n\n return this.tokenQueue.shift();\n }\n\n write(chunk, isLastChunk) {\n this.active = true;\n this.preprocessor.write(chunk, isLastChunk);\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.active = true;\n this.preprocessor.insertHtmlAtCurrentPos(chunk);\n }\n\n //Hibernation\n _ensureHibernation() {\n if (this.preprocessor.endOfChunkHit) {\n for (; this.consumedAfterSnapshot > 0; this.consumedAfterSnapshot--) {\n this.preprocessor.retreat();\n }\n\n this.active = false;\n this.tokenQueue.push({ type: Tokenizer.HIBERNATION_TOKEN });\n\n return true;\n }\n\n return false;\n }\n\n //Consumption\n _consume() {\n this.consumedAfterSnapshot++;\n return this.preprocessor.advance();\n }\n\n _unconsume() {\n this.consumedAfterSnapshot--;\n this.preprocessor.retreat();\n }\n\n _reconsumeInState(state) {\n this.state = state;\n this._unconsume();\n }\n\n _consumeSequenceIfMatch(pattern, startCp, caseSensitive) {\n let consumedCount = 0;\n let isMatch = true;\n const patternLength = pattern.length;\n let patternPos = 0;\n let cp = startCp;\n let patternCp = void 0;\n\n for (; patternPos < patternLength; patternPos++) {\n if (patternPos > 0) {\n cp = this._consume();\n consumedCount++;\n }\n\n if (cp === $.EOF) {\n isMatch = false;\n break;\n }\n\n patternCp = pattern[patternPos];\n\n if (cp !== patternCp && (caseSensitive || cp !== toAsciiLowerCodePoint(patternCp))) {\n isMatch = false;\n break;\n }\n }\n\n if (!isMatch) {\n while (consumedCount--) {\n this._unconsume();\n }\n }\n\n return isMatch;\n }\n\n //Temp buffer\n _isTempBufferEqualToScriptString() {\n if (this.tempBuff.length !== $$.SCRIPT_STRING.length) {\n return false;\n }\n\n for (let i = 0; i < this.tempBuff.length; i++) {\n if (this.tempBuff[i] !== $$.SCRIPT_STRING[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n //Token creation\n _createStartTagToken() {\n this.currentToken = {\n type: Tokenizer.START_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n ackSelfClosing: false,\n attrs: []\n };\n }\n\n _createEndTagToken() {\n this.currentToken = {\n type: Tokenizer.END_TAG_TOKEN,\n tagName: '',\n selfClosing: false,\n attrs: []\n };\n }\n\n _createCommentToken() {\n this.currentToken = {\n type: Tokenizer.COMMENT_TOKEN,\n data: ''\n };\n }\n\n _createDoctypeToken(initialName) {\n this.currentToken = {\n type: Tokenizer.DOCTYPE_TOKEN,\n name: initialName,\n forceQuirks: false,\n publicId: null,\n systemId: null\n };\n }\n\n _createCharacterToken(type, ch) {\n this.currentCharacterToken = {\n type: type,\n chars: ch\n };\n }\n\n _createEOFToken() {\n this.currentToken = { type: Tokenizer.EOF_TOKEN };\n }\n\n //Tag attributes\n _createAttr(attrNameFirstCh) {\n this.currentAttr = {\n name: attrNameFirstCh,\n value: ''\n };\n }\n\n _leaveAttrName(toState) {\n if (Tokenizer.getTokenAttr(this.currentToken, this.currentAttr.name) === null) {\n this.currentToken.attrs.push(this.currentAttr);\n } else {\n this._err(ERR.duplicateAttribute);\n }\n\n this.state = toState;\n }\n\n _leaveAttrValue(toState) {\n this.state = toState;\n }\n\n //Token emission\n _emitCurrentToken() {\n this._emitCurrentCharacterToken();\n\n const ct = this.currentToken;\n\n this.currentToken = null;\n\n //NOTE: store emited start tag's tagName to determine is the following end tag token is appropriate.\n if (ct.type === Tokenizer.START_TAG_TOKEN) {\n this.lastStartTagName = ct.tagName;\n } else if (ct.type === Tokenizer.END_TAG_TOKEN) {\n if (ct.attrs.length > 0) {\n this._err(ERR.endTagWithAttributes);\n }\n\n if (ct.selfClosing) {\n this._err(ERR.endTagWithTrailingSolidus);\n }\n }\n\n this.tokenQueue.push(ct);\n }\n\n _emitCurrentCharacterToken() {\n if (this.currentCharacterToken) {\n this.tokenQueue.push(this.currentCharacterToken);\n this.currentCharacterToken = null;\n }\n }\n\n _emitEOFToken() {\n this._createEOFToken();\n this._emitCurrentToken();\n }\n\n //Characters emission\n\n //OPTIMIZATION: specification uses only one type of character tokens (one token per character).\n //This causes a huge memory overhead and a lot of unnecessary parser loops. parse5 uses 3 groups of characters.\n //If we have a sequence of characters that belong to the same group, parser can process it\n //as a single solid character token.\n //So, there are 3 types of character tokens in parse5:\n //1)NULL_CHARACTER_TOKEN - \\u0000-character sequences (e.g. '\\u0000\\u0000\\u0000')\n //2)WHITESPACE_CHARACTER_TOKEN - any whitespace/new-line character sequences (e.g. '\\n \\r\\t \\f')\n //3)CHARACTER_TOKEN - any character sequence which don't belong to groups 1 and 2 (e.g. 'abcdef1234@@#$%^')\n _appendCharToCurrentCharacterToken(type, ch) {\n if (this.currentCharacterToken && this.currentCharacterToken.type !== type) {\n this._emitCurrentCharacterToken();\n }\n\n if (this.currentCharacterToken) {\n this.currentCharacterToken.chars += ch;\n } else {\n this._createCharacterToken(type, ch);\n }\n }\n\n _emitCodePoint(cp) {\n let type = Tokenizer.CHARACTER_TOKEN;\n\n if (isWhitespace(cp)) {\n type = Tokenizer.WHITESPACE_CHARACTER_TOKEN;\n } else if (cp === $.NULL) {\n type = Tokenizer.NULL_CHARACTER_TOKEN;\n }\n\n this._appendCharToCurrentCharacterToken(type, toChar(cp));\n }\n\n _emitSeveralCodePoints(codePoints) {\n for (let i = 0; i < codePoints.length; i++) {\n this._emitCodePoint(codePoints[i]);\n }\n }\n\n //NOTE: used then we emit character explicitly. This is always a non-whitespace and a non-null character.\n //So we can avoid additional checks here.\n _emitChars(ch) {\n this._appendCharToCurrentCharacterToken(Tokenizer.CHARACTER_TOKEN, ch);\n }\n\n // Character reference helpers\n _matchNamedCharacterReference(startCp) {\n let result = null;\n let excess = 1;\n let i = findNamedEntityTreeBranch(0, startCp);\n\n this.tempBuff.push(startCp);\n\n while (i > -1) {\n const current = neTree[i];\n const inNode = current < MAX_BRANCH_MARKER_VALUE;\n const nodeWithData = inNode && current & HAS_DATA_FLAG;\n\n if (nodeWithData) {\n //NOTE: we use greedy search, so we continue lookup at this point\n result = current & DATA_DUPLET_FLAG ? [neTree[++i], neTree[++i]] : [neTree[++i]];\n excess = 0;\n }\n\n const cp = this._consume();\n\n this.tempBuff.push(cp);\n excess++;\n\n if (cp === $.EOF) {\n break;\n }\n\n if (inNode) {\n i = current & HAS_BRANCHES_FLAG ? findNamedEntityTreeBranch(i, cp) : -1;\n } else {\n i = cp === current ? ++i : -1;\n }\n }\n\n while (excess--) {\n this.tempBuff.pop();\n this._unconsume();\n }\n\n return result;\n }\n\n _isCharacterReferenceInAttribute() {\n return (\n this.returnState === ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE ||\n this.returnState === ATTRIBUTE_VALUE_UNQUOTED_STATE\n );\n }\n\n _isCharacterReferenceAttributeQuirk(withSemicolon) {\n if (!withSemicolon && this._isCharacterReferenceInAttribute()) {\n const nextCp = this._consume();\n\n this._unconsume();\n\n return nextCp === $.EQUALS_SIGN || isAsciiAlphaNumeric(nextCp);\n }\n\n return false;\n }\n\n _flushCodePointsConsumedAsCharacterReference() {\n if (this._isCharacterReferenceInAttribute()) {\n for (let i = 0; i < this.tempBuff.length; i++) {\n this.currentAttr.value += toChar(this.tempBuff[i]);\n }\n } else {\n this._emitSeveralCodePoints(this.tempBuff);\n }\n\n this.tempBuff = [];\n }\n\n // State machine\n\n // Data state\n //------------------------------------------------------------------\n [DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = TAG_OPEN_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = DATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitCodePoint(cp);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RCDATA state\n //------------------------------------------------------------------\n [RCDATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.AMPERSAND) {\n this.returnState = RCDATA_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = RCDATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // RAWTEXT state\n //------------------------------------------------------------------\n [RAWTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = RAWTEXT_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data state\n //------------------------------------------------------------------\n [SCRIPT_DATA_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // PLAINTEXT state\n //------------------------------------------------------------------\n [PLAINTEXT_STATE](cp) {\n this.preprocessor.dropParsedChunk();\n\n if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Tag open state\n //------------------------------------------------------------------\n [TAG_OPEN_STATE](cp) {\n if (cp === $.EXCLAMATION_MARK) {\n this.state = MARKUP_DECLARATION_OPEN_STATE;\n } else if (cp === $.SOLIDUS) {\n this.state = END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this._createStartTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $.QUESTION_MARK) {\n this._err(ERR.unexpectedQuestionMarkInsteadOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n } else if (cp === $.EOF) {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('<');\n this._emitEOFToken();\n } else {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._emitChars('<');\n this._reconsumeInState(DATA_STATE);\n }\n }\n\n // End tag open state\n //------------------------------------------------------------------\n [END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(TAG_NAME_STATE);\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingEndTagName);\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofBeforeTagName);\n this._emitChars('</');\n this._emitEOFToken();\n } else {\n this._err(ERR.invalidFirstCharacterOfTagName);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Tag name state\n //------------------------------------------------------------------\n [TAG_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n } else if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.tagName += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentToken.tagName += toChar(cp);\n }\n }\n\n // RCDATA less-than sign state\n //------------------------------------------------------------------\n [RCDATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = RCDATA_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag open state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RCDATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RCDATA end tag name state\n //------------------------------------------------------------------\n [RCDATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RCDATA_STATE);\n }\n }\n\n // RAWTEXT less-than sign state\n //------------------------------------------------------------------\n [RAWTEXT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = RAWTEXT_END_TAG_OPEN_STATE;\n } else {\n this._emitChars('<');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag open state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(RAWTEXT_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // RAWTEXT end tag name state\n //------------------------------------------------------------------\n [RAWTEXT_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(RAWTEXT_STATE);\n }\n }\n\n // Script data less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_END_TAG_OPEN_STATE;\n } else if (cp === $.EXCLAMATION_MARK) {\n this.state = SCRIPT_DATA_ESCAPE_START_STATE;\n this._emitChars('<!');\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n } else if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPE_START_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escape start dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPE_START_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else {\n this._reconsumeInState(SCRIPT_DATA_STATE);\n }\n }\n\n // Script data escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE;\n } else if (isAsciiLetter(cp)) {\n this.tempBuff = [];\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE);\n } else {\n this._emitChars('<');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag open state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE](cp) {\n if (isAsciiLetter(cp)) {\n this._createEndTagToken();\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE);\n } else {\n this._emitChars('</');\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data escaped end tag name state\n //------------------------------------------------------------------\n [SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE](cp) {\n if (isAsciiUpper(cp)) {\n this.currentToken.tagName += toAsciiLowerChar(cp);\n this.tempBuff.push(cp);\n } else if (isAsciiLower(cp)) {\n this.currentToken.tagName += toChar(cp);\n this.tempBuff.push(cp);\n } else {\n if (this.lastStartTagName === this.currentToken.tagName) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_ATTRIBUTE_NAME_STATE;\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n return;\n }\n }\n\n this._emitChars('</');\n this._emitSeveralCodePoints(this.tempBuff);\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escape start state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_DOUBLE_ESCAPED_STATE\n : SCRIPT_DATA_ESCAPED_STATE;\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_ESCAPED_STATE);\n }\n }\n\n // Script data double escaped state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE;\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped dash dash state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this._emitChars('-');\n } else if (cp === $.LESS_THAN_SIGN) {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE;\n this._emitChars('<');\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = SCRIPT_DATA_STATE;\n this._emitChars('>');\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitChars(unicode.REPLACEMENT_CHARACTER);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInScriptHtmlCommentLikeText);\n this._emitEOFToken();\n } else {\n this.state = SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n this._emitCodePoint(cp);\n }\n }\n\n // Script data double escaped less-than sign state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.SOLIDUS) {\n this.tempBuff = [];\n this.state = SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE;\n this._emitChars('/');\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Script data double escape end state\n //------------------------------------------------------------------\n [SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN) {\n this.state = this._isTempBufferEqualToScriptString()\n ? SCRIPT_DATA_ESCAPED_STATE\n : SCRIPT_DATA_DOUBLE_ESCAPED_STATE;\n\n this._emitCodePoint(cp);\n } else if (isAsciiUpper(cp)) {\n this.tempBuff.push(toAsciiLowerCodePoint(cp));\n this._emitCodePoint(cp);\n } else if (isAsciiLower(cp)) {\n this.tempBuff.push(cp);\n this._emitCodePoint(cp);\n } else {\n this._reconsumeInState(SCRIPT_DATA_DOUBLE_ESCAPED_STATE);\n }\n }\n\n // Before attribute name state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n this._reconsumeInState(AFTER_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.EQUALS_SIGN) {\n this._err(ERR.unexpectedEqualsSignBeforeAttributeName);\n this._createAttr('=');\n this.state = ATTRIBUTE_NAME_STATE;\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Attribute name state\n //------------------------------------------------------------------\n [ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp) || cp === $.SOLIDUS || cp === $.GREATER_THAN_SIGN || cp === $.EOF) {\n this._leaveAttrName(AFTER_ATTRIBUTE_NAME_STATE);\n this._unconsume();\n } else if (cp === $.EQUALS_SIGN) {\n this._leaveAttrName(BEFORE_ATTRIBUTE_VALUE_STATE);\n } else if (isAsciiUpper(cp)) {\n this.currentAttr.name += toAsciiLowerChar(cp);\n } else if (cp === $.QUOTATION_MARK || cp === $.APOSTROPHE || cp === $.LESS_THAN_SIGN) {\n this._err(ERR.unexpectedCharacterInAttributeName);\n this.currentAttr.name += toChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.name += unicode.REPLACEMENT_CHARACTER;\n } else {\n this.currentAttr.name += toChar(cp);\n }\n }\n\n // After attribute name state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.SOLIDUS) {\n this.state = SELF_CLOSING_START_TAG_STATE;\n } else if (cp === $.EQUALS_SIGN) {\n this.state = BEFORE_ATTRIBUTE_VALUE_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._createAttr('');\n this._reconsumeInState(ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Before attribute value state\n //------------------------------------------------------------------\n [BEFORE_ATTRIBUTE_VALUE_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.state = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.state = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingAttributeValue);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(ATTRIBUTE_VALUE_UNQUOTED_STATE);\n }\n }\n\n // Attribute value (double-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (single-quoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_ATTRIBUTE_VALUE_QUOTED_STATE;\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // Attribute value (unquoted) state\n //------------------------------------------------------------------\n [ATTRIBUTE_VALUE_UNQUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.AMPERSAND) {\n this.returnState = ATTRIBUTE_VALUE_UNQUOTED_STATE;\n this.state = CHARACTER_REFERENCE_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentAttr.value += unicode.REPLACEMENT_CHARACTER;\n } else if (\n cp === $.QUOTATION_MARK ||\n cp === $.APOSTROPHE ||\n cp === $.LESS_THAN_SIGN ||\n cp === $.EQUALS_SIGN ||\n cp === $.GRAVE_ACCENT\n ) {\n this._err(ERR.unexpectedCharacterInUnquotedAttributeValue);\n this.currentAttr.value += toChar(cp);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this.currentAttr.value += toChar(cp);\n }\n }\n\n // After attribute value (quoted) state\n //------------------------------------------------------------------\n [AFTER_ATTRIBUTE_VALUE_QUOTED_STATE](cp) {\n if (isWhitespace(cp)) {\n this._leaveAttrValue(BEFORE_ATTRIBUTE_NAME_STATE);\n } else if (cp === $.SOLIDUS) {\n this._leaveAttrValue(SELF_CLOSING_START_TAG_STATE);\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._leaveAttrValue(DATA_STATE);\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR.missingWhitespaceBetweenAttributes);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Self-closing start tag state\n //------------------------------------------------------------------\n [SELF_CLOSING_START_TAG_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.currentToken.selfClosing = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInTag);\n this._emitEOFToken();\n } else {\n this._err(ERR.unexpectedSolidusInTag);\n this._reconsumeInState(BEFORE_ATTRIBUTE_NAME_STATE);\n }\n }\n\n // Bogus comment state\n //------------------------------------------------------------------\n [BOGUS_COMMENT_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Markup declaration open state\n //------------------------------------------------------------------\n [MARKUP_DECLARATION_OPEN_STATE](cp) {\n if (this._consumeSequenceIfMatch($$.DASH_DASH_STRING, cp, true)) {\n this._createCommentToken();\n this.state = COMMENT_START_STATE;\n } else if (this._consumeSequenceIfMatch($$.DOCTYPE_STRING, cp, false)) {\n this.state = DOCTYPE_STATE;\n } else if (this._consumeSequenceIfMatch($$.CDATA_START_STRING, cp, true)) {\n if (this.allowCDATA) {\n this.state = CDATA_SECTION_STATE;\n } else {\n this._err(ERR.cdataInHtmlContent);\n this._createCommentToken();\n this.currentToken.data = '[CDATA[';\n this.state = BOGUS_COMMENT_STATE;\n }\n }\n\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.incorrectlyOpenedComment);\n this._createCommentToken();\n this._reconsumeInState(BOGUS_COMMENT_STATE);\n }\n }\n\n // Comment start state\n //------------------------------------------------------------------\n [COMMENT_START_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_START_DASH_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment start dash state\n //------------------------------------------------------------------\n [COMMENT_START_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptClosingOfEmptyComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment state\n //------------------------------------------------------------------\n [COMMENT_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.currentToken.data += '<';\n this.state = COMMENT_LESS_THAN_SIGN_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.data += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += toChar(cp);\n }\n }\n\n // Comment less-than sign state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_STATE](cp) {\n if (cp === $.EXCLAMATION_MARK) {\n this.currentToken.data += '!';\n this.state = COMMENT_LESS_THAN_SIGN_BANG_STATE;\n } else if (cp === $.LESS_THAN_SIGN) {\n this.currentToken.data += '!';\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment less-than sign bang dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE;\n } else {\n this._reconsumeInState(COMMENT_END_DASH_STATE);\n }\n }\n\n // Comment less-than sign bang dash dash state\n //------------------------------------------------------------------\n [COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE](cp) {\n if (cp !== $.GREATER_THAN_SIGN && cp !== $.EOF) {\n this._err(ERR.nestedComment);\n }\n\n this._reconsumeInState(COMMENT_END_STATE);\n }\n\n // Comment end dash state\n //------------------------------------------------------------------\n [COMMENT_END_DASH_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.state = COMMENT_END_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '-';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end state\n //------------------------------------------------------------------\n [COMMENT_END_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EXCLAMATION_MARK) {\n this.state = COMMENT_END_BANG_STATE;\n } else if (cp === $.HYPHEN_MINUS) {\n this.currentToken.data += '-';\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // Comment end bang state\n //------------------------------------------------------------------\n [COMMENT_END_BANG_STATE](cp) {\n if (cp === $.HYPHEN_MINUS) {\n this.currentToken.data += '--!';\n this.state = COMMENT_END_DASH_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.incorrectlyClosedComment);\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInComment);\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.data += '--!';\n this._reconsumeInState(COMMENT_STATE);\n }\n }\n\n // DOCTYPE state\n //------------------------------------------------------------------\n [DOCTYPE_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingWhitespaceBeforeDoctypeName);\n this._reconsumeInState(BEFORE_DOCTYPE_NAME_STATE);\n }\n }\n\n // Before DOCTYPE name state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (isAsciiUpper(cp)) {\n this._createDoctypeToken(toAsciiLowerChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this._createDoctypeToken(unicode.REPLACEMENT_CHARACTER);\n this.state = DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeName);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this._createDoctypeToken(null);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._createDoctypeToken(toChar(cp));\n this.state = DOCTYPE_NAME_STATE;\n }\n }\n\n // DOCTYPE name state\n //------------------------------------------------------------------\n [DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = AFTER_DOCTYPE_NAME_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (isAsciiUpper(cp)) {\n this.currentToken.name += toAsciiLowerChar(cp);\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.name += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.name += toChar(cp);\n }\n }\n\n // After DOCTYPE name state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_NAME_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else if (this._consumeSequenceIfMatch($$.PUBLIC_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE;\n } else if (this._consumeSequenceIfMatch($$.SYSTEM_STRING, cp, false)) {\n this.state = AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE;\n }\n //NOTE: sequence lookup can be abrupted by hibernation. In that case lookup\n //results are no longer valid and we will need to start over.\n else if (!this._ensureHibernation()) {\n this._err(ERR.invalidCharacterSequenceAfterDoctypeName);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE public keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceAfterDoctypePublicKeyword);\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE public identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.publicId = '';\n this.state = DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE public identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // DOCTYPE public identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.publicId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypePublicIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.publicId += toChar(cp);\n }\n }\n\n // After DOCTYPE public identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Between DOCTYPE public and system identifiers state\n //------------------------------------------------------------------\n [BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // After DOCTYPE system keyword state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE](cp) {\n if (isWhitespace(cp)) {\n this.state = BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.QUOTATION_MARK) {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this._err(ERR.missingWhitespaceAfterDoctypeSystemKeyword);\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Before DOCTYPE system identifier state\n //------------------------------------------------------------------\n [BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.QUOTATION_MARK) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE;\n } else if (cp === $.APOSTROPHE) {\n this.currentToken.systemId = '';\n this.state = DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.missingDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this.state = DATA_STATE;\n this._emitCurrentToken();\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.missingQuoteBeforeDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // DOCTYPE system identifier (double-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE](cp) {\n if (cp === $.QUOTATION_MARK) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // DOCTYPE system identifier (single-quoted) state\n //------------------------------------------------------------------\n [DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE](cp) {\n if (cp === $.APOSTROPHE) {\n this.state = AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n this.currentToken.systemId += unicode.REPLACEMENT_CHARACTER;\n } else if (cp === $.GREATER_THAN_SIGN) {\n this._err(ERR.abruptDoctypeSystemIdentifier);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this.currentToken.systemId += toChar(cp);\n }\n }\n\n // After DOCTYPE system identifier state\n //------------------------------------------------------------------\n [AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE](cp) {\n if (isWhitespace(cp)) {\n return;\n }\n\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInDoctype);\n this.currentToken.forceQuirks = true;\n this._emitCurrentToken();\n this._emitEOFToken();\n } else {\n this._err(ERR.unexpectedCharacterAfterDoctypeSystemIdentifier);\n this._reconsumeInState(BOGUS_DOCTYPE_STATE);\n }\n }\n\n // Bogus DOCTYPE state\n //------------------------------------------------------------------\n [BOGUS_DOCTYPE_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this._emitCurrentToken();\n this.state = DATA_STATE;\n } else if (cp === $.NULL) {\n this._err(ERR.unexpectedNullCharacter);\n } else if (cp === $.EOF) {\n this._emitCurrentToken();\n this._emitEOFToken();\n }\n }\n\n // CDATA section state\n //------------------------------------------------------------------\n [CDATA_SECTION_STATE](cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_BRACKET_STATE;\n } else if (cp === $.EOF) {\n this._err(ERR.eofInCdata);\n this._emitEOFToken();\n } else {\n this._emitCodePoint(cp);\n }\n }\n\n // CDATA section bracket state\n //------------------------------------------------------------------\n [CDATA_SECTION_BRACKET_STATE](cp) {\n if (cp === $.RIGHT_SQUARE_BRACKET) {\n this.state = CDATA_SECTION_END_STATE;\n } else {\n this._emitChars(']');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // CDATA section end state\n //------------------------------------------------------------------\n [CDATA_SECTION_END_STATE](cp) {\n if (cp === $.GREATER_THAN_SIGN) {\n this.state = DATA_STATE;\n } else if (cp === $.RIGHT_SQUARE_BRACKET) {\n this._emitChars(']');\n } else {\n this._emitChars(']]');\n this._reconsumeInState(CDATA_SECTION_STATE);\n }\n }\n\n // Character reference state\n //------------------------------------------------------------------\n [CHARACTER_REFERENCE_STATE](cp) {\n this.tempBuff = [$.AMPERSAND];\n\n if (cp === $.NUMBER_SIGN) {\n this.tempBuff.push(cp);\n this.state = NUMERIC_CHARACTER_REFERENCE_STATE;\n } else if (isAsciiAlphaNumeric(cp)) {\n this._reconsumeInState(NAMED_CHARACTER_REFERENCE_STATE);\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Named character reference state\n //------------------------------------------------------------------\n [NAMED_CHARACTER_REFERENCE_STATE](cp) {\n const matchResult = this._matchNamedCharacterReference(cp);\n\n //NOTE: matching can be abrupted by hibernation. In that case match\n //results are no longer valid and we will need to start over.\n if (this._ensureHibernation()) {\n this.tempBuff = [$.AMPERSAND];\n } else if (matchResult) {\n const withSemicolon = this.tempBuff[this.tempBuff.length - 1] === $.SEMICOLON;\n\n if (!this._isCharacterReferenceAttributeQuirk(withSemicolon)) {\n if (!withSemicolon) {\n this._errOnNextCodePoint(ERR.missingSemicolonAfterCharacterReference);\n }\n\n this.tempBuff = matchResult;\n }\n\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = this.returnState;\n } else {\n this._flushCodePointsConsumedAsCharacterReference();\n this.state = AMBIGUOUS_AMPERSAND_STATE;\n }\n }\n\n // Ambiguos ampersand state\n //------------------------------------------------------------------\n [AMBIGUOUS_AMPERSAND_STATE](cp) {\n if (isAsciiAlphaNumeric(cp)) {\n if (this._isCharacterReferenceInAttribute()) {\n this.currentAttr.value += toChar(cp);\n } else {\n this._emitCodePoint(cp);\n }\n } else {\n if (cp === $.SEMICOLON) {\n this._err(ERR.unknownNamedCharacterReference);\n }\n\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Numeric character reference state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_STATE](cp) {\n this.charRefCode = 0;\n\n if (cp === $.LATIN_SMALL_X || cp === $.LATIN_CAPITAL_X) {\n this.tempBuff.push(cp);\n this.state = HEXADEMICAL_CHARACTER_REFERENCE_START_STATE;\n } else {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_START_STATE);\n }\n }\n\n // Hexademical character reference start state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiHexDigit(cp)) {\n this._reconsumeInState(HEXADEMICAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Decimal character reference start state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_START_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this._reconsumeInState(DECIMAL_CHARACTER_REFERENCE_STATE);\n } else {\n this._err(ERR.absenceOfDigitsInNumericCharacterReference);\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n }\n\n // Hexademical character reference state\n //------------------------------------------------------------------\n [HEXADEMICAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiUpperHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x37;\n } else if (isAsciiLowerHexDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x57;\n } else if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 16 + cp - 0x30;\n } else if (cp === $.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Decimal character reference state\n //------------------------------------------------------------------\n [DECIMAL_CHARACTER_REFERENCE_STATE](cp) {\n if (isAsciiDigit(cp)) {\n this.charRefCode = this.charRefCode * 10 + cp - 0x30;\n } else if (cp === $.SEMICOLON) {\n this.state = NUMERIC_CHARACTER_REFERENCE_END_STATE;\n } else {\n this._err(ERR.missingSemicolonAfterCharacterReference);\n this._reconsumeInState(NUMERIC_CHARACTER_REFERENCE_END_STATE);\n }\n }\n\n // Numeric character reference end state\n //------------------------------------------------------------------\n [NUMERIC_CHARACTER_REFERENCE_END_STATE]() {\n if (this.charRefCode === $.NULL) {\n this._err(ERR.nullCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (this.charRefCode > 0x10ffff) {\n this._err(ERR.characterReferenceOutsideUnicodeRange);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (unicode.isSurrogate(this.charRefCode)) {\n this._err(ERR.surrogateCharacterReference);\n this.charRefCode = $.REPLACEMENT_CHARACTER;\n } else if (unicode.isUndefinedCodePoint(this.charRefCode)) {\n this._err(ERR.noncharacterCharacterReference);\n } else if (unicode.isControlCodePoint(this.charRefCode) || this.charRefCode === $.CARRIAGE_RETURN) {\n this._err(ERR.controlCharacterReference);\n\n const replacement = C1_CONTROLS_REFERENCE_REPLACEMENTS[this.charRefCode];\n\n if (replacement) {\n this.charRefCode = replacement;\n }\n }\n\n this.tempBuff = [this.charRefCode];\n\n this._flushCodePointsConsumedAsCharacterReference();\n this._reconsumeInState(this.returnState);\n }\n}\n\n//Token types\nTokenizer.CHARACTER_TOKEN = 'CHARACTER_TOKEN';\nTokenizer.NULL_CHARACTER_TOKEN = 'NULL_CHARACTER_TOKEN';\nTokenizer.WHITESPACE_CHARACTER_TOKEN = 'WHITESPACE_CHARACTER_TOKEN';\nTokenizer.START_TAG_TOKEN = 'START_TAG_TOKEN';\nTokenizer.END_TAG_TOKEN = 'END_TAG_TOKEN';\nTokenizer.COMMENT_TOKEN = 'COMMENT_TOKEN';\nTokenizer.DOCTYPE_TOKEN = 'DOCTYPE_TOKEN';\nTokenizer.EOF_TOKEN = 'EOF_TOKEN';\nTokenizer.HIBERNATION_TOKEN = 'HIBERNATION_TOKEN';\n\n//Tokenizer initial states for different modes\nTokenizer.MODE = {\n DATA: DATA_STATE,\n RCDATA: RCDATA_STATE,\n RAWTEXT: RAWTEXT_STATE,\n SCRIPT_DATA: SCRIPT_DATA_STATE,\n PLAINTEXT: PLAINTEXT_STATE\n};\n\n//Static\nTokenizer.getTokenAttr = function(token, attrName) {\n for (let i = token.attrs.length - 1; i >= 0; i--) {\n if (token.attrs[i].name === attrName) {\n return token.attrs[i].value;\n }\n }\n\n return null;\n};\n\nmodule.exports = Tokenizer;\n","'use strict';\n\n//NOTE: this file contains auto-generated array mapped radix tree that is used for the named entity references consumption\n//(details: https://github.com/inikulin/parse5/tree/master/scripts/generate-named-entity-data/README.md)\nmodule.exports = new Uint16Array([4,52,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,106,303,412,810,1432,1701,1796,1987,2114,2360,2420,2484,3170,3251,4140,4393,4575,4610,5106,5512,5728,6117,6274,6315,6345,6427,6516,7002,7910,8733,9323,9870,10170,10631,10893,11318,11386,11467,12773,13092,14474,14922,15448,15542,16419,17666,18166,18611,19004,19095,19298,19397,4,16,69,77,97,98,99,102,103,108,109,110,111,112,114,115,116,117,140,150,158,169,176,194,199,210,216,222,226,242,256,266,283,294,108,105,103,5,198,1,59,148,1,198,80,5,38,1,59,156,1,38,99,117,116,101,5,193,1,59,167,1,193,114,101,118,101,59,1,258,4,2,105,121,182,191,114,99,5,194,1,59,189,1,194,59,1,1040,114,59,3,55349,56580,114,97,118,101,5,192,1,59,208,1,192,112,104,97,59,1,913,97,99,114,59,1,256,100,59,1,10835,4,2,103,112,232,237,111,110,59,1,260,102,59,3,55349,56632,112,108,121,70,117,110,99,116,105,111,110,59,1,8289,105,110,103,5,197,1,59,264,1,197,4,2,99,115,272,277,114,59,3,55349,56476,105,103,110,59,1,8788,105,108,100,101,5,195,1,59,292,1,195,109,108,5,196,1,59,301,1,196,4,8,97,99,101,102,111,114,115,117,321,350,354,383,388,394,400,405,4,2,99,114,327,336,107,115,108,97,115,104,59,1,8726,4,2,118,119,342,345,59,1,10983,101,100,59,1,8966,121,59,1,1041,4,3,99,114,116,362,369,379,97,117,115,101,59,1,8757,110,111,117,108,108,105,115,59,1,8492,97,59,1,914,114,59,3,55349,56581,112,102,59,3,55349,56633,101,118,101,59,1,728,99,114,59,1,8492,109,112,101,113,59,1,8782,4,14,72,79,97,99,100,101,102,104,105,108,111,114,115,117,442,447,456,504,542,547,569,573,577,616,678,784,790,796,99,121,59,1,1063,80,89,5,169,1,59,454,1,169,4,3,99,112,121,464,470,497,117,116,101,59,1,262,4,2,59,105,476,478,1,8914,116,97,108,68,105,102,102,101,114,101,110,116,105,97,108,68,59,1,8517,108,101,121,115,59,1,8493,4,4,97,101,105,111,514,520,530,535,114,111,110,59,1,268,100,105,108,5,199,1,59,528,1,199,114,99,59,1,264,110,105,110,116,59,1,8752,111,116,59,1,266,4,2,100,110,553,560,105,108,108,97,59,1,184,116,101,114,68,111,116,59,1,183,114,59,1,8493,105,59,1,935,114,99,108,101,4,4,68,77,80,84,591,596,603,609,111,116,59,1,8857,105,110,117,115,59,1,8854,108,117,115,59,1,8853,105,109,101,115,59,1,8855,111,4,2,99,115,623,646,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8754,101,67,117,114,108,121,4,2,68,81,658,671,111,117,98,108,101,81,117,111,116,101,59,1,8221,117,111,116,101,59,1,8217,4,4,108,110,112,117,688,701,736,753,111,110,4,2,59,101,696,698,1,8759,59,1,10868,4,3,103,105,116,709,717,722,114,117,101,110,116,59,1,8801,110,116,59,1,8751,111,117,114,73,110,116,101,103,114,97,108,59,1,8750,4,2,102,114,742,745,59,1,8450,111,100,117,99,116,59,1,8720,110,116,101,114,67,108,111,99,107,119,105,115,101,67,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8755,111,115,115,59,1,10799,99,114,59,3,55349,56478,112,4,2,59,67,803,805,1,8915,97,112,59,1,8781,4,11,68,74,83,90,97,99,101,102,105,111,115,834,850,855,860,865,888,903,916,921,1011,1415,4,2,59,111,840,842,1,8517,116,114,97,104,100,59,1,10513,99,121,59,1,1026,99,121,59,1,1029,99,121,59,1,1039,4,3,103,114,115,873,879,883,103,101,114,59,1,8225,114,59,1,8609,104,118,59,1,10980,4,2,97,121,894,900,114,111,110,59,1,270,59,1,1044,108,4,2,59,116,910,912,1,8711,97,59,1,916,114,59,3,55349,56583,4,2,97,102,927,998,4,2,99,109,933,992,114,105,116,105,99,97,108,4,4,65,68,71,84,950,957,978,985,99,117,116,101,59,1,180,111,4,2,116,117,964,967,59,1,729,98,108,101,65,99,117,116,101,59,1,733,114,97,118,101,59,1,96,105,108,100,101,59,1,732,111,110,100,59,1,8900,102,101,114,101,110,116,105,97,108,68,59,1,8518,4,4,112,116,117,119,1021,1026,1048,1249,102,59,3,55349,56635,4,3,59,68,69,1034,1036,1041,1,168,111,116,59,1,8412,113,117,97,108,59,1,8784,98,108,101,4,6,67,68,76,82,85,86,1065,1082,1101,1189,1211,1236,111,110,116,111,117,114,73,110,116,101,103,114,97,108,59,1,8751,111,4,2,116,119,1089,1092,59,1,168,110,65,114,114,111,119,59,1,8659,4,2,101,111,1107,1141,102,116,4,3,65,82,84,1117,1124,1136,114,114,111,119,59,1,8656,105,103,104,116,65,114,114,111,119,59,1,8660,101,101,59,1,10980,110,103,4,2,76,82,1149,1177,101,102,116,4,2,65,82,1158,1165,114,114,111,119,59,1,10232,105,103,104,116,65,114,114,111,119,59,1,10234,105,103,104,116,65,114,114,111,119,59,1,10233,105,103,104,116,4,2,65,84,1199,1206,114,114,111,119,59,1,8658,101,101,59,1,8872,112,4,2,65,68,1218,1225,114,114,111,119,59,1,8657,111,119,110,65,114,114,111,119,59,1,8661,101,114,116,105,99,97,108,66,97,114,59,1,8741,110,4,6,65,66,76,82,84,97,1264,1292,1299,1352,1391,1408,114,114,111,119,4,3,59,66,85,1276,1278,1283,1,8595,97,114,59,1,10515,112,65,114,114,111,119,59,1,8693,114,101,118,101,59,1,785,101,102,116,4,3,82,84,86,1310,1323,1334,105,103,104,116,86,101,99,116,111,114,59,1,10576,101,101,86,101,99,116,111,114,59,1,10590,101,99,116,111,114,4,2,59,66,1345,1347,1,8637,97,114,59,1,10582,105,103,104,116,4,2,84,86,1362,1373,101,101,86,101,99,116,111,114,59,1,10591,101,99,116,111,114,4,2,59,66,1384,1386,1,8641,97,114,59,1,10583,101,101,4,2,59,65,1399,1401,1,8868,114,114,111,119,59,1,8615,114,114,111,119,59,1,8659,4,2,99,116,1421,1426,114,59,3,55349,56479,114,111,107,59,1,272,4,16,78,84,97,99,100,102,103,108,109,111,112,113,115,116,117,120,1466,1470,1478,1489,1515,1520,1525,1536,1544,1593,1609,1617,1650,1664,1668,1677,71,59,1,330,72,5,208,1,59,1476,1,208,99,117,116,101,5,201,1,59,1487,1,201,4,3,97,105,121,1497,1503,1512,114,111,110,59,1,282,114,99,5,202,1,59,1510,1,202,59,1,1069,111,116,59,1,278,114,59,3,55349,56584,114,97,118,101,5,200,1,59,1534,1,200,101,109,101,110,116,59,1,8712,4,2,97,112,1550,1555,99,114,59,1,274,116,121,4,2,83,86,1563,1576,109,97,108,108,83,113,117,97,114,101,59,1,9723,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9643,4,2,103,112,1599,1604,111,110,59,1,280,102,59,3,55349,56636,115,105,108,111,110,59,1,917,117,4,2,97,105,1624,1640,108,4,2,59,84,1631,1633,1,10869,105,108,100,101,59,1,8770,108,105,98,114,105,117,109,59,1,8652,4,2,99,105,1656,1660,114,59,1,8496,109,59,1,10867,97,59,1,919,109,108,5,203,1,59,1675,1,203,4,2,105,112,1683,1689,115,116,115,59,1,8707,111,110,101,110,116,105,97,108,69,59,1,8519,4,5,99,102,105,111,115,1713,1717,1722,1762,1791,121,59,1,1060,114,59,3,55349,56585,108,108,101,100,4,2,83,86,1732,1745,109,97,108,108,83,113,117,97,114,101,59,1,9724,101,114,121,83,109,97,108,108,83,113,117,97,114,101,59,1,9642,4,3,112,114,117,1770,1775,1781,102,59,3,55349,56637,65,108,108,59,1,8704,114,105,101,114,116,114,102,59,1,8497,99,114,59,1,8497,4,12,74,84,97,98,99,100,102,103,111,114,115,116,1822,1827,1834,1848,1855,1877,1882,1887,1890,1896,1978,1984,99,121,59,1,1027,5,62,1,59,1832,1,62,109,109,97,4,2,59,100,1843,1845,1,915,59,1,988,114,101,118,101,59,1,286,4,3,101,105,121,1863,1869,1874,100,105,108,59,1,290,114,99,59,1,284,59,1,1043,111,116,59,1,288,114,59,3,55349,56586,59,1,8921,112,102,59,3,55349,56638,101,97,116,101,114,4,6,69,70,71,76,83,84,1915,1933,1944,1953,1959,1971,113,117,97,108,4,2,59,76,1925,1927,1,8805,101,115,115,59,1,8923,117,108,108,69,113,117,97,108,59,1,8807,114,101,97,116,101,114,59,1,10914,101,115,115,59,1,8823,108,97,110,116,69,113,117,97,108,59,1,10878,105,108,100,101,59,1,8819,99,114,59,3,55349,56482,59,1,8811,4,8,65,97,99,102,105,111,115,117,2005,2012,2026,2032,2036,2049,2073,2089,82,68,99,121,59,1,1066,4,2,99,116,2018,2023,101,107,59,1,711,59,1,94,105,114,99,59,1,292,114,59,1,8460,108,98,101,114,116,83,112,97,99,101,59,1,8459,4,2,112,114,2055,2059,102,59,1,8461,105,122,111,110,116,97,108,76,105,110,101,59,1,9472,4,2,99,116,2079,2083,114,59,1,8459,114,111,107,59,1,294,109,112,4,2,68,69,2097,2107,111,119,110,72,117,109,112,59,1,8782,113,117,97,108,59,1,8783,4,14,69,74,79,97,99,100,102,103,109,110,111,115,116,117,2144,2149,2155,2160,2171,2189,2194,2198,2209,2245,2307,2329,2334,2341,99,121,59,1,1045,108,105,103,59,1,306,99,121,59,1,1025,99,117,116,101,5,205,1,59,2169,1,205,4,2,105,121,2177,2186,114,99,5,206,1,59,2184,1,206,59,1,1048,111,116,59,1,304,114,59,1,8465,114,97,118,101,5,204,1,59,2207,1,204,4,3,59,97,112,2217,2219,2238,1,8465,4,2,99,103,2225,2229,114,59,1,298,105,110,97,114,121,73,59,1,8520,108,105,101,115,59,1,8658,4,2,116,118,2251,2281,4,2,59,101,2257,2259,1,8748,4,2,103,114,2265,2271,114,97,108,59,1,8747,115,101,99,116,105,111,110,59,1,8898,105,115,105,98,108,101,4,2,67,84,2293,2300,111,109,109,97,59,1,8291,105,109,101,115,59,1,8290,4,3,103,112,116,2315,2320,2325,111,110,59,1,302,102,59,3,55349,56640,97,59,1,921,99,114,59,1,8464,105,108,100,101,59,1,296,4,2,107,109,2347,2352,99,121,59,1,1030,108,5,207,1,59,2358,1,207,4,5,99,102,111,115,117,2372,2386,2391,2397,2414,4,2,105,121,2378,2383,114,99,59,1,308,59,1,1049,114,59,3,55349,56589,112,102,59,3,55349,56641,4,2,99,101,2403,2408,114,59,3,55349,56485,114,99,121,59,1,1032,107,99,121,59,1,1028,4,7,72,74,97,99,102,111,115,2436,2441,2446,2452,2467,2472,2478,99,121,59,1,1061,99,121,59,1,1036,112,112,97,59,1,922,4,2,101,121,2458,2464,100,105,108,59,1,310,59,1,1050,114,59,3,55349,56590,112,102,59,3,55349,56642,99,114,59,3,55349,56486,4,11,74,84,97,99,101,102,108,109,111,115,116,2508,2513,2520,2562,2585,2981,2986,3004,3011,3146,3167,99,121,59,1,1033,5,60,1,59,2518,1,60,4,5,99,109,110,112,114,2532,2538,2544,2548,2558,117,116,101,59,1,313,98,100,97,59,1,923,103,59,1,10218,108,97,99,101,116,114,102,59,1,8466,114,59,1,8606,4,3,97,101,121,2570,2576,2582,114,111,110,59,1,317,100,105,108,59,1,315,59,1,1051,4,2,102,115,2591,2907,116,4,10,65,67,68,70,82,84,85,86,97,114,2614,2663,2672,2728,2735,2760,2820,2870,2888,2895,4,2,110,114,2620,2633,103,108,101,66,114,97,99,107,101,116,59,1,10216,114,111,119,4,3,59,66,82,2644,2646,2651,1,8592,97,114,59,1,8676,105,103,104,116,65,114,114,111,119,59,1,8646,101,105,108,105,110,103,59,1,8968,111,4,2,117,119,2679,2692,98,108,101,66,114,97,99,107,101,116,59,1,10214,110,4,2,84,86,2699,2710,101,101,86,101,99,116,111,114,59,1,10593,101,99,116,111,114,4,2,59,66,2721,2723,1,8643,97,114,59,1,10585,108,111,111,114,59,1,8970,105,103,104,116,4,2,65,86,2745,2752,114,114,111,119,59,1,8596,101,99,116,111,114,59,1,10574,4,2,101,114,2766,2792,101,4,3,59,65,86,2775,2777,2784,1,8867,114,114,111,119,59,1,8612,101,99,116,111,114,59,1,10586,105,97,110,103,108,101,4,3,59,66,69,2806,2808,2813,1,8882,97,114,59,1,10703,113,117,97,108,59,1,8884,112,4,3,68,84,86,2829,2841,2852,111,119,110,86,101,99,116,111,114,59,1,10577,101,101,86,101,99,116,111,114,59,1,10592,101,99,116,111,114,4,2,59,66,2863,2865,1,8639,97,114,59,1,10584,101,99,116,111,114,4,2,59,66,2881,2883,1,8636,97,114,59,1,10578,114,114,111,119,59,1,8656,105,103,104,116,97,114,114,111,119,59,1,8660,115,4,6,69,70,71,76,83,84,2922,2936,2947,2956,2962,2974,113,117,97,108,71,114,101,97,116,101,114,59,1,8922,117,108,108,69,113,117,97,108,59,1,8806,114,101,97,116,101,114,59,1,8822,101,115,115,59,1,10913,108,97,110,116,69,113,117,97,108,59,1,10877,105,108,100,101,59,1,8818,114,59,3,55349,56591,4,2,59,101,2992,2994,1,8920,102,116,97,114,114,111,119,59,1,8666,105,100,111,116,59,1,319,4,3,110,112,119,3019,3110,3115,103,4,4,76,82,108,114,3030,3058,3070,3098,101,102,116,4,2,65,82,3039,3046,114,114,111,119,59,1,10229,105,103,104,116,65,114,114,111,119,59,1,10231,105,103,104,116,65,114,114,111,119,59,1,10230,101,102,116,4,2,97,114,3079,3086,114,114,111,119,59,1,10232,105,103,104,116,97,114,114,111,119,59,1,10234,105,103,104,116,97,114,114,111,119,59,1,10233,102,59,3,55349,56643,101,114,4,2,76,82,3123,3134,101,102,116,65,114,114,111,119,59,1,8601,105,103,104,116,65,114,114,111,119,59,1,8600,4,3,99,104,116,3154,3158,3161,114,59,1,8466,59,1,8624,114,111,107,59,1,321,59,1,8810,4,8,97,99,101,102,105,111,115,117,3188,3192,3196,3222,3227,3237,3243,3248,112,59,1,10501,121,59,1,1052,4,2,100,108,3202,3213,105,117,109,83,112,97,99,101,59,1,8287,108,105,110,116,114,102,59,1,8499,114,59,3,55349,56592,110,117,115,80,108,117,115,59,1,8723,112,102,59,3,55349,56644,99,114,59,1,8499,59,1,924,4,9,74,97,99,101,102,111,115,116,117,3271,3276,3283,3306,3422,3427,4120,4126,4137,99,121,59,1,1034,99,117,116,101,59,1,323,4,3,97,101,121,3291,3297,3303,114,111,110,59,1,327,100,105,108,59,1,325,59,1,1053,4,3,103,115,119,3314,3380,3415,97,116,105,118,101,4,3,77,84,86,3327,3340,3365,101,100,105,117,109,83,112,97,99,101,59,1,8203,104,105,4,2,99,110,3348,3357,107,83,112,97,99,101,59,1,8203,83,112,97,99,101,59,1,8203,101,114,121,84,104,105,110,83,112,97,99,101,59,1,8203,116,101,100,4,2,71,76,3389,3405,114,101,97,116,101,114,71,114,101,97,116,101,114,59,1,8811,101,115,115,76,101,115,115,59,1,8810,76,105,110,101,59,1,10,114,59,3,55349,56593,4,4,66,110,112,116,3437,3444,3460,3464,114,101,97,107,59,1,8288,66,114,101,97,107,105,110,103,83,112,97,99,101,59,1,160,102,59,1,8469,4,13,59,67,68,69,71,72,76,78,80,82,83,84,86,3492,3494,3517,3536,3578,3657,3685,3784,3823,3860,3915,4066,4107,1,10988,4,2,111,117,3500,3510,110,103,114,117,101,110,116,59,1,8802,112,67,97,112,59,1,8813,111,117,98,108,101,86,101,114,116,105,99,97,108,66,97,114,59,1,8742,4,3,108,113,120,3544,3552,3571,101,109,101,110,116,59,1,8713,117,97,108,4,2,59,84,3561,3563,1,8800,105,108,100,101,59,3,8770,824,105,115,116,115,59,1,8708,114,101,97,116,101,114,4,7,59,69,70,71,76,83,84,3600,3602,3609,3621,3631,3637,3650,1,8815,113,117,97,108,59,1,8817,117,108,108,69,113,117,97,108,59,3,8807,824,114,101,97,116,101,114,59,3,8811,824,101,115,115,59,1,8825,108,97,110,116,69,113,117,97,108,59,3,10878,824,105,108,100,101,59,1,8821,117,109,112,4,2,68,69,3666,3677,111,119,110,72,117,109,112,59,3,8782,824,113,117,97,108,59,3,8783,824,101,4,2,102,115,3692,3724,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3709,3711,3717,1,8938,97,114,59,3,10703,824,113,117,97,108,59,1,8940,115,4,6,59,69,71,76,83,84,3739,3741,3748,3757,3764,3777,1,8814,113,117,97,108,59,1,8816,114,101,97,116,101,114,59,1,8824,101,115,115,59,3,8810,824,108,97,110,116,69,113,117,97,108,59,3,10877,824,105,108,100,101,59,1,8820,101,115,116,101,100,4,2,71,76,3795,3812,114,101,97,116,101,114,71,114,101,97,116,101,114,59,3,10914,824,101,115,115,76,101,115,115,59,3,10913,824,114,101,99,101,100,101,115,4,3,59,69,83,3838,3840,3848,1,8832,113,117,97,108,59,3,10927,824,108,97,110,116,69,113,117,97,108,59,1,8928,4,2,101,105,3866,3881,118,101,114,115,101,69,108,101,109,101,110,116,59,1,8716,103,104,116,84,114,105,97,110,103,108,101,4,3,59,66,69,3900,3902,3908,1,8939,97,114,59,3,10704,824,113,117,97,108,59,1,8941,4,2,113,117,3921,3973,117,97,114,101,83,117,4,2,98,112,3933,3952,115,101,116,4,2,59,69,3942,3945,3,8847,824,113,117,97,108,59,1,8930,101,114,115,101,116,4,2,59,69,3963,3966,3,8848,824,113,117,97,108,59,1,8931,4,3,98,99,112,3981,4000,4045,115,101,116,4,2,59,69,3990,3993,3,8834,8402,113,117,97,108,59,1,8840,99,101,101,100,115,4,4,59,69,83,84,4015,4017,4025,4037,1,8833,113,117,97,108,59,3,10928,824,108,97,110,116,69,113,117,97,108,59,1,8929,105,108,100,101,59,3,8831,824,101,114,115,101,116,4,2,59,69,4056,4059,3,8835,8402,113,117,97,108,59,1,8841,105,108,100,101,4,4,59,69,70,84,4080,4082,4089,4100,1,8769,113,117,97,108,59,1,8772,117,108,108,69,113,117,97,108,59,1,8775,105,108,100,101,59,1,8777,101,114,116,105,99,97,108,66,97,114,59,1,8740,99,114,59,3,55349,56489,105,108,100,101,5,209,1,59,4135,1,209,59,1,925,4,14,69,97,99,100,102,103,109,111,112,114,115,116,117,118,4170,4176,4187,4205,4212,4217,4228,4253,4259,4292,4295,4316,4337,4346,108,105,103,59,1,338,99,117,116,101,5,211,1,59,4185,1,211,4,2,105,121,4193,4202,114,99,5,212,1,59,4200,1,212,59,1,1054,98,108,97,99,59,1,336,114,59,3,55349,56594,114,97,118,101,5,210,1,59,4226,1,210,4,3,97,101,105,4236,4241,4246,99,114,59,1,332,103,97,59,1,937,99,114,111,110,59,1,927,112,102,59,3,55349,56646,101,110,67,117,114,108,121,4,2,68,81,4272,4285,111,117,98,108,101,81,117,111,116,101,59,1,8220,117,111,116,101,59,1,8216,59,1,10836,4,2,99,108,4301,4306,114,59,3,55349,56490,97,115,104,5,216,1,59,4314,1,216,105,4,2,108,109,4323,4332,100,101,5,213,1,59,4330,1,213,101,115,59,1,10807,109,108,5,214,1,59,4344,1,214,101,114,4,2,66,80,4354,4380,4,2,97,114,4360,4364,114,59,1,8254,97,99,4,2,101,107,4372,4375,59,1,9182,101,116,59,1,9140,97,114,101,110,116,104,101,115,105,115,59,1,9180,4,9,97,99,102,104,105,108,111,114,115,4413,4422,4426,4431,4435,4438,4448,4471,4561,114,116,105,97,108,68,59,1,8706,121,59,1,1055,114,59,3,55349,56595,105,59,1,934,59,1,928,117,115,77,105,110,117,115,59,1,177,4,2,105,112,4454,4467,110,99,97,114,101,112,108,97,110,101,59,1,8460,102,59,1,8473,4,4,59,101,105,111,4481,4483,4526,4531,1,10939,99,101,100,101,115,4,4,59,69,83,84,4498,4500,4507,4519,1,8826,113,117,97,108,59,1,10927,108,97,110,116,69,113,117,97,108,59,1,8828,105,108,100,101,59,1,8830,109,101,59,1,8243,4,2,100,112,4537,4543,117,99,116,59,1,8719,111,114,116,105,111,110,4,2,59,97,4555,4557,1,8759,108,59,1,8733,4,2,99,105,4567,4572,114,59,3,55349,56491,59,1,936,4,4,85,102,111,115,4585,4594,4599,4604,79,84,5,34,1,59,4592,1,34,114,59,3,55349,56596,112,102,59,1,8474,99,114,59,3,55349,56492,4,12,66,69,97,99,101,102,104,105,111,114,115,117,4636,4642,4650,4681,4704,4763,4767,4771,5047,5069,5081,5094,97,114,114,59,1,10512,71,5,174,1,59,4648,1,174,4,3,99,110,114,4658,4664,4668,117,116,101,59,1,340,103,59,1,10219,114,4,2,59,116,4675,4677,1,8608,108,59,1,10518,4,3,97,101,121,4689,4695,4701,114,111,110,59,1,344,100,105,108,59,1,342,59,1,1056,4,2,59,118,4710,4712,1,8476,101,114,115,101,4,2,69,85,4722,4748,4,2,108,113,4728,4736,101,109,101,110,116,59,1,8715,117,105,108,105,98,114,105,117,109,59,1,8651,112,69,113,117,105,108,105,98,114,105,117,109,59,1,10607,114,59,1,8476,111,59,1,929,103,104,116,4,8,65,67,68,70,84,85,86,97,4792,4840,4849,4905,4912,4972,5022,5040,4,2,110,114,4798,4811,103,108,101,66,114,97,99,107,101,116,59,1,10217,114,111,119,4,3,59,66,76,4822,4824,4829,1,8594,97,114,59,1,8677,101,102,116,65,114,114,111,119,59,1,8644,101,105,108,105,110,103,59,1,8969,111,4,2,117,119,4856,4869,98,108,101,66,114,97,99,107,101,116,59,1,10215,110,4,2,84,86,4876,4887,101,101,86,101,99,116,111,114,59,1,10589,101,99,116,111,114,4,2,59,66,4898,4900,1,8642,97,114,59,1,10581,108,111,111,114,59,1,8971,4,2,101,114,4918,4944,101,4,3,59,65,86,4927,4929,4936,1,8866,114,114,111,119,59,1,8614,101,99,116,111,114,59,1,10587,105,97,110,103,108,101,4,3,59,66,69,4958,4960,4965,1,8883,97,114,59,1,10704,113,117,97,108,59,1,8885,112,4,3,68,84,86,4981,4993,5004,111,119,110,86,101,99,116,111,114,59,1,10575,101,101,86,101,99,116,111,114,59,1,10588,101,99,116,111,114,4,2,59,66,5015,5017,1,8638,97,114,59,1,10580,101,99,116,111,114,4,2,59,66,5033,5035,1,8640,97,114,59,1,10579,114,114,111,119,59,1,8658,4,2,112,117,5053,5057,102,59,1,8477,110,100,73,109,112,108,105,101,115,59,1,10608,105,103,104,116,97,114,114,111,119,59,1,8667,4,2,99,104,5087,5091,114,59,1,8475,59,1,8625,108,101,68,101,108,97,121,101,100,59,1,10740,4,13,72,79,97,99,102,104,105,109,111,113,115,116,117,5134,5150,5157,5164,5198,5203,5259,5265,5277,5283,5374,5380,5385,4,2,67,99,5140,5146,72,99,121,59,1,1065,121,59,1,1064,70,84,99,121,59,1,1068,99,117,116,101,59,1,346,4,5,59,97,101,105,121,5176,5178,5184,5190,5195,1,10940,114,111,110,59,1,352,100,105,108,59,1,350,114,99,59,1,348,59,1,1057,114,59,3,55349,56598,111,114,116,4,4,68,76,82,85,5216,5227,5238,5250,111,119,110,65,114,114,111,119,59,1,8595,101,102,116,65,114,114,111,119,59,1,8592,105,103,104,116,65,114,114,111,119,59,1,8594,112,65,114,114,111,119,59,1,8593,103,109,97,59,1,931,97,108,108,67,105,114,99,108,101,59,1,8728,112,102,59,3,55349,56650,4,2,114,117,5289,5293,116,59,1,8730,97,114,101,4,4,59,73,83,85,5306,5308,5322,5367,1,9633,110,116,101,114,115,101,99,116,105,111,110,59,1,8851,117,4,2,98,112,5329,5347,115,101,116,4,2,59,69,5338,5340,1,8847,113,117,97,108,59,1,8849,101,114,115,101,116,4,2,59,69,5358,5360,1,8848,113,117,97,108,59,1,8850,110,105,111,110,59,1,8852,99,114,59,3,55349,56494,97,114,59,1,8902,4,4,98,99,109,112,5395,5420,5475,5478,4,2,59,115,5401,5403,1,8912,101,116,4,2,59,69,5411,5413,1,8912,113,117,97,108,59,1,8838,4,2,99,104,5426,5468,101,101,100,115,4,4,59,69,83,84,5440,5442,5449,5461,1,8827,113,117,97,108,59,1,10928,108,97,110,116,69,113,117,97,108,59,1,8829,105,108,100,101,59,1,8831,84,104,97,116,59,1,8715,59,1,8721,4,3,59,101,115,5486,5488,5507,1,8913,114,115,101,116,4,2,59,69,5498,5500,1,8835,113,117,97,108,59,1,8839,101,116,59,1,8913,4,11,72,82,83,97,99,102,104,105,111,114,115,5536,5546,5552,5567,5579,5602,5607,5655,5695,5701,5711,79,82,78,5,222,1,59,5544,1,222,65,68,69,59,1,8482,4,2,72,99,5558,5563,99,121,59,1,1035,121,59,1,1062,4,2,98,117,5573,5576,59,1,9,59,1,932,4,3,97,101,121,5587,5593,5599,114,111,110,59,1,356,100,105,108,59,1,354,59,1,1058,114,59,3,55349,56599,4,2,101,105,5613,5631,4,2,114,116,5619,5627,101,102,111,114,101,59,1,8756,97,59,1,920,4,2,99,110,5637,5647,107,83,112,97,99,101,59,3,8287,8202,83,112,97,99,101,59,1,8201,108,100,101,4,4,59,69,70,84,5668,5670,5677,5688,1,8764,113,117,97,108,59,1,8771,117,108,108,69,113,117,97,108,59,1,8773,105,108,100,101,59,1,8776,112,102,59,3,55349,56651,105,112,108,101,68,111,116,59,1,8411,4,2,99,116,5717,5722,114,59,3,55349,56495,114,111,107,59,1,358,4,14,97,98,99,100,102,103,109,110,111,112,114,115,116,117,5758,5789,5805,5823,5830,5835,5846,5852,5921,5937,6089,6095,6101,6108,4,2,99,114,5764,5774,117,116,101,5,218,1,59,5772,1,218,114,4,2,59,111,5781,5783,1,8607,99,105,114,59,1,10569,114,4,2,99,101,5796,5800,121,59,1,1038,118,101,59,1,364,4,2,105,121,5811,5820,114,99,5,219,1,59,5818,1,219,59,1,1059,98,108,97,99,59,1,368,114,59,3,55349,56600,114,97,118,101,5,217,1,59,5844,1,217,97,99,114,59,1,362,4,2,100,105,5858,5905,101,114,4,2,66,80,5866,5892,4,2,97,114,5872,5876,114,59,1,95,97,99,4,2,101,107,5884,5887,59,1,9183,101,116,59,1,9141,97,114,101,110,116,104,101,115,105,115,59,1,9181,111,110,4,2,59,80,5913,5915,1,8899,108,117,115,59,1,8846,4,2,103,112,5927,5932,111,110,59,1,370,102,59,3,55349,56652,4,8,65,68,69,84,97,100,112,115,5955,5985,5996,6009,6026,6033,6044,6075,114,114,111,119,4,3,59,66,68,5967,5969,5974,1,8593,97,114,59,1,10514,111,119,110,65,114,114,111,119,59,1,8645,111,119,110,65,114,114,111,119,59,1,8597,113,117,105,108,105,98,114,105,117,109,59,1,10606,101,101,4,2,59,65,6017,6019,1,8869,114,114,111,119,59,1,8613,114,114,111,119,59,1,8657,111,119,110,97,114,114,111,119,59,1,8661,101,114,4,2,76,82,6052,6063,101,102,116,65,114,114,111,119,59,1,8598,105,103,104,116,65,114,114,111,119,59,1,8599,105,4,2,59,108,6082,6084,1,978,111,110,59,1,933,105,110,103,59,1,366,99,114,59,3,55349,56496,105,108,100,101,59,1,360,109,108,5,220,1,59,6115,1,220,4,9,68,98,99,100,101,102,111,115,118,6137,6143,6148,6152,6166,6250,6255,6261,6267,97,115,104,59,1,8875,97,114,59,1,10987,121,59,1,1042,97,115,104,4,2,59,108,6161,6163,1,8873,59,1,10982,4,2,101,114,6172,6175,59,1,8897,4,3,98,116,121,6183,6188,6238,97,114,59,1,8214,4,2,59,105,6194,6196,1,8214,99,97,108,4,4,66,76,83,84,6209,6214,6220,6231,97,114,59,1,8739,105,110,101,59,1,124,101,112,97,114,97,116,111,114,59,1,10072,105,108,100,101,59,1,8768,84,104,105,110,83,112,97,99,101,59,1,8202,114,59,3,55349,56601,112,102,59,3,55349,56653,99,114,59,3,55349,56497,100,97,115,104,59,1,8874,4,5,99,101,102,111,115,6286,6292,6298,6303,6309,105,114,99,59,1,372,100,103,101,59,1,8896,114,59,3,55349,56602,112,102,59,3,55349,56654,99,114,59,3,55349,56498,4,4,102,105,111,115,6325,6330,6333,6339,114,59,3,55349,56603,59,1,926,112,102,59,3,55349,56655,99,114,59,3,55349,56499,4,9,65,73,85,97,99,102,111,115,117,6365,6370,6375,6380,6391,6405,6410,6416,6422,99,121,59,1,1071,99,121,59,1,1031,99,121,59,1,1070,99,117,116,101,5,221,1,59,6389,1,221,4,2,105,121,6397,6402,114,99,59,1,374,59,1,1067,114,59,3,55349,56604,112,102,59,3,55349,56656,99,114,59,3,55349,56500,109,108,59,1,376,4,8,72,97,99,100,101,102,111,115,6445,6450,6457,6472,6477,6501,6505,6510,99,121,59,1,1046,99,117,116,101,59,1,377,4,2,97,121,6463,6469,114,111,110,59,1,381,59,1,1047,111,116,59,1,379,4,2,114,116,6483,6497,111,87,105,100,116,104,83,112,97,99,101,59,1,8203,97,59,1,918,114,59,1,8488,112,102,59,1,8484,99,114,59,3,55349,56501,4,16,97,98,99,101,102,103,108,109,110,111,112,114,115,116,117,119,6550,6561,6568,6612,6622,6634,6645,6672,6699,6854,6870,6923,6933,6963,6974,6983,99,117,116,101,5,225,1,59,6559,1,225,114,101,118,101,59,1,259,4,6,59,69,100,105,117,121,6582,6584,6588,6591,6600,6609,1,8766,59,3,8766,819,59,1,8767,114,99,5,226,1,59,6598,1,226,116,101,5,180,1,59,6607,1,180,59,1,1072,108,105,103,5,230,1,59,6620,1,230,4,2,59,114,6628,6630,1,8289,59,3,55349,56606,114,97,118,101,5,224,1,59,6643,1,224,4,2,101,112,6651,6667,4,2,102,112,6657,6663,115,121,109,59,1,8501,104,59,1,8501,104,97,59,1,945,4,2,97,112,6678,6692,4,2,99,108,6684,6688,114,59,1,257,103,59,1,10815,5,38,1,59,6697,1,38,4,2,100,103,6705,6737,4,5,59,97,100,115,118,6717,6719,6724,6727,6734,1,8743,110,100,59,1,10837,59,1,10844,108,111,112,101,59,1,10840,59,1,10842,4,7,59,101,108,109,114,115,122,6753,6755,6758,6762,6814,6835,6848,1,8736,59,1,10660,101,59,1,8736,115,100,4,2,59,97,6770,6772,1,8737,4,8,97,98,99,100,101,102,103,104,6790,6793,6796,6799,6802,6805,6808,6811,59,1,10664,59,1,10665,59,1,10666,59,1,10667,59,1,10668,59,1,10669,59,1,10670,59,1,10671,116,4,2,59,118,6821,6823,1,8735,98,4,2,59,100,6830,6832,1,8894,59,1,10653,4,2,112,116,6841,6845,104,59,1,8738,59,1,197,97,114,114,59,1,9084,4,2,103,112,6860,6865,111,110,59,1,261,102,59,3,55349,56658,4,7,59,69,97,101,105,111,112,6886,6888,6891,6897,6900,6904,6908,1,8776,59,1,10864,99,105,114,59,1,10863,59,1,8778,100,59,1,8779,115,59,1,39,114,111,120,4,2,59,101,6917,6919,1,8776,113,59,1,8778,105,110,103,5,229,1,59,6931,1,229,4,3,99,116,121,6941,6946,6949,114,59,3,55349,56502,59,1,42,109,112,4,2,59,101,6957,6959,1,8776,113,59,1,8781,105,108,100,101,5,227,1,59,6972,1,227,109,108,5,228,1,59,6981,1,228,4,2,99,105,6989,6997,111,110,105,110,116,59,1,8755,110,116,59,1,10769,4,16,78,97,98,99,100,101,102,105,107,108,110,111,112,114,115,117,7036,7041,7119,7135,7149,7155,7219,7224,7347,7354,7463,7489,7786,7793,7814,7866,111,116,59,1,10989,4,2,99,114,7047,7094,107,4,4,99,101,112,115,7058,7064,7073,7080,111,110,103,59,1,8780,112,115,105,108,111,110,59,1,1014,114,105,109,101,59,1,8245,105,109,4,2,59,101,7088,7090,1,8765,113,59,1,8909,4,2,118,119,7100,7105,101,101,59,1,8893,101,100,4,2,59,103,7113,7115,1,8965,101,59,1,8965,114,107,4,2,59,116,7127,7129,1,9141,98,114,107,59,1,9142,4,2,111,121,7141,7146,110,103,59,1,8780,59,1,1073,113,117,111,59,1,8222,4,5,99,109,112,114,116,7167,7181,7188,7193,7199,97,117,115,4,2,59,101,7176,7178,1,8757,59,1,8757,112,116,121,118,59,1,10672,115,105,59,1,1014,110,111,117,59,1,8492,4,3,97,104,119,7207,7210,7213,59,1,946,59,1,8502,101,101,110,59,1,8812,114,59,3,55349,56607,103,4,7,99,111,115,116,117,118,119,7241,7262,7288,7305,7328,7335,7340,4,3,97,105,117,7249,7253,7258,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,4,3,100,112,116,7270,7275,7281,111,116,59,1,10752,108,117,115,59,1,10753,105,109,101,115,59,1,10754,4,2,113,116,7294,7300,99,117,112,59,1,10758,97,114,59,1,9733,114,105,97,110,103,108,101,4,2,100,117,7318,7324,111,119,110,59,1,9661,112,59,1,9651,112,108,117,115,59,1,10756,101,101,59,1,8897,101,100,103,101,59,1,8896,97,114,111,119,59,1,10509,4,3,97,107,111,7362,7436,7458,4,2,99,110,7368,7432,107,4,3,108,115,116,7377,7386,7394,111,122,101,110,103,101,59,1,10731,113,117,97,114,101,59,1,9642,114,105,97,110,103,108,101,4,4,59,100,108,114,7411,7413,7419,7425,1,9652,111,119,110,59,1,9662,101,102,116,59,1,9666,105,103,104,116,59,1,9656,107,59,1,9251,4,2,49,51,7442,7454,4,2,50,52,7448,7451,59,1,9618,59,1,9617,52,59,1,9619,99,107,59,1,9608,4,2,101,111,7469,7485,4,2,59,113,7475,7478,3,61,8421,117,105,118,59,3,8801,8421,116,59,1,8976,4,4,112,116,119,120,7499,7504,7517,7523,102,59,3,55349,56659,4,2,59,116,7510,7512,1,8869,111,109,59,1,8869,116,105,101,59,1,8904,4,12,68,72,85,86,98,100,104,109,112,116,117,118,7549,7571,7597,7619,7655,7660,7682,7708,7715,7721,7728,7750,4,4,76,82,108,114,7559,7562,7565,7568,59,1,9559,59,1,9556,59,1,9558,59,1,9555,4,5,59,68,85,100,117,7583,7585,7588,7591,7594,1,9552,59,1,9574,59,1,9577,59,1,9572,59,1,9575,4,4,76,82,108,114,7607,7610,7613,7616,59,1,9565,59,1,9562,59,1,9564,59,1,9561,4,7,59,72,76,82,104,108,114,7635,7637,7640,7643,7646,7649,7652,1,9553,59,1,9580,59,1,9571,59,1,9568,59,1,9579,59,1,9570,59,1,9567,111,120,59,1,10697,4,4,76,82,108,114,7670,7673,7676,7679,59,1,9557,59,1,9554,59,1,9488,59,1,9484,4,5,59,68,85,100,117,7694,7696,7699,7702,7705,1,9472,59,1,9573,59,1,9576,59,1,9516,59,1,9524,105,110,117,115,59,1,8863,108,117,115,59,1,8862,105,109,101,115,59,1,8864,4,4,76,82,108,114,7738,7741,7744,7747,59,1,9563,59,1,9560,59,1,9496,59,1,9492,4,7,59,72,76,82,104,108,114,7766,7768,7771,7774,7777,7780,7783,1,9474,59,1,9578,59,1,9569,59,1,9566,59,1,9532,59,1,9508,59,1,9500,114,105,109,101,59,1,8245,4,2,101,118,7799,7804,118,101,59,1,728,98,97,114,5,166,1,59,7812,1,166,4,4,99,101,105,111,7824,7829,7834,7846,114,59,3,55349,56503,109,105,59,1,8271,109,4,2,59,101,7841,7843,1,8765,59,1,8909,108,4,3,59,98,104,7855,7857,7860,1,92,59,1,10693,115,117,98,59,1,10184,4,2,108,109,7872,7885,108,4,2,59,101,7879,7881,1,8226,116,59,1,8226,112,4,3,59,69,101,7894,7896,7899,1,8782,59,1,10926,4,2,59,113,7905,7907,1,8783,59,1,8783,4,15,97,99,100,101,102,104,105,108,111,114,115,116,117,119,121,7942,8021,8075,8080,8121,8126,8157,8279,8295,8430,8446,8485,8491,8707,8726,4,3,99,112,114,7950,7956,8007,117,116,101,59,1,263,4,6,59,97,98,99,100,115,7970,7972,7977,7984,7998,8003,1,8745,110,100,59,1,10820,114,99,117,112,59,1,10825,4,2,97,117,7990,7994,112,59,1,10827,112,59,1,10823,111,116,59,1,10816,59,3,8745,65024,4,2,101,111,8013,8017,116,59,1,8257,110,59,1,711,4,4,97,101,105,117,8031,8046,8056,8061,4,2,112,114,8037,8041,115,59,1,10829,111,110,59,1,269,100,105,108,5,231,1,59,8054,1,231,114,99,59,1,265,112,115,4,2,59,115,8069,8071,1,10828,109,59,1,10832,111,116,59,1,267,4,3,100,109,110,8088,8097,8104,105,108,5,184,1,59,8095,1,184,112,116,121,118,59,1,10674,116,5,162,2,59,101,8112,8114,1,162,114,100,111,116,59,1,183,114,59,3,55349,56608,4,3,99,101,105,8134,8138,8154,121,59,1,1095,99,107,4,2,59,109,8146,8148,1,10003,97,114,107,59,1,10003,59,1,967,114,4,7,59,69,99,101,102,109,115,8174,8176,8179,8258,8261,8268,8273,1,9675,59,1,10691,4,3,59,101,108,8187,8189,8193,1,710,113,59,1,8791,101,4,2,97,100,8200,8223,114,114,111,119,4,2,108,114,8210,8216,101,102,116,59,1,8634,105,103,104,116,59,1,8635,4,5,82,83,97,99,100,8235,8238,8241,8246,8252,59,1,174,59,1,9416,115,116,59,1,8859,105,114,99,59,1,8858,97,115,104,59,1,8861,59,1,8791,110,105,110,116,59,1,10768,105,100,59,1,10991,99,105,114,59,1,10690,117,98,115,4,2,59,117,8288,8290,1,9827,105,116,59,1,9827,4,4,108,109,110,112,8305,8326,8376,8400,111,110,4,2,59,101,8313,8315,1,58,4,2,59,113,8321,8323,1,8788,59,1,8788,4,2,109,112,8332,8344,97,4,2,59,116,8339,8341,1,44,59,1,64,4,3,59,102,108,8352,8354,8358,1,8705,110,59,1,8728,101,4,2,109,120,8365,8371,101,110,116,59,1,8705,101,115,59,1,8450,4,2,103,105,8382,8395,4,2,59,100,8388,8390,1,8773,111,116,59,1,10861,110,116,59,1,8750,4,3,102,114,121,8408,8412,8417,59,3,55349,56660,111,100,59,1,8720,5,169,2,59,115,8424,8426,1,169,114,59,1,8471,4,2,97,111,8436,8441,114,114,59,1,8629,115,115,59,1,10007,4,2,99,117,8452,8457,114,59,3,55349,56504,4,2,98,112,8463,8474,4,2,59,101,8469,8471,1,10959,59,1,10961,4,2,59,101,8480,8482,1,10960,59,1,10962,100,111,116,59,1,8943,4,7,100,101,108,112,114,118,119,8507,8522,8536,8550,8600,8697,8702,97,114,114,4,2,108,114,8516,8519,59,1,10552,59,1,10549,4,2,112,115,8528,8532,114,59,1,8926,99,59,1,8927,97,114,114,4,2,59,112,8545,8547,1,8630,59,1,10557,4,6,59,98,99,100,111,115,8564,8566,8573,8587,8592,8596,1,8746,114,99,97,112,59,1,10824,4,2,97,117,8579,8583,112,59,1,10822,112,59,1,10826,111,116,59,1,8845,114,59,1,10821,59,3,8746,65024,4,4,97,108,114,118,8610,8623,8663,8672,114,114,4,2,59,109,8618,8620,1,8631,59,1,10556,121,4,3,101,118,119,8632,8651,8656,113,4,2,112,115,8639,8645,114,101,99,59,1,8926,117,99,99,59,1,8927,101,101,59,1,8910,101,100,103,101,59,1,8911,101,110,5,164,1,59,8670,1,164,101,97,114,114,111,119,4,2,108,114,8684,8690,101,102,116,59,1,8630,105,103,104,116,59,1,8631,101,101,59,1,8910,101,100,59,1,8911,4,2,99,105,8713,8721,111,110,105,110,116,59,1,8754,110,116,59,1,8753,108,99,116,121,59,1,9005,4,19,65,72,97,98,99,100,101,102,104,105,106,108,111,114,115,116,117,119,122,8773,8778,8783,8821,8839,8854,8887,8914,8930,8944,9036,9041,9058,9197,9227,9258,9281,9297,9305,114,114,59,1,8659,97,114,59,1,10597,4,4,103,108,114,115,8793,8799,8805,8809,103,101,114,59,1,8224,101,116,104,59,1,8504,114,59,1,8595,104,4,2,59,118,8816,8818,1,8208,59,1,8867,4,2,107,108,8827,8834,97,114,111,119,59,1,10511,97,99,59,1,733,4,2,97,121,8845,8851,114,111,110,59,1,271,59,1,1076,4,3,59,97,111,8862,8864,8880,1,8518,4,2,103,114,8870,8876,103,101,114,59,1,8225,114,59,1,8650,116,115,101,113,59,1,10871,4,3,103,108,109,8895,8902,8907,5,176,1,59,8900,1,176,116,97,59,1,948,112,116,121,118,59,1,10673,4,2,105,114,8920,8926,115,104,116,59,1,10623,59,3,55349,56609,97,114,4,2,108,114,8938,8941,59,1,8643,59,1,8642,4,5,97,101,103,115,118,8956,8986,8989,8996,9001,109,4,3,59,111,115,8965,8967,8983,1,8900,110,100,4,2,59,115,8975,8977,1,8900,117,105,116,59,1,9830,59,1,9830,59,1,168,97,109,109,97,59,1,989,105,110,59,1,8946,4,3,59,105,111,9009,9011,9031,1,247,100,101,5,247,2,59,111,9020,9022,1,247,110,116,105,109,101,115,59,1,8903,110,120,59,1,8903,99,121,59,1,1106,99,4,2,111,114,9048,9053,114,110,59,1,8990,111,112,59,1,8973,4,5,108,112,116,117,119,9070,9076,9081,9130,9144,108,97,114,59,1,36,102,59,3,55349,56661,4,5,59,101,109,112,115,9093,9095,9109,9116,9122,1,729,113,4,2,59,100,9102,9104,1,8784,111,116,59,1,8785,105,110,117,115,59,1,8760,108,117,115,59,1,8724,113,117,97,114,101,59,1,8865,98,108,101,98,97,114,119,101,100,103,101,59,1,8966,110,4,3,97,100,104,9153,9160,9172,114,114,111,119,59,1,8595,111,119,110,97,114,114,111,119,115,59,1,8650,97,114,112,111,111,110,4,2,108,114,9184,9190,101,102,116,59,1,8643,105,103,104,116,59,1,8642,4,2,98,99,9203,9211,107,97,114,111,119,59,1,10512,4,2,111,114,9217,9222,114,110,59,1,8991,111,112,59,1,8972,4,3,99,111,116,9235,9248,9252,4,2,114,121,9241,9245,59,3,55349,56505,59,1,1109,108,59,1,10742,114,111,107,59,1,273,4,2,100,114,9264,9269,111,116,59,1,8945,105,4,2,59,102,9276,9278,1,9663,59,1,9662,4,2,97,104,9287,9292,114,114,59,1,8693,97,114,59,1,10607,97,110,103,108,101,59,1,10662,4,2,99,105,9311,9315,121,59,1,1119,103,114,97,114,114,59,1,10239,4,18,68,97,99,100,101,102,103,108,109,110,111,112,113,114,115,116,117,120,9361,9376,9398,9439,9444,9447,9462,9495,9531,9585,9598,9614,9659,9755,9771,9792,9808,9826,4,2,68,111,9367,9372,111,116,59,1,10871,116,59,1,8785,4,2,99,115,9382,9392,117,116,101,5,233,1,59,9390,1,233,116,101,114,59,1,10862,4,4,97,105,111,121,9408,9414,9430,9436,114,111,110,59,1,283,114,4,2,59,99,9421,9423,1,8790,5,234,1,59,9428,1,234,108,111,110,59,1,8789,59,1,1101,111,116,59,1,279,59,1,8519,4,2,68,114,9453,9458,111,116,59,1,8786,59,3,55349,56610,4,3,59,114,115,9470,9472,9482,1,10906,97,118,101,5,232,1,59,9480,1,232,4,2,59,100,9488,9490,1,10902,111,116,59,1,10904,4,4,59,105,108,115,9505,9507,9515,9518,1,10905,110,116,101,114,115,59,1,9191,59,1,8467,4,2,59,100,9524,9526,1,10901,111,116,59,1,10903,4,3,97,112,115,9539,9544,9564,99,114,59,1,275,116,121,4,3,59,115,118,9554,9556,9561,1,8709,101,116,59,1,8709,59,1,8709,112,4,2,49,59,9571,9583,4,2,51,52,9577,9580,59,1,8196,59,1,8197,1,8195,4,2,103,115,9591,9594,59,1,331,112,59,1,8194,4,2,103,112,9604,9609,111,110,59,1,281,102,59,3,55349,56662,4,3,97,108,115,9622,9635,9640,114,4,2,59,115,9629,9631,1,8917,108,59,1,10723,117,115,59,1,10865,105,4,3,59,108,118,9649,9651,9656,1,949,111,110,59,1,949,59,1,1013,4,4,99,115,117,118,9669,9686,9716,9747,4,2,105,111,9675,9680,114,99,59,1,8790,108,111,110,59,1,8789,4,2,105,108,9692,9696,109,59,1,8770,97,110,116,4,2,103,108,9705,9710,116,114,59,1,10902,101,115,115,59,1,10901,4,3,97,101,105,9724,9729,9734,108,115,59,1,61,115,116,59,1,8799,118,4,2,59,68,9741,9743,1,8801,68,59,1,10872,112,97,114,115,108,59,1,10725,4,2,68,97,9761,9766,111,116,59,1,8787,114,114,59,1,10609,4,3,99,100,105,9779,9783,9788,114,59,1,8495,111,116,59,1,8784,109,59,1,8770,4,2,97,104,9798,9801,59,1,951,5,240,1,59,9806,1,240,4,2,109,114,9814,9822,108,5,235,1,59,9820,1,235,111,59,1,8364,4,3,99,105,112,9834,9838,9843,108,59,1,33,115,116,59,1,8707,4,2,101,111,9849,9859,99,116,97,116,105,111,110,59,1,8496,110,101,110,116,105,97,108,101,59,1,8519,4,12,97,99,101,102,105,106,108,110,111,112,114,115,9896,9910,9914,9921,9954,9960,9967,9989,9994,10027,10036,10164,108,108,105,110,103,100,111,116,115,101,113,59,1,8786,121,59,1,1092,109,97,108,101,59,1,9792,4,3,105,108,114,9929,9935,9950,108,105,103,59,1,64259,4,2,105,108,9941,9945,103,59,1,64256,105,103,59,1,64260,59,3,55349,56611,108,105,103,59,1,64257,108,105,103,59,3,102,106,4,3,97,108,116,9975,9979,9984,116,59,1,9837,105,103,59,1,64258,110,115,59,1,9649,111,102,59,1,402,4,2,112,114,10000,10005,102,59,3,55349,56663,4,2,97,107,10011,10016,108,108,59,1,8704,4,2,59,118,10022,10024,1,8916,59,1,10969,97,114,116,105,110,116,59,1,10765,4,2,97,111,10042,10159,4,2,99,115,10048,10155,4,6,49,50,51,52,53,55,10062,10102,10114,10135,10139,10151,4,6,50,51,52,53,54,56,10076,10083,10086,10093,10096,10099,5,189,1,59,10081,1,189,59,1,8531,5,188,1,59,10091,1,188,59,1,8533,59,1,8537,59,1,8539,4,2,51,53,10108,10111,59,1,8532,59,1,8534,4,3,52,53,56,10122,10129,10132,5,190,1,59,10127,1,190,59,1,8535,59,1,8540,53,59,1,8536,4,2,54,56,10145,10148,59,1,8538,59,1,8541,56,59,1,8542,108,59,1,8260,119,110,59,1,8994,99,114,59,3,55349,56507,4,17,69,97,98,99,100,101,102,103,105,106,108,110,111,114,115,116,118,10206,10217,10247,10254,10268,10273,10358,10363,10374,10380,10385,10406,10458,10464,10470,10497,10610,4,2,59,108,10212,10214,1,8807,59,1,10892,4,3,99,109,112,10225,10231,10244,117,116,101,59,1,501,109,97,4,2,59,100,10239,10241,1,947,59,1,989,59,1,10886,114,101,118,101,59,1,287,4,2,105,121,10260,10265,114,99,59,1,285,59,1,1075,111,116,59,1,289,4,4,59,108,113,115,10283,10285,10288,10308,1,8805,59,1,8923,4,3,59,113,115,10296,10298,10301,1,8805,59,1,8807,108,97,110,116,59,1,10878,4,4,59,99,100,108,10318,10320,10324,10345,1,10878,99,59,1,10921,111,116,4,2,59,111,10332,10334,1,10880,4,2,59,108,10340,10342,1,10882,59,1,10884,4,2,59,101,10351,10354,3,8923,65024,115,59,1,10900,114,59,3,55349,56612,4,2,59,103,10369,10371,1,8811,59,1,8921,109,101,108,59,1,8503,99,121,59,1,1107,4,4,59,69,97,106,10395,10397,10400,10403,1,8823,59,1,10898,59,1,10917,59,1,10916,4,4,69,97,101,115,10416,10419,10434,10453,59,1,8809,112,4,2,59,112,10426,10428,1,10890,114,111,120,59,1,10890,4,2,59,113,10440,10442,1,10888,4,2,59,113,10448,10450,1,10888,59,1,8809,105,109,59,1,8935,112,102,59,3,55349,56664,97,118,101,59,1,96,4,2,99,105,10476,10480,114,59,1,8458,109,4,3,59,101,108,10489,10491,10494,1,8819,59,1,10894,59,1,10896,5,62,6,59,99,100,108,113,114,10512,10514,10527,10532,10538,10545,1,62,4,2,99,105,10520,10523,59,1,10919,114,59,1,10874,111,116,59,1,8919,80,97,114,59,1,10645,117,101,115,116,59,1,10876,4,5,97,100,101,108,115,10557,10574,10579,10599,10605,4,2,112,114,10563,10570,112,114,111,120,59,1,10886,114,59,1,10616,111,116,59,1,8919,113,4,2,108,113,10586,10592,101,115,115,59,1,8923,108,101,115,115,59,1,10892,101,115,115,59,1,8823,105,109,59,1,8819,4,2,101,110,10616,10626,114,116,110,101,113,113,59,3,8809,65024,69,59,3,8809,65024,4,10,65,97,98,99,101,102,107,111,115,121,10653,10658,10713,10718,10724,10760,10765,10786,10850,10875,114,114,59,1,8660,4,4,105,108,109,114,10668,10674,10678,10684,114,115,112,59,1,8202,102,59,1,189,105,108,116,59,1,8459,4,2,100,114,10690,10695,99,121,59,1,1098,4,3,59,99,119,10703,10705,10710,1,8596,105,114,59,1,10568,59,1,8621,97,114,59,1,8463,105,114,99,59,1,293,4,3,97,108,114,10732,10748,10754,114,116,115,4,2,59,117,10741,10743,1,9829,105,116,59,1,9829,108,105,112,59,1,8230,99,111,110,59,1,8889,114,59,3,55349,56613,115,4,2,101,119,10772,10779,97,114,111,119,59,1,10533,97,114,111,119,59,1,10534,4,5,97,109,111,112,114,10798,10803,10809,10839,10844,114,114,59,1,8703,116,104,116,59,1,8763,107,4,2,108,114,10816,10827,101,102,116,97,114,114,111,119,59,1,8617,105,103,104,116,97,114,114,111,119,59,1,8618,102,59,3,55349,56665,98,97,114,59,1,8213,4,3,99,108,116,10858,10863,10869,114,59,3,55349,56509,97,115,104,59,1,8463,114,111,107,59,1,295,4,2,98,112,10881,10887,117,108,108,59,1,8259,104,101,110,59,1,8208,4,15,97,99,101,102,103,105,106,109,110,111,112,113,115,116,117,10925,10936,10958,10977,10990,11001,11039,11045,11101,11192,11220,11226,11237,11285,11299,99,117,116,101,5,237,1,59,10934,1,237,4,3,59,105,121,10944,10946,10955,1,8291,114,99,5,238,1,59,10953,1,238,59,1,1080,4,2,99,120,10964,10968,121,59,1,1077,99,108,5,161,1,59,10975,1,161,4,2,102,114,10983,10986,59,1,8660,59,3,55349,56614,114,97,118,101,5,236,1,59,10999,1,236,4,4,59,105,110,111,11011,11013,11028,11034,1,8520,4,2,105,110,11019,11024,110,116,59,1,10764,116,59,1,8749,102,105,110,59,1,10716,116,97,59,1,8489,108,105,103,59,1,307,4,3,97,111,112,11053,11092,11096,4,3,99,103,116,11061,11065,11088,114,59,1,299,4,3,101,108,112,11073,11076,11082,59,1,8465,105,110,101,59,1,8464,97,114,116,59,1,8465,104,59,1,305,102,59,1,8887,101,100,59,1,437,4,5,59,99,102,111,116,11113,11115,11121,11136,11142,1,8712,97,114,101,59,1,8453,105,110,4,2,59,116,11129,11131,1,8734,105,101,59,1,10717,100,111,116,59,1,305,4,5,59,99,101,108,112,11154,11156,11161,11179,11186,1,8747,97,108,59,1,8890,4,2,103,114,11167,11173,101,114,115,59,1,8484,99,97,108,59,1,8890,97,114,104,107,59,1,10775,114,111,100,59,1,10812,4,4,99,103,112,116,11202,11206,11211,11216,121,59,1,1105,111,110,59,1,303,102,59,3,55349,56666,97,59,1,953,114,111,100,59,1,10812,117,101,115,116,5,191,1,59,11235,1,191,4,2,99,105,11243,11248,114,59,3,55349,56510,110,4,5,59,69,100,115,118,11261,11263,11266,11271,11282,1,8712,59,1,8953,111,116,59,1,8949,4,2,59,118,11277,11279,1,8948,59,1,8947,59,1,8712,4,2,59,105,11291,11293,1,8290,108,100,101,59,1,297,4,2,107,109,11305,11310,99,121,59,1,1110,108,5,239,1,59,11316,1,239,4,6,99,102,109,111,115,117,11332,11346,11351,11357,11363,11380,4,2,105,121,11338,11343,114,99,59,1,309,59,1,1081,114,59,3,55349,56615,97,116,104,59,1,567,112,102,59,3,55349,56667,4,2,99,101,11369,11374,114,59,3,55349,56511,114,99,121,59,1,1112,107,99,121,59,1,1108,4,8,97,99,102,103,104,106,111,115,11404,11418,11433,11438,11445,11450,11455,11461,112,112,97,4,2,59,118,11413,11415,1,954,59,1,1008,4,2,101,121,11424,11430,100,105,108,59,1,311,59,1,1082,114,59,3,55349,56616,114,101,101,110,59,1,312,99,121,59,1,1093,99,121,59,1,1116,112,102,59,3,55349,56668,99,114,59,3,55349,56512,4,23,65,66,69,72,97,98,99,100,101,102,103,104,106,108,109,110,111,112,114,115,116,117,118,11515,11538,11544,11555,11560,11721,11780,11818,11868,12136,12160,12171,12203,12208,12246,12275,12327,12509,12523,12569,12641,12732,12752,4,3,97,114,116,11523,11528,11532,114,114,59,1,8666,114,59,1,8656,97,105,108,59,1,10523,97,114,114,59,1,10510,4,2,59,103,11550,11552,1,8806,59,1,10891,97,114,59,1,10594,4,9,99,101,103,109,110,112,113,114,116,11580,11586,11594,11600,11606,11624,11627,11636,11694,117,116,101,59,1,314,109,112,116,121,118,59,1,10676,114,97,110,59,1,8466,98,100,97,59,1,955,103,4,3,59,100,108,11615,11617,11620,1,10216,59,1,10641,101,59,1,10216,59,1,10885,117,111,5,171,1,59,11634,1,171,114,4,8,59,98,102,104,108,112,115,116,11655,11657,11669,11673,11677,11681,11685,11690,1,8592,4,2,59,102,11663,11665,1,8676,115,59,1,10527,115,59,1,10525,107,59,1,8617,112,59,1,8619,108,59,1,10553,105,109,59,1,10611,108,59,1,8610,4,3,59,97,101,11702,11704,11709,1,10923,105,108,59,1,10521,4,2,59,115,11715,11717,1,10925,59,3,10925,65024,4,3,97,98,114,11729,11734,11739,114,114,59,1,10508,114,107,59,1,10098,4,2,97,107,11745,11758,99,4,2,101,107,11752,11755,59,1,123,59,1,91,4,2,101,115,11764,11767,59,1,10635,108,4,2,100,117,11774,11777,59,1,10639,59,1,10637,4,4,97,101,117,121,11790,11796,11811,11815,114,111,110,59,1,318,4,2,100,105,11802,11807,105,108,59,1,316,108,59,1,8968,98,59,1,123,59,1,1083,4,4,99,113,114,115,11828,11832,11845,11864,97,59,1,10550,117,111,4,2,59,114,11840,11842,1,8220,59,1,8222,4,2,100,117,11851,11857,104,97,114,59,1,10599,115,104,97,114,59,1,10571,104,59,1,8626,4,5,59,102,103,113,115,11880,11882,12008,12011,12031,1,8804,116,4,5,97,104,108,114,116,11895,11913,11935,11947,11996,114,114,111,119,4,2,59,116,11905,11907,1,8592,97,105,108,59,1,8610,97,114,112,111,111,110,4,2,100,117,11925,11931,111,119,110,59,1,8637,112,59,1,8636,101,102,116,97,114,114,111,119,115,59,1,8647,105,103,104,116,4,3,97,104,115,11959,11974,11984,114,114,111,119,4,2,59,115,11969,11971,1,8596,59,1,8646,97,114,112,111,111,110,115,59,1,8651,113,117,105,103,97,114,114,111,119,59,1,8621,104,114,101,101,116,105,109,101,115,59,1,8907,59,1,8922,4,3,59,113,115,12019,12021,12024,1,8804,59,1,8806,108,97,110,116,59,1,10877,4,5,59,99,100,103,115,12043,12045,12049,12070,12083,1,10877,99,59,1,10920,111,116,4,2,59,111,12057,12059,1,10879,4,2,59,114,12065,12067,1,10881,59,1,10883,4,2,59,101,12076,12079,3,8922,65024,115,59,1,10899,4,5,97,100,101,103,115,12095,12103,12108,12126,12131,112,112,114,111,120,59,1,10885,111,116,59,1,8918,113,4,2,103,113,12115,12120,116,114,59,1,8922,103,116,114,59,1,10891,116,114,59,1,8822,105,109,59,1,8818,4,3,105,108,114,12144,12150,12156,115,104,116,59,1,10620,111,111,114,59,1,8970,59,3,55349,56617,4,2,59,69,12166,12168,1,8822,59,1,10897,4,2,97,98,12177,12198,114,4,2,100,117,12184,12187,59,1,8637,4,2,59,108,12193,12195,1,8636,59,1,10602,108,107,59,1,9604,99,121,59,1,1113,4,5,59,97,99,104,116,12220,12222,12227,12235,12241,1,8810,114,114,59,1,8647,111,114,110,101,114,59,1,8990,97,114,100,59,1,10603,114,105,59,1,9722,4,2,105,111,12252,12258,100,111,116,59,1,320,117,115,116,4,2,59,97,12267,12269,1,9136,99,104,101,59,1,9136,4,4,69,97,101,115,12285,12288,12303,12322,59,1,8808,112,4,2,59,112,12295,12297,1,10889,114,111,120,59,1,10889,4,2,59,113,12309,12311,1,10887,4,2,59,113,12317,12319,1,10887,59,1,8808,105,109,59,1,8934,4,8,97,98,110,111,112,116,119,122,12345,12359,12364,12421,12446,12467,12474,12490,4,2,110,114,12351,12355,103,59,1,10220,114,59,1,8701,114,107,59,1,10214,103,4,3,108,109,114,12373,12401,12409,101,102,116,4,2,97,114,12382,12389,114,114,111,119,59,1,10229,105,103,104,116,97,114,114,111,119,59,1,10231,97,112,115,116,111,59,1,10236,105,103,104,116,97,114,114,111,119,59,1,10230,112,97,114,114,111,119,4,2,108,114,12433,12439,101,102,116,59,1,8619,105,103,104,116,59,1,8620,4,3,97,102,108,12454,12458,12462,114,59,1,10629,59,3,55349,56669,117,115,59,1,10797,105,109,101,115,59,1,10804,4,2,97,98,12480,12485,115,116,59,1,8727,97,114,59,1,95,4,3,59,101,102,12498,12500,12506,1,9674,110,103,101,59,1,9674,59,1,10731,97,114,4,2,59,108,12517,12519,1,40,116,59,1,10643,4,5,97,99,104,109,116,12535,12540,12548,12561,12564,114,114,59,1,8646,111,114,110,101,114,59,1,8991,97,114,4,2,59,100,12556,12558,1,8651,59,1,10605,59,1,8206,114,105,59,1,8895,4,6,97,99,104,105,113,116,12583,12589,12594,12597,12614,12635,113,117,111,59,1,8249,114,59,3,55349,56513,59,1,8624,109,4,3,59,101,103,12606,12608,12611,1,8818,59,1,10893,59,1,10895,4,2,98,117,12620,12623,59,1,91,111,4,2,59,114,12630,12632,1,8216,59,1,8218,114,111,107,59,1,322,5,60,8,59,99,100,104,105,108,113,114,12660,12662,12675,12680,12686,12692,12698,12705,1,60,4,2,99,105,12668,12671,59,1,10918,114,59,1,10873,111,116,59,1,8918,114,101,101,59,1,8907,109,101,115,59,1,8905,97,114,114,59,1,10614,117,101,115,116,59,1,10875,4,2,80,105,12711,12716,97,114,59,1,10646,4,3,59,101,102,12724,12726,12729,1,9667,59,1,8884,59,1,9666,114,4,2,100,117,12739,12746,115,104,97,114,59,1,10570,104,97,114,59,1,10598,4,2,101,110,12758,12768,114,116,110,101,113,113,59,3,8808,65024,69,59,3,8808,65024,4,14,68,97,99,100,101,102,104,105,108,110,111,112,115,117,12803,12809,12893,12908,12914,12928,12933,12937,13011,13025,13032,13049,13052,13069,68,111,116,59,1,8762,4,4,99,108,112,114,12819,12827,12849,12887,114,5,175,1,59,12825,1,175,4,2,101,116,12833,12836,59,1,9794,4,2,59,101,12842,12844,1,10016,115,101,59,1,10016,4,2,59,115,12855,12857,1,8614,116,111,4,4,59,100,108,117,12869,12871,12877,12883,1,8614,111,119,110,59,1,8615,101,102,116,59,1,8612,112,59,1,8613,107,101,114,59,1,9646,4,2,111,121,12899,12905,109,109,97,59,1,10793,59,1,1084,97,115,104,59,1,8212,97,115,117,114,101,100,97,110,103,108,101,59,1,8737,114,59,3,55349,56618,111,59,1,8487,4,3,99,100,110,12945,12954,12985,114,111,5,181,1,59,12952,1,181,4,4,59,97,99,100,12964,12966,12971,12976,1,8739,115,116,59,1,42,105,114,59,1,10992,111,116,5,183,1,59,12983,1,183,117,115,4,3,59,98,100,12995,12997,13000,1,8722,59,1,8863,4,2,59,117,13006,13008,1,8760,59,1,10794,4,2,99,100,13017,13021,112,59,1,10971,114,59,1,8230,112,108,117,115,59,1,8723,4,2,100,112,13038,13044,101,108,115,59,1,8871,102,59,3,55349,56670,59,1,8723,4,2,99,116,13058,13063,114,59,3,55349,56514,112,111,115,59,1,8766,4,3,59,108,109,13077,13079,13087,1,956,116,105,109,97,112,59,1,8888,97,112,59,1,8888,4,24,71,76,82,86,97,98,99,100,101,102,103,104,105,106,108,109,111,112,114,115,116,117,118,119,13142,13165,13217,13229,13247,13330,13359,13414,13420,13508,13513,13579,13602,13626,13631,13762,13767,13855,13936,13995,14214,14285,14312,14432,4,2,103,116,13148,13152,59,3,8921,824,4,2,59,118,13158,13161,3,8811,8402,59,3,8811,824,4,3,101,108,116,13173,13200,13204,102,116,4,2,97,114,13181,13188,114,114,111,119,59,1,8653,105,103,104,116,97,114,114,111,119,59,1,8654,59,3,8920,824,4,2,59,118,13210,13213,3,8810,8402,59,3,8810,824,105,103,104,116,97,114,114,111,119,59,1,8655,4,2,68,100,13235,13241,97,115,104,59,1,8879,97,115,104,59,1,8878,4,5,98,99,110,112,116,13259,13264,13270,13275,13308,108,97,59,1,8711,117,116,101,59,1,324,103,59,3,8736,8402,4,5,59,69,105,111,112,13287,13289,13293,13298,13302,1,8777,59,3,10864,824,100,59,3,8779,824,115,59,1,329,114,111,120,59,1,8777,117,114,4,2,59,97,13316,13318,1,9838,108,4,2,59,115,13325,13327,1,9838,59,1,8469,4,2,115,117,13336,13344,112,5,160,1,59,13342,1,160,109,112,4,2,59,101,13352,13355,3,8782,824,59,3,8783,824,4,5,97,101,111,117,121,13371,13385,13391,13407,13411,4,2,112,114,13377,13380,59,1,10819,111,110,59,1,328,100,105,108,59,1,326,110,103,4,2,59,100,13399,13401,1,8775,111,116,59,3,10861,824,112,59,1,10818,59,1,1085,97,115,104,59,1,8211,4,7,59,65,97,100,113,115,120,13436,13438,13443,13466,13472,13478,13494,1,8800,114,114,59,1,8663,114,4,2,104,114,13450,13454,107,59,1,10532,4,2,59,111,13460,13462,1,8599,119,59,1,8599,111,116,59,3,8784,824,117,105,118,59,1,8802,4,2,101,105,13484,13489,97,114,59,1,10536,109,59,3,8770,824,105,115,116,4,2,59,115,13503,13505,1,8708,59,1,8708,114,59,3,55349,56619,4,4,69,101,115,116,13523,13527,13563,13568,59,3,8807,824,4,3,59,113,115,13535,13537,13559,1,8817,4,3,59,113,115,13545,13547,13551,1,8817,59,3,8807,824,108,97,110,116,59,3,10878,824,59,3,10878,824,105,109,59,1,8821,4,2,59,114,13574,13576,1,8815,59,1,8815,4,3,65,97,112,13587,13592,13597,114,114,59,1,8654,114,114,59,1,8622,97,114,59,1,10994,4,3,59,115,118,13610,13612,13623,1,8715,4,2,59,100,13618,13620,1,8956,59,1,8954,59,1,8715,99,121,59,1,1114,4,7,65,69,97,100,101,115,116,13647,13652,13656,13661,13665,13737,13742,114,114,59,1,8653,59,3,8806,824,114,114,59,1,8602,114,59,1,8229,4,4,59,102,113,115,13675,13677,13703,13725,1,8816,116,4,2,97,114,13684,13691,114,114,111,119,59,1,8602,105,103,104,116,97,114,114,111,119,59,1,8622,4,3,59,113,115,13711,13713,13717,1,8816,59,3,8806,824,108,97,110,116,59,3,10877,824,4,2,59,115,13731,13734,3,10877,824,59,1,8814,105,109,59,1,8820,4,2,59,114,13748,13750,1,8814,105,4,2,59,101,13757,13759,1,8938,59,1,8940,105,100,59,1,8740,4,2,112,116,13773,13778,102,59,3,55349,56671,5,172,3,59,105,110,13787,13789,13829,1,172,110,4,4,59,69,100,118,13800,13802,13806,13812,1,8713,59,3,8953,824,111,116,59,3,8949,824,4,3,97,98,99,13820,13823,13826,59,1,8713,59,1,8951,59,1,8950,105,4,2,59,118,13836,13838,1,8716,4,3,97,98,99,13846,13849,13852,59,1,8716,59,1,8958,59,1,8957,4,3,97,111,114,13863,13892,13899,114,4,4,59,97,115,116,13874,13876,13883,13888,1,8742,108,108,101,108,59,1,8742,108,59,3,11005,8421,59,3,8706,824,108,105,110,116,59,1,10772,4,3,59,99,101,13907,13909,13914,1,8832,117,101,59,1,8928,4,2,59,99,13920,13923,3,10927,824,4,2,59,101,13929,13931,1,8832,113,59,3,10927,824,4,4,65,97,105,116,13946,13951,13971,13982,114,114,59,1,8655,114,114,4,3,59,99,119,13961,13963,13967,1,8603,59,3,10547,824,59,3,8605,824,103,104,116,97,114,114,111,119,59,1,8603,114,105,4,2,59,101,13990,13992,1,8939,59,1,8941,4,7,99,104,105,109,112,113,117,14011,14036,14060,14080,14085,14090,14106,4,4,59,99,101,114,14021,14023,14028,14032,1,8833,117,101,59,1,8929,59,3,10928,824,59,3,55349,56515,111,114,116,4,2,109,112,14045,14050,105,100,59,1,8740,97,114,97,108,108,101,108,59,1,8742,109,4,2,59,101,14067,14069,1,8769,4,2,59,113,14075,14077,1,8772,59,1,8772,105,100,59,1,8740,97,114,59,1,8742,115,117,4,2,98,112,14098,14102,101,59,1,8930,101,59,1,8931,4,3,98,99,112,14114,14157,14171,4,4,59,69,101,115,14124,14126,14130,14133,1,8836,59,3,10949,824,59,1,8840,101,116,4,2,59,101,14141,14144,3,8834,8402,113,4,2,59,113,14151,14153,1,8840,59,3,10949,824,99,4,2,59,101,14164,14166,1,8833,113,59,3,10928,824,4,4,59,69,101,115,14181,14183,14187,14190,1,8837,59,3,10950,824,59,1,8841,101,116,4,2,59,101,14198,14201,3,8835,8402,113,4,2,59,113,14208,14210,1,8841,59,3,10950,824,4,4,103,105,108,114,14224,14228,14238,14242,108,59,1,8825,108,100,101,5,241,1,59,14236,1,241,103,59,1,8824,105,97,110,103,108,101,4,2,108,114,14254,14269,101,102,116,4,2,59,101,14263,14265,1,8938,113,59,1,8940,105,103,104,116,4,2,59,101,14279,14281,1,8939,113,59,1,8941,4,2,59,109,14291,14293,1,957,4,3,59,101,115,14301,14303,14308,1,35,114,111,59,1,8470,112,59,1,8199,4,9,68,72,97,100,103,105,108,114,115,14332,14338,14344,14349,14355,14369,14376,14408,14426,97,115,104,59,1,8877,97,114,114,59,1,10500,112,59,3,8781,8402,97,115,104,59,1,8876,4,2,101,116,14361,14365,59,3,8805,8402,59,3,62,8402,110,102,105,110,59,1,10718,4,3,65,101,116,14384,14389,14393,114,114,59,1,10498,59,3,8804,8402,4,2,59,114,14399,14402,3,60,8402,105,101,59,3,8884,8402,4,2,65,116,14414,14419,114,114,59,1,10499,114,105,101,59,3,8885,8402,105,109,59,3,8764,8402,4,3,65,97,110,14440,14445,14468,114,114,59,1,8662,114,4,2,104,114,14452,14456,107,59,1,10531,4,2,59,111,14462,14464,1,8598,119,59,1,8598,101,97,114,59,1,10535,4,18,83,97,99,100,101,102,103,104,105,108,109,111,112,114,115,116,117,118,14512,14515,14535,14560,14597,14603,14618,14643,14657,14662,14701,14741,14747,14769,14851,14877,14907,14916,59,1,9416,4,2,99,115,14521,14531,117,116,101,5,243,1,59,14529,1,243,116,59,1,8859,4,2,105,121,14541,14557,114,4,2,59,99,14548,14550,1,8858,5,244,1,59,14555,1,244,59,1,1086,4,5,97,98,105,111,115,14572,14577,14583,14587,14591,115,104,59,1,8861,108,97,99,59,1,337,118,59,1,10808,116,59,1,8857,111,108,100,59,1,10684,108,105,103,59,1,339,4,2,99,114,14609,14614,105,114,59,1,10687,59,3,55349,56620,4,3,111,114,116,14626,14630,14640,110,59,1,731,97,118,101,5,242,1,59,14638,1,242,59,1,10689,4,2,98,109,14649,14654,97,114,59,1,10677,59,1,937,110,116,59,1,8750,4,4,97,99,105,116,14672,14677,14693,14698,114,114,59,1,8634,4,2,105,114,14683,14687,114,59,1,10686,111,115,115,59,1,10683,110,101,59,1,8254,59,1,10688,4,3,97,101,105,14709,14714,14719,99,114,59,1,333,103,97,59,1,969,4,3,99,100,110,14727,14733,14736,114,111,110,59,1,959,59,1,10678,117,115,59,1,8854,112,102,59,3,55349,56672,4,3,97,101,108,14755,14759,14764,114,59,1,10679,114,112,59,1,10681,117,115,59,1,8853,4,7,59,97,100,105,111,115,118,14785,14787,14792,14831,14837,14841,14848,1,8744,114,114,59,1,8635,4,4,59,101,102,109,14802,14804,14817,14824,1,10845,114,4,2,59,111,14811,14813,1,8500,102,59,1,8500,5,170,1,59,14822,1,170,5,186,1,59,14829,1,186,103,111,102,59,1,8886,114,59,1,10838,108,111,112,101,59,1,10839,59,1,10843,4,3,99,108,111,14859,14863,14873,114,59,1,8500,97,115,104,5,248,1,59,14871,1,248,108,59,1,8856,105,4,2,108,109,14884,14893,100,101,5,245,1,59,14891,1,245,101,115,4,2,59,97,14901,14903,1,8855,115,59,1,10806,109,108,5,246,1,59,14914,1,246,98,97,114,59,1,9021,4,12,97,99,101,102,104,105,108,109,111,114,115,117,14948,14992,14996,15033,15038,15068,15090,15189,15192,15222,15427,15441,114,4,4,59,97,115,116,14959,14961,14976,14989,1,8741,5,182,2,59,108,14968,14970,1,182,108,101,108,59,1,8741,4,2,105,108,14982,14986,109,59,1,10995,59,1,11005,59,1,8706,121,59,1,1087,114,4,5,99,105,109,112,116,15009,15014,15019,15024,15027,110,116,59,1,37,111,100,59,1,46,105,108,59,1,8240,59,1,8869,101,110,107,59,1,8241,114,59,3,55349,56621,4,3,105,109,111,15046,15057,15063,4,2,59,118,15052,15054,1,966,59,1,981,109,97,116,59,1,8499,110,101,59,1,9742,4,3,59,116,118,15076,15078,15087,1,960,99,104,102,111,114,107,59,1,8916,59,1,982,4,2,97,117,15096,15119,110,4,2,99,107,15103,15115,107,4,2,59,104,15110,15112,1,8463,59,1,8462,118,59,1,8463,115,4,9,59,97,98,99,100,101,109,115,116,15140,15142,15148,15151,15156,15168,15171,15179,15184,1,43,99,105,114,59,1,10787,59,1,8862,105,114,59,1,10786,4,2,111,117,15162,15165,59,1,8724,59,1,10789,59,1,10866,110,5,177,1,59,15177,1,177,105,109,59,1,10790,119,111,59,1,10791,59,1,177,4,3,105,112,117,15200,15208,15213,110,116,105,110,116,59,1,10773,102,59,3,55349,56673,110,100,5,163,1,59,15220,1,163,4,10,59,69,97,99,101,105,110,111,115,117,15244,15246,15249,15253,15258,15334,15347,15367,15416,15421,1,8826,59,1,10931,112,59,1,10935,117,101,59,1,8828,4,2,59,99,15264,15266,1,10927,4,6,59,97,99,101,110,115,15280,15282,15290,15299,15303,15329,1,8826,112,112,114,111,120,59,1,10935,117,114,108,121,101,113,59,1,8828,113,59,1,10927,4,3,97,101,115,15311,15319,15324,112,112,114,111,120,59,1,10937,113,113,59,1,10933,105,109,59,1,8936,105,109,59,1,8830,109,101,4,2,59,115,15342,15344,1,8242,59,1,8473,4,3,69,97,115,15355,15358,15362,59,1,10933,112,59,1,10937,105,109,59,1,8936,4,3,100,102,112,15375,15378,15404,59,1,8719,4,3,97,108,115,15386,15392,15398,108,97,114,59,1,9006,105,110,101,59,1,8978,117,114,102,59,1,8979,4,2,59,116,15410,15412,1,8733,111,59,1,8733,105,109,59,1,8830,114,101,108,59,1,8880,4,2,99,105,15433,15438,114,59,3,55349,56517,59,1,968,110,99,115,112,59,1,8200,4,6,102,105,111,112,115,117,15462,15467,15472,15478,15485,15491,114,59,3,55349,56622,110,116,59,1,10764,112,102,59,3,55349,56674,114,105,109,101,59,1,8279,99,114,59,3,55349,56518,4,3,97,101,111,15499,15520,15534,116,4,2,101,105,15506,15515,114,110,105,111,110,115,59,1,8461,110,116,59,1,10774,115,116,4,2,59,101,15528,15530,1,63,113,59,1,8799,116,5,34,1,59,15540,1,34,4,21,65,66,72,97,98,99,100,101,102,104,105,108,109,110,111,112,114,115,116,117,120,15586,15609,15615,15620,15796,15855,15893,15931,15977,16001,16039,16183,16204,16222,16228,16285,16312,16318,16363,16408,16416,4,3,97,114,116,15594,15599,15603,114,114,59,1,8667,114,59,1,8658,97,105,108,59,1,10524,97,114,114,59,1,10511,97,114,59,1,10596,4,7,99,100,101,110,113,114,116,15636,15651,15656,15664,15687,15696,15770,4,2,101,117,15642,15646,59,3,8765,817,116,101,59,1,341,105,99,59,1,8730,109,112,116,121,118,59,1,10675,103,4,4,59,100,101,108,15675,15677,15680,15683,1,10217,59,1,10642,59,1,10661,101,59,1,10217,117,111,5,187,1,59,15694,1,187,114,4,11,59,97,98,99,102,104,108,112,115,116,119,15721,15723,15727,15739,15742,15746,15750,15754,15758,15763,15767,1,8594,112,59,1,10613,4,2,59,102,15733,15735,1,8677,115,59,1,10528,59,1,10547,115,59,1,10526,107,59,1,8618,112,59,1,8620,108,59,1,10565,105,109,59,1,10612,108,59,1,8611,59,1,8605,4,2,97,105,15776,15781,105,108,59,1,10522,111,4,2,59,110,15788,15790,1,8758,97,108,115,59,1,8474,4,3,97,98,114,15804,15809,15814,114,114,59,1,10509,114,107,59,1,10099,4,2,97,107,15820,15833,99,4,2,101,107,15827,15830,59,1,125,59,1,93,4,2,101,115,15839,15842,59,1,10636,108,4,2,100,117,15849,15852,59,1,10638,59,1,10640,4,4,97,101,117,121,15865,15871,15886,15890,114,111,110,59,1,345,4,2,100,105,15877,15882,105,108,59,1,343,108,59,1,8969,98,59,1,125,59,1,1088,4,4,99,108,113,115,15903,15907,15914,15927,97,59,1,10551,100,104,97,114,59,1,10601,117,111,4,2,59,114,15922,15924,1,8221,59,1,8221,104,59,1,8627,4,3,97,99,103,15939,15966,15970,108,4,4,59,105,112,115,15950,15952,15957,15963,1,8476,110,101,59,1,8475,97,114,116,59,1,8476,59,1,8477,116,59,1,9645,5,174,1,59,15975,1,174,4,3,105,108,114,15985,15991,15997,115,104,116,59,1,10621,111,111,114,59,1,8971,59,3,55349,56623,4,2,97,111,16007,16028,114,4,2,100,117,16014,16017,59,1,8641,4,2,59,108,16023,16025,1,8640,59,1,10604,4,2,59,118,16034,16036,1,961,59,1,1009,4,3,103,110,115,16047,16167,16171,104,116,4,6,97,104,108,114,115,116,16063,16081,16103,16130,16143,16155,114,114,111,119,4,2,59,116,16073,16075,1,8594,97,105,108,59,1,8611,97,114,112,111,111,110,4,2,100,117,16093,16099,111,119,110,59,1,8641,112,59,1,8640,101,102,116,4,2,97,104,16112,16120,114,114,111,119,115,59,1,8644,97,114,112,111,111,110,115,59,1,8652,105,103,104,116,97,114,114,111,119,115,59,1,8649,113,117,105,103,97,114,114,111,119,59,1,8605,104,114,101,101,116,105,109,101,115,59,1,8908,103,59,1,730,105,110,103,100,111,116,115,101,113,59,1,8787,4,3,97,104,109,16191,16196,16201,114,114,59,1,8644,97,114,59,1,8652,59,1,8207,111,117,115,116,4,2,59,97,16214,16216,1,9137,99,104,101,59,1,9137,109,105,100,59,1,10990,4,4,97,98,112,116,16238,16252,16257,16278,4,2,110,114,16244,16248,103,59,1,10221,114,59,1,8702,114,107,59,1,10215,4,3,97,102,108,16265,16269,16273,114,59,1,10630,59,3,55349,56675,117,115,59,1,10798,105,109,101,115,59,1,10805,4,2,97,112,16291,16304,114,4,2,59,103,16298,16300,1,41,116,59,1,10644,111,108,105,110,116,59,1,10770,97,114,114,59,1,8649,4,4,97,99,104,113,16328,16334,16339,16342,113,117,111,59,1,8250,114,59,3,55349,56519,59,1,8625,4,2,98,117,16348,16351,59,1,93,111,4,2,59,114,16358,16360,1,8217,59,1,8217,4,3,104,105,114,16371,16377,16383,114,101,101,59,1,8908,109,101,115,59,1,8906,105,4,4,59,101,102,108,16394,16396,16399,16402,1,9657,59,1,8885,59,1,9656,116,114,105,59,1,10702,108,117,104,97,114,59,1,10600,59,1,8478,4,19,97,98,99,100,101,102,104,105,108,109,111,112,113,114,115,116,117,119,122,16459,16466,16472,16572,16590,16672,16687,16746,16844,16850,16924,16963,16988,17115,17121,17154,17206,17614,17656,99,117,116,101,59,1,347,113,117,111,59,1,8218,4,10,59,69,97,99,101,105,110,112,115,121,16494,16496,16499,16513,16518,16531,16536,16556,16564,16569,1,8827,59,1,10932,4,2,112,114,16505,16508,59,1,10936,111,110,59,1,353,117,101,59,1,8829,4,2,59,100,16524,16526,1,10928,105,108,59,1,351,114,99,59,1,349,4,3,69,97,115,16544,16547,16551,59,1,10934,112,59,1,10938,105,109,59,1,8937,111,108,105,110,116,59,1,10771,105,109,59,1,8831,59,1,1089,111,116,4,3,59,98,101,16582,16584,16587,1,8901,59,1,8865,59,1,10854,4,7,65,97,99,109,115,116,120,16606,16611,16634,16642,16646,16652,16668,114,114,59,1,8664,114,4,2,104,114,16618,16622,107,59,1,10533,4,2,59,111,16628,16630,1,8600,119,59,1,8600,116,5,167,1,59,16640,1,167,105,59,1,59,119,97,114,59,1,10537,109,4,2,105,110,16659,16665,110,117,115,59,1,8726,59,1,8726,116,59,1,10038,114,4,2,59,111,16679,16682,3,55349,56624,119,110,59,1,8994,4,4,97,99,111,121,16697,16702,16716,16739,114,112,59,1,9839,4,2,104,121,16708,16713,99,121,59,1,1097,59,1,1096,114,116,4,2,109,112,16724,16729,105,100,59,1,8739,97,114,97,108,108,101,108,59,1,8741,5,173,1,59,16744,1,173,4,2,103,109,16752,16770,109,97,4,3,59,102,118,16762,16764,16767,1,963,59,1,962,59,1,962,4,8,59,100,101,103,108,110,112,114,16788,16790,16795,16806,16817,16828,16832,16838,1,8764,111,116,59,1,10858,4,2,59,113,16801,16803,1,8771,59,1,8771,4,2,59,69,16812,16814,1,10910,59,1,10912,4,2,59,69,16823,16825,1,10909,59,1,10911,101,59,1,8774,108,117,115,59,1,10788,97,114,114,59,1,10610,97,114,114,59,1,8592,4,4,97,101,105,116,16860,16883,16891,16904,4,2,108,115,16866,16878,108,115,101,116,109,105,110,117,115,59,1,8726,104,112,59,1,10803,112,97,114,115,108,59,1,10724,4,2,100,108,16897,16900,59,1,8739,101,59,1,8995,4,2,59,101,16910,16912,1,10922,4,2,59,115,16918,16920,1,10924,59,3,10924,65024,4,3,102,108,112,16932,16938,16958,116,99,121,59,1,1100,4,2,59,98,16944,16946,1,47,4,2,59,97,16952,16954,1,10692,114,59,1,9023,102,59,3,55349,56676,97,4,2,100,114,16970,16985,101,115,4,2,59,117,16978,16980,1,9824,105,116,59,1,9824,59,1,8741,4,3,99,115,117,16996,17028,17089,4,2,97,117,17002,17015,112,4,2,59,115,17009,17011,1,8851,59,3,8851,65024,112,4,2,59,115,17022,17024,1,8852,59,3,8852,65024,117,4,2,98,112,17035,17062,4,3,59,101,115,17043,17045,17048,1,8847,59,1,8849,101,116,4,2,59,101,17056,17058,1,8847,113,59,1,8849,4,3,59,101,115,17070,17072,17075,1,8848,59,1,8850,101,116,4,2,59,101,17083,17085,1,8848,113,59,1,8850,4,3,59,97,102,17097,17099,17112,1,9633,114,4,2,101,102,17106,17109,59,1,9633,59,1,9642,59,1,9642,97,114,114,59,1,8594,4,4,99,101,109,116,17131,17136,17142,17148,114,59,3,55349,56520,116,109,110,59,1,8726,105,108,101,59,1,8995,97,114,102,59,1,8902,4,2,97,114,17160,17172,114,4,2,59,102,17167,17169,1,9734,59,1,9733,4,2,97,110,17178,17202,105,103,104,116,4,2,101,112,17188,17197,112,115,105,108,111,110,59,1,1013,104,105,59,1,981,115,59,1,175,4,5,98,99,109,110,112,17218,17351,17420,17423,17427,4,9,59,69,100,101,109,110,112,114,115,17238,17240,17243,17248,17261,17267,17279,17285,17291,1,8834,59,1,10949,111,116,59,1,10941,4,2,59,100,17254,17256,1,8838,111,116,59,1,10947,117,108,116,59,1,10945,4,2,69,101,17273,17276,59,1,10955,59,1,8842,108,117,115,59,1,10943,97,114,114,59,1,10617,4,3,101,105,117,17299,17335,17339,116,4,3,59,101,110,17308,17310,17322,1,8834,113,4,2,59,113,17317,17319,1,8838,59,1,10949,101,113,4,2,59,113,17330,17332,1,8842,59,1,10955,109,59,1,10951,4,2,98,112,17345,17348,59,1,10965,59,1,10963,99,4,6,59,97,99,101,110,115,17366,17368,17376,17385,17389,17415,1,8827,112,112,114,111,120,59,1,10936,117,114,108,121,101,113,59,1,8829,113,59,1,10928,4,3,97,101,115,17397,17405,17410,112,112,114,111,120,59,1,10938,113,113,59,1,10934,105,109,59,1,8937,105,109,59,1,8831,59,1,8721,103,59,1,9834,4,13,49,50,51,59,69,100,101,104,108,109,110,112,115,17455,17462,17469,17476,17478,17481,17496,17509,17524,17530,17536,17548,17554,5,185,1,59,17460,1,185,5,178,1,59,17467,1,178,5,179,1,59,17474,1,179,1,8835,59,1,10950,4,2,111,115,17487,17491,116,59,1,10942,117,98,59,1,10968,4,2,59,100,17502,17504,1,8839,111,116,59,1,10948,115,4,2,111,117,17516,17520,108,59,1,10185,98,59,1,10967,97,114,114,59,1,10619,117,108,116,59,1,10946,4,2,69,101,17542,17545,59,1,10956,59,1,8843,108,117,115,59,1,10944,4,3,101,105,117,17562,17598,17602,116,4,3,59,101,110,17571,17573,17585,1,8835,113,4,2,59,113,17580,17582,1,8839,59,1,10950,101,113,4,2,59,113,17593,17595,1,8843,59,1,10956,109,59,1,10952,4,2,98,112,17608,17611,59,1,10964,59,1,10966,4,3,65,97,110,17622,17627,17650,114,114,59,1,8665,114,4,2,104,114,17634,17638,107,59,1,10534,4,2,59,111,17644,17646,1,8601,119,59,1,8601,119,97,114,59,1,10538,108,105,103,5,223,1,59,17664,1,223,4,13,97,98,99,100,101,102,104,105,111,112,114,115,119,17694,17709,17714,17737,17742,17749,17754,17860,17905,17957,17964,18090,18122,4,2,114,117,17700,17706,103,101,116,59,1,8982,59,1,964,114,107,59,1,9140,4,3,97,101,121,17722,17728,17734,114,111,110,59,1,357,100,105,108,59,1,355,59,1,1090,111,116,59,1,8411,108,114,101,99,59,1,8981,114,59,3,55349,56625,4,4,101,105,107,111,17764,17805,17836,17851,4,2,114,116,17770,17786,101,4,2,52,102,17777,17780,59,1,8756,111,114,101,59,1,8756,97,4,3,59,115,118,17795,17797,17802,1,952,121,109,59,1,977,59,1,977,4,2,99,110,17811,17831,107,4,2,97,115,17818,17826,112,112,114,111,120,59,1,8776,105,109,59,1,8764,115,112,59,1,8201,4,2,97,115,17842,17846,112,59,1,8776,105,109,59,1,8764,114,110,5,254,1,59,17858,1,254,4,3,108,109,110,17868,17873,17901,100,101,59,1,732,101,115,5,215,3,59,98,100,17884,17886,17898,1,215,4,2,59,97,17892,17894,1,8864,114,59,1,10801,59,1,10800,116,59,1,8749,4,3,101,112,115,17913,17917,17953,97,59,1,10536,4,4,59,98,99,102,17927,17929,17934,17939,1,8868,111,116,59,1,9014,105,114,59,1,10993,4,2,59,111,17945,17948,3,55349,56677,114,107,59,1,10970,97,59,1,10537,114,105,109,101,59,1,8244,4,3,97,105,112,17972,17977,18082,100,101,59,1,8482,4,7,97,100,101,109,112,115,116,17993,18051,18056,18059,18066,18072,18076,110,103,108,101,4,5,59,100,108,113,114,18009,18011,18017,18032,18035,1,9653,111,119,110,59,1,9663,101,102,116,4,2,59,101,18026,18028,1,9667,113,59,1,8884,59,1,8796,105,103,104,116,4,2,59,101,18045,18047,1,9657,113,59,1,8885,111,116,59,1,9708,59,1,8796,105,110,117,115,59,1,10810,108,117,115,59,1,10809,98,59,1,10701,105,109,101,59,1,10811,101,122,105,117,109,59,1,9186,4,3,99,104,116,18098,18111,18116,4,2,114,121,18104,18108,59,3,55349,56521,59,1,1094,99,121,59,1,1115,114,111,107,59,1,359,4,2,105,111,18128,18133,120,116,59,1,8812,104,101,97,100,4,2,108,114,18143,18154,101,102,116,97,114,114,111,119,59,1,8606,105,103,104,116,97,114,114,111,119,59,1,8608,4,18,65,72,97,98,99,100,102,103,104,108,109,111,112,114,115,116,117,119,18204,18209,18214,18234,18250,18268,18292,18308,18319,18343,18379,18397,18413,18504,18547,18553,18584,18603,114,114,59,1,8657,97,114,59,1,10595,4,2,99,114,18220,18230,117,116,101,5,250,1,59,18228,1,250,114,59,1,8593,114,4,2,99,101,18241,18245,121,59,1,1118,118,101,59,1,365,4,2,105,121,18256,18265,114,99,5,251,1,59,18263,1,251,59,1,1091,4,3,97,98,104,18276,18281,18287,114,114,59,1,8645,108,97,99,59,1,369,97,114,59,1,10606,4,2,105,114,18298,18304,115,104,116,59,1,10622,59,3,55349,56626,114,97,118,101,5,249,1,59,18317,1,249,4,2,97,98,18325,18338,114,4,2,108,114,18332,18335,59,1,8639,59,1,8638,108,107,59,1,9600,4,2,99,116,18349,18374,4,2,111,114,18355,18369,114,110,4,2,59,101,18363,18365,1,8988,114,59,1,8988,111,112,59,1,8975,114,105,59,1,9720,4,2,97,108,18385,18390,99,114,59,1,363,5,168,1,59,18395,1,168,4,2,103,112,18403,18408,111,110,59,1,371,102,59,3,55349,56678,4,6,97,100,104,108,115,117,18427,18434,18445,18470,18475,18494,114,114,111,119,59,1,8593,111,119,110,97,114,114,111,119,59,1,8597,97,114,112,111,111,110,4,2,108,114,18457,18463,101,102,116,59,1,8639,105,103,104,116,59,1,8638,117,115,59,1,8846,105,4,3,59,104,108,18484,18486,18489,1,965,59,1,978,111,110,59,1,965,112,97,114,114,111,119,115,59,1,8648,4,3,99,105,116,18512,18537,18542,4,2,111,114,18518,18532,114,110,4,2,59,101,18526,18528,1,8989,114,59,1,8989,111,112,59,1,8974,110,103,59,1,367,114,105,59,1,9721,99,114,59,3,55349,56522,4,3,100,105,114,18561,18566,18572,111,116,59,1,8944,108,100,101,59,1,361,105,4,2,59,102,18579,18581,1,9653,59,1,9652,4,2,97,109,18590,18595,114,114,59,1,8648,108,5,252,1,59,18601,1,252,97,110,103,108,101,59,1,10663,4,15,65,66,68,97,99,100,101,102,108,110,111,112,114,115,122,18643,18648,18661,18667,18847,18851,18857,18904,18909,18915,18931,18937,18943,18949,18996,114,114,59,1,8661,97,114,4,2,59,118,18656,18658,1,10984,59,1,10985,97,115,104,59,1,8872,4,2,110,114,18673,18679,103,114,116,59,1,10652,4,7,101,107,110,112,114,115,116,18695,18704,18711,18720,18742,18754,18810,112,115,105,108,111,110,59,1,1013,97,112,112,97,59,1,1008,111,116,104,105,110,103,59,1,8709,4,3,104,105,114,18728,18732,18735,105,59,1,981,59,1,982,111,112,116,111,59,1,8733,4,2,59,104,18748,18750,1,8597,111,59,1,1009,4,2,105,117,18760,18766,103,109,97,59,1,962,4,2,98,112,18772,18791,115,101,116,110,101,113,4,2,59,113,18784,18787,3,8842,65024,59,3,10955,65024,115,101,116,110,101,113,4,2,59,113,18803,18806,3,8843,65024,59,3,10956,65024,4,2,104,114,18816,18822,101,116,97,59,1,977,105,97,110,103,108,101,4,2,108,114,18834,18840,101,102,116,59,1,8882,105,103,104,116,59,1,8883,121,59,1,1074,97,115,104,59,1,8866,4,3,101,108,114,18865,18884,18890,4,3,59,98,101,18873,18875,18880,1,8744,97,114,59,1,8891,113,59,1,8794,108,105,112,59,1,8942,4,2,98,116,18896,18901,97,114,59,1,124,59,1,124,114,59,3,55349,56627,116,114,105,59,1,8882,115,117,4,2,98,112,18923,18927,59,3,8834,8402,59,3,8835,8402,112,102,59,3,55349,56679,114,111,112,59,1,8733,116,114,105,59,1,8883,4,2,99,117,18955,18960,114,59,3,55349,56523,4,2,98,112,18966,18981,110,4,2,69,101,18973,18977,59,3,10955,65024,59,3,8842,65024,110,4,2,69,101,18988,18992,59,3,10956,65024,59,3,8843,65024,105,103,122,97,103,59,1,10650,4,7,99,101,102,111,112,114,115,19020,19026,19061,19066,19072,19075,19089,105,114,99,59,1,373,4,2,100,105,19032,19055,4,2,98,103,19038,19043,97,114,59,1,10847,101,4,2,59,113,19050,19052,1,8743,59,1,8793,101,114,112,59,1,8472,114,59,3,55349,56628,112,102,59,3,55349,56680,59,1,8472,4,2,59,101,19081,19083,1,8768,97,116,104,59,1,8768,99,114,59,3,55349,56524,4,14,99,100,102,104,105,108,109,110,111,114,115,117,118,119,19125,19146,19152,19157,19173,19176,19192,19197,19202,19236,19252,19269,19286,19291,4,3,97,105,117,19133,19137,19142,112,59,1,8898,114,99,59,1,9711,112,59,1,8899,116,114,105,59,1,9661,114,59,3,55349,56629,4,2,65,97,19163,19168,114,114,59,1,10234,114,114,59,1,10231,59,1,958,4,2,65,97,19182,19187,114,114,59,1,10232,114,114,59,1,10229,97,112,59,1,10236,105,115,59,1,8955,4,3,100,112,116,19210,19215,19230,111,116,59,1,10752,4,2,102,108,19221,19225,59,3,55349,56681,117,115,59,1,10753,105,109,101,59,1,10754,4,2,65,97,19242,19247,114,114,59,1,10233,114,114,59,1,10230,4,2,99,113,19258,19263,114,59,3,55349,56525,99,117,112,59,1,10758,4,2,112,116,19275,19281,108,117,115,59,1,10756,114,105,59,1,9651,101,101,59,1,8897,101,100,103,101,59,1,8896,4,8,97,99,101,102,105,111,115,117,19316,19335,19349,19357,19362,19367,19373,19379,99,4,2,117,121,19323,19332,116,101,5,253,1,59,19330,1,253,59,1,1103,4,2,105,121,19341,19346,114,99,59,1,375,59,1,1099,110,5,165,1,59,19355,1,165,114,59,3,55349,56630,99,121,59,1,1111,112,102,59,3,55349,56682,99,114,59,3,55349,56526,4,2,99,109,19385,19389,121,59,1,1102,108,5,255,1,59,19395,1,255,4,10,97,99,100,101,102,104,105,111,115,119,19419,19426,19441,19446,19462,19467,19472,19480,19486,19492,99,117,116,101,59,1,378,4,2,97,121,19432,19438,114,111,110,59,1,382,59,1,1079,111,116,59,1,380,4,2,101,116,19452,19458,116,114,102,59,1,8488,97,59,1,950,114,59,3,55349,56631,99,121,59,1,1078,103,114,97,114,114,59,1,8669,112,102,59,3,55349,56683,99,114,59,3,55349,56527,4,2,106,110,19498,19501,59,1,8205,106,59,1,8204]);","'use strict';\n\nconst unicode = require('../common/unicode');\nconst ERR = require('../common/error-codes');\n\n//Aliases\nconst $ = unicode.CODE_POINTS;\n\n//Const\nconst DEFAULT_BUFFER_WATERLINE = 1 << 16;\n\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nclass Preprocessor {\n constructor() {\n this.html = null;\n\n this.pos = -1;\n this.lastGapPos = -1;\n this.lastCharPos = -1;\n\n this.gapStack = [];\n\n this.skipNextNewLine = false;\n\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n }\n\n _err() {\n // NOTE: err reporting is noop by default. Enabled by mixin.\n }\n\n _addGap() {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n }\n\n _processSurrogate(cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.lastCharPos) {\n const nextCp = this.html.charCodeAt(this.pos + 1);\n\n if (unicode.isSurrogatePair(nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n\n //NOTE: add gap that should be avoided during retreat\n this._addGap();\n\n return unicode.getSurrogatePairCodePoint(cp, nextCp);\n }\n }\n\n //NOTE: we are at the end of a chunk, therefore we can't infer surrogate pair yet.\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n\n //NOTE: isolated surrogate\n this._err(ERR.surrogateInInputStream);\n\n return cp;\n }\n\n dropParsedChunk() {\n if (this.pos > this.bufferWaterline) {\n this.lastCharPos -= this.pos;\n this.html = this.html.substring(this.pos);\n this.pos = 0;\n this.lastGapPos = -1;\n this.gapStack = [];\n }\n }\n\n write(chunk, isLastChunk) {\n if (this.html) {\n this.html += chunk;\n } else {\n this.html = chunk;\n }\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n }\n\n insertHtmlAtCurrentPos(chunk) {\n this.html = this.html.substring(0, this.pos + 1) + chunk + this.html.substring(this.pos + 1, this.html.length);\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n }\n\n advance() {\n this.pos++;\n\n if (this.pos > this.lastCharPos) {\n this.endOfChunkHit = !this.lastChunkWritten;\n return $.EOF;\n }\n\n let cp = this.html.charCodeAt(this.pos);\n\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (this.skipNextNewLine && cp === $.LINE_FEED) {\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n\n this.skipNextNewLine = false;\n\n if (unicode.isSurrogate(cp)) {\n cp = this._processSurrogate(cp);\n }\n\n //OPTIMIZATION: first check if code point is in the common allowed\n //range (ASCII alphanumeric, whitespaces, big chunk of BMP)\n //before going into detailed performance cost validation.\n const isCommonValidRange =\n (cp > 0x1f && cp < 0x7f) || cp === $.LINE_FEED || cp === $.CARRIAGE_RETURN || (cp > 0x9f && cp < 0xfdd0);\n\n if (!isCommonValidRange) {\n this._checkForProblematicCharacters(cp);\n }\n\n return cp;\n }\n\n _checkForProblematicCharacters(cp) {\n if (unicode.isControlCodePoint(cp)) {\n this._err(ERR.controlCharacterInInputStream);\n } else if (unicode.isUndefinedCodePoint(cp)) {\n this._err(ERR.noncharacterInInputStream);\n }\n }\n\n retreat() {\n if (this.pos === this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n\n this.pos--;\n }\n}\n\nmodule.exports = Preprocessor;\n","'use strict';\n\nconst { DOCUMENT_MODE } = require('../common/html');\n\n//Node construction\nexports.createDocument = function() {\n return {\n nodeName: '#document',\n mode: DOCUMENT_MODE.NO_QUIRKS,\n childNodes: []\n };\n};\n\nexports.createDocumentFragment = function() {\n return {\n nodeName: '#document-fragment',\n childNodes: []\n };\n};\n\nexports.createElement = function(tagName, namespaceURI, attrs) {\n return {\n nodeName: tagName,\n tagName: tagName,\n attrs: attrs,\n namespaceURI: namespaceURI,\n childNodes: [],\n parentNode: null\n };\n};\n\nexports.createCommentNode = function(data) {\n return {\n nodeName: '#comment',\n data: data,\n parentNode: null\n };\n};\n\nconst createTextNode = function(value) {\n return {\n nodeName: '#text',\n value: value,\n parentNode: null\n };\n};\n\n//Tree mutation\nconst appendChild = (exports.appendChild = function(parentNode, newNode) {\n parentNode.childNodes.push(newNode);\n newNode.parentNode = parentNode;\n});\n\nconst insertBefore = (exports.insertBefore = function(parentNode, newNode, referenceNode) {\n const insertionIdx = parentNode.childNodes.indexOf(referenceNode);\n\n parentNode.childNodes.splice(insertionIdx, 0, newNode);\n newNode.parentNode = parentNode;\n});\n\nexports.setTemplateContent = function(templateElement, contentElement) {\n templateElement.content = contentElement;\n};\n\nexports.getTemplateContent = function(templateElement) {\n return templateElement.content;\n};\n\nexports.setDocumentType = function(document, name, publicId, systemId) {\n let doctypeNode = null;\n\n for (let i = 0; i < document.childNodes.length; i++) {\n if (document.childNodes[i].nodeName === '#documentType') {\n doctypeNode = document.childNodes[i];\n break;\n }\n }\n\n if (doctypeNode) {\n doctypeNode.name = name;\n doctypeNode.publicId = publicId;\n doctypeNode.systemId = systemId;\n } else {\n appendChild(document, {\n nodeName: '#documentType',\n name: name,\n publicId: publicId,\n systemId: systemId\n });\n }\n};\n\nexports.setDocumentMode = function(document, mode) {\n document.mode = mode;\n};\n\nexports.getDocumentMode = function(document) {\n return document.mode;\n};\n\nexports.detachNode = function(node) {\n if (node.parentNode) {\n const idx = node.parentNode.childNodes.indexOf(node);\n\n node.parentNode.childNodes.splice(idx, 1);\n node.parentNode = null;\n }\n};\n\nexports.insertText = function(parentNode, text) {\n if (parentNode.childNodes.length) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.length - 1];\n\n if (prevNode.nodeName === '#text') {\n prevNode.value += text;\n return;\n }\n }\n\n appendChild(parentNode, createTextNode(text));\n};\n\nexports.insertTextBefore = function(parentNode, text, referenceNode) {\n const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];\n\n if (prevNode && prevNode.nodeName === '#text') {\n prevNode.value += text;\n } else {\n insertBefore(parentNode, createTextNode(text), referenceNode);\n }\n};\n\nexports.adoptAttributes = function(recipient, attrs) {\n const recipientAttrsMap = [];\n\n for (let i = 0; i < recipient.attrs.length; i++) {\n recipientAttrsMap.push(recipient.attrs[i].name);\n }\n\n for (let j = 0; j < attrs.length; j++) {\n if (recipientAttrsMap.indexOf(attrs[j].name) === -1) {\n recipient.attrs.push(attrs[j]);\n }\n }\n};\n\n//Tree traversing\nexports.getFirstChild = function(node) {\n return node.childNodes[0];\n};\n\nexports.getChildNodes = function(node) {\n return node.childNodes;\n};\n\nexports.getParentNode = function(node) {\n return node.parentNode;\n};\n\nexports.getAttrList = function(element) {\n return element.attrs;\n};\n\n//Node data\nexports.getTagName = function(element) {\n return element.tagName;\n};\n\nexports.getNamespaceURI = function(element) {\n return element.namespaceURI;\n};\n\nexports.getTextNodeContent = function(textNode) {\n return textNode.value;\n};\n\nexports.getCommentNodeContent = function(commentNode) {\n return commentNode.data;\n};\n\nexports.getDocumentTypeNodeName = function(doctypeNode) {\n return doctypeNode.name;\n};\n\nexports.getDocumentTypeNodePublicId = function(doctypeNode) {\n return doctypeNode.publicId;\n};\n\nexports.getDocumentTypeNodeSystemId = function(doctypeNode) {\n return doctypeNode.systemId;\n};\n\n//Node types\nexports.isTextNode = function(node) {\n return node.nodeName === '#text';\n};\n\nexports.isCommentNode = function(node) {\n return node.nodeName === '#comment';\n};\n\nexports.isDocumentTypeNode = function(node) {\n return node.nodeName === '#documentType';\n};\n\nexports.isElementNode = function(node) {\n return !!node.tagName;\n};\n\n// Source code location\nexports.setNodeSourceCodeLocation = function(node, location) {\n node.sourceCodeLocation = location;\n};\n\nexports.getNodeSourceCodeLocation = function(node) {\n return node.sourceCodeLocation;\n};\n\nexports.updateNodeSourceCodeLocation = function(node, endLocation) {\n node.sourceCodeLocation = Object.assign(node.sourceCodeLocation, endLocation);\n};\n","'use strict';\n\nmodule.exports = function mergeOptions(defaults, options) {\n options = options || Object.create(null);\n\n return [defaults, options].reduce((merged, optObj) => {\n Object.keys(optObj).forEach(key => {\n merged[key] = optObj[key];\n });\n\n return merged;\n }, Object.create(null));\n};\n","'use strict';\n\nclass Mixin {\n constructor(host) {\n const originalMethods = {};\n const overriddenMethods = this._getOverriddenMethods(this, originalMethods);\n\n for (const key of Object.keys(overriddenMethods)) {\n if (typeof overriddenMethods[key] === 'function') {\n originalMethods[key] = host[key];\n host[key] = overriddenMethods[key];\n }\n }\n }\n\n _getOverriddenMethods() {\n throw new Error('Not implemented');\n }\n}\n\nMixin.install = function(host, Ctor, opts) {\n if (!host.__mixins) {\n host.__mixins = [];\n }\n\n for (let i = 0; i < host.__mixins.length; i++) {\n if (host.__mixins[i].constructor === Ctor) {\n return host.__mixins[i];\n }\n }\n\n const mixin = new Ctor(host, opts);\n\n host.__mixins.push(mixin);\n\n return mixin;\n};\n\nmodule.exports = Mixin;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * 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 * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction fh(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction gh(a,b,c,d){var e=a.updateQueue;$g=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:$g=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(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&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(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=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){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 di(){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(p(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 ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(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){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores: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}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(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 zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(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=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=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}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(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 il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'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","/** @license React v17.0.2\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'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\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","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.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","'use strict'\n\n/* global window, self */\n\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\nvar ctx =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {}\n\nvar restore = capture()\n\nctx.Prism = {manual: true, disableWorkerMessageHandler: true}\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prisms originals.\nvar h = require('hastscript')\nvar decode = require('parse-entities')\nvar Prism = require('prismjs/components/prism-core')\nvar markup = require('./lang/markup')\nvar css = require('./lang/css')\nvar clike = require('./lang/clike')\nvar js = require('./lang/javascript')\n\nrestore()\n\nvar own = {}.hasOwnProperty\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n// Construct.\nvar refract = new Refractor()\n\n// Expose.\nmodule.exports = refract\n\n// Create.\nrefract.highlight = highlight\nrefract.register = register\nrefract.alias = alias\nrefract.registered = registered\nrefract.listLanguages = listLanguages\n\n// Register bundled grammars.\nregister(markup)\nregister(css)\nregister(clike)\nregister(js)\n\nrefract.util.encode = encode\nrefract.Token.stringify = stringify\n\nfunction register(grammar) {\n if (typeof grammar !== 'function' || !grammar.displayName) {\n throw new Error('Expected `function` for `grammar`, got `' + grammar + '`')\n }\n\n // Do not duplicate registrations.\n if (refract.languages[grammar.displayName] === undefined) {\n grammar(refract)\n }\n}\n\nfunction alias(name, alias) {\n var languages = refract.languages\n var map = name\n var key\n var list\n var length\n var index\n\n if (alias) {\n map = {}\n map[name] = alias\n }\n\n for (key in map) {\n list = map[key]\n list = typeof list === 'string' ? [list] : list\n length = list.length\n index = -1\n\n while (++index < length) {\n languages[list[index]] = languages[key]\n }\n }\n}\n\nfunction highlight(value, name) {\n var sup = Prism.highlight\n var grammar\n\n if (typeof value !== 'string') {\n throw new Error('Expected `string` for `value`, got `' + value + '`')\n }\n\n // `name` is a grammar object.\n if (refract.util.type(name) === 'Object') {\n grammar = name\n name = null\n } else {\n if (typeof name !== 'string') {\n throw new Error('Expected `string` for `name`, got `' + name + '`')\n }\n\n if (own.call(refract.languages, name)) {\n grammar = refract.languages[name]\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered')\n }\n }\n\n return sup.call(this, value, grammar, name)\n}\n\nfunction registered(language) {\n if (typeof language !== 'string') {\n throw new Error('Expected `string` for `language`, got `' + language + '`')\n }\n\n return own.call(refract.languages, language)\n}\n\nfunction listLanguages() {\n var languages = refract.languages\n var list = []\n var language\n\n for (language in languages) {\n if (\n own.call(languages, language) &&\n typeof languages[language] === 'object'\n ) {\n list.push(language)\n }\n }\n\n return list\n}\n\nfunction stringify(value, language, parent) {\n var env\n\n if (typeof value === 'string') {\n return {type: 'text', value: value}\n }\n\n if (refract.util.type(value) === 'Array') {\n return stringifyAll(value, language)\n }\n\n env = {\n type: value.type,\n content: refract.Token.stringify(value.content, language, parent),\n tag: 'span',\n classes: ['token', value.type],\n attributes: {},\n language: language,\n parent: parent\n }\n\n if (value.alias) {\n env.classes = env.classes.concat(value.alias)\n }\n\n refract.hooks.run('wrap', env)\n\n return h(\n env.tag + '.' + env.classes.join('.'),\n attributes(env.attributes),\n env.content\n )\n}\n\nfunction stringifyAll(values, language) {\n var result = []\n var length = values.length\n var index = -1\n var value\n\n while (++index < length) {\n value = values[index]\n\n if (value !== '' && value !== null && value !== undefined) {\n result.push(value)\n }\n }\n\n index = -1\n length = result.length\n\n while (++index < length) {\n value = result[index]\n result[index] = refract.Token.stringify(value, language, result)\n }\n\n return result\n}\n\nfunction encode(tokens) {\n return tokens\n}\n\nfunction attributes(attrs) {\n var key\n\n for (key in attrs) {\n attrs[key] = decode(attrs[key])\n }\n\n return attrs\n}\n\nfunction capture() {\n var defined = 'Prism' in ctx\n /* istanbul ignore next */\n var current = defined ? ctx.Prism : undefined\n\n return restore\n\n function restore() {\n /* istanbul ignore else - Clean leaks after Prism. */\n if (defined) {\n ctx.Prism = current\n } else {\n delete ctx.Prism\n }\n\n defined = undefined\n current = undefined\n }\n}\n","'use strict'\n\nvar refractor = require('./core.js')\n\nmodule.exports = refractor\n\nrefractor.register(require('./lang/abap.js'))\nrefractor.register(require('./lang/abnf.js'))\nrefractor.register(require('./lang/actionscript.js'))\nrefractor.register(require('./lang/ada.js'))\nrefractor.register(require('./lang/agda.js'))\nrefractor.register(require('./lang/al.js'))\nrefractor.register(require('./lang/antlr4.js'))\nrefractor.register(require('./lang/apacheconf.js'))\nrefractor.register(require('./lang/apex.js'))\nrefractor.register(require('./lang/apl.js'))\nrefractor.register(require('./lang/applescript.js'))\nrefractor.register(require('./lang/aql.js'))\nrefractor.register(require('./lang/arduino.js'))\nrefractor.register(require('./lang/arff.js'))\nrefractor.register(require('./lang/asciidoc.js'))\nrefractor.register(require('./lang/asm6502.js'))\nrefractor.register(require('./lang/asmatmel.js'))\nrefractor.register(require('./lang/aspnet.js'))\nrefractor.register(require('./lang/autohotkey.js'))\nrefractor.register(require('./lang/autoit.js'))\nrefractor.register(require('./lang/avisynth.js'))\nrefractor.register(require('./lang/avro-idl.js'))\nrefractor.register(require('./lang/bash.js'))\nrefractor.register(require('./lang/basic.js'))\nrefractor.register(require('./lang/batch.js'))\nrefractor.register(require('./lang/bbcode.js'))\nrefractor.register(require('./lang/bicep.js'))\nrefractor.register(require('./lang/birb.js'))\nrefractor.register(require('./lang/bison.js'))\nrefractor.register(require('./lang/bnf.js'))\nrefractor.register(require('./lang/brainfuck.js'))\nrefractor.register(require('./lang/brightscript.js'))\nrefractor.register(require('./lang/bro.js'))\nrefractor.register(require('./lang/bsl.js'))\nrefractor.register(require('./lang/c.js'))\nrefractor.register(require('./lang/cfscript.js'))\nrefractor.register(require('./lang/chaiscript.js'))\nrefractor.register(require('./lang/cil.js'))\nrefractor.register(require('./lang/clojure.js'))\nrefractor.register(require('./lang/cmake.js'))\nrefractor.register(require('./lang/cobol.js'))\nrefractor.register(require('./lang/coffeescript.js'))\nrefractor.register(require('./lang/concurnas.js'))\nrefractor.register(require('./lang/coq.js'))\nrefractor.register(require('./lang/cpp.js'))\nrefractor.register(require('./lang/crystal.js'))\nrefractor.register(require('./lang/csharp.js'))\nrefractor.register(require('./lang/cshtml.js'))\nrefractor.register(require('./lang/csp.js'))\nrefractor.register(require('./lang/css-extras.js'))\nrefractor.register(require('./lang/csv.js'))\nrefractor.register(require('./lang/cypher.js'))\nrefractor.register(require('./lang/d.js'))\nrefractor.register(require('./lang/dart.js'))\nrefractor.register(require('./lang/dataweave.js'))\nrefractor.register(require('./lang/dax.js'))\nrefractor.register(require('./lang/dhall.js'))\nrefractor.register(require('./lang/diff.js'))\nrefractor.register(require('./lang/django.js'))\nrefractor.register(require('./lang/dns-zone-file.js'))\nrefractor.register(require('./lang/docker.js'))\nrefractor.register(require('./lang/dot.js'))\nrefractor.register(require('./lang/ebnf.js'))\nrefractor.register(require('./lang/editorconfig.js'))\nrefractor.register(require('./lang/eiffel.js'))\nrefractor.register(require('./lang/ejs.js'))\nrefractor.register(require('./lang/elixir.js'))\nrefractor.register(require('./lang/elm.js'))\nrefractor.register(require('./lang/erb.js'))\nrefractor.register(require('./lang/erlang.js'))\nrefractor.register(require('./lang/etlua.js'))\nrefractor.register(require('./lang/excel-formula.js'))\nrefractor.register(require('./lang/factor.js'))\nrefractor.register(require('./lang/false.js'))\nrefractor.register(require('./lang/firestore-security-rules.js'))\nrefractor.register(require('./lang/flow.js'))\nrefractor.register(require('./lang/fortran.js'))\nrefractor.register(require('./lang/fsharp.js'))\nrefractor.register(require('./lang/ftl.js'))\nrefractor.register(require('./lang/gap.js'))\nrefractor.register(require('./lang/gcode.js'))\nrefractor.register(require('./lang/gdscript.js'))\nrefractor.register(require('./lang/gedcom.js'))\nrefractor.register(require('./lang/gherkin.js'))\nrefractor.register(require('./lang/git.js'))\nrefractor.register(require('./lang/glsl.js'))\nrefractor.register(require('./lang/gml.js'))\nrefractor.register(require('./lang/gn.js'))\nrefractor.register(require('./lang/go-module.js'))\nrefractor.register(require('./lang/go.js'))\nrefractor.register(require('./lang/graphql.js'))\nrefractor.register(require('./lang/groovy.js'))\nrefractor.register(require('./lang/haml.js'))\nrefractor.register(require('./lang/handlebars.js'))\nrefractor.register(require('./lang/haskell.js'))\nrefractor.register(require('./lang/haxe.js'))\nrefractor.register(require('./lang/hcl.js'))\nrefractor.register(require('./lang/hlsl.js'))\nrefractor.register(require('./lang/hoon.js'))\nrefractor.register(require('./lang/hpkp.js'))\nrefractor.register(require('./lang/hsts.js'))\nrefractor.register(require('./lang/http.js'))\nrefractor.register(require('./lang/ichigojam.js'))\nrefractor.register(require('./lang/icon.js'))\nrefractor.register(require('./lang/icu-message-format.js'))\nrefractor.register(require('./lang/idris.js'))\nrefractor.register(require('./lang/iecst.js'))\nrefractor.register(require('./lang/ignore.js'))\nrefractor.register(require('./lang/inform7.js'))\nrefractor.register(require('./lang/ini.js'))\nrefractor.register(require('./lang/io.js'))\nrefractor.register(require('./lang/j.js'))\nrefractor.register(require('./lang/java.js'))\nrefractor.register(require('./lang/javadoc.js'))\nrefractor.register(require('./lang/javadoclike.js'))\nrefractor.register(require('./lang/javastacktrace.js'))\nrefractor.register(require('./lang/jexl.js'))\nrefractor.register(require('./lang/jolie.js'))\nrefractor.register(require('./lang/jq.js'))\nrefractor.register(require('./lang/js-extras.js'))\nrefractor.register(require('./lang/js-templates.js'))\nrefractor.register(require('./lang/jsdoc.js'))\nrefractor.register(require('./lang/json.js'))\nrefractor.register(require('./lang/json5.js'))\nrefractor.register(require('./lang/jsonp.js'))\nrefractor.register(require('./lang/jsstacktrace.js'))\nrefractor.register(require('./lang/jsx.js'))\nrefractor.register(require('./lang/julia.js'))\nrefractor.register(require('./lang/keepalived.js'))\nrefractor.register(require('./lang/keyman.js'))\nrefractor.register(require('./lang/kotlin.js'))\nrefractor.register(require('./lang/kumir.js'))\nrefractor.register(require('./lang/kusto.js'))\nrefractor.register(require('./lang/latex.js'))\nrefractor.register(require('./lang/latte.js'))\nrefractor.register(require('./lang/less.js'))\nrefractor.register(require('./lang/lilypond.js'))\nrefractor.register(require('./lang/liquid.js'))\nrefractor.register(require('./lang/lisp.js'))\nrefractor.register(require('./lang/livescript.js'))\nrefractor.register(require('./lang/llvm.js'))\nrefractor.register(require('./lang/log.js'))\nrefractor.register(require('./lang/lolcode.js'))\nrefractor.register(require('./lang/lua.js'))\nrefractor.register(require('./lang/magma.js'))\nrefractor.register(require('./lang/makefile.js'))\nrefractor.register(require('./lang/markdown.js'))\nrefractor.register(require('./lang/markup-templating.js'))\nrefractor.register(require('./lang/matlab.js'))\nrefractor.register(require('./lang/maxscript.js'))\nrefractor.register(require('./lang/mel.js'))\nrefractor.register(require('./lang/mermaid.js'))\nrefractor.register(require('./lang/mizar.js'))\nrefractor.register(require('./lang/mongodb.js'))\nrefractor.register(require('./lang/monkey.js'))\nrefractor.register(require('./lang/moonscript.js'))\nrefractor.register(require('./lang/n1ql.js'))\nrefractor.register(require('./lang/n4js.js'))\nrefractor.register(require('./lang/nand2tetris-hdl.js'))\nrefractor.register(require('./lang/naniscript.js'))\nrefractor.register(require('./lang/nasm.js'))\nrefractor.register(require('./lang/neon.js'))\nrefractor.register(require('./lang/nevod.js'))\nrefractor.register(require('./lang/nginx.js'))\nrefractor.register(require('./lang/nim.js'))\nrefractor.register(require('./lang/nix.js'))\nrefractor.register(require('./lang/nsis.js'))\nrefractor.register(require('./lang/objectivec.js'))\nrefractor.register(require('./lang/ocaml.js'))\nrefractor.register(require('./lang/opencl.js'))\nrefractor.register(require('./lang/openqasm.js'))\nrefractor.register(require('./lang/oz.js'))\nrefractor.register(require('./lang/parigp.js'))\nrefractor.register(require('./lang/parser.js'))\nrefractor.register(require('./lang/pascal.js'))\nrefractor.register(require('./lang/pascaligo.js'))\nrefractor.register(require('./lang/pcaxis.js'))\nrefractor.register(require('./lang/peoplecode.js'))\nrefractor.register(require('./lang/perl.js'))\nrefractor.register(require('./lang/php-extras.js'))\nrefractor.register(require('./lang/php.js'))\nrefractor.register(require('./lang/phpdoc.js'))\nrefractor.register(require('./lang/plsql.js'))\nrefractor.register(require('./lang/powerquery.js'))\nrefractor.register(require('./lang/powershell.js'))\nrefractor.register(require('./lang/processing.js'))\nrefractor.register(require('./lang/prolog.js'))\nrefractor.register(require('./lang/promql.js'))\nrefractor.register(require('./lang/properties.js'))\nrefractor.register(require('./lang/protobuf.js'))\nrefractor.register(require('./lang/psl.js'))\nrefractor.register(require('./lang/pug.js'))\nrefractor.register(require('./lang/puppet.js'))\nrefractor.register(require('./lang/pure.js'))\nrefractor.register(require('./lang/purebasic.js'))\nrefractor.register(require('./lang/purescript.js'))\nrefractor.register(require('./lang/python.js'))\nrefractor.register(require('./lang/q.js'))\nrefractor.register(require('./lang/qml.js'))\nrefractor.register(require('./lang/qore.js'))\nrefractor.register(require('./lang/qsharp.js'))\nrefractor.register(require('./lang/r.js'))\nrefractor.register(require('./lang/racket.js'))\nrefractor.register(require('./lang/reason.js'))\nrefractor.register(require('./lang/regex.js'))\nrefractor.register(require('./lang/rego.js'))\nrefractor.register(require('./lang/renpy.js'))\nrefractor.register(require('./lang/rest.js'))\nrefractor.register(require('./lang/rip.js'))\nrefractor.register(require('./lang/roboconf.js'))\nrefractor.register(require('./lang/robotframework.js'))\nrefractor.register(require('./lang/ruby.js'))\nrefractor.register(require('./lang/rust.js'))\nrefractor.register(require('./lang/sas.js'))\nrefractor.register(require('./lang/sass.js'))\nrefractor.register(require('./lang/scala.js'))\nrefractor.register(require('./lang/scheme.js'))\nrefractor.register(require('./lang/scss.js'))\nrefractor.register(require('./lang/shell-session.js'))\nrefractor.register(require('./lang/smali.js'))\nrefractor.register(require('./lang/smalltalk.js'))\nrefractor.register(require('./lang/smarty.js'))\nrefractor.register(require('./lang/sml.js'))\nrefractor.register(require('./lang/solidity.js'))\nrefractor.register(require('./lang/solution-file.js'))\nrefractor.register(require('./lang/soy.js'))\nrefractor.register(require('./lang/sparql.js'))\nrefractor.register(require('./lang/splunk-spl.js'))\nrefractor.register(require('./lang/sqf.js'))\nrefractor.register(require('./lang/sql.js'))\nrefractor.register(require('./lang/squirrel.js'))\nrefractor.register(require('./lang/stan.js'))\nrefractor.register(require('./lang/stylus.js'))\nrefractor.register(require('./lang/swift.js'))\nrefractor.register(require('./lang/systemd.js'))\nrefractor.register(require('./lang/t4-cs.js'))\nrefractor.register(require('./lang/t4-templating.js'))\nrefractor.register(require('./lang/t4-vb.js'))\nrefractor.register(require('./lang/tap.js'))\nrefractor.register(require('./lang/tcl.js'))\nrefractor.register(require('./lang/textile.js'))\nrefractor.register(require('./lang/toml.js'))\nrefractor.register(require('./lang/tremor.js'))\nrefractor.register(require('./lang/tsx.js'))\nrefractor.register(require('./lang/tt2.js'))\nrefractor.register(require('./lang/turtle.js'))\nrefractor.register(require('./lang/twig.js'))\nrefractor.register(require('./lang/typescript.js'))\nrefractor.register(require('./lang/typoscript.js'))\nrefractor.register(require('./lang/unrealscript.js'))\nrefractor.register(require('./lang/uorazor.js'))\nrefractor.register(require('./lang/uri.js'))\nrefractor.register(require('./lang/v.js'))\nrefractor.register(require('./lang/vala.js'))\nrefractor.register(require('./lang/vbnet.js'))\nrefractor.register(require('./lang/velocity.js'))\nrefractor.register(require('./lang/verilog.js'))\nrefractor.register(require('./lang/vhdl.js'))\nrefractor.register(require('./lang/vim.js'))\nrefractor.register(require('./lang/visual-basic.js'))\nrefractor.register(require('./lang/warpscript.js'))\nrefractor.register(require('./lang/wasm.js'))\nrefractor.register(require('./lang/web-idl.js'))\nrefractor.register(require('./lang/wiki.js'))\nrefractor.register(require('./lang/wolfram.js'))\nrefractor.register(require('./lang/wren.js'))\nrefractor.register(require('./lang/xeora.js'))\nrefractor.register(require('./lang/xml-doc.js'))\nrefractor.register(require('./lang/xojo.js'))\nrefractor.register(require('./lang/xquery.js'))\nrefractor.register(require('./lang/yaml.js'))\nrefractor.register(require('./lang/yang.js'))\nrefractor.register(require('./lang/zig.js'))\n","'use strict'\n\nmodule.exports = abap\nabap.displayName = 'abap'\nabap.aliases = []\nfunction abap(Prism) {\n Prism.languages.abap = {\n comment: /^\\*.*/m,\n string: /(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n 'string-template': {\n pattern: /([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,\n lookbehind: true,\n alias: 'string'\n },\n /* End Of Line comments should not interfere with strings when the\nquote character occurs within them. We assume a string being highlighted\ninside an EOL comment is more acceptable than the opposite.\n*/\n 'eol-comment': {\n pattern: /(^|\\s)\".*/m,\n lookbehind: true,\n alias: 'comment'\n },\n keyword: {\n pattern:\n /(\\s|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/i,\n lookbehind: true\n },\n /* Numbers can be only integers. Decimal or Hex appear only as strings */\n number: /\\b\\d+\\b/,\n /* Operators must always be surrounded by whitespace, they cannot be put\nadjacent to operands.\n*/\n operator: {\n pattern: /(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,\n lookbehind: true\n },\n 'string-operator': {\n pattern: /(\\s)&&?(?=\\s)/,\n lookbehind: true,\n /* The official editor highlights */\n alias: 'keyword'\n },\n 'token-operator': [\n {\n /* Special operators used to access structure components, class methods/attributes, etc. */\n pattern: /(\\w)(?:->?|=>|[~|{}])(?=\\w)/,\n lookbehind: true,\n alias: 'punctuation'\n },\n {\n /* Special tokens used do delimit string templates */\n pattern: /[|{}]/,\n alias: 'punctuation'\n }\n ],\n punctuation: /[,.:()]/\n }\n}\n","'use strict'\n\nmodule.exports = abnf\nabnf.displayName = 'abnf'\nabnf.aliases = []\nfunction abnf(Prism) {\n ;(function (Prism) {\n var coreRules =\n '(?:ALPHA|BIT|CHAR|CR|CRLF|CTL|DIGIT|DQUOTE|HEXDIG|HTAB|LF|LWSP|OCTET|SP|VCHAR|WSP)'\n Prism.languages.abnf = {\n comment: /;.*/,\n string: {\n pattern: /(?:%[is])?\"[^\"\\n\\r]*\"/,\n greedy: true,\n inside: {\n punctuation: /^%[is]/\n }\n },\n range: {\n pattern: /%(?:b[01]+-[01]+|d\\d+-\\d+|x[A-F\\d]+-[A-F\\d]+)/i,\n alias: 'number'\n },\n terminal: {\n pattern:\n /%(?:b[01]+(?:\\.[01]+)*|d\\d+(?:\\.\\d+)*|x[A-F\\d]+(?:\\.[A-F\\d]+)*)/i,\n alias: 'number'\n },\n repetition: {\n pattern: /(^|[^\\w-])(?:\\d*\\*\\d*|\\d+)/,\n lookbehind: true,\n alias: 'operator'\n },\n definition: {\n pattern: /(^[ \\t]*)(?:[a-z][\\w-]*|<[^<>\\r\\n]*>)(?=\\s*=)/m,\n lookbehind: true,\n alias: 'keyword',\n inside: {\n punctuation: /<|>/\n }\n },\n 'core-rule': {\n pattern: RegExp(\n '(?:(^|[^<\\\\w-])' + coreRules + '|<' + coreRules + '>)(?![\\\\w-])',\n 'i'\n ),\n lookbehind: true,\n alias: ['rule', 'constant'],\n inside: {\n punctuation: /<|>/\n }\n },\n rule: {\n pattern: /(^|[^<\\w-])[a-z][\\w-]*|<[^<>\\r\\n]*>/i,\n lookbehind: true,\n inside: {\n punctuation: /<|>/\n }\n },\n operator: /=\\/?|\\//,\n punctuation: /[()\\[\\]]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = actionscript\nactionscript.displayName = 'actionscript'\nactionscript.aliases = []\nfunction actionscript(Prism) {\n Prism.languages.actionscript = Prism.languages.extend('javascript', {\n keyword:\n /\\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\\b/,\n operator: /\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/\n })\n Prism.languages.actionscript['class-name'].alias = 'function' // doesn't work with AS because AS is too complex\n delete Prism.languages.actionscript['parameter']\n delete Prism.languages.actionscript['literal-property']\n if (Prism.languages.markup) {\n Prism.languages.insertBefore('actionscript', 'string', {\n xml: {\n pattern:\n /(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,\n lookbehind: true,\n inside: Prism.languages.markup\n }\n })\n }\n}\n","'use strict'\n\nmodule.exports = ada\nada.displayName = 'ada'\nada.aliases = []\nfunction ada(Prism) {\n Prism.languages.ada = {\n comment: /--.*/,\n string: /\"(?:\"\"|[^\"\\r\\f\\n])*\"/,\n number: [\n {\n pattern:\n /\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i\n },\n {\n pattern: /\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i\n }\n ],\n 'attr-name': /\\b'\\w+/,\n keyword:\n /\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|new|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|return|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n operator: /<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,\n punctuation: /\\.\\.?|[,;():]/,\n char: /'.'/,\n variable: /\\b[a-z](?:\\w)*\\b/i\n }\n}\n","'use strict'\n\nmodule.exports = agda\nagda.displayName = 'agda'\nagda.aliases = []\nfunction agda(Prism) {\n ;(function (Prism) {\n Prism.languages.agda = {\n comment: /\\{-[\\s\\S]*?(?:-\\}|$)|--.*/,\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n punctuation: /[(){}⦃⦄.;@]/,\n 'class-name': {\n pattern: /((?:data|record) +)\\S+/,\n lookbehind: true\n },\n function: {\n pattern: /(^[ \\t]*)(?!\\s)[^:\\r\\n]+(?=:)/m,\n lookbehind: true\n },\n operator: {\n pattern: /(^\\s*|\\s)(?:[=|:∀→λ\\\\?_]|->)(?=\\s)/,\n lookbehind: true\n },\n keyword:\n /\\b(?:Set|abstract|constructor|data|eta-equality|field|forall|hiding|import|in|inductive|infix|infixl|infixr|instance|let|macro|module|mutual|no-eta-equality|open|overlap|pattern|postulate|primitive|private|public|quote|quoteContext|quoteGoal|quoteTerm|record|renaming|rewrite|syntax|tactic|unquote|unquoteDecl|unquoteDef|using|variable|where|with)\\b/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = al\nal.displayName = 'al'\nal.aliases = []\nfunction al(Prism) {\n // based on https://github.com/microsoft/AL/blob/master/grammar/alsyntax.tmlanguage\n Prism.languages.al = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n function: {\n pattern:\n /(\\b(?:event|procedure|trigger)\\s+|(?:^|[^.])\\.\\s*)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true\n },\n keyword: [\n // keywords\n /\\b(?:array|asserterror|begin|break|case|do|downto|else|end|event|exit|for|foreach|function|if|implements|in|indataset|interface|internal|local|of|procedure|program|protected|repeat|runonclient|securityfiltering|suppressdispose|temporary|then|to|trigger|until|var|while|with|withevents)\\b/i, // objects and metadata that are used like keywords\n /\\b(?:action|actions|addafter|addbefore|addfirst|addlast|area|assembly|chartpart|codeunit|column|controladdin|cuegroup|customizes|dataitem|dataset|dotnet|elements|enum|enumextension|extends|field|fieldattribute|fieldelement|fieldgroup|fieldgroups|fields|filter|fixed|grid|group|key|keys|label|labels|layout|modify|moveafter|movebefore|movefirst|movelast|page|pagecustomization|pageextension|part|profile|query|repeater|report|requestpage|schema|separator|systempart|table|tableelement|tableextension|textattribute|textelement|type|usercontrol|value|xmlport)\\b/i\n ],\n number:\n /\\b(?:0x[\\da-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)(?:F|LL?|U(?:LL?)?)?\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n variable: /\\b(?:Curr(?:FieldNo|Page|Report)|x?Rec|RequestOptionsPage)\\b/,\n 'class-name':\n /\\b(?:automation|biginteger|bigtext|blob|boolean|byte|char|clienttype|code|completiontriggererrorlevel|connectiontype|database|dataclassification|datascope|date|dateformula|datetime|decimal|defaultlayout|dialog|dictionary|dotnetassembly|dotnettypedeclaration|duration|errorinfo|errortype|executioncontext|executionmode|fieldclass|fieldref|fieldtype|file|filterpagebuilder|guid|httpclient|httpcontent|httpheaders|httprequestmessage|httpresponsemessage|instream|integer|joker|jsonarray|jsonobject|jsontoken|jsonvalue|keyref|list|moduledependencyinfo|moduleinfo|none|notification|notificationscope|objecttype|option|outstream|pageresult|record|recordid|recordref|reportformat|securityfilter|sessionsettings|tableconnectiontype|tablefilter|testaction|testfield|testfilterfield|testpage|testpermissions|testrequestpage|text|textbuilder|textconst|textencoding|time|transactionmodel|transactiontype|variant|verbosity|version|view|views|webserviceactioncontext|webserviceactionresultcode|xmlattribute|xmlattributecollection|xmlcdata|xmlcomment|xmldeclaration|xmldocument|xmldocumenttype|xmlelement|xmlnamespacemanager|xmlnametable|xmlnode|xmlnodelist|xmlprocessinginstruction|xmlreadoptions|xmltext|xmlwriteoptions)\\b/i,\n operator: /\\.\\.|:[=:]|[-+*/]=?|<>|[<>]=?|=|\\b(?:and|div|mod|not|or|xor)\\b/i,\n punctuation: /[()\\[\\]{}:.;,]/\n }\n}\n","'use strict'\n\nmodule.exports = antlr4\nantlr4.displayName = 'antlr4'\nantlr4.aliases = ['g4']\nfunction antlr4(Prism) {\n Prism.languages.antlr4 = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n string: {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])*'/,\n greedy: true\n },\n 'character-class': {\n pattern: /\\[(?:\\\\.|[^\\\\\\]\\r\\n])*\\]/,\n greedy: true,\n alias: 'regex',\n inside: {\n range: {\n pattern: /([^[]|(?:^|[^\\\\])(?:\\\\\\\\)*\\\\\\[)-(?!\\])/,\n lookbehind: true,\n alias: 'punctuation'\n },\n escape:\n /\\\\(?:u(?:[a-fA-F\\d]{4}|\\{[a-fA-F\\d]+\\})|[pP]\\{[=\\w-]+\\}|[^\\r\\nupP])/,\n punctuation: /[\\[\\]]/\n }\n },\n action: {\n pattern: /\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\}/,\n greedy: true,\n inside: {\n content: {\n // this might be C, C++, Python, Java, C#, or any other language ANTLR4 compiles to\n pattern: /(\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true\n },\n punctuation: /[{}]/\n }\n },\n command: {\n pattern:\n /(->\\s*(?!\\s))(?:\\s*(?:,\\s*)?\\b[a-z]\\w*(?:\\s*\\([^()\\r\\n]*\\))?)+(?=\\s*;)/i,\n lookbehind: true,\n inside: {\n function: /\\b\\w+(?=\\s*(?:[,(]|$))/,\n punctuation: /[,()]/\n }\n },\n annotation: {\n pattern: /@\\w+(?:::\\w+)*/,\n alias: 'keyword'\n },\n label: {\n pattern: /#[ \\t]*\\w+/,\n alias: 'punctuation'\n },\n keyword:\n /\\b(?:catch|channels|finally|fragment|grammar|import|lexer|locals|mode|options|parser|returns|throws|tokens)\\b/,\n definition: [\n {\n pattern: /\\b[a-z]\\w*(?=\\s*:)/,\n alias: ['rule', 'class-name']\n },\n {\n pattern: /\\b[A-Z]\\w*(?=\\s*:)/,\n alias: ['token', 'constant']\n }\n ],\n constant: /\\b[A-Z][A-Z_]*\\b/,\n operator: /\\.\\.|->|[|~]|[*+?]\\??/,\n punctuation: /[;:()=]/\n }\n Prism.languages.g4 = Prism.languages.antlr4\n}\n","'use strict'\n\nmodule.exports = apacheconf\napacheconf.displayName = 'apacheconf'\napacheconf.aliases = []\nfunction apacheconf(Prism) {\n Prism.languages.apacheconf = {\n comment: /#.*/,\n 'directive-inline': {\n pattern:\n /(^[\\t ]*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|Add(?:Alt|AltByEncoding|AltByType|Charset|DefaultCharset|Description|Encoding|Handler|Icon|IconByEncoding|IconByType|InputFilter|Language|ModuleInfo|OutputFilter|OutputFilterByType|Type)|Alias|AliasMatch|Allow(?:CONNECT|EncodedSlashes|Methods|Override|OverrideList)?|Anonymous(?:_LogEmail|_MustGiveEmail|_NoUserID|_VerifyEmail)?|AsyncRequestWorkerFactor|Auth(?:BasicAuthoritative|BasicFake|BasicProvider|BasicUseDigestAlgorithm|DBDUserPWQuery|DBDUserRealmQuery|DBMGroupFile|DBMType|DBMUserFile|Digest(?:Algorithm|Domain|NonceLifetime|Provider|Qop|ShmemSize)|Form(?:Authoritative|Body|DisableNoStore|FakeBasicAuth|Location|LoginRequiredLocation|LoginSuccessLocation|LogoutLocation|Method|Mimetype|Password|Provider|SitePassphrase|Size|Username)|GroupFile|LDAP(?:AuthorizePrefix|BindAuthoritative|BindDN|BindPassword|CharsetConfig|CompareAsUser|CompareDNOnServer|DereferenceAliases|GroupAttribute|GroupAttributeIsDN|InitialBindAsUser|InitialBindPattern|MaxSubGroupDepth|RemoteUserAttribute|RemoteUserIsDN|SearchAsUser|SubGroupAttribute|SubGroupClass|Url)|Merging|Name|nCache(?:Context|Enable|ProvideFor|SOCache|Timeout)|nzFcgiCheckAuthnProvider|nzFcgiDefineProvider|Type|UserFile|zDBDLoginToReferer|zDBDQuery|zDBDRedirectQuery|zDBMType|zSendForbiddenOnFailure)|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|Cache(?:DefaultExpire|DetailHeader|DirLength|DirLevels|Disable|Enable|File|Header|IgnoreCacheControl|IgnoreHeaders|IgnoreNoLastMod|IgnoreQueryString|IgnoreURLSessionIdentifiers|KeyBaseURL|LastModifiedFactor|Lock|LockMaxAge|LockPath|MaxExpire|MaxFileSize|MinExpire|MinFileSize|NegotiatedDocs|QuickHandler|ReadSize|ReadTime|Root|Socache(?:MaxSize|MaxTime|MinTime|ReadSize|ReadTime)?|StaleOnError|StoreExpired|StoreNoStore|StorePrivate)|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|Deflate(?:BufferSize|CompressionLevel|FilterNote|InflateLimitRequestBody|InflateRatio(?:Burst|Limit)|MemLevel|WindowSize)|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|Heartbeat(?:Address|Listen|MaxServers|Storage)|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|Index(?:HeadInsert|Ignore|IgnoreReset|Options|OrderDefault|StyleSheet)|InputSed|ISAPI(?:AppendLogToErrors|AppendLogToQuery|CacheFile|FakeAsync|LogNotSupported|ReadAheadBuffer)|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAP(?:CacheEntries|CacheTTL|ConnectionPoolTTL|ConnectionTimeout|LibraryDebug|OpCacheEntries|OpCacheTTL|ReferralHopLimit|Referrals|Retries|RetryDelay|SharedCacheFile|SharedCacheSize|Timeout|TrustedClientCert|TrustedGlobalCert|TrustedMode|VerifyServerCert)|Limit(?:InternalRecursion|Request(?:Body|Fields|FieldSize|Line)|XMLRequestBody)|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|Lua(?:Hook(?:AccessChecker|AuthChecker|CheckUserID|Fixups|InsertFilter|Log|MapToStorage|TranslateName|TypeChecker)|Inherit|InputFilter|MapHandler|OutputFilter|PackageCPath|PackagePath|QuickHandler|Root|Scope)|Max(?:ConnectionsPerChild|KeepAliveRequests|MemFree|RangeOverlaps|RangeReversals|Ranges|RequestWorkers|SpareServers|SpareThreads|Threads)|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|Proxy(?:AddHeaders|BadHeader|Block|Domain|ErrorOverride|ExpressDBMFile|ExpressDBMType|ExpressEnable|FtpDirCharset|FtpEscapeWildcards|FtpListOnWildcard|HTML(?:BufSize|CharsetOut|DocType|Enable|Events|Extended|Fixups|Interp|Links|Meta|StripComments|URLMap)|IOBufferSize|MaxForwards|Pass(?:Inherit|InterpolateEnv|Match|Reverse|ReverseCookieDomain|ReverseCookiePath)?|PreserveHost|ReceiveBufferSize|Remote|RemoteMatch|Requests|SCGIInternalRedirect|SCGISendfile|Set|SourceAddress|Status|Timeout|Via)|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIP(?:Header|InternalProxy|InternalProxyList|ProxiesHeader|TrustedProxy|TrustedProxyList)|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|Rewrite(?:Base|Cond|Engine|Map|Options|Rule)|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script(?:Alias|AliasMatch|InterpreterSource|Log|LogBuffer|LogLength|Sock)?|SecureListen|SeeRequestTail|SendBufferSize|Server(?:Admin|Alias|Limit|Name|Path|Root|Signature|Tokens)|Session(?:Cookie(?:Name|Name2|Remove)|Crypto(?:Cipher|Driver|Passphrase|PassphraseFile)|DBD(?:CookieName|CookieName2|CookieRemove|DeleteLabel|InsertLabel|PerUser|SelectLabel|UpdateLabel)|Env|Exclude|Header|Include|MaxAge)?|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSL(?:CACertificateFile|CACertificatePath|CADNRequestFile|CADNRequestPath|CARevocationCheck|CARevocationFile|CARevocationPath|CertificateChainFile|CertificateFile|CertificateKeyFile|CipherSuite|Compression|CryptoDevice|Engine|FIPS|HonorCipherOrder|InsecureRenegotiation|OCSP(?:DefaultResponder|Enable|OverrideResponder|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|UseRequestNonce)|OpenSSLConfCmd|Options|PassPhraseDialog|Protocol|Proxy(?:CACertificateFile|CACertificatePath|CARevocation(?:Check|File|Path)|CheckPeer(?:CN|Expire|Name)|CipherSuite|Engine|MachineCertificate(?:ChainFile|File|Path)|Protocol|Verify|VerifyDepth)|RandomSeed|RenegBufferSize|Require|RequireSSL|Session(?:Cache|CacheTimeout|TicketKeyFile|Tickets)|SRPUnknownUserSeed|SRPVerifierFile|Stapling(?:Cache|ErrorCacheTimeout|FakeTryLater|ForceURL|ResponderTimeout|ResponseMaxAge|ResponseTimeSkew|ReturnResponderErrors|StandardCacheTimeout)|StrictSNIVHostCheck|UserName|UseStapling|VerifyClient|VerifyDepth)|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|Virtual(?:DocumentRoot|ScriptAlias)(?:IP)?|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,\n lookbehind: true,\n alias: 'property'\n },\n 'directive-block': {\n pattern:\n /<\\/?\\b(?:Auth[nz]ProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|Require(?:All|Any|None)|VirtualHost)\\b.*>/i,\n inside: {\n 'directive-block': {\n pattern: /^<\\/?\\w+/,\n inside: {\n punctuation: /^<\\/?/\n },\n alias: 'tag'\n },\n 'directive-block-parameter': {\n pattern: /.*[^>]/,\n inside: {\n punctuation: /:/,\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n }\n },\n alias: 'attr-value'\n },\n punctuation: />/\n },\n alias: 'tag'\n },\n 'directive-flags': {\n pattern: /\\[(?:[\\w=],?)+\\]/,\n alias: 'keyword'\n },\n string: {\n pattern: /(\"|').*\\1/,\n inside: {\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/\n }\n },\n variable: /[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,\n regex: /\\^?.*\\$|\\^.*\\$?/\n }\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = apex\napex.displayName = 'apex'\napex.aliases = []\nfunction apex(Prism) {\n Prism.register(refractorSql)\n ;(function (Prism) {\n var keywords =\n /\\b(?:(?:after|before)(?=\\s+[a-z])|abstract|activate|and|any|array|as|asc|autonomous|begin|bigdecimal|blob|boolean|break|bulk|by|byte|case|cast|catch|char|class|collect|commit|const|continue|currency|date|datetime|decimal|default|delete|desc|do|double|else|end|enum|exception|exit|export|extends|final|finally|float|for|from|get(?=\\s*[{};])|global|goto|group|having|hint|if|implements|import|in|inner|insert|instanceof|int|integer|interface|into|join|like|limit|list|long|loop|map|merge|new|not|null|nulls|number|object|of|on|or|outer|override|package|parallel|pragma|private|protected|public|retrieve|return|rollback|select|set|short|sObject|sort|static|string|super|switch|synchronized|system|testmethod|then|this|throw|time|transaction|transient|trigger|try|undelete|update|upsert|using|virtual|void|webservice|when|where|while|(?:inherited|with|without)\\s+sharing)\\b/i\n var className =\n /\\b(?:(?=[a-z_]\\w*\\s*[<\\[])|(?!<keyword>))[A-Z_]\\w*(?:\\s*\\.\\s*[A-Z_]\\w*)*\\b(?:\\s*(?:\\[\\s*\\]|<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>))*/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n /** @param {string} pattern */\n function insertClassName(pattern) {\n return RegExp(\n pattern.replace(/<CLASS-NAME>/g, function () {\n return className\n }),\n 'i'\n )\n }\n var classNameInside = {\n keyword: keywords,\n punctuation: /[()\\[\\]{};,:.<>]/\n }\n Prism.languages.apex = {\n comment: Prism.languages.clike.comment,\n string: Prism.languages.clike.string,\n sql: {\n pattern: /((?:[=,({:]|\\breturn)\\s*)\\[[^\\[\\]]*\\]/i,\n lookbehind: true,\n greedy: true,\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n annotation: {\n pattern: /@\\w+\\b/,\n alias: 'punctuation'\n },\n 'class-name': [\n {\n pattern: insertClassName(\n /(\\b(?:class|enum|extends|implements|instanceof|interface|new|trigger\\s+\\w+\\s+on)\\s+)<CLASS-NAME>/\n .source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // cast\n pattern: insertClassName(\n /(\\(\\s*)<CLASS-NAME>(?=\\s*\\)\\s*[\\w(])/.source\n ),\n lookbehind: true,\n inside: classNameInside\n },\n {\n // variable/parameter declaration and return types\n pattern: insertClassName(/<CLASS-NAME>(?=\\s*\\w+\\s*[;=,(){:])/.source),\n inside: classNameInside\n }\n ],\n trigger: {\n pattern: /(\\btrigger\\s+)\\w+\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n keyword: keywords,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+|L)?)\\b/i,\n operator:\n /[!=](?:==?)?|\\?\\.?|&&|\\|\\||--|\\+\\+|[-+*/^&|]=?|:|<<?=?|>{1,3}=?/,\n punctuation: /[()\\[\\]{};,.]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = apl\napl.displayName = 'apl'\napl.aliases = []\nfunction apl(Prism) {\n Prism.languages.apl = {\n comment: /(?:⍝|#[! ]).*$/m,\n string: {\n pattern: /'(?:[^'\\r\\n]|'')*'/,\n greedy: true\n },\n number:\n /¯?(?:\\d*\\.?\\b\\d+(?:e[+¯]?\\d+)?|¯|∞)(?:j¯?(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+¯]?\\d+)?|¯|∞))?/i,\n statement: /:[A-Z][a-z][A-Za-z]*\\b/,\n 'system-function': {\n pattern: /⎕[A-Z]+/i,\n alias: 'function'\n },\n constant: /[⍬⌾#⎕⍞]/,\n function: /[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,\n 'monadic-operator': {\n pattern: /[\\\\\\/⌿⍀¨⍨⌶&∥]/,\n alias: 'operator'\n },\n 'dyadic-operator': {\n pattern: /[.⍣⍠⍤∘⌸@⌺⍥]/,\n alias: 'operator'\n },\n assignment: {\n pattern: /←/,\n alias: 'keyword'\n },\n punctuation: /[\\[;\\]()◇⋄]/,\n dfn: {\n pattern: /[{}⍺⍵⍶⍹∇⍫:]/,\n alias: 'builtin'\n }\n }\n}\n","'use strict'\n\nmodule.exports = applescript\napplescript.displayName = 'applescript'\napplescript.aliases = []\nfunction applescript(Prism) {\n Prism.languages.applescript = {\n comment: [\n // Allow one level of nesting\n /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n /--.+/,\n /#.+/\n ],\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,\n operator: [\n /[&=≠≤≥*+\\-\\/÷^]|[<>]=?/,\n /\\b(?:(?:begin|end|start)s? with|(?:contains?|(?:does not|doesn't) contain)|(?:is|isn't|is not) (?:contained by|in)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:comes|(?:does not|doesn't) come) (?:after|before)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equal to|equals|is not|isn't)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|as|div|mod|not|or))\\b/\n ],\n keyword:\n /\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\n 'class-name':\n /\\b(?:POSIX file|RGB color|alias|application|boolean|centimeters|centimetres|class|constant|cubic centimeters|cubic centimetres|cubic feet|cubic inches|cubic meters|cubic metres|cubic yards|date|degrees Celsius|degrees Fahrenheit|degrees Kelvin|feet|file|gallons|grams|inches|integer|kilograms|kilometers|kilometres|list|liters|litres|meters|metres|miles|number|ounces|pounds|quarts|real|record|reference|script|square feet|square kilometers|square kilometres|square meters|square metres|square miles|square yards|text|yards)\\b/,\n punctuation: /[{}():,¬«»《》]/\n }\n}\n","'use strict'\n\nmodule.exports = aql\naql.displayName = 'aql'\naql.aliases = []\nfunction aql(Prism) {\n Prism.languages.aql = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n property: {\n pattern:\n /([{,]\\s*)(?:(?!\\d)\\w+|([\"'´`])(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2)(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n greedy: true\n },\n identifier: {\n pattern: /([´`])(?:(?!\\1)[^\\\\\\r\\n]|\\\\.)*\\1/,\n greedy: true\n },\n variable: /@@?\\w+/,\n keyword: [\n {\n pattern: /(\\bWITH\\s+)COUNT(?=\\s+INTO\\b)/i,\n lookbehind: true\n },\n /\\b(?:AGGREGATE|ALL|AND|ANY|ASC|COLLECT|DESC|DISTINCT|FILTER|FOR|GRAPH|IN|INBOUND|INSERT|INTO|K_PATHS|K_SHORTEST_PATHS|LET|LIKE|LIMIT|NONE|NOT|NULL|OR|OUTBOUND|REMOVE|REPLACE|RETURN|SHORTEST_PATH|SORT|UPDATE|UPSERT|WINDOW|WITH)\\b/i, // pseudo keywords get a lookbehind to avoid false positives\n {\n pattern: /(^|[^\\w.[])(?:KEEP|PRUNE|SEARCH|TO)\\b/i,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.[])(?:CURRENT|NEW|OLD)\\b/,\n lookbehind: true\n },\n {\n pattern: /\\bOPTIONS(?=\\s*\\{)/i\n }\n ],\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n boolean: /\\b(?:false|true)\\b/i,\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n },\n number: [\n /\\b0b[01]+/i,\n /\\b0x[0-9a-f]+/i,\n /(?:\\B\\.\\d+|\\b(?:0|[1-9]\\d*)(?:\\.\\d+)?)(?:e[+-]?\\d+)?/i\n ],\n operator: /\\*{2,}|[=!]~|[!=<>]=?|&&|\\|\\||[-+*/%]/,\n punctuation: /::|[?.:,;()[\\]{}]/\n }\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = arduino\narduino.displayName = 'arduino'\narduino.aliases = ['ino']\nfunction arduino(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.arduino = Prism.languages.extend('cpp', {\n keyword:\n /\\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\\b/,\n constant:\n /\\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\\b/,\n builtin:\n /\\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\\b/\n })\n Prism.languages.ino = Prism.languages.arduino\n}\n","'use strict'\n\nmodule.exports = arff\narff.displayName = 'arff'\narff.aliases = []\nfunction arff(Prism) {\n Prism.languages.arff = {\n comment: /%.*/,\n string: {\n pattern: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: /@(?:attribute|data|end|relation)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n punctuation: /[{},]/\n }\n}\n","'use strict'\n\nmodule.exports = asciidoc\nasciidoc.displayName = 'asciidoc'\nasciidoc.aliases = ['adoc']\nfunction asciidoc(Prism) {\n ;(function (Prism) {\n var attributes = {\n pattern:\n /(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\[\\]\\\\]|\\\\.)*\\]|[^\\[\\]\\\\\"'$`]|\\\\.)*\\]/m,\n lookbehind: true,\n inside: {\n quoted: {\n pattern: /([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n inside: {\n punctuation: /^[$`]|[$`]$/\n }\n },\n interpreted: {\n pattern: /'(?:[^'\\\\]|\\\\.)*'/,\n inside: {\n punctuation: /^'|'$/ // See rest below\n }\n },\n string: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n variable: /\\w+(?==)/,\n punctuation: /^\\[|\\]$|,/,\n operator: /=/,\n // The negative look-ahead prevents blank matches\n 'attr-value': /(?!^\\s+$).+/\n }\n }\n var asciidoc = (Prism.languages.asciidoc = {\n 'comment-block': {\n pattern: /^(\\/{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1/m,\n alias: 'comment'\n },\n table: {\n pattern: /^\\|={3,}(?:(?:\\r?\\n|\\r(?!\\n)).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,\n inside: {\n specifiers: {\n pattern:\n /(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*](?:[<^>](?:\\.[<^>])?|\\.[<^>])?|[<^>](?:\\.[<^>])?|\\.[<^>])[a-z]*|[a-z]+)(?=\\|)/,\n alias: 'attr-value'\n },\n punctuation: {\n pattern: /(^|[^\\\\])[|!]=*/,\n lookbehind: true\n } // See rest below\n }\n },\n 'passthrough-block': {\n pattern: /^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^\\++|\\++$/ // See rest below\n }\n },\n // Literal blocks and listing blocks\n 'literal-block': {\n pattern: /^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\.+)|(?:-+|\\.+)$/ // See rest below\n }\n },\n // Sidebar blocks, quote blocks, example blocks and open blocks\n 'other-block': {\n pattern:\n /^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,\n inside: {\n punctuation: /^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/ // See rest below\n }\n },\n // list-punctuation and list-label must appear before indented-block\n 'list-punctuation': {\n pattern:\n /(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'list-label': {\n pattern: /(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'indented-block': {\n pattern: /((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,\n lookbehind: true\n },\n comment: /^\\/\\/.*/m,\n title: {\n pattern:\n /^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} .+|^\\.(?![\\s.]).*/m,\n alias: 'important',\n inside: {\n punctuation: /^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/ // See rest below\n }\n },\n 'attribute-entry': {\n pattern: /^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,\n alias: 'tag'\n },\n attributes: attributes,\n hr: {\n pattern: /^'{3,}$/m,\n alias: 'punctuation'\n },\n 'page-break': {\n pattern: /^<{3,}$/m,\n alias: 'punctuation'\n },\n admonition: {\n pattern: /^(?:CAUTION|IMPORTANT|NOTE|TIP|WARNING):/m,\n alias: 'keyword'\n },\n callout: [\n {\n pattern: /(^[ \\t]*)<?\\d*>/m,\n lookbehind: true,\n alias: 'symbol'\n },\n {\n pattern: /<\\d+>/,\n alias: 'symbol'\n }\n ],\n macro: {\n pattern:\n /\\b[a-z\\d][a-z\\d-]*::?(?:[^\\s\\[\\]]*\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: {\n function: /^[a-z\\d-]+(?=:)/,\n punctuation: /^::?/,\n attributes: {\n pattern: /(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,\n inside: attributes.inside\n }\n }\n },\n inline: {\n /*\nThe initial look-behind prevents the highlighting of escaped quoted text.\nQuoted text can be multi-line but cannot span an empty line.\nAll quoted text can have attributes before [foobar, 'foobar', baz=\"bar\"].\nFirst, we handle the constrained quotes.\nThose must be bounded by non-word chars and cannot have spaces between the delimiter and the first char.\nThey are, in order: _emphasis_, ``double quotes'', `single quotes', `monospace`, 'emphasis', *strong*, +monospace+ and #unquoted#\nThen we handle the unconstrained quotes.\nThose do not have the restrictions of the constrained quotes.\nThey are, in order: __emphasis__, **strong**, ++monospace++, +++passthrough+++, ##unquoted##, $$passthrough$$, ~subscript~, ^superscript^, {attribute-reference}, [[anchor]], [[[bibliography anchor]]], <<xref>>, (((indexes))) and ((indexes))\n*/\n pattern:\n /(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?:[^`'\\s]|\\s+\\S)+['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"']|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,\n lookbehind: true,\n inside: {\n attributes: attributes,\n url: {\n pattern: /^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,\n inside: {\n punctuation: /^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/\n }\n },\n 'attribute-ref': {\n pattern: /^\\{.+\\}$/,\n inside: {\n variable: {\n pattern: /(^\\{)[a-z\\d,+_-]+/,\n lookbehind: true\n },\n operator: /^[=?!#%@$]|!(?=[:}])/,\n punctuation: /^\\{|\\}$|::?/\n }\n },\n italic: {\n pattern: /^(['_])[\\s\\S]+\\1$/,\n inside: {\n punctuation: /^(?:''?|__?)|(?:''?|__?)$/\n }\n },\n bold: {\n pattern: /^\\*[\\s\\S]+\\*$/,\n inside: {\n punctuation: /^\\*\\*?|\\*\\*?$/\n }\n },\n punctuation:\n /^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/\n }\n },\n replacement: {\n pattern: /\\((?:C|R|TM)\\)/,\n alias: 'builtin'\n },\n entity: /&#?[\\da-z]{1,8};/i,\n 'line-continuation': {\n pattern: /(^| )\\+$/m,\n lookbehind: true,\n alias: 'punctuation'\n }\n }) // Allow some nesting. There is no recursion though, so cloning should not be needed.\n function copyFromAsciiDoc(keys) {\n keys = keys.split(' ')\n var o = {}\n for (var i = 0, l = keys.length; i < l; i++) {\n o[keys[i]] = asciidoc[keys[i]]\n }\n return o\n }\n attributes.inside['interpreted'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n )\n asciidoc['passthrough-block'].inside.rest = copyFromAsciiDoc('macro')\n asciidoc['literal-block'].inside.rest = copyFromAsciiDoc('callout')\n asciidoc['table'].inside.rest = copyFromAsciiDoc(\n 'comment-block passthrough-block literal-block other-block list-punctuation indented-block comment title attribute-entry attributes hr page-break admonition list-label callout macro inline replacement entity line-continuation'\n )\n asciidoc['other-block'].inside.rest = copyFromAsciiDoc(\n 'table list-punctuation indented-block comment attribute-entry attributes hr page-break admonition list-label macro inline replacement entity line-continuation'\n )\n asciidoc['title'].inside.rest = copyFromAsciiDoc(\n 'macro inline replacement entity'\n ) // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n }\n })\n Prism.languages.adoc = Prism.languages.asciidoc\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = asm6502\nasm6502.displayName = 'asm6502'\nasm6502.aliases = []\nfunction asm6502(Prism) {\n Prism.languages.asm6502 = {\n comment: /;.*/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'property'\n },\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n 'op-code': {\n pattern:\n /\\b(?:ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA|adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya)\\b/,\n alias: 'keyword'\n },\n 'hex-number': {\n pattern: /#?\\$[\\da-f]{1,4}\\b/i,\n alias: 'number'\n },\n 'binary-number': {\n pattern: /#?%[01]+\\b/,\n alias: 'number'\n },\n 'decimal-number': {\n pattern: /#?\\b\\d+\\b/,\n alias: 'number'\n },\n register: {\n pattern: /\\b[xya]\\b/i,\n alias: 'variable'\n },\n punctuation: /[(),:]/\n }\n}\n","'use strict'\n\nmodule.exports = asmatmel\nasmatmel.displayName = 'asmatmel'\nasmatmel.aliases = []\nfunction asmatmel(Prism) {\n Prism.languages.asmatmel = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n string: {\n pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n constant: /\\b(?:PORT[A-Z]|DDR[A-Z]|(?:DD|P)[A-Z](?:\\d|[0-2]\\d|3[01]))\\b/,\n directive: {\n pattern: /\\.\\w+(?= )/,\n alias: 'property'\n },\n 'r-register': {\n pattern: /\\br(?:\\d|[12]\\d|3[01])\\b/,\n alias: 'variable'\n },\n 'op-code': {\n pattern:\n /\\b(?:ADC|ADD|ADIW|AND|ANDI|ASR|BCLR|BLD|BRBC|BRBS|BRCC|BRCS|BREAK|BREQ|BRGE|BRHC|BRHS|BRID|BRIE|BRLO|BRLT|BRMI|BRNE|BRPL|BRSH|BRTC|BRTS|BRVC|BRVS|BSET|BST|CALL|CBI|CBR|CLC|CLH|CLI|CLN|CLR|CLS|CLT|CLV|CLZ|COM|CP|CPC|CPI|CPSE|DEC|DES|EICALL|EIJMP|ELPM|EOR|FMUL|FMULS|FMULSU|ICALL|IJMP|IN|INC|JMP|LAC|LAS|LAT|LD|LD[A-Za-z0-9]|LPM|LSL|LSR|MOV|MOVW|MUL|MULS|MULSU|NEG|NOP|OR|ORI|OUT|POP|PUSH|RCALL|RET|RETI|RJMP|ROL|ROR|SBC|SBCI|SBI|SBIC|SBIS|SBIW|SBR|SBRC|SBRS|SEC|SEH|SEI|SEN|SER|SES|SET|SEV|SEZ|SLEEP|SPM|ST|ST[A-Z0-9]|SUB|SUBI|SWAP|TST|WDR|XCH|adc|add|adiw|and|andi|asr|bclr|bld|brbc|brbs|brcc|brcs|break|breq|brge|brhc|brhs|brid|brie|brlo|brlt|brmi|brne|brpl|brsh|brtc|brts|brvc|brvs|bset|bst|call|cbi|cbr|clc|clh|cli|cln|clr|cls|clt|clv|clz|com|cp|cpc|cpi|cpse|dec|des|eicall|eijmp|elpm|eor|fmul|fmuls|fmulsu|icall|ijmp|in|inc|jmp|lac|las|lat|ld|ld[a-z0-9]|lpm|lsl|lsr|mov|movw|mul|muls|mulsu|neg|nop|or|ori|out|pop|push|rcall|ret|reti|rjmp|rol|ror|sbc|sbci|sbi|sbic|sbis|sbiw|sbr|sbrc|sbrs|sec|seh|sei|sen|ser|ses|set|sev|sez|sleep|spm|st|st[a-zA-Z0-9]|sub|subi|swap|tst|wdr|xch)\\b/,\n alias: 'keyword'\n },\n 'hex-number': {\n pattern: /#?\\$[\\da-f]{2,4}\\b/i,\n alias: 'number'\n },\n 'binary-number': {\n pattern: /#?%[01]+\\b/,\n alias: 'number'\n },\n 'decimal-number': {\n pattern: /#?\\b\\d+\\b/,\n alias: 'number'\n },\n register: {\n pattern: /\\b[acznvshtixy]\\b/i,\n alias: 'variable'\n },\n operator: />>=?|<<=?|&&?|\\|\\|?|[-+*/%&|^!=<>?]=?/,\n punctuation: /[(),:]/\n }\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = aspnet\naspnet.displayName = 'aspnet'\naspnet.aliases = []\nfunction aspnet(Prism) {\n Prism.register(refractorCsharp)\n Prism.languages.aspnet = Prism.languages.extend('markup', {\n 'page-directive': {\n pattern: /<%\\s*@.*%>/,\n alias: 'tag',\n inside: {\n 'page-directive': {\n pattern:\n /<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,\n alias: 'tag'\n },\n rest: Prism.languages.markup.tag.inside\n }\n },\n directive: {\n pattern: /<%.*%>/,\n alias: 'tag',\n inside: {\n directive: {\n pattern: /<%\\s*?[$=%#:]{0,2}|%>/,\n alias: 'tag'\n },\n rest: Prism.languages.csharp\n }\n }\n }) // Regexp copied from prism-markup, with a negative look-ahead added\n Prism.languages.aspnet.tag.pattern =\n /<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/ // match directives of attribute value foo=\"<% Bar %>\"\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n directive: Prism.languages.aspnet['directive']\n },\n Prism.languages.aspnet.tag.inside['attr-value']\n )\n Prism.languages.insertBefore('aspnet', 'comment', {\n 'asp-comment': {\n pattern: /<%--[\\s\\S]*?--%>/,\n alias: ['asp', 'comment']\n }\n }) // script runat=\"server\" contains csharp, not javascript\n Prism.languages.insertBefore(\n 'aspnet',\n Prism.languages.javascript ? 'script' : 'tag',\n {\n 'asp-script': {\n pattern:\n /(<script(?=.*runat=['\"]?server\\b)[^>]*>)[\\s\\S]*?(?=<\\/script>)/i,\n lookbehind: true,\n alias: ['asp', 'script'],\n inside: Prism.languages.csharp || {}\n }\n }\n )\n}\n","'use strict'\n\nmodule.exports = autohotkey\nautohotkey.displayName = 'autohotkey'\nautohotkey.aliases = []\nfunction autohotkey(Prism) {\n // NOTES - follows first-first highlight method, block is locked after highlight, different from SyntaxHl\n Prism.languages.autohotkey = {\n comment: [\n {\n pattern: /(^|\\s);.*/,\n lookbehind: true\n },\n {\n pattern:\n /(^[\\t ]*)\\/\\*(?:[\\r\\n](?![ \\t]*\\*\\/)|[^\\r\\n])*(?:[\\r\\n][ \\t]*\\*\\/)?/m,\n lookbehind: true,\n greedy: true\n }\n ],\n tag: {\n // labels\n pattern: /^([ \\t]*)[^\\s,`\":]+(?=:[ \\t]*$)/m,\n lookbehind: true\n },\n string: /\"(?:[^\"\\n\\r]|\"\")*\"/,\n variable: /%\\w+%/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator:\n /\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n selector:\n /\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|FileGetAttrib|FileGetShortcut|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileMoveDir|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileRemoveDir|FileSelectFile|FileSelectFolder|FileSetAttrib|FileSetTime|FormatTime|GetKeyState|Gosub|Goto|GroupActivate|GroupAdd|GroupClose|GroupDeactivate|Gui|GuiControl|GuiControlGet|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|SendRaw|SetBatchLines|SetCapslockState|SetControlDelay|SetDefaultMouseSpeed|SetEnv|SetFormat|SetKeyDelay|SetMouseDelay|SetNumlockState|SetRegView|SetScrollLockState|SetStoreCapslockMode|SetTimer|SetTitleMatchMode|SetWinDelay|SetWorkingDir|Shutdown|Sleep|Sort|SoundBeep|SoundGet|SoundGetWaveVolume|SoundPlay|SoundSet|SoundSetWaveVolume|SplashImage|SplashTextOff|SplashTextOn|SplitPath|StatusBarGetText|StatusBarWait|StringCaseSense|StringGetPos|StringLeft|StringLen|StringLower|StringMid|StringReplace|StringRight|StringSplit|StringTrimLeft|StringTrimRight|StringUpper|Suspend|SysGet|Thread|ToolTip|Transform|TrayTip|URLDownloadToFile|WinActivate|WinActivateBottom|WinClose|WinGet|WinGetActiveStats|WinGetActiveTitle|WinGetClass|WinGetPos|WinGetText|WinGetTitle|WinHide|WinKill|WinMaximize|WinMenuSelectItem|WinMinimize|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinRestore|WinSet|WinSetTitle|WinShow|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\\b/i,\n constant:\n /\\b(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_fileencoding|a_formatfloat|a_formatinteger|a_gui|a_guicontrol|a_guicontrolevent|a_guievent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_is64bitos|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_isunicode|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|a_priorkey|a_programfiles|a_programs|a_programscommon|a_ptrsize|a_regview|a_screendpi|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scripthwnd|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel|programfiles)\\b/i,\n builtin:\n /\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|comobjactive|comobjarray|comobjconnect|comobjcreate|comobjerror|comobjflags|comobjget|comobjquery|comobjtype|comobjvalue|cos|dllcall|exp|fileexist|Fileopen|floor|format|il_add|il_create|il_destroy|instr|isfunc|islabel|IsObject|ln|log|ltrim|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|numget|numput|onmessage|regexmatch|regexreplace|registercallback|round|rtrim|sb_seticon|sb_setparts|sb_settext|sin|sqrt|strlen|strreplace|strsplit|substr|tan|tv_add|tv_delete|tv_get|tv_getchild|tv_getcount|tv_getnext|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist|__Call|__Get|__New|__Set)\\b/i,\n symbol:\n /\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,\n important:\n /#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|DerefChar|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|If|IfTimeout|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InputLevel|InstallKeybdHook|InstallMouseHook|KeyHistory|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|MenuMaskKey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|Warn|WinActivateForce)\\b/i,\n keyword:\n /\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_exe|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Catch|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|Finally|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|Region|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Throw|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|Try|TryAgain|Type|UnCheck|underline|Unicode|Unlock|Until|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i,\n function: /[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+(?=\\()/,\n punctuation: /[{}[\\]():,]/\n }\n}\n","'use strict'\n\nmodule.exports = autoit\nautoit.displayName = 'autoit'\nautoit.aliases = []\nfunction autoit(Prism) {\n Prism.languages.autoit = {\n comment: [\n /;.*/,\n {\n // The multi-line comments delimiters can actually be commented out with \";\"\n pattern:\n /(^[\\t ]*)#(?:comments-start|cs)[\\s\\S]*?^[ \\t]*#(?:ce|comments-end)/m,\n lookbehind: true\n }\n ],\n url: {\n pattern: /(^[\\t ]*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,\n greedy: true,\n inside: {\n variable: /([%$@])\\w+\\1/\n }\n },\n directive: {\n pattern: /(^[\\t ]*)#[\\w-]+/m,\n lookbehind: true,\n alias: 'keyword'\n },\n function: /\\b\\w+(?=\\()/,\n // Variables and macros\n variable: /[$@]\\w+/,\n keyword:\n /\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n boolean: /\\b(?:False|True)\\b/i,\n operator: /<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[\\[\\]().,:]/\n }\n}\n","'use strict'\n\nmodule.exports = avisynth\navisynth.displayName = 'avisynth'\navisynth.aliases = ['avs']\nfunction avisynth(Prism) {\n // http://avisynth.nl/index.php/The_full_AviSynth_grammar\n ;(function (Prism) {\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return replacements[+index]\n })\n }\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n var types = /bool|clip|float|int|string|val/.source\n var internals = [\n // bools\n /is(?:bool|clip|float|int|string)|defined|(?:(?:internal)?function|var)?exists?/\n .source, // control\n /apply|assert|default|eval|import|nop|select|undefined/.source, // global\n /opt_(?:allowfloataudio|avipadscanlines|dwchannelmask|enable_(?:b64a|planartopackedrgb|v210|y3_10_10|y3_10_16)|usewaveextensible|vdubplanarhack)|set(?:cachemode|maxcpu|memorymax|planarlegacyalignment|workingdir)/\n .source, // conv\n /hex(?:value)?|value/.source, // numeric\n /abs|ceil|continued(?:denominator|numerator)?|exp|floor|fmod|frac|log(?:10)?|max|min|muldiv|pi|pow|rand|round|sign|spline|sqrt/\n .source, // trig\n /a?sinh?|a?cosh?|a?tan[2h]?/.source, // bit\n /(?:bit(?:and|not|x?or|[lr]?shift[aslu]?|sh[lr]|sa[lr]|[lr]rotatel?|ro[rl]|te?st|set(?:count)?|cl(?:ea)?r|ch(?:an)?ge?))/\n .source, // runtime\n /average(?:[bgr]|chroma[uv]|luma)|(?:[rgb]|chroma[uv]|luma|rgb|[yuv](?=difference(?:fromprevious|tonext)))difference(?:fromprevious|tonext)?|[yuvrgb]plane(?:median|min|max|minmaxdifference)/\n .source, // script\n /getprocessinfo|logmsg|script(?:dir(?:utf8)?|file(?:utf8)?|name(?:utf8)?)|setlogparams/\n .source, // string\n /chr|(?:fill|find|left|mid|replace|rev|right)str|format|[lu]case|ord|str(?:cmpi?|fromutf8|len|toutf8)|time|trim(?:all|left|right)/\n .source, // version\n /isversionorgreater|version(?:number|string)/.source, // helper\n /buildpixeltype|colorspacenametopixeltype/.source, // avsplus\n /addautoloaddir|on(?:cpu|cuda)|prefetch|setfiltermtmode/.source\n ].join('|')\n var properties = [\n // content\n /has(?:audio|video)/.source, // resolution\n /height|width/.source, // framerate\n /frame(?:count|rate)|framerate(?:denominator|numerator)/.source, // interlacing\n /getparity|is(?:field|frame)based/.source, // color format\n /bitspercomponent|componentsize|hasalpha|is(?:planar(?:rgba?)?|interleaved|rgb(?:24|32|48|64)?|y(?:8|u(?:va?|y2))?|yv(?:12|16|24|411)|420|422|444|packedrgb)|numcomponents|pixeltype/\n .source, // audio\n /audio(?:bits|channels|duration|length(?:[fs]|hi|lo)?|rate)|isaudio(?:float|int)/\n .source\n ].join('|')\n var filters = [\n // source\n /avi(?:file)?source|directshowsource|image(?:reader|source|sourceanim)|opendmlsource|segmented(?:avisource|directshowsource)|wavsource/\n .source, // color\n /coloryuv|convertbacktoyuy2|convertto(?:RGB(?:24|32|48|64)|(?:planar)?RGBA?|Y8?|YV(?:12|16|24|411)|YUVA?(?:411|420|422|444)|YUY2)|fixluminance|gr[ae]yscale|invert|levels|limiter|mergea?rgb|merge(?:chroma|luma)|rgbadjust|show(?:alpha|blue|green|red)|swapuv|tweak|[uv]toy8?|ytouv/\n .source, // overlay\n /(?:colorkey|reset)mask|layer|mask(?:hs)?|merge|overlay|subtract/.source, // geometry\n /addborders|(?:bicubic|bilinear|blackman|gauss|lanczos4|lanczos|point|sinc|spline(?:16|36|64))resize|crop(?:bottom)?|flip(?:horizontal|vertical)|(?:horizontal|vertical)?reduceby2|letterbox|skewrows|turn(?:180|left|right)/\n .source, // pixel\n /blur|fixbrokenchromaupsampling|generalconvolution|(?:spatial|temporal)soften|sharpen/\n .source, // timeline\n /trim|(?:un)?alignedsplice|(?:assume|assumescaled|change|convert)FPS|(?:delete|duplicate)frame|dissolve|fade(?:in|io|out)[02]?|freezeframe|interleave|loop|reverse|select(?:even|odd|(?:range)?every)/\n .source, // interlace\n /assume[bt]ff|assume(?:field|frame)based|bob|complementparity|doubleweave|peculiarblend|pulldown|separate(?:columns|fields|rows)|swapfields|weave(?:columns|rows)?/\n .source, // audio\n /amplify(?:db)?|assumesamplerate|audiodub(?:ex)?|audiotrim|convertaudioto(?:(?:8|16|24|32)bit|float)|converttomono|delayaudio|ensurevbrmp3sync|get(?:left|right)?channel|kill(?:audio|video)|mergechannels|mixaudio|monotostereo|normalize|resampleaudio|ssrc|supereq|timestretch/\n .source, // conditional\n /animate|applyrange|conditional(?:filter|reader|select)|frameevaluate|scriptclip|tcp(?:server|source)|writefile(?:end|if|start)?/\n .source, // export\n /imagewriter/.source, // debug\n /blackness|blankclip|colorbars(?:hd)?|compare|dumpfiltergraph|echo|histogram|info|messageclip|preroll|setgraphanalysis|show(?:framenumber|smpte|time)|showfiveversions|stack(?:horizontal|vertical)|subtitle|tone|version/\n .source\n ].join('|')\n var allinternals = [internals, properties, filters].join('|')\n Prism.languages.avisynth = {\n comment: [\n {\n // Matches [* *] nestable block comments, but only supports 1 level of nested comments\n // /\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|<self>)*\\*\\]/\n pattern:\n /(^|[^\\\\])\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\])|\\[\\*(?:[^\\[*]|\\[(?!\\*)|\\*(?!\\]))*\\*\\])*\\*\\]/,\n lookbehind: true,\n greedy: true\n },\n {\n // Matches /* */ block comments\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n // Matches # comments\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // Handle before strings because optional arguments are surrounded by double quotes\n argument: {\n pattern: re(/\\b(?:<<0>>)\\s+(\"?)\\w+\\1/.source, [types], 'i'),\n inside: {\n keyword: /^\\w+/\n }\n },\n // Optional argument assignment\n 'argument-label': {\n pattern: /([,(][\\s\\\\]*)\\w+\\s*=(?!=)/,\n lookbehind: true,\n inside: {\n 'argument-name': {\n pattern: /^\\w+/,\n alias: 'punctuation'\n },\n punctuation: /=$/\n }\n },\n string: [\n {\n // triple double-quoted\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true\n },\n {\n // single double-quoted\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true,\n inside: {\n constant: {\n // These *are* case-sensitive!\n pattern:\n /\\b(?:DEFAULT_MT_MODE|(?:MAINSCRIPT|PROGRAM|SCRIPT)DIR|(?:MACHINE|USER)_(?:CLASSIC|PLUS)_PLUGINS)\\b/\n }\n }\n }\n ],\n // The special \"last\" variable that takes the value of the last implicitly returned clip\n variable: /\\b(?:last)\\b/i,\n boolean: /\\b(?:false|no|true|yes)\\b/i,\n keyword:\n /\\b(?:catch|else|for|function|global|if|return|try|while|__END__)\\b/i,\n constant: /\\bMT_(?:MULTI_INSTANCE|NICE_FILTER|SERIALIZED|SPECIAL_MT)\\b/,\n // AviSynth's internal functions, filters, and properties\n 'builtin-function': {\n pattern: re(/\\b(?:<<0>>)\\b/.source, [allinternals], 'i'),\n alias: 'function'\n },\n 'type-cast': {\n pattern: re(/\\b(?:<<0>>)(?=\\s*\\()/.source, [types], 'i'),\n alias: 'keyword'\n },\n // External/user-defined filters\n function: {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\()|(\\.)[a-z_]\\w*\\b/i,\n lookbehind: true\n },\n // Matches a \\ as the first or last character on a line\n 'line-continuation': {\n pattern: /(^[ \\t]*)\\\\|\\\\(?=[ \\t]*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n number:\n /\\B\\$(?:[\\da-f]{6}|[\\da-f]{8})\\b|(?:(?:\\b|\\B-)\\d+(?:\\.\\d*)?\\b|\\B\\.\\d+\\b)/i,\n operator: /\\+\\+?|[!=<>]=?|&&|\\|\\||[?:*/%-]/,\n punctuation: /[{}\\[\\]();,.]/\n }\n Prism.languages.avs = Prism.languages.avisynth\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = avroIdl\navroIdl.displayName = 'avroIdl'\navroIdl.aliases = []\nfunction avroIdl(Prism) {\n // GitHub: https://github.com/apache/avro\n // Docs: https://avro.apache.org/docs/current/idl.html\n Prism.languages['avro-idl'] = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n annotation: {\n pattern: /@(?:[$\\w.-]|`[^\\r\\n`]+`)+/,\n greedy: true,\n alias: 'function'\n },\n 'function-identifier': {\n pattern: /`[^\\r\\n`]+`(?=\\s*\\()/,\n greedy: true,\n alias: 'function'\n },\n identifier: {\n pattern: /`[^\\r\\n`]+`/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:enum|error|protocol|record|throws)\\b\\s+)[$\\w]+/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:array|boolean|bytes|date|decimal|double|enum|error|false|fixed|float|idl|import|int|local_timestamp_ms|long|map|null|oneway|protocol|record|schema|string|throws|time_ms|timestamp_ms|true|union|uuid|void)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: [\n {\n pattern:\n /(^|[^\\w.])-?(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|0x(?:[a-f0-9]+(?:\\.[a-f0-9]*)?|\\.[a-f0-9]+)(?:p[+-]?\\d+)?)[dfl]?(?![\\w.])/i,\n lookbehind: true\n },\n /-?\\b(?:Infinity|NaN)\\b/\n ],\n operator: /=/,\n punctuation: /[()\\[\\]{}<>.:,;-]/\n }\n Prism.languages.avdl = Prism.languages['avro-idl']\n}\n","'use strict'\n\nmodule.exports = bash\nbash.displayName = 'bash'\nbash.aliases = ['shell']\nfunction bash(Prism) {\n ;(function (Prism) {\n // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n // + LC_ALL, RANDOM, REPLY, SECONDS.\n // + make sure PS1..4 are here as they are not always set,\n // - some useless things.\n var envVars =\n '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n var commandAfterHeredoc = {\n pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n lookbehind: true,\n alias: 'punctuation',\n // this looks reasonably well in all themes\n inside: null // see below\n }\n var insideString = {\n bash: commandAfterHeredoc,\n environment: {\n pattern: RegExp('\\\\$' + envVars),\n alias: 'constant'\n },\n variable: [\n // [0]: Arithmetic Environment\n {\n pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n greedy: true,\n inside: {\n // If there is a $ sign at the beginning highlight $(( and )) as variable\n variable: [\n {\n pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n lookbehind: true\n },\n /^\\$\\(\\(/\n ],\n number:\n /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n operator:\n /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n // If there is no $ sign at the beginning highlight (( and )) as punctuation\n punctuation: /\\(\\(?|\\)\\)?|,|;/\n }\n }, // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\n }\n }, // [2]: Brace expansion\n {\n pattern: /\\$\\{[^}]+\\}/,\n greedy: true,\n inside: {\n operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n punctuation: /[\\[\\]]/,\n environment: {\n pattern: RegExp('(\\\\{)' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n }\n },\n /\\$(?:\\w+|[#?*!@$])/\n ],\n // Escape sequences from echo and printf's manuals, and escaped quotes.\n entity:\n /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/\n }\n Prism.languages.bash = {\n shebang: {\n pattern: /^#!\\s*\\/.*/,\n alias: 'important'\n },\n comment: {\n pattern: /(^|[^\"{\\\\$])#.*/,\n lookbehind: true\n },\n 'function-name': [\n // a) function foo {\n // b) foo() {\n // c) function foo() {\n // but not “foo {”\n {\n // a) and c)\n pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n lookbehind: true,\n alias: 'function'\n },\n {\n // b)\n pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n alias: 'function'\n }\n ],\n // Highlight variable names as variables in for and select beginnings.\n 'for-or-select': {\n pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n alias: 'variable',\n lookbehind: true\n },\n // Highlight variable names as variables in the left-hand part\n // of assignments (“=” and “+=”).\n 'assign-left': {\n pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n inside: {\n environment: {\n pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n },\n alias: 'variable',\n lookbehind: true\n },\n string: [\n // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n {\n pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }, // Here-document with quotes around the tag\n // → No expansion (so no “inside”).\n {\n pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n lookbehind: true,\n greedy: true,\n inside: {\n bash: commandAfterHeredoc\n }\n }, // “Normal” string\n {\n // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n pattern: /(^|[^$\\\\])'[^']*'/,\n lookbehind: true,\n greedy: true\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n entity: insideString.entity\n }\n }\n ],\n environment: {\n pattern: RegExp('\\\\$?' + envVars),\n alias: 'constant'\n },\n variable: insideString.variable,\n function: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n builtin: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:\\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\\s;|&])/,\n lookbehind: true,\n // Alias added to make those easier to distinguish from strings.\n alias: 'class-name'\n },\n boolean: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:false|true)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n 'file-descriptor': {\n pattern: /\\B&\\d\\b/,\n alias: 'important'\n },\n operator: {\n // Lots of redirections here, but not just that.\n pattern:\n /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n inside: {\n 'file-descriptor': {\n pattern: /^\\d/,\n alias: 'important'\n }\n }\n },\n punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n number: {\n pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n lookbehind: true\n }\n }\n commandAfterHeredoc.inside = Prism.languages.bash\n /* Patterns in command substitution. */\n var toBeCopied = [\n 'comment',\n 'function-name',\n 'for-or-select',\n 'assign-left',\n 'string',\n 'environment',\n 'function',\n 'keyword',\n 'builtin',\n 'boolean',\n 'file-descriptor',\n 'operator',\n 'punctuation',\n 'number'\n ]\n var inside = insideString.variable[1].inside\n for (var i = 0; i < toBeCopied.length; i++) {\n inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n }\n Prism.languages.shell = Prism.languages.bash\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = basic\nbasic.displayName = 'basic'\nbasic.aliases = []\nfunction basic(Prism) {\n Prism.languages.basic = {\n comment: {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n greedy: true\n },\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword:\n /\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\n function:\n /\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,\n operator: /<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,\n punctuation: /[,;:()]/\n }\n}\n","'use strict'\n\nmodule.exports = batch\nbatch.displayName = 'batch'\nbatch.aliases = []\nfunction batch(Prism) {\n ;(function (Prism) {\n var variable = /%%?[~:\\w]+%?|!\\S+!/\n var parameter = {\n pattern: /\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,\n alias: 'attr-name',\n inside: {\n punctuation: /:/\n }\n }\n var string = /\"(?:[\\\\\"]\"|[^\"])*\"(?!\")/\n var number = /(?:\\b|-)\\d+\\b/\n Prism.languages.batch = {\n comment: [\n /^::.*/m,\n {\n pattern: /((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true\n }\n ],\n label: {\n pattern: /^:.*/m,\n alias: 'property'\n },\n command: [\n {\n // FOR command\n pattern:\n /((?:^|[&(])[ \\t]*)for(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* \\S+ in \\([^)]+\\) do/im,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:do|in)\\b|^for\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n punctuation: /[()',]/\n }\n },\n {\n // IF command\n pattern:\n /((?:^|[&(])[ \\t]*)if(?: \\/[a-z?](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|(?!\")(?:(?!==)\\S)+)?(?:==| (?:equ|geq|gtr|leq|lss|neq) )(?:\"[^\"]*\"|[^\\s\"]\\S*))/im,\n lookbehind: true,\n inside: {\n keyword:\n /\\b(?:cmdextversion|defined|errorlevel|exist|not)\\b|^if\\b/i,\n string: string,\n parameter: parameter,\n variable: variable,\n number: number,\n operator: /\\^|==|\\b(?:equ|geq|gtr|leq|lss|neq)\\b/i\n }\n },\n {\n // ELSE command\n pattern: /((?:^|[&()])[ \\t]*)else\\b/im,\n lookbehind: true,\n inside: {\n keyword: /^else\\b/i\n }\n },\n {\n // SET command\n pattern:\n /((?:^|[&(])[ \\t]*)set(?: \\/[a-z](?:[ :](?:\"[^\"]*\"|[^\\s\"/]\\S*))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n inside: {\n keyword: /^set\\b/i,\n string: string,\n parameter: parameter,\n variable: [variable, /\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],\n number: number,\n operator: /[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,\n punctuation: /[()',]/\n }\n },\n {\n // Other commands\n pattern:\n /((?:^|[&(])[ \\t]*@?)\\w+\\b(?:\"(?:[\\\\\"]\"|[^\"])*\"(?!\")|[^\"^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/m,\n lookbehind: true,\n inside: {\n keyword: /^\\w+\\b/,\n string: string,\n parameter: parameter,\n label: {\n pattern: /(^\\s*):\\S+/m,\n lookbehind: true,\n alias: 'property'\n },\n variable: variable,\n number: number,\n operator: /\\^/\n }\n }\n ],\n operator: /[&@]/,\n punctuation: /[()']/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = bbcode\nbbcode.displayName = 'bbcode'\nbbcode.aliases = ['shortcode']\nfunction bbcode(Prism) {\n Prism.languages.bbcode = {\n tag: {\n pattern:\n /\\[\\/?[^\\s=\\]]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))?(?:\\s+[^\\s=\\]]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+))*\\s*\\]/,\n inside: {\n tag: {\n pattern: /^\\[\\/?[^\\s=\\]]+/,\n inside: {\n punctuation: /^\\[\\/?/\n }\n },\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\"\\]=]+)/,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ]\n }\n },\n punctuation: /\\]/,\n 'attr-name': /[^\\s=\\]]+/\n }\n }\n }\n Prism.languages.shortcode = Prism.languages.bbcode\n}\n","'use strict'\n\nmodule.exports = bicep\nbicep.displayName = 'bicep'\nbicep.aliases = []\nfunction bicep(Prism) {\n // based loosely upon: https://github.com/Azure/bicep/blob/main/src/textmate/bicep.tmlanguage\n Prism.languages.bicep = {\n comment: [\n {\n // multiline comments eg /* ASDF */\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n // singleline comments eg // ASDF\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n property: [\n {\n pattern: /([\\r\\n][ \\t]*)[a-z_]\\w*(?=[ \\t]*:)/i,\n lookbehind: true\n },\n {\n pattern: /([\\r\\n][ \\t]*)'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'(?=[ \\t]*:)/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: [\n {\n pattern: /'''[^'][\\s\\S]*?'''/,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?!\\{)|[^'\\\\\\r\\n$])*'/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'interpolated-string': {\n pattern: /(^|[^\\\\'])'(?:\\\\.|\\$(?:(?!\\{)|\\{[^{}\\r\\n]*\\})|[^'\\\\\\r\\n$])*'/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}\\r\\n]*\\}/,\n inside: {\n expression: {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true\n },\n punctuation: /^\\$\\{|\\}$/\n }\n },\n string: /[\\s\\S]+/\n }\n },\n datatype: {\n pattern: /(\\b(?:output|param)\\b[ \\t]+\\w+[ \\t]+)\\w+\\b/,\n lookbehind: true,\n alias: 'class-name'\n },\n boolean: /\\b(?:false|true)\\b/,\n // https://github.com/Azure/bicep/blob/114a3251b4e6e30082a58729f19a8cc4e374ffa6/src/textmate/bicep.tmlanguage#L184\n keyword:\n /\\b(?:existing|for|if|in|module|null|output|param|resource|targetScope|var)\\b/,\n decorator: /@\\w+\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.bicep['interpolated-string'].inside['interpolation'].inside[\n 'expression'\n ].inside = Prism.languages.bicep\n}\n","'use strict'\n\nmodule.exports = birb\nbirb.displayName = 'birb'\nbirb.aliases = []\nfunction birb(Prism) {\n Prism.languages.birb = Prism.languages.extend('clike', {\n string: {\n pattern: /r?(\"|')(?:\\\\.|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'class-name': [\n /\\b[A-Z](?:[\\d_]*[a-zA-Z]\\w*)?\\b/, // matches variable and function return types (parameters as well).\n /\\b(?:[A-Z]\\w*|(?!(?:var|void)\\b)[a-z]\\w*)(?=\\s+\\w+\\s*[;,=()])/\n ],\n keyword:\n /\\b(?:assert|break|case|class|const|default|else|enum|final|follows|for|grab|if|nest|new|next|noSeeb|return|static|switch|throw|var|void|while)\\b/,\n operator: /\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?|:/,\n variable: /\\b[a-z_]\\w*\\b/\n })\n Prism.languages.insertBefore('birb', 'function', {\n metadata: {\n pattern: /<\\w+>/,\n greedy: true,\n alias: 'symbol'\n }\n })\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = bison\nbison.displayName = 'bison'\nbison.aliases = []\nfunction bison(Prism) {\n Prism.register(refractorC)\n Prism.languages.bison = Prism.languages.extend('c', {})\n Prism.languages.insertBefore('bison', 'comment', {\n bison: {\n // This should match all the beginning of the file\n // including the prologue(s), the bison declarations and\n // the grammar rules.\n pattern: /^(?:[^%]|%(?!%))*%%[\\s\\S]*?%%/,\n inside: {\n c: {\n // Allow for one level of nested braces\n pattern: /%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,\n inside: {\n delimiter: {\n pattern: /^%?\\{|%?\\}$/,\n alias: 'punctuation'\n },\n 'bison-variable': {\n pattern: /[$@](?:<[^\\s>]+>)?[\\w$]+/,\n alias: 'variable',\n inside: {\n punctuation: /<|>/\n }\n },\n rest: Prism.languages.c\n }\n },\n comment: Prism.languages.c.comment,\n string: Prism.languages.c.string,\n property: /\\S+(?=:)/,\n keyword: /%\\w+/,\n number: {\n pattern: /(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,\n lookbehind: true\n },\n punctuation: /%[%?]|[|:;\\[\\]<>]/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = bnf\nbnf.displayName = 'bnf'\nbnf.aliases = ['rbnf']\nfunction bnf(Prism) {\n Prism.languages.bnf = {\n string: {\n pattern: /\"[^\\r\\n\"]*\"|'[^\\r\\n']*'/\n },\n definition: {\n pattern: /<[^<>\\r\\n\\t]+>(?=\\s*::=)/,\n alias: ['rule', 'keyword'],\n inside: {\n punctuation: /^<|>$/\n }\n },\n rule: {\n pattern: /<[^<>\\r\\n\\t]+>/,\n inside: {\n punctuation: /^<|>$/\n }\n },\n operator: /::=|[|()[\\]{}*+?]|\\.{3}/\n }\n Prism.languages.rbnf = Prism.languages.bnf\n}\n","'use strict'\n\nmodule.exports = brainfuck\nbrainfuck.displayName = 'brainfuck'\nbrainfuck.aliases = []\nfunction brainfuck(Prism) {\n Prism.languages.brainfuck = {\n pointer: {\n pattern: /<|>/,\n alias: 'keyword'\n },\n increment: {\n pattern: /\\+/,\n alias: 'inserted'\n },\n decrement: {\n pattern: /-/,\n alias: 'deleted'\n },\n branching: {\n pattern: /\\[|\\]/,\n alias: 'important'\n },\n operator: /[.,]/,\n comment: /\\S+/\n }\n}\n","'use strict'\n\nmodule.exports = brightscript\nbrightscript.displayName = 'brightscript'\nbrightscript.aliases = []\nfunction brightscript(Prism) {\n Prism.languages.brightscript = {\n comment: /(?:\\brem|').*/i,\n 'directive-statement': {\n pattern: /(^[\\t ]*)#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if).*/im,\n lookbehind: true,\n alias: 'property',\n inside: {\n 'error-message': {\n pattern: /(^#error).+/,\n lookbehind: true\n },\n directive: {\n pattern: /^#(?:const|else(?:[\\t ]+if)?|end[\\t ]+if|error|if)/,\n alias: 'keyword'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n property: {\n pattern:\n /([\\r\\n{,][\\t ]*)(?:(?!\\d)\\w+|\"(?:[^\"\\r\\n]|\"\")*\"(?!\"))(?=[ \\t]*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\bAs[\\t ]+)\\w+/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:As|Dim|Each|Else|Elseif|End|Exit|For|Function|Goto|If|In|Print|Return|Step|Stop|Sub|Then|To|While)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\b(?!\\d)\\w+(?=[\\t ]*\\()/,\n number: /(?:\\b\\d+(?:\\.\\d+)?(?:[ed][+-]\\d+)?|&h[a-f\\d]+)\\b[%&!#]?/i,\n operator:\n /--|\\+\\+|>>=?|<<=?|<>|[-+*/\\\\<>]=?|[:^=?]|\\b(?:and|mod|not|or)\\b/i,\n punctuation: /[.,;()[\\]{}]/,\n constant: /\\b(?:LINE_NUM)\\b/i\n }\n Prism.languages.brightscript['directive-statement'].inside.expression.inside =\n Prism.languages.brightscript\n}\n","'use strict'\n\nmodule.exports = bro\nbro.displayName = 'bro'\nbro.aliases = []\nfunction bro(Prism) {\n Prism.languages.bro = {\n comment: {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n inside: {\n italic: /\\b(?:FIXME|TODO|XXX)\\b/\n }\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n boolean: /\\b[TF]\\b/,\n function: {\n pattern: /(\\b(?:event|function|hook)[ \\t]+)\\w+(?:::\\w+)?/,\n lookbehind: true\n },\n builtin:\n /(?:@(?:load(?:-(?:plugin|sigs))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:add_func|create_expire|default|delete_func|encrypt|error_handler|expire_func|group|log|mergeable|optional|persistent|priority|raw_output|read_expire|redef|rotate_interval|rotate_size|synchronized|type_column|write_expire))/,\n constant: {\n pattern: /(\\bconst[ \\t]+)\\w+/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:add|addr|alarm|any|bool|break|const|continue|count|delete|double|else|enum|event|export|file|for|function|global|hook|if|in|int|interval|local|module|next|of|opaque|pattern|port|print|record|return|schedule|set|string|subnet|table|time|timeout|using|vector|when)\\b/,\n operator: /--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = bsl\nbsl.displayName = 'bsl'\nbsl.aliases = []\nfunction bsl(Prism) {\n /* eslint-disable no-misleading-character-class */\n // 1C:Enterprise\n // https://github.com/Diversus23/\n //\n Prism.languages.bsl = {\n comment: /\\/\\/.*/,\n string: [\n // Строки\n // Strings\n {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n }, // Дата и время\n // Date & time\n {\n pattern: /'(?:[^'\\r\\n\\\\]|\\\\.)*'/\n }\n ],\n keyword: [\n {\n // RU\n pattern:\n /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:пока|для|новый|прервать|попытка|исключение|вызватьисключение|иначе|конецпопытки|неопределено|функция|перем|возврат|конецфункции|если|иначеесли|процедура|конецпроцедуры|тогда|знач|экспорт|конецесли|из|каждого|истина|ложь|по|цикл|конеццикла|выполнить)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n },\n {\n // EN\n pattern:\n /\\b(?:break|do|each|else|elseif|enddo|endfunction|endif|endprocedure|endtry|except|execute|export|false|for|function|if|in|new|null|procedure|raise|return|then|to|true|try|undefined|val|var|while)\\b/i\n }\n ],\n number: {\n pattern:\n /(^(?=\\d)|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:E[+-]?\\d+)?/i,\n lookbehind: true\n },\n operator: [\n /[<>+\\-*/]=?|[%=]/, // RU\n {\n pattern:\n /(^|[^\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])(?:и|или|не)(?![\\w\\u0400-\\u0484\\u0487-\\u052f\\u1d2b\\u1d78\\u2de0-\\u2dff\\ua640-\\ua69f\\ufe2e\\ufe2f])/i,\n lookbehind: true\n }, // EN\n {\n pattern: /\\b(?:and|not|or)\\b/i\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/,\n directive: [\n // Теги препроцессора вида &Клиент, &Сервер, ...\n // Preprocessor tags of the type &Client, &Server, ...\n {\n pattern: /^([ \\t]*)&.*/m,\n lookbehind: true,\n greedy: true,\n alias: 'important'\n }, // Инструкции препроцессора вида:\n // #Если Сервер Тогда\n // ...\n // #КонецЕсли\n // Preprocessor instructions of the form:\n // #If Server Then\n // ...\n // #EndIf\n {\n pattern: /^([ \\t]*)#.*/gm,\n lookbehind: true,\n greedy: true,\n alias: 'important'\n }\n ]\n }\n Prism.languages.oscript = Prism.languages['bsl']\n}\n","'use strict'\n\nmodule.exports = c\nc.displayName = 'c'\nc.aliases = []\nfunction c(Prism) {\n Prism.languages.c = Prism.languages.extend('clike', {\n comment: {\n pattern:\n /\\/\\/(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n?|\\n|(?![\\r\\n])))*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n string: {\n // https://en.cppreference.com/w/c/language/string_literal\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:enum|struct)\\s+(?:__attribute__\\s*\\(\\([\\s\\S]*?\\)\\)\\s*)?)\\w+|\\b[a-z]\\w*_t\\b/,\n lookbehind: true\n },\n keyword:\n /\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number:\n /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]{0,4}/i,\n operator: />>=?|<<=?|->|([-+&|:])\\1|[?:~]|[-+*/%&|^!=<>]=?/\n })\n Prism.languages.insertBefore('c', 'string', {\n char: {\n // https://en.cppreference.com/w/c/language/character_constant\n pattern: /'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n]){0,32}'/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('c', 'string', {\n macro: {\n // allow for multiline macro definitions\n // spaces after the # character compile fine with gcc\n pattern:\n /(^[\\t ]*)#\\s*[a-z](?:[^\\r\\n\\\\/]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n string: [\n {\n // highlight the path of the include statement as a string\n pattern: /^(#\\s*include\\s*)<[^>]+>/,\n lookbehind: true\n },\n Prism.languages.c['string']\n ],\n char: Prism.languages.c['char'],\n comment: Prism.languages.c['comment'],\n 'macro-name': [\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?!\\()/i,\n lookbehind: true\n },\n {\n pattern: /(^#\\s*define\\s+)\\w+\\b(?=\\()/i,\n lookbehind: true,\n alias: 'function'\n }\n ],\n // highlight macro directives as keywords\n directive: {\n pattern: /^(#\\s*)[a-z]+/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'directive-hash': /^#/,\n punctuation: /##|\\\\(?=[\\r\\n])/,\n expression: {\n pattern: /\\S[\\s\\S]*/,\n inside: Prism.languages.c\n }\n }\n }\n })\n Prism.languages.insertBefore('c', 'function', {\n // highlight predefined macros as constants\n constant:\n /\\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\\b/\n })\n delete Prism.languages.c['boolean']\n}\n","'use strict'\n\nmodule.exports = cfscript\ncfscript.displayName = 'cfscript'\ncfscript.aliases = []\nfunction cfscript(Prism) {\n // https://cfdocs.org/script\n Prism.languages.cfscript = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n inside: {\n annotation: {\n pattern: /(?:^|[^.])@[\\w\\.]+/,\n alias: 'punctuation'\n }\n }\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n keyword:\n /\\b(?:abstract|break|catch|component|continue|default|do|else|extends|final|finally|for|function|if|in|include|package|private|property|public|remote|required|rethrow|return|static|switch|throw|try|var|while|xml)\\b(?!\\s*=)/,\n operator: [\n /\\+\\+|--|&&|\\|\\||::|=>|[!=]==|<=?|>=?|[-+*/%&|^!=<>]=?|\\?(?:\\.|:)?|[?:]/,\n /\\b(?:and|contains|eq|equal|eqv|gt|gte|imp|is|lt|lte|mod|not|or|xor)\\b/\n ],\n scope: {\n pattern:\n /\\b(?:application|arguments|cgi|client|cookie|local|session|super|this|variables)\\b/,\n alias: 'global'\n },\n type: {\n pattern:\n /\\b(?:any|array|binary|boolean|date|guid|numeric|query|string|struct|uuid|void|xml)\\b/,\n alias: 'builtin'\n }\n })\n Prism.languages.insertBefore('cfscript', 'keyword', {\n // This must be declared before keyword because we use \"function\" inside the lookahead\n 'function-variable': {\n pattern:\n /[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n }\n })\n delete Prism.languages.cfscript['class-name']\n Prism.languages.cfc = Prism.languages['cfscript']\n}\n","'use strict'\nvar refractorCpp = require('./cpp.js')\nmodule.exports = chaiscript\nchaiscript.displayName = 'chaiscript'\nchaiscript.aliases = []\nfunction chaiscript(Prism) {\n Prism.register(refractorCpp)\n Prism.languages.chaiscript = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': [\n {\n // e.g. class Rectangle { ... }\n pattern: /(\\bclass\\s+)\\w+/,\n lookbehind: true\n },\n {\n // e.g. attr Rectangle::height, def Rectangle::area() { ... }\n pattern: /(\\b(?:attr|def)\\s+)\\w+(?=\\s*::)/,\n lookbehind: true\n }\n ],\n keyword:\n /\\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\\b/,\n number: [Prism.languages.cpp.number, /\\b(?:Infinity|NaN)\\b/],\n operator:\n />>=?|<<=?|\\|\\||&&|:[:=]?|--|\\+\\+|[=!<>+\\-*/%|&^]=?|[?~]|`[^`\\r\\n]{1,4}`/\n })\n Prism.languages.insertBefore('chaiscript', 'operator', {\n 'parameter-type': {\n // e.g. def foo(int x, Vector y) {...}\n pattern: /([,(]\\s*)\\w+(?=\\s+\\w)/,\n lookbehind: true,\n alias: 'class-name'\n }\n })\n Prism.languages.insertBefore('chaiscript', 'string', {\n 'string-interpolation': {\n pattern:\n /(^|[^\\\\])\"(?:[^\"$\\\\]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-expression': {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: Prism.languages.chaiscript\n },\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = cil\ncil.displayName = 'cil'\ncil.aliases = []\nfunction cil(Prism) {\n Prism.languages.cil = {\n comment: /\\/\\/.*/,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n directive: {\n pattern: /(^|\\W)\\.[a-z]+(?=\\s)/,\n lookbehind: true,\n alias: 'class-name'\n },\n // Actually an assembly reference\n variable: /\\[[\\w\\.]+\\]/,\n keyword:\n /\\b(?:abstract|ansi|assembly|auto|autochar|beforefieldinit|bool|bstr|byvalstr|catch|char|cil|class|currency|date|decimal|default|enum|error|explicit|extends|extern|famandassem|family|famorassem|final(?:ly)?|float32|float64|hidebysig|u?int(?:8|16|32|64)?|iant|idispatch|implements|import|initonly|instance|interface|iunknown|literal|lpstr|lpstruct|lptstr|lpwstr|managed|method|native(?:Type)?|nested|newslot|object(?:ref)?|pinvokeimpl|private|privatescope|public|reqsecobj|rtspecialname|runtime|sealed|sequential|serializable|specialname|static|string|struct|syschar|tbstr|unicode|unmanagedexp|unsigned|value(?:type)?|variant|virtual|void)\\b/,\n function:\n /\\b(?:(?:constrained|no|readonly|tail|unaligned|volatile)\\.)?(?:conv\\.(?:[iu][1248]?|ovf\\.[iu][1248]?(?:\\.un)?|r\\.un|r4|r8)|ldc\\.(?:i4(?:\\.\\d+|\\.[mM]1|\\.s)?|i8|r4|r8)|ldelem(?:\\.[iu][1248]?|\\.r[48]|\\.ref|a)?|ldind\\.(?:[iu][1248]?|r[48]|ref)|stelem\\.?(?:i[1248]?|r[48]|ref)?|stind\\.(?:i[1248]?|r[48]|ref)?|end(?:fault|filter|finally)|ldarg(?:\\.[0-3s]|a(?:\\.s)?)?|ldloc(?:\\.\\d+|\\.s)?|sub(?:\\.ovf(?:\\.un)?)?|mul(?:\\.ovf(?:\\.un)?)?|add(?:\\.ovf(?:\\.un)?)?|stloc(?:\\.[0-3s])?|refany(?:type|val)|blt(?:\\.un)?(?:\\.s)?|ble(?:\\.un)?(?:\\.s)?|bgt(?:\\.un)?(?:\\.s)?|bge(?:\\.un)?(?:\\.s)?|unbox(?:\\.any)?|init(?:blk|obj)|call(?:i|virt)?|brfalse(?:\\.s)?|bne\\.un(?:\\.s)?|ldloca(?:\\.s)?|brzero(?:\\.s)?|brtrue(?:\\.s)?|brnull(?:\\.s)?|brinst(?:\\.s)?|starg(?:\\.s)?|leave(?:\\.s)?|shr(?:\\.un)?|rem(?:\\.un)?|div(?:\\.un)?|clt(?:\\.un)?|alignment|castclass|ldvirtftn|beq(?:\\.s)?|ckfinite|ldsflda|ldtoken|localloc|mkrefany|rethrow|cgt\\.un|arglist|switch|stsfld|sizeof|newobj|newarr|ldsfld|ldnull|ldflda|isinst|throw|stobj|stfld|ldstr|ldobj|ldlen|ldftn|ldfld|cpobj|cpblk|break|br\\.s|xor|shl|ret|pop|not|nop|neg|jmp|dup|cgt|ceq|box|and|or|br)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b-?(?:0x[0-9a-f]+|\\d+)(?:\\.[0-9a-f]+)?\\b/i,\n punctuation: /[{}[\\];(),:=]|IL_[0-9A-Za-z]+/\n }\n}\n","'use strict'\n\nmodule.exports = clike\nclike.displayName = 'clike'\nclike.aliases = []\nfunction clike(Prism) {\n Prism.languages.clike = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|trait)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b\\w+(?=\\()/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = clojure\nclojure.displayName = 'clojure'\nclojure.aliases = []\nfunction clojure(Prism) {\n // Copied from https://github.com/jeluard/prism-clojure\n Prism.languages.clojure = {\n comment: {\n pattern: /;.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n char: /\\\\\\w+/,\n symbol: {\n pattern: /(^|[\\s()\\[\\]{},])::?[\\w*+!?'<>=/.-]+/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(\\()(?:-|->|->>|\\.|\\.\\.|\\*|\\/|\\+|<|<=|=|==|>|>=|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|cond|conj|cons|constantly|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|declare|def|def-|definline|definterface|defmacro|defmethod|defmulti|defn|defn-|defonce|defproject|defprotocol|defrecord|defstruct|deftype|deref|difference|disj|dissoc|distinct|do|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|fn|fnseq|for|frest|gensym|get|get-proxy-class|hash-map|hash-set|identical\\?|identity|if|if-let|if-not|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|let|line-seq|list|list\\*|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|monitor-enter|name|namespace|neg\\?|new|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|quote|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|recur|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|set!|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|throw|time|to-array|to-array-2d|tree-seq|true\\?|try|union|up|update-proxy|val|vals|var|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[\\s)]|$)/,\n lookbehind: true\n },\n boolean: /\\b(?:false|nil|true)\\b/,\n number: {\n pattern:\n /(^|[^\\w$@])(?:\\d+(?:[/.]\\d+)?(?:e[+-]?\\d+)?|0x[a-f0-9]+|[1-9]\\d?r[a-z0-9]+)[lmn]?(?![\\w$@])/i,\n lookbehind: true\n },\n function: {\n pattern: /((?:^|[^'])\\()[\\w*+!?'<>=/.-]+(?=[\\s)]|$)/,\n lookbehind: true\n },\n operator: /[#@^`~]/,\n punctuation: /[{}\\[\\](),]/\n }\n}\n","'use strict'\n\nmodule.exports = cmake\ncmake.displayName = 'cmake'\ncmake.aliases = []\nfunction cmake(Prism) {\n Prism.languages.cmake = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{(?:[^{}$]|\\$\\{[^{}$]*\\})*\\}/,\n inside: {\n punctuation: /\\$\\{|\\}/,\n variable: /\\w+/\n }\n }\n }\n },\n variable:\n /\\b(?:CMAKE_\\w+|\\w+_(?:(?:BINARY|SOURCE)_DIR|DESCRIPTION|HOMEPAGE_URL|ROOT|VERSION(?:_MAJOR|_MINOR|_PATCH|_TWEAK)?)|(?:ANDROID|APPLE|BORLAND|BUILD_SHARED_LIBS|CACHE|CPACK_(?:ABSOLUTE_DESTINATION_FILES|COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY|ERROR_ON_ABSOLUTE_INSTALL_DESTINATION|INCLUDE_TOPLEVEL_DIRECTORY|INSTALL_DEFAULT_DIRECTORY_PERMISSIONS|INSTALL_SCRIPT|PACKAGING_INSTALL_PREFIX|SET_DESTDIR|WARN_ON_ABSOLUTE_INSTALL_DESTINATION)|CTEST_(?:BINARY_DIRECTORY|BUILD_COMMAND|BUILD_NAME|BZR_COMMAND|BZR_UPDATE_OPTIONS|CHANGE_ID|CHECKOUT_COMMAND|CONFIGURATION_TYPE|CONFIGURE_COMMAND|COVERAGE_COMMAND|COVERAGE_EXTRA_FLAGS|CURL_OPTIONS|CUSTOM_(?:COVERAGE_EXCLUDE|ERROR_EXCEPTION|ERROR_MATCH|ERROR_POST_CONTEXT|ERROR_PRE_CONTEXT|MAXIMUM_FAILED_TEST_OUTPUT_SIZE|MAXIMUM_NUMBER_OF_(?:ERRORS|WARNINGS)|MAXIMUM_PASSED_TEST_OUTPUT_SIZE|MEMCHECK_IGNORE|POST_MEMCHECK|POST_TEST|PRE_MEMCHECK|PRE_TEST|TESTS_IGNORE|WARNING_EXCEPTION|WARNING_MATCH)|CVS_CHECKOUT|CVS_COMMAND|CVS_UPDATE_OPTIONS|DROP_LOCATION|DROP_METHOD|DROP_SITE|DROP_SITE_CDASH|DROP_SITE_PASSWORD|DROP_SITE_USER|EXTRA_COVERAGE_GLOB|GIT_COMMAND|GIT_INIT_SUBMODULES|GIT_UPDATE_CUSTOM|GIT_UPDATE_OPTIONS|HG_COMMAND|HG_UPDATE_OPTIONS|LABELS_FOR_SUBPROJECTS|MEMORYCHECK_(?:COMMAND|COMMAND_OPTIONS|SANITIZER_OPTIONS|SUPPRESSIONS_FILE|TYPE)|NIGHTLY_START_TIME|P4_CLIENT|P4_COMMAND|P4_OPTIONS|P4_UPDATE_OPTIONS|RUN_CURRENT_SCRIPT|SCP_COMMAND|SITE|SOURCE_DIRECTORY|SUBMIT_URL|SVN_COMMAND|SVN_OPTIONS|SVN_UPDATE_OPTIONS|TEST_LOAD|TEST_TIMEOUT|TRIGGER_SITE|UPDATE_COMMAND|UPDATE_OPTIONS|UPDATE_VERSION_ONLY|USE_LAUNCHERS)|CYGWIN|ENV|EXECUTABLE_OUTPUT_PATH|GHS-MULTI|IOS|LIBRARY_OUTPUT_PATH|MINGW|MSVC(?:10|11|12|14|60|70|71|80|90|_IDE|_TOOLSET_VERSION|_VERSION)?|MSYS|PROJECT_(?:BINARY_DIR|DESCRIPTION|HOMEPAGE_URL|NAME|SOURCE_DIR|VERSION|VERSION_(?:MAJOR|MINOR|PATCH|TWEAK))|UNIX|WIN32|WINCE|WINDOWS_PHONE|WINDOWS_STORE|XCODE|XCODE_VERSION))\\b/,\n property:\n /\\b(?:cxx_\\w+|(?:ARCHIVE_OUTPUT_(?:DIRECTORY|NAME)|COMPILE_DEFINITIONS|COMPILE_PDB_NAME|COMPILE_PDB_OUTPUT_DIRECTORY|EXCLUDE_FROM_DEFAULT_BUILD|IMPORTED_(?:IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_LANGUAGES|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|NO_SONAME|OBJECTS|SONAME)|INTERPROCEDURAL_OPTIMIZATION|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_OUTPUT_NAME|LINK_FLAGS|LINK_INTERFACE_LIBRARIES|LINK_INTERFACE_MULTIPLICITY|LOCATION|MAP_IMPORTED_CONFIG|OSX_ARCHITECTURES|OUTPUT_NAME|PDB_NAME|PDB_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_DIRECTORY|RUNTIME_OUTPUT_NAME|STATIC_LIBRARY_FLAGS|VS_CSHARP|VS_DOTNET_REFERENCEPROP|VS_DOTNET_REFERENCE|VS_GLOBAL_SECTION_POST|VS_GLOBAL_SECTION_PRE|VS_GLOBAL|XCODE_ATTRIBUTE)_\\w+|\\w+_(?:CLANG_TIDY|COMPILER_LAUNCHER|CPPCHECK|CPPLINT|INCLUDE_WHAT_YOU_USE|OUTPUT_NAME|POSTFIX|VISIBILITY_PRESET)|ABSTRACT|ADDITIONAL_MAKE_CLEAN_FILES|ADVANCED|ALIASED_TARGET|ALLOW_DUPLICATE_CUSTOM_TARGETS|ANDROID_(?:ANT_ADDITIONAL_OPTIONS|API|API_MIN|ARCH|ASSETS_DIRECTORIES|GUI|JAR_DEPENDENCIES|NATIVE_LIB_DEPENDENCIES|NATIVE_LIB_DIRECTORIES|PROCESS_MAX|PROGUARD|PROGUARD_CONFIG_PATH|SECURE_PROPS_PATH|SKIP_ANT_STEP|STL_TYPE)|ARCHIVE_OUTPUT_DIRECTORY|ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|AUTOGEN_(?:BUILD_DIR|ORIGIN_DEPENDS|PARALLEL|SOURCE_GROUP|TARGETS_FOLDER|TARGET_DEPENDS)|AUTOMOC|AUTOMOC_(?:COMPILER_PREDEFINES|DEPEND_FILTERS|EXECUTABLE|MACRO_NAMES|MOC_OPTIONS|SOURCE_GROUP|TARGETS_FOLDER)|AUTORCC|AUTORCC_EXECUTABLE|AUTORCC_OPTIONS|AUTORCC_SOURCE_GROUP|AUTOUIC|AUTOUIC_EXECUTABLE|AUTOUIC_OPTIONS|AUTOUIC_SEARCH_PATHS|BINARY_DIR|BUILDSYSTEM_TARGETS|BUILD_RPATH|BUILD_RPATH_USE_ORIGIN|BUILD_WITH_INSTALL_NAME_DIR|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE_EXTENSION|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMMON_LANGUAGE_RUNTIME|COMPATIBLE_INTERFACE_(?:BOOL|NUMBER_MAX|NUMBER_MIN|STRING)|COMPILE_(?:DEFINITIONS|FEATURES|FLAGS|OPTIONS|PDB_NAME|PDB_OUTPUT_DIRECTORY)|COST|CPACK_DESKTOP_SHORTCUTS|CPACK_NEVER_OVERWRITE|CPACK_PERMANENT|CPACK_STARTUP_SHORTCUTS|CPACK_START_MENU_SHORTCUTS|CPACK_WIX_ACL|CROSSCOMPILING_EMULATOR|CUDA_EXTENSIONS|CUDA_PTX_COMPILATION|CUDA_RESOLVE_DEVICE_SYMBOLS|CUDA_SEPARABLE_COMPILATION|CUDA_STANDARD|CUDA_STANDARD_REQUIRED|CXX_EXTENSIONS|CXX_STANDARD|CXX_STANDARD_REQUIRED|C_EXTENSIONS|C_STANDARD|C_STANDARD_REQUIRED|DEBUG_CONFIGURATIONS|DEFINE_SYMBOL|DEFINITIONS|DEPENDS|DEPLOYMENT_ADDITIONAL_FILES|DEPLOYMENT_REMOTE_DIRECTORY|DISABLED|DISABLED_FEATURES|ECLIPSE_EXTRA_CPROJECT_CONTENTS|ECLIPSE_EXTRA_NATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|ENABLE_EXPORTS|ENVIRONMENT|EXCLUDE_FROM_ALL|EXCLUDE_FROM_DEFAULT_BUILD|EXPORT_NAME|EXPORT_PROPERTIES|EXTERNAL_OBJECT|EchoString|FAIL_REGULAR_EXPRESSION|FIND_LIBRARY_USE_LIB32_PATHS|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_LIBX32_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|FIXTURES_CLEANUP|FIXTURES_REQUIRED|FIXTURES_SETUP|FOLDER|FRAMEWORK|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GENERATED|GENERATOR_FILE_NAME|GENERATOR_IS_MULTI_CONFIG|GHS_INTEGRITY_APP|GHS_NO_SOURCE_GROUP_FILE|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|GNUtoMS|HAS_CXX|HEADER_FILE_ONLY|HELPSTRING|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(?:COMMON_LANGUAGE_RUNTIME|CONFIGURATIONS|GLOBAL|IMPLIB|LIBNAME|LINK_DEPENDENT_LIBRARIES|LINK_INTERFACE_(?:LANGUAGES|LIBRARIES|MULTIPLICITY)|LOCATION|NO_SONAME|OBJECTS|SONAME)|IMPORT_PREFIX|IMPORT_SUFFIX|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE_(?:AUTOUIC_OPTIONS|COMPILE_DEFINITIONS|COMPILE_FEATURES|COMPILE_OPTIONS|INCLUDE_DIRECTORIES|LINK_DEPENDS|LINK_DIRECTORIES|LINK_LIBRARIES|LINK_OPTIONS|POSITION_INDEPENDENT_CODE|SOURCES|SYSTEM_INCLUDE_DIRECTORIES)|INTERPROCEDURAL_OPTIMIZATION|IN_TRY_COMPILE|IOS_INSTALL_COMBINED|JOB_POOLS|JOB_POOL_COMPILE|JOB_POOL_LINK|KEEP_EXTENSION|LABELS|LANGUAGE|LIBRARY_OUTPUT_DIRECTORY|LINKER_LANGUAGE|LINK_(?:DEPENDS|DEPENDS_NO_SHARED|DIRECTORIES|FLAGS|INTERFACE_LIBRARIES|INTERFACE_MULTIPLICITY|LIBRARIES|OPTIONS|SEARCH_END_STATIC|SEARCH_START_STATIC|WHAT_YOU_USE)|LISTFILE_STACK|LOCATION|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MACOSX_PACKAGE_LOCATION|MACOSX_RPATH|MACROS|MANUALLY_ADDED_DEPENDENCIES|MEASUREMENT|MODIFIED|NAME|NO_SONAME|NO_SYSTEM_FROM_IMPORTED|OBJECT_DEPENDS|OBJECT_OUTPUTS|OSX_ARCHITECTURES|OUTPUT_NAME|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PARENT_DIRECTORY|PASS_REGULAR_EXPRESSION|PDB_NAME|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|POST_INSTALL_SCRIPT|PREDEFINED_TARGETS_FOLDER|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE_HEADER|PROCESSORS|PROCESSOR_AFFINITY|PROJECT_LABEL|PUBLIC_HEADER|REPORT_UNDEFINED_PROPERTIES|REQUIRED_FILES|RESOURCE|RESOURCE_LOCK|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|RUNTIME_OUTPUT_DIRECTORY|RUN_SERIAL|SKIP_AUTOGEN|SKIP_AUTOMOC|SKIP_AUTORCC|SKIP_AUTOUIC|SKIP_BUILD_RPATH|SKIP_RETURN_CODE|SOURCES|SOURCE_DIR|SOVERSION|STATIC_LIBRARY_FLAGS|STATIC_LIBRARY_OPTIONS|STRINGS|SUBDIRECTORIES|SUFFIX|SYMBOLIC|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_MESSAGES|TARGET_SUPPORTS_SHARED_LIBS|TESTS|TEST_INCLUDE_FILE|TEST_INCLUDE_FILES|TIMEOUT|TIMEOUT_AFTER_MATCH|TYPE|USE_FOLDERS|VALUE|VARIABLES|VERSION|VISIBILITY_INLINES_HIDDEN|VS_(?:CONFIGURATION_TYPE|COPY_TO_OUT_DIR|DEBUGGER_(?:COMMAND|COMMAND_ARGUMENTS|ENVIRONMENT|WORKING_DIRECTORY)|DEPLOYMENT_CONTENT|DEPLOYMENT_LOCATION|DOTNET_REFERENCES|DOTNET_REFERENCES_COPY_LOCAL|GLOBAL_KEYWORD|GLOBAL_PROJECT_TYPES|GLOBAL_ROOTNAMESPACE|INCLUDE_IN_VSIX|IOT_STARTUP_TASK|KEYWORD|RESOURCE_GENERATOR|SCC_AUXPATH|SCC_LOCALPATH|SCC_PROJECTNAME|SCC_PROVIDER|SDK_REFERENCES|SHADER_(?:DISABLE_OPTIMIZATIONS|ENABLE_DEBUG|ENTRYPOINT|FLAGS|MODEL|OBJECT_FILE_NAME|OUTPUT_HEADER_FILE|TYPE|VARIABLE_NAME)|STARTUP_PROJECT|TOOL_OVERRIDE|USER_PROPS|WINRT_COMPONENT|WINRT_EXTENSIONS|WINRT_REFERENCES|XAML_TYPE)|WILL_FAIL|WIN32_EXECUTABLE|WINDOWS_EXPORT_ALL_SYMBOLS|WORKING_DIRECTORY|WRAP_EXCLUDE|XCODE_(?:EMIT_EFFECTIVE_PLATFORM_NAME|EXPLICIT_FILE_TYPE|FILE_ATTRIBUTES|LAST_KNOWN_FILE_TYPE|PRODUCT_TYPE|SCHEME_(?:ADDRESS_SANITIZER|ADDRESS_SANITIZER_USE_AFTER_RETURN|ARGUMENTS|DISABLE_MAIN_THREAD_CHECKER|DYNAMIC_LIBRARY_LOADS|DYNAMIC_LINKER_API_USAGE|ENVIRONMENT|EXECUTABLE|GUARD_MALLOC|MAIN_THREAD_CHECKER_STOP|MALLOC_GUARD_EDGES|MALLOC_SCRIBBLE|MALLOC_STACK|THREAD_SANITIZER(?:_STOP)?|UNDEFINED_BEHAVIOUR_SANITIZER(?:_STOP)?|ZOMBIE_OBJECTS))|XCTEST)\\b/,\n keyword:\n /\\b(?:add_compile_definitions|add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_link_options|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_parse_arguments|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_guard|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_directories|target_link_libraries|target_link_options|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)(?=\\s*\\()\\b/,\n boolean: /\\b(?:FALSE|OFF|ON|TRUE)\\b/,\n namespace:\n /\\b(?:INTERFACE|PRIVATE|PROPERTIES|PUBLIC|SHARED|STATIC|TARGET_OBJECTS)\\b/,\n operator:\n /\\b(?:AND|DEFINED|EQUAL|GREATER|LESS|MATCHES|NOT|OR|STREQUAL|STRGREATER|STRLESS|VERSION_EQUAL|VERSION_GREATER|VERSION_LESS)\\b/,\n inserted: {\n pattern: /\\b\\w+::\\w+\\b/,\n alias: 'class-name'\n },\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()\\b/i,\n punctuation: /[()>}]|\\$[<{]/\n }\n}\n","'use strict'\n\nmodule.exports = cobol\ncobol.displayName = 'cobol'\ncobol.aliases = []\nfunction cobol(Prism) {\n Prism.languages.cobol = {\n comment: {\n pattern: /\\*>.*|(^[ \\t]*)\\*.*/m,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /[xzgn]?(?:\"(?:[^\\r\\n\"]|\"\")*\"(?!\")|'(?:[^\\r\\n']|'')*'(?!'))/i,\n greedy: true\n },\n level: {\n pattern: /(^[ \\t]*)\\d+\\b/m,\n lookbehind: true,\n greedy: true,\n alias: 'number'\n },\n 'class-name': {\n // https://github.com/antlr/grammars-v4/blob/42edd5b687d183b5fa679e858a82297bd27141e7/cobol85/Cobol85.g4#L1015\n pattern:\n /(\\bpic(?:ture)?\\s+)(?:(?:[-\\w$/,:*+<>]|\\.(?!\\s|$))(?:\\(\\d+\\))?)+/i,\n lookbehind: true,\n inside: {\n number: {\n pattern: /(\\()\\d+/,\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n keyword: {\n pattern:\n /(^|[^\\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\\w-])/i,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^\\w-])(?:false|true)(?![\\w-])/i,\n lookbehind: true\n },\n number: {\n pattern:\n /(^|[^\\w-])(?:[+-]?(?:(?:\\d+(?:[.,]\\d+)?|[.,]\\d+)(?:e[+-]?\\d+)?|zero))(?![\\w-])/i,\n lookbehind: true\n },\n operator: [\n /<>|[<>]=?|[=+*/&]/,\n {\n pattern: /(^|[^\\w-])(?:-|and|equal|greater|less|not|or|than)(?![\\w-])/i,\n lookbehind: true\n }\n ],\n punctuation: /[.:,()]/\n }\n}\n","'use strict'\n\nmodule.exports = coffeescript\ncoffeescript.displayName = 'coffeescript'\ncoffeescript.aliases = ['coffee']\nfunction coffeescript(Prism) {\n ;(function (Prism) {\n // Ignore comments starting with { to privilege string interpolation highlighting\n var comment = /#(?!\\{).+/\n var interpolation = {\n pattern: /#\\{[^}]+\\}/,\n alias: 'variable'\n }\n Prism.languages.coffeescript = Prism.languages.extend('javascript', {\n comment: comment,\n string: [\n // Strings are multiline\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n greedy: true\n },\n {\n // Strings are multiline\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true,\n inside: {\n interpolation: interpolation\n }\n }\n ],\n keyword:\n /\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\n 'class-member': {\n pattern: /@(?!\\d)\\w+/,\n alias: 'variable'\n }\n })\n Prism.languages.insertBefore('coffeescript', 'comment', {\n 'multiline-comment': {\n pattern: /###[\\s\\S]+?###/,\n alias: 'comment'\n },\n // Block regexp can contain comments and interpolation\n 'block-regex': {\n pattern: /\\/{3}[\\s\\S]*?\\/{3}/,\n alias: 'regex',\n inside: {\n comment: comment,\n interpolation: interpolation\n }\n }\n })\n Prism.languages.insertBefore('coffeescript', 'string', {\n 'inline-javascript': {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n },\n script: {\n pattern: /[\\s\\S]+/,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n }\n }\n },\n // Block strings\n 'multiline-string': [\n {\n pattern: /'''[\\s\\S]*?'''/,\n greedy: true,\n alias: 'string'\n },\n {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string',\n inside: {\n interpolation: interpolation\n }\n }\n ]\n })\n Prism.languages.insertBefore('coffeescript', 'keyword', {\n // Object property\n property: /(?!\\d)\\w+(?=\\s*:(?!:))/\n })\n delete Prism.languages.coffeescript['template-string']\n Prism.languages.coffee = Prism.languages.coffeescript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = concurnas\nconcurnas.displayName = 'concurnas'\nconcurnas.aliases = ['conc']\nfunction concurnas(Prism) {\n Prism.languages.concurnas = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n langext: {\n pattern: /\\b\\w+\\s*\\|\\|[\\s\\S]+?\\|\\|/,\n greedy: true,\n inside: {\n 'class-name': /^\\w+/,\n string: {\n pattern: /(^\\s*\\|\\|)[\\s\\S]+(?=\\|\\|$)/,\n lookbehind: true\n },\n punctuation: /\\|\\|/\n }\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/,\n lookbehind: true\n },\n keyword:\n /\\b(?:abstract|actor|also|annotation|assert|async|await|bool|boolean|break|byte|case|catch|changed|char|class|closed|constant|continue|def|default|del|double|elif|else|enum|every|extends|false|finally|float|for|from|global|gpudef|gpukernel|if|import|in|init|inject|int|lambda|local|long|loop|match|new|nodefault|null|of|onchange|open|out|override|package|parfor|parforsync|post|pre|private|protected|provide|provider|public|return|shared|short|single|size_t|sizeof|super|sync|this|throw|trait|trans|transient|true|try|typedef|unchecked|using|val|var|void|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number:\n /\\b0b[01][01_]*L?\\b|\\b0x(?:[\\da-f_]*\\.)?[\\da-f_p+-]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfls]?/i,\n punctuation: /[{}[\\];(),.:]/,\n operator:\n /<==|>==|=>|->|<-|<>|&==|&<>|\\?:?|\\.\\?|\\+\\+|--|[-+*/=<>]=?|[!^~]|\\b(?:and|as|band|bor|bxor|comp|is|isnot|mod|or)\\b=?/,\n annotation: {\n pattern: /@(?:\\w+:)?(?:\\w+|\\[[^\\]]+\\])?/,\n alias: 'builtin'\n }\n }\n Prism.languages.insertBefore('concurnas', 'langext', {\n 'regex-literal': {\n pattern: /\\br(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: Prism.languages.concurnas\n },\n regex: /[\\s\\S]+/\n }\n },\n 'string-literal': {\n pattern: /(?:\\B|\\bs)(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: Prism.languages.concurnas\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.conc = Prism.languages.concurnas\n}\n","'use strict'\n\nmodule.exports = coq\ncoq.displayName = 'coq'\ncoq.aliases = []\nfunction coq(Prism) {\n ;(function (Prism) {\n // https://github.com/coq/coq\n var commentSource = /\\(\\*(?:[^(*]|\\((?!\\*)|\\*(?!\\))|<self>)*\\*\\)/.source\n for (var i = 0; i < 2; i++) {\n commentSource = commentSource.replace(/<self>/g, function () {\n return commentSource\n })\n }\n commentSource = commentSource.replace(/<self>/g, '[]')\n Prism.languages.coq = {\n comment: RegExp(commentSource),\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n attribute: [\n {\n pattern: RegExp(\n /#\\[(?:[^\\[\\](\"]|\"(?:[^\"]|\"\")*\"(?!\")|\\((?!\\*)|<comment>)*\\]/.source.replace(\n /<comment>/g,\n function () {\n return commentSource\n }\n )\n ),\n greedy: true,\n alias: 'attr-name',\n inside: {\n comment: RegExp(commentSource),\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n operator: /=/,\n punctuation: /^#\\[|\\]$|[,()]/\n }\n },\n {\n pattern:\n /\\b(?:Cumulative|Global|Local|Monomorphic|NonCumulative|Polymorphic|Private|Program)\\b/,\n alias: 'attr-name'\n }\n ],\n keyword:\n /\\b(?:Abort|About|Add|Admit|Admitted|All|Arguments|As|Assumptions|Axiom|Axioms|Back|BackTo|Backtrace|BinOp|BinOpSpec|BinRel|Bind|Blacklist|Canonical|Case|Cd|Check|Class|Classes|Close|CoFixpoint|CoInductive|Coercion|Coercions|Collection|Combined|Compute|Conjecture|Conjectures|Constant|Constants|Constraint|Constructors|Context|Corollary|Create|CstOp|Custom|Cut|Debug|Declare|Defined|Definition|Delimit|Dependencies|Dependent|Derive|Diffs|Drop|Elimination|End|Entry|Equality|Eval|Example|Existential|Existentials|Existing|Export|Extern|Extraction|Fact|Fail|Field|File|Firstorder|Fixpoint|Flags|Focus|From|Funclass|Function|Functional|GC|Generalizable|Goal|Grab|Grammar|Graph|Guarded|Haskell|Heap|Hide|Hint|HintDb|Hints|Hypotheses|Hypothesis|IF|Identity|Immediate|Implicit|Implicits|Import|Include|Induction|Inductive|Infix|Info|Initial|InjTyp|Inline|Inspect|Instance|Instances|Intro|Intros|Inversion|Inversion_clear|JSON|Language|Left|Lemma|Let|Lia|Libraries|Library|Load|LoadPath|Locate|Ltac|Ltac2|ML|Match|Method|Minimality|Module|Modules|Morphism|Next|NoInline|Notation|Number|OCaml|Obligation|Obligations|Opaque|Open|Optimize|Parameter|Parameters|Parametric|Path|Paths|Prenex|Preterm|Primitive|Print|Profile|Projections|Proof|Prop|PropBinOp|PropOp|PropUOp|Property|Proposition|Pwd|Qed|Quit|Rec|Record|Recursive|Redirect|Reduction|Register|Relation|Remark|Remove|Require|Reserved|Reset|Resolve|Restart|Rewrite|Right|Ring|Rings|SProp|Saturate|Save|Scheme|Scope|Scopes|Search|SearchHead|SearchPattern|SearchRewrite|Section|Separate|Set|Setoid|Show|Signatures|Solve|Solver|Sort|Sortclass|Sorted|Spec|Step|Strategies|Strategy|String|Structure|SubClass|Subgraph|SuchThat|Tactic|Term|TestCompile|Theorem|Time|Timeout|To|Transparent|Type|Typeclasses|Types|Typing|UnOp|UnOpSpec|Undelimit|Undo|Unfocus|Unfocused|Unfold|Universe|Universes|Unshelve|Variable|Variables|Variant|Verbose|View|Visibility|Zify|_|apply|as|at|by|cofix|else|end|exists|exists2|fix|for|forall|fun|if|in|let|match|measure|move|removed|return|struct|then|using|wf|where|with)\\b/,\n number:\n /\\b(?:0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]+)?(?:p[+-]?\\d[\\d_]*)?|\\d[\\d_]*(?:\\.[\\d_]+)?(?:e[+-]?\\d[\\d_]*)?)\\b/i,\n punct: {\n pattern: /@\\{|\\{\\||\\[=|:>/,\n alias: 'punctuation'\n },\n operator:\n /\\/\\\\|\\\\\\/|\\.{2,3}|:{1,2}=|\\*\\*|[-=]>|<(?:->?|[+:=>]|<:)|>(?:=|->)|\\|[-|]?|[-!%&*+/<=>?@^~']/,\n punctuation: /\\.\\(|`\\(|@\\{|`\\{|\\{\\||\\[=|:>|[:.,;(){}\\[\\]]/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = cpp\ncpp.displayName = 'cpp'\ncpp.aliases = []\nfunction cpp(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n var keyword =\n /\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/\n var modName = /\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b/.source.replace(\n /<keyword>/g,\n function () {\n return keyword.source\n }\n )\n Prism.languages.cpp = Prism.languages.extend('c', {\n 'class-name': [\n {\n pattern: RegExp(\n /(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+/.source.replace(\n /<keyword>/g,\n function () {\n return keyword.source\n }\n )\n ),\n lookbehind: true\n }, // This is intended to capture the class name of method implementations like:\n // void foo::bar() const {}\n // However! The `foo` in the above example could also be a namespace, so we only capture the class name if\n // it starts with an uppercase letter. This approximation should give decent results.\n /\\b[A-Z]\\w*(?=\\s*::\\s*\\w+\\s*\\()/, // This will capture the class name before destructors like:\n // Foo::~Foo() {}\n /\\b[A-Z_]\\w*(?=\\s*::\\s*~\\w+\\s*\\()/i, // This also intends to capture the class name of method implementations but here the class has template\n // parameters, so it can't be a namespace (until C++ adds generic namespaces).\n /\\b\\w+(?=\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\\s*::\\s*\\w+\\s*\\()/\n ],\n keyword: keyword,\n number: {\n pattern:\n /(?:\\b0b[01']+|\\b0x(?:[\\da-f']+(?:\\.[\\da-f']*)?|\\.[\\da-f']+)(?:p[+-]?[\\d']+)?|(?:\\b[\\d']+(?:\\.[\\d']*)?|\\B\\.[\\d']+)(?:e[+-]?[\\d']+)?)[ful]{0,4}/i,\n greedy: true\n },\n operator:\n />>=?|<<=?|->|--|\\+\\+|&&|\\|\\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/,\n boolean: /\\b(?:false|true)\\b/\n })\n Prism.languages.insertBefore('cpp', 'string', {\n module: {\n // https://en.cppreference.com/w/cpp/language/modules\n pattern: RegExp(\n /(\\b(?:import|module)\\s+)/.source +\n '(?:' + // header-name\n /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|<[^<>\\r\\n]*>/.source +\n '|' + // module name or partition or both\n /<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>/.source.replace(\n /<mod-name>/g,\n function () {\n return modName\n }\n ) +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n string: /^[<\"][\\s\\S]+/,\n operator: /:/,\n punctuation: /\\./\n }\n },\n 'raw-string': {\n pattern: /R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,\n alias: 'string',\n greedy: true\n }\n })\n Prism.languages.insertBefore('cpp', 'keyword', {\n 'generic-function': {\n pattern: /\\b(?!operator\\b)[a-z_]\\w*\\s*<(?:[^<>]|<[^<>]*>)*>(?=\\s*\\()/i,\n inside: {\n function: /^\\w+/,\n generic: {\n pattern: /<[\\s\\S]+/,\n alias: 'class-name',\n inside: Prism.languages.cpp\n }\n }\n }\n })\n Prism.languages.insertBefore('cpp', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('cpp', 'class-name', {\n // the base clause is an optional list of parent classes\n // https://en.cppreference.com/w/cpp/language/class\n 'base-clause': {\n pattern:\n /(\\b(?:class|struct)\\s+\\w+\\s*:\\s*)[^;{}\"'\\s]+(?:\\s+[^;{}\"'\\s]+)*(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.extend('cpp', {})\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'double-colon',\n {\n // All untokenized words that are not namespaces should be class names\n 'class-name': /\\b[a-z_]\\w*\\b(?!\\s*::)/i\n },\n Prism.languages.cpp['base-clause']\n )\n })(Prism)\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = crystal\ncrystal.displayName = 'crystal'\ncrystal.aliases = []\nfunction crystal(Prism) {\n Prism.register(refractorRuby)\n ;(function (Prism) {\n Prism.languages.crystal = Prism.languages.extend('ruby', {\n keyword: [\n /\\b(?:__DIR__|__END_LINE__|__FILE__|__LINE__|abstract|alias|annotation|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|ifdef|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|ptr|require|rescue|return|select|self|sizeof|struct|super|then|type|typeof|undef|uninitialized|union|unless|until|when|while|with|yield)\\b/,\n {\n pattern: /(\\.\\s*)(?:is_a|responds_to)\\?/,\n lookbehind: true\n }\n ],\n number:\n /\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/,\n operator: [/->/, Prism.languages.ruby.operator],\n punctuation: /[(){}[\\].,;\\\\]/\n })\n Prism.languages.insertBefore('crystal', 'string-literal', {\n attribute: {\n pattern: /@\\[.*?\\]/,\n inside: {\n delimiter: {\n pattern: /^@\\[|\\]$/,\n alias: 'punctuation'\n },\n attribute: {\n pattern: /^(\\s*)\\w+/,\n lookbehind: true,\n alias: 'class-name'\n },\n args: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.crystal\n }\n }\n },\n expansion: {\n pattern: /\\{(?:\\{.*?\\}|%.*?%)\\}/,\n inside: {\n content: {\n pattern: /^(\\{.)[\\s\\S]+(?=.\\}$)/,\n lookbehind: true,\n inside: Prism.languages.crystal\n },\n delimiter: {\n pattern: /^\\{[\\{%]|[\\}%]\\}$/,\n alias: 'operator'\n }\n }\n },\n char: {\n pattern:\n /'(?:[^\\\\\\r\\n]{1,2}|\\\\(?:.|u(?:[A-Fa-f0-9]{1,4}|\\{[A-Fa-f0-9]{1,6}\\})))'/,\n greedy: true\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csharp\ncsharp.displayName = 'csharp'\ncsharp.aliases = ['dotnet', 'cs']\nfunction csharp(Prism) {\n ;(function (Prism) {\n /**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')'\n })\n }\n /**\n * @param {string} pattern\n * @param {string[]} replacements\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n } // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/\n var keywordKinds = {\n // keywords which represent a return or variable type\n type: 'bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void',\n // keywords which are used to declare a type\n typeDeclaration: 'class enum interface record struct',\n // contextual keywords\n // (\"var\" and \"dynamic\" are missing because they are used like types)\n contextual:\n 'add alias and ascending async await by descending from(?=\\\\s*(?:\\\\w|$)) get global group into init(?=\\\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\\\s*{)',\n // all other keywords\n other:\n 'abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield'\n } // keywords\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n }\n var typeDeclarationKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration\n )\n var keywords = RegExp(\n keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n )\n var nonTypeKeywords = keywordsToPattern(\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.contextual +\n ' ' +\n keywordKinds.other\n )\n var nonContextualKeywords = keywordsToPattern(\n keywordKinds.type +\n ' ' +\n keywordKinds.typeDeclaration +\n ' ' +\n keywordKinds.other\n ) // types\n var generic = nested(/<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>/.source, 2) // the idea behind the other forbidden characters is to prevent false positives. Same for tupleElement.\n var nestedRound = nested(/\\((?:[^()]|<<self>>)*\\)/.source, 2)\n var name = /@?\\b[A-Za-z_]\\w*\\b/.source\n var genericName = replace(/<<0>>(?:\\s*<<1>>)?/.source, [name, generic])\n var identifier = replace(/(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*/.source, [\n nonTypeKeywords,\n genericName\n ])\n var array = /\\[\\s*(?:,\\s*)*\\]/.source\n var typeExpressionWithoutTuple = replace(\n /<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?/.source,\n [identifier, array]\n )\n var tupleElement = replace(\n /[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,\n [generic, nestedRound, array]\n )\n var tuple = replace(/\\(<<0>>+(?:,<<0>>+)+\\)/.source, [tupleElement])\n var typeExpression = replace(\n /(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?/.source,\n [tuple, identifier, array]\n )\n var typeInside = {\n keyword: keywords,\n punctuation: /[<>()?,.:[\\]]/\n } // strings & characters\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#character-literals\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#string-literals\n var character = /'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'/.source // simplified pattern\n var regularString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/.source\n var verbatimString = /@\"(?:\"\"|\\\\[\\s\\S]|[^\\\\\"])*\"(?!\")/.source\n Prism.languages.csharp = Prism.languages.extend('clike', {\n string: [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [verbatimString]),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: re(/(^|[^@$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n }\n ],\n 'class-name': [\n {\n // Using static\n // using static System.Math;\n pattern: re(/(\\busing\\s+static\\s+)<<0>>(?=\\s*;)/.source, [\n identifier\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (type)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)/.source, [\n name,\n typeExpression\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Using alias (alias)\n // using Project = PC.MyCompany.Project;\n pattern: re(/(\\busing\\s+)<<0>>(?=\\s*=)/.source, [name]),\n lookbehind: true\n },\n {\n // Type declarations\n // class Foo<A, B>\n // interface Foo<out A, B>\n pattern: re(/(\\b<<0>>\\s+)<<1>>/.source, [\n typeDeclarationKeywords,\n genericName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Single catch exception declaration\n // catch(Foo)\n // (things like catch(Foo e) is covered by variable declaration)\n pattern: re(/(\\bcatch\\s*\\(\\s*)<<0>>/.source, [identifier]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Name of the type parameter of generic constraints\n // where Foo : class\n pattern: re(/(\\bwhere\\s+)<<0>>/.source, [name]),\n lookbehind: true\n },\n {\n // Casts and checks via as and is.\n // as Foo<A>, is Bar<B>\n // (things like if(a is Foo b) is covered by variable declaration)\n pattern: re(/(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>/.source, [\n typeExpressionWithoutTuple\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // Variable, field and parameter declaration\n // (Foo bar, Bar baz, Foo[,,] bay, Foo<Bar, FooBar<Bar>> bax)\n pattern: re(\n /\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))/\n .source,\n [typeExpression, nonContextualKeywords, name]\n ),\n inside: typeInside\n }\n ],\n keyword: keywords,\n // https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/lexical-structure#literals\n number:\n /(?:\\b0(?:x[\\da-f_]*[\\da-f]|b[01_]*[01])|(?:\\B\\.\\d+(?:_+\\d+)*|\\b\\d+(?:_+\\d+)*(?:\\.\\d+(?:_+\\d+)*)?)(?:e[-+]?\\d+(?:_+\\d+)*)?)(?:[dflmu]|lu|ul)?\\b/i,\n operator: />>=?|<<=?|[-=]>|([-+&|])\\1|~|\\?\\?=?|[-+*/%&|^!=<>]=?/,\n punctuation: /\\?\\.?|::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('csharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('csharp', 'punctuation', {\n 'named-parameter': {\n pattern: re(/([(,]\\s*)<<0>>(?=\\s*:)/.source, [name]),\n lookbehind: true,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('csharp', 'class-name', {\n namespace: {\n // namespace Foo.Bar {}\n // using Foo.Bar;\n pattern: re(\n /(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])/.source,\n [name]\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n 'type-expression': {\n // default(Foo), typeof(Foo<Bar>), sizeof(int)\n pattern: re(\n /(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))/\n .source,\n [nestedRound]\n ),\n lookbehind: true,\n alias: 'class-name',\n inside: typeInside\n },\n 'return-type': {\n // Foo<Bar> ForBar(); Foo IFoo.Bar() => 0\n // int this[int index] => 0; T IReadOnlyList<T>.this[int index] => this[index];\n // int Foo => 0; int Foo { get; set } = 0;\n pattern: re(\n /<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))/.source,\n [typeExpression, identifier]\n ),\n inside: typeInside,\n alias: 'class-name'\n },\n 'constructor-invocation': {\n // new List<Foo<Bar[]>> { }\n pattern: re(/(\\bnew\\s+)<<0>>(?=\\s*[[({])/.source, [typeExpression]),\n lookbehind: true,\n inside: typeInside,\n alias: 'class-name'\n },\n /*'explicit-implementation': {\n// int IFoo<Foo>.Bar => 0; void IFoo<Foo<Foo>>.Foo<T>();\npattern: replace(/\\b<<0>>(?=\\.<<1>>)/, className, methodOrPropertyDeclaration),\ninside: classNameInside,\nalias: 'class-name'\n},*/\n 'generic-method': {\n // foo<Bar>()\n pattern: re(/<<0>>\\s*<<1>>(?=\\s*\\()/.source, [name, generic]),\n inside: {\n function: re(/^<<0>>/.source, [name]),\n generic: {\n pattern: RegExp(generic),\n alias: 'class-name',\n inside: typeInside\n }\n }\n },\n 'type-list': {\n // The list of types inherited or of generic constraints\n // class Foo<F> : Bar, IList<FooBar>\n // where F : Bar, IList<int>\n pattern: re(\n /\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))/\n .source,\n [\n typeDeclarationKeywords,\n genericName,\n name,\n typeExpression,\n keywords.source,\n nestedRound,\n /\\bnew\\s*\\(\\s*\\)/.source\n ]\n ),\n lookbehind: true,\n inside: {\n 'record-arguments': {\n pattern: re(/(^(?!new\\s*\\()<<0>>\\s*)<<1>>/.source, [\n genericName,\n nestedRound\n ]),\n lookbehind: true,\n greedy: true,\n inside: Prism.languages.csharp\n },\n keyword: keywords,\n 'class-name': {\n pattern: RegExp(typeExpression),\n greedy: true,\n inside: typeInside\n },\n punctuation: /[,()]/\n }\n },\n preprocessor: {\n pattern: /(^[\\t ]*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n // highlight preprocessor directives as keywords\n directive: {\n pattern:\n /(#)\\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n }) // attributes\n var regularStringOrCharacter = regularString + '|' + character\n var regularStringCharacterOrComment = replace(\n /\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>/.source,\n [regularStringOrCharacter]\n )\n var roundExpression = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n ) // https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/attributes/#attribute-targets\n var attrTarget =\n /\\b(?:assembly|event|field|method|module|param|property|return|type)\\b/\n .source\n var attr = replace(/<<0>>(?:\\s*\\(<<1>>*\\))?/.source, [\n identifier,\n roundExpression\n ])\n Prism.languages.insertBefore('csharp', 'class-name', {\n attribute: {\n // Attributes\n // [Foo], [Foo(1), Bar(2, Prop = \"foo\")], [return: Foo(1), Bar(2)], [assembly: Foo(Bar)]\n pattern: re(\n /((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])/\n .source,\n [attrTarget, attr]\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n target: {\n pattern: re(/^<<0>>(?=\\s*:)/.source, [attrTarget]),\n alias: 'keyword'\n },\n 'attribute-arguments': {\n pattern: re(/\\(<<0>>*\\)/.source, [roundExpression]),\n inside: Prism.languages.csharp\n },\n 'class-name': {\n pattern: RegExp(identifier),\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[:,]/\n }\n }\n }) // string interpolation\n var formatString = /:[^}\\r\\n]+/.source // multi line\n var mInterpolationRound = nested(\n replace(/[^\"'/()]|<<0>>|\\(<<self>>*\\)/.source, [\n regularStringCharacterOrComment\n ]),\n 2\n )\n var mInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n mInterpolationRound,\n formatString\n ]) // single line\n var sInterpolationRound = nested(\n replace(\n /[^\"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)/\n .source,\n [regularStringOrCharacter]\n ),\n 2\n )\n var sInterpolation = replace(/\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}/.source, [\n sInterpolationRound,\n formatString\n ])\n function createInterpolationInside(interpolation, interpolationRound) {\n return {\n interpolation: {\n pattern: re(/((?:^|[^{])(?:\\{\\{)*)<<0>>/.source, [interpolation]),\n lookbehind: true,\n inside: {\n 'format-string': {\n pattern: re(/(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)/.source, [\n interpolationRound,\n formatString\n ]),\n lookbehind: true,\n inside: {\n punctuation: /^:/\n }\n },\n punctuation: /^\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n alias: 'language-csharp',\n inside: Prism.languages.csharp\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n Prism.languages.insertBefore('csharp', 'string', {\n 'interpolation-string': [\n {\n pattern: re(\n /(^|[^\\\\])(?:\\$@|@\\$)\"(?:\"\"|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{\"])*\"/.source,\n [mInterpolation]\n ),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(mInterpolation, mInterpolationRound)\n },\n {\n pattern: re(/(^|[^@\\\\])\\$\"(?:\\\\.|\\{\\{|<<0>>|[^\\\\\"{])*\"/.source, [\n sInterpolation\n ]),\n lookbehind: true,\n greedy: true,\n inside: createInterpolationInside(sInterpolation, sInterpolationRound)\n }\n ],\n char: {\n pattern: RegExp(character),\n greedy: true\n }\n })\n Prism.languages.dotnet = Prism.languages.cs = Prism.languages.csharp\n })(Prism)\n}\n","'use strict'\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = cshtml\ncshtml.displayName = 'cshtml'\ncshtml.aliases = ['razor']\nfunction cshtml(Prism) {\n Prism.register(refractorCsharp)\n // Docs:\n // https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-5.0&tabs=visual-studio\n // https://docs.microsoft.com/en-us/aspnet/core/mvc/views/razor?view=aspnetcore-5.0\n ;(function (Prism) {\n var commentLike = /\\/(?![/*])|\\/\\/.*[\\r\\n]|\\/\\*[^*]*(?:\\*(?!\\/)[^*]*)*\\*\\//\n .source\n var stringLike =\n /@(?!\")|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|@\"(?:[^\\\\\"]|\"\"|\\\\[\\s\\S])*\"(?!\")/.source +\n '|' +\n /'(?:(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'|(?=[^\\\\](?!')))/.source\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<self>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern\n .replace(/<self>/g, '[^\\\\s\\\\S]')\n .replace(/<str>/g, '(?:' + stringLike + ')')\n .replace(/<comment>/g, '(?:' + commentLike + ')')\n }\n var round = nested(/\\((?:[^()'\"@/]|<str>|<comment>|<self>)*\\)/.source, 2)\n var square = nested(/\\[(?:[^\\[\\]'\"@/]|<str>|<comment>|<self>)*\\]/.source, 2)\n var curly = nested(/\\{(?:[^{}'\"@/]|<str>|<comment>|<self>)*\\}/.source, 2)\n var angle = nested(/<(?:[^<>'\"@/]|<str>|<comment>|<self>)*>/.source, 2) // Note about the above bracket patterns:\n // They all ignore HTML expressions that might be in the C# code. This is a problem because HTML (like strings and\n // comments) is parsed differently. This is a huge problem because HTML might contain brackets and quotes which\n // messes up the bracket and string counting implemented by the above patterns.\n //\n // This problem is not fixable because 1) HTML expression are highly context sensitive and very difficult to detect\n // and 2) they require one capturing group at every nested level. See the `tagRegion` pattern to admire the\n // complexity of an HTML expression.\n //\n // To somewhat alleviate the problem a bit, the patterns for characters (e.g. 'a') is very permissive, it also\n // allows invalid characters to support HTML expressions like this: <p>That's it!</p>.\n var tagAttrs =\n /(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?/\n .source\n var tagContent = /(?!\\d)[^\\s>\\/=$<%]+/.source + tagAttrs + /\\s*\\/?>/.source\n var tagRegion =\n /\\B@?/.source +\n '(?:' +\n /<([a-zA-Z][\\w:]*)/.source +\n tagAttrs +\n /\\s*>/.source +\n '(?:' +\n (/[^<]/.source +\n '|' + // all tags that are not the start tag\n // eslint-disable-next-line regexp/strict\n /<\\/?(?!\\1\\b)/.source +\n tagContent +\n '|' + // nested start tag\n nested(\n // eslint-disable-next-line regexp/strict\n /<\\1/.source +\n tagAttrs +\n /\\s*>/.source +\n '(?:' +\n (/[^<]/.source +\n '|' + // all tags that are not the start tag\n // eslint-disable-next-line regexp/strict\n /<\\/?(?!\\1\\b)/.source +\n tagContent +\n '|' +\n '<self>') +\n ')*' + // eslint-disable-next-line regexp/strict\n /<\\/\\1\\s*>/.source,\n 2\n )) +\n ')*' + // eslint-disable-next-line regexp/strict\n /<\\/\\1\\s*>/.source +\n '|' +\n /</.source +\n tagContent +\n ')' // Now for the actual language definition(s):\n //\n // Razor as a language has 2 parts:\n // 1) CSHTML: A markup-like language that has been extended with inline C# code expressions and blocks.\n // 2) C#+HTML: A variant of C# that can contain CSHTML tags as expressions.\n //\n // In the below code, both CSHTML and C#+HTML will be create as separate language definitions that reference each\n // other. However, only CSHTML will be exported via `Prism.languages`.\n Prism.languages.cshtml = Prism.languages.extend('markup', {})\n var csharpWithHtml = Prism.languages.insertBefore(\n 'csharp',\n 'string',\n {\n html: {\n pattern: RegExp(tagRegion),\n greedy: true,\n inside: Prism.languages.cshtml\n }\n },\n {\n csharp: Prism.languages.extend('csharp', {})\n }\n )\n var cs = {\n pattern: /\\S[\\s\\S]*/,\n alias: 'language-csharp',\n inside: csharpWithHtml\n }\n Prism.languages.insertBefore('cshtml', 'prolog', {\n 'razor-comment': {\n pattern: /@\\*[\\s\\S]*?\\*@/,\n greedy: true,\n alias: 'comment'\n },\n block: {\n pattern: RegExp(\n /(^|[^@])@/.source +\n '(?:' +\n [\n // @{ ... }\n curly, // @code{ ... }\n /(?:code|functions)\\s*/.source + curly, // @for (...) { ... }\n /(?:for|foreach|lock|switch|using|while)\\s*/.source +\n round +\n /\\s*/.source +\n curly, // @do { ... } while (...);\n /do\\s*/.source +\n curly +\n /\\s*while\\s*/.source +\n round +\n /(?:\\s*;)?/.source, // @try { ... } catch (...) { ... } finally { ... }\n /try\\s*/.source +\n curly +\n /\\s*catch\\s*/.source +\n round +\n /\\s*/.source +\n curly +\n /\\s*finally\\s*/.source +\n curly, // @if (...) {...} else if (...) {...} else {...}\n /if\\s*/.source +\n round +\n /\\s*/.source +\n curly +\n '(?:' +\n /\\s*else/.source +\n '(?:' +\n /\\s+if\\s*/.source +\n round +\n ')?' +\n /\\s*/.source +\n curly +\n ')*'\n ].join('|') +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^@\\w*/,\n csharp: cs\n }\n },\n directive: {\n pattern:\n /^([ \\t]*)@(?:addTagHelper|attribute|implements|inherits|inject|layout|model|namespace|page|preservewhitespace|removeTagHelper|section|tagHelperPrefix|using)(?=\\s).*/m,\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^@\\w+/,\n csharp: cs\n }\n },\n value: {\n pattern: RegExp(\n /(^|[^@])@/.source +\n /(?:await\\b\\s*)?/.source +\n '(?:' +\n /\\w+\\b/.source +\n '|' +\n round +\n ')' +\n '(?:' +\n /[?!]?\\.\\w+\\b/.source +\n '|' +\n round +\n '|' +\n square +\n '|' +\n angle +\n round +\n ')*'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'variable',\n inside: {\n keyword: /^@/,\n csharp: cs\n }\n },\n 'delegate-operator': {\n pattern: /(^|[^@])@(?=<)/,\n lookbehind: true,\n alias: 'operator'\n }\n })\n Prism.languages.razor = Prism.languages.cshtml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csp\ncsp.displayName = 'csp'\ncsp.aliases = []\nfunction csp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/csp-cheat-sheet/\n *\n * Supports the following:\n * - https://www.w3.org/TR/CSP1/\n * - https://www.w3.org/TR/CSP2/\n * - https://www.w3.org/TR/CSP3/\n */\n ;(function (Prism) {\n /**\n * @param {string} source\n * @returns {RegExp}\n */\n function value(source) {\n return RegExp(\n /([ \\t])/.source + '(?:' + source + ')' + /(?=[\\s;]|$)/.source,\n 'i'\n )\n }\n Prism.languages.csp = {\n directive: {\n pattern:\n /(^|[\\s;])(?:base-uri|block-all-mixed-content|(?:child|connect|default|font|frame|img|manifest|media|object|prefetch|script|style|worker)-src|disown-opener|form-action|frame-(?:ancestors|options)|input-protection(?:-(?:clip|selectors))?|navigate-to|plugin-types|policy-uri|referrer|reflected-xss|report-(?:to|uri)|require-sri-for|sandbox|(?:script|style)-src-(?:attr|elem)|upgrade-insecure-requests)(?=[\\s;]|$)/i,\n lookbehind: true,\n alias: 'property'\n },\n scheme: {\n pattern: value(/[a-z][a-z0-9.+-]*:/.source),\n lookbehind: true\n },\n none: {\n pattern: value(/'none'/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n nonce: {\n pattern: value(/'nonce-[-+/\\w=]+'/.source),\n lookbehind: true,\n alias: 'number'\n },\n hash: {\n pattern: value(/'sha(?:256|384|512)-[-+/\\w=]+'/.source),\n lookbehind: true,\n alias: 'number'\n },\n host: {\n pattern: value(\n /[a-z][a-z0-9.+-]*:\\/\\/[^\\s;,']*/.source +\n '|' +\n /\\*[^\\s;,']*/.source +\n '|' +\n /[a-z0-9-]+(?:\\.[a-z0-9-]+)+(?::[\\d*]+)?(?:\\/[^\\s;,']*)?/.source\n ),\n lookbehind: true,\n alias: 'url',\n inside: {\n important: /\\*/\n }\n },\n keyword: [\n {\n pattern: value(/'unsafe-[a-z-]+'/.source),\n lookbehind: true,\n alias: 'unsafe'\n },\n {\n pattern: value(/'[a-z-]+'/.source),\n lookbehind: true,\n alias: 'safe'\n }\n ],\n punctuation: /;/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = cssExtras\ncssExtras.displayName = 'cssExtras'\ncssExtras.aliases = []\nfunction cssExtras(Prism) {\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var selectorInside\n Prism.languages.css.selector = {\n pattern: Prism.languages.css.selector.pattern,\n lookbehind: true,\n inside: (selectorInside = {\n 'pseudo-element':\n /:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\n 'pseudo-class': /:[-\\w]+/,\n class: /\\.[-\\w]+/,\n id: /#[-\\w]+/,\n attribute: {\n pattern: RegExp('\\\\[(?:[^[\\\\]\"\\']|' + string.source + ')*\\\\]'),\n greedy: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n 'case-sensitivity': {\n pattern: /(\\s)[si]$/i,\n lookbehind: true,\n alias: 'keyword'\n },\n namespace: {\n pattern: /^(\\s*)(?:(?!\\s)[-*\\w\\xA0-\\uFFFF])*\\|(?!=)/,\n lookbehind: true,\n inside: {\n punctuation: /\\|$/\n }\n },\n 'attr-name': {\n pattern: /^(\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+/,\n lookbehind: true\n },\n 'attr-value': [\n string,\n {\n pattern: /(=\\s*)(?:(?!\\s)[-\\w\\xA0-\\uFFFF])+(?=\\s*$)/,\n lookbehind: true\n }\n ],\n operator: /[|~*^$]?=/\n }\n },\n 'n-th': [\n {\n pattern: /(\\(\\s*)[+-]?\\d*[\\dn](?:\\s*[+-]\\s*\\d+)?(?=\\s*\\))/,\n lookbehind: true,\n inside: {\n number: /[\\dn]+/,\n operator: /[+-]/\n }\n },\n {\n pattern: /(\\(\\s*)(?:even|odd)(?=\\s*\\))/i,\n lookbehind: true\n }\n ],\n combinator: />|\\+|~|\\|\\|/,\n // the `tag` token has been existed and removed.\n // because we can't find a perfect tokenize to match it.\n // if you want to add it, please read https://github.com/PrismJS/prism/pull/2373 first.\n punctuation: /[(),]/\n })\n }\n Prism.languages.css['atrule'].inside['selector-function-argument'].inside =\n selectorInside\n Prism.languages.insertBefore('css', 'property', {\n variable: {\n pattern:\n /(^|[^-\\w\\xA0-\\uFFFF])--(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*/i,\n lookbehind: true\n }\n })\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+(?![\\w-]))/,\n lookbehind: true\n } // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n Prism.languages.insertBefore('css', 'function', {\n operator: {\n pattern: /(\\s)[+\\-*\\/](?=\\s)/,\n lookbehind: true\n },\n // CAREFUL!\n // Previewers and Inline color use hexcode and color.\n hexcode: {\n pattern: /\\B#[\\da-f]{3,8}\\b/i,\n alias: 'color'\n },\n color: [\n {\n pattern:\n /(^|[^\\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\\w-])/i,\n lookbehind: true\n },\n {\n pattern:\n /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n // it's important that there is no boundary assertion after the hex digits\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n number: number\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = css\ncss.displayName = 'css'\ncss.aliases = []\nfunction css(Prism) {\n ;(function (Prism) {\n var string =\n /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/\n Prism.languages.css = {\n comment: /\\/\\*[\\s\\S]*?\\*\\//,\n atrule: {\n pattern: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\n inside: {\n rule: /^@[\\w-]+/,\n 'selector-function-argument': {\n pattern:\n /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n lookbehind: true,\n alias: 'selector'\n },\n keyword: {\n pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n lookbehind: true\n } // See rest below\n }\n },\n url: {\n // https://drafts.csswg.org/css-values-3/#urls\n pattern: RegExp(\n '\\\\burl\\\\((?:' +\n string.source +\n '|' +\n /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source +\n ')\\\\)',\n 'i'\n ),\n greedy: true,\n inside: {\n function: /^url/i,\n punctuation: /^\\(|\\)$/,\n string: {\n pattern: RegExp('^' + string.source + '$'),\n alias: 'url'\n }\n }\n },\n selector: {\n pattern: RegExp(\n '(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' +\n string.source +\n ')*(?=\\\\s*\\\\{)'\n ),\n lookbehind: true\n },\n string: {\n pattern: string,\n greedy: true\n },\n property: {\n pattern:\n /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n lookbehind: true\n },\n important: /!important\\b/i,\n function: {\n pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n lookbehind: true\n },\n punctuation: /[(){};:,]/\n }\n Prism.languages.css['atrule'].inside.rest = Prism.languages.css\n var markup = Prism.languages.markup\n if (markup) {\n markup.tag.addInlined('style', 'css')\n markup.tag.addAttribute('style', 'css')\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = csv\ncsv.displayName = 'csv'\ncsv.aliases = []\nfunction csv(Prism) {\n // https://tools.ietf.org/html/rfc4180\n Prism.languages.csv = {\n value: /[^\\r\\n,\"]+|\"(?:[^\"]|\"\")*\"(?!\")/,\n punctuation: /,/\n }\n}\n","'use strict'\n\nmodule.exports = cypher\ncypher.displayName = 'cypher'\ncypher.aliases = []\nfunction cypher(Prism) {\n Prism.languages.cypher = {\n // https://neo4j.com/docs/cypher-manual/current/syntax/comments/\n comment: /\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n 'class-name': {\n pattern: /(:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)(?=\\s*[{):])/,\n lookbehind: true,\n greedy: true\n },\n relationship: {\n pattern:\n /(-\\[\\s*(?:\\w+\\s*|`(?:[^`\\\\\\r\\n])*`\\s*)?:\\s*|\\|\\s*:\\s*)(?:\\w+|`(?:[^`\\\\\\r\\n])*`)/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n identifier: {\n pattern: /`(?:[^`\\\\\\r\\n])*`/,\n greedy: true\n },\n variable: /\\$\\w+/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/reserved/\n keyword:\n /\\b(?:ADD|ALL|AND|AS|ASC|ASCENDING|ASSERT|BY|CALL|CASE|COMMIT|CONSTRAINT|CONTAINS|CREATE|CSV|DELETE|DESC|DESCENDING|DETACH|DISTINCT|DO|DROP|ELSE|END|ENDS|EXISTS|FOR|FOREACH|IN|INDEX|IS|JOIN|KEY|LIMIT|LOAD|MANDATORY|MATCH|MERGE|NODE|NOT|OF|ON|OPTIONAL|OR|ORDER(?=\\s+BY)|PERIODIC|REMOVE|REQUIRE|RETURN|SCALAR|SCAN|SET|SKIP|START|STARTS|THEN|UNION|UNIQUE|UNWIND|USING|WHEN|WHERE|WITH|XOR|YIELD)\\b/i,\n function: /\\b\\w+\\b(?=\\s*\\()/,\n boolean: /\\b(?:false|null|true)\\b/i,\n number: /\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)\\b/,\n // https://neo4j.com/docs/cypher-manual/current/syntax/operators/\n operator: /:|<--?|--?>?|<>|=~?|[<>]=?|[+*/%^|]|\\.\\.\\.?/,\n punctuation: /[()[\\]{},;.]/\n }\n}\n","'use strict'\n\nmodule.exports = d\nd.displayName = 'd'\nd.aliases = []\nfunction d(Prism) {\n Prism.languages.d = Prism.languages.extend('clike', {\n comment: [\n {\n // Shebang\n pattern: /^\\s*#!.+/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(^|[^\\\\])/.source +\n '(?:' +\n [\n // /+ comment +/\n // Allow one level of nesting\n /\\/\\+(?:\\/\\+(?:[^+]|\\+(?!\\/))*\\+\\/|(?!\\/\\+)[\\s\\S])*?\\+\\//.source, // // comment\n /\\/\\/.*/.source, // /* comment */\n /\\/\\*[\\s\\S]*?\\*\\//.source\n ].join('|') +\n ')'\n ),\n lookbehind: true,\n greedy: true\n }\n ],\n string: [\n {\n pattern: RegExp(\n [\n // r\"\", x\"\"\n /\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/.source, // q\"[]\", q\"()\", q\"<>\", q\"{}\"\n /\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/.source, // q\"IDENT\n // ...\n // IDENT\"\n /\\bq\"((?!\\d)\\w+)$[\\s\\S]*?^\\1\"/.source, // q\"//\", q\"||\", etc.\n // eslint-disable-next-line regexp/strict\n /\\bq\"(.)[\\s\\S]*?\\2\"/.source, // eslint-disable-next-line regexp/strict\n /([\"`])(?:\\\\[\\s\\S]|(?!\\3)[^\\\\])*\\3[cwd]?/.source\n ].join('|'),\n 'm'\n ),\n greedy: true\n },\n {\n pattern: /\\bq\\{(?:\\{[^{}]*\\}|[^{}])*\\}/,\n greedy: true,\n alias: 'token-string'\n }\n ],\n // In order: $, keywords and special tokens, globally defined symbols\n keyword:\n /\\$|\\b(?:__(?:(?:DATE|EOF|FILE|FUNCTION|LINE|MODULE|PRETTY_FUNCTION|TIMESTAMP|TIME|VENDOR|VERSION)__|gshared|parameters|traits|vector)|abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|dstring|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|ptrdiff_t|public|pure|real|ref|return|scope|shared|short|size_t|static|string|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|wstring)\\b/,\n number: [\n // The lookbehind and the negative look-ahead try to prevent bad highlighting of the .. operator\n // Hexadecimal numbers must be handled separately to avoid problems with exponent \"e\"\n /\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]{0,4}/i,\n {\n pattern:\n /((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]{0,4}/i,\n lookbehind: true\n }\n ],\n operator:\n /\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/\n })\n Prism.languages.insertBefore('d', 'string', {\n // Characters\n // 'a', '\\\\', '\\n', '\\xFF', '\\377', '\\uFFFF', '\\U0010FFFF', '\\quot'\n char: /'(?:\\\\(?:\\W|\\w+)|[^\\\\])'/\n })\n Prism.languages.insertBefore('d', 'keyword', {\n property: /\\B@\\w*/\n })\n Prism.languages.insertBefore('d', 'function', {\n register: {\n // Iasm registers\n pattern:\n /\\b(?:[ABCD][LHX]|E?(?:BP|DI|SI|SP)|[BS]PL|[ECSDGF]S|CR[0234]|[DS]IL|DR[012367]|E[ABCD]X|X?MM[0-7]|R(?:1[0-5]|[89])[BWD]?|R[ABCD]X|R[BS]P|R[DS]I|TR[3-7]|XMM(?:1[0-5]|[89])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,\n alias: 'variable'\n }\n })\n}\n","'use strict'\n\nmodule.exports = dart\ndart.displayName = 'dart'\ndart.aliases = []\nfunction dart(Prism) {\n ;(function (Prism) {\n var keywords = [\n /\\b(?:async|sync|yield)\\*/,\n /\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|covariant|default|deferred|do|dynamic|else|enum|export|extends|extension|external|factory|final|finally|for|get|hide|if|implements|import|in|interface|library|mixin|new|null|on|operator|part|rethrow|return|set|show|static|super|switch|sync|this|throw|try|typedef|var|void|while|with|yield)\\b/\n ] // Handles named imports, such as http.Client\n var packagePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source // based on the dart naming conventions\n var className = {\n pattern: RegExp(packagePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n lookbehind: true,\n inside: {\n namespace: {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: {\n punctuation: /\\./\n }\n }\n }\n }\n Prism.languages.dart = Prism.languages.extend('clike', {\n 'class-name': [\n className,\n {\n // variables and parameters\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n packagePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n ),\n lookbehind: true,\n inside: className.inside\n }\n ],\n keyword: keywords,\n operator:\n /\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/\n })\n Prism.languages.insertBefore('dart', 'string', {\n 'string-literal': {\n pattern:\n /r?(?:(\"\"\"|''')[\\s\\S]*?\\1|([\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2(?!\\2))/,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n lookbehind: true,\n inside: {\n punctuation: /^\\$\\{?|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.dart\n }\n }\n },\n string: /[\\s\\S]+/\n }\n },\n string: undefined\n })\n Prism.languages.insertBefore('dart', 'class-name', {\n metadata: {\n pattern: /@\\w+/,\n alias: 'function'\n }\n })\n Prism.languages.insertBefore('dart', 'class-name', {\n generics: {\n pattern:\n /<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<(?:[\\w\\s,.&?]|<[\\w\\s,.&?]*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n keyword: keywords,\n punctuation: /[<>(),.:]/,\n operator: /[?&|]/\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dataweave\ndataweave.displayName = 'dataweave'\ndataweave.aliases = []\nfunction dataweave(Prism) {\n ;(function (Prism) {\n Prism.languages.dataweave = {\n url: /\\b[A-Za-z]+:\\/\\/[\\w/:.?=&-]+|\\burn:[\\w:.?=&-]+/,\n property: {\n pattern: /(?:\\b\\w+#)?(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|\\b\\w+)(?=\\s*[:@])/,\n greedy: true\n },\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n 'mime-type':\n /\\b(?:application|audio|image|multipart|text|video)\\/[\\w+-]+/,\n date: {\n pattern: /\\|[\\w:+-]+\\|/,\n greedy: true\n },\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n regex: {\n pattern: /\\/(?:[^\\\\\\/\\r\\n]|\\\\[^\\r\\n])+\\//,\n greedy: true\n },\n keyword:\n /\\b(?:and|as|at|case|do|else|fun|if|input|is|match|not|ns|null|or|output|type|unless|update|using|var)\\b/,\n function: /\\b[A-Z_]\\w*(?=\\s*\\()/i,\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\];(),.:@]/,\n operator: /<<|>>|->|[<>~=]=?|!=|--?-?|\\+\\+?|!|\\?/,\n boolean: /\\b(?:false|true)\\b/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dax\ndax.displayName = 'dax'\ndax.aliases = []\nfunction dax(Prism) {\n Prism.languages.dax = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/).*)/,\n lookbehind: true\n },\n 'data-field': {\n pattern:\n /'(?:[^']|'')*'(?!')(?:\\[[ \\w\\xA0-\\uFFFF]+\\])?|\\w+\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'symbol'\n },\n measure: {\n pattern: /\\[[ \\w\\xA0-\\uFFFF]+\\]/,\n alias: 'constant'\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n function:\n /\\b(?:ABS|ACOS|ACOSH|ACOT|ACOTH|ADDCOLUMNS|ADDMISSINGITEMS|ALL|ALLCROSSFILTERED|ALLEXCEPT|ALLNOBLANKROW|ALLSELECTED|AND|APPROXIMATEDISTINCTCOUNT|ASIN|ASINH|ATAN|ATANH|AVERAGE|AVERAGEA|AVERAGEX|BETA\\.DIST|BETA\\.INV|BLANK|CALCULATE|CALCULATETABLE|CALENDAR|CALENDARAUTO|CEILING|CHISQ\\.DIST|CHISQ\\.DIST\\.RT|CHISQ\\.INV|CHISQ\\.INV\\.RT|CLOSINGBALANCEMONTH|CLOSINGBALANCEQUARTER|CLOSINGBALANCEYEAR|COALESCE|COMBIN|COMBINA|COMBINEVALUES|CONCATENATE|CONCATENATEX|CONFIDENCE\\.NORM|CONFIDENCE\\.T|CONTAINS|CONTAINSROW|CONTAINSSTRING|CONTAINSSTRINGEXACT|CONVERT|COS|COSH|COT|COTH|COUNT|COUNTA|COUNTAX|COUNTBLANK|COUNTROWS|COUNTX|CROSSFILTER|CROSSJOIN|CURRENCY|CURRENTGROUP|CUSTOMDATA|DATATABLE|DATE|DATEADD|DATEDIFF|DATESBETWEEN|DATESINPERIOD|DATESMTD|DATESQTD|DATESYTD|DATEVALUE|DAY|DEGREES|DETAILROWS|DISTINCT|DISTINCTCOUNT|DISTINCTCOUNTNOBLANK|DIVIDE|EARLIER|EARLIEST|EDATE|ENDOFMONTH|ENDOFQUARTER|ENDOFYEAR|EOMONTH|ERROR|EVEN|EXACT|EXCEPT|EXP|EXPON\\.DIST|FACT|FALSE|FILTER|FILTERS|FIND|FIRSTDATE|FIRSTNONBLANK|FIRSTNONBLANKVALUE|FIXED|FLOOR|FORMAT|GCD|GENERATE|GENERATEALL|GENERATESERIES|GEOMEAN|GEOMEANX|GROUPBY|HASONEFILTER|HASONEVALUE|HOUR|IF|IF\\.EAGER|IFERROR|IGNORE|INT|INTERSECT|ISBLANK|ISCROSSFILTERED|ISEMPTY|ISERROR|ISEVEN|ISFILTERED|ISINSCOPE|ISLOGICAL|ISNONTEXT|ISNUMBER|ISO\\.CEILING|ISODD|ISONORAFTER|ISSELECTEDMEASURE|ISSUBTOTAL|ISTEXT|KEEPFILTERS|KEYWORDMATCH|LASTDATE|LASTNONBLANK|LASTNONBLANKVALUE|LCM|LEFT|LEN|LN|LOG|LOG10|LOOKUPVALUE|LOWER|MAX|MAXA|MAXX|MEDIAN|MEDIANX|MID|MIN|MINA|MINUTE|MINX|MOD|MONTH|MROUND|NATURALINNERJOIN|NATURALLEFTOUTERJOIN|NEXTDAY|NEXTMONTH|NEXTQUARTER|NEXTYEAR|NONVISUAL|NORM\\.DIST|NORM\\.INV|NORM\\.S\\.DIST|NORM\\.S\\.INV|NOT|NOW|ODD|OPENINGBALANCEMONTH|OPENINGBALANCEQUARTER|OPENINGBALANCEYEAR|OR|PARALLELPERIOD|PATH|PATHCONTAINS|PATHITEM|PATHITEMREVERSE|PATHLENGTH|PERCENTILE\\.EXC|PERCENTILE\\.INC|PERCENTILEX\\.EXC|PERCENTILEX\\.INC|PERMUT|PI|POISSON\\.DIST|POWER|PREVIOUSDAY|PREVIOUSMONTH|PREVIOUSQUARTER|PREVIOUSYEAR|PRODUCT|PRODUCTX|QUARTER|QUOTIENT|RADIANS|RAND|RANDBETWEEN|RANK\\.EQ|RANKX|RELATED|RELATEDTABLE|REMOVEFILTERS|REPLACE|REPT|RIGHT|ROLLUP|ROLLUPADDISSUBTOTAL|ROLLUPGROUP|ROLLUPISSUBTOTAL|ROUND|ROUNDDOWN|ROUNDUP|ROW|SAMEPERIODLASTYEAR|SAMPLE|SEARCH|SECOND|SELECTCOLUMNS|SELECTEDMEASURE|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURENAME|SELECTEDVALUE|SIGN|SIN|SINH|SQRT|SQRTPI|STARTOFMONTH|STARTOFQUARTER|STARTOFYEAR|STDEV\\.P|STDEV\\.S|STDEVX\\.P|STDEVX\\.S|SUBSTITUTE|SUBSTITUTEWITHINDEX|SUM|SUMMARIZE|SUMMARIZECOLUMNS|SUMX|SWITCH|T\\.DIST|T\\.DIST\\.2T|T\\.DIST\\.RT|T\\.INV|T\\.INV\\.2T|TAN|TANH|TIME|TIMEVALUE|TODAY|TOPN|TOPNPERLEVEL|TOPNSKIP|TOTALMTD|TOTALQTD|TOTALYTD|TREATAS|TRIM|TRUE|TRUNC|UNICHAR|UNICODE|UNION|UPPER|USERELATIONSHIP|USERNAME|USEROBJECTID|USERPRINCIPALNAME|UTCNOW|UTCTODAY|VALUE|VALUES|VAR\\.P|VAR\\.S|VARX\\.P|VARX\\.S|WEEKDAY|WEEKNUM|XIRR|XNPV|YEAR|YEARFRAC)(?=\\s*\\()/i,\n keyword:\n /\\b(?:DEFINE|EVALUATE|MEASURE|ORDER\\s+BY|RETURN|VAR|START\\s+AT|ASC|DESC)\\b/i,\n boolean: {\n pattern: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n alias: 'constant'\n },\n number: /\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/,\n operator: /:=|[-+*\\/=^]|&&?|\\|\\||<(?:=>?|<|>)?|>[>=]?|\\b(?:IN|NOT)\\b/i,\n punctuation: /[;\\[\\](){}`,.]/\n }\n}\n","'use strict'\n\nmodule.exports = dhall\ndhall.displayName = 'dhall'\ndhall.aliases = []\nfunction dhall(Prism) {\n // ABNF grammar:\n // https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf\n Prism.languages.dhall = {\n // Multi-line comments can be nested. E.g. {- foo {- bar -} -}\n // The multi-line pattern is essentially this:\n // \\{-(?:[^-{]|-(?!\\})|\\{(?!-)|<SELF>)*-\\}\n comment:\n /--.*|\\{-(?:[^-{]|-(?!\\})|\\{(?!-)|\\{-(?:[^-{]|-(?!\\})|\\{(?!-))*-\\})*-\\}/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"|''(?:[^']|'(?!')|'''|''\\$\\{)*''(?!'|\\$)/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$\\{[^{}]*\\}/,\n inside: {\n expression: {\n pattern: /(^\\$\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n alias: 'language-dhall',\n inside: null // see blow\n },\n punctuation: /\\$\\{|\\}/\n }\n }\n }\n },\n label: {\n pattern: /`[^`]*`/,\n greedy: true\n },\n url: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L596\n pattern:\n /\\bhttps?:\\/\\/[\\w.:%!$&'*+;=@~-]+(?:\\/[\\w.:%!$&'*+;=@~-]*)*(?:\\?[/?\\w.:%!$&'*+;=@~-]*)?/,\n greedy: true\n },\n env: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L661\n pattern: /\\benv:(?:(?!\\d)\\w+|\"(?:[^\"\\\\=]|\\\\.)*\")/,\n greedy: true,\n inside: {\n function: /^env/,\n operator: /^:/,\n variable: /[\\s\\S]+/\n }\n },\n hash: {\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L725\n pattern: /\\bsha256:[\\da-fA-F]{64}\\b/,\n inside: {\n function: /sha256/,\n operator: /:/,\n number: /[\\da-fA-F]{64}/\n }\n },\n // https://github.com/dhall-lang/dhall-lang/blob/5fde8ef1bead6fb4e999d3c1ffe7044cd019d63a/standard/dhall.abnf#L359\n keyword:\n /\\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\\b|\\u2200/,\n builtin: /\\b(?:None|Some)\\b/,\n boolean: /\\b(?:False|True)\\b/,\n number:\n /\\bNaN\\b|-?\\bInfinity\\b|[+-]?\\b(?:0x[\\da-fA-F]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/,\n operator:\n /\\/\\\\|\\/\\/\\\\\\\\|&&|\\|\\||===|[!=]=|\\/\\/|->|\\+\\+|::|[+*#@=:?<>|\\\\\\u2227\\u2a53\\u2261\\u2afd\\u03bb\\u2192]/,\n punctuation: /\\.\\.|[{}\\[\\](),./]/,\n // we'll just assume that every capital word left is a type name\n 'class-name': /\\b[A-Z]\\w*\\b/\n }\n Prism.languages.dhall.string.inside.interpolation.inside.expression.inside =\n Prism.languages.dhall\n}\n","'use strict'\n\nmodule.exports = diff\ndiff.displayName = 'diff'\ndiff.aliases = []\nfunction diff(Prism) {\n ;(function (Prism) {\n Prism.languages.diff = {\n coord: [\n // Match all kinds of coord lines (prefixed by \"+++\", \"---\" or \"***\").\n /^(?:\\*{3}|-{3}|\\+{3}).*$/m, // Match \"@@ ... @@\" coord lines in unified diff.\n /^@@.*@@$/m, // Match coord lines in normal diff (starts with a number).\n /^\\d.*$/m\n ] // deleted, inserted, unchanged, diff\n }\n /**\n * A map from the name of a block to its line prefix.\n *\n * @type {Object<string, string>}\n */\n var PREFIXES = {\n 'deleted-sign': '-',\n 'deleted-arrow': '<',\n 'inserted-sign': '+',\n 'inserted-arrow': '>',\n unchanged: ' ',\n diff: '!'\n } // add a token for each prefix\n Object.keys(PREFIXES).forEach(function (name) {\n var prefix = PREFIXES[name]\n var alias = []\n if (!/^\\w+$/.test(name)) {\n // \"deleted-sign\" -> \"deleted\"\n alias.push(/\\w+/.exec(name)[0])\n }\n if (name === 'diff') {\n alias.push('bold')\n }\n Prism.languages.diff[name] = {\n pattern: RegExp(\n '^(?:[' + prefix + '].*(?:\\r\\n?|\\n|(?![\\\\s\\\\S])))+',\n 'm'\n ),\n alias: alias,\n inside: {\n line: {\n pattern: /(.)(?=[\\s\\S]).*(?:\\r\\n?|\\n)?/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]/,\n alias: /\\w+/.exec(name)[0]\n }\n }\n }\n }) // make prefixes available to Diff plugin\n Object.defineProperty(Prism.languages.diff, 'PREFIXES', {\n value: PREFIXES\n })\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = django\ndjango.displayName = 'django'\ndjango.aliases = ['jinja2']\nfunction django(Prism) {\n Prism.register(refractorMarkupTemplating)\n // Django/Jinja2 syntax definition for Prism.js <http://prismjs.com> syntax highlighter.\n // Mostly it works OK but can paint code incorrectly on complex html/template tag combinations.\n ;(function (Prism) {\n Prism.languages.django = {\n comment: /^\\{#[\\s\\S]*?#\\}$/,\n tag: {\n pattern: /(^\\{%[+-]?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%][+-]?|[+-]?[}%]\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n filter: {\n pattern: /(\\|)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n test: {\n pattern: /(\\bis\\s+(?:not\\s+)?)(?!not\\b)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\b[a-z_]\\w+(?=\\s*\\()/i,\n keyword:\n /\\b(?:and|as|by|else|for|if|import|in|is|loop|not|or|recursive|with|without)\\b/,\n operator: /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /[Ff]alse|[Nn]one|[Tt]rue/,\n variable: /\\b\\w+\\b/,\n punctuation: /[{}[\\](),.:;]/\n }\n var pattern = /\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}|\\{#[\\s\\S]*?#\\}/g\n var markupTemplating = Prism.languages['markup-templating']\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'django', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'django')\n }) // Add an Jinja2 alias\n Prism.languages.jinja2 = Prism.languages.django\n Prism.hooks.add('before-tokenize', function (env) {\n markupTemplating.buildPlaceholders(env, 'jinja2', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n markupTemplating.tokenizePlaceholders(env, 'jinja2')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dnsZoneFile\ndnsZoneFile.displayName = 'dnsZoneFile'\ndnsZoneFile.aliases = []\nfunction dnsZoneFile(Prism) {\n Prism.languages['dns-zone-file'] = {\n comment: /;.*/,\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(^\\$ORIGIN[ \\t]+)\\S+/m,\n lookbehind: true\n },\n {\n pattern: /(^|\\s)@(?=\\s|$)/,\n lookbehind: true\n }\n ],\n keyword: /^\\$(?:INCLUDE|ORIGIN|TTL)(?=\\s|$)/m,\n class: {\n // https://tools.ietf.org/html/rfc1035#page-13\n pattern: /(^|\\s)(?:CH|CS|HS|IN)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n // https://en.wikipedia.org/wiki/List_of_DNS_record_types\n pattern:\n /(^|\\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /[()]/\n }\n Prism.languages['dns-zone'] = Prism.languages['dns-zone-file']\n}\n","'use strict'\n\nmodule.exports = docker\ndocker.displayName = 'docker'\ndocker.aliases = ['dockerfile']\nfunction docker(Prism) {\n ;(function (Prism) {\n // Many of the following regexes will contain negated lookaheads like `[ \\t]+(?![ \\t])`. This is a trick to ensure\n // that quantifiers behave *atomically*. Atomic quantifiers are necessary to prevent exponential backtracking.\n var spaceAfterBackSlash =\n /\\\\[\\r\\n](?:\\s|\\\\[\\r\\n]|#.*(?!.))*(?![\\s#]|\\\\[\\r\\n])/.source // At least one space, comment, or line break\n var space = /(?:[ \\t]+(?![ \\t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(\n /<SP_BS>/g,\n function () {\n return spaceAfterBackSlash\n }\n )\n var string =\n /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"|'(?:[^'\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*'/\n .source\n var option = /--[\\w-]+=(?:<STR>|(?![\"'])(?:[^\\s\\\\]|\\\\.)+)/.source.replace(\n /<STR>/g,\n function () {\n return string\n }\n )\n var stringRule = {\n pattern: RegExp(string),\n greedy: true\n }\n var commentRule = {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true,\n greedy: true\n }\n /**\n * @param {string} source\n * @param {string} flags\n * @returns {RegExp}\n */\n function re(source, flags) {\n source = source\n .replace(/<OPT>/g, function () {\n return option\n })\n .replace(/<SP>/g, function () {\n return space\n })\n return RegExp(source, flags)\n }\n Prism.languages.docker = {\n instruction: {\n pattern:\n /(^[ \\t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)(?:\\\\.|[^\\r\\n\\\\])*(?:\\\\$(?:\\s|#.*$)*(?![\\s#])(?:\\\\.|[^\\r\\n\\\\])*)*/im,\n lookbehind: true,\n greedy: true,\n inside: {\n options: {\n pattern: re(\n /(^(?:ONBUILD<SP>)?\\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n property: {\n pattern: /(^|\\s)--[\\w-]+/,\n lookbehind: true\n },\n string: [\n stringRule,\n {\n pattern: /(=)(?![\"'])(?:[^\\s\\\\]|\\\\.)+/,\n lookbehind: true\n }\n ],\n operator: /\\\\$/m,\n punctuation: /=/\n }\n },\n keyword: [\n {\n // https://docs.docker.com/engine/reference/builder/#healthcheck\n pattern: re(\n /(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\\b/\n .source,\n 'i'\n ),\n lookbehind: true,\n greedy: true\n },\n {\n // https://docs.docker.com/engine/reference/builder/#from\n pattern: re(\n /(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \\t\\\\]+<SP>)AS/\n .source,\n 'i'\n ),\n lookbehind: true,\n greedy: true\n },\n {\n // https://docs.docker.com/engine/reference/builder/#onbuild\n pattern: re(/(^ONBUILD<SP>)\\w+/.source, 'i'),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /^\\w+/,\n greedy: true\n }\n ],\n comment: commentRule,\n string: stringRule,\n variable: /\\$(?:\\w+|\\{[^{}\"'\\\\]*\\})/,\n operator: /\\\\$/m\n }\n },\n comment: commentRule\n }\n Prism.languages.dockerfile = Prism.languages.docker\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = dot\ndot.displayName = 'dot'\ndot.aliases = ['gv']\nfunction dot(Prism) {\n // https://www.graphviz.org/doc/info/lang.html\n ;(function (Prism) {\n var ID =\n '(?:' +\n [\n // an identifier\n /[a-zA-Z_\\x80-\\uFFFF][\\w\\x80-\\uFFFF]*/.source, // a number\n /-?(?:\\.\\d+|\\d+(?:\\.\\d*)?)/.source, // a double-quoted string\n /\"[^\"\\\\]*(?:\\\\[\\s\\S][^\"\\\\]*)*\"/.source, // HTML-like string\n /<(?:[^<>]|(?!<!--)<(?:[^<>\"']|\"[^\"]*\"|'[^']*')+>|<!--(?:[^-]|-(?!->))*-->)*>/\n .source\n ].join('|') +\n ')'\n var IDInside = {\n markup: {\n pattern: /(^<)[\\s\\S]+(?=>$)/,\n lookbehind: true,\n alias: ['language-markup', 'language-html', 'language-xml'],\n inside: Prism.languages.markup\n }\n }\n /**\n * @param {string} source\n * @param {string} flags\n * @returns {RegExp}\n */\n function withID(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return ID\n }),\n flags\n )\n }\n Prism.languages.dot = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|^#.*/m,\n greedy: true\n },\n 'graph-name': {\n pattern: withID(\n /(\\b(?:digraph|graph|subgraph)[ \\t\\r\\n]+)<ID>/.source,\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'class-name',\n inside: IDInside\n },\n 'attr-value': {\n pattern: withID(/(=[ \\t\\r\\n]*)<ID>/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n 'attr-name': {\n pattern: withID(/([\\[;, \\t\\r\\n])<ID>(?=[ \\t\\r\\n]*=)/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n keyword: /\\b(?:digraph|edge|graph|node|strict|subgraph)\\b/i,\n 'compass-point': {\n pattern: /(:[ \\t\\r\\n]*)(?:[ewc_]|[ns][ew]?)(?![\\w\\x80-\\uFFFF])/,\n lookbehind: true,\n alias: 'builtin'\n },\n node: {\n pattern: withID(/(^|[^-.\\w\\x80-\\uFFFF\\\\])<ID>/.source),\n lookbehind: true,\n greedy: true,\n inside: IDInside\n },\n operator: /[=:]|-[->]/,\n punctuation: /[\\[\\]{};,]/\n }\n Prism.languages.gv = Prism.languages.dot\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ebnf\nebnf.displayName = 'ebnf'\nebnf.aliases = []\nfunction ebnf(Prism) {\n Prism.languages.ebnf = {\n comment: /\\(\\*[\\s\\S]*?\\*\\)/,\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true\n },\n special: {\n pattern: /\\?[^?\\r\\n]*\\?/,\n greedy: true,\n alias: 'class-name'\n },\n definition: {\n pattern: /^([\\t ]*)[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*(?=\\s*=)/im,\n lookbehind: true,\n alias: ['rule', 'keyword']\n },\n rule: /\\b[a-z]\\w*(?:[ \\t]+[a-z]\\w*)*\\b/i,\n punctuation: /\\([:/]|[:/]\\)|[.,;()[\\]{}]/,\n operator: /[-=|*/!]/\n }\n}\n","'use strict'\n\nmodule.exports = editorconfig\neditorconfig.displayName = 'editorconfig'\neditorconfig.aliases = []\nfunction editorconfig(Prism) {\n Prism.languages.editorconfig = {\n // https://editorconfig-specification.readthedocs.io\n comment: /[;#].*/,\n section: {\n pattern: /(^[ \\t]*)\\[.+\\]/m,\n lookbehind: true,\n alias: 'selector',\n inside: {\n regex: /\\\\\\\\[\\[\\]{},!?.*]/,\n // Escape special characters with '\\\\'\n operator: /[!?]|\\.\\.|\\*{1,2}/,\n punctuation: /[\\[\\]{},]/\n }\n },\n key: {\n pattern: /(^[ \\t]*)[^\\s=]+(?=[ \\t]*=)/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n value: {\n pattern: /=.*/,\n alias: 'attr-value',\n inside: {\n punctuation: /^=/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = eiffel\neiffel.displayName = 'eiffel'\neiffel.aliases = []\nfunction eiffel(Prism) {\n Prism.languages.eiffel = {\n comment: /--.*/,\n string: [\n // Aligned-verbatim-strings\n {\n pattern: /\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,\n greedy: true\n }, // Non-aligned-verbatim-strings\n {\n pattern: /\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,\n greedy: true\n }, // Single-line string\n {\n pattern: /\"(?:%(?:(?!\\n)\\s)*\\n\\s*%|%\\S|[^%\"\\r\\n])*\"/,\n greedy: true\n }\n ],\n // normal char | special char | char code\n char: /'(?:%.|[^%'\\r\\n])+'/,\n keyword:\n /\\b(?:across|agent|alias|all|and|as|assign|attached|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\n boolean: /\\b(?:False|True)\\b/i,\n // Convention: class-names are always all upper-case characters\n 'class-name': /\\b[A-Z][\\dA-Z_]*\\b/,\n number: [\n // hexa | octal | bin\n /\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i, // Decimal\n /(?:\\b\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*\\b|\\b\\d(?:_*\\d)*\\b\\.?/i\n ],\n punctuation: /:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,\n operator: /\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/\n }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ejs\nejs.displayName = 'ejs'\nejs.aliases = ['eta']\nfunction ejs(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.ejs = {\n delimiter: {\n pattern: /^<%[-_=]?|[-_]?%>$/,\n alias: 'punctuation'\n },\n comment: /^#[\\s\\S]*/,\n 'language-javascript': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.javascript\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var ejsPattern = /<%(?!%)[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ejs',\n ejsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ejs')\n })\n Prism.languages.eta = Prism.languages.ejs\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = elixir\nelixir.displayName = 'elixir'\nelixir.aliases = []\nfunction elixir(Prism) {\n Prism.languages.elixir = {\n doc: {\n pattern:\n /@(?:doc|moduledoc)\\s+(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2)/,\n inside: {\n attribute: /^@\\w+/,\n string: /['\"][\\s\\S]+/\n }\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n // ~r\"\"\"foo\"\"\" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r\"foo\", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>\n regex: {\n pattern:\n /~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,\n greedy: true\n },\n string: [\n {\n // ~s\"\"\"foo\"\"\" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s\"foo\", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>\n pattern:\n /~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|#(?!\\{)|[^#\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n pattern: /(\"\"\"|''')[\\s\\S]*?\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n },\n {\n // Multi-line strings are allowed\n pattern: /(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true,\n inside: {\n // See interpolation below\n }\n }\n ],\n atom: {\n // Look-behind prevents bad highlighting of the :: operator\n pattern: /(^|[^:]):\\w+/,\n lookbehind: true,\n alias: 'symbol'\n },\n module: {\n pattern: /\\b[A-Z]\\w*\\b/,\n alias: 'class-name'\n },\n // Look-ahead prevents bad highlighting of the :: operator\n 'attr-name': /\\b\\w+\\??:(?!:)/,\n argument: {\n // Look-behind prevents bad highlighting of the && operator\n pattern: /(^|[^&])&\\d+/,\n lookbehind: true,\n alias: 'variable'\n },\n attribute: {\n pattern: /@\\w+/,\n alias: 'variable'\n },\n function: /\\b[_a-zA-Z]\\w*[?!]?(?:(?=\\s*(?:\\.\\s*)?\\()|(?=\\/\\d))/,\n number: /\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,\n keyword:\n /\\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\\b/,\n boolean: /\\b(?:false|nil|true)\\b/,\n operator: [\n /\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,\n {\n // We don't want to match <<\n pattern: /([^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /([^>])>(?!>)/,\n lookbehind: true\n }\n ],\n punctuation: /<<|>>|[.,%\\[\\]{}()]/\n }\n Prism.languages.elixir.string.forEach(function (o) {\n o.inside = {\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.elixir\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = elm\nelm.displayName = 'elm'\nelm.aliases = []\nfunction elm(Prism) {\n Prism.languages.elm = {\n comment: /--.*|\\{-[\\s\\S]*?-\\}/,\n char: {\n pattern:\n /'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+|u\\{[0-9a-fA-F]+\\}))'/,\n greedy: true\n },\n string: [\n {\n // Multiline strings are wrapped in triple \". Quotes may appear unescaped.\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true\n },\n {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"/,\n greedy: true\n }\n ],\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+(?:[A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|exposing|import)\\b/\n }\n },\n keyword:\n /\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,\n // decimal integers and floating point numbers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,\n // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n // Valid operator characters in 0.18: +-/*=.$<>:&|^?%#@~!\n // Ref: https://groups.google.com/forum/#!msg/elm-dev/0AHSnDdkSkQ/E0SVU70JEQAJ\n operator: /\\s\\.\\s|[+\\-/*=.$<>:&|^?%#@~!]{2,}|[+\\-/*=$<>:&|^?%#@~!]/,\n // In Elm, nearly everything is a variable, do not highlight these.\n hvariable: /\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,\n constant: /\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,\n punctuation: /[{}[\\]|(),.:]/\n }\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = erb\nerb.displayName = 'erb'\nerb.aliases = []\nfunction erb(Prism) {\n Prism.register(refractorRuby)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.erb = {\n delimiter: {\n pattern: /^(\\s*)<%=?|%>(?=\\s*$)/,\n lookbehind: true,\n alias: 'punctuation'\n },\n ruby: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'language-ruby',\n inside: Prism.languages.ruby\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var erbPattern =\n /<%=?(?:[^\\r\\n]|[\\r\\n](?!=begin)|[\\r\\n]=begin\\s(?:[^\\r\\n]|[\\r\\n](?!=end))*[\\r\\n]=end)+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'erb',\n erbPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'erb')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = erlang\nerlang.displayName = 'erlang'\nerlang.aliases = []\nfunction erlang(Prism) {\n Prism.languages.erlang = {\n comment: /%.+/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n 'quoted-function': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,\n alias: 'function'\n },\n 'quoted-atom': {\n pattern: /'(?:\\\\.|[^\\\\'\\r\\n])+'/,\n alias: 'atom'\n },\n boolean: /\\b(?:false|true)\\b/,\n keyword: /\\b(?:after|case|catch|end|fun|if|of|receive|try|when)\\b/,\n number: [\n /\\$\\\\?./,\n /\\b\\d+#[a-z0-9]+/i,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n ],\n function: /\\b[a-z][\\w@]*(?=\\()/,\n variable: {\n // Look-behind is used to prevent wrong highlighting of atoms containing \"@\"\n pattern: /(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,\n lookbehind: true\n },\n operator: [\n /[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\\b/,\n {\n // We don't want to match <<\n pattern: /(^|[^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /(^|[^>])>(?!>)/,\n lookbehind: true\n }\n ],\n atom: /\\b[a-z][\\w@]*/,\n punctuation: /[()[\\]{}:;,.#|]|<<|>>/\n }\n}\n","'use strict'\nvar refractorLua = require('./lua.js')\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = etlua\netlua.displayName = 'etlua'\netlua.aliases = []\nfunction etlua(Prism) {\n Prism.register(refractorLua)\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.etlua = {\n delimiter: {\n pattern: /^<%[-=]?|-?%>$/,\n alias: 'punctuation'\n },\n 'language-lua': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.lua\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var pattern = /<%[\\s\\S]+?%>/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'etlua',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'etlua')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = excelFormula\nexcelFormula.displayName = 'excelFormula'\nexcelFormula.aliases = []\nfunction excelFormula(Prism) {\n Prism.languages['excel-formula'] = {\n comment: {\n pattern: /(\\bN\\(\\s*)\"(?:[^\"]|\"\")*\"(?=\\s*\\))/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"]|\"\")*\"(?!\")/,\n greedy: true\n },\n reference: {\n // https://www.ablebits.com/office-addins-blog/2015/12/08/excel-reference-another-sheet-workbook/\n // Sales!B2\n // 'Winter sales'!B2\n // [Sales.xlsx]Jan!B2:B5\n // D:\\Reports\\[Sales.xlsx]Jan!B2:B5\n // '[Sales.xlsx]Jan sales'!B2:B5\n // 'D:\\Reports\\[Sales.xlsx]Jan sales'!B2:B5\n pattern:\n /(?:'[^']*'|(?:[^\\s()[\\]{}<>*?\"';,$&]*\\[[^^\\s()[\\]{}<>*?\"']+\\])?\\w+)!/,\n greedy: true,\n alias: 'string',\n inside: {\n operator: /!$/,\n punctuation: /'/,\n sheet: {\n pattern: /[^[\\]]+$/,\n alias: 'function'\n },\n file: {\n pattern: /\\[[^[\\]]+\\]$/,\n inside: {\n punctuation: /[[\\]]/\n }\n },\n path: /[\\s\\S]+/\n }\n },\n 'function-name': {\n pattern: /\\b[A-Z]\\w*(?=\\()/i,\n alias: 'keyword'\n },\n range: {\n pattern:\n /\\$?\\b(?:[A-Z]+\\$?\\d+:\\$?[A-Z]+\\$?\\d+|[A-Z]+:\\$?[A-Z]+|\\d+:\\$?\\d+)\\b/i,\n alias: 'property',\n inside: {\n operator: /:/,\n cell: /\\$?[A-Z]+\\$?\\d+/i,\n column: /\\$?[A-Z]+/i,\n row: /\\$?\\d+/\n }\n },\n cell: {\n // Excel is case insensitive, so the string \"foo1\" could be either a variable or a cell.\n // To combat this, we match cells case insensitive, if the contain at least one \"$\", and case sensitive otherwise.\n pattern: /\\b[A-Z]+\\d+\\b|\\$[A-Za-z]+\\$?\\d+\\b|\\b[A-Za-z]+\\$\\d+\\b/,\n alias: 'property'\n },\n number: /(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:FALSE|TRUE)\\b/i,\n operator: /[-+*/^%=&,]|<[=>]?|>=?/,\n punctuation: /[[\\]();{}|]/\n }\n Prism.languages['xlsx'] = Prism.languages['xls'] =\n Prism.languages['excel-formula']\n}\n","'use strict'\n\nmodule.exports = factor\nfactor.displayName = 'factor'\nfactor.aliases = []\nfunction factor(Prism) {\n ;(function (Prism) {\n var comment_inside = {\n function:\n /\\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\\?{2,}|!{2,})\\b/\n }\n var string_inside = {\n number: /\\\\[^\\s']|%\\w/\n }\n var factor = {\n comment: [\n {\n // ! single-line exclamation point comments with whitespace after/around the !\n pattern: /(^|\\s)(?:! .*|!$)/,\n lookbehind: true,\n inside: comment_inside\n },\n /* from basis/multiline: */\n {\n // /* comment */, /* comment*/\n pattern: /(^|\\s)\\/\\*\\s[\\s\\S]*?\\*\\/(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n },\n {\n // ![[ comment ]] , ![===[ comment]===]\n pattern: /(^|\\s)!\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n inside: comment_inside\n }\n ],\n number: [\n {\n // basic base 10 integers 9, -9\n pattern: /(^|\\s)[+-]?\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // base prefix integers 0b010 0o70 0xad 0d10 0XAD -0xa9\n pattern: /(^|\\s)[+-]?0(?:b[01]+|o[0-7]+|d\\d+|x[\\dA-F]+)(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // fractional ratios 1/5 -1/5 and the literal float approximations 1/5. -1/5.\n pattern: /(^|\\s)[+-]?\\d+\\/\\d+\\.?(?=\\s|$)/,\n lookbehind: true\n },\n {\n // positive mixed numbers 23+1/5 +23+1/5\n pattern: /(^|\\s)\\+?\\d+\\+\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // negative mixed numbers -23-1/5\n pattern: /(^|\\s)-\\d+-\\d+\\/\\d+(?=\\s|$)/,\n lookbehind: true\n },\n {\n // basic decimal floats -0.01 0. .0 .1 -.1 -1. -12.13 +12.13\n // and scientific notation with base 10 exponents 3e4 3e-4 .3e-4\n pattern:\n /(^|\\s)[+-]?(?:\\d*\\.\\d+|\\d+\\.\\d*|\\d+)(?:e[+-]?\\d+)?(?=\\s|$)/i,\n lookbehind: true\n },\n {\n // NAN literal syntax NAN: 80000deadbeef, NAN: a\n pattern: /(^|\\s)NAN:\\s+[\\da-fA-F]+(?=\\s|$)/,\n lookbehind: true\n },\n {\n /*\nbase prefix floats 0x1.0p3 (8.0) 0b1.010p2 (5.0) 0x1.p1 0b1.11111111p11111...\n\"The normalized hex form ±0x1.MMMMMMMMMMMMM[pP]±EEEE allows any floating-point number to be specified precisely.\nThe values of MMMMMMMMMMMMM and EEEE map directly to the mantissa and exponent fields of the binary IEEE 754 representation.\"\n<https://docs.factorcode.org/content/article-syntax-floats.html>\n*/\n pattern:\n /(^|\\s)[+-]?0(?:b1\\.[01]*|o1\\.[0-7]*|d1\\.\\d*|x1\\.[\\dA-F]*)p\\d+(?=\\s|$)/i,\n lookbehind: true\n }\n ],\n // R/ regexp?\\/\\\\/\n regexp: {\n pattern:\n /(^|\\s)R\\/\\s(?:\\\\\\S|[^\\\\/])*\\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\\s|$)/,\n lookbehind: true,\n alias: 'number',\n inside: {\n variable: /\\\\\\S/,\n keyword: /[+?*\\[\\]^$(){}.|]/,\n operator: {\n pattern: /(\\/)[idmsr]+(?:-[idmsr]+)?/,\n lookbehind: true\n }\n }\n },\n boolean: {\n pattern: /(^|\\s)[tf](?=\\s|$)/,\n lookbehind: true\n },\n // SBUF\" asd\", URL\" ://...\", P\" /etc/\"\n 'custom-string': {\n pattern: /(^|\\s)[A-Z0-9\\-]+\"\\s(?:\\\\\\S|[^\"\\\\])*\"/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: /\\\\\\S|%\\w|\\//\n }\n },\n 'multiline-string': [\n {\n // STRING: name \\n content \\n ; -> CONSTANT: name \"content\" (symbol)\n pattern: /(^|\\s)STRING:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*;(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n number: string_inside.number,\n // trailing semicolon on its own line\n 'semicolon-or-setlocal': {\n pattern: /([\\r\\n][ \\t]*);(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n }\n }\n },\n {\n // HEREDOC: marker \\n content \\n marker ; -> \"content\" (immediate)\n pattern: /(^|\\s)HEREDOC:\\s+\\S+(?:\\n|\\r\\n).*(?:\\n|\\r\\n)\\s*\\S+(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n },\n {\n // [[ string ]], [==[ string]==]\n pattern: /(^|\\s)\\[(={0,6})\\[\\s[\\s\\S]*?\\]\\2\\](?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: string_inside\n }\n ],\n 'special-using': {\n pattern: /(^|\\s)USING:(?:\\s\\S+)*(?=\\s+;(?:\\s|$))/,\n lookbehind: true,\n alias: 'function',\n inside: {\n // this is essentially a regex for vocab names, which i don't want to specify\n // but the USING: gets picked up as a vocab name\n string: {\n pattern: /(\\s)[^:\\s]+/,\n lookbehind: true\n }\n }\n },\n /* this description of stack effect literal syntax is not complete and not as specific as theoretically possible\ntrying to do better is more work and regex-computation-time than it's worth though.\n- we'd like to have the \"delimiter\" parts of the stack effect [ (, --, and ) ] be a different (less-important or comment-like) colour to the stack effect contents\n- we'd like if nested stack effects were treated as such rather than just appearing flat (with `inside`)\n- we'd like if the following variable name conventions were recognised specifically:\nspecial row variables = ..a b..\ntype and stack effect annotations end with a colon = ( quot: ( a: ( -- ) -- b ) -- x ), ( x: number -- )\nword throws unconditional error = *\nany other word-like variable name = a ? q' etc\nhttps://docs.factorcode.org/content/article-effects.html\nthese are pretty complicated to highlight properly without a real parser, and therefore out of scope\nthe old pattern, which may be later useful, was: (^|\\s)(?:call|execute|eval)?\\((?:\\s+[^\"\\r\\n\\t ]\\S*)*?\\s+--(?:\\s+[^\"\\n\\t ]\\S*)*?\\s+\\)(?=\\s|$)\n*/\n // current solution is not great\n 'stack-effect-delimiter': [\n {\n // opening parenthesis\n pattern: /(^|\\s)(?:call|eval|execute)?\\((?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // middle --\n pattern: /(\\s)--(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing parenthesis\n pattern: /(\\s)\\)(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n combinators: {\n pattern: null,\n lookbehind: true,\n alias: 'keyword'\n },\n 'kernel-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'sequences-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'math-builtin': {\n pattern: null,\n lookbehind: true,\n alias: 'variable'\n },\n 'constructor-word': {\n // <array> but not <=>\n pattern: /(^|\\s)<(?!=+>|-+>)\\S+>(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'other-builtin-syntax': {\n pattern: null,\n lookbehind: true,\n alias: 'operator'\n },\n /*\nfull list of supported word naming conventions: (the convention appears outside of the [brackets])\nset-[x]\nchange-[x]\nwith-[x]\nnew-[x]\n>[string]\n[base]>\n[string]>[number]\n+[symbol]+\n[boolean-word]?\n?[of]\n[slot-reader]>>\n>>[slot-setter]\n[slot-writer]<<\n([implementation-detail])\n[mutater]!\n[variant]*\n[prettyprint].\n$[help-markup]\n<constructors>, SYNTAX:, etc are supported by their own patterns.\n`with` and `new` from `kernel` are their own builtins.\nsee <https://docs.factorcode.org/content/article-conventions.html>\n*/\n 'conventionally-named-word': {\n pattern:\n /(^|\\s)(?!\")(?:(?:change|new|set|with)-\\S+|\\$\\S+|>[^>\\s]+|[^:>\\s]+>|[^>\\s]+>[^>\\s]+|\\+[^+\\s]+\\+|[^?\\s]+\\?|\\?[^?\\s]+|[^>\\s]+>>|>>[^>\\s]+|[^<\\s]+<<|\\([^()\\s]+\\)|[^!\\s]+!|[^*\\s]\\S*\\*|[^.\\s]\\S*\\.)(?=\\s|$)/,\n lookbehind: true,\n alias: 'keyword'\n },\n 'colon-syntax': {\n pattern: /(^|\\s)(?:[A-Z0-9\\-]+#?)?:{1,2}\\s+(?:;\\S+|(?!;)\\S+)(?=\\s|$)/,\n lookbehind: true,\n greedy: true,\n alias: 'function'\n },\n 'semicolon-or-setlocal': {\n pattern: /(\\s)(?:;|:>)(?=\\s|$)/,\n lookbehind: true,\n alias: 'function'\n },\n // do not highlight leading } or trailing X{ at the begin/end of the file as it's invalid syntax\n 'curly-brace-literal-delimiter': [\n {\n // opening\n pattern: /(^|\\s)[a-z]*\\{(?=\\s)/i,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\}(?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n // do not highlight leading ] or trailing [ at the begin/end of the file as it's invalid syntax\n 'quotation-delimiter': [\n {\n // opening\n pattern: /(^|\\s)\\[(?=\\s)/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // closing\n pattern: /(\\s)\\](?=\\s|$)/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n 'normal-word': {\n pattern: /(^|\\s)[^\"\\s]\\S*(?=\\s|$)/,\n lookbehind: true\n },\n /*\nbasic first-class string \"a\"\nwith escaped double-quote \"a\\\"\"\nescaped backslash \"\\\\\"\nand general escapes since Factor has so many \"\\N\"\nsyntax that works in the reference implementation that isn't fully\nsupported because it's an implementation detail:\n\"string 1\"\"string 2\" -> 2 strings (works anyway)\n\"string\"5 -> string, 5\n\"string\"[ ] -> string, quotation\n{ \"a\"} -> array<string>\nthe rest of those examples all properly recognise the string, but not\nthe other object (number, quotation, etc)\nthis is fine for a regex-only implementation.\n*/\n string: {\n pattern: /\"(?:\\\\\\S|[^\"\\\\])*\"/,\n greedy: true,\n inside: string_inside\n }\n }\n var escape = function (str) {\n return (str + '').replace(/([.?*+\\^$\\[\\]\\\\(){}|\\-])/g, '\\\\$1')\n }\n var arrToWordsRegExp = function (arr) {\n return new RegExp('(^|\\\\s)(?:' + arr.map(escape).join('|') + ')(?=\\\\s|$)')\n }\n var builtins = {\n 'kernel-builtin': [\n 'or',\n '2nipd',\n '4drop',\n 'tuck',\n 'wrapper',\n 'nip',\n 'wrapper?',\n 'callstack>array',\n 'die',\n 'dupd',\n 'callstack',\n 'callstack?',\n '3dup',\n 'hashcode',\n 'pick',\n '4nip',\n 'build',\n '>boolean',\n 'nipd',\n 'clone',\n '5nip',\n 'eq?',\n '?',\n '=',\n 'swapd',\n '2over',\n 'clear',\n '2dup',\n 'get-retainstack',\n 'not',\n 'tuple?',\n 'dup',\n '3nipd',\n 'call',\n '-rotd',\n 'object',\n 'drop',\n 'assert=',\n 'assert?',\n '-rot',\n 'execute',\n 'boa',\n 'get-callstack',\n 'curried?',\n '3drop',\n 'pickd',\n 'overd',\n 'over',\n 'roll',\n '3nip',\n 'swap',\n 'and',\n '2nip',\n 'rotd',\n 'throw',\n '(clone)',\n 'hashcode*',\n 'spin',\n 'reach',\n '4dup',\n 'equal?',\n 'get-datastack',\n 'assert',\n '2drop',\n '<wrapper>',\n 'boolean?',\n 'identity-hashcode',\n 'identity-tuple?',\n 'null',\n 'composed?',\n 'new',\n '5drop',\n 'rot',\n '-roll',\n 'xor',\n 'identity-tuple',\n 'boolean'\n ],\n 'other-builtin-syntax': [\n // syntax\n '=======',\n 'recursive',\n 'flushable',\n '>>',\n '<<<<<<',\n 'M\\\\',\n 'B',\n 'PRIVATE>',\n '\\\\',\n '======',\n 'final',\n 'inline',\n 'delimiter',\n 'deprecated',\n '<PRIVATE',\n '>>>>>>',\n '<<<<<<<',\n 'parse-complex',\n 'malformed-complex',\n 'read-only',\n '>>>>>>>',\n 'call-next-method',\n '<<',\n 'foldable', // literals\n '$',\n '$[',\n '${'\n ],\n 'sequences-builtin': [\n 'member-eq?',\n 'mismatch',\n 'append',\n 'assert-sequence=',\n 'longer',\n 'repetition',\n 'clone-like',\n '3sequence',\n 'assert-sequence?',\n 'last-index-from',\n 'reversed',\n 'index-from',\n 'cut*',\n 'pad-tail',\n 'join-as',\n 'remove-eq!',\n 'concat-as',\n 'but-last',\n 'snip',\n 'nths',\n 'nth',\n 'sequence',\n 'longest',\n 'slice?',\n '<slice>',\n 'remove-nth',\n 'tail-slice',\n 'empty?',\n 'tail*',\n 'member?',\n 'virtual-sequence?',\n 'set-length',\n 'drop-prefix',\n 'iota',\n 'unclip',\n 'bounds-error?',\n 'unclip-last-slice',\n 'non-negative-integer-expected',\n 'non-negative-integer-expected?',\n 'midpoint@',\n 'longer?',\n '?set-nth',\n '?first',\n 'rest-slice',\n 'prepend-as',\n 'prepend',\n 'fourth',\n 'sift',\n 'subseq-start',\n 'new-sequence',\n '?last',\n 'like',\n 'first4',\n '1sequence',\n 'reverse',\n 'slice',\n 'virtual@',\n 'repetition?',\n 'set-last',\n 'index',\n '4sequence',\n 'max-length',\n 'set-second',\n 'immutable-sequence',\n 'first2',\n 'first3',\n 'supremum',\n 'unclip-slice',\n 'suffix!',\n 'insert-nth',\n 'tail',\n '3append',\n 'short',\n 'suffix',\n 'concat',\n 'flip',\n 'immutable?',\n 'reverse!',\n '2sequence',\n 'sum',\n 'delete-all',\n 'indices',\n 'snip-slice',\n '<iota>',\n 'check-slice',\n 'sequence?',\n 'head',\n 'append-as',\n 'halves',\n 'sequence=',\n 'collapse-slice',\n '?second',\n 'slice-error?',\n 'product',\n 'bounds-check?',\n 'bounds-check',\n 'immutable',\n 'virtual-exemplar',\n 'harvest',\n 'remove',\n 'pad-head',\n 'last',\n 'set-fourth',\n 'cartesian-product',\n 'remove-eq',\n 'shorten',\n 'shorter',\n 'reversed?',\n 'shorter?',\n 'shortest',\n 'head-slice',\n 'pop*',\n 'tail-slice*',\n 'but-last-slice',\n 'iota?',\n 'append!',\n 'cut-slice',\n 'new-resizable',\n 'head-slice*',\n 'sequence-hashcode',\n 'pop',\n 'set-nth',\n '?nth',\n 'second',\n 'join',\n 'immutable-sequence?',\n '<reversed>',\n '3append-as',\n 'virtual-sequence',\n 'subseq?',\n 'remove-nth!',\n 'length',\n 'last-index',\n 'lengthen',\n 'assert-sequence',\n 'copy',\n 'move',\n 'third',\n 'first',\n 'tail?',\n 'set-first',\n 'prefix',\n 'bounds-error',\n '<repetition>',\n 'exchange',\n 'surround',\n 'cut',\n 'min-length',\n 'set-third',\n 'push-all',\n 'head?',\n 'subseq-start-from',\n 'delete-slice',\n 'rest',\n 'sum-lengths',\n 'head*',\n 'infimum',\n 'remove!',\n 'glue',\n 'slice-error',\n 'subseq',\n 'push',\n 'replace-slice',\n 'subseq-as',\n 'unclip-last'\n ],\n 'math-builtin': [\n 'number=',\n 'next-power-of-2',\n '?1+',\n 'fp-special?',\n 'imaginary-part',\n 'float>bits',\n 'number?',\n 'fp-infinity?',\n 'bignum?',\n 'fp-snan?',\n 'denominator',\n 'gcd',\n '*',\n '+',\n 'fp-bitwise=',\n '-',\n 'u>=',\n '/',\n '>=',\n 'bitand',\n 'power-of-2?',\n 'log2-expects-positive',\n 'neg?',\n '<',\n 'log2',\n '>',\n 'integer?',\n 'number',\n 'bits>double',\n '2/',\n 'zero?',\n 'bits>float',\n 'float?',\n 'shift',\n 'ratio?',\n 'rect>',\n 'even?',\n 'ratio',\n 'fp-sign',\n 'bitnot',\n '>fixnum',\n 'complex?',\n '/i',\n 'integer>fixnum',\n '/f',\n 'sgn',\n '>bignum',\n 'next-float',\n 'u<',\n 'u>',\n 'mod',\n 'recip',\n 'rational',\n '>float',\n '2^',\n 'integer',\n 'fixnum?',\n 'neg',\n 'fixnum',\n 'sq',\n 'bignum',\n '>rect',\n 'bit?',\n 'fp-qnan?',\n 'simple-gcd',\n 'complex',\n '<fp-nan>',\n 'real',\n '>fraction',\n 'double>bits',\n 'bitor',\n 'rem',\n 'fp-nan-payload',\n 'real-part',\n 'log2-expects-positive?',\n 'prev-float',\n 'align',\n 'unordered?',\n 'float',\n 'fp-nan?',\n 'abs',\n 'bitxor',\n 'integer>fixnum-strict',\n 'u<=',\n 'odd?',\n '<=',\n '/mod',\n '>integer',\n 'real?',\n 'rational?',\n 'numerator'\n ] // that's all for now\n }\n Object.keys(builtins).forEach(function (k) {\n factor[k].pattern = arrToWordsRegExp(builtins[k])\n })\n var combinators = [\n // kernel\n '2bi',\n 'while',\n '2tri',\n 'bi*',\n '4dip',\n 'both?',\n 'same?',\n 'tri@',\n 'curry',\n 'prepose',\n '3bi',\n '?if',\n 'tri*',\n '2keep',\n '3keep',\n 'curried',\n '2keepd',\n 'when',\n '2bi*',\n '2tri*',\n '4keep',\n 'bi@',\n 'keepdd',\n 'do',\n 'unless*',\n 'tri-curry',\n 'if*',\n 'loop',\n 'bi-curry*',\n 'when*',\n '2bi@',\n '2tri@',\n 'with',\n '2with',\n 'either?',\n 'bi',\n 'until',\n '3dip',\n '3curry',\n 'tri-curry*',\n 'tri-curry@',\n 'bi-curry',\n 'keepd',\n 'compose',\n '2dip',\n 'if',\n '3tri',\n 'unless',\n 'tuple',\n 'keep',\n '2curry',\n 'tri',\n 'most',\n 'while*',\n 'dip',\n 'composed',\n 'bi-curry@', // sequences\n 'find-last-from',\n 'trim-head-slice',\n 'map-as',\n 'each-from',\n 'none?',\n 'trim-tail',\n 'partition',\n 'if-empty',\n 'accumulate*',\n 'reject!',\n 'find-from',\n 'accumulate-as',\n 'collector-for-as',\n 'reject',\n 'map',\n 'map-sum',\n 'accumulate!',\n '2each-from',\n 'follow',\n 'supremum-by',\n 'map!',\n 'unless-empty',\n 'collector',\n 'padding',\n 'reduce-index',\n 'replicate-as',\n 'infimum-by',\n 'trim-tail-slice',\n 'count',\n 'find-index',\n 'filter',\n 'accumulate*!',\n 'reject-as',\n 'map-integers',\n 'map-find',\n 'reduce',\n 'selector',\n 'interleave',\n '2map',\n 'filter-as',\n 'binary-reduce',\n 'map-index-as',\n 'find',\n 'produce',\n 'filter!',\n 'replicate',\n 'cartesian-map',\n 'cartesian-each',\n 'find-index-from',\n 'map-find-last',\n '3map-as',\n '3map',\n 'find-last',\n 'selector-as',\n '2map-as',\n '2map-reduce',\n 'accumulate',\n 'each',\n 'each-index',\n 'accumulate*-as',\n 'when-empty',\n 'all?',\n 'collector-as',\n 'push-either',\n 'new-like',\n 'collector-for',\n '2selector',\n 'push-if',\n '2all?',\n 'map-reduce',\n '3each',\n 'any?',\n 'trim-slice',\n '2reduce',\n 'change-nth',\n 'produce-as',\n '2each',\n 'trim',\n 'trim-head',\n 'cartesian-find',\n 'map-index', // math\n 'if-zero',\n 'each-integer',\n 'unless-zero',\n '(find-integer)',\n 'when-zero',\n 'find-last-integer',\n '(all-integers?)',\n 'times',\n '(each-integer)',\n 'find-integer',\n 'all-integers?', // math.combinators\n 'unless-negative',\n 'if-positive',\n 'when-positive',\n 'when-negative',\n 'unless-positive',\n 'if-negative', // combinators\n 'case',\n '2cleave',\n 'cond>quot',\n 'case>quot',\n '3cleave',\n 'wrong-values',\n 'to-fixed-point',\n 'alist>quot',\n 'cond',\n 'cleave',\n 'call-effect',\n 'recursive-hashcode',\n 'spread',\n 'deep-spread>quot', // combinators.short-circuit\n '2||',\n '0||',\n 'n||',\n '0&&',\n '2&&',\n '3||',\n '1||',\n '1&&',\n 'n&&',\n '3&&', // combinators.smart\n 'smart-unless*',\n 'keep-inputs',\n 'reduce-outputs',\n 'smart-when*',\n 'cleave>array',\n 'smart-with',\n 'smart-apply',\n 'smart-if',\n 'inputs/outputs',\n 'output>sequence-n',\n 'map-outputs',\n 'map-reduce-outputs',\n 'dropping',\n 'output>array',\n 'smart-map-reduce',\n 'smart-2map-reduce',\n 'output>array-n',\n 'nullary',\n 'input<sequence',\n 'append-outputs',\n 'drop-inputs',\n 'inputs',\n 'smart-2reduce',\n 'drop-outputs',\n 'smart-reduce',\n 'preserving',\n 'smart-when',\n 'outputs',\n 'append-outputs-as',\n 'smart-unless',\n 'smart-if*',\n 'sum-outputs',\n 'input<sequence-unsafe',\n 'output>sequence' // tafn\n ]\n factor.combinators.pattern = arrToWordsRegExp(combinators)\n Prism.languages.factor = factor\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = $false\n$false.displayName = '$false'\n$false.aliases = []\nfunction $false(Prism) {\n ;(function (Prism) {\n /**\n * Based on the manual by Wouter van Oortmerssen.\n *\n * @see {@link https://github.com/PrismJS/prism/issues/2801#issue-829717504}\n */\n Prism.languages['false'] = {\n comment: {\n pattern: /\\{[^}]*\\}/\n },\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n 'character-code': {\n pattern: /'(?:[^\\r]|\\r\\n?)/,\n alias: 'number'\n },\n 'assembler-code': {\n pattern: /\\d+`/,\n alias: 'important'\n },\n number: /\\d+/,\n operator: /[-!#$%&'*+,./:;=>?@\\\\^_`|~ßø]/,\n punctuation: /\\[|\\]/,\n variable: /[a-z]/,\n 'non-standard': {\n pattern: /[()<BDO®]/,\n alias: 'bold'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = firestoreSecurityRules\nfirestoreSecurityRules.displayName = 'firestoreSecurityRules'\nfirestoreSecurityRules.aliases = []\nfunction firestoreSecurityRules(Prism) {\n Prism.languages['firestore-security-rules'] = Prism.languages.extend(\n 'clike',\n {\n comment: /\\/\\/.*/,\n keyword:\n /\\b(?:allow|function|if|match|null|return|rules_version|service)\\b/,\n operator: /&&|\\|\\||[<>!=]=?|[-+*/%]|\\b(?:in|is)\\b/\n }\n )\n delete Prism.languages['firestore-security-rules']['class-name']\n Prism.languages.insertBefore('firestore-security-rules', 'keyword', {\n path: {\n pattern:\n /(^|[\\s(),])(?:\\/(?:[\\w\\xA0-\\uFFFF]+|\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)))+/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /\\{[\\w\\xA0-\\uFFFF]+(?:=\\*\\*)?\\}|\\$\\([\\w\\xA0-\\uFFFF.]+\\)/,\n inside: {\n operator: /=/,\n keyword: /\\*\\*/,\n punctuation: /[.$(){}]/\n }\n },\n punctuation: /\\//\n }\n },\n method: {\n // to make the pattern shorter, the actual method names are omitted\n pattern: /(\\ballow\\s+)[a-z]+(?:\\s*,\\s*[a-z]+)*(?=\\s*[:;])/,\n lookbehind: true,\n alias: 'builtin',\n inside: {\n punctuation: /,/\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = flow\nflow.displayName = 'flow'\nflow.aliases = []\nfunction flow(Prism) {\n ;(function (Prism) {\n Prism.languages.flow = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('flow', 'keyword', {\n type: [\n {\n pattern:\n /\\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\\b/,\n alias: 'tag'\n }\n ]\n })\n Prism.languages.flow['function-variable'].pattern =\n /(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/i\n delete Prism.languages.flow['parameter']\n Prism.languages.insertBefore('flow', 'operator', {\n 'flow-punctuation': {\n pattern: /\\{\\||\\|\\}/,\n alias: 'punctuation'\n }\n })\n if (!Array.isArray(Prism.languages.flow.keyword)) {\n Prism.languages.flow.keyword = [Prism.languages.flow.keyword]\n }\n Prism.languages.flow.keyword.unshift(\n {\n pattern: /(^|[^$]\\b)(?:Class|declare|opaque|type)\\b(?!\\$)/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^$]\\B)\\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\\b(?!\\$)/,\n lookbehind: true\n }\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = fortran\nfortran.displayName = 'fortran'\nfortran.aliases = []\nfunction fortran(Prism) {\n Prism.languages.fortran = {\n 'quoted-number': {\n pattern: /[BOZ](['\"])[A-F0-9]+\\1/i,\n alias: 'number'\n },\n string: {\n pattern:\n /(?:\\b\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:[ \\t]*!.*(?:\\r\\n?|\\n)|(?![ \\t]*!))|(?!\\1).)*(?:\\1|&)/,\n inside: {\n comment: {\n pattern: /(&(?:\\r\\n?|\\n)\\s*)!.*/,\n lookbehind: true\n }\n }\n },\n comment: {\n pattern: /!.*/,\n greedy: true\n },\n boolean: /\\.(?:FALSE|TRUE)\\.(?:_\\w+)?/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,\n keyword: [\n // Types\n /\\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\\b/i, // END statements\n /\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i, // Statements\n /\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i, // Others\n /\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i\n ],\n operator: [\n /\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.[A-Z]+\\./i,\n {\n // Use lookbehind to prevent confusion with (/ /)\n pattern: /(^|(?!\\().)\\/(?!\\))/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\/|\\/\\)|[(),;:&]/\n }\n}\n","'use strict'\n\nmodule.exports = fsharp\nfsharp.displayName = 'fsharp'\nfsharp.aliases = []\nfunction fsharp(Prism) {\n Prism.languages.fsharp = Prism.languages.extend('clike', {\n comment: [\n {\n pattern: /(^|[^\\\\])\\(\\*(?!\\))[\\s\\S]*?\\*\\)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")B?/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:exception|inherit|interface|new|of|type)\\s+|\\w\\s*:\\s*|\\s:\\??>\\s*)[.\\w]+\\b(?:\\s*(?:->|\\*)\\s*[.\\w]+\\b)*(?!\\s*[:.])/,\n lookbehind: true,\n inside: {\n operator: /->|\\*/,\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(?:abstract|and|as|asr|assert|atomic|base|begin|break|checked|class|component|const|constraint|constructor|continue|default|delegate|do|done|downcast|downto|eager|elif|else|end|event|exception|extern|external|false|finally|fixed|for|fun|function|functor|global|if|in|include|inherit|inline|interface|internal|land|lazy|lor|lsl|lsr|lxor|match|member|method|mixin|mod|module|mutable|namespace|new|not|null|object|of|open|or|override|parallel|private|process|protected|public|pure|rec|sealed|select|sig|static|struct|tailcall|then|to|trait|true|try|type|upcast|val|virtual|void|volatile|when|while|with)\\b/,\n number: [\n /\\b0x[\\da-fA-F]+(?:LF|lf|un)?\\b/,\n /\\b0b[01]+(?:uy|y)?\\b/,\n /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,\n /\\b\\d+(?:[IlLsy]|UL|u[lsy]?)?\\b/\n ],\n operator:\n /([<>~&^])\\1\\1|([*.:<>&])\\2|<-|->|[!=:]=|<?\\|{1,3}>?|\\??(?:<=|>=|<>|[-+*/%=<>])\\??|[!?^&]|~[+~-]|:>|:\\?>?/\n })\n Prism.languages.insertBefore('fsharp', 'keyword', {\n preprocessor: {\n pattern: /(^[\\t ]*)#.*/m,\n lookbehind: true,\n alias: 'property',\n inside: {\n directive: {\n pattern: /(^#)\\b(?:else|endif|if|light|line|nowarn)\\b/,\n lookbehind: true,\n alias: 'keyword'\n }\n }\n }\n })\n Prism.languages.insertBefore('fsharp', 'punctuation', {\n 'computation-expression': {\n pattern: /\\b[_a-z]\\w*(?=\\s*\\{)/i,\n alias: 'keyword'\n }\n })\n Prism.languages.insertBefore('fsharp', 'string', {\n annotation: {\n pattern: /\\[<.+?>\\]/,\n greedy: true,\n inside: {\n punctuation: /^\\[<|>\\]$/,\n 'class-name': {\n pattern: /^\\w+$|(^|;\\s*)[A-Z]\\w*(?=\\()/,\n lookbehind: true\n },\n 'annotation-content': {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.fsharp\n }\n }\n },\n char: {\n pattern:\n /'(?:[^\\\\']|\\\\(?:.|\\d{3}|x[a-fA-F\\d]{2}|u[a-fA-F\\d]{4}|U[a-fA-F\\d]{8}))'B?/,\n greedy: true\n }\n })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = ftl\nftl.displayName = 'ftl'\nftl.aliases = []\nfunction ftl(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n // https://freemarker.apache.org/docs/dgui_template_exp.html\n // FTL expression with 4 levels of nesting supported\n var FTL_EXPR =\n /[^<()\"']|\\((?:<expr>)*\\)|<(?!#--)|<#--(?:[^-]|-(?!->))*-->|\"(?:[^\\\\\"]|\\\\.)*\"|'(?:[^\\\\']|\\\\.)*'/\n .source\n for (var i = 0; i < 2; i++) {\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, function () {\n return FTL_EXPR\n })\n }\n FTL_EXPR = FTL_EXPR.replace(/<expr>/g, /[^\\s\\S]/.source)\n var ftl = {\n comment: /<#--[\\s\\S]*?-->/,\n string: [\n {\n // raw string\n pattern: /\\br(\"|')(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,\n greedy: true\n },\n {\n pattern: RegExp(\n /(\"|')(?:(?!\\1|\\$\\{)[^\\\\]|\\\\.|\\$\\{(?:(?!\\})(?:<expr>))*\\})*\\1/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n greedy: true,\n inside: {\n interpolation: {\n pattern: RegExp(\n /((?:^|[^\\\\])(?:\\\\\\\\)*)\\$\\{(?:(?!\\})(?:<expr>))*\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n )\n ),\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: null\n }\n }\n }\n }\n ],\n keyword: /\\b(?:as)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'builtin-function': {\n pattern: /((?:^|[^?])\\?\\s*)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n function: /\\b\\w+(?=\\s*\\()/,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator:\n /\\.\\.[<*!]?|->|--|\\+\\+|&&|\\|\\||\\?{1,2}|[-+*/%!=<>]=?|\\b(?:gt|gte|lt|lte)\\b/,\n punctuation: /[,;.:()[\\]{}]/\n }\n ftl.string[1].inside.interpolation.inside.rest = ftl\n Prism.languages.ftl = {\n 'ftl-comment': {\n // the pattern is shortened to be more efficient\n pattern: /^<#--[\\s\\S]*/,\n alias: 'comment'\n },\n 'ftl-directive': {\n pattern: /^<[\\s\\S]+>$/,\n inside: {\n directive: {\n pattern: /(^<\\/?)[#@][a-z]\\w*/i,\n lookbehind: true,\n alias: 'keyword'\n },\n punctuation: /^<\\/?|\\/?>$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n },\n 'ftl-interpolation': {\n pattern: /^\\$\\{[\\s\\S]*\\}$/,\n inside: {\n punctuation: /^\\$\\{|\\}$/,\n content: {\n pattern: /\\s*\\S[\\s\\S]*/,\n alias: 'ftl',\n inside: ftl\n }\n }\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n // eslint-disable-next-line regexp/no-useless-lazy\n var pattern = RegExp(\n /<#--[\\s\\S]*?-->|<\\/?[#@][a-zA-Z](?:<expr>)*?>|\\$\\{(?:<expr>)*?\\}/.source.replace(\n /<expr>/g,\n function () {\n return FTL_EXPR\n }\n ),\n 'gi'\n )\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'ftl',\n pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'ftl')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = gap\ngap.displayName = 'gap'\ngap.aliases = []\nfunction gap(Prism) {\n // https://www.gap-system.org/Manuals/doc/ref/chap4.html\n // https://www.gap-system.org/Manuals/doc/ref/chap27.html\n Prism.languages.gap = {\n shell: {\n pattern: /^gap>[\\s\\S]*?(?=^gap>|$(?![\\s\\S]))/m,\n greedy: true,\n inside: {\n gap: {\n pattern: /^(gap>).+(?:(?:\\r(?:\\n|(?!\\n))|\\n)>.*)*/,\n lookbehind: true,\n inside: null // see below\n },\n punctuation: /^gap>/\n }\n },\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern:\n /(^|[^\\\\'\"])(?:'(?:[^\\r\\n\\\\']|\\\\.){1,10}'|\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"(?!\")|\"\"\"[\\s\\S]*?\"\"\")/,\n lookbehind: true,\n greedy: true,\n inside: {\n continuation: {\n pattern: /([\\r\\n])>/,\n lookbehind: true,\n alias: 'punctuation'\n }\n }\n },\n keyword:\n /\\b(?:Assert|Info|IsBound|QUIT|TryNextMethod|Unbind|and|atomic|break|continue|do|elif|else|end|fi|for|function|if|in|local|mod|not|od|or|quit|readonly|readwrite|rec|repeat|return|then|until|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: {\n pattern:\n /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n lookbehind: true\n },\n continuation: {\n pattern: /([\\r\\n])>/,\n lookbehind: true,\n alias: 'punctuation'\n },\n operator: /->|[-+*/^~=!]|<>|[<>]=?|:=|\\.\\./,\n punctuation: /[()[\\]{},;.:]/\n }\n Prism.languages.gap.shell.inside.gap.inside = Prism.languages.gap\n}\n","'use strict'\n\nmodule.exports = gcode\ngcode.displayName = 'gcode'\ngcode.aliases = []\nfunction gcode(Prism) {\n Prism.languages.gcode = {\n comment: /;.*|\\B\\(.*?\\)\\B/,\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n keyword: /\\b[GM]\\d+(?:\\.\\d+)?\\b/,\n property: /\\b[A-Z]/,\n checksum: {\n pattern: /(\\*)\\d+/,\n lookbehind: true,\n alias: 'number'\n },\n // T0:0:0\n punctuation: /[:*]/\n }\n}\n","'use strict'\n\nmodule.exports = gdscript\ngdscript.displayName = 'gdscript'\ngdscript.aliases = []\nfunction gdscript(Prism) {\n Prism.languages.gdscript = {\n comment: /#.*/,\n string: {\n pattern:\n /@?(?:(\"|')(?:(?!\\1)[^\\n\\\\]|\\\\[\\s\\S])*\\1(?!\"|')|\"\"\"(?:[^\\\\]|\\\\[\\s\\S])*?\"\"\")/,\n greedy: true\n },\n 'class-name': {\n // class_name Foo, extends Bar, class InnerClass\n // export(int) var baz, export(int, 0) var i\n // as Node\n // const FOO: int = 9, var bar: bool = true\n // func add(reference: Item, amount: int) -> Item:\n pattern:\n /(^(?:class|class_name|extends)[ \\t]+|^export\\([ \\t]*|\\bas[ \\t]+|(?:\\b(?:const|var)[ \\t]|[,(])[ \\t]*\\w+[ \\t]*:[ \\t]*|->[ \\t]*)[a-zA-Z_]\\w*/m,\n lookbehind: true\n },\n keyword:\n /\\b(?:and|as|assert|break|breakpoint|class|class_name|const|continue|elif|else|enum|export|extends|for|func|if|in|is|master|mastersync|match|not|null|onready|or|pass|preload|puppet|puppetsync|remote|remotesync|return|self|setget|signal|static|tool|var|while|yield)\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*\\()/i,\n variable: /\\$\\w+/,\n number: [\n /\\b0b[01_]+\\b|\\b0x[\\da-fA-F_]+\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.[\\d_]+)(?:e[+-]?[\\d_]+)?\\b/,\n /\\b(?:INF|NAN|PI|TAU)\\b/\n ],\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /->|:=|&&|\\|\\||<<|>>|[-+*/%&|!<>=]=?|[~^]/,\n punctuation: /[.:,;()[\\]{}]/\n }\n}\n","'use strict'\n\nmodule.exports = gedcom\ngedcom.displayName = 'gedcom'\ngedcom.aliases = []\nfunction gedcom(Prism) {\n Prism.languages.gedcom = {\n 'line-value': {\n // Preceded by level, optional pointer, and tag\n pattern:\n /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ ).+/m,\n lookbehind: true,\n inside: {\n pointer: {\n pattern: /^@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,\n alias: 'variable'\n }\n }\n },\n tag: {\n // Preceded by level and optional pointer\n pattern:\n /(^[\\t ]*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,\n lookbehind: true,\n alias: 'string'\n },\n level: {\n pattern: /(^[\\t ]*)\\d+/m,\n lookbehind: true,\n alias: 'number'\n },\n pointer: {\n pattern: /@\\w[\\w!\"$%&'()*+,\\-./:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,\n alias: 'variable'\n }\n }\n}\n","'use strict'\n\nmodule.exports = gherkin\ngherkin.displayName = 'gherkin'\ngherkin.aliases = []\nfunction gherkin(Prism) {\n ;(function (Prism) {\n var tableRow = /(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|(?:(?!\\|).)*/.source\n Prism.languages.gherkin = {\n pystring: {\n pattern: /(\"\"\"|''')[\\s\\S]+?\\1/,\n alias: 'string'\n },\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[ \\t]*)@\\S*/m,\n lookbehind: true\n },\n feature: {\n pattern:\n /((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|Característica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|Fonctionnalité|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|Funcţionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|Funktionalität|Funktionalitéit|Funzionalità|Hwaet|Hwæt|Jellemző|Karakteristik|Lastnost|Mak|Mogucnost|laH|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Özellik|Potrzeba biznesowa|perbogh|poQbogh malja'|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|Tính năng|Trajto|Vermoë|Vlastnosť|Właściwość|Značilnost|Δυνατότητα|Λειτουργία|Могућност|Мөмкинлек|Особина|Свойство|Үзенчәлеклелек|Функционал|Функционалност|Функция|Функціонал|תכונה|خاصية|خصوصیت|صلاحیت|کاروبار کی ضرورت|وِیژگی|रूप लेख|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ಹೆಚ್ಚಳ|ความต้องการทางธุรกิจ|ความสามารถ|โครงหลัก|기능|フィーチャ|功能|機能):(?:[^:\\r\\n]+(?:\\r?\\n|\\r|$))*/,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]+/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n scenario: {\n pattern:\n /(^[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ær|Agtergrond|All y'all|Antecedentes|Antecedents|Atburðarás|Atburðarásir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cảnh|Cefndir|Cenario|Cenário|Cenario de Fundo|Cenário de Fundo|Cenarios|Cenários|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|Dæmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do Cenário|Dis is what went down|Dữ liệu|Dyagram Senaryo|Dyagram senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do Cenário|EXAMPLZ|Examples|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókönyv|Forgatókönyv vázlat|Fundo|Geçmiş|Grundlage|Hannergrond|ghantoH|Háttér|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bản|Khung tình huống|Kịch bản|Koncept|Konsep skenario|Kontèks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut chovnatlh|lut|lutmey|Lýsing Atburðarásar|Lýsing Dæma|MISHUN SRSLY|MISHUN|Menggariskan Senario|mo'|Náčrt Scenára|Náčrt Scénáře|Náčrt Scenáru|Oris scenarija|Örnekler|Osnova|Osnova Scenára|Osnova scénáře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|Példák|Piemēri|Plan du scénario|Plan du Scénario|Plan Senaryo|Plan senaryo|Plang vum Szenario|Pozadí|Pozadie|Pozadina|Príklady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|Scenár|Scénář|Scenarie|Scenarij|Scenarijai|Scenarijaus šablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|Scénario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ðe|Se the|Se þe|Senario|Senaryo Deskripsyon|Senaryo deskripsyon|Senaryo|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie Uiteensetting|Situasie|Skenario konsep|Skenario|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa hwaer swa|Swa|Swa hwær swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|Tình huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo-ho-ho|You'll wanna|Założenia|Παραδείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Υπόβαθρο|Кереш|Контекст|Концепт|Мисаллар|Мисоллар|Основа|Передумова|Позадина|Предистория|Предыстория|Приклади|Пример|Примери|Примеры|Рамка на сценарий|Скица|Структура сценарија|Структура сценария|Структура сценарію|Сценарий|Сценарий структураси|Сценарийның төзелеше|Сценарији|Сценарио|Сценарій|Тарих|Үрнәкләр|דוגמאות|רקע|תבנית תרחיש|תרחיש|الخلفية|الگوی سناریو|امثلة|پس منظر|زمینه|سناریو|سيناريو|سيناريو مخطط|مثالیں|منظر نامے کا خاکہ|منظرنامہ|نمونه ها|उदाहरण|परिदृश्य|परिदृश्य रूपरेखा|पृष्ठभूमि|ਉਦਾਹਰਨਾਂ|ਪਟਕਥਾ|ਪਟਕਥਾ ਢਾਂਚਾ|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਿਛੋਕੜ|ఉదాహరణలు|కథనం|నేపథ్యం|సన్నివేశం|ಉದಾಹರಣೆಗಳು|ಕಥಾಸಾರಾಂಶ|ವಿವರಣೆ|ಹಿನ್ನೆಲೆ|โครงสร้างของเหตุการณ์|ชุดของตัวอย่าง|ชุดของเหตุการณ์|แนวคิด|สรุปเหตุการณ์|เหตุการณ์|배경|시나리오|시나리오 개요|예|サンプル|シナリオ|シナリオアウトライン|シナリオテンプレ|シナリオテンプレート|テンプレ|例|例子|剧本|剧本大纲|劇本|劇本大綱|场景|场景大纲|場景|場景大綱|背景):[^:\\r\\n]*/m,\n lookbehind: true,\n inside: {\n important: {\n pattern: /(:)[^\\r\\n]*/,\n lookbehind: true\n },\n keyword: /[^:\\r\\n]+:/\n }\n },\n 'table-body': {\n // Look-behind is used to skip the table head, which has the same format as any table row\n pattern: RegExp('(' + tableRow + ')(?:' + tableRow + ')+'),\n lookbehind: true,\n inside: {\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n },\n td: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'string'\n },\n punctuation: /\\|/\n }\n },\n 'table-head': {\n pattern: RegExp(tableRow),\n inside: {\n th: {\n pattern: /\\s*[^\\s|][^|]*/,\n alias: 'variable'\n },\n punctuation: /\\|/\n }\n },\n atrule: {\n pattern:\n /(^[ \\t]+)(?:'a|'ach|'ej|7|a|A také|A taktiež|A tiež|A zároveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|Atès|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biết|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|Când|Cand|Cando|Ce|Cuando|Če|Ða ðe|Ða|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|Daţi fiind|Dați fiind|DEN|Dato|De|Den youse gotta|Dengan|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ðurh|Eeldades|Ef|Eğer ki|Entao|Então|Entón|E|En|Entonces|Epi|És|Etant donnée|Etant donné|Et|Étant données|Étant donnée|Étant donné|Etant données|Etant donnés|Étant donnés|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kad|Kada|Kadar|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|Lè sa a|Lè|Logo|Lorsqu'<|Lorsque|mä|Maar|Mais|Mając|Ma|Majd|Maka|Manawa|Mas|Men|Menawa|Mutta|Nalika|Nalikaning|Nanging|Når|När|Nato|Nhưng|Niin|Njuk|O zaman|Och|Og|Oletetaan|Ond|Onda|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|Quan|Quand|Quando|qaSDI'|Så|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|Thì|Thurh|Toda|Too right|Un|Und|ugeholl|Và|vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadan|Zadani|Zadano|Zadate|Zadato|Zakładając|Zaradi|Zatati|Þa þe|Þa|Þá|Þegar|Þurh|Αλλά|Δεδομένου|Και|Όταν|Τότε|А також|Агар|Але|Али|Аммо|А|Әгәр|Әйтик|Әмма|Бирок|Ва|Вә|Дадено|Дано|Допустим|Если|Задате|Задати|Задато|И|І|К тому же|Када|Кад|Когато|Когда|Коли|Ләкин|Лекин|Нәтиҗәдә|Нехай|Но|Онда|Припустимо, що|Припустимо|Пусть|Также|Та|Тогда|Тоді|То|Унда|Һәм|Якщо|אבל|אזי|אז|בהינתן|וגם|כאשר|آنگاه|اذاً|اگر|اما|اور|با فرض|بالفرض|بفرض|پھر|تب|ثم|جب|عندما|فرض کیا|لكن|لیکن|متى|هنگامی|و|अगर|और|कदा|किन्तु|चूंकि|जब|तथा|तदा|तब|परन्तु|पर|यदि|ਅਤੇ|ਜਦੋਂ|ਜਿਵੇਂ ਕਿ|ਜੇਕਰ|ਤਦ|ਪਰ|అప్పుడు|ఈ పరిస్థితిలో|కాని|చెప్పబడినది|మరియు|ಆದರೆ|ನಂತರ|ನೀಡಿದ|ಮತ್ತು|ಸ್ಥಿತಿಯನ್ನು|กำหนดให้|ดังนั้น|แต่|เมื่อ|และ|그러면<|그리고<|단<|만약<|만일<|먼저<|조건<|하지만<|かつ<|しかし<|ただし<|ならば<|もし<|並且<|但し<|但是<|假如<|假定<|假設<|假设<|前提<|同时<|同時<|并且<|当<|當<|而且<|那么<|那麼<)(?=[ \\t])/m,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n inside: {\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n }\n }\n },\n outline: {\n pattern: /<[^>]+>/,\n alias: 'variable'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = git\ngit.displayName = 'git'\ngit.aliases = []\nfunction git(Prism) {\n Prism.languages.git = {\n /*\n * A simple one line comment like in a git status command\n * For instance:\n * $ git status\n * # On branch infinite-scroll\n * # Your branch and 'origin/sharedBranches/frontendTeam/infinite-scroll' have diverged,\n * # and have 1 and 2 different commits each, respectively.\n * nothing to commit (working directory clean)\n */\n comment: /^#.*/m,\n /*\n * Regexp to match the changed lines in a git diff output. Check the example below.\n */\n deleted: /^[-].*/m,\n inserted: /^\\+.*/m,\n /*\n * a string (double and simple quote)\n */\n string: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n /*\n * a git command. It starts with a random prompt finishing by a $, then \"git\" then some other parameters\n * For instance:\n * $ git add file.txt\n */\n command: {\n pattern: /^.*\\$ git .*$/m,\n inside: {\n /*\n * A git command can contain a parameter starting by a single or a double dash followed by a string\n * For instance:\n * $ git diff --cached\n * $ git log -p\n */\n parameter: /\\s--?\\w+/\n }\n },\n /*\n * Coordinates displayed in a git diff command\n * For instance:\n * $ git diff\n * diff --git file.txt file.txt\n * index 6214953..1d54a52 100644\n * --- file.txt\n * +++ file.txt\n * @@ -1 +1,2 @@\n * -Here's my tetx file\n * +Here's my text file\n * +And this is the second line\n */\n coord: /^@@.*@@$/m,\n /*\n * Match a \"commit [SHA1]\" line in a git log output.\n * For instance:\n * $ git log\n * commit a11a14ef7e26f2ca62d4b35eac455ce636d0dc09\n * Author: lgiraudel\n * Date: Mon Feb 17 11:18:34 2014 +0100\n *\n * Add of a new line\n */\n 'commit-sha1': /^commit \\w{40}$/m\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = glsl\nglsl.displayName = 'glsl'\nglsl.aliases = []\nfunction glsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.glsl = Prism.languages.extend('c', {\n keyword:\n /\\b(?:active|asm|atomic_uint|attribute|[ibdu]?vec[234]|bool|break|buffer|case|cast|centroid|class|coherent|common|const|continue|d?mat[234](?:x[234])?|default|discard|do|double|else|enum|extern|external|false|filter|fixed|flat|float|for|fvec[234]|goto|half|highp|hvec[234]|[iu]?sampler2DMS(?:Array)?|[iu]?sampler2DRect|[iu]?samplerBuffer|[iu]?samplerCube|[iu]?samplerCubeArray|[iu]?sampler[123]D|[iu]?sampler[12]DArray|[iu]?image2DMS(?:Array)?|[iu]?image2DRect|[iu]?imageBuffer|[iu]?imageCube|[iu]?imageCubeArray|[iu]?image[123]D|[iu]?image[12]DArray|if|in|inline|inout|input|int|interface|invariant|layout|long|lowp|mediump|namespace|noinline|noperspective|out|output|partition|patch|precise|precision|public|readonly|resource|restrict|return|sample|sampler[12]DArrayShadow|sampler[12]DShadow|sampler2DRectShadow|sampler3DRect|samplerCubeArrayShadow|samplerCubeShadow|shared|short|sizeof|smooth|static|struct|subroutine|superp|switch|template|this|true|typedef|uint|uniform|union|unsigned|using|varying|void|volatile|while|writeonly)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = gml\ngml.displayName = 'gml'\ngml.aliases = []\nfunction gml(Prism) {\n Prism.languages.gamemakerlanguage = Prism.languages.gml =\n Prism.languages.extend('clike', {\n keyword:\n /\\b(?:break|case|continue|default|do|else|enum|exit|for|globalvar|if|repeat|return|switch|until|var|while)\\b/,\n number:\n /(?:\\b0x[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]{0,4}/i,\n operator:\n /--|\\+\\+|[-+%/=]=?|!=|\\*\\*?=?|<[<=>]?|>[=>]?|&&?|\\^\\^?|\\|\\|?|~|\\b(?:and|at|not|or|with|xor)\\b/,\n constant:\n /\\b(?:GM_build_date|GM_version|action_(?:continue|restart|reverse|stop)|all|gamespeed_(?:fps|microseconds)|global|local|noone|other|pi|pointer_(?:invalid|null)|self|timezone_(?:local|utc)|undefined|ev_(?:create|destroy|step|alarm|keyboard|mouse|collision|other|draw|draw_(?:begin|end|post|pre)|keypress|keyrelease|trigger|(?:left|middle|no|right)_button|(?:left|middle|right)_press|(?:left|middle|right)_release|mouse_(?:enter|leave|wheel_down|wheel_up)|global_(?:left|middle|right)_button|global_(?:left|middle|right)_press|global_(?:left|middle|right)_release|joystick(?:1|2)_(?:button1|button2|button3|button4|button5|button6|button7|button8|down|left|right|up)|outside|boundary|game_start|game_end|room_start|room_end|no_more_lives|animation_end|end_of_path|no_more_health|user\\d|gui|gui_begin|gui_end|step_(?:begin|end|normal))|vk_(?:alt|anykey|backspace|control|delete|down|end|enter|escape|home|insert|left|nokey|pagedown|pageup|pause|printscreen|return|right|shift|space|tab|up|f\\d|numpad\\d|add|decimal|divide|lalt|lcontrol|lshift|multiply|ralt|rcontrol|rshift|subtract)|achievement_(?:filter_(?:all_players|favorites_only|friends_only)|friends_info|info|leaderboard_info|our_info|pic_loaded|show_(?:achievement|bank|friend_picker|leaderboard|profile|purchase_prompt|ui)|type_challenge|type_score_challenge)|asset_(?:font|object|path|room|script|shader|sound|sprite|tiles|timeline|unknown)|audio_(?:3d|falloff_(?:exponent_distance|exponent_distance_clamped|inverse_distance|inverse_distance_clamped|linear_distance|linear_distance_clamped|none)|mono|new_system|old_system|stereo)|bm_(?:add|complex|dest_alpha|dest_color|dest_colour|inv_dest_alpha|inv_dest_color|inv_dest_colour|inv_src_alpha|inv_src_color|inv_src_colour|max|normal|one|src_alpha|src_alpha_sat|src_color|src_colour|subtract|zero)|browser_(?:chrome|firefox|ie|ie_mobile|not_a_browser|opera|safari|safari_mobile|tizen|unknown|windows_store)|buffer_(?:bool|f16|f32|f64|fast|fixed|generalerror|grow|invalidtype|network|outofbounds|outofspace|s16|s32|s8|seek_end|seek_relative|seek_start|string|text|u16|u32|u64|u8|vbuffer|wrap)|c_(?:aqua|black|blue|dkgray|fuchsia|gray|green|lime|ltgray|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)|cmpfunc_(?:always|equal|greater|greaterequal|less|lessequal|never|notequal)|cr_(?:appstart|arrow|beam|cross|default|drag|handpoint|hourglass|none|size_all|size_nesw|size_ns|size_nwse|size_we|uparrow)|cull_(?:clockwise|counterclockwise|noculling)|device_(?:emulator|tablet)|device_ios_(?:ipad|ipad_retina|iphone|iphone5|iphone6|iphone6plus|iphone_retina|unknown)|display_(?:landscape|landscape_flipped|portrait|portrait_flipped)|dll_(?:cdecl|cdel|stdcall)|ds_type_(?:grid|list|map|priority|queue|stack)|ef_(?:cloud|ellipse|explosion|firework|flare|rain|ring|smoke|smokeup|snow|spark|star)|fa_(?:archive|bottom|center|directory|hidden|left|middle|readonly|right|sysfile|top|volumeid)|fb_login_(?:default|fallback_to_webview|forcing_safari|forcing_webview|no_fallback_to_webview|use_system_account)|iap_(?:available|canceled|ev_consume|ev_product|ev_purchase|ev_restore|ev_storeload|failed|purchased|refunded|status_available|status_loading|status_processing|status_restoring|status_unavailable|status_uninitialised|storeload_failed|storeload_ok|unavailable)|leaderboard_type_(?:number|time_mins_secs)|lighttype_(?:dir|point)|matrix_(?:projection|view|world)|mb_(?:any|left|middle|none|right)|network_(?:config_(?:connect_timeout|disable_reliable_udp|enable_reliable_udp|use_non_blocking_socket)|socket_(?:bluetooth|tcp|udp)|type_(?:connect|data|disconnect|non_blocking_connect))|of_challenge_(?:lose|tie|win)|os_(?:android|ios|linux|macosx|ps3|ps4|psvita|unknown|uwp|win32|win8native|windows|winphone|xboxone)|phy_debug_render_(?:aabb|collision_pairs|coms|core_shapes|joints|obb|shapes)|phy_joint_(?:anchor_1_x|anchor_1_y|anchor_2_x|anchor_2_y|angle|angle_limits|damping_ratio|frequency|length_1|length_2|lower_angle_limit|max_force|max_length|max_motor_force|max_motor_torque|max_torque|motor_force|motor_speed|motor_torque|reaction_force_x|reaction_force_y|reaction_torque|speed|translation|upper_angle_limit)|phy_particle_data_flag_(?:category|color|colour|position|typeflags|velocity)|phy_particle_flag_(?:colormixing|colourmixing|elastic|powder|spring|tensile|viscous|wall|water|zombie)|phy_particle_group_flag_(?:rigid|solid)|pr_(?:linelist|linestrip|pointlist|trianglefan|trianglelist|trianglestrip)|ps_(?:distr|shape)_(?:diamond|ellipse|gaussian|invgaussian|line|linear|rectangle)|pt_shape_(?:circle|cloud|disk|explosion|flare|line|pixel|ring|smoke|snow|spark|sphere|square|star)|ty_(?:real|string)|gp_(?:face\\d|axislh|axislv|axisrh|axisrv|padd|padl|padr|padu|select|shoulderl|shoulderlb|shoulderr|shoulderrb|start|stickl|stickr)|lb_disp_(?:none|numeric|time_ms|time_sec)|lb_sort_(?:ascending|descending|none)|ov_(?:achievements|community|friends|gamegroup|players|settings)|ugc_(?:filetype_(?:community|microtrans)|list_(?:Favorited|Followed|Published|Subscribed|UsedOrPlayed|VotedDown|VotedOn|VotedUp|WillVoteLater)|match_(?:AllGuides|Artwork|Collections|ControllerBindings|IntegratedGuides|Items|Items_Mtx|Items_ReadyToUse|Screenshots|UsableInGame|Videos|WebGuides)|query_(?:AcceptedForGameRankedByAcceptanceDate|CreatedByFriendsRankedByPublicationDate|FavoritedByFriendsRankedByPublicationDate|NotYetRated)|query_RankedBy(?:NumTimesReported|PublicationDate|TextSearch|TotalVotesAsc|Trend|Vote|VotesUp)|result_success|sortorder_CreationOrder(?:Asc|Desc)|sortorder_(?:ForModeration|LastUpdatedDesc|SubscriptionDateDesc|TitleAsc|VoteScoreDesc)|visibility_(?:friends_only|private|public))|vertex_usage_(?:binormal|blendindices|blendweight|color|colour|depth|fog|normal|position|psize|sample|tangent|texcoord|textcoord)|vertex_type_(?:float\\d|color|colour|ubyte4)|input_type|layerelementtype_(?:background|instance|oldtilemap|particlesystem|sprite|tile|tilemap|undefined)|se_(?:chorus|compressor|echo|equalizer|flanger|gargle|none|reverb)|text_type|tile_(?:flip|index_mask|mirror|rotate)|(?:obj|rm|scr|spr)\\w+)\\b/,\n variable:\n /\\b(?:alarm|application_surface|async_load|background_(?:alpha|blend|color|colour|foreground|height|hspeed|htiled|index|showcolor|showcolour|visible|vspeed|vtiled|width|x|xscale|y|yscale)|bbox_(?:bottom|left|right|top)|browser_(?:height|width)|caption_(?:health|lives|score)|current_(?:day|hour|minute|month|second|time|weekday|year)|cursor_sprite|debug_mode|delta_time|direction|display_aa|error_(?:last|occurred)|event_(?:action|number|object|type)|fps|fps_real|friction|game_(?:display|project|save)_(?:id|name)|gamemaker_(?:pro|registered|version)|gravity|gravity_direction|(?:h|v)speed|health|iap_data|id|image_(?:alpha|angle|blend|depth|index|number|speed|xscale|yscale)|instance_(?:count|id)|keyboard_(?:key|lastchar|lastkey|string)|layer|lives|mask_index|mouse_(?:button|lastbutton|x|y)|object_index|os_(?:browser|device|type|version)|path_(?:endaction|index|orientation|position|positionprevious|scale|speed)|persistent|phy_(?:rotation|(?:col_normal|collision|com|linear_velocity|position|speed)_(?:x|y)|angular_(?:damping|velocity)|position_(?:x|y)previous|speed|linear_damping|bullet|fixed_rotation|active|mass|inertia|dynamic|kinematic|sleeping|collision_points)|pointer_(?:invalid|null)|room|room_(?:caption|first|height|last|persistent|speed|width)|score|secure_mode|show_(?:health|lives|score)|solid|speed|sprite_(?:height|index|width|xoffset|yoffset)|temp_directory|timeline_(?:index|loop|position|running|speed)|transition_(?:color|kind|steps)|undefined|view_(?:angle|current|enabled|(?:h|v)(?:border|speed)|(?:h|w|x|y)port|(?:h|w|x|y)view|object|surface_id|visible)|visible|webgl_enabled|working_directory|(?:x|y)(?:previous|start)|x|y|argument(?:_relitive|_count|\\d)|argument|global|local|other|self)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = gn\ngn.displayName = 'gn'\ngn.aliases = ['gni']\nfunction gn(Prism) {\n // https://gn.googlesource.com/gn/+/refs/heads/main/docs/reference.md#grammar\n Prism.languages.gn = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'string-literal': {\n pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\"\\\\]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[\\s\\S]*?\\}|[a-zA-Z_]\\w*|0x[a-fA-F0-9]{2})/,\n lookbehind: true,\n inside: {\n number: /^\\$0x[\\s\\S]{2}$/,\n variable: /^\\$\\w+$/,\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n string: /[\\s\\S]+/\n }\n },\n keyword: /\\b(?:else|if)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'builtin-function': {\n // a few functions get special highlighting to improve readability\n pattern:\n /\\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\\s*\\()/i,\n alias: 'keyword'\n },\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n constant:\n /\\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\\b/,\n number: /-?\\b\\d+\\b/,\n operator: /[-+!=<>]=?|&&|\\|\\|/,\n punctuation: /[(){}[\\],.]/\n }\n Prism.languages.gn['string-literal'].inside['interpolation'].inside[\n 'expression'\n ].inside = Prism.languages.gn\n Prism.languages.gni = Prism.languages.gn\n}\n","'use strict'\n\nmodule.exports = goModule\ngoModule.displayName = 'goModule'\ngoModule.aliases = []\nfunction goModule(Prism) {\n // https://go.dev/ref/mod#go-mod-file-module\n Prism.languages['go-mod'] = Prism.languages['go-module'] = {\n comment: {\n pattern: /\\/\\/.*/,\n greedy: true\n },\n version: {\n pattern: /(^|[\\s()[\\],])v\\d+\\.\\d+\\.\\d+(?:[+-][-+.\\w]*)?(?![^\\s()[\\],])/,\n lookbehind: true,\n alias: 'number'\n },\n 'go-version': {\n pattern: /((?:^|\\s)go\\s+)\\d+(?:\\.\\d+){1,2}/,\n lookbehind: true,\n alias: 'number'\n },\n keyword: {\n pattern: /^([ \\t]*)(?:exclude|go|module|replace|require|retract)\\b/m,\n lookbehind: true\n },\n operator: /=>/,\n punctuation: /[()[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = go\ngo.displayName = 'go'\ngo.aliases = []\nfunction go(Prism) {\n Prism.languages.go = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`[^`]*`/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,\n boolean: /\\b(?:_|false|iota|nil|true)\\b/,\n number: [\n // binary and octal integers\n /\\b0(?:b[01_]+|o[0-7_]+)i?\\b/i, // hexadecimal integers and floats\n /\\b0x(?:[a-f\\d_]+(?:\\.[a-f\\d_]*)?|\\.[a-f\\d_]+)(?:p[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i, // decimal integers and floats\n /(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?[\\d_]+)?i?(?!\\w)/i\n ],\n operator:\n /[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,\n builtin:\n /\\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\\b/\n })\n Prism.languages.insertBefore('go', 'string', {\n char: {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){0,10}'/,\n greedy: true\n }\n })\n delete Prism.languages.go['class-name']\n}\n","'use strict'\n\nmodule.exports = graphql\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\nfunction graphql(Prism) {\n Prism.languages.graphql = {\n comment: /#.*/,\n description: {\n pattern:\n /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n greedy: true,\n alias: 'string',\n inside: {\n 'language-markdown': {\n pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: Prism.languages.markdown\n }\n }\n },\n string: {\n pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n variable: /\\$[a-z_]\\w*/i,\n directive: {\n pattern: /@[a-z_]\\w*/i,\n alias: 'function'\n },\n 'attr-name': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n greedy: true\n },\n 'atom-input': {\n pattern: /\\b[A-Z]\\w*Input\\b/,\n alias: 'class-name'\n },\n scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n 'class-name': {\n pattern:\n /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n lookbehind: true\n },\n fragment: {\n pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-mutation': {\n pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-query': {\n pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n keyword:\n /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n operator: /[!=|&]|\\.{3}/,\n 'property-query': /\\w+(?=\\s*\\()/,\n object: /\\w+(?=\\s*\\{)/,\n punctuation: /[!(){}\\[\\]:=,]/,\n property: /\\w+/\n }\n Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n if (env.language !== 'graphql') {\n return\n }\n /**\n * get the graphql token stream that we want to customize\n *\n * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n * @type {Token[]}\n */\n var validTokens = env.tokens.filter(function (token) {\n return (\n typeof token !== 'string' &&\n token.type !== 'comment' &&\n token.type !== 'scalar'\n )\n })\n var currentIndex = 0\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {number} offset\n * @returns {Token | undefined}\n */\n function getToken(offset) {\n return validTokens[currentIndex + offset]\n }\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {readonly string[]} types\n * @param {number} [offset=0]\n * @returns {boolean}\n */\n function isTokenType(types, offset) {\n offset = offset || 0\n for (var i = 0; i < types.length; i++) {\n var token = getToken(i + offset)\n if (!token || token.type !== types[i]) {\n return false\n }\n }\n return true\n }\n /**\n * Returns the index of the closing bracket to an opening bracket.\n *\n * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n *\n * If no closing bracket could be found, `-1` will be returned.\n *\n * @param {RegExp} open\n * @param {RegExp} close\n * @returns {number}\n */\n function findClosingBracket(open, close) {\n var stackHeight = 1\n for (var i = currentIndex; i < validTokens.length; i++) {\n var token = validTokens[i]\n var content = token.content\n if (token.type === 'punctuation' && typeof content === 'string') {\n if (open.test(content)) {\n stackHeight++\n } else if (close.test(content)) {\n stackHeight--\n if (stackHeight === 0) {\n return i\n }\n }\n }\n }\n return -1\n }\n /**\n * Adds an alias to the given token.\n *\n * @param {Token} token\n * @param {string} alias\n * @returns {void}\n */\n function addAlias(token, alias) {\n var aliases = token.alias\n if (!aliases) {\n token.alias = aliases = []\n } else if (!Array.isArray(aliases)) {\n token.alias = aliases = [aliases]\n }\n aliases.push(alias)\n }\n for (; currentIndex < validTokens.length; ) {\n var startToken = validTokens[currentIndex++] // add special aliases for mutation tokens\n if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n // any array of the names of all input variables (if any)\n var inputVariables = []\n if (\n isTokenType(['definition-mutation', 'punctuation']) &&\n getToken(1).content === '('\n ) {\n // definition\n currentIndex += 2 // skip 'definition-mutation' and 'punctuation'\n var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/)\n if (definitionEnd === -1) {\n continue\n } // find all input variables\n for (; currentIndex < definitionEnd; currentIndex++) {\n var t = getToken(0)\n if (t.type === 'variable') {\n addAlias(t, 'variable-input')\n inputVariables.push(t.content)\n }\n }\n currentIndex = definitionEnd + 1\n }\n if (\n isTokenType(['punctuation', 'property-query']) &&\n getToken(0).content === '{'\n ) {\n currentIndex++ // skip opening bracket\n addAlias(getToken(0), 'property-mutation')\n if (inputVariables.length > 0) {\n var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/)\n if (mutationEnd === -1) {\n continue\n } // give references to input variables a special alias\n for (var i = currentIndex; i < mutationEnd; i++) {\n var varToken = validTokens[i]\n if (\n varToken.type === 'variable' &&\n inputVariables.indexOf(varToken.content) >= 0\n ) {\n addAlias(varToken, 'variable-input')\n }\n }\n }\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = groovy\ngroovy.displayName = 'groovy'\ngroovy.aliases = []\nfunction groovy(Prism) {\n Prism.languages.groovy = Prism.languages.extend('clike', {\n string: [\n {\n // https://groovy-lang.org/syntax.html#_dollar_slashy_string\n pattern:\n /(\"\"\"|''')(?:[^\\\\]|\\\\[\\s\\S])*?\\1|\\$\\/(?:[^/$]|\\$(?:[/$]|(?![/$]))|\\/(?!\\$))*\\/\\$/,\n greedy: true\n },\n {\n // TODO: Slash strings (e.g. /foo/) can contain line breaks but this will cause a lot of trouble with\n // simple division (see JS regex), so find a fix maybe?\n pattern: /([\"'/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n }\n ],\n keyword:\n /\\b(?:abstract|as|assert|boolean|break|byte|case|catch|char|class|const|continue|def|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|in|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,\n number:\n /\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?\\d+)?)[glidf]?\\b/i,\n operator: {\n pattern:\n /(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.\\.(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,\n lookbehind: true\n },\n punctuation: /\\.+|[{}[\\];(),:$]/\n })\n Prism.languages.insertBefore('groovy', 'string', {\n shebang: {\n pattern: /#!.+/,\n alias: 'comment'\n }\n })\n Prism.languages.insertBefore('groovy', 'punctuation', {\n 'spock-block': /\\b(?:and|cleanup|expect|given|setup|then|when|where):/\n })\n Prism.languages.insertBefore('groovy', 'function', {\n annotation: {\n pattern: /(^|[^.])@\\w+/,\n lookbehind: true,\n alias: 'punctuation'\n }\n }) // Handle string interpolation\n Prism.hooks.add('wrap', function (env) {\n if (env.language === 'groovy' && env.type === 'string') {\n var delimiter = env.content.value[0]\n if (delimiter != \"'\") {\n var pattern = /([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n if (delimiter === '$') {\n pattern = /([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/\n } // To prevent double HTML-encoding we have to decode env.content first\n env.content.value = env.content.value\n .replace(/&lt;/g, '<')\n .replace(/&amp;/g, '&')\n env.content = Prism.highlight(env.content.value, {\n expression: {\n pattern: pattern,\n lookbehind: true,\n inside: Prism.languages.groovy\n }\n })\n env.classes.push(delimiter === '/' ? 'regex' : 'gstring')\n }\n }\n })\n}\n","'use strict'\nvar refractorRuby = require('./ruby.js')\nmodule.exports = haml\nhaml.displayName = 'haml'\nhaml.aliases = []\nfunction haml(Prism) {\n Prism.register(refractorRuby)\n /* TODO\nHandle multiline code after tag\n%foo= some |\nmultiline |\ncode |\n*/\n ;(function (Prism) {\n Prism.languages.haml = {\n // Multiline stuff should appear before the rest\n 'multiline-comment': {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/,\n lookbehind: true,\n alias: 'comment'\n },\n 'multiline-code': [\n {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ].*\\|[\\t ]*)*/,\n lookbehind: true,\n inside: Prism.languages.ruby\n }\n ],\n // See at the end of the file for known filters\n filter: {\n pattern:\n /((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'symbol'\n }\n }\n },\n markup: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,\n lookbehind: true\n },\n tag: {\n // Allows for one nested group of braces\n pattern:\n /((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^{}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,\n lookbehind: true,\n inside: {\n attributes: [\n {\n // Lookbehind tries to prevent interpolations from breaking it all\n // Allows for one nested group of braces\n pattern: /(^|[^#])\\{(?:\\{[^}]+\\}|[^{}])+\\}/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,\n lookbehind: true\n },\n 'attr-name': /[\\w:-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[=(),]/\n }\n },\n {\n pattern: /\\[[^\\]]+\\]/,\n inside: Prism.languages.ruby\n }\n ],\n punctuation: /[<>]/\n }\n },\n code: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n // Interpolations in plain text\n interpolation: {\n pattern: /#\\{[^}]+\\}/,\n inside: {\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n },\n ruby: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.ruby\n }\n }\n },\n punctuation: {\n pattern: /((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,\n lookbehind: true\n }\n }\n var filter_pattern =\n '((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ].+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+' // Non exhaustive list of available filters and associated languages\n var filters = [\n 'css',\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'erb',\n 'javascript',\n 'less',\n 'markdown',\n 'ruby',\n 'scss',\n 'textile'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('{{filter_name}}', function () {\n return filter.filter\n })\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'symbol'\n },\n text: {\n pattern: /[\\s\\S]+/,\n alias: [filter.language, 'language-' + filter.language],\n inside: Prism.languages[filter.language]\n }\n }\n }\n }\n }\n Prism.languages.insertBefore('haml', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = handlebars\nhandlebars.displayName = 'handlebars'\nhandlebars.aliases = ['hbs']\nfunction handlebars(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.handlebars = {\n comment: /\\{\\{![\\s\\S]*?\\}\\}/,\n delimiter: {\n pattern: /^\\{\\{\\{?|\\}\\}\\}?$/,\n alias: 'punctuation'\n },\n string: /([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\n boolean: /\\b(?:false|true)\\b/,\n block: {\n pattern: /^(\\s*(?:~\\s*)?)[#\\/]\\S+?(?=\\s*(?:~\\s*)?$|\\s)/,\n lookbehind: true,\n alias: 'keyword'\n },\n brackets: {\n pattern: /\\[[^\\]]+\\]/,\n inside: {\n punctuation: /\\[|\\]/,\n variable: /[\\s\\S]+/\n }\n },\n punctuation: /[!\"#%&':()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,\n variable: /[^!\"#%&'()*+,\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var handlebarsPattern = /\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'handlebars',\n handlebarsPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(\n env,\n 'handlebars'\n )\n })\n Prism.languages.hbs = Prism.languages.handlebars\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = haskell\nhaskell.displayName = 'haskell'\nhaskell.aliases = ['hs']\nfunction haskell(Prism) {\n Prism.languages.haskell = {\n comment: {\n pattern:\n /(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--(?:(?=.)[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|$)|\\{-[\\s\\S]*?-\\})/m,\n lookbehind: true\n },\n char: {\n pattern:\n /'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|ACK|BEL|BS|CAN|CR|DC1|DC2|DC3|DC4|DEL|DLE|EM|ENQ|EOT|ESC|ETB|ETX|FF|FS|GS|HT|LF|NAK|NUL|RS|SI|SO|SOH|SP|STX|SUB|SYN|US|VT|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\(?:\\S|\\s+\\\\))*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|hiding|import|qualified)\\b/,\n punctuation: /\\./\n }\n },\n // These are builtin variables only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,\n // decimal integers and floating point numbers | octal integers | hexadecimal integers\n number: /\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,\n operator: [\n {\n // infix operator\n pattern: /`(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*`/,\n greedy: true\n },\n {\n // function composition\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n }, // Most of this is needed because of the meaning of a single '.'.\n // If it stands alone freely, it is the function composition.\n // It may also be a separator between a module name and an identifier => no\n // operator. If it comes together with other special characters it is an\n // operator too.\n //\n // This regex means: /[-!#$%*+=?&@|~.:<>^\\\\\\/]+/ without /\\./.\n /[-!#$%*+=?&@|~:<>^\\\\\\/][-!#$%*+=?&@|~.:<>^\\\\\\/]*|\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+/\n ],\n // In Haskell, nearly everything is a variable, do not highlight these.\n hvariable: {\n pattern: /\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*/,\n inside: {\n punctuation: /\\./\n }\n },\n constant: {\n pattern: /\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.hs = Prism.languages.haskell\n}\n","'use strict'\n\nmodule.exports = haxe\nhaxe.displayName = 'haxe'\nhaxe.aliases = []\nfunction haxe(Prism) {\n Prism.languages.haxe = Prism.languages.extend('clike', {\n string: {\n // Strings can be multi-line\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n greedy: true\n },\n 'class-name': [\n {\n pattern:\n /(\\b(?:abstract|class|enum|extends|implements|interface|new|typedef)\\s+)[A-Z_]\\w*/,\n lookbehind: true\n }, // based on naming convention\n /\\b[A-Z]\\w*/\n ],\n // The final look-ahead prevents highlighting of keywords if expressions such as \"haxe.macro.Expr\"\n keyword:\n /\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|final|for|from|function|if|implements|import|in|inline|interface|macro|new|null|operator|overload|override|package|private|public|return|static|super|switch|throw|to|try|typedef|untyped|using|var|while)(?!\\.)\\b/,\n function: {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:<[^<>]*>\\s*)?\\()/i,\n greedy: true\n },\n operator: /\\.{3}|\\+\\+|--|&&|\\|\\||->|=>|(?:<<?|>{1,3}|[-+*/%!=&|^])=?|[?:~]/\n })\n Prism.languages.insertBefore('haxe', 'string', {\n 'string-interpolation': {\n pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^\\\\])\\$(?:\\w+|\\{[^{}]+\\})/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.haxe\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('haxe', 'class-name', {\n regex: {\n pattern: /~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[a-z]*/,\n greedy: true,\n inside: {\n 'regex-flags': /\\b[a-z]+$/,\n 'regex-source': {\n pattern: /^(~\\/)[\\s\\S]+(?=\\/$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^~\\/|\\/$/\n }\n }\n })\n Prism.languages.insertBefore('haxe', 'keyword', {\n preprocessor: {\n pattern: /#(?:else|elseif|end|if)\\b.*/,\n alias: 'property'\n },\n metadata: {\n pattern: /@:?[\\w.]+/,\n alias: 'symbol'\n },\n reification: {\n pattern: /\\$(?:\\w+|(?=\\{))/,\n alias: 'important'\n }\n })\n}\n","'use strict'\n\nmodule.exports = hcl\nhcl.displayName = 'hcl'\nhcl.aliases = []\nfunction hcl(Prism) {\n Prism.languages.hcl = {\n comment: /(?:\\/\\/|#).*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n heredoc: {\n pattern: /<<-?(\\w+\\b)[\\s\\S]*?^[ \\t]*\\1/m,\n greedy: true,\n alias: 'string'\n },\n keyword: [\n {\n pattern:\n /(?:data|resource)\\s+(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")(?=\\s+\"[\\w-]+\"\\s+\\{)/i,\n inside: {\n type: {\n pattern: /(resource|data|\\s+)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n {\n pattern:\n /(?:backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+(?=\\{)/i,\n inside: {\n type: {\n pattern:\n /(backend|module|output|provider|provisioner|variable)\\s+(?:[\\w-]+|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")\\s+/i,\n lookbehind: true,\n alias: 'variable'\n }\n }\n },\n /[\\w-]+(?=\\s+\\{)/\n ],\n property: [/[-\\w\\.]+(?=\\s*=(?!=))/, /\"(?:\\\\[\\s\\S]|[^\\\\\"])+\"(?=\\s*[:=])/],\n string: {\n pattern:\n /\"(?:[^\\\\$\"]|\\\\[\\s\\S]|\\$(?:(?=\")|\\$+(?!\\$)|[^\"${])|\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\})*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(^|[^$])\\$\\{(?:[^{}\"]|\"(?:[^\\\\\"]|\\\\[\\s\\S])*\")*\\}/,\n lookbehind: true,\n inside: {\n type: {\n pattern:\n /(\\b(?:count|data|local|module|path|self|terraform|var)\\b\\.)[\\w\\*]+/i,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: /\\b(?:count|data|local|module|path|self|terraform|var)\\b/i,\n function: /\\w+(?=\\()/,\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n greedy: true\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[!\\$#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~?:]/\n }\n }\n }\n },\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:false|true)\\b/i,\n punctuation: /[=\\[\\]{}]/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = hlsl\nhlsl.displayName = 'hlsl'\nhlsl.aliases = []\nfunction hlsl(Prism) {\n Prism.register(refractorC)\n Prism.languages.hlsl = Prism.languages.extend('c', {\n // Regarding keywords and class names:\n // The list of all keywords was split into 'keyword' and 'class-name' tokens based on whether they are capitalized.\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-keywords\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-reserved-words\n 'class-name': [\n Prism.languages.c['class-name'],\n /\\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\\b/\n ],\n keyword: [\n // HLSL keyword\n /\\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\\b/, // scalar, vector, and matrix types\n /\\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\\b/\n ],\n // https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl-appendix-grammar#floating-point-numbers\n number:\n /(?:(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?|\\b0x[\\da-fA-F]+)[fFhHlLuU]?\\b/,\n boolean: /\\b(?:false|true)\\b/\n })\n}\n","'use strict'\n\nmodule.exports = hoon\nhoon.displayName = 'hoon'\nhoon.aliases = []\nfunction hoon(Prism) {\n Prism.languages.hoon = {\n comment: {\n pattern: /::.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n constant: /%(?:\\.[ny]|[\\w-]+)/,\n 'class-name': /@(?:[a-z0-9-]*[a-z0-9])?|\\*/i,\n function: /(?:\\+[-+] {2})?(?:[a-z](?:[a-z0-9-]*[a-z0-9])?)/,\n keyword:\n /\\.[\\^\\+\\*=\\?]|![><:\\.=\\?!]|=[>|:,\\.\\-\\^<+;/~\\*\\?]|\\?[>|:\\.\\-\\^<\\+&~=@!]|\\|[\\$_%:\\.\\-\\^~\\*=@\\?]|\\+[|\\$\\+\\*]|:[_\\-\\^\\+~\\*]|%[_:\\.\\-\\^\\+~\\*=]|\\^[|:\\.\\-\\+&~\\*=\\?]|\\$[|_%:<>\\-\\^&~@=\\?]|;[:<\\+;\\/~\\*=]|~[>|\\$_%<\\+\\/&=\\?!]|--|==/\n }\n}\n","'use strict'\n\nmodule.exports = hpkp\nhpkp.displayName = 'hpkp'\nhpkp.aliases = []\nfunction hpkp(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hpkp-cheat-sheet/\n */\n Prism.languages.hpkp = {\n directive: {\n pattern:\n /\\b(?:includeSubDomains|max-age|pin-sha256|preload|report-to|report-uri|strict)(?=[\\s;=]|$)/i,\n alias: 'property'\n },\n operator: /=/,\n punctuation: /;/\n }\n}\n","'use strict'\n\nmodule.exports = hsts\nhsts.displayName = 'hsts'\nhsts.aliases = []\nfunction hsts(Prism) {\n /**\n * Original by Scott Helme.\n *\n * Reference: https://scotthelme.co.uk/hsts-cheat-sheet/\n */\n Prism.languages.hsts = {\n directive: {\n pattern: /\\b(?:includeSubDomains|max-age|preload)(?=[\\s;=]|$)/i,\n alias: 'property'\n },\n operator: /=/,\n punctuation: /;/\n }\n}\n","'use strict'\n\nmodule.exports = http\nhttp.displayName = 'http'\nhttp.aliases = []\nfunction http(Prism) {\n ;(function (Prism) {\n /**\n * @param {string} name\n * @returns {RegExp}\n */\n function headerValueOf(name) {\n return RegExp('(^(?:' + name + '):[ \\t]*(?![ \\t]))[^]+', 'i')\n }\n Prism.languages.http = {\n 'request-line': {\n pattern:\n /^(?:CONNECT|DELETE|GET|HEAD|OPTIONS|PATCH|POST|PRI|PUT|SEARCH|TRACE)\\s(?:https?:\\/\\/|\\/)\\S*\\sHTTP\\/[\\d.]+/m,\n inside: {\n // HTTP Method\n method: {\n pattern: /^[A-Z]+\\b/,\n alias: 'property'\n },\n // Request Target e.g. http://example.com, /path/to/file\n 'request-target': {\n pattern: /^(\\s)(?:https?:\\/\\/|\\/)\\S*(?=\\s)/,\n lookbehind: true,\n alias: 'url',\n inside: Prism.languages.uri\n },\n // HTTP Version\n 'http-version': {\n pattern: /^(\\s)HTTP\\/[\\d.]+/,\n lookbehind: true,\n alias: 'property'\n }\n }\n },\n 'response-status': {\n pattern: /^HTTP\\/[\\d.]+ \\d+ .+/m,\n inside: {\n // HTTP Version\n 'http-version': {\n pattern: /^HTTP\\/[\\d.]+/,\n alias: 'property'\n },\n // Status Code\n 'status-code': {\n pattern: /^(\\s)\\d+(?=\\s)/,\n lookbehind: true,\n alias: 'number'\n },\n // Reason Phrase\n 'reason-phrase': {\n pattern: /^(\\s).+/,\n lookbehind: true,\n alias: 'string'\n }\n }\n },\n header: {\n pattern: /^[\\w-]+:.+(?:(?:\\r\\n?|\\n)[ \\t].+)*/m,\n inside: {\n 'header-value': [\n {\n pattern: headerValueOf(/Content-Security-Policy/.source),\n lookbehind: true,\n alias: ['csp', 'languages-csp'],\n inside: Prism.languages.csp\n },\n {\n pattern: headerValueOf(/Public-Key-Pins(?:-Report-Only)?/.source),\n lookbehind: true,\n alias: ['hpkp', 'languages-hpkp'],\n inside: Prism.languages.hpkp\n },\n {\n pattern: headerValueOf(/Strict-Transport-Security/.source),\n lookbehind: true,\n alias: ['hsts', 'languages-hsts'],\n inside: Prism.languages.hsts\n },\n {\n pattern: headerValueOf(/[^:]+/.source),\n lookbehind: true\n }\n ],\n 'header-name': {\n pattern: /^[^:]+/,\n alias: 'keyword'\n },\n punctuation: /^:/\n }\n }\n } // Create a mapping of Content-Type headers to language definitions\n var langs = Prism.languages\n var httpLanguages = {\n 'application/javascript': langs.javascript,\n 'application/json': langs.json || langs.javascript,\n 'application/xml': langs.xml,\n 'text/xml': langs.xml,\n 'text/html': langs.html,\n 'text/css': langs.css,\n 'text/plain': langs.plain\n } // Declare which types can also be suffixes\n var suffixTypes = {\n 'application/json': true,\n 'application/xml': true\n }\n /**\n * Returns a pattern for the given content type which matches it and any type which has it as a suffix.\n *\n * @param {string} contentType\n * @returns {string}\n */\n function getSuffixPattern(contentType) {\n var suffix = contentType.replace(/^[a-z]+\\//, '')\n var suffixPattern = '\\\\w+/(?:[\\\\w.-]+\\\\+)+' + suffix + '(?![+\\\\w.-])'\n return '(?:' + contentType + '|' + suffixPattern + ')'\n } // Insert each content type parser that has its associated language\n // currently loaded.\n var options\n for (var contentType in httpLanguages) {\n if (httpLanguages[contentType]) {\n options = options || {}\n var pattern = suffixTypes[contentType]\n ? getSuffixPattern(contentType)\n : contentType\n options[contentType.replace(/\\//g, '-')] = {\n pattern: RegExp(\n '(' +\n /content-type:\\s*/.source +\n pattern +\n /(?:(?:\\r\\n?|\\n)[\\w-].*)*(?:\\r(?:\\n|(?!\\n))|\\n)/.source +\n ')' + // This is a little interesting:\n // The HTTP format spec required 1 empty line before the body to make everything unambiguous.\n // However, when writing code by hand (e.g. to display on a website) people can forget about this,\n // so we want to be liberal here. We will allow the empty line to be omitted if the first line of\n // the body does not start with a [\\w-] character (as headers do).\n /[^ \\t\\w-][\\s\\S]*/.source,\n 'i'\n ),\n lookbehind: true,\n inside: httpLanguages[contentType]\n }\n }\n }\n if (options) {\n Prism.languages.insertBefore('http', 'header', options)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ichigojam\nichigojam.displayName = 'ichigojam'\nichigojam.aliases = []\nfunction ichigojam(Prism) {\n // according to the offical reference (EN)\n // https://ichigojam.net/IchigoJam-en.html\n Prism.languages.ichigojam = {\n comment: /(?:\\B'|REM)(?:[^\\n\\r]*)/i,\n string: {\n pattern: /\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^\\w +\\-.])*\"/,\n greedy: true\n },\n number: /\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,\n keyword:\n /\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\n function:\n /\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,\n label: /(?:\\B@\\S+)/,\n operator: /<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,\n punctuation: /[\\[,;:()\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = icon\nicon.displayName = 'icon'\nicon.aliases = []\nfunction icon(Prism) {\n Prism.languages.icon = {\n comment: /#.*/,\n string: {\n pattern: /([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n number: /\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\n 'builtin-keyword': {\n pattern:\n /&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,\n alias: 'variable'\n },\n directive: {\n pattern: /\\$\\w+/,\n alias: 'builtin'\n },\n keyword:\n /\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\n function: /\\b(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,\n operator:\n /[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|<?=?)|>>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,\n punctuation: /[\\[\\](){},;]/\n }\n}\n","'use strict'\n\nmodule.exports = icuMessageFormat\nicuMessageFormat.displayName = 'icuMessageFormat'\nicuMessageFormat.aliases = []\nfunction icuMessageFormat(Prism) {\n // https://unicode-org.github.io/icu/userguide/format_parse/messages/\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/MessageFormat.html\n ;(function (Prism) {\n /**\n * @param {string} source\n * @param {number} level\n * @returns {string}\n */\n function nested(source, level) {\n if (level <= 0) {\n return /[]/.source\n } else {\n return source.replace(/<SELF>/g, function () {\n return nested(source, level - 1)\n })\n }\n }\n var stringPattern = /'[{}:=,](?:[^']|'')*'(?!')/\n var escape = {\n pattern: /''/,\n greedy: true,\n alias: 'operator'\n }\n var string = {\n pattern: stringPattern,\n greedy: true,\n inside: {\n escape: escape\n }\n }\n var argumentSource = nested(\n /\\{(?:[^{}']|'(?![{},'])|''|<STR>|<SELF>)*\\}/.source.replace(\n /<STR>/g,\n function () {\n return stringPattern.source\n }\n ),\n 8\n )\n var nestedMessage = {\n pattern: RegExp(argumentSource),\n inside: {\n message: {\n pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: null // see below\n },\n 'message-delimiter': {\n pattern: /./,\n alias: 'punctuation'\n }\n }\n }\n Prism.languages['icu-message-format'] = {\n argument: {\n pattern: RegExp(argumentSource),\n greedy: true,\n inside: {\n content: {\n pattern: /^(\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: {\n 'argument-name': {\n pattern: /^(\\s*)[^{}:=,\\s]+/,\n lookbehind: true\n },\n 'choice-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/classicu_1_1ChoiceFormat.html#details\n pattern: /^(\\s*,\\s*choice\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n punctuation: /\\|/,\n range: {\n pattern: /^(\\s*)[+-]?(?:\\d+(?:\\.\\d*)?|\\u221e)\\s*[<#\\u2264]/,\n lookbehind: true,\n inside: {\n operator: /[<#\\u2264]/,\n number: /\\S+/\n }\n },\n rest: null // see below\n }\n },\n 'plural-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/PluralFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n pattern:\n /^(\\s*,\\s*(?:plural|selectordinal)\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n offset: /^offset:\\s*\\d+/,\n 'nested-message': nestedMessage,\n selector: {\n pattern: /=\\d+|[^{}:=,\\s]+/,\n inside: {\n keyword: /^(?:few|many|one|other|two|zero)$/\n }\n }\n }\n },\n 'select-style': {\n // https://unicode-org.github.io/icu-docs/apidoc/released/icu4j/com/ibm/icu/text/SelectFormat.html#:~:text=Patterns%20and%20Their%20Interpretation\n pattern: /^(\\s*,\\s*select\\s*,\\s*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n inside: {\n 'nested-message': nestedMessage,\n selector: {\n pattern: /[^{}:=,\\s]+/,\n inside: {\n keyword: /^other$/\n }\n }\n }\n },\n keyword: /\\b(?:choice|plural|select|selectordinal)\\b/,\n 'arg-type': {\n pattern: /\\b(?:date|duration|number|ordinal|spellout|time)\\b/,\n alias: 'keyword'\n },\n 'arg-skeleton': {\n pattern: /(,\\s*)::[^{}:=,\\s]+/,\n lookbehind: true\n },\n 'arg-style': {\n pattern:\n /(,\\s*)(?:currency|full|integer|long|medium|percent|short)(?=\\s*$)/,\n lookbehind: true\n },\n 'arg-style-text': {\n pattern: RegExp(\n /(^\\s*,\\s*(?=\\S))/.source +\n nested(/(?:[^{}']|'[^']*'|\\{(?:<SELF>)?\\})+/.source, 8) +\n '$'\n ),\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /,/\n }\n },\n 'argument-delimiter': {\n pattern: /./,\n alias: 'operator'\n }\n }\n },\n escape: escape,\n string: string\n }\n nestedMessage.inside.message.inside = Prism.languages['icu-message-format']\n Prism.languages['icu-message-format'].argument.inside.content.inside[\n 'choice-style'\n ].inside.rest = Prism.languages['icu-message-format']\n })(Prism)\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = idris\nidris.displayName = 'idris'\nidris.aliases = ['idr']\nfunction idris(Prism) {\n Prism.register(refractorHaskell)\n Prism.languages.idris = Prism.languages.extend('haskell', {\n comment: {\n pattern: /(?:(?:--|\\|\\|\\|).*$|\\{-[\\s\\S]*?-\\})/m\n },\n keyword:\n /\\b(?:Type|case|class|codata|constructor|corecord|data|do|dsl|else|export|if|implementation|implicit|import|impossible|in|infix|infixl|infixr|instance|interface|let|module|mutual|namespace|of|parameters|partial|postulate|private|proof|public|quoteGoal|record|rewrite|syntax|then|total|using|where|with)\\b/,\n builtin: undefined\n })\n Prism.languages.insertBefore('idris', 'keyword', {\n 'import-statement': {\n pattern: /(^\\s*import\\s+)(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*/m,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n Prism.languages.idr = Prism.languages.idris\n}\n","'use strict'\n\nmodule.exports = iecst\niecst.displayName = 'iecst'\niecst.aliases = []\nfunction iecst(Prism) {\n Prism.languages.iecst = {\n comment: [\n {\n pattern:\n /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\(\\*[\\s\\S]*?(?:\\*\\)|$)|\\{[\\s\\S]*?(?:\\}|$))/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: [\n /\\b(?:END_)?(?:PROGRAM|CONFIGURATION|INTERFACE|FUNCTION_BLOCK|FUNCTION|ACTION|TRANSITION|TYPE|STRUCT|(?:INITIAL_)?STEP|NAMESPACE|LIBRARY|CHANNEL|FOLDER|RESOURCE|VAR_(?:ACCESS|CONFIG|EXTERNAL|GLOBAL|INPUT|IN_OUT|OUTPUT|TEMP)|VAR|METHOD|PROPERTY)\\b/i,\n /\\b(?:AT|BY|(?:END_)?(?:CASE|FOR|IF|REPEAT|WHILE)|CONSTANT|CONTINUE|DO|ELSE|ELSIF|EXIT|EXTENDS|FROM|GET|GOTO|IMPLEMENTS|JMP|NON_RETAIN|OF|PRIVATE|PROTECTED|PUBLIC|RETAIN|RETURN|SET|TASK|THEN|TO|UNTIL|USING|WITH|__CATCH|__ENDTRY|__FINALLY|__TRY)\\b/\n ],\n 'class-name':\n /\\b(?:ANY|ARRAY|BOOL|BYTE|U?(?:D|L|S)?INT|(?:D|L)?WORD|DATE(?:_AND_TIME)?|DT|L?REAL|POINTER|STRING|TIME(?:_OF_DAY)?|TOD)\\b/,\n address: {\n pattern: /%[IQM][XBWDL][\\d.]*|%[IQ][\\d.]*/,\n alias: 'symbol'\n },\n number:\n /\\b(?:16#[\\da-f]+|2#[01_]+|0x[\\da-f]+)\\b|\\b(?:D|DT|T|TOD)#[\\d_shmd:]*|\\b[A-Z]*#[\\d.,_]*|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n boolean: /\\b(?:FALSE|NULL|TRUE)\\b/,\n operator:\n /S?R?:?=>?|&&?|\\*\\*?|<[=>]?|>=?|[-:^/+#]|\\b(?:AND|EQ|EXPT|GE|GT|LE|LT|MOD|NE|NOT|OR|XOR)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n punctuation: /[()[\\].,;]/\n }\n}\n","'use strict'\n\nmodule.exports = ignore\nignore.displayName = 'ignore'\nignore.aliases = ['gitignore', 'hgignore', 'npmignore']\nfunction ignore(Prism) {\n ;(function (Prism) {\n Prism.languages.ignore = {\n // https://git-scm.com/docs/gitignore\n comment: /^#.*/m,\n entry: {\n pattern: /\\S(?:.*(?:(?:\\\\ )|\\S))?/,\n alias: 'string',\n inside: {\n operator: /^!|\\*\\*?|\\?/,\n regex: {\n pattern: /(^|[^\\\\])\\[[^\\[\\]]*\\]/,\n lookbehind: true\n },\n punctuation: /\\//\n }\n }\n }\n Prism.languages.gitignore = Prism.languages.ignore\n Prism.languages.hgignore = Prism.languages.ignore\n Prism.languages.npmignore = Prism.languages.ignore\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = inform7\ninform7.displayName = 'inform7'\ninform7.aliases = []\nfunction inform7(Prism) {\n Prism.languages.inform7 = {\n string: {\n pattern: /\"[^\"]*\"/,\n inside: {\n substitution: {\n pattern: /\\[[^\\[\\]]+\\]/,\n inside: {\n delimiter: {\n pattern: /\\[|\\]/,\n alias: 'punctuation'\n } // See rest below\n }\n }\n }\n },\n comment: {\n pattern: /\\[[^\\[\\]]+\\]/,\n greedy: true\n },\n title: {\n pattern: /^[ \\t]*(?:book|chapter|part(?! of)|section|table|volume)\\b.+/im,\n alias: 'important'\n },\n number: {\n pattern:\n /(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?(?:(?!\\d)\\w+)?|\\b(?:eight|eleven|five|four|nine|one|seven|six|ten|three|twelve|two))\\b(?!-)/i,\n lookbehind: true\n },\n verb: {\n pattern:\n /(^|[^-])\\b(?:answering|applying to|are|asking|attacking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:ing|s)?|consulting|contain(?:ing|s)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:s|ve|ving)|hold(?:ing|s)?|impl(?:ies|y)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:ing|s)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:ing|s)?|setting|showing|singing|sleeping|smelling|squeezing|support(?:ing|s)?|swearing|switching|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:ing|s)?|var(?:ies|y|ying)|waiting|waking|waving|wear(?:ing|s)?)\\b(?!-)/i,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern:\n /(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|the story|unless)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,\n lookbehind: true\n },\n property: {\n pattern:\n /(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: off| on)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,\n lookbehind: true,\n alias: 'symbol'\n },\n position: {\n pattern:\n /(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,\n lookbehind: true,\n alias: 'keyword'\n },\n type: {\n pattern:\n /(^|[^-])\\b(?:actions?|activit(?:ies|y)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,\n lookbehind: true,\n alias: 'variable'\n },\n punctuation: /[.,:;(){}]/\n }\n Prism.languages.inform7['string'].inside['substitution'].inside.rest =\n Prism.languages.inform7 // We don't want the remaining text in the substitution to be highlighted as the string.\n Prism.languages.inform7['string'].inside['substitution'].inside.rest.text = {\n pattern: /\\S(?:\\s*\\S)*/,\n alias: 'comment'\n }\n}\n","'use strict'\n\nmodule.exports = ini\nini.displayName = 'ini'\nini.aliases = []\nfunction ini(Prism) {\n Prism.languages.ini = {\n /**\n * The component mimics the behavior of the Win32 API parser.\n *\n * @see {@link https://github.com/PrismJS/prism/issues/2775#issuecomment-787477723}\n */\n comment: {\n pattern: /(^[ \\f\\t\\v]*)[#;][^\\n\\r]*/m,\n lookbehind: true\n },\n section: {\n pattern: /(^[ \\f\\t\\v]*)\\[[^\\n\\r\\]]*\\]?/m,\n lookbehind: true,\n inside: {\n 'section-name': {\n pattern: /(^\\[[ \\f\\t\\v]*)[^ \\f\\t\\v\\]]+(?:[ \\f\\t\\v]+[^ \\f\\t\\v\\]]+)*/,\n lookbehind: true,\n alias: 'selector'\n },\n punctuation: /\\[|\\]/\n }\n },\n key: {\n pattern:\n /(^[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v=]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v=]+)*(?=[ \\f\\t\\v]*=)/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n value: {\n pattern: /(=[ \\f\\t\\v]*)[^ \\f\\n\\r\\t\\v]+(?:[ \\f\\t\\v]+[^ \\f\\n\\r\\t\\v]+)*/,\n lookbehind: true,\n alias: 'attr-value',\n inside: {\n 'inner-value': {\n pattern: /^(\"|').+(?=\\1$)/,\n lookbehind: true\n }\n }\n },\n punctuation: /=/\n }\n}\n","'use strict'\n\nmodule.exports = io\nio.displayName = 'io'\nio.aliases = []\nfunction io(Prism) {\n Prism.languages.io = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$)|\\/\\/.*|#.*)/,\n lookbehind: true,\n greedy: true\n },\n 'triple-quoted-string': {\n pattern: /\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:activate|activeCoroCount|asString|block|break|call|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getEnvironmentVariable|getSlot|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,\n builtin:\n /\\b(?:Array|AudioDevice|AudioMixer|BigNum|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Random|Regex|SGML|SGMLElement|SGMLParser|SQLite|Sequence|Server|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink)\\b/,\n boolean: /\\b(?:false|nil|true)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e-?\\d+)?/i,\n operator:\n /[=!*/%+\\-^&|]=|>>?=?|<<?=?|:?:?=|\\+\\+?|--?|\\*\\*?|\\/\\/?|%|\\|\\|?|&&?|\\b(?:and|not|or|return)\\b|@@?|\\?\\??|\\.\\./,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = j\nj.displayName = 'j'\nj.aliases = []\nfunction j(Prism) {\n Prism.languages.j = {\n comment: {\n pattern: /\\bNB\\..*/,\n greedy: true\n },\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\\w+|goto_\\w+|if|label_\\w+|return|select|throw|try|while|whilst)\\.)/,\n verb: {\n // Negative look-ahead prevents bad highlighting\n // of ^: ;. =. =: !. !:\n pattern:\n /(?!\\^:|;\\.|[=!][.:])(?:\\{(?:\\.|::?)?|p(?:\\.\\.?|:)|[=!\\]]|[<>+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,\n alias: 'keyword'\n },\n number:\n /\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:ad|ar|[ejpx])_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_\\b(?!\\.))/,\n adverb: {\n pattern: /[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,\n alias: 'builtin'\n },\n operator: /[=a][.:]|_\\./,\n conjunction: {\n pattern: /&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n}\n","'use strict'\n\nmodule.exports = java\njava.displayName = 'java'\njava.aliases = []\nfunction java(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\\b/ // full package (optional) + parent classes (optional)\n var classNamePrefix = /(^|[^\\w.])(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*/\n .source // based on the java naming conventions\n var className = {\n pattern: RegExp(classNamePrefix + /[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b/.source),\n lookbehind: true,\n inside: {\n namespace: {\n pattern: /^[a-z]\\w*(?:\\s*\\.\\s*[a-z]\\w*)*(?:\\s*\\.)?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /\\./\n }\n }\n Prism.languages.java = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': [\n className,\n {\n // variables and parameters\n // this to support class names (or generic parameters) which do not contain a lower case letter (also works for methods)\n pattern: RegExp(\n classNamePrefix + /[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()])/.source\n ),\n lookbehind: true,\n inside: className.inside\n }\n ],\n keyword: keywords,\n function: [\n Prism.languages.clike.function,\n {\n pattern: /(::\\s*)[a-z_]\\w*/,\n lookbehind: true\n }\n ],\n number:\n /\\b0b[01][01_]*L?\\b|\\b0x(?:\\.[\\da-f_p+-]+|[\\da-f_]+(?:\\.[\\da-f_p+-]+)?)\\b|(?:\\b\\d[\\d_]*(?:\\.[\\d_]*)?|\\B\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[dfl]?/i,\n operator: {\n pattern:\n /(^|[^.])(?:<<=?|>>>?=?|->|--|\\+\\+|&&|\\|\\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('java', 'string', {\n 'triple-quoted-string': {\n // http://openjdk.java.net/jeps/355#Description\n pattern: /\"\"\"[ \\t]*[\\r\\n](?:(?:\"|\"\")?(?:\\\\.|[^\"\\\\]))*\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n char: {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n]){1,6}'/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('java', 'class-name', {\n annotation: {\n pattern: /(^|[^.])@\\w+(?:\\s*\\.\\s*\\w+)*/,\n lookbehind: true,\n alias: 'punctuation'\n },\n generics: {\n pattern:\n /<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&)|<(?:[\\w\\s,.?]|&(?!&))*>)*>)*>)*>/,\n inside: {\n 'class-name': className,\n keyword: keywords,\n punctuation: /[<>(),.:]/,\n operator: /[?&|]/\n }\n },\n namespace: {\n pattern: RegExp(\n /(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?/.source.replace(\n /<keyword>/g,\n function () {\n return keywords.source\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = javadoc\njavadoc.displayName = 'javadoc'\njavadoc.aliases = []\nfunction javadoc(Prism) {\n Prism.register(refractorJava)\n Prism.register(refractorJavadoclike)\n ;(function (Prism) {\n var codeLinePattern = /(^(?:[\\t ]*(?:\\*\\s*)*))[^*\\s].*$/m\n var memberReference = /#\\s*\\w+(?:\\s*\\([^()]*\\))?/.source\n var reference =\n /(?:\\b[a-zA-Z]\\w+\\s*\\.\\s*)*\\b[A-Z]\\w*(?:\\s*<mem>)?|<mem>/.source.replace(\n /<mem>/g,\n function () {\n return memberReference\n }\n )\n Prism.languages.javadoc = Prism.languages.extend('javadoclike', {})\n Prism.languages.insertBefore('javadoc', 'keyword', {\n reference: {\n pattern: RegExp(\n /(@(?:exception|link|linkplain|see|throws|value)\\s+(?:\\*\\s*)?)/\n .source +\n '(?:' +\n reference +\n ')'\n ),\n lookbehind: true,\n inside: {\n function: {\n pattern: /(#\\s*)\\w+(?=\\s*\\()/,\n lookbehind: true\n },\n field: {\n pattern: /(#\\s*)\\w+/,\n lookbehind: true\n },\n namespace: {\n pattern: /\\b(?:[a-z]\\w*\\s*\\.\\s*)+/,\n inside: {\n punctuation: /\\./\n }\n },\n 'class-name': /\\b[A-Z]\\w*/,\n keyword: Prism.languages.java.keyword,\n punctuation: /[#()[\\],.]/\n }\n },\n 'class-name': {\n // @param <T> the first generic type parameter\n pattern: /(@param\\s+)<[A-Z]\\w*>/,\n lookbehind: true,\n inside: {\n punctuation: /[.<>]/\n }\n },\n 'code-section': [\n {\n pattern:\n /(\\{@code\\s+(?!\\s))(?:[^\\s{}]|\\s+(?![\\s}])|\\{(?:[^{}]|\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})*\\})*\\})+(?=\\s*\\})/,\n lookbehind: true,\n inside: {\n code: {\n // there can't be any HTML inside of {@code} tags\n pattern: codeLinePattern,\n lookbehind: true,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n },\n {\n pattern:\n /(<(code|pre|tt)>(?!<code>)\\s*)\\S(?:\\S|\\s+\\S)*?(?=\\s*<\\/\\2>)/,\n lookbehind: true,\n inside: {\n line: {\n pattern: codeLinePattern,\n lookbehind: true,\n inside: {\n // highlight HTML tags and entities\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity,\n code: {\n // everything else is Java code\n pattern: /.+/,\n inside: Prism.languages.java,\n alias: 'language-java'\n }\n }\n }\n }\n }\n ],\n tag: Prism.languages.markup.tag,\n entity: Prism.languages.markup.entity\n })\n Prism.languages.javadoclike.addSupport('java', Prism.languages.javadoc)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = javadoclike\njavadoclike.displayName = 'javadoclike'\njavadoclike.aliases = []\nfunction javadoclike(Prism) {\n ;(function (Prism) {\n var javaDocLike = (Prism.languages.javadoclike = {\n parameter: {\n pattern:\n /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*@(?:arg|arguments|param)\\s+)\\w+/m,\n lookbehind: true\n },\n keyword: {\n // keywords are the first word in a line preceded be an `@` or surrounded by curly braces.\n // @word, {@word}\n pattern: /(^[\\t ]*(?:\\/{3}|\\*|\\/\\*\\*)\\s*|\\{)@[a-z][a-zA-Z-]+\\b/m,\n lookbehind: true\n },\n punctuation: /[{}]/\n })\n /**\n * Adds doc comment support to the given language and calls a given callback on each doc comment pattern.\n *\n * @param {string} lang the language add doc comment support to.\n * @param {(pattern: {inside: {rest: undefined}}) => void} callback the function called with each doc comment pattern as argument.\n */\n function docCommentSupport(lang, callback) {\n var tokenName = 'doc-comment'\n var grammar = Prism.languages[lang]\n if (!grammar) {\n return\n }\n var token = grammar[tokenName]\n if (!token) {\n // add doc comment: /** */\n var definition = {}\n definition[tokenName] = {\n pattern: /(^|[^\\\\])\\/\\*\\*[^/][\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n alias: 'comment'\n }\n grammar = Prism.languages.insertBefore(lang, 'comment', definition)\n token = grammar[tokenName]\n }\n if (token instanceof RegExp) {\n // convert regex to object\n token = grammar[tokenName] = {\n pattern: token\n }\n }\n if (Array.isArray(token)) {\n for (var i = 0, l = token.length; i < l; i++) {\n if (token[i] instanceof RegExp) {\n token[i] = {\n pattern: token[i]\n }\n }\n callback(token[i])\n }\n } else {\n callback(token)\n }\n }\n /**\n * Adds doc-comment support to the given languages for the given documentation language.\n *\n * @param {string[]|string} languages\n * @param {Object} docLanguage\n */\n function addSupport(languages, docLanguage) {\n if (typeof languages === 'string') {\n languages = [languages]\n }\n languages.forEach(function (lang) {\n docCommentSupport(lang, function (pattern) {\n if (!pattern.inside) {\n pattern.inside = {}\n }\n pattern.inside.rest = docLanguage\n })\n })\n }\n Object.defineProperty(javaDocLike, 'addSupport', {\n value: addSupport\n })\n javaDocLike.addSupport(['java', 'javascript', 'php'], javaDocLike)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = javascript\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\nfunction javascript(Prism) {\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [\n Prism.languages.clike['class-name'],\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:constructor|prototype))/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /((?:^|\\})\\s*)catch\\b/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }\n ],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n function:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n number: {\n pattern: RegExp(\n /(^|[^\\w$])/.source +\n '(?:' + // constant\n (/NaN|Infinity/.source +\n '|' + // binary integer\n /0[bB][01]+(?:_[01]+)*n?/.source +\n '|' + // octal integer\n /0[oO][0-7]+(?:_[0-7]+)*n?/.source +\n '|' + // hexadecimal integer\n /0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?/.source +\n '|' + // decimal bigint\n /\\d+(?:_\\d+)*n/.source +\n '|' + // decimal number (integer or float) but no bigint\n /(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?/\n .source) +\n ')' +\n /(?![\\w$])/.source\n ),\n lookbehind: true\n },\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n })\n Prism.languages.javascript['class-name'][0].pattern =\n /(\\b(?:class|extends|implements|instanceof|interface|new)\\s+)[\\w.\\\\]+/\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n pattern:\n /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\/|\\/$/,\n 'regex-flags': /^[a-z]+$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n parameter: [\n {\n pattern:\n /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n })\n Prism.languages.insertBefore('javascript', 'string', {\n hashbang: {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n 'template-string': {\n pattern:\n /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'string-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\2)[^\\\\\\r\\n])*\\2(?=\\s*:)/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n }\n })\n Prism.languages.insertBefore('javascript', 'operator', {\n 'literal-property': {\n pattern:\n /((?:^|[,{])[ \\t]*)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/m,\n lookbehind: true,\n alias: 'property'\n }\n })\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript') // add attribute support for all DOM events.\n // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n Prism.languages.markup.tag.addAttribute(\n /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n .source,\n 'javascript'\n )\n }\n Prism.languages.js = Prism.languages.javascript\n}\n","'use strict'\n\nmodule.exports = javastacktrace\njavastacktrace.displayName = 'javastacktrace'\njavastacktrace.aliases = []\nfunction javastacktrace(Prism) {\n // Specification:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Throwable.html#printStackTrace()\n Prism.languages.javastacktrace = {\n // java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: java.sql.SQLException: Violation of unique constraint MY_ENTITY_UK_1: duplicate value(s) for column(s) MY_COLUMN in statement [...]\n // Caused by: com.example.myproject.MyProjectServletException\n // Caused by: MidLevelException: LowLevelException\n // Suppressed: Resource$CloseFailException: Resource ID = 0\n summary: {\n pattern:\n /^([\\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread \"[^\"]*\")[\\t ]+)?[\\w$.]+(?::.*)?$/m,\n lookbehind: true,\n inside: {\n keyword: {\n pattern:\n /^([\\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,\n lookbehind: true\n },\n // the current thread if the summary starts with 'Exception in thread'\n string: {\n pattern: /^(\\s*)\"[^\"]*\"/,\n lookbehind: true\n },\n exceptions: {\n pattern: /^(:?\\s*)[\\w$.]+(?=:|$)/,\n lookbehind: true,\n inside: {\n 'class-name': /[\\w$]+$/,\n namespace: /\\b[a-z]\\w*\\b/,\n punctuation: /\\./\n }\n },\n message: {\n pattern: /(:\\s*)\\S.*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /:/\n }\n },\n // at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n // at org.hsqldb.jdbc.Util.throwError(Unknown Source) here could be some notes\n // at java.base/java.lang.Class.forName0(Native Method)\n // at Util.<init>(Unknown Source)\n // at com.foo.loader/foo@9.0/com.foo.Main.run(Main.java:101)\n // at com.foo.loader//com.foo.bar.App.run(App.java:12)\n // at acme@2.1/org.acme.Lib.test(Lib.java:80)\n // at MyClass.mash(MyClass.java:9)\n //\n // More information:\n // https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/StackTraceElement.html#toString()\n //\n // A valid Java module name is defined as:\n // \"A module name consists of one or more Java identifiers (§3.8) separated by \".\" tokens.\"\n // https://docs.oracle.com/javase/specs/jls/se9/html/jls-6.html#jls-ModuleName\n //\n // A Java module version is defined by this class:\n // https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleDescriptor.Version.html\n // This is the implementation of the `parse` method in JDK13:\n // https://github.com/matcdac/jdk/blob/2305df71d1b7710266ae0956d73927a225132c0f/src/java.base/share/classes/java/lang/module/ModuleDescriptor.java#L1108\n // However, to keep this simple, a version will be matched by the pattern /@[\\w$.+-]*/.\n 'stack-frame': {\n pattern: /^([\\t ]*)at (?:[\\w$./]|@[\\w$.+-]*\\/)+(?:<init>)?\\([^()]*\\)/m,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /^(\\s*)at(?= )/,\n lookbehind: true\n },\n source: [\n // (Main.java:15)\n // (Main.scala:15)\n {\n pattern: /(\\()\\w+\\.\\w+:\\d+(?=\\))/,\n lookbehind: true,\n inside: {\n file: /^\\w+\\.\\w+/,\n punctuation: /:/,\n 'line-number': {\n pattern: /\\b\\d+\\b/,\n alias: 'number'\n }\n }\n }, // (Unknown Source)\n // (Native Method)\n // (...something...)\n {\n pattern: /(\\()[^()]*(?=\\))/,\n lookbehind: true,\n inside: {\n keyword: /^(?:Native Method|Unknown Source)$/\n }\n }\n ],\n 'class-name': /[\\w$]+(?=\\.(?:<init>|[\\w$]+)\\()/,\n function: /(?:<init>|[\\w$]+)(?=\\()/,\n 'class-loader': {\n pattern: /(\\s)[a-z]\\w*(?:\\.[a-z]\\w*)*(?=\\/[\\w@$.]*\\/)/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /\\./\n }\n },\n module: {\n pattern: /([\\s/])[a-z]\\w*(?:\\.[a-z]\\w*)*(?:@[\\w$.+-]*)?(?=\\/)/,\n lookbehind: true,\n inside: {\n version: {\n pattern: /(@)[\\s\\S]+/,\n lookbehind: true,\n alias: 'number'\n },\n punctuation: /[@.]/\n }\n },\n namespace: {\n pattern: /(?:\\b[a-z]\\w*\\.)+/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()/.]/\n }\n },\n // ... 32 more\n // ... 32 common frames omitted\n more: {\n pattern: /^([\\t ]*)\\.{3} \\d+ [a-z]+(?: [a-z]+)*/m,\n lookbehind: true,\n inside: {\n punctuation: /\\.{3}/,\n number: /\\d+/,\n keyword: /\\b[a-z]+(?: [a-z]+)*\\b/\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = jexl\njexl.displayName = 'jexl'\njexl.aliases = []\nfunction jexl(Prism) {\n Prism.languages.jexl = {\n string: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n transform: {\n pattern:\n /(\\|\\s*)[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*/,\n alias: 'function',\n lookbehind: true\n },\n function:\n /[a-zA-Zа-яА-Я_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$][\\wа-яА-Я\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF$]*\\s*(?=\\()/,\n number: /\\b\\d+(?:\\.\\d+)?\\b|\\B\\.\\d+\\b/,\n operator: /[<>!]=?|-|\\+|&&|==|\\|\\|?|\\/\\/?|[?:*^%]/,\n boolean: /\\b(?:false|true)\\b/,\n keyword: /\\bin\\b/,\n punctuation: /[{}[\\](),.]/\n }\n}\n","'use strict'\n\nmodule.exports = jolie\njolie.displayName = 'jolie'\njolie.aliases = []\nfunction jolie(Prism) {\n Prism.languages.jolie = Prism.languages.extend('clike', {\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': {\n pattern:\n /((?:\\b(?:as|courier|embed|in|inputPort|outputPort|service)\\b|@)[ \\t]*)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:as|cH|comp|concurrent|constants|courier|cset|csets|default|define|else|embed|embedded|execution|exit|extender|for|foreach|forward|from|global|if|import|in|include|init|inputPort|install|instanceof|interface|is_defined|linkIn|linkOut|main|new|nullProcess|outputPort|over|private|provide|public|scope|sequential|service|single|spawn|synchronized|this|throw|throws|type|undef|until|while|with)\\b/,\n function: /\\b[a-z_]\\w*(?=[ \\t]*[@(])/i,\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,\n operator: /-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[?\\/%^@|]/,\n punctuation: /[()[\\]{},;.:]/,\n builtin:\n /\\b(?:Byte|any|bool|char|double|enum|float|int|length|long|ranges|regex|string|undefined|void)\\b/\n })\n Prism.languages.insertBefore('jolie', 'keyword', {\n aggregates: {\n pattern:\n /(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,\n lookbehind: true,\n inside: {\n keyword: /\\bwith\\b/,\n 'class-name': /\\w+/,\n punctuation: /,/\n }\n },\n redirects: {\n pattern:\n /(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,\n lookbehind: true,\n inside: {\n punctuation: /,/,\n 'class-name': /\\w+/,\n operator: /=>/\n }\n },\n property: {\n pattern:\n /\\b(?:Aggregates|[Ii]nterfaces|Java|Javascript|Jolie|[Ll]ocation|OneWay|[Pp]rotocol|Redirects|RequestResponse)\\b(?=[ \\t]*:)/\n }\n })\n}\n","'use strict'\n\nmodule.exports = jq\njq.displayName = 'jq'\njq.aliases = []\nfunction jq(Prism) {\n ;(function (Prism) {\n var interpolation = /\\\\\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var string = RegExp(\n /(^|[^\\\\])\"(?:[^\"\\r\\n\\\\]|\\\\[^\\r\\n(]|__)*\"/.source.replace(\n /__/g,\n function () {\n return interpolation\n }\n )\n )\n var stringInterpolation = {\n interpolation: {\n pattern: RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + interpolation),\n lookbehind: true,\n inside: {\n content: {\n pattern: /^(\\\\\\()[\\s\\S]+(?=\\)$)/,\n lookbehind: true,\n inside: null // see below\n },\n punctuation: /^\\\\\\(|\\)$/\n }\n }\n }\n var jq = (Prism.languages.jq = {\n comment: /#.*/,\n property: {\n pattern: RegExp(string.source + /(?=\\s*:(?!:))/.source),\n lookbehind: true,\n greedy: true,\n inside: stringInterpolation\n },\n string: {\n pattern: string,\n lookbehind: true,\n greedy: true,\n inside: stringInterpolation\n },\n function: {\n pattern: /(\\bdef\\s+)[a-z_]\\w+/i,\n lookbehind: true\n },\n variable: /\\B\\$\\w+/,\n 'property-literal': {\n pattern: /\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n alias: 'property'\n },\n keyword:\n /\\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /(?:\\b\\d+\\.|\\B\\.)?\\b\\d+(?:[eE][+-]?\\d+)?\\b/,\n operator: [\n {\n pattern: /\\|=?/,\n alias: 'pipe'\n },\n /\\.\\.|[!=<>]?=|\\?\\/\\/|\\/\\/=?|[-+*/%]=?|[<>?]|\\b(?:and|not|or)\\b/\n ],\n 'c-style-function': {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n alias: 'function'\n },\n punctuation: /::|[()\\[\\]{},:;]|\\.(?=\\s*[\\[\\w$])/,\n dot: {\n pattern: /\\./,\n alias: 'important'\n }\n })\n stringInterpolation.interpolation.inside.content.inside = jq\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsExtras\njsExtras.displayName = 'jsExtras'\njsExtras.aliases = []\nfunction jsExtras(Prism) {\n ;(function (Prism) {\n Prism.languages.insertBefore('javascript', 'function-variable', {\n 'method-variable': {\n pattern: RegExp(\n '(\\\\.\\\\s*)' +\n Prism.languages.javascript['function-variable'].pattern.source\n ),\n lookbehind: true,\n alias: ['function-variable', 'method', 'function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'function', {\n method: {\n pattern: RegExp(\n '(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source\n ),\n lookbehind: true,\n alias: ['function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'constant', {\n 'known-class-name': [\n {\n // standard built-ins\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n pattern:\n /\\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\\b/,\n alias: 'class-name'\n },\n {\n // errors\n pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n alias: 'class-name'\n }\n ]\n })\n /**\n * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n *\n * @param {string} source\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function withId(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source\n }),\n flags\n )\n }\n Prism.languages.insertBefore('javascript', 'keyword', {\n imports: {\n // https://tc39.es/ecma262/#sec-imports\n pattern: withId(\n /(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n exports: {\n // https://tc39.es/ecma262/#sec-exports\n pattern: withId(\n /(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n })\n Prism.languages.javascript['keyword'].unshift(\n {\n pattern: /\\b(?:as|default|export|from|import)\\b/,\n alias: 'module'\n },\n {\n pattern:\n /\\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\\b/,\n alias: 'control-flow'\n },\n {\n pattern: /\\bnull\\b/,\n alias: ['null', 'nil']\n },\n {\n pattern: /\\bundefined\\b/,\n alias: 'nil'\n }\n )\n Prism.languages.insertBefore('javascript', 'operator', {\n spread: {\n pattern: /\\.{3}/,\n alias: 'operator'\n },\n arrow: {\n pattern: /=>/,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('javascript', 'punctuation', {\n 'property-access': {\n pattern: withId(/(\\.\\s*)#?<ID>/.source),\n lookbehind: true\n },\n 'maybe-class-name': {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n lookbehind: true\n },\n dom: {\n // this contains only a few commonly used DOM variables\n pattern:\n /\\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\\b/,\n alias: 'variable'\n },\n console: {\n pattern: /\\bconsole(?=\\s*\\.)/,\n alias: 'class-name'\n }\n }) // add 'maybe-class-name' to tokens which might be a class name\n var maybeClassNameTokens = [\n 'function',\n 'function-variable',\n 'method',\n 'method-variable',\n 'property-access'\n ]\n for (var i = 0; i < maybeClassNameTokens.length; i++) {\n var token = maybeClassNameTokens[i]\n var value = Prism.languages.javascript[token] // convert regex to object\n if (Prism.util.type(value) === 'RegExp') {\n value = Prism.languages.javascript[token] = {\n pattern: value\n }\n } // keep in mind that we don't support arrays\n var inside = value.inside || {}\n value.inside = inside\n inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = jsTemplates\njsTemplates.displayName = 'jsTemplates'\njsTemplates.aliases = []\nfunction jsTemplates(Prism) {\n ;(function (Prism) {\n var templateString = Prism.languages.javascript['template-string'] // see the pattern in prism-javascript.js\n var templateLiteralPattern = templateString.pattern.source\n var interpolationObject = templateString.inside['interpolation']\n var interpolationPunctuationObject =\n interpolationObject.inside['interpolation-punctuation']\n var interpolationPattern = interpolationObject.pattern.source\n /**\n * Creates a new pattern to match a template string with a special tag.\n *\n * This will return `undefined` if there is no grammar with the given language id.\n *\n * @param {string} language The language id of the embedded language. E.g. `markdown`.\n * @param {string} tag The regex pattern to match the tag.\n * @returns {object | undefined}\n * @example\n * createTemplate('css', /\\bcss/.source);\n */\n function createTemplate(language, tag) {\n if (!Prism.languages[language]) {\n return undefined\n }\n return {\n pattern: RegExp('((?:' + tag + ')\\\\s*)' + templateLiteralPattern),\n lookbehind: true,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n 'embedded-code': {\n pattern: /[\\s\\S]+/,\n alias: language\n }\n }\n }\n }\n Prism.languages.javascript['template-string'] = [\n // styled-jsx:\n // css`a { color: #25F; }`\n // styled-components:\n // styled.h1`color: red;`\n createTemplate(\n 'css',\n /\\b(?:styled(?:\\([^)]*\\))?(?:\\s*\\.\\s*\\w+(?:\\([^)]*\\))*)*|css(?:\\s*\\.\\s*(?:global|resolve))?|createGlobalStyle|keyframes)/\n .source\n ), // html`<p></p>`\n // div.innerHTML = `<p></p>`\n createTemplate('html', /\\bhtml|\\.\\s*(?:inner|outer)HTML\\s*\\+?=/.source), // svg`<path fill=\"#fff\" d=\"M55.37 ...\"/>`\n createTemplate('svg', /\\bsvg/.source), // md`# h1`, markdown`## h2`\n createTemplate('markdown', /\\b(?:markdown|md)/.source), // gql`...`, graphql`...`, graphql.experimental`...`\n createTemplate(\n 'graphql',\n /\\b(?:gql|graphql(?:\\s*\\.\\s*experimental)?)/.source\n ), // sql`...`\n createTemplate('sql', /\\bsql/.source), // vanilla template string\n templateString\n ].filter(Boolean)\n /**\n * Returns a specific placeholder literal for the given language.\n *\n * @param {number} counter\n * @param {string} language\n * @returns {string}\n */\n function getPlaceholder(counter, language) {\n return '___' + language.toUpperCase() + '_' + counter + '___'\n }\n /**\n * Returns the tokens of `Prism.tokenize` but also runs the `before-tokenize` and `after-tokenize` hooks.\n *\n * @param {string} code\n * @param {any} grammar\n * @param {string} language\n * @returns {(string|Token)[]}\n */\n function tokenizeWithHooks(code, grammar, language) {\n var env = {\n code: code,\n grammar: grammar,\n language: language\n }\n Prism.hooks.run('before-tokenize', env)\n env.tokens = Prism.tokenize(env.code, env.grammar)\n Prism.hooks.run('after-tokenize', env)\n return env.tokens\n }\n /**\n * Returns the token of the given JavaScript interpolation expression.\n *\n * @param {string} expression The code of the expression. E.g. `\"${42}\"`\n * @returns {Token}\n */\n function tokenizeInterpolationExpression(expression) {\n var tempGrammar = {}\n tempGrammar['interpolation-punctuation'] = interpolationPunctuationObject\n /** @type {Array} */\n var tokens = Prism.tokenize(expression, tempGrammar)\n if (tokens.length === 3) {\n /**\n * The token array will look like this\n * [\n * [\"interpolation-punctuation\", \"${\"]\n * \"...\" // JavaScript expression of the interpolation\n * [\"interpolation-punctuation\", \"}\"]\n * ]\n */\n var args = [1, 1]\n args.push.apply(\n args,\n tokenizeWithHooks(tokens[1], Prism.languages.javascript, 'javascript')\n )\n tokens.splice.apply(tokens, args)\n }\n return new Prism.Token(\n 'interpolation',\n tokens,\n interpolationObject.alias,\n expression\n )\n }\n /**\n * Tokenizes the given code with support for JavaScript interpolation expressions mixed in.\n *\n * This function has 3 phases:\n *\n * 1. Replace all JavaScript interpolation expression with a placeholder.\n * The placeholder will have the syntax of a identify of the target language.\n * 2. Tokenize the code with placeholders.\n * 3. Tokenize the interpolation expressions and re-insert them into the tokenize code.\n * The insertion only works if a placeholder hasn't been \"ripped apart\" meaning that the placeholder has been\n * tokenized as two tokens by the grammar of the embedded language.\n *\n * @param {string} code\n * @param {object} grammar\n * @param {string} language\n * @returns {Token}\n */\n function tokenizeEmbedded(code, grammar, language) {\n // 1. First filter out all interpolations\n // because they might be escaped, we need a lookbehind, so we use Prism\n /** @type {(Token|string)[]} */\n var _tokens = Prism.tokenize(code, {\n interpolation: {\n pattern: RegExp(interpolationPattern),\n lookbehind: true\n }\n }) // replace all interpolations with a placeholder which is not in the code already\n var placeholderCounter = 0\n /** @type {Object<string, string>} */\n var placeholderMap = {}\n var embeddedCode = _tokens\n .map(function (token) {\n if (typeof token === 'string') {\n return token\n } else {\n var interpolationExpression = token.content\n var placeholder\n while (\n code.indexOf(\n (placeholder = getPlaceholder(placeholderCounter++, language))\n ) !== -1\n ) {\n /* noop */\n }\n placeholderMap[placeholder] = interpolationExpression\n return placeholder\n }\n })\n .join('') // 2. Tokenize the embedded code\n var embeddedTokens = tokenizeWithHooks(embeddedCode, grammar, language) // 3. Re-insert the interpolation\n var placeholders = Object.keys(placeholderMap)\n placeholderCounter = 0\n /**\n *\n * @param {(Token|string)[]} tokens\n * @returns {void}\n */\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n if (placeholderCounter >= placeholders.length) {\n return\n }\n var token = tokens[i]\n if (typeof token === 'string' || typeof token.content === 'string') {\n var placeholder = placeholders[placeholderCounter]\n var s =\n typeof token === 'string'\n ? token\n : /** @type {string} */\n token.content\n var index = s.indexOf(placeholder)\n if (index !== -1) {\n ++placeholderCounter\n var before = s.substring(0, index)\n var middle = tokenizeInterpolationExpression(\n placeholderMap[placeholder]\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push(before)\n }\n replacement.push(middle)\n if (after) {\n var afterTokens = [after]\n walkTokens(afterTokens)\n replacement.push.apply(replacement, afterTokens)\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n i += replacement.length - 1\n } else {\n token.content = replacement\n }\n }\n } else {\n var content = token.content\n if (Array.isArray(content)) {\n walkTokens(content)\n } else {\n walkTokens([content])\n }\n }\n }\n }\n walkTokens(embeddedTokens)\n return new Prism.Token(\n language,\n embeddedTokens,\n 'language-' + language,\n code\n )\n }\n /**\n * The languages for which JS templating will handle tagged template literals.\n *\n * JS templating isn't active for only JavaScript but also related languages like TypeScript, JSX, and TSX.\n */\n var supportedLanguages = {\n javascript: true,\n js: true,\n typescript: true,\n ts: true,\n jsx: true,\n tsx: true\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (!(env.language in supportedLanguages)) {\n return\n }\n /**\n * Finds and tokenizes all template strings with an embedded languages.\n *\n * @param {(Token | string)[]} tokens\n * @returns {void}\n */\n function findTemplateStrings(tokens) {\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (typeof token === 'string') {\n continue\n }\n var content = token.content\n if (!Array.isArray(content)) {\n if (typeof content !== 'string') {\n findTemplateStrings([content])\n }\n continue\n }\n if (token.type === 'template-string') {\n /**\n * A JavaScript template-string token will look like this:\n *\n * [\"template-string\", [\n * [\"template-punctuation\", \"`\"],\n * (\n * An array of \"string\" and \"interpolation\" tokens. This is the simple string case.\n * or\n * [\"embedded-code\", \"...\"] This is the token containing the embedded code.\n * It also has an alias which is the language of the embedded code.\n * ),\n * [\"template-punctuation\", \"`\"]\n * ]]\n */\n var embedded = content[1]\n if (\n content.length === 3 &&\n typeof embedded !== 'string' &&\n embedded.type === 'embedded-code'\n ) {\n // get string content\n var code = stringContent(embedded)\n var alias = embedded.alias\n var language = Array.isArray(alias) ? alias[0] : alias\n var grammar = Prism.languages[language]\n if (!grammar) {\n // the embedded language isn't registered.\n continue\n }\n content[1] = tokenizeEmbedded(code, grammar, language)\n }\n } else {\n findTemplateStrings(content)\n }\n }\n }\n findTemplateStrings(env.tokens)\n })\n /**\n * Returns the string content of a token or token stream.\n *\n * @param {string | Token | (string | Token)[]} value\n * @returns {string}\n */\n function stringContent(value) {\n if (typeof value === 'string') {\n return value\n } else if (Array.isArray(value)) {\n return value.map(stringContent).join('')\n } else {\n return stringContent(value.content)\n }\n }\n })(Prism)\n}\n","'use strict'\nvar refractorJavadoclike = require('./javadoclike.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = jsdoc\njsdoc.displayName = 'jsdoc'\njsdoc.aliases = []\nfunction jsdoc(Prism) {\n Prism.register(refractorJavadoclike)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var javascript = Prism.languages.javascript\n var type = /\\{(?:[^{}]|\\{(?:[^{}]|\\{[^{}]*\\})*\\})+\\}/.source\n var parameterPrefix =\n '(@(?:arg|argument|param|property)\\\\s+(?:' + type + '\\\\s+)?)'\n Prism.languages.jsdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n // @param {string} foo - foo bar\n pattern: RegExp(\n parameterPrefix + /(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n })\n Prism.languages.insertBefore('jsdoc', 'keyword', {\n 'optional-parameter': {\n // @param {string} [baz.foo=\"bar\"] foo bar\n pattern: RegExp(\n parameterPrefix +\n /\\[(?:(?!\\s)[$\\w\\xA0-\\uFFFF.])+(?:=[^[\\]]+)?\\](?=\\s|$)/.source\n ),\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /(^\\[)[$\\w\\xA0-\\uFFFF\\.]+/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n code: {\n pattern: /(=)[\\s\\S]*(?=\\]$)/,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n },\n punctuation: /[=[\\]]/\n }\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\\s+(?:<TYPE>\\s+)?)[A-Z]\\w*(?:\\.[A-Z]\\w*)*/.source.replace(\n /<TYPE>/g,\n function () {\n return type\n }\n )\n ),\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n pattern: RegExp('(@[a-z]+\\\\s+)' + type),\n lookbehind: true,\n inside: {\n string: javascript.string,\n number: javascript.number,\n boolean: javascript.boolean,\n keyword: Prism.languages.typescript.keyword,\n operator: /=>|\\.\\.\\.|[&|?:*]/,\n punctuation: /[.,;=<>{}()[\\]]/\n }\n }\n ],\n example: {\n pattern:\n /(@example\\s+(?!\\s))(?:[^@\\s]|\\s+(?!\\s))+?(?=\\s*(?:\\*\\s*)?(?:@\\w|\\*\\/))/,\n lookbehind: true,\n inside: {\n code: {\n pattern: /^([\\t ]*(?:\\*\\s*)?)\\S.*$/m,\n lookbehind: true,\n inside: javascript,\n alias: 'language-javascript'\n }\n }\n }\n })\n Prism.languages.javadoclike.addSupport('javascript', Prism.languages.jsdoc)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = json\njson.displayName = 'json'\njson.aliases = ['webmanifest']\nfunction json(Prism) {\n // https://www.json.org/json-en.html\n Prism.languages.json = {\n property: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\],]/,\n operator: /:/,\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n }\n Prism.languages.webmanifest = Prism.languages.json\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = json5\njson5.displayName = 'json5'\njson5.aliases = []\nfunction json5(Prism) {\n Prism.register(refractorJson)\n ;(function (Prism) {\n var string = /(\"|')(?:\\\\(?:\\r\\n?|\\n|.)|(?!\\1)[^\\\\\\r\\n])*\\1/\n Prism.languages.json5 = Prism.languages.extend('json', {\n property: [\n {\n pattern: RegExp(string.source + '(?=\\\\s*:)'),\n greedy: true\n },\n {\n pattern:\n /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*:)/,\n alias: 'unquoted'\n }\n ],\n string: {\n pattern: string,\n greedy: true\n },\n number:\n /[+-]?\\b(?:NaN|Infinity|0x[a-fA-F\\d]+)\\b|[+-]?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJson = require('./json.js')\nmodule.exports = jsonp\njsonp.displayName = 'jsonp'\njsonp.aliases = []\nfunction jsonp(Prism) {\n Prism.register(refractorJson)\n Prism.languages.jsonp = Prism.languages.extend('json', {\n punctuation: /[{}[\\]();,.]/\n })\n Prism.languages.insertBefore('jsonp', 'punctuation', {\n function: /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*\\()/\n })\n}\n","'use strict'\n\nmodule.exports = jsstacktrace\njsstacktrace.displayName = 'jsstacktrace'\njsstacktrace.aliases = []\nfunction jsstacktrace(Prism) {\n Prism.languages.jsstacktrace = {\n 'error-message': {\n pattern: /^\\S.*/m,\n alias: 'string'\n },\n 'stack-frame': {\n pattern: /(^[ \\t]+)at[ \\t].*/m,\n lookbehind: true,\n inside: {\n 'not-my-code': {\n pattern:\n /^at[ \\t]+(?!\\s)(?:node\\.js|<unknown>|.*(?:node_modules|\\(<anonymous>\\)|\\(<unknown>|<anonymous>$|\\(internal\\/|\\(node\\.js)).*/m,\n alias: 'comment'\n },\n filename: {\n pattern: /(\\bat\\s+(?!\\s)|\\()(?:[a-zA-Z]:)?[^():]+(?=:)/,\n lookbehind: true,\n alias: 'url'\n },\n function: {\n pattern:\n /(\\bat\\s+(?:new\\s+)?)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF<][.$\\w\\xA0-\\uFFFF<>]*/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[()]/,\n keyword: /\\b(?:at|new)\\b/,\n alias: {\n pattern: /\\[(?:as\\s+)?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*\\]/,\n alias: 'variable'\n },\n 'line-number': {\n pattern: /:\\d+(?::\\d+)?\\b/,\n alias: 'number',\n inside: {\n punctuation: /:/\n }\n }\n }\n }\n }\n}\n","'use strict'\n\nmodule.exports = jsx\njsx.displayName = 'jsx'\njsx.aliases = []\nfunction jsx(Prism) {\n ;(function (Prism) {\n var javascript = Prism.util.clone(Prism.languages.javascript)\n var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function re(source, flags) {\n source = source\n .replace(/<S>/g, function () {\n return space\n })\n .replace(/<BRACES>/g, function () {\n return braces\n })\n .replace(/<SPREAD>/g, function () {\n return spread\n })\n return RegExp(source, flags)\n }\n spread = re(spread).source\n Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n Prism.languages.jsx.tag.pattern = re(\n /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n .source\n )\n Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/\n Prism.languages.jsx.tag.inside['attr-value'].pattern =\n /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/\n Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n Prism.languages.insertBefore(\n 'inside',\n 'attr-name',\n {\n spread: {\n pattern: re(/<SPREAD>/.source),\n inside: Prism.languages.jsx\n }\n },\n Prism.languages.jsx.tag\n )\n Prism.languages.insertBefore(\n 'inside',\n 'special-attr',\n {\n script: {\n // Allow for two levels of nesting\n pattern: re(/=<BRACES>/.source),\n alias: 'language-javascript',\n inside: {\n 'script-punctuation': {\n pattern: /^=(?=\\{)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n }\n }\n },\n Prism.languages.jsx.tag\n ) // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (!token) {\n return ''\n }\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{'\n ) {\n // Here we might have entered a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside a JSX context.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token) // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'jsx' && env.language !== 'tsx') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = julia\njulia.displayName = 'julia'\njulia.aliases = []\nfunction julia(Prism) {\n Prism.languages.julia = {\n comment: {\n // support one level of nested comments\n // https://github.com/JuliaLang/julia/pull/6128\n pattern:\n /(^|[^\\\\])(?:#=(?:[^#=]|=(?!#)|#(?!=)|#=(?:[^#=]|=(?!#)|#(?!=))*=#)*=#|#.*)/,\n lookbehind: true\n },\n regex: {\n // https://docs.julialang.org/en/v1/manual/strings/#Regular-Expressions-1\n pattern: /r\"(?:\\\\.|[^\"\\\\\\r\\n])*\"[imsx]{0,4}/,\n greedy: true\n },\n string: {\n // https://docs.julialang.org/en/v1/manual/strings/#String-Basics-1\n // https://docs.julialang.org/en/v1/manual/strings/#non-standard-string-literals-1\n // https://docs.julialang.org/en/v1/manual/running-external-programs/#Running-External-Programs-1\n pattern:\n /\"\"\"[\\s\\S]+?\"\"\"|(?:\\b\\w+)?\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|`(?:[^\\\\`\\r\\n]|\\\\.)*`/,\n greedy: true\n },\n char: {\n // https://docs.julialang.org/en/v1/manual/strings/#man-characters-1\n pattern: /(^|[^\\w'])'(?:\\\\[^\\r\\n][^'\\r\\n]*|[^\\\\\\r\\n])'/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|in|let|local|macro|module|print|println|quote|return|struct|try|type|typealias|using|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number:\n /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+(?:_[\\da-f]+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[efp][+-]?\\d+(?:_\\d+)*)?j?/i,\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/\n // https://docs.julialang.org/en/v1/manual/mathematical-operations/#Operator-Precedence-and-Associativity-1\n operator:\n /&&|\\|\\||[-+*^%÷⊻&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:|])?|>(?:=|>>?=?)?|==?=?|[~≠≤≥'√∛]/,\n punctuation: /::?|[{}[\\]();,.?]/,\n // https://docs.julialang.org/en/v1/base/numbers/#Base.im\n constant: /\\b(?:(?:Inf|NaN)(?:16|32|64)?|im|pi)\\b|[πℯ]/\n }\n}\n","'use strict'\n\nmodule.exports = keepalived\nkeepalived.displayName = 'keepalived'\nkeepalived.aliases = []\nfunction keepalived(Prism) {\n Prism.languages.keepalived = {\n comment: {\n pattern: /[#!].*/,\n greedy: true\n },\n string: {\n pattern:\n /(^|[^\\\\])(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/,\n lookbehind: true,\n greedy: true\n },\n // support IPv4, IPv6, subnet mask\n ip: {\n pattern: RegExp(\n /\\b(?:(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){5}:(?:[\\da-f]{1,4}:)?[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){4}:(?:[\\da-f]{1,4}:){0,2}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){3}:(?:[\\da-f]{1,4}:){0,3}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){2}:(?:[\\da-f]{1,4}:){0,4}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){6}<ipv4>|(?:[\\da-f]{1,4}:){0,5}:<ipv4>|::(?:[\\da-f]{1,4}:){0,5}<ipv4>|[\\da-f]{1,4}::(?:[\\da-f]{1,4}:){0,5}[\\da-f]{1,4}|::(?:[\\da-f]{1,4}:){0,6}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:)(?:\\/\\d{1,3})?|<ipv4>(?:\\/\\d{1,2})?)\\b/.source.replace(\n /<ipv4>/g,\n function () {\n return /(?:(?:(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d))/\n .source\n }\n ),\n 'i'\n ),\n alias: 'number'\n },\n // support *nix / Windows, directory / file\n path: {\n pattern:\n /(\\s)\\/(?:[^\\/\\s]+\\/)*[^\\/\\s]*|\\b[a-zA-Z]:\\\\(?:[^\\\\\\s]+\\\\)*[^\\\\\\s]*/,\n lookbehind: true,\n alias: 'string'\n },\n variable: /\\$\\{?\\w+\\}?/,\n email: {\n pattern: /[\\w-]+@[\\w-]+(?:\\.[\\w-]{2,3}){1,2}/,\n alias: 'string'\n },\n 'conditional-configuration': {\n pattern: /@\\^?[\\w-]+/,\n alias: 'variable'\n },\n operator: /=/,\n property:\n /\\b(?:BFD_CHECK|DNS_CHECK|FILE_CHECK|HTTP_GET|MISC_CHECK|NAME|PING_CHECK|SCRIPTS|SMTP_CHECK|SSL|SSL_GET|TCP_CHECK|UDP_CHECK|accept|advert_int|alpha|auth_pass|auth_type|authentication|bfd_cpu_affinity|bfd_instance|bfd_no_swap|bfd_priority|bfd_process_name|bfd_rlimit_rttime|bfd_rt_priority|bind_if|bind_port|bindto|ca|certificate|check_unicast_src|checker|checker_cpu_affinity|checker_log_all_failures|checker_no_swap|checker_priority|checker_rlimit_rttime|checker_rt_priority|child_wait_time|connect_ip|connect_port|connect_timeout|dbus_service_name|debug|default_interface|delay|delay_before_retry|delay_loop|digest|dont_track_primary|dynamic|dynamic_interfaces|enable_(?:dbus|script_security|sni|snmp_checker|snmp_rfc|snmp_rfcv2|snmp_rfcv3|snmp_vrrp|traps)|end|fall|fast_recovery|file|flag-[123]|fork_delay|full_command|fwmark|garp_group|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|global_defs|global_tracking|gna_interval|group|ha_suspend|hashed|helo_name|higher_prio_send_advert|hoplimit|http_protocol|hysteresis|idle_tx|include|inhibit_on_failure|init_fail|init_file|instance|interface|interfaces|interval|ip_family|ipvs_process_name|keepalived.conf|kernel_rx_buf_size|key|linkbeat_interfaces|linkbeat_use_polling|log_all_failures|log_unknown_vrids|lower_prio_no_advert|lthreshold|lvs_flush|lvs_flush_onstop|lvs_method|lvs_netlink_cmd_rcv_bufs|lvs_netlink_cmd_rcv_bufs_force|lvs_netlink_monitor_rcv_bufs|lvs_netlink_monitor_rcv_bufs_force|lvs_notify_fifo|lvs_notify_fifo_script|lvs_sched|lvs_sync_daemon|max_auto_priority|max_hops|mcast_src_ip|mh-fallback|mh-port|min_auto_priority_delay|min_rx|min_tx|misc_dynamic|misc_path|misc_timeout|multiplier|name|namespace_with_ipsets|native_ipv6|neighbor_ip|net_namespace|net_namespace_ipvs|nftables|nftables_counters|nftables_ifindex|nftables_priority|no_accept|no_checker_emails|no_email_faults|nopreempt|notification_email|notification_email_from|notify|notify_backup|notify_deleted|notify_down|notify_fault|notify_fifo|notify_fifo_script|notify_master|notify_master_rx_lower_pri|notify_priority_changes|notify_stop|notify_up|old_unicast_checksum|omega|ops|param_match|passive|password|path|persistence_engine|persistence_granularity|persistence_timeout|preempt|preempt_delay|priority|process|process_monitor_rcv_bufs|process_monitor_rcv_bufs_force|process_name|process_names|promote_secondaries|protocol|proxy_arp|proxy_arp_pvlan|quorum|quorum_down|quorum_max|quorum_up|random_seed|real_server|regex|regex_max_offset|regex_min_offset|regex_no_match|regex_options|regex_stack|reload_repeat|reload_time_file|require_reply|retry|rise|router_id|rs_init_notifies|script|script_user|sh-fallback|sh-port|shutdown_script|shutdown_script_timeout|skip_check_adv_addr|smtp_alert|smtp_alert_checker|smtp_alert_vrrp|smtp_connect_timeout|smtp_helo_name|smtp_server|snmp_socket|sorry_server|sorry_server_inhibit|sorry_server_lvs_method|source_ip|start|startup_script|startup_script_timeout|state|static_ipaddress|static_routes|static_rules|status_code|step|strict_mode|sync_group_tracking_weight|terminate_delay|timeout|track_bfd|track_file|track_group|track_interface|track_process|track_script|track_src_ip|ttl|type|umask|unicast_peer|unicast_src_ip|unicast_ttl|url|use_ipvlan|use_pid_dir|use_vmac|user|uthreshold|val[123]|version|virtual_ipaddress|virtual_ipaddress_excluded|virtual_router_id|virtual_routes|virtual_rules|virtual_server|virtual_server_group|virtualhost|vmac_xmit_base|vrrp|vrrp_(?:check_unicast_src|cpu_affinity|garp_interval|garp_lower_prio_delay|garp_lower_prio_repeat|garp_master_delay|garp_master_refresh|garp_master_refresh_repeat|garp_master_repeat|gna_interval|higher_prio_send_advert|instance|ipsets|iptables|lower_prio_no_advert|mcast_group4|mcast_group6|min_garp|netlink_cmd_rcv_bufs|netlink_cmd_rcv_bufs_force|netlink_monitor_rcv_bufs|netlink_monitor_rcv_bufs_force|no_swap|notify_fifo|notify_fifo_script|notify_priority_changes|priority|process_name|rlimit_rttime|rt_priority|rx_bufs_multiplier|rx_bufs_policy|script|skip_check_adv_addr|startup_delay|strict|sync_group|track_process|version)|warmup|weight)\\b/,\n constant:\n /\\b(?:A|AAAA|AH|BACKUP|CNAME|DR|MASTER|MX|NAT|NS|PASS|SCTP|SOA|TCP|TUN|TXT|UDP|dh|fo|lblc|lblcr|lc|mh|nq|ovf|rr|sed|sh|wlc|wrr)\\b/,\n number: {\n pattern: /(^|[^\\w.-])-?\\d+(?:\\.\\d+)?/,\n lookbehind: true\n },\n boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n punctuation: /[\\{\\}]/\n }\n}\n","'use strict'\n\nmodule.exports = keyman\nkeyman.displayName = 'keyman'\nkeyman.aliases = []\nfunction keyman(Prism) {\n Prism.languages.keyman = {\n comment: {\n pattern: /\\bc .*/i,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true\n },\n 'virtual-key': {\n pattern:\n /\\[\\s*(?:(?:ALT|CAPS|CTRL|LALT|LCTRL|NCAPS|RALT|RCTRL|SHIFT)\\s+)*(?:[TKU]_[\\w?]+|[A-E]\\d\\d?|\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*\\]/i,\n greedy: true,\n alias: 'function' // alias for styles\n },\n // https://help.keyman.com/developer/language/guide/headers\n 'header-keyword': {\n pattern: /&\\w+/,\n alias: 'bold' // alias for styles\n },\n 'header-statement': {\n pattern:\n /\\b(?:bitmap|bitmaps|caps always off|caps on only|copyright|hotkey|language|layout|message|name|shift frees caps|version)\\b/i,\n alias: 'bold' // alias for styles\n },\n 'rule-keyword': {\n pattern:\n /\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|reset|return|save|set|store|use)\\b/i,\n alias: 'keyword'\n },\n 'structural-keyword': {\n pattern: /\\b(?:ansi|begin|group|match|nomatch|unicode|using keys)\\b/i,\n alias: 'keyword'\n },\n 'compile-target': {\n pattern: /\\$(?:keyman|keymanonly|keymanweb|kmfl|weaver):/i,\n alias: 'property'\n },\n // U+####, x###, d### characters and numbers\n number: /\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,\n operator: /[+>\\\\$]|\\.\\./,\n punctuation: /[()=,]/\n }\n}\n","'use strict'\n\nmodule.exports = kotlin\nkotlin.displayName = 'kotlin'\nkotlin.aliases = ['kt', 'kts']\nfunction kotlin(Prism) {\n ;(function (Prism) {\n Prism.languages.kotlin = Prism.languages.extend('clike', {\n keyword: {\n // The lookbehind prevents wrong highlighting of e.g. kotlin.properties.get\n pattern:\n /(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,\n lookbehind: true\n },\n function: [\n {\n pattern: /(?:`[^\\r\\n`]+`|\\b\\w+)(?=\\s*\\()/,\n greedy: true\n },\n {\n pattern: /(\\.)(?:`[^\\r\\n`]+`|\\w+)(?=\\s*\\{)/,\n lookbehind: true,\n greedy: true\n }\n ],\n number:\n /\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,\n operator:\n /\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/\n })\n delete Prism.languages.kotlin['class-name']\n var interpolationInside = {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{?|\\}$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.kotlin\n }\n }\n Prism.languages.insertBefore('kotlin', 'string', {\n // https://kotlinlang.org/spec/expressions.html#string-interpolation-expressions\n 'string-literal': [\n {\n pattern: /\"\"\"(?:[^$]|\\$(?:(?!\\{)|\\{[^{}]*\\}))*?\"\"\"/,\n alias: 'multiline',\n inside: {\n interpolation: {\n pattern: /\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n inside: interpolationInside\n },\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /\"(?:[^\"\\\\\\r\\n$]|\\\\.|\\$(?:(?!\\{)|\\{[^{}]*\\}))*\"/,\n alias: 'singleline',\n inside: {\n interpolation: {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:[a-z_]\\w*|\\{[^{}]*\\})/i,\n lookbehind: true,\n inside: interpolationInside\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n char: {\n // https://kotlinlang.org/spec/expressions.html#character-literals\n pattern: /'(?:[^'\\\\\\r\\n]|\\\\(?:.|u[a-fA-F0-9]{0,4}))'/,\n greedy: true\n }\n })\n delete Prism.languages.kotlin['string']\n Prism.languages.insertBefore('kotlin', 'keyword', {\n annotation: {\n pattern: /\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,\n alias: 'builtin'\n }\n })\n Prism.languages.insertBefore('kotlin', 'function', {\n label: {\n pattern: /\\b\\w+@|@\\w+\\b/,\n alias: 'symbol'\n }\n })\n Prism.languages.kt = Prism.languages.kotlin\n Prism.languages.kts = Prism.languages.kotlin\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = kumir\nkumir.displayName = 'kumir'\nkumir.aliases = ['kum']\nfunction kumir(Prism) {\n /* eslint-disable regexp/no-dupe-characters-character-class */\n ;(function (Prism) {\n /**\n * Regular expression for characters that are not allowed in identifiers.\n *\n * @type {string}\n */\n var nonId = /\\s\\x00-\\x1f\\x22-\\x2f\\x3a-\\x3f\\x5b-\\x5e\\x60\\x7b-\\x7e/.source\n /**\n * Surround a regular expression for IDs with patterns for non-ID sequences.\n *\n * @param {string} pattern A regular expression for identifiers.\n * @param {string} [flags] The regular expression flags.\n * @returns {RegExp} A wrapped regular expression for identifiers.\n */\n function wrapId(pattern, flags) {\n return RegExp(pattern.replace(/<nonId>/g, nonId), flags)\n }\n Prism.languages.kumir = {\n comment: {\n pattern: /\\|.*/\n },\n prolog: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\\n\\r\"]*\"|'[^\\n\\r']*'/,\n greedy: true\n },\n boolean: {\n pattern: wrapId(/(^|[<nonId>])(?:да|нет)(?=[<nonId>]|$)/.source),\n lookbehind: true\n },\n 'operator-word': {\n pattern: wrapId(/(^|[<nonId>])(?:и|или|не)(?=[<nonId>]|$)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n 'system-variable': {\n pattern: wrapId(/(^|[<nonId>])знач(?=[<nonId>]|$)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n type: [\n {\n pattern: wrapId(\n /(^|[<nonId>])(?:вещ|лит|лог|сим|цел)(?:\\x20*таб)?(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true,\n alias: 'builtin'\n },\n {\n pattern: wrapId(\n /(^|[<nonId>])(?:компл|сканкод|файл|цвет)(?=[<nonId>]|$)/.source\n ),\n lookbehind: true,\n alias: 'important'\n }\n ],\n /**\n * Should be performed after searching for type names because of \"таб\".\n * \"таб\" is a reserved word, but never used without a preceding type name.\n * \"НАЗНАЧИТЬ\", \"Фввод\", and \"Фвывод\" are not reserved words.\n */\n keyword: {\n pattern: wrapId(\n /(^|[<nonId>])(?:алг|арг(?:\\x20*рез)?|ввод|ВКЛЮЧИТЬ|вс[её]|выбор|вывод|выход|дано|для|до|дс|если|иначе|исп|использовать|кон(?:(?:\\x20+|_)исп)?|кц(?:(?:\\x20+|_)при)?|надо|нач|нс|нц|от|пауза|пока|при|раза?|рез|стоп|таб|то|утв|шаг)(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true\n },\n /** Should be performed after searching for reserved words. */\n name: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: wrapId(\n /(^|[<nonId>])[^\\d<nonId>][^<nonId>]*(?:\\x20+[^<nonId>]+)*(?=[<nonId>]|$)/\n .source\n ),\n lookbehind: true\n },\n /** Should be performed after searching for names. */\n number: {\n pattern: wrapId(\n /(^|[<nonId>])(?:\\B\\$[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?=[<nonId>]|$)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n /** Should be performed after searching for words. */\n punctuation: /:=|[(),:;\\[\\]]/,\n /**\n * Should be performed after searching for\n * - numeric constants (because of \"+\" and \"-\");\n * - punctuation marks (because of \":=\" and \"=\").\n */\n 'operator-char': {\n pattern: /\\*\\*?|<[=>]?|>=?|[-+/=]/,\n alias: 'operator'\n }\n }\n Prism.languages.kum = Prism.languages.kumir\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = kusto\nkusto.displayName = 'kusto'\nkusto.aliases = []\nfunction kusto(Prism) {\n Prism.languages.kusto = {\n comment: {\n pattern: /\\/\\/.*/,\n greedy: true\n },\n string: {\n pattern:\n /```[\\s\\S]*?```|[hH]?(?:\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\.)*'|@(?:\"[^\\r\\n\"]*\"|'[^\\r\\n']*'))/,\n greedy: true\n },\n verb: {\n pattern: /(\\|\\s*)[a-z][\\w-]*/i,\n lookbehind: true,\n alias: 'keyword'\n },\n command: {\n pattern: /\\.[a-z][a-z\\d-]*\\b/,\n alias: 'keyword'\n },\n 'class-name':\n /\\b(?:bool|datetime|decimal|dynamic|guid|int|long|real|string|timespan)\\b/,\n keyword:\n /\\b(?:access|alias|and|anti|as|asc|auto|between|by|(?:contains|(?:ends|starts)with|has(?:perfix|suffix)?)(?:_cs)?|database|declare|desc|external|from|fullouter|has_all|in|ingestion|inline|inner|innerunique|into|(?:left|right)(?:anti(?:semi)?|inner|outer|semi)?|let|like|local|not|of|on|or|pattern|print|query_parameters|range|restrict|schema|set|step|table|tables|to|view|where|with|matches\\s+regex|nulls\\s+(?:first|last))(?![\\w-])/,\n boolean: /\\b(?:false|null|true)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/,\n datetime: [\n {\n // RFC 822 + RFC 850\n pattern:\n /\\b(?:(?:Fri|Friday|Mon|Monday|Sat|Saturday|Sun|Sunday|Thu|Thursday|Tue|Tuesday|Wed|Wednesday)\\s*,\\s*)?\\d{1,2}(?:\\s+|-)(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)(?:\\s+|-)\\d{2}\\s+\\d{2}:\\d{2}(?::\\d{2})?(?:\\s*(?:\\b(?:[A-Z]|(?:[ECMT][DS]|GM|U)T)|[+-]\\d{4}))?\\b/,\n alias: 'number'\n },\n {\n // ISO 8601\n pattern:\n /[+-]?\\b(?:\\d{4}-\\d{2}-\\d{2}(?:[ T]\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)?|\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d+)?)?)Z?/,\n alias: 'number'\n }\n ],\n number:\n /\\b(?:0x[0-9A-Fa-f]+|\\d+(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?)(?:(?:min|sec|[mnµ]s|[dhms]|microsecond|tick)\\b)?|[+-]?\\binf\\b/,\n operator: /=>|[!=]~|[!=<>]=?|[-+*/%|]|\\.\\./,\n punctuation: /[()\\[\\]{},;.:]/\n }\n}\n","'use strict'\n\nmodule.exports = latex\nlatex.displayName = 'latex'\nlatex.aliases = ['tex', 'context']\nfunction latex(Prism) {\n ;(function (Prism) {\n var funcPattern = /\\\\(?:[^a-z()[\\]]|[a-z*]+)/i\n var insideEqu = {\n 'equation-command': {\n pattern: funcPattern,\n alias: 'regex'\n }\n }\n Prism.languages.latex = {\n comment: /%.*/,\n // the verbatim environment prints whitespace to the document\n cdata: {\n pattern:\n /(\\\\begin\\{((?:lstlisting|verbatim)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true\n },\n /*\n * equations can be between $$ $$ or $ $ or \\( \\) or \\[ \\]\n * (all are multiline)\n */\n equation: [\n {\n pattern:\n /\\$\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$\\$|\\$(?:\\\\[\\s\\S]|[^\\\\$])+\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,\n inside: insideEqu,\n alias: 'string'\n },\n {\n pattern:\n /(\\\\begin\\{((?:align|eqnarray|equation|gather|math|multline)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,\n lookbehind: true,\n inside: insideEqu,\n alias: 'string'\n }\n ],\n /*\n * arguments which are keywords or references are highlighted\n * as keywords\n */\n keyword: {\n pattern:\n /(\\\\(?:begin|cite|documentclass|end|label|ref|usepackage)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n url: {\n pattern: /(\\\\url\\{)[^}]+(?=\\})/,\n lookbehind: true\n },\n /*\n * section or chapter headlines are highlighted as bold so that\n * they stand out more\n */\n headline: {\n pattern:\n /(\\\\(?:chapter|frametitle|paragraph|part|section|subparagraph|subsection|subsubparagraph|subsubsection|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,\n lookbehind: true,\n alias: 'class-name'\n },\n function: {\n pattern: funcPattern,\n alias: 'selector'\n },\n punctuation: /[[\\]{}&]/\n }\n Prism.languages.tex = Prism.languages.latex\n Prism.languages.context = Prism.languages.latex\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nvar refractorPhp = require('./php.js')\nmodule.exports = latte\nlatte.displayName = 'latte'\nlatte.aliases = []\nfunction latte(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.register(refractorPhp)\n ;(function (Prism) {\n Prism.languages.latte = {\n comment: /^\\{\\*[\\s\\S]*/,\n 'latte-tag': {\n // https://latte.nette.org/en/tags\n pattern: /(^\\{(?:\\/(?=[a-z]))?)(?:[=_]|[a-z]\\w*\\b(?!\\())/i,\n lookbehind: true,\n alias: 'important'\n },\n delimiter: {\n pattern: /^\\{\\/?|\\}$/,\n alias: 'punctuation'\n },\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n alias: 'language-php',\n inside: Prism.languages.php\n }\n }\n var markupLatte = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore(\n 'inside',\n 'attr-value',\n {\n 'n-attr': {\n pattern: /n:[\\w-]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+))?/,\n inside: {\n 'attr-name': {\n pattern: /^[^\\s=]+/,\n alias: 'important'\n },\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n punctuation: [\n /^=/,\n {\n pattern: /^(\\s*)[\"']|[\"']$/,\n lookbehind: true\n }\n ],\n php: {\n pattern: /\\S(?:[\\s\\S]*\\S)?/,\n inside: Prism.languages.php\n }\n }\n }\n }\n }\n },\n markupLatte.tag\n )\n Prism.hooks.add('before-tokenize', function (env) {\n if (env.language !== 'latte') {\n return\n }\n var lattePattern =\n /\\{\\*[\\s\\S]*?\\*\\}|\\{[^'\"\\s{}*](?:[^\"'/{}]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'latte',\n lattePattern\n )\n env.grammar = markupLatte\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'latte')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = less\nless.displayName = 'less'\nless.aliases = []\nfunction less(Prism) {\n /* FIXME :\n:extend() is not handled specifically : its highlighting is buggy.\nMixin usage must be inside a ruleset to be highlighted.\nAt-rules (e.g. import) containing interpolations are buggy.\nDetached rulesets are highlighted as at-rules.\nA comment before a mixin usage prevents the latter to be properly highlighted.\n*/\n Prism.languages.less = Prism.languages.extend('css', {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^|[^\\\\])\\/\\/.*/,\n lookbehind: true\n }\n ],\n atrule: {\n pattern:\n /@[\\w-](?:\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n punctuation: /[:()]/\n }\n },\n // selectors and mixins are considered the same\n selector: {\n pattern:\n /(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\((?:[^(){}]|\\([^(){}]*\\))*\\)|[^(){};@\\s]|\\s+(?!\\s))*?(?=\\s*\\{)/,\n inside: {\n // mixin parameters\n variable: /@+[\\w-]+/\n }\n },\n property: /(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/,\n operator: /[+\\-*\\/]/\n })\n Prism.languages.insertBefore('less', 'property', {\n variable: [\n // Variable declaration (the colon must be consumed!)\n {\n pattern: /@[\\w-]+\\s*:/,\n inside: {\n punctuation: /:/\n }\n }, // Variable usage\n /@@?[\\w-]+/\n ],\n 'mixin-usage': {\n pattern: /([{;]\\s*)[.#](?!\\d)[\\w-].*?(?=[(;])/,\n lookbehind: true,\n alias: 'function'\n }\n })\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = lilypond\nlilypond.displayName = 'lilypond'\nlilypond.aliases = []\nfunction lilypond(Prism) {\n Prism.register(refractorScheme)\n ;(function (Prism) {\n var schemeExpression =\n /\\((?:[^();\"#\\\\]|\\\\[\\s\\S]|;.*(?!.)|\"(?:[^\"\\\\]|\\\\.)*\"|#(?:\\{(?:(?!#\\})[\\s\\S])*#\\}|[^{])|<expr>)*\\)/\n .source // allow for up to pow(2, recursivenessLog2) many levels of recursive brace expressions\n // For some reason, this can't be 4\n var recursivenessLog2 = 5\n for (var i = 0; i < recursivenessLog2; i++) {\n schemeExpression = schemeExpression.replace(/<expr>/g, function () {\n return schemeExpression\n })\n }\n schemeExpression = schemeExpression.replace(/<expr>/g, /[^\\s\\S]/.source)\n var lilypond = (Prism.languages.lilypond = {\n comment: /%(?:(?!\\{).*|\\{[\\s\\S]*?%\\})/,\n 'embedded-scheme': {\n pattern: RegExp(\n /(^|[=\\s])#(?:\"(?:[^\"\\\\]|\\\\.)*\"|[^\\s()\"]*(?:[^\\s()]|<expr>))/.source.replace(\n /<expr>/g,\n function () {\n return schemeExpression\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n scheme: {\n pattern: /^(#)[\\s\\S]+$/,\n lookbehind: true,\n alias: 'language-scheme',\n inside: {\n 'embedded-lilypond': {\n pattern: /#\\{[\\s\\S]*?#\\}/,\n greedy: true,\n inside: {\n punctuation: /^#\\{|#\\}$/,\n lilypond: {\n pattern: /[\\s\\S]+/,\n alias: 'language-lilypond',\n inside: null // see below\n }\n }\n },\n rest: Prism.languages.scheme\n }\n },\n punctuation: /#/\n }\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\\\new\\s+)[\\w-]+/,\n lookbehind: true\n },\n keyword: {\n pattern: /\\\\[a-z][-\\w]*/i,\n inside: {\n punctuation: /^\\\\/\n }\n },\n operator: /[=|]|<<|>>/,\n punctuation: {\n pattern:\n /(^|[a-z\\d])(?:'+|,+|[_^]?-[_^]?(?:[-+^!>._]|(?=\\d))|[_^]\\.?|[.!])|[{}()[\\]<>^~]|\\\\[()[\\]<>\\\\!]|--|__/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\/\\d+)?\\b/\n })\n lilypond['embedded-scheme'].inside['scheme'].inside[\n 'embedded-lilypond'\n ].inside['lilypond'].inside = lilypond\n Prism.languages.ly = lilypond\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = liquid\nliquid.displayName = 'liquid'\nliquid.aliases = []\nfunction liquid(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.languages.liquid = {\n comment: {\n pattern: /(^\\{%\\s*comment\\s*%\\})[\\s\\S]+(?=\\{%\\s*endcomment\\s*%\\}$)/,\n lookbehind: true\n },\n delimiter: {\n pattern: /^\\{(?:\\{\\{|[%\\{])-?|-?(?:\\}\\}|[%\\}])\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n keyword:\n /\\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\\b/,\n object:\n /\\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\\b/,\n function: [\n {\n pattern: /(\\|\\s*)\\w+/,\n lookbehind: true,\n alias: 'filter'\n },\n {\n // array functions\n pattern: /(\\.\\s*)(?:first|last|size)/,\n lookbehind: true\n }\n ],\n boolean: /\\b(?:false|nil|true)\\b/,\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n },\n // https://github.com/Shopify/liquid/blob/698f5e0d967423e013f6169d9111bd969bd78337/lib/liquid/lexer.rb#L21\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator: /[!=]=|<>|[<>]=?|[|?:=-]|\\b(?:and|contains(?=\\s)|or)\\b/,\n punctuation: /[.,\\[\\]()]/,\n empty: {\n pattern: /\\bempty\\b/,\n alias: 'keyword'\n }\n }\n Prism.hooks.add('before-tokenize', function (env) {\n var liquidPattern =\n /\\{%\\s*comment\\s*%\\}[\\s\\S]*?\\{%\\s*endcomment\\s*%\\}|\\{(?:%[\\s\\S]*?%|\\{\\{[\\s\\S]*?\\}\\}|\\{[\\s\\S]*?\\})\\}/g\n var insideRaw = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'liquid',\n liquidPattern,\n function (match) {\n var tagMatch = /^\\{%-?\\s*(\\w+)/.exec(match)\n if (tagMatch) {\n var tag = tagMatch[1]\n if (tag === 'raw' && !insideRaw) {\n insideRaw = true\n return true\n } else if (tag === 'endraw') {\n insideRaw = false\n return true\n }\n }\n return !insideRaw\n }\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'liquid')\n })\n}\n","'use strict'\n\nmodule.exports = lisp\nlisp.displayName = 'lisp'\nlisp.aliases = []\nfunction lisp(Prism) {\n ;(function (Prism) {\n /**\n * Functions to construct regular expressions\n * e.g. (interactive ... or (interactive)\n *\n * @param {string} name\n * @returns {RegExp}\n */\n function simple_form(name) {\n return RegExp(/(\\()/.source + '(?:' + name + ')' + /(?=[\\s\\)])/.source)\n }\n /**\n * booleans and numbers\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function primitive(pattern) {\n return RegExp(\n /([\\s([])/.source + '(?:' + pattern + ')' + /(?=[\\s)])/.source\n )\n } // Patterns in regular expressions\n // Symbol name. See https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html\n // & and : are excluded as they are usually used for special purposes\n var symbol = /(?!\\d)[-+*/~!@$%^=<>{}\\w]+/.source // symbol starting with & used in function arguments\n var marker = '&' + symbol // Open parenthesis for look-behind\n var par = '(\\\\()'\n var endpar = '(?=\\\\))' // End the pattern with look-ahead space\n var space = '(?=\\\\s)'\n var nestedPar =\n /(?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\))*\\))*\\))*/\n .source\n var language = {\n // Three or four semicolons are considered a heading.\n // See https://www.gnu.org/software/emacs/manual/html_node/elisp/Comment-Tips.html\n heading: {\n pattern: /;;;.*/,\n alias: ['comment', 'title']\n },\n comment: /;.*/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true,\n inside: {\n argument: /[-A-Z]+(?=[.,\\s])/,\n symbol: RegExp('`' + symbol + \"'\")\n }\n },\n 'quoted-symbol': {\n pattern: RegExp(\"#?'\" + symbol),\n alias: ['variable', 'symbol']\n },\n 'lisp-property': {\n pattern: RegExp(':' + symbol),\n alias: 'property'\n },\n splice: {\n pattern: RegExp(',@?' + symbol),\n alias: ['symbol', 'variable']\n },\n keyword: [\n {\n pattern: RegExp(\n par +\n '(?:and|(?:cl-)?letf|cl-loop|cond|cons|error|if|(?:lexical-)?let\\\\*?|message|not|null|or|provide|require|setq|unless|use-package|when|while)' +\n space\n ),\n lookbehind: true\n },\n {\n pattern: RegExp(\n par +\n '(?:append|by|collect|concat|do|finally|for|in|return)' +\n space\n ),\n lookbehind: true\n }\n ],\n declare: {\n pattern: simple_form(/declare/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n interactive: {\n pattern: simple_form(/interactive/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n boolean: {\n pattern: primitive(/nil|t/.source),\n lookbehind: true\n },\n number: {\n pattern: primitive(/[-+]?\\d+(?:\\.\\d*)?/.source),\n lookbehind: true\n },\n defvar: {\n pattern: RegExp(par + 'def(?:const|custom|group|var)\\\\s+' + symbol),\n lookbehind: true,\n inside: {\n keyword: /^def[a-z]+/,\n variable: RegExp(symbol)\n }\n },\n defun: {\n pattern: RegExp(\n par +\n /(?:cl-)?(?:defmacro|defun\\*?)\\s+/.source +\n symbol +\n /\\s+\\(/.source +\n nestedPar +\n /\\)/.source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^(?:cl-)?def\\S+/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n function: {\n pattern: RegExp('(^\\\\s)' + symbol),\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n lambda: {\n pattern: RegExp(\n par +\n 'lambda\\\\s+\\\\(\\\\s*(?:&?' +\n symbol +\n '(?:\\\\s+&?' +\n symbol +\n ')*\\\\s*)?\\\\)'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^lambda/,\n // See below, this property needs to be defined later so that it can\n // reference the language object.\n arguments: null,\n punctuation: /[()]/\n }\n },\n car: {\n pattern: RegExp(par + symbol),\n lookbehind: true\n },\n punctuation: [\n // open paren, brackets, and close paren\n /(?:['`,]?\\(|[)\\[\\]])/, // cons\n {\n pattern: /(\\s)\\.(?=\\s)/,\n lookbehind: true\n }\n ]\n }\n var arg = {\n 'lisp-marker': RegExp(marker),\n varform: {\n pattern: RegExp(\n /\\(/.source + symbol + /\\s+(?=\\S)/.source + nestedPar + /\\)/.source\n ),\n inside: language\n },\n argument: {\n pattern: RegExp(/(^|[\\s(])/.source + symbol),\n lookbehind: true,\n alias: 'variable'\n },\n rest: language\n }\n var forms = '\\\\S+(?:\\\\s+\\\\S+)*'\n var arglist = {\n pattern: RegExp(par + nestedPar + endpar),\n lookbehind: true,\n inside: {\n 'rest-vars': {\n pattern: RegExp('&(?:body|rest)\\\\s+' + forms),\n inside: arg\n },\n 'other-marker-vars': {\n pattern: RegExp('&(?:aux|optional)\\\\s+' + forms),\n inside: arg\n },\n keys: {\n pattern: RegExp('&key\\\\s+' + forms + '(?:\\\\s+&allow-other-keys)?'),\n inside: arg\n },\n argument: {\n pattern: RegExp(symbol),\n alias: 'variable'\n },\n punctuation: /[()]/\n }\n }\n language['lambda'].inside.arguments = arglist\n language['defun'].inside.arguments = Prism.util.clone(arglist)\n language['defun'].inside.arguments.inside.sublist = arglist\n Prism.languages.lisp = language\n Prism.languages.elisp = language\n Prism.languages.emacs = language\n Prism.languages['emacs-lisp'] = language\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = livescript\nlivescript.displayName = 'livescript'\nlivescript.aliases = []\nfunction livescript(Prism) {\n Prism.languages.livescript = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n ],\n 'interpolated-string': {\n /* Look-behind and look-ahead prevents wrong behavior of the greedy pattern\n * forcing it to match \"\"\"-quoted string when it would otherwise match \"-quoted first. */\n pattern: /(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,\n lookbehind: true,\n greedy: true,\n inside: {\n variable: {\n pattern: /(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,\n lookbehind: true\n },\n interpolation: {\n pattern: /(^|[^\\\\])#\\{[^}]+\\}/m,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^#\\{|\\}$/,\n alias: 'variable'\n } // See rest below\n }\n },\n string: /[\\s\\S]+/\n }\n },\n string: [\n {\n pattern: /('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n {\n pattern: /<\\[[\\s\\S]*?\\]>/,\n greedy: true\n },\n /\\\\[^\\s,;\\])}]+/\n ],\n regex: [\n {\n pattern: /\\/\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|(?!\\/\\/)[^\\\\\\[])+\\/\\/[gimyu]{0,5}/,\n greedy: true,\n inside: {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n }\n }\n },\n {\n pattern: /\\/(?:\\[[^\\r\\n\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/[gimyu]{0,5}/,\n greedy: true\n }\n ],\n keyword: {\n pattern:\n /(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,\n lookbehind: true\n },\n 'keyword-operator': {\n pattern:\n /(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?: not|nt)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,\n lookbehind: true,\n alias: 'operator'\n },\n boolean: {\n pattern: /(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,\n lookbehind: true\n },\n argument: {\n // Don't match .&. nor &&\n pattern: /(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,\n lookbehind: true,\n alias: 'variable'\n },\n number: /\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,\n identifier: /[a-z_](?:-?[a-z]|[\\d_])*/i,\n operator: [\n // Spaced .\n {\n pattern: /( )\\.(?= )/,\n lookbehind: true\n }, // Full list, in order:\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 punctuation: /[(){}\\[\\]|.,:;`]/\n }\n Prism.languages.livescript['interpolated-string'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.livescript\n}\n","'use strict'\n\nmodule.exports = llvm\nllvm.displayName = 'llvm'\nllvm.aliases = []\nfunction llvm(Prism) {\n ;(function (Prism) {\n Prism.languages.llvm = {\n comment: /;.*/,\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n boolean: /\\b(?:false|true)\\b/,\n variable: /[%@!#](?:(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+|\\d+)/i,\n label: /(?!\\d)(?:[-$.\\w]|\\\\[a-f\\d]{2})+:/i,\n type: {\n pattern:\n /\\b(?:double|float|fp128|half|i[1-9]\\d*|label|metadata|ppc_fp128|token|void|x86_fp80|x86_mmx)\\b/,\n alias: 'class-name'\n },\n keyword: /\\b[a-z_][a-z_0-9]*\\b/,\n number:\n /[+-]?\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-Fa-f]+\\b|\\b0xK[\\dA-Fa-f]{20}\\b|\\b0x[ML][\\dA-Fa-f]{32}\\b|\\b0xH[\\dA-Fa-f]{4}\\b/,\n punctuation: /[{}[\\];(),.!*=<>]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = log\nlog.displayName = 'log'\nlog.aliases = []\nfunction log(Prism) {\n // This is a language definition for generic log files.\n // Since there is no one log format, this language definition has to support all formats to some degree.\n //\n // Based on https://github.com/MTDL9/vim-log-highlighting\n Prism.languages.log = {\n string: {\n // Single-quoted strings must not be confused with plain text. E.g. Can't isn't Susan's Chris' toy\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?![st] | \\w)(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n exception: {\n pattern:\n /(^|[^\\w.])[a-z][\\w.]*(?:Error|Exception):.*(?:(?:\\r\\n?|\\n)[ \\t]*(?:at[ \\t].+|\\.{3}.*|Caused by:.*))+(?:(?:\\r\\n?|\\n)[ \\t]*\\.\\.\\. .*)?/,\n lookbehind: true,\n greedy: true,\n alias: ['javastacktrace', 'language-javastacktrace'],\n inside: Prism.languages['javastacktrace'] || {\n keyword: /\\bat\\b/,\n function: /[a-z_][\\w$]*(?=\\()/,\n punctuation: /[.:()]/\n }\n },\n level: [\n {\n pattern:\n /\\b(?:ALERT|CRIT|CRITICAL|EMERG|EMERGENCY|ERR|ERROR|FAILURE|FATAL|SEVERE)\\b/,\n alias: ['error', 'important']\n },\n {\n pattern: /\\b(?:WARN|WARNING|WRN)\\b/,\n alias: ['warning', 'important']\n },\n {\n pattern: /\\b(?:DISPLAY|INF|INFO|NOTICE|STATUS)\\b/,\n alias: ['info', 'keyword']\n },\n {\n pattern: /\\b(?:DBG|DEBUG|FINE)\\b/,\n alias: ['debug', 'keyword']\n },\n {\n pattern: /\\b(?:FINER|FINEST|TRACE|TRC|VERBOSE|VRB)\\b/,\n alias: ['trace', 'comment']\n }\n ],\n property: {\n pattern:\n /((?:^|[\\]|])[ \\t]*)[a-z_](?:[\\w-]|\\b\\/\\b)*(?:[. ]\\(?\\w(?:[\\w-]|\\b\\/\\b)*\\)?)*:(?=\\s)/im,\n lookbehind: true\n },\n separator: {\n pattern: /(^|[^-+])-{3,}|={3,}|\\*{3,}|- - /m,\n lookbehind: true,\n alias: 'comment'\n },\n url: /\\b(?:file|ftp|https?):\\/\\/[^\\s|,;'\"]*[^\\s|,;'\">.]/,\n email: {\n pattern: /(^|\\s)[-\\w+.]+@[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)+(?=\\s)/,\n lookbehind: true,\n alias: 'url'\n },\n 'ip-address': {\n pattern: /\\b(?:\\d{1,3}(?:\\.\\d{1,3}){3})\\b/,\n alias: 'constant'\n },\n 'mac-address': {\n pattern: /\\b[a-f0-9]{2}(?::[a-f0-9]{2}){5}\\b/i,\n alias: 'constant'\n },\n domain: {\n pattern:\n /(^|\\s)[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*)*\\.[a-z][a-z0-9-]+(?=\\s)/,\n lookbehind: true,\n alias: 'constant'\n },\n uuid: {\n pattern:\n /\\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\b/i,\n alias: 'constant'\n },\n hash: {\n pattern: /\\b(?:[a-f0-9]{32}){1,2}\\b/i,\n alias: 'constant'\n },\n 'file-path': {\n pattern:\n /\\b[a-z]:[\\\\/][^\\s|,;:(){}\\[\\]\"']+|(^|[\\s:\\[\\](>|])\\.{0,2}\\/\\w[^\\s|,;:(){}\\[\\]\"']*/i,\n lookbehind: true,\n greedy: true,\n alias: 'string'\n },\n date: {\n pattern: RegExp(\n /\\b\\d{4}[-/]\\d{2}[-/]\\d{2}(?:T(?=\\d{1,2}:)|(?=\\s\\d{1,2}:))/.source +\n '|' +\n /\\b\\d{1,4}[-/ ](?:\\d{1,2}|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)[-/ ]\\d{2,4}T?\\b/\n .source +\n '|' +\n /\\b(?:(?:Fri|Mon|Sat|Sun|Thu|Tue|Wed)(?:\\s{1,2}(?:Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep))?|Apr|Aug|Dec|Feb|Jan|Jul|Jun|Mar|May|Nov|Oct|Sep)\\s{1,2}\\d{1,2}\\b/\n .source,\n 'i'\n ),\n alias: 'number'\n },\n time: {\n pattern:\n /\\b\\d{1,2}:\\d{1,2}:\\d{1,2}(?:[.,:]\\d+)?(?:\\s?[+-]\\d{2}:?\\d{2}|Z)?\\b/,\n alias: 'number'\n },\n boolean: /\\b(?:false|null|true)\\b/i,\n number: {\n pattern:\n /(^|[^.\\w])(?:0x[a-f0-9]+|0o[0-7]+|0b[01]+|v?\\d[\\da-f]*(?:\\.\\d+)*(?:e[+-]?\\d+)?[a-z]{0,3}\\b)\\b(?!\\.\\w)/i,\n lookbehind: true\n },\n operator: /[;:?<=>~/@!$%&+\\-|^(){}*#]/,\n punctuation: /[\\[\\].,]/\n }\n}\n","'use strict'\n\nmodule.exports = lolcode\nlolcode.displayName = 'lolcode'\nlolcode.aliases = []\nfunction lolcode(Prism) {\n Prism.languages.lolcode = {\n comment: [/\\bOBTW\\s[\\s\\S]*?\\sTLDR\\b/, /\\bBTW.+/],\n string: {\n pattern: /\"(?::.|[^\":])*\"/,\n inside: {\n variable: /:\\{[^}]+\\}/,\n symbol: [/:\\([a-f\\d]+\\)/i, /:\\[[^\\]]+\\]/, /:[)>o\":]/]\n },\n greedy: true\n },\n number: /(?:\\B-)?(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)/,\n symbol: {\n pattern: /(^|\\s)(?:A )?(?:BUKKIT|NOOB|NUMBAR|NUMBR|TROOF|YARN)(?=\\s|,|$)/,\n lookbehind: true,\n inside: {\n keyword: /A(?=\\s)/\n }\n },\n label: {\n pattern: /((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,\n lookbehind: true,\n alias: 'string'\n },\n function: {\n pattern: /((?:^|\\s)(?:HOW IZ I|I IZ|IZ) )[a-zA-Z]\\w*/,\n lookbehind: true\n },\n keyword: [\n {\n pattern:\n /(^|\\s)(?:AN|FOUND YR|GIMMEH|GTFO|HAI|HAS A|HOW IZ I|I HAS A|I IZ|IF U SAY SO|IM IN YR|IM OUTTA YR|IS NOW(?: A)?|ITZ(?: A)?|IZ|KTHX|KTHXBYE|LIEK(?: A)?|MAEK|MEBBE|MKAY|NERFIN|NO WAI|O HAI IM|O RLY\\?|OIC|OMG|OMGWTF|R|SMOOSH|SRS|TIL|UPPIN|VISIBLE|WILE|WTF\\?|YA RLY|YR)(?=\\s|,|$)/,\n lookbehind: true\n },\n /'Z(?=\\s|,|$)/\n ],\n boolean: {\n pattern: /(^|\\s)(?:FAIL|WIN)(?=\\s|,|$)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|\\s)IT(?=\\s|,|$)/,\n lookbehind: true\n },\n operator: {\n pattern:\n /(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|MOD|PRODUKT|QUOSHUNT|SMALLR|SUM|WON) OF)(?=\\s|,|$)/,\n lookbehind: true\n },\n punctuation: /\\.{3}|…|,|!/\n }\n}\n","'use strict'\n\nmodule.exports = lua\nlua.displayName = 'lua'\nlua.aliases = []\nfunction lua(Prism) {\n Prism.languages.lua = {\n comment: /^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,\n // \\z may be used to skip the following space\n string: {\n pattern:\n /([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[^z]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,\n greedy: true\n },\n number:\n /\\b0x[a-f\\d]+(?:\\.[a-f\\d]*)?(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|(?:\\.\\d*)?(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,\n keyword:\n /\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\n function: /(?!\\d)\\w+(?=\\s*(?:[({]))/,\n operator: [\n /[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,\n {\n // Match \"..\" but don't break \"...\"\n pattern: /(^|[^.])\\.\\.(?!\\.)/,\n lookbehind: true\n }\n ],\n punctuation: /[\\[\\](){},;]|\\.+|:+/\n }\n}\n","'use strict'\n\nmodule.exports = magma\nmagma.displayName = 'magma'\nmagma.aliases = []\nfunction magma(Prism) {\n Prism.languages.magma = {\n output: {\n pattern:\n /^(>.*(?:\\r(?:\\n|(?!\\n))|\\n))(?!>)(?:.+|(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)(?:(?:\\r(?:\\n|(?!\\n))|\\n)(?!>).*)*/m,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\\"])\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n // http://magma.maths.usyd.edu.au/magma/handbook/text/82\n keyword:\n /\\b(?:_|adj|and|assert|assert2|assert3|assigned|break|by|case|cat|catch|clear|cmpeq|cmpne|continue|declare|default|delete|diff|div|do|elif|else|end|eq|error|eval|exists|exit|for|forall|forward|fprintf|freeze|function|ge|gt|if|iload|import|in|intrinsic|is|join|le|load|local|lt|meet|mod|ne|not|notadj|notin|notsubset|or|print|printf|procedure|quit|random|read|readi|repeat|require|requirege|requirerange|restore|return|save|sdiff|select|subset|then|time|to|try|until|vprint|vprintf|vtime|when|where|while|xor)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n generator: {\n pattern: /\\b[a-z_]\\w*(?=\\s*<)/i,\n alias: 'class-name'\n },\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number: {\n pattern:\n /(^|[^\\w.]|\\.\\.)(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?(?:_[a-z]?)?(?=$|[^\\w.]|\\.\\.)/,\n lookbehind: true\n },\n operator: /->|[-+*/^~!|#=]|:=|\\.\\./,\n punctuation: /[()[\\]{}<>,;.:]/\n }\n}\n","'use strict'\n\nmodule.exports = makefile\nmakefile.displayName = 'makefile'\nmakefile.aliases = []\nfunction makefile(Prism) {\n Prism.languages.makefile = {\n comment: {\n pattern: /(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,\n lookbehind: true\n },\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'builtin-target': {\n pattern: /\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,\n alias: 'builtin'\n },\n target: {\n pattern: /^(?:[^:=\\s]|[ \\t]+(?![\\s:]))+(?=\\s*:(?!=))/m,\n alias: 'symbol',\n inside: {\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|(?=[({]))/\n }\n },\n variable: /\\$+(?:(?!\\$)[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,\n // Directives\n keyword:\n /-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,\n function: {\n pattern:\n /(\\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \\t])/,\n lookbehind: true\n },\n operator: /(?:::|[?:+!])?=|[|@]/,\n punctuation: /[:;(){}]/\n }\n}\n","'use strict'\n\nmodule.exports = markdown\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\nfunction markdown(Prism) {\n ;(function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\n /**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function createInline(pattern) {\n pattern = pattern.replace(/<inner>/g, function () {\n return inner\n })\n return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n }\n var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n .source\n var tableRow =\n /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n /__/g,\n function () {\n return tableCell\n }\n )\n var tableLine =\n /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n .source\n Prism.languages.markdown = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore('markdown', 'prolog', {\n 'front-matter-block': {\n pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^---|---$/,\n 'front-matter': {\n pattern: /\\S+(?:\\s+\\S+)*/,\n alias: ['yaml', 'language-yaml'],\n inside: Prism.languages.yaml\n }\n }\n },\n blockquote: {\n // > ...\n pattern: /^>(?:[\\t ]*>)*/m,\n alias: 'punctuation'\n },\n table: {\n pattern: RegExp(\n '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n 'm'\n ),\n inside: {\n 'table-data-rows': {\n pattern: RegExp(\n '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n ),\n lookbehind: true,\n inside: {\n 'table-data': {\n pattern: RegExp(tableCell),\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n },\n 'table-line': {\n pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n lookbehind: true,\n inside: {\n punctuation: /\\||:?-{3,}:?/\n }\n },\n 'table-header-row': {\n pattern: RegExp('^' + tableRow + '$'),\n inside: {\n 'table-header': {\n pattern: RegExp(tableCell),\n alias: 'important',\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n }\n }\n },\n code: [\n {\n // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n pattern:\n /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n lookbehind: true,\n alias: 'keyword'\n },\n {\n // ```optional language\n // code block\n // ```\n pattern: /^```[\\s\\S]*?^```$/m,\n greedy: true,\n inside: {\n 'code-block': {\n pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n lookbehind: true\n },\n 'code-language': {\n pattern: /^(```).+/,\n lookbehind: true\n },\n punctuation: /```/\n }\n }\n ],\n title: [\n {\n // title 1\n // =======\n // title 2\n // -------\n pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n alias: 'important',\n inside: {\n punctuation: /==+$|--+$/\n }\n },\n {\n // # title 1\n // ###### title 6\n pattern: /(^\\s*)#.+/m,\n lookbehind: true,\n alias: 'important',\n inside: {\n punctuation: /^#+|#+$/\n }\n }\n ],\n hr: {\n // ***\n // ---\n // * * *\n // -----------\n pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n list: {\n // * item\n // + item\n // - item\n // 1. item\n pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'url-reference': {\n // [id]: http://example.com \"Optional title\"\n // [id]: http://example.com 'Optional title'\n // [id]: http://example.com (Optional title)\n // [id]: <http://example.com> \"Optional title\"\n pattern:\n /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n inside: {\n variable: {\n pattern: /^(!?\\[)[^\\]]+/,\n lookbehind: true\n },\n string:\n /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n punctuation: /^[\\[\\]!:]|[<>]/\n },\n alias: 'url'\n },\n bold: {\n // **strong**\n // __strong__\n // allow one nested instance of italic text using the same delimiter\n pattern: createInline(\n /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^..)[\\s\\S]+(?=..$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /\\*\\*|__/\n }\n },\n italic: {\n // *em*\n // _em_\n // allow one nested instance of bold text using the same delimiter\n pattern: createInline(\n /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^.)[\\s\\S]+(?=.$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /[*_]/\n }\n },\n strike: {\n // ~~strike through~~\n // ~strike~\n // eslint-disable-next-line regexp/strict\n pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /~~?/\n }\n },\n 'code-snippet': {\n // `code`\n // ``code``\n pattern:\n /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n lookbehind: true,\n greedy: true,\n alias: ['code', 'keyword']\n },\n url: {\n // [example](http://example.com \"Optional title\")\n // [example][id]\n // [example] [id]\n pattern: createInline(\n /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n operator: /^!/,\n content: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n inside: {} // see below\n },\n variable: {\n pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\]\\()[^\\s)]+/,\n lookbehind: true\n },\n string: {\n pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n lookbehind: true\n }\n }\n }\n })\n ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n ;['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (\n inside\n ) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] =\n Prism.languages.markdown[inside]\n }\n })\n })\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'markdown' && env.language !== 'md') {\n return\n }\n function walkTokens(tokens) {\n if (!tokens || typeof tokens === 'string') {\n return\n }\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (token.type !== 'code') {\n walkTokens(token.content)\n continue\n }\n /*\n * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n * is optional. But the grammar is defined so that there is only one case we have to handle:\n *\n * token.content = [\n * <span class=\"punctuation\">```</span>,\n * <span class=\"code-language\">xxxx</span>,\n * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n * <span class=\"code-block\">...</span>,\n * '\\n', // exactly one new lines again\n * <span class=\"punctuation\">```</span>\n * ];\n */\n var codeLang = token.content[1]\n var codeBlock = token.content[3]\n if (\n codeLang &&\n codeBlock &&\n codeLang.type === 'code-language' &&\n codeBlock.type === 'code-block' &&\n typeof codeLang.content === 'string'\n ) {\n // this might be a language that Prism does not support\n // do some replacements to support C++, C#, and F#\n var lang = codeLang.content\n .replace(/\\b#/g, 'sharp')\n .replace(/\\b\\+\\+/g, 'pp') // only use the first word\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n var alias = 'language-' + lang // add alias\n if (!codeBlock.alias) {\n codeBlock.alias = [alias]\n } else if (typeof codeBlock.alias === 'string') {\n codeBlock.alias = [codeBlock.alias, alias]\n } else {\n codeBlock.alias.push(alias)\n }\n }\n }\n }\n walkTokens(env.tokens)\n })\n Prism.hooks.add('wrap', function (env) {\n if (env.type !== 'code-block') {\n return\n }\n var codeLang = ''\n for (var i = 0, l = env.classes.length; i < l; i++) {\n var cls = env.classes[i]\n var match = /language-(.+)/.exec(cls)\n if (match) {\n codeLang = match[1]\n break\n }\n }\n var grammar = Prism.languages[codeLang]\n if (!grammar) {\n if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n var id =\n 'md-' +\n new Date().valueOf() +\n '-' +\n Math.floor(Math.random() * 1e16)\n env.attributes['id'] = id\n Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n var ele = document.getElementById(id)\n if (ele) {\n ele.innerHTML = Prism.highlight(\n ele.textContent,\n Prism.languages[codeLang],\n codeLang\n )\n }\n })\n }\n } else {\n env.content = Prism.highlight(\n textContent(env.content.value),\n grammar,\n codeLang\n )\n }\n })\n var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi')\n /**\n * A list of known entity names.\n *\n * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n *\n * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n */\n var KNOWN_ENTITY_NAMES = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"'\n } // IE 11 doesn't support `String.fromCodePoint`\n var fromCodePoint = String.fromCodePoint || String.fromCharCode\n /**\n * Returns the text content of a given HTML source code string.\n *\n * @param {string} html\n * @returns {string}\n */\n function textContent(html) {\n // remove all tags\n var text = html.replace(tagPattern, '') // decode known entities\n text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n code = code.toLowerCase()\n if (code[0] === '#') {\n var value\n if (code[1] === 'x') {\n value = parseInt(code.slice(2), 16)\n } else {\n value = Number(code.slice(1))\n }\n return fromCodePoint(value)\n } else {\n var known = KNOWN_ENTITY_NAMES[code]\n if (known) {\n return known\n } // unable to decode\n return m\n }\n })\n return text\n }\n Prism.languages.md = Prism.languages.markdown\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = markupTemplating\nmarkupTemplating.displayName = 'markupTemplating'\nmarkupTemplating.aliases = []\nfunction markupTemplating(Prism) {\n ;(function (Prism) {\n /**\n * Returns the placeholder for the given language id and index.\n *\n * @param {string} language\n * @param {string|number} index\n * @returns {string}\n */\n function getPlaceholder(language, index) {\n return '___' + language.toUpperCase() + index + '___'\n }\n Object.defineProperties((Prism.languages['markup-templating'] = {}), {\n buildPlaceholders: {\n /**\n * Tokenize all inline templating expressions matching `placeholderPattern`.\n *\n * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns\n * `true` will be replaced.\n *\n * @param {object} env The environment of the `before-tokenize` hook.\n * @param {string} language The language id.\n * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.\n * @param {(match: string) => boolean} [replaceFilter]\n */\n value: function (env, language, placeholderPattern, replaceFilter) {\n if (env.language !== language) {\n return\n }\n var tokenStack = (env.tokenStack = [])\n env.code = env.code.replace(placeholderPattern, function (match) {\n if (typeof replaceFilter === 'function' && !replaceFilter(match)) {\n return match\n }\n var i = tokenStack.length\n var placeholder // Check for existing strings\n while (\n env.code.indexOf((placeholder = getPlaceholder(language, i))) !==\n -1\n ) {\n ++i\n } // Create a sparse array\n tokenStack[i] = match\n return placeholder\n }) // Switch the grammar to markup\n env.grammar = Prism.languages.markup\n }\n },\n tokenizePlaceholders: {\n /**\n * Replace placeholders with proper tokens after tokenizing.\n *\n * @param {object} env The environment of the `after-tokenize` hook.\n * @param {string} language The language id.\n */\n value: function (env, language) {\n if (env.language !== language || !env.tokenStack) {\n return\n } // Switch the grammar back\n env.grammar = Prism.languages[language]\n var j = 0\n var keys = Object.keys(env.tokenStack)\n function walkTokens(tokens) {\n for (var i = 0; i < tokens.length; i++) {\n // all placeholders are replaced already\n if (j >= keys.length) {\n break\n }\n var token = tokens[i]\n if (\n typeof token === 'string' ||\n (token.content && typeof token.content === 'string')\n ) {\n var k = keys[j]\n var t = env.tokenStack[k]\n var s = typeof token === 'string' ? token : token.content\n var placeholder = getPlaceholder(language, k)\n var index = s.indexOf(placeholder)\n if (index > -1) {\n ++j\n var before = s.substring(0, index)\n var middle = new Prism.Token(\n language,\n Prism.tokenize(t, env.grammar),\n 'language-' + language,\n t\n )\n var after = s.substring(index + placeholder.length)\n var replacement = []\n if (before) {\n replacement.push.apply(replacement, walkTokens([before]))\n }\n replacement.push(middle)\n if (after) {\n replacement.push.apply(replacement, walkTokens([after]))\n }\n if (typeof token === 'string') {\n tokens.splice.apply(tokens, [i, 1].concat(replacement))\n } else {\n token.content = replacement\n }\n }\n } else if (\n token.content\n /* && typeof token.content !== 'string' */\n ) {\n walkTokens(token.content)\n }\n }\n return tokens\n }\n walkTokens(env.tokens)\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = markup\nmarkup.displayName = 'markup'\nmarkup.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss']\nfunction markup(Prism) {\n Prism.languages.markup = {\n comment: {\n pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n greedy: true\n },\n prolog: {\n pattern: /<\\?[\\s\\S]+?\\?>/,\n greedy: true\n },\n doctype: {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern:\n /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n punctuation: /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/i,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n greedy: true\n },\n tag: {\n pattern:\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n tag: {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n punctuation: /^<\\/?/,\n namespace: /^[^\\s>\\/:]+:/\n }\n },\n 'special-attr': [],\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n },\n punctuation: /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n namespace: /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n entity: [\n {\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n },\n /&#x?[\\da-f]{1,8};/i\n ]\n }\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n Prism.languages.markup['entity']\n Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n Prism.languages.markup // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&amp;/, '&')\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {}\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n }\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n }\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n }\n var def = {}\n def[tagName] = {\n pattern: RegExp(\n /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n /__/g,\n function () {\n return tagName\n }\n ),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: inside\n }\n Prism.languages.insertBefore('markup', 'cdata', def)\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n /**\n * Adds an pattern to highlight languages embedded in HTML attributes.\n *\n * An example of an inlined language is CSS with `style` attributes.\n *\n * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addAttribute('style', 'css');\n */\n value: function (attrName, lang) {\n Prism.languages.markup.tag.inside['special-attr'].push({\n pattern: RegExp(\n /(^|[\"'\\s])/.source +\n '(?:' +\n attrName +\n ')' +\n /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n 'i'\n ),\n lookbehind: true,\n inside: {\n 'attr-name': /^[^\\s=]+/,\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n value: {\n pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n lookbehind: true,\n alias: [lang, 'language-' + lang],\n inside: Prism.languages[lang]\n },\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n }\n }\n })\n }\n })\n Prism.languages.html = Prism.languages.markup\n Prism.languages.mathml = Prism.languages.markup\n Prism.languages.svg = Prism.languages.markup\n Prism.languages.xml = Prism.languages.extend('markup', {})\n Prism.languages.ssml = Prism.languages.xml\n Prism.languages.atom = Prism.languages.xml\n Prism.languages.rss = Prism.languages.xml\n}\n","'use strict'\n\nmodule.exports = matlab\nmatlab.displayName = 'matlab'\nmatlab.aliases = []\nfunction matlab(Prism) {\n Prism.languages.matlab = {\n comment: [/%\\{[\\s\\S]*?\\}%/, /%.+/],\n string: {\n pattern: /\\B'(?:''|[^'\\r\\n])*'/,\n greedy: true\n },\n // FIXME We could handle imaginary numbers as a whole\n number: /(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,\n keyword:\n /\\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n operator: /\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,\n punctuation: /\\.{3}|[.,;\\[\\](){}!]/\n }\n}\n","'use strict'\n\nmodule.exports = maxscript\nmaxscript.displayName = 'maxscript'\nmaxscript.aliases = []\nfunction maxscript(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:about|and|animate|as|at|attributes|by|case|catch|collect|continue|coordsys|do|else|exit|fn|for|from|function|global|if|in|local|macroscript|mapped|max|not|of|off|on|or|parameters|persistent|plugin|rcmenu|return|rollout|set|struct|then|throw|to|tool|try|undo|utility|when|where|while|with)\\b/i\n Prism.languages.maxscript = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?(?:\\*\\/|$)|--.*/,\n greedy: true\n },\n string: {\n pattern: /(^|[^\"\\\\@])(?:\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|@\"[^\"]*\")/,\n lookbehind: true,\n greedy: true\n },\n path: {\n pattern: /\\$(?:[\\w/\\\\.*?]|'[^']*')*/,\n greedy: true,\n alias: 'string'\n },\n 'function-call': {\n pattern: RegExp(\n '((?:' + // start of line\n (/^/.source +\n '|' + // operators and other language constructs\n /[;=<>+\\-*/^({\\[]/.source +\n '|' + // keywords as part of statements\n /\\b(?:and|by|case|catch|collect|do|else|if|in|not|or|return|then|to|try|where|while|with)\\b/\n .source) +\n ')[ \\t]*)' +\n '(?!' +\n keywords.source +\n ')' +\n /[a-z_]\\w*\\b/.source +\n '(?=[ \\t]*(?:' + // variable\n ('(?!' +\n keywords.source +\n ')' +\n /[a-z_]/.source +\n '|' + // number\n /\\d|-\\.?\\d/.source +\n '|' + // other expressions or literals\n /[({'\"$@#?]/.source) +\n '))',\n 'im'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'function'\n },\n 'function-definition': {\n pattern: /(\\b(?:fn|function)\\s+)\\w+\\b/i,\n lookbehind: true,\n alias: 'function'\n },\n argument: {\n pattern: /\\b[a-z_]\\w*(?=:)/i,\n alias: 'attr-name'\n },\n keyword: keywords,\n boolean: /\\b(?:false|true)\\b/,\n time: {\n pattern:\n /(^|[^\\w.])(?:(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?[msft])+|\\d+:\\d+(?:\\.\\d*)?)(?![\\w.:])/,\n lookbehind: true,\n alias: 'number'\n },\n number: [\n {\n pattern:\n /(^|[^\\w.])(?:(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eEdD][+-]\\d+|[LP])?|0x[a-fA-F0-9]+)(?![\\w.:])/,\n lookbehind: true\n },\n /\\b(?:e|pi)\\b/\n ],\n constant: /\\b(?:dontcollect|ok|silentValue|undefined|unsupplied)\\b/,\n color: {\n pattern: /\\b(?:black|blue|brown|gray|green|orange|red|white|yellow)\\b/i,\n alias: 'constant'\n },\n operator: /[-+*/<>=!]=?|[&^?]|#(?!\\()/,\n punctuation: /[()\\[\\]{}.:,;]|#(?=\\()|\\\\$/m\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = mel\nmel.displayName = 'mel'\nmel.aliases = []\nfunction mel(Prism) {\n Prism.languages.mel = {\n comment: /\\/\\/.*/,\n code: {\n pattern: /`(?:\\\\.|[^\\\\`\\r\\n])*`/,\n greedy: true,\n alias: 'italic',\n inside: {\n delimiter: {\n pattern: /^`|`$/,\n alias: 'punctuation'\n } // See rest below\n }\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n variable: /\\$\\w+/,\n number: /\\b0x[\\da-fA-F]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+/,\n flag: {\n pattern: /-[^\\d\\W]\\w*/,\n alias: 'operator'\n },\n keyword:\n /\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\n function:\n /\\b\\w+(?=\\()|\\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,\n operator: [\n /\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,\n {\n // We don't want to match <<\n pattern: /(^|[^<])<(?!<)/,\n lookbehind: true\n },\n {\n // We don't want to match >>\n pattern: /(^|[^>])>(?!>)/,\n lookbehind: true\n }\n ],\n punctuation: /<<|>>|[.,:;?\\[\\](){}]/\n }\n Prism.languages.mel['code'].inside.rest = Prism.languages.mel\n}\n","'use strict'\n\nmodule.exports = mermaid\nmermaid.displayName = 'mermaid'\nmermaid.aliases = []\nfunction mermaid(Prism) {\n Prism.languages.mermaid = {\n comment: {\n pattern: /%%.*/,\n greedy: true\n },\n style: {\n pattern:\n /^([ \\t]*(?:classDef|linkStyle|style)[ \\t]+[\\w$-]+[ \\t]+)\\w.*[^\\s;]/m,\n lookbehind: true,\n inside: {\n property: /\\b\\w[\\w-]*(?=[ \\t]*:)/,\n operator: /:/,\n punctuation: /,/\n }\n },\n 'inter-arrow-label': {\n pattern:\n /([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \\t]*(?:\"[^\"\\r\\n]*\"|[^\\s\".=-](?:[^\\r\\n.=-]*[^\\s.=-])?)[ \\t]*(?:\\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,\n lookbehind: true,\n greedy: true,\n inside: {\n arrow: {\n pattern: /(?:\\.+->?|--+[->]|==+[=>])$/,\n alias: 'operator'\n },\n label: {\n pattern: /^([\\s\\S]{2}[ \\t]*)\\S(?:[\\s\\S]*\\S)?/,\n lookbehind: true,\n alias: 'property'\n },\n 'arrow-head': {\n pattern: /^\\S+/,\n alias: ['arrow', 'operator']\n }\n }\n },\n arrow: [\n // This might look complex but it really isn't.\n // There are many possible arrows (see tests) and it's impossible to fit all of them into one pattern. The\n // problem is that we only have one lookbehind per pattern. However, we cannot disallow too many arrow\n // characters in the one lookbehind because that would create too many false negatives. So we have to split the\n // arrows into different patterns.\n {\n // ER diagram\n pattern: /(^|[^{}|o.-])[|}][|o](?:--|\\.\\.)[|o][|{](?![{}|o.-])/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // flow chart\n // (?:==+|--+|-\\.*-)\n pattern:\n /(^|[^<>ox.=-])(?:[<ox](?:==+|--+|-\\.*-)[>ox]?|(?:==+|--+|-\\.*-)[>ox]|===+|---+|-\\.+-)(?![<>ox.=-])/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // sequence diagram\n pattern:\n /(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,\n lookbehind: true,\n alias: 'operator'\n },\n {\n // class diagram\n pattern:\n /(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\\|?(?:--|\\.\\.)|(?:--|\\.\\.)\\|?>|--|\\.\\.)(?![<>|*o.-])/,\n lookbehind: true,\n alias: 'operator'\n }\n ],\n label: {\n pattern: /(^|[^|<])\\|(?:[^\\r\\n\"|]|\"[^\"\\r\\n]*\")+\\|/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n text: {\n pattern: /(?:[(\\[{]+|\\b>)(?:[^\\r\\n\"()\\[\\]{}]|\"[^\"\\r\\n]*\")+(?:[)\\]}]+|>)/,\n alias: 'string'\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"/,\n greedy: true\n },\n annotation: {\n pattern:\n /<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\\[\\[(?:choice|fork|join)\\]\\]/i,\n alias: 'important'\n },\n keyword: [\n // This language has both case-sensitive and case-insensitive keywords\n {\n pattern:\n /(^[ \\t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\\w$-])/m,\n lookbehind: true,\n greedy: true\n },\n {\n pattern:\n /(^[ \\t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \\t]+note)?|loop|opt|par|participant|rect|state|note[ \\t]+(?:over|(?:left|right)[ \\t]+of))(?![\\w$-])/im,\n lookbehind: true,\n greedy: true\n }\n ],\n entity: /#[a-z0-9]+;/,\n operator: {\n pattern: /(\\w[ \\t]*)&(?=[ \\t]*\\w)|:::|:/,\n lookbehind: true\n },\n punctuation: /[(){};]/\n }\n}\n","'use strict'\n\nmodule.exports = mizar\nmizar.displayName = 'mizar'\nmizar.aliases = []\nfunction mizar(Prism) {\n Prism.languages.mizar = {\n comment: /::.+/,\n keyword:\n /@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\\b/,\n parameter: {\n pattern: /\\$(?:10|\\d)/,\n alias: 'variable'\n },\n variable: /\\b\\w+(?=:)/,\n number: /(?:\\b|-)\\d+\\b/,\n operator: /\\.\\.\\.|->|&|\\.?=/,\n punctuation: /\\(#|#\\)|[,:;\\[\\](){}]/\n }\n}\n","'use strict'\n\nmodule.exports = mongodb\nmongodb.displayName = 'mongodb'\nmongodb.aliases = []\nfunction mongodb(Prism) {\n ;(function (Prism) {\n var operators = [\n // query and projection\n '$eq',\n '$gt',\n '$gte',\n '$in',\n '$lt',\n '$lte',\n '$ne',\n '$nin',\n '$and',\n '$not',\n '$nor',\n '$or',\n '$exists',\n '$type',\n '$expr',\n '$jsonSchema',\n '$mod',\n '$regex',\n '$text',\n '$where',\n '$geoIntersects',\n '$geoWithin',\n '$near',\n '$nearSphere',\n '$all',\n '$elemMatch',\n '$size',\n '$bitsAllClear',\n '$bitsAllSet',\n '$bitsAnyClear',\n '$bitsAnySet',\n '$comment',\n '$elemMatch',\n '$meta',\n '$slice', // update\n '$currentDate',\n '$inc',\n '$min',\n '$max',\n '$mul',\n '$rename',\n '$set',\n '$setOnInsert',\n '$unset',\n '$addToSet',\n '$pop',\n '$pull',\n '$push',\n '$pullAll',\n '$each',\n '$position',\n '$slice',\n '$sort',\n '$bit', // aggregation pipeline stages\n '$addFields',\n '$bucket',\n '$bucketAuto',\n '$collStats',\n '$count',\n '$currentOp',\n '$facet',\n '$geoNear',\n '$graphLookup',\n '$group',\n '$indexStats',\n '$limit',\n '$listLocalSessions',\n '$listSessions',\n '$lookup',\n '$match',\n '$merge',\n '$out',\n '$planCacheStats',\n '$project',\n '$redact',\n '$replaceRoot',\n '$replaceWith',\n '$sample',\n '$set',\n '$skip',\n '$sort',\n '$sortByCount',\n '$unionWith',\n '$unset',\n '$unwind',\n '$setWindowFields', // aggregation pipeline operators\n '$abs',\n '$accumulator',\n '$acos',\n '$acosh',\n '$add',\n '$addToSet',\n '$allElementsTrue',\n '$and',\n '$anyElementTrue',\n '$arrayElemAt',\n '$arrayToObject',\n '$asin',\n '$asinh',\n '$atan',\n '$atan2',\n '$atanh',\n '$avg',\n '$binarySize',\n '$bsonSize',\n '$ceil',\n '$cmp',\n '$concat',\n '$concatArrays',\n '$cond',\n '$convert',\n '$cos',\n '$dateFromParts',\n '$dateToParts',\n '$dateFromString',\n '$dateToString',\n '$dayOfMonth',\n '$dayOfWeek',\n '$dayOfYear',\n '$degreesToRadians',\n '$divide',\n '$eq',\n '$exp',\n '$filter',\n '$first',\n '$floor',\n '$function',\n '$gt',\n '$gte',\n '$hour',\n '$ifNull',\n '$in',\n '$indexOfArray',\n '$indexOfBytes',\n '$indexOfCP',\n '$isArray',\n '$isNumber',\n '$isoDayOfWeek',\n '$isoWeek',\n '$isoWeekYear',\n '$last',\n '$last',\n '$let',\n '$literal',\n '$ln',\n '$log',\n '$log10',\n '$lt',\n '$lte',\n '$ltrim',\n '$map',\n '$max',\n '$mergeObjects',\n '$meta',\n '$min',\n '$millisecond',\n '$minute',\n '$mod',\n '$month',\n '$multiply',\n '$ne',\n '$not',\n '$objectToArray',\n '$or',\n '$pow',\n '$push',\n '$radiansToDegrees',\n '$range',\n '$reduce',\n '$regexFind',\n '$regexFindAll',\n '$regexMatch',\n '$replaceOne',\n '$replaceAll',\n '$reverseArray',\n '$round',\n '$rtrim',\n '$second',\n '$setDifference',\n '$setEquals',\n '$setIntersection',\n '$setIsSubset',\n '$setUnion',\n '$size',\n '$sin',\n '$slice',\n '$split',\n '$sqrt',\n '$stdDevPop',\n '$stdDevSamp',\n '$strcasecmp',\n '$strLenBytes',\n '$strLenCP',\n '$substr',\n '$substrBytes',\n '$substrCP',\n '$subtract',\n '$sum',\n '$switch',\n '$tan',\n '$toBool',\n '$toDate',\n '$toDecimal',\n '$toDouble',\n '$toInt',\n '$toLong',\n '$toObjectId',\n '$toString',\n '$toLower',\n '$toUpper',\n '$trim',\n '$trunc',\n '$type',\n '$week',\n '$year',\n '$zip',\n '$count',\n '$dateAdd',\n '$dateDiff',\n '$dateSubtract',\n '$dateTrunc',\n '$getField',\n '$rand',\n '$sampleRate',\n '$setField',\n '$unsetField', // aggregation pipeline query modifiers\n '$comment',\n '$explain',\n '$hint',\n '$max',\n '$maxTimeMS',\n '$min',\n '$orderby',\n '$query',\n '$returnKey',\n '$showDiskLoc',\n '$natural'\n ]\n var builtinFunctions = [\n 'ObjectId',\n 'Code',\n 'BinData',\n 'DBRef',\n 'Timestamp',\n 'NumberLong',\n 'NumberDecimal',\n 'MaxKey',\n 'MinKey',\n 'RegExp',\n 'ISODate',\n 'UUID'\n ]\n operators = operators.map(function (operator) {\n return operator.replace('$', '\\\\$')\n })\n var operatorsSource = '(?:' + operators.join('|') + ')\\\\b'\n Prism.languages.mongodb = Prism.languages.extend('javascript', {})\n Prism.languages.insertBefore('mongodb', 'string', {\n property: {\n pattern:\n /(?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)(?=\\s*:)/,\n greedy: true,\n inside: {\n keyword: RegExp('^([\\'\"])?' + operatorsSource + '(?:\\\\1)?$')\n }\n }\n })\n Prism.languages.mongodb.string.inside = {\n url: {\n // url pattern\n pattern:\n /https?:\\/\\/[-\\w@:%.+~#=]{1,256}\\.[a-z0-9()]{1,6}\\b[-\\w()@:%+.~#?&/=]*/i,\n greedy: true\n },\n entity: {\n // ipv4\n pattern:\n /\\b(?:(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}(?:[01]?\\d\\d?|2[0-4]\\d|25[0-5])\\b/,\n greedy: true\n }\n }\n Prism.languages.insertBefore('mongodb', 'constant', {\n builtin: {\n pattern: RegExp('\\\\b(?:' + builtinFunctions.join('|') + ')\\\\b'),\n alias: 'keyword'\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = monkey\nmonkey.displayName = 'monkey'\nmonkey.aliases = []\nfunction monkey(Prism) {\n Prism.languages.monkey = {\n comment: {\n pattern: /^#Rem\\s[\\s\\S]*?^#End|'.+/im,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"/,\n greedy: true\n },\n preprocessor: {\n pattern: /(^[ \\t]*)#.+/m,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n function: /\\b\\w+(?=\\()/,\n 'type-char': {\n pattern: /\\b[?%#$]/,\n alias: 'class-name'\n },\n number: {\n pattern:\n /((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:Abstract|Array|Bool|Case|Catch|Class|Const|Continue|Default|Eachin|Else|ElseIf|End|EndIf|Exit|Extends|Extern|False|Field|Final|Float|For|Forever|Function|Global|If|Implements|Import|Inline|Int|Interface|Local|Method|Module|New|Next|Null|Object|Private|Property|Public|Repeat|Return|Select|Self|Step|Strict|String|Super|Then|Throw|To|True|Try|Until|Void|Wend|While)\\b/i,\n operator:\n /\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,\n punctuation: /[.,:;()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = moonscript\nmoonscript.displayName = 'moonscript'\nmoonscript.aliases = ['moon']\nfunction moonscript(Prism) {\n Prism.languages.moonscript = {\n comment: /--.*/,\n string: [\n {\n pattern: /'[^']*'|\\[(=*)\\[[\\s\\S]*?\\]\\1\\]/,\n greedy: true\n },\n {\n pattern: /\"[^\"]*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /#\\{[^{}]*\\}/,\n inside: {\n moonscript: {\n pattern: /(^#\\{)[\\s\\S]+(?=\\})/,\n lookbehind: true,\n inside: null // see beow\n },\n 'interpolation-punctuation': {\n pattern: /#\\{|\\}/,\n alias: 'punctuation'\n }\n }\n }\n }\n }\n ],\n 'class-name': [\n {\n pattern: /(\\b(?:class|extends)[ \\t]+)\\w+/,\n lookbehind: true\n }, // class-like names start with a capital letter\n /\\b[A-Z]\\w*/\n ],\n keyword:\n /\\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\\b/,\n variable: /@@?\\w*/,\n property: {\n pattern: /\\b(?!\\d)\\w+(?=:)|(:)(?!\\d)\\w+/,\n lookbehind: true\n },\n function: {\n pattern:\n /\\b(?:_G|_VERSION|assert|collectgarbage|coroutine\\.(?:create|resume|running|status|wrap|yield)|debug\\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n boolean: /\\b(?:false|true)\\b/,\n number:\n /(?:\\B\\.\\d+|\\b\\d+\\.\\d+|\\b\\d+(?=[eE]))(?:[eE][-+]?\\d+)?\\b|\\b(?:0x[a-fA-F\\d]+|\\d+)(?:U?LL)?\\b/,\n operator:\n /\\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\\.\\.)=?|[:#^]|\\b(?:and|or)\\b=?|\\b(?:not)\\b/,\n punctuation: /[.,()[\\]{}\\\\]/\n }\n Prism.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside =\n Prism.languages.moonscript\n Prism.languages.moon = Prism.languages.moonscript\n}\n","'use strict'\n\nmodule.exports = n1ql\nn1ql.displayName = 'n1ql'\nn1ql.aliases = []\nfunction n1ql(Prism) {\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/index.html\n Prism.languages.n1ql = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?(?:$|\\*\\/)|--.*/,\n greedy: true\n },\n string: {\n pattern: /([\"'])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\]|\\1\\1)*\\1/,\n greedy: true\n },\n identifier: {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`]|``)*`/,\n greedy: true\n },\n parameter: /\\$[\\w.]+/,\n // https://docs.couchbase.com/server/current/n1ql/n1ql-language-reference/reservedwords.html#n1ql-reserved-words\n keyword:\n /\\b(?:ADVISE|ALL|ALTER|ANALYZE|AS|ASC|AT|BEGIN|BINARY|BOOLEAN|BREAK|BUCKET|BUILD|BY|CALL|CAST|CLUSTER|COLLATE|COLLECTION|COMMIT|COMMITTED|CONNECT|CONTINUE|CORRELATE|CORRELATED|COVER|CREATE|CURRENT|DATABASE|DATASET|DATASTORE|DECLARE|DECREMENT|DELETE|DERIVED|DESC|DESCRIBE|DISTINCT|DO|DROP|EACH|ELEMENT|EXCEPT|EXCLUDE|EXECUTE|EXPLAIN|FETCH|FILTER|FLATTEN|FLUSH|FOLLOWING|FOR|FORCE|FROM|FTS|FUNCTION|GOLANG|GRANT|GROUP|GROUPS|GSI|HASH|HAVING|IF|IGNORE|ILIKE|INCLUDE|INCREMENT|INDEX|INFER|INLINE|INNER|INSERT|INTERSECT|INTO|IS|ISOLATION|JAVASCRIPT|JOIN|KEY|KEYS|KEYSPACE|KNOWN|LANGUAGE|LAST|LEFT|LET|LETTING|LEVEL|LIMIT|LSM|MAP|MAPPING|MATCHED|MATERIALIZED|MERGE|MINUS|MISSING|NAMESPACE|NEST|NL|NO|NTH_VALUE|NULL|NULLS|NUMBER|OBJECT|OFFSET|ON|OPTION|OPTIONS|ORDER|OTHERS|OUTER|OVER|PARSE|PARTITION|PASSWORD|PATH|POOL|PRECEDING|PREPARE|PRIMARY|PRIVATE|PRIVILEGE|PROBE|PROCEDURE|PUBLIC|RANGE|RAW|REALM|REDUCE|RENAME|RESPECT|RETURN|RETURNING|REVOKE|RIGHT|ROLE|ROLLBACK|ROW|ROWS|SATISFIES|SAVEPOINT|SCHEMA|SCOPE|SELECT|SELF|SEMI|SET|SHOW|SOME|START|STATISTICS|STRING|SYSTEM|TIES|TO|TRAN|TRANSACTION|TRIGGER|TRUNCATE|UNBOUNDED|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNSET|UPDATE|UPSERT|USE|USER|USING|VALIDATE|VALUE|VALUES|VIA|VIEW|WHERE|WHILE|WINDOW|WITH|WORK|XOR)\\b/i,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:FALSE|TRUE)\\b/i,\n number: /(?:\\b\\d+\\.|\\B\\.)\\d+e[+\\-]?\\d+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/%]|!=|==?|\\|\\||<[>=]?|>=?|\\b(?:AND|ANY|ARRAY|BETWEEN|CASE|ELSE|END|EVERY|EXISTS|FIRST|IN|LIKE|NOT|OR|THEN|VALUED|WHEN|WITHIN)\\b/i,\n punctuation: /[;[\\](),.{}:]/\n }\n}\n","'use strict'\n\nmodule.exports = n4js\nn4js.displayName = 'n4js'\nn4js.aliases = ['n4jsd']\nfunction n4js(Prism) {\n Prism.languages.n4js = Prism.languages.extend('javascript', {\n // Keywords from N4JS language spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html\n keyword:\n /\\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/\n })\n Prism.languages.insertBefore('n4js', 'constant', {\n // Annotations in N4JS spec: https://numberfour.github.io/n4js/spec/N4JSSpec.html#_annotations\n annotation: {\n pattern: /@+\\w+/,\n alias: 'operator'\n }\n })\n Prism.languages.n4jsd = Prism.languages.n4js\n}\n","'use strict'\n\nmodule.exports = nand2tetrisHdl\nnand2tetrisHdl.displayName = 'nand2tetrisHdl'\nnand2tetrisHdl.aliases = []\nfunction nand2tetrisHdl(Prism) {\n Prism.languages['nand2tetris-hdl'] = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n keyword: /\\b(?:BUILTIN|CHIP|CLOCKED|IN|OUT|PARTS)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: /\\b[A-Za-z][A-Za-z0-9]*(?=\\()/,\n number: /\\b\\d+\\b/,\n operator: /=|\\.\\./,\n punctuation: /[{}[\\];(),:]/\n }\n}\n","'use strict'\n\nmodule.exports = naniscript\nnaniscript.displayName = 'naniscript'\nnaniscript.aliases = []\nfunction naniscript(Prism) {\n ;(function (Prism) {\n var expressionDef = /\\{[^\\r\\n\\[\\]{}]*\\}/\n var params = {\n 'quoted-string': {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n alias: 'operator'\n },\n 'command-param-id': {\n pattern: /(\\s)\\w+:/,\n lookbehind: true,\n alias: 'property'\n },\n 'command-param-value': [\n {\n pattern: expressionDef,\n alias: 'selector'\n },\n {\n pattern: /([\\t ])\\S+/,\n lookbehind: true,\n greedy: true,\n alias: 'operator'\n },\n {\n pattern: /\\S(?:.*\\S)?/,\n alias: 'operator'\n }\n ]\n }\n Prism.languages.naniscript = {\n // ; ...\n comment: {\n pattern: /^([\\t ]*);.*/m,\n lookbehind: true\n },\n // > ...\n // Define is a control line starting with '>' followed by a word, a space and a text.\n define: {\n pattern: /^>.+/m,\n alias: 'tag',\n inside: {\n value: {\n pattern: /(^>\\w+[\\t ]+)(?!\\s)[^{}\\r\\n]+/,\n lookbehind: true,\n alias: 'operator'\n },\n key: {\n pattern: /(^>)\\w+/,\n lookbehind: true\n }\n }\n },\n // # ...\n label: {\n pattern: /^([\\t ]*)#[\\t ]*\\w+[\\t ]*$/m,\n lookbehind: true,\n alias: 'regex'\n },\n command: {\n pattern: /^([\\t ]*)@\\w+(?=[\\t ]|$).*/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n 'command-name': /^@\\w+/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'command-params': {\n pattern: /\\s*\\S[\\s\\S]*/,\n inside: params\n }\n }\n },\n // Generic is any line that doesn't start with operators: ;>#@\n 'generic-text': {\n pattern: /(^[ \\t]*)[^#@>;\\s].*/m,\n lookbehind: true,\n alias: 'punctuation',\n inside: {\n // \\{ ... \\} ... \\[ ... \\] ... \\\"\n 'escaped-char': /\\\\[{}\\[\\]\"]/,\n expression: {\n pattern: expressionDef,\n greedy: true,\n alias: 'selector'\n },\n 'inline-command': {\n pattern: /\\[[\\t ]*\\w[^\\r\\n\\[\\]]*\\]/,\n greedy: true,\n alias: 'function',\n inside: {\n 'command-params': {\n pattern: /(^\\[[\\t ]*\\w+\\b)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n inside: params\n },\n 'command-param-name': {\n pattern: /^(\\[[\\t ]*)\\w+/,\n lookbehind: true,\n alias: 'name'\n },\n 'start-stop-char': /[\\[\\]]/\n }\n }\n }\n }\n }\n Prism.languages.nani = Prism.languages['naniscript']\n /** @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token */\n /**\n * This hook is used to validate generic-text tokens for balanced brackets.\n * Mark token as bad-line when contains not balanced brackets: {},[]\n */\n Prism.hooks.add('after-tokenize', function (env) {\n /** @type {(Token | string)[]} */\n var tokens = env.tokens\n tokens.forEach(function (token) {\n if (typeof token !== 'string' && token.type === 'generic-text') {\n var content = getTextContent(token)\n if (!isBracketsBalanced(content)) {\n token.type = 'bad-line'\n token.content = content\n }\n }\n })\n })\n /**\n * @param {string} input\n * @returns {boolean}\n */\n function isBracketsBalanced(input) {\n var brackets = '[]{}'\n var stack = []\n for (var i = 0; i < input.length; i++) {\n var bracket = input[i]\n var bracketsIndex = brackets.indexOf(bracket)\n if (bracketsIndex !== -1) {\n if (bracketsIndex % 2 === 0) {\n stack.push(bracketsIndex + 1)\n } else if (stack.pop() !== bracketsIndex) {\n return false\n }\n }\n }\n return stack.length === 0\n }\n /**\n * @param {string | Token | (string | Token)[]} token\n * @returns {string}\n */\n function getTextContent(token) {\n if (typeof token === 'string') {\n return token\n } else if (Array.isArray(token)) {\n return token.map(getTextContent).join('')\n } else {\n return getTextContent(token.content)\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = nasm\nnasm.displayName = 'nasm'\nnasm.aliases = []\nfunction nasm(Prism) {\n Prism.languages.nasm = {\n comment: /;.*$/m,\n string: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n label: {\n pattern: /(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,\n lookbehind: true,\n alias: 'function'\n },\n keyword: [\n /\\[?BITS (?:16|32|64)\\]?/,\n {\n pattern: /(^\\s*)section\\s*[a-z.]+:?/im,\n lookbehind: true\n },\n /(?:extern|global)[^;\\r\\n]*/i,\n /(?:CPU|DEFAULT|FLOAT).*$/m\n ],\n register: {\n pattern:\n /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s)\\b/i,\n alias: 'variable'\n },\n number:\n /(?:\\b|(?=\\$))(?:0[hx](?:\\.[\\da-f]+|[\\da-f]+(?:\\.[\\da-f]+)?)(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-\\/%<>=&|$!]/\n }\n}\n","'use strict'\n\nmodule.exports = neon\nneon.displayName = 'neon'\nneon.aliases = []\nfunction neon(Prism) {\n Prism.languages.neon = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n datetime: {\n pattern:\n /(^|[[{(=:,\\s])\\d\\d\\d\\d-\\d\\d?-\\d\\d?(?:(?:[Tt]| +)\\d\\d?:\\d\\d:\\d\\d(?:\\.\\d*)? *(?:Z|[-+]\\d\\d?(?::?\\d\\d)?)?)?(?=$|[\\]}),\\s])/,\n lookbehind: true,\n alias: 'number'\n },\n key: {\n pattern: /(^|[[{(,\\s])[^,:=[\\]{}()'\"\\s]+(?=\\s*:(?:$|[\\]}),\\s])|\\s*=)/,\n lookbehind: true,\n alias: 'atrule'\n },\n number: {\n pattern:\n /(^|[[{(=:,\\s])[+-]?(?:0x[\\da-fA-F]+|0o[0-7]+|0b[01]+|(?:\\d+(?:\\.\\d*)?|\\.?\\d+)(?:[eE][+-]?\\d+)?)(?=$|[\\]}),:=\\s])/,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[[{(=:,\\s])(?:false|no|true|yes)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true\n },\n null: {\n pattern: /(^|[[{(=:,\\s])(?:null)(?=$|[\\]}),:=\\s])/i,\n lookbehind: true,\n alias: 'keyword'\n },\n string: {\n pattern:\n /(^|[[{(=:,\\s])(?:('''|\"\"\")\\r?\\n(?:(?:[^\\r\\n]|\\r?\\n(?![\\t ]*\\2))*\\r?\\n)?[\\t ]*\\2|'[^'\\r\\n]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/,\n lookbehind: true,\n greedy: true\n },\n literal: {\n pattern:\n /(^|[[{(=:,\\s])(?:[^#\"',:=[\\]{}()\\s`-]|[:-][^\"',=[\\]{}()\\s])(?:[^,:=\\]})(\\s]|:(?![\\s,\\]})]|$)|[ \\t]+[^#,:=\\]})(\\s])*/,\n lookbehind: true,\n alias: 'string'\n },\n punctuation: /[,:=[\\]{}()-]/\n }\n}\n","'use strict'\n\nmodule.exports = nevod\nnevod.displayName = 'nevod'\nnevod.aliases = []\nfunction nevod(Prism) {\n Prism.languages.nevod = {\n comment: /\\/\\/.*|(?:\\/\\*[\\s\\S]*?(?:\\*\\/|$))/,\n string: {\n pattern: /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))!?\\*?/,\n greedy: true,\n inside: {\n 'string-attrs': /!$|!\\*$|\\*$/\n }\n },\n namespace: {\n pattern: /(@namespace\\s+)[a-zA-Z0-9\\-.]+(?=\\s*\\{)/,\n lookbehind: true\n },\n pattern: {\n pattern:\n /(@pattern\\s+)?#?[a-zA-Z0-9\\-.]+(?:\\s*\\(\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]+\\s*(?:,\\s*(?:~\\s*)?[a-zA-Z0-9\\-.]*)*\\))?(?=\\s*=)/,\n lookbehind: true,\n inside: {\n 'pattern-name': {\n pattern: /^#?[a-zA-Z0-9\\-.]+/,\n alias: 'class-name'\n },\n fields: {\n pattern: /\\(.*\\)/,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n punctuation: /[,()]/,\n operator: {\n pattern: /~/,\n alias: 'field-hidden-mark'\n }\n }\n }\n }\n },\n search: {\n pattern: /(@search\\s+|#)[a-zA-Z0-9\\-.]+(?:\\.\\*)?(?=\\s*;)/,\n alias: 'function',\n lookbehind: true\n },\n keyword:\n /@(?:having|inside|namespace|outside|pattern|require|search|where)\\b/,\n 'standard-pattern': {\n pattern:\n /\\b(?:Alpha|AlphaNum|Any|Blank|End|LineBreak|Num|NumAlpha|Punct|Space|Start|Symbol|Word|WordBreak)\\b(?:\\([a-zA-Z0-9\\-.,\\s+]*\\))?/,\n inside: {\n 'standard-pattern-name': {\n pattern: /^[a-zA-Z0-9\\-.]+/,\n alias: 'builtin'\n },\n quantifier: {\n pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n alias: 'number'\n },\n 'standard-pattern-attr': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'builtin'\n },\n punctuation: /[,()]/\n }\n },\n quantifier: {\n pattern: /\\b\\d+(?:\\s*\\+|\\s*-\\s*\\d+)?(?!\\w)/,\n alias: 'number'\n },\n operator: [\n {\n pattern: /=/,\n alias: 'pattern-def'\n },\n {\n pattern: /&/,\n alias: 'conjunction'\n },\n {\n pattern: /~/,\n alias: 'exception'\n },\n {\n pattern: /\\?/,\n alias: 'optionality'\n },\n {\n pattern: /[[\\]]/,\n alias: 'repetition'\n },\n {\n pattern: /[{}]/,\n alias: 'variation'\n },\n {\n pattern: /[+_]/,\n alias: 'sequence'\n },\n {\n pattern: /\\.{2,3}/,\n alias: 'span'\n }\n ],\n 'field-capture': [\n {\n pattern:\n /([a-zA-Z0-9\\-.]+\\s*\\()\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+(?:\\s*,\\s*[a-zA-Z0-9\\-.]+\\s*:\\s*[a-zA-Z0-9\\-.]+)*(?=\\s*\\))/,\n lookbehind: true,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n colon: /:/\n }\n },\n {\n pattern: /[a-zA-Z0-9\\-.]+\\s*:/,\n inside: {\n 'field-name': {\n pattern: /[a-zA-Z0-9\\-.]+/,\n alias: 'variable'\n },\n colon: /:/\n }\n }\n ],\n punctuation: /[:;,()]/,\n name: /[a-zA-Z0-9\\-.]+/\n }\n}\n","'use strict'\n\nmodule.exports = nginx\nnginx.displayName = 'nginx'\nnginx.aliases = []\nfunction nginx(Prism) {\n ;(function (Prism) {\n var variable =\n /\\$(?:\\w[a-z\\d]*(?:_[^\\x00-\\x1F\\s\"'\\\\()$]*)?|\\{[^}\\s\"'\\\\]+\\})/i\n Prism.languages.nginx = {\n comment: {\n pattern: /(^|[\\s{};])#.*/,\n lookbehind: true,\n greedy: true\n },\n directive: {\n pattern:\n /(^|\\s)\\w(?:[^;{}\"'\\\\\\s]|\\\\.|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\s+(?:#.*(?!.)|(?![#\\s])))*?(?=\\s*[;{])/,\n lookbehind: true,\n greedy: true,\n inside: {\n string: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\\\\\)*)(?:\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*')/,\n lookbehind: true,\n greedy: true,\n inside: {\n escape: {\n pattern: /\\\\[\"'\\\\nrt]/,\n alias: 'entity'\n },\n variable: variable\n }\n },\n comment: {\n pattern: /(\\s)#.*/,\n lookbehind: true,\n greedy: true\n },\n keyword: {\n pattern: /^\\S+/,\n greedy: true\n },\n // other patterns\n boolean: {\n pattern: /(\\s)(?:off|on)(?!\\S)/,\n lookbehind: true\n },\n number: {\n pattern: /(\\s)\\d+[a-z]*(?!\\S)/i,\n lookbehind: true\n },\n variable: variable\n }\n },\n punctuation: /[{};]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = nim\nnim.displayName = 'nim'\nnim.aliases = []\nfunction nim(Prism) {\n Prism.languages.nim = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n // Double-quoted strings can be prefixed by an identifier (Generalized raw string literals)\n pattern:\n /(?:\\b(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")/,\n greedy: true\n },\n char: {\n // Character literals are handled specifically to prevent issues with numeric type suffixes\n pattern: /'(?:\\\\(?:\\d+|x[\\da-fA-F]{0,2}|.)|[^'])'/,\n greedy: true\n },\n function: {\n pattern:\n /(?:(?!\\d)(?:\\w|\\\\x[89a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,\n greedy: true,\n inside: {\n operator: /\\*$/\n }\n },\n // We don't want to highlight operators (and anything really) inside backticks\n identifier: {\n pattern: /`[^`\\r\\n]+`/,\n greedy: true,\n inside: {\n punctuation: /`/\n }\n },\n // The negative look ahead prevents wrong highlighting of the .. operator\n number:\n /\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,\n keyword:\n /\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\n operator: {\n // Look behind and look ahead prevent wrong highlighting of punctuations [. .] {. .} (. .)\n // but allow the slice operator .. to take precedence over them\n // One can define his own operators in Nim so all combination of operators might be an operator.\n pattern:\n /(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|in|is|isnot|mod|not|notin|of|or|shl|shr|xor)\\b)/m,\n lookbehind: true\n },\n punctuation: /[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/\n }\n}\n","'use strict'\n\nmodule.exports = nix\nnix.displayName = 'nix'\nnix.aliases = []\nfunction nix(Prism) {\n Prism.languages.nix = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|#.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,\n greedy: true,\n inside: {\n interpolation: {\n // The lookbehind ensures the ${} is not preceded by \\ or ''\n pattern: /(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^{}]|\\{[^}]*\\})*\\}/,\n lookbehind: true,\n inside: null // see below\n }\n }\n },\n url: [\n /\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,\n {\n pattern:\n /([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,\n lookbehind: true\n }\n ],\n antiquotation: {\n pattern: /\\$(?=\\{)/,\n alias: 'important'\n },\n number: /\\b\\d+\\b/,\n keyword: /\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\n function:\n /\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:Tarball|url)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\n boolean: /\\b(?:false|true)\\b/,\n operator: /[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,\n punctuation: /[{}()[\\].,:;]/\n }\n Prism.languages.nix.string.inside.interpolation.inside = Prism.languages.nix\n}\n","'use strict'\n\nmodule.exports = nsis\nnsis.displayName = 'nsis'\nnsis.aliases = []\nfunction nsis(Prism) {\n /**\n * Original by Jan T. Sott (http://github.com/idleberg)\n *\n * Includes all commands and plug-ins shipped with NSIS 3.08\n */\n Prism.languages.nsis = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword: {\n pattern:\n /(^[\\t ]*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|BG(?:Font|Gradient|Image)|Banner|BrandingText|BringToFront|CRCCheck|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|Seek|Write|WriteByte|WriteUTF16LE|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DLLVersion(?:Local)?|DlgItem|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|NSISdl|Name|Nop|OutFile|PE(?:DllCharacteristics|SubsysVer)|Page(?:Callbacks)?|Pop|Push|Quit|RMDir|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|UnRegDLL|Unicode|UninstPage|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UserInfo|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|Var|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle|ns(?:Dialogs|Exec))\\b/m,\n lookbehind: true\n },\n property:\n /\\b(?:ARCHIVE|FILE_(?:ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK(?:(?:CR|CU|LM)(?:32|64)?|DD|PD|U)|HKEY_(?:CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(?:ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(?:ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY|admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user)\\b/,\n constant: /\\$\\{[!\\w\\.:\\^-]+\\}|\\$\\([!\\w\\.:\\^-]+\\)/,\n variable: /\\$\\w[\\w\\.]*/,\n number: /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n operator: /--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,\n punctuation: /[{}[\\];(),.:]/,\n important: {\n pattern:\n /(^[\\t ]*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,\n lookbehind: true\n }\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = objectivec\nobjectivec.displayName = 'objectivec'\nobjectivec.aliases = ['objc']\nfunction objectivec(Prism) {\n Prism.register(refractorC)\n Prism.languages.objectivec = Prism.languages.extend('c', {\n string: {\n pattern: /@?\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,\n operator: /-[->]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/\n })\n delete Prism.languages.objectivec['class-name']\n Prism.languages.objc = Prism.languages.objectivec\n}\n","'use strict'\n\nmodule.exports = ocaml\nocaml.displayName = 'ocaml'\nocaml.aliases = []\nfunction ocaml(Prism) {\n // https://ocaml.org/manual/lex.html\n Prism.languages.ocaml = {\n comment: {\n pattern: /\\(\\*[\\s\\S]*?\\*\\)/,\n greedy: true\n },\n char: {\n pattern: /'(?:[^\\\\\\r\\n']|\\\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,\n greedy: true\n },\n string: [\n {\n pattern: /\"(?:\\\\(?:[\\s\\S]|\\r\\n)|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n {\n pattern: /\\{([a-z_]*)\\|[\\s\\S]*?\\|\\1\\}/,\n greedy: true\n }\n ],\n number: [\n // binary and octal\n /\\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\\b/i, // hexadecimal\n /\\b0x[a-f0-9][a-f0-9_]*(?:\\.[a-f0-9_]*)?(?:p[+-]?\\d[\\d_]*)?(?!\\w)/i, // decimal\n /\\b\\d[\\d_]*(?:\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?(?!\\w)/i\n ],\n directive: {\n pattern: /\\B#\\w+/,\n alias: 'property'\n },\n label: {\n pattern: /\\B~\\w+/,\n alias: 'property'\n },\n 'type-variable': {\n pattern: /\\B'\\w+/,\n alias: 'function'\n },\n variant: {\n pattern: /`\\w+/,\n alias: 'symbol'\n },\n // For the list of keywords and operators,\n // see: http://caml.inria.fr/pub/docs/manual-ocaml/lex.html#sec84\n keyword:\n /\\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n 'operator-like-punctuation': {\n pattern: /\\[[<>|]|[>|]\\]|\\{<|>\\}/,\n alias: 'punctuation'\n },\n // Custom operators are allowed\n operator:\n /\\.[.~]|:[=>]|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\\b/,\n punctuation: /;;|::|[(){}\\[\\].,:;#]|\\b_\\b/\n }\n}\n","'use strict'\nvar refractorC = require('./c.js')\nmodule.exports = opencl\nopencl.displayName = 'opencl'\nopencl.aliases = []\nfunction opencl(Prism) {\n Prism.register(refractorC)\n ;(function (Prism) {\n /* OpenCL kernel language */\n Prism.languages.opencl = Prism.languages.extend('c', {\n // Extracted from the official specs (2.0) and http://streamcomputing.eu/downloads/?opencl.lang (opencl-keywords, opencl-types) and http://sourceforge.net/tracker/?func=detail&aid=2957794&group_id=95717&atid=612384 (Words2, partly Words3)\n keyword:\n /\\b(?:(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|__attribute__|auto|(?:bool|u?(?:char|int|long|short)|half|quad)(?:2|3|4|8|16)?|break|case|complex|const|continue|(?:double|float)(?:16(?:x(?:1|2|4|8|16))?|1x(?:1|2|4|8|16)|2(?:x(?:1|2|4|8|16))?|3|4(?:x(?:1|2|4|8|16))?|8(?:x(?:1|2|4|8|16))?)?|default|do|else|enum|extern|for|goto|if|imaginary|inline|packed|pipe|register|restrict|return|signed|sizeof|static|struct|switch|typedef|uniform|union|unsigned|void|volatile|while)\\b/,\n // Extracted from http://streamcomputing.eu/downloads/?opencl.lang (opencl-const)\n // Math Constants: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/mathConstants.html\n // Macros and Limits: https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/macroLimits.html\n number:\n /(?:\\b0x(?:[\\da-f]+(?:\\.[\\da-f]*)?|\\.[\\da-f]+)(?:p[+-]?\\d+)?|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)[fuhl]{0,4}/i,\n boolean: /\\b(?:false|true)\\b/,\n 'constant-opencl-kernel': {\n pattern:\n /\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:GLOBAL|LOCAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT|HALF)_(?:DIG|EPSILON|(?:MAX|MIN)(?:(?:_10)?_EXP)?|MANT_DIG)|FLT_RADIX|HUGE_VALF?|(?:INT|LONG|SCHAR|SHRT)_(?:MAX|MIN)|INFINITY|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:2|10)E?|PI(?:_[24])?|SQRT(?:1_2|2))(?:_F|_H)?|NAN|(?:UCHAR|UINT|ULONG|USHRT)_MAX)\\b/,\n alias: 'constant'\n }\n })\n Prism.languages.insertBefore('opencl', 'class-name', {\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/scalarDataTypes.html\n // https://www.khronos.org/registry/OpenCL/sdk/2.1/docs/man/xhtml/otherDataTypes.html\n 'builtin-type': {\n pattern:\n /\\b(?:_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|cl_(?:image_format|mem_fence_flags)|clk_event_t|event_t|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|intptr_t|ndrange_t|ptrdiff_t|queue_t|reserve_id_t|sampler_t|size_t|uintptr_t)\\b/,\n alias: 'keyword'\n }\n })\n var attributes = {\n // Extracted from http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-types and opencl-host)\n 'type-opencl-host': {\n pattern:\n /\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|int|long|short)|double|float)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,\n alias: 'keyword'\n },\n 'boolean-opencl-host': {\n pattern: /\\bCL_(?:FALSE|TRUE)\\b/,\n alias: 'boolean'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-const)\n 'constant-opencl-host': {\n pattern:\n /\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:8|16|24|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,\n alias: 'constant'\n },\n // Extracted from cl.h (2.0) and http://streamcomputing.eu/downloads/?opencl_host.lang (opencl-host)\n 'function-opencl-host': {\n pattern:\n /\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,\n alias: 'function'\n }\n }\n /* OpenCL host API */\n Prism.languages.insertBefore('c', 'keyword', attributes) // C++ includes everything from the OpenCL C host API plus the classes defined in cl2.h\n if (Prism.languages.cpp) {\n // Extracted from doxygen class list http://github.khronos.org/OpenCL-CLHPP/annotated.html\n attributes['type-opencl-host-cpp'] = {\n pattern:\n /\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|Sampler|UserEvent)\\b/,\n alias: 'keyword'\n }\n Prism.languages.insertBefore('cpp', 'keyword', attributes)\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = openqasm\nopenqasm.displayName = 'openqasm'\nopenqasm.aliases = ['qasm']\nfunction openqasm(Prism) {\n // https://qiskit.github.io/openqasm/grammar/index.html\n Prism.languages.openqasm = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n string: {\n pattern: /\"[^\"\\r\\n\\t]*\"|'[^'\\r\\n\\t]*'/,\n greedy: true\n },\n keyword:\n /\\b(?:CX|OPENQASM|U|barrier|boxas|boxto|break|const|continue|ctrl|def|defcal|defcalgrammar|delay|else|end|for|gate|gphase|if|in|include|inv|kernel|lengthof|let|measure|pow|reset|return|rotary|stretchinf|while)\\b|#pragma\\b/,\n 'class-name':\n /\\b(?:angle|bit|bool|creg|fixed|float|int|length|qreg|qubit|stretch|uint)\\b/,\n function: /\\b(?:cos|exp|ln|popcount|rotl|rotr|sin|sqrt|tan)\\b(?=\\s*\\()/,\n constant: /\\b(?:euler|pi|tau)\\b|π|𝜏|ℇ/,\n number: {\n pattern:\n /(^|[^.\\w$])(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?(?:dt|ns|us|µs|ms|s)?/i,\n lookbehind: true\n },\n operator: /->|>>=?|<<=?|&&|\\|\\||\\+\\+|--|[!=<>&|~^+\\-*/%]=?|@/,\n punctuation: /[(){}\\[\\];,:.]/\n }\n Prism.languages.qasm = Prism.languages.openqasm\n}\n","'use strict'\n\nmodule.exports = oz\noz.displayName = 'oz'\noz.aliases = []\nfunction oz(Prism) {\n Prism.languages.oz = {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,\n greedy: true\n },\n atom: {\n pattern: /'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n alias: 'builtin'\n },\n keyword:\n /\\$|\\[\\]|\\b(?:_|at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\n function: [\n /\\b[a-z][A-Za-z\\d]*(?=\\()/,\n {\n pattern: /(\\{)[A-Z][A-Za-z\\d]*\\b/,\n lookbehind: true\n }\n ],\n number:\n /\\b(?:0[bx][\\da-f]+|\\d+(?:\\.\\d*)?(?:e~?\\d+)?)\\b|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,\n variable: /`(?:[^`\\\\]|\\\\.)+`/,\n 'attr-name': /\\b\\w+(?=[ \\t]*:(?![:=]))/,\n operator:\n /:(?:=|::?)|<[-:=]?|=(?:=|<?:?)|>=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,\n punctuation: /[\\[\\](){}.:;?]/\n }\n}\n","'use strict'\n\nmodule.exports = parigp\nparigp.displayName = 'parigp'\nparigp.aliases = []\nfunction parigp(Prism) {\n Prism.languages.parigp = {\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n greedy: true\n },\n // PARI/GP does not care about white spaces at all\n // so let's process the keywords to build an appropriate regexp\n // (e.g. \"b *r *e *a *k\", etc.)\n keyword: (function () {\n var keywords = [\n 'breakpoint',\n 'break',\n 'dbg_down',\n 'dbg_err',\n 'dbg_up',\n 'dbg_x',\n 'forcomposite',\n 'fordiv',\n 'forell',\n 'forpart',\n 'forprime',\n 'forstep',\n 'forsubgroup',\n 'forvec',\n 'for',\n 'iferr',\n 'if',\n 'local',\n 'my',\n 'next',\n 'return',\n 'until',\n 'while'\n ]\n keywords = keywords\n .map(function (keyword) {\n return keyword.split('').join(' *')\n })\n .join('|')\n return RegExp('\\\\b(?:' + keywords + ')\\\\b')\n })(),\n function: /\\b\\w(?:[\\w ]*\\w)?(?= *\\()/,\n number: {\n // The lookbehind and the negative lookahead prevent from breaking the .. operator\n pattern:\n /((?:\\. *\\. *)?)(?:\\b\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *(?:[+-] *)?\\d(?: *\\d)*)?/i,\n lookbehind: true\n },\n operator:\n /\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?: *>|(?: *<)?(?: *=)?)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,\n punctuation: /[\\[\\]{}().,:;|]/\n }\n}\n","'use strict'\n\nmodule.exports = parser\nparser.displayName = 'parser'\nparser.aliases = []\nfunction parser(Prism) {\n ;(function (Prism) {\n var parser = (Prism.languages.parser = Prism.languages.extend('markup', {\n keyword: {\n pattern:\n /(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,\n lookbehind: true\n },\n variable: {\n pattern: /(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n punctuation: /\\.|:+/\n }\n },\n function: {\n pattern: /(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /(^@)(?:GET_|SET_)/,\n lookbehind: true\n },\n punctuation: /\\.|:+/\n }\n },\n escape: {\n pattern: /\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,\n alias: 'builtin'\n },\n punctuation: /[\\[\\](){};]/\n }))\n parser = Prism.languages.insertBefore('parser', 'keyword', {\n 'parser-comment': {\n pattern: /(\\s)#.*/,\n lookbehind: true,\n alias: 'comment'\n },\n expression: {\n // Allow for 3 levels of depth\n pattern: /(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,\n greedy: true,\n lookbehind: true,\n inside: {\n string: {\n pattern: /(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,\n lookbehind: true\n },\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?)\\b/i,\n escape: parser.escape,\n operator:\n /[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,\n punctuation: parser.punctuation\n }\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n expression: parser.expression,\n keyword: parser.keyword,\n variable: parser.variable,\n function: parser.function,\n escape: parser.escape,\n 'parser-punctuation': {\n pattern: parser.punctuation,\n alias: 'punctuation'\n }\n },\n parser['tag'].inside['attr-value']\n )\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pascal\npascal.displayName = 'pascal'\npascal.aliases = ['objectpascal']\nfunction pascal(Prism) {\n // Based on Free Pascal\n /* TODO\nSupport inline asm ?\n*/\n Prism.languages.pascal = {\n directive: {\n pattern: /\\{\\$[\\s\\S]*?\\}/,\n greedy: true,\n alias: ['marco', 'property']\n },\n comment: {\n pattern: /\\(\\*[\\s\\S]*?\\*\\)|\\{[\\s\\S]*?\\}|\\/\\/.*/,\n greedy: true\n },\n string: {\n pattern: /(?:'(?:''|[^'\\r\\n])*'(?!')|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,\n greedy: true\n },\n asm: {\n pattern: /(\\basm\\b)[\\s\\S]+?(?=\\bend\\s*[;[])/i,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n keyword: [\n {\n // Turbo Pascal\n pattern:\n /(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,\n lookbehind: true\n },\n {\n // Free Pascal\n pattern: /(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,\n lookbehind: true\n },\n {\n // Object Pascal\n pattern:\n /(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,\n lookbehind: true\n },\n {\n // Modifiers\n pattern:\n /(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,\n lookbehind: true\n }\n ],\n number: [\n // Hexadecimal, octal and binary\n /(?:[&%]\\d+|\\$[a-f\\d]+)/i, // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i\n ],\n operator: [\n /\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/,\n {\n pattern:\n /(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,\n lookbehind: true\n }\n ],\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.]/\n }\n Prism.languages.pascal.asm.inside = Prism.languages.extend('pascal', {\n asm: undefined,\n keyword: undefined,\n operator: undefined\n })\n Prism.languages.objectpascal = Prism.languages.pascal\n}\n","'use strict'\n\nmodule.exports = pascaligo\npascaligo.displayName = 'pascaligo'\npascaligo.aliases = []\nfunction pascaligo(Prism) {\n ;(function (Prism) {\n // Pascaligo is a layer 2 smart contract language for the tezos blockchain\n var braces = /\\((?:[^()]|\\((?:[^()]|\\([^()]*\\))*\\))*\\)/.source\n var type = /(?:\\b\\w+(?:<braces>)?|<braces>)/.source.replace(\n /<braces>/g,\n function () {\n return braces\n }\n )\n var pascaligo = (Prism.languages.pascaligo = {\n comment: /\\(\\*[\\s\\S]+?\\*\\)|\\/\\/.*/,\n string: {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|\\^[a-z]/i,\n greedy: true\n },\n 'class-name': [\n {\n pattern: RegExp(\n /(\\btype\\s+\\w+\\s+is\\s+)<type>/.source.replace(\n /<type>/g,\n function () {\n return type\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n pattern: RegExp(\n /<type>(?=\\s+is\\b)/.source.replace(/<type>/g, function () {\n return type\n }),\n 'i'\n ),\n inside: null // see below\n },\n {\n pattern: RegExp(\n /(:\\s*)<type>/.source.replace(/<type>/g, function () {\n return type\n })\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n keyword: {\n pattern:\n /(^|[^&])\\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\\b/i,\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[^&])\\b(?:False|True)\\b/i,\n lookbehind: true\n },\n builtin: {\n pattern: /(^|[^&])\\b(?:bool|int|list|map|nat|record|string|unit)\\b/i,\n lookbehind: true\n },\n function: /\\b\\w+(?=\\s*\\()/,\n number: [\n // Hexadecimal, octal and binary\n /%[01]+|&[0-7]+|\\$[a-f\\d]+/i, // Decimal\n /\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?(?:mtz|n)?/i\n ],\n operator:\n /->|=\\/=|\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=|]|\\b(?:and|mod|or)\\b/,\n punctuation: /\\(\\.|\\.\\)|[()\\[\\]:;,.{}]/\n })\n var classNameInside = [\n 'comment',\n 'keyword',\n 'builtin',\n 'operator',\n 'punctuation'\n ].reduce(function (accum, key) {\n accum[key] = pascaligo[key]\n return accum\n }, {})\n pascaligo['class-name'].forEach(function (p) {\n p.inside = classNameInside\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pcaxis\npcaxis.displayName = 'pcaxis'\npcaxis.aliases = ['px']\nfunction pcaxis(Prism) {\n Prism.languages.pcaxis = {\n string: /\"[^\"]*\"/,\n keyword: {\n pattern:\n /((?:^|;)\\s*)[-A-Z\\d]+(?:\\s*\\[[-\\w]+\\])?(?:\\s*\\(\"[^\"]*\"(?:,\\s*\"[^\"]*\")*\\))?(?=\\s*=)/,\n lookbehind: true,\n greedy: true,\n inside: {\n keyword: /^[-A-Z\\d]+/,\n language: {\n pattern: /^(\\s*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n property: /[-\\w]+/\n }\n },\n 'sub-key': {\n pattern: /^(\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n inside: {\n parameter: {\n pattern: /\"[^\"]*\"/,\n alias: 'property'\n },\n punctuation: /^\\(|\\)$|,/\n }\n }\n }\n },\n operator: /=/,\n tlist: {\n pattern:\n /TLIST\\s*\\(\\s*\\w+(?:(?:\\s*,\\s*\"[^\"]*\")+|\\s*,\\s*\"[^\"]*\"-\"[^\"]*\")?\\s*\\)/,\n greedy: true,\n inside: {\n function: /^TLIST/,\n property: {\n pattern: /^(\\s*\\(\\s*)\\w+/,\n lookbehind: true\n },\n string: /\"[^\"]*\"/,\n punctuation: /[(),]/,\n operator: /-/\n }\n },\n punctuation: /[;,]/,\n number: {\n pattern: /(^|\\s)\\d+(?:\\.\\d+)?(?!\\S)/,\n lookbehind: true\n },\n boolean: /NO|YES/\n }\n Prism.languages.px = Prism.languages.pcaxis\n}\n","'use strict'\n\nmodule.exports = peoplecode\npeoplecode.displayName = 'peoplecode'\npeoplecode.aliases = ['pcode']\nfunction peoplecode(Prism) {\n Prism.languages.peoplecode = {\n comment: RegExp(\n [\n // C-style multiline comments\n /\\/\\*[\\s\\S]*?\\*\\//.source, // REM comments\n /\\bREM[^;]*;/.source, // Nested <* *> comments\n /<\\*(?:[^<*]|\\*(?!>)|<(?!\\*)|<\\*(?:(?!\\*>)[\\s\\S])*\\*>)*\\*>/.source, // /+ +/ comments\n /\\/\\+[\\s\\S]*?\\+\\//.source\n ].join('|')\n ),\n string: {\n pattern: /'(?:''|[^'\\r\\n])*'(?!')|\"(?:\"\"|[^\"\\r\\n])*\"(?!\")/,\n greedy: true\n },\n variable: /%\\w+/,\n 'function-definition': {\n pattern: /((?:^|[^\\w-])(?:function|method)\\s+)\\w+/i,\n lookbehind: true,\n alias: 'function'\n },\n 'class-name': {\n pattern:\n /((?:^|[^-\\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\\s+)\\w+(?::\\w+)*/i,\n lookbehind: true,\n inside: {\n punctuation: /:/\n }\n },\n keyword:\n /\\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\\b/i,\n 'operator-keyword': {\n pattern: /\\b(?:and|not|or)\\b/i,\n alias: 'operator'\n },\n function: /[_a-z]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/i,\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n operator: /<>|[<>]=?|!=|\\*\\*|[-+*/|=@]/,\n punctuation: /[:.;,()[\\]]/\n }\n Prism.languages.pcode = Prism.languages.peoplecode\n}\n","'use strict'\n\nmodule.exports = perl\nperl.displayName = 'perl'\nperl.aliases = []\nfunction perl(Prism) {\n ;(function (Prism) {\n var brackets =\n /(?:\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}|\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)/\n .source\n Prism.languages.perl = {\n comment: [\n {\n // POD\n pattern: /(^\\s*)=\\w[\\s\\S]*?=cut.*/m,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\$])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // TODO Could be nice to handle Heredoc too.\n string: [\n {\n pattern: RegExp(\n /\\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // q/.../\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // q a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // q(...)\n // q{...}\n // q[...]\n // q<...>\n brackets\n ].join('|') +\n ')'\n ),\n greedy: true\n }, // \"...\", `...`\n {\n pattern: /(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,\n greedy: true\n }, // '...'\n // FIXME Multi-line single-quoted strings are not supported as they would break variables containing '\n {\n pattern: /'(?:[^'\\\\\\r\\n]|\\\\.)*'/,\n greedy: true\n }\n ],\n regex: [\n {\n pattern: RegExp(\n /\\b(?:m|qr)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // m/.../\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source, // m a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/.source, // m(...)\n // m{...}\n // m[...]\n // m<...>\n brackets\n ].join('|') +\n ')' +\n /[msixpodualngc]*/.source\n ),\n greedy: true\n }, // The lookbehinds prevent -s from breaking\n {\n pattern: RegExp(\n /(^|[^-])\\b(?:s|tr|y)(?![a-zA-Z0-9])\\s*/.source +\n '(?:' +\n [\n // s/.../.../\n // eslint-disable-next-line regexp/strict\n /([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2/\n .source, // s a...a...a\n // eslint-disable-next-line regexp/strict\n /([a-zA-Z0-9])(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3/\n .source, // s(...)(...)\n // s{...}{...}\n // s[...][...]\n // s<...><...>\n // s(...)[...]\n brackets + /\\s*/.source + brackets\n ].join('|') +\n ')' +\n /[msixpodualngcer]*/.source\n ),\n lookbehind: true,\n greedy: true\n }, // /.../\n // The look-ahead tries to prevent two divisions on\n // the same line from being highlighted as regex.\n // This does not support multi-line regex.\n {\n pattern:\n /\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\\b))/,\n greedy: true\n }\n ],\n // FIXME Not sure about the handling of ::, ', and #\n variable: [\n // ${^POSTMATCH}\n /[&*$@%]\\{\\^[A-Z]+\\}/, // $^V\n /[&*$@%]\\^[A-Z_]/, // ${...}\n /[&*$@%]#?(?=\\{)/, // $foo\n /[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+(?![\\w$]))+(?:::)*/, // $1\n /[&*$@%]\\d+/, // $_, @_, %!\n // The negative lookahead prevents from breaking the %= operator\n /(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/\n ],\n filehandle: {\n // <>, <FOO>, _\n pattern: /<(?![<=])\\S*?>|\\b_\\b/,\n alias: 'symbol'\n },\n 'v-string': {\n // v1.2, 1.2.3\n pattern: /v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,\n alias: 'string'\n },\n function: {\n pattern: /(\\bsub[ \\t]+)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,\n number:\n /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,\n operator:\n /-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\\b/,\n punctuation: /[{}[\\];(),:]/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nmodule.exports = phpExtras\nphpExtras.displayName = 'phpExtras'\nphpExtras.aliases = []\nfunction phpExtras(Prism) {\n Prism.register(refractorPhp)\n Prism.languages.insertBefore('php', 'variable', {\n this: {\n pattern: /\\$this\\b/,\n alias: 'keyword'\n },\n global:\n /\\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\\b/,\n scope: {\n pattern: /\\b[\\w\\\\]+::/,\n inside: {\n keyword: /\\b(?:parent|self|static)\\b/,\n punctuation: /::|\\\\/\n }\n }\n })\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = php\nphp.displayName = 'php'\nphp.aliases = []\nfunction php(Prism) {\n Prism.register(refractorMarkupTemplating)\n /**\n * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/\n * Modified by Miles Johnson: http://milesj.me\n * Rewritten by Tom Pavelec\n *\n * Supports PHP 5.3 - 8.0\n */\n ;(function (Prism) {\n var comment = /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*|#(?!\\[).*/\n var constant = [\n {\n pattern: /\\b(?:false|true)\\b/i,\n alias: 'boolean'\n },\n {\n pattern: /(::\\s*)\\b[a-z_]\\w*\\b(?!\\s*\\()/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\b(?:case|const)\\s+)\\b[a-z_]\\w*(?=\\s*[;=])/i,\n greedy: true,\n lookbehind: true\n },\n /\\b(?:null)\\b/i,\n /\\b[A-Z_][A-Z0-9_]*\\b(?!\\s*\\()/\n ]\n var number =\n /\\b0b[01]+(?:_[01]+)*\\b|\\b0o[0-7]+(?:_[0-7]+)*\\b|\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b|(?:\\b\\d+(?:_\\d+)*\\.?(?:\\d+(?:_\\d+)*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i\n var operator =\n /<?=>|\\?\\?=?|\\.{3}|\\??->|[!=]=?=?|::|\\*\\*=?|--|\\+\\+|&&|\\|\\||<<|>>|[?~]|[/^|%*&<>.+-]=?/\n var punctuation = /[{}\\[\\](),:;]/\n Prism.languages.php = {\n delimiter: {\n pattern: /\\?>$|^<\\?(?:php(?=\\s)|=)?/i,\n alias: 'important'\n },\n comment: comment,\n variable: /\\$+(?:\\w+\\b|(?=\\{))/,\n package: {\n pattern:\n /(namespace\\s+|use\\s+(?:function\\s+)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n 'class-name-definition': {\n pattern: /(\\b(?:class|enum|interface|trait)\\s+)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n lookbehind: true,\n alias: 'class-name'\n },\n 'function-definition': {\n pattern: /(\\bfunction\\s+)[a-z_]\\w*(?=\\s*\\()/i,\n lookbehind: true,\n alias: 'function'\n },\n keyword: [\n {\n pattern:\n /(\\(\\s*)\\b(?:array|bool|boolean|float|int|integer|object|string)\\b(?=\\s*\\))/i,\n alias: 'type-casting',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /([(,?]\\s*)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string)\\b(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b(?:array(?!\\s*\\()|bool|callable|(?:false|null)(?=\\s*\\|)|float|int|iterable|mixed|object|self|static|string|void)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern:\n /\\b(?:array(?!\\s*\\()|bool|float|int|iterable|mixed|object|string|void)\\b/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:false|null)\\b|\\b(?:false|null)(?=\\s*\\|)/i,\n alias: 'type-declaration',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b(?:parent|self|static)(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n // yield from\n pattern: /(\\byield\\s+)from\\b/i,\n lookbehind: true\n }, // `class` is always a keyword unlike other keywords\n /\\bclass\\b/i,\n {\n // https://www.php.net/manual/en/reserved.keywords.php\n //\n // keywords cannot be preceded by \"->\"\n // the complex lookbehind means `(?<!(?:->|::)\\s*)`\n pattern:\n /((?:^|[^\\s>:]|(?:^|[^-])>|(?:^|[^:]):)\\s*)\\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\\b/i,\n lookbehind: true\n }\n ],\n 'argument-name': {\n pattern: /([(,]\\s+)\\b[a-z_]\\w*(?=\\s*:(?!:))/i,\n lookbehind: true\n },\n 'class-name': [\n {\n pattern:\n /(\\b(?:extends|implements|instanceof|new(?!\\s+self|\\s+static))\\s+|\\bcatch\\s*\\()\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\|\\s*)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /\\b[a-z_]\\w*(?!\\\\)\\b(?=\\s*\\|)/i,\n greedy: true\n },\n {\n pattern: /(\\|\\s*)(?:\\\\?\\b[a-z_]\\w*)+\\b/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+\\b(?=\\s*\\|)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern:\n /(\\b(?:extends|implements|instanceof|new(?!\\s+self\\b|\\s+static\\b))\\s+|\\bcatch\\s*\\()(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: 'class-name-fully-qualified',\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-declaration',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-declaration'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /\\b[a-z_]\\w*(?=\\s*::)/i,\n alias: 'static-context',\n greedy: true\n },\n {\n pattern: /(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*::)/i,\n alias: ['class-name-fully-qualified', 'static-context'],\n greedy: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /([(,?]\\s*)[a-z_]\\w*(?=\\s*\\$)/i,\n alias: 'type-hint',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([(,?]\\s*)(?:\\\\?\\b[a-z_]\\w*)+(?=\\s*\\$)/i,\n alias: ['class-name-fully-qualified', 'type-hint'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'return-type',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /(\\)\\s*:\\s*(?:\\?\\s*)?)(?:\\\\?\\b[a-z_]\\w*)+\\b(?!\\\\)/i,\n alias: ['class-name-fully-qualified', 'return-type'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n function: {\n pattern: /(^|[^\\\\\\w])\\\\?[a-z_](?:[\\w\\\\]*\\w)?(?=\\s*\\()/i,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n },\n property: {\n pattern: /(->\\s*)\\w+/,\n lookbehind: true\n },\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n var string_interpolation = {\n pattern:\n /\\{\\$(?:\\{(?:\\{[^{}]+\\}|[^{}]+)\\}|[^{}])+\\}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[[^\\r\\n\\[\\]]+\\]|->\\w+)?)/,\n lookbehind: true,\n inside: Prism.languages.php\n }\n var string = [\n {\n pattern: /<<<'([^']+)'[\\r\\n](?:.*[\\r\\n])*?\\1;/,\n alias: 'nowdoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<'[^']+'|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<'?|[';]$/\n }\n }\n }\n },\n {\n pattern:\n /<<<(?:\"([^\"]+)\"[\\r\\n](?:.*[\\r\\n])*?\\1;|([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\2;)/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,\n alias: 'symbol',\n inside: {\n punctuation: /^<<<\"?|[\";]$/\n }\n },\n interpolation: string_interpolation\n }\n },\n {\n pattern: /`(?:\\\\[\\s\\S]|[^\\\\`])*`/,\n alias: 'backtick-quoted-string',\n greedy: true\n },\n {\n pattern: /'(?:\\\\[\\s\\S]|[^\\\\'])*'/,\n alias: 'single-quoted-string',\n greedy: true\n },\n {\n pattern: /\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,\n alias: 'double-quoted-string',\n greedy: true,\n inside: {\n interpolation: string_interpolation\n }\n }\n ]\n Prism.languages.insertBefore('php', 'variable', {\n string: string,\n attribute: {\n pattern:\n /#\\[(?:[^\"'\\/#]|\\/(?![*/])|\\/\\/.*$|#(?!\\[).*$|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*')+\\](?=\\s*[a-z$#])/im,\n greedy: true,\n inside: {\n 'attribute-content': {\n pattern: /^(#\\[)[\\s\\S]+(?=\\]$)/,\n lookbehind: true,\n // inside can appear subset of php\n inside: {\n comment: comment,\n string: string,\n 'attribute-class-name': [\n {\n pattern: /([^:]|^)\\b[a-z_]\\w*(?!\\\\)\\b/i,\n alias: 'class-name',\n greedy: true,\n lookbehind: true\n },\n {\n pattern: /([^:]|^)(?:\\\\?\\b[a-z_]\\w*)+/i,\n alias: ['class-name', 'class-name-fully-qualified'],\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /\\\\/\n }\n }\n ],\n constant: constant,\n number: number,\n operator: operator,\n punctuation: punctuation\n }\n },\n delimiter: {\n pattern: /^#\\[|\\]$/,\n alias: 'punctuation'\n }\n }\n }\n })\n Prism.hooks.add('before-tokenize', function (env) {\n if (!/<\\?/.test(env.code)) {\n return\n }\n var phpPattern =\n /<\\?(?:[^\"'/#]|\\/(?![*/])|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|(?:\\/\\/|#(?!\\[))(?:[^?\\n\\r]|\\?(?!>))*(?=$|\\?>|[\\r\\n])|#\\[|\\/\\*(?:[^*]|\\*(?!\\/))*(?:\\*\\/|$))*?(?:\\?>|$)/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'php',\n phpPattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php')\n })\n })(Prism)\n}\n","'use strict'\nvar refractorPhp = require('./php.js')\nvar refractorJavadoclike = require('./javadoclike.js')\nmodule.exports = phpdoc\nphpdoc.displayName = 'phpdoc'\nphpdoc.aliases = []\nfunction phpdoc(Prism) {\n Prism.register(refractorPhp)\n Prism.register(refractorJavadoclike)\n ;(function (Prism) {\n var typeExpression = /(?:\\b[a-zA-Z]\\w*|[|\\\\[\\]])+/.source\n Prism.languages.phpdoc = Prism.languages.extend('javadoclike', {\n parameter: {\n pattern: RegExp(\n '(@(?:global|param|property(?:-read|-write)?|var)\\\\s+(?:' +\n typeExpression +\n '\\\\s+)?)\\\\$\\\\w+'\n ),\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('phpdoc', 'keyword', {\n 'class-name': [\n {\n pattern: RegExp(\n '(@(?:global|package|param|property(?:-read|-write)?|return|subpackage|throws|var)\\\\s+)' +\n typeExpression\n ),\n lookbehind: true,\n inside: {\n keyword:\n /\\b(?:array|bool|boolean|callback|double|false|float|int|integer|mixed|null|object|resource|self|string|true|void)\\b/,\n punctuation: /[|\\\\[\\]()]/\n }\n }\n ]\n })\n Prism.languages.javadoclike.addSupport('php', Prism.languages.phpdoc)\n })(Prism)\n}\n","'use strict'\nvar refractorSql = require('./sql.js')\nmodule.exports = plsql\nplsql.displayName = 'plsql'\nplsql.aliases = []\nfunction plsql(Prism) {\n Prism.register(refractorSql)\n Prism.languages.plsql = Prism.languages.extend('sql', {\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|--.*/,\n greedy: true\n },\n // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-reserved-words-keywords.html\n keyword:\n /\\b(?:A|ACCESSIBLE|ADD|AGENT|AGGREGATE|ALL|ALTER|AND|ANY|ARRAY|AS|ASC|AT|ATTRIBUTE|AUTHID|AVG|BEGIN|BETWEEN|BFILE_BASE|BINARY|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BULK|BY|BYTE|C|CALL|CALLING|CASCADE|CASE|CHAR|CHARACTER|CHARSET|CHARSETFORM|CHARSETID|CHAR_BASE|CHECK|CLOB_BASE|CLONE|CLOSE|CLUSTER|CLUSTERS|COLAUTH|COLLECT|COLUMNS|COMMENT|COMMIT|COMMITTED|COMPILED|COMPRESS|CONNECT|CONSTANT|CONSTRUCTOR|CONTEXT|CONTINUE|CONVERT|COUNT|CRASH|CREATE|CREDENTIAL|CURRENT|CURSOR|CUSTOMDATUM|DANGLING|DATA|DATE|DATE_BASE|DAY|DECLARE|DEFAULT|DEFINE|DELETE|DESC|DETERMINISTIC|DIRECTORY|DISTINCT|DOUBLE|DROP|DURATION|ELEMENT|ELSE|ELSIF|EMPTY|END|ESCAPE|EXCEPT|EXCEPTION|EXCEPTIONS|EXCLUSIVE|EXECUTE|EXISTS|EXIT|EXTERNAL|FETCH|FINAL|FIRST|FIXED|FLOAT|FOR|FORALL|FORCE|FROM|FUNCTION|GENERAL|GOTO|GRANT|GROUP|HASH|HAVING|HEAP|HIDDEN|HOUR|IDENTIFIED|IF|IMMEDIATE|IMMUTABLE|IN|INCLUDING|INDEX|INDEXES|INDICATOR|INDICES|INFINITE|INSERT|INSTANTIABLE|INT|INTERFACE|INTERSECT|INTERVAL|INTO|INVALIDATE|IS|ISOLATION|JAVA|LANGUAGE|LARGE|LEADING|LENGTH|LEVEL|LIBRARY|LIKE|LIKE2|LIKE4|LIKEC|LIMIT|LIMITED|LOCAL|LOCK|LONG|LOOP|MAP|MAX|MAXLEN|MEMBER|MERGE|MIN|MINUS|MINUTE|MOD|MODE|MODIFY|MONTH|MULTISET|MUTABLE|NAME|NAN|NATIONAL|NATIVE|NCHAR|NEW|NOCOMPRESS|NOCOPY|NOT|NOWAIT|NULL|NUMBER_BASE|OBJECT|OCICOLL|OCIDATE|OCIDATETIME|OCIDURATION|OCIINTERVAL|OCILOBLOCATOR|OCINUMBER|OCIRAW|OCIREF|OCIREFCURSOR|OCIROWID|OCISTRING|OCITYPE|OF|OLD|ON|ONLY|OPAQUE|OPEN|OPERATOR|OPTION|OR|ORACLE|ORADATA|ORDER|ORGANIZATION|ORLANY|ORLVARY|OTHERS|OUT|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETER|PARAMETERS|PARENT|PARTITION|PASCAL|PERSISTABLE|PIPE|PIPELINED|PLUGGABLE|POLYMORPHIC|PRAGMA|PRECISION|PRIOR|PRIVATE|PROCEDURE|PUBLIC|RAISE|RANGE|RAW|READ|RECORD|REF|REFERENCE|RELIES_ON|REM|REMAINDER|RENAME|RESOURCE|RESULT|RESULT_CACHE|RETURN|RETURNING|REVERSE|REVOKE|ROLLBACK|ROW|SAMPLE|SAVE|SAVEPOINT|SB1|SB2|SB4|SECOND|SEGMENT|SELECT|SELF|SEPARATE|SEQUENCE|SERIALIZABLE|SET|SHARE|SHORT|SIZE|SIZE_T|SOME|SPARSE|SQL|SQLCODE|SQLDATA|SQLNAME|SQLSTATE|STANDARD|START|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUM|SYNONYM|TABAUTH|TABLE|TDO|THE|THEN|TIME|TIMESTAMP|TIMEZONE_ABBR|TIMEZONE_HOUR|TIMEZONE_MINUTE|TIMEZONE_REGION|TO|TRAILING|TRANSACTION|TRANSACTIONAL|TRUSTED|TYPE|UB1|UB2|UB4|UNDER|UNION|UNIQUE|UNPLUG|UNSIGNED|UNTRUSTED|UPDATE|USE|USING|VALIST|VALUE|VALUES|VARIABLE|VARIANCE|VARRAY|VARYING|VIEW|VIEWS|VOID|WHEN|WHERE|WHILE|WITH|WORK|WRAPPED|WRITE|YEAR|ZONE)\\b/i,\n // https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/plsql-language-fundamentals.html#GUID-96A42F7C-7A71-4B90-8255-CA9C8BD9722E\n operator: /:=?|=>|[<>^~!]=|\\.\\.|\\|\\||\\*\\*|[-+*/%<>=@]/\n })\n Prism.languages.insertBefore('plsql', 'operator', {\n label: {\n pattern: /<<\\s*\\w+\\s*>>/,\n alias: 'symbol'\n }\n })\n}\n","'use strict'\n\nmodule.exports = powerquery\npowerquery.displayName = 'powerquery'\npowerquery.aliases = []\nfunction powerquery(Prism) {\n // https://docs.microsoft.com/en-us/powerquery-m/power-query-m-language-specification\n Prism.languages.powerquery = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n 'quoted-identifier': {\n pattern: /#\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n string: {\n pattern: /(?:#!)?\"(?:[^\"\\r\\n]|\"\")*\"(?!\")/,\n greedy: true\n },\n constant: [\n /\\bDay\\.(?:Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday)\\b/,\n /\\bTraceLevel\\.(?:Critical|Error|Information|Verbose|Warning)\\b/,\n /\\bOccurrence\\.(?:All|First|Last)\\b/,\n /\\bOrder\\.(?:Ascending|Descending)\\b/,\n /\\bRoundingMode\\.(?:AwayFromZero|Down|ToEven|TowardZero|Up)\\b/,\n /\\bMissingField\\.(?:Error|Ignore|UseNull)\\b/,\n /\\bQuoteStyle\\.(?:Csv|None)\\b/,\n /\\bJoinKind\\.(?:FullOuter|Inner|LeftAnti|LeftOuter|RightAnti|RightOuter)\\b/,\n /\\bGroupKind\\.(?:Global|Local)\\b/,\n /\\bExtraValues\\.(?:Error|Ignore|List)\\b/,\n /\\bJoinAlgorithm\\.(?:Dynamic|LeftHash|LeftIndex|PairwiseHash|RightHash|RightIndex|SortMerge)\\b/,\n /\\bJoinSide\\.(?:Left|Right)\\b/,\n /\\bPrecision\\.(?:Decimal|Double)\\b/,\n /\\bRelativePosition\\.From(?:End|Start)\\b/,\n /\\bTextEncoding\\.(?:Ascii|BigEndianUnicode|Unicode|Utf16|Utf8|Windows)\\b/,\n /\\b(?:Any|Binary|Date|DateTime|DateTimeZone|Duration|Function|Int16|Int32|Int64|Int8|List|Logical|None|Number|Record|Table|Text|Time)\\.Type\\b/,\n /\\bnull\\b/\n ],\n boolean: /\\b(?:false|true)\\b/,\n keyword:\n /\\b(?:and|as|each|else|error|if|in|is|let|meta|not|nullable|optional|or|otherwise|section|shared|then|try|type)\\b|#(?:binary|date|datetime|datetimezone|duration|infinity|nan|sections|shared|table|time)\\b/,\n function: {\n pattern: /(^|[^#\\w.])[a-z_][\\w.]*(?=\\s*\\()/i,\n lookbehind: true\n },\n 'data-type': {\n pattern:\n /\\b(?:any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|number|record|table|text|time)\\b/,\n alias: 'class-name'\n },\n number: {\n pattern:\n /\\b0x[\\da-f]+\\b|(?:[+-]?(?:\\b\\d+\\.)?\\b\\d+|[+-]\\.\\d+|(^|[^.])\\B\\.\\d+)(?:e[+-]?\\d+)?\\b/i,\n lookbehind: true\n },\n operator: /[-+*\\/&?@^]|<(?:=>?|>)?|>=?|=>?|\\.\\.\\.?/,\n punctuation: /[,;\\[\\](){}]/\n }\n Prism.languages.pq = Prism.languages['powerquery']\n Prism.languages.mscript = Prism.languages['powerquery']\n}\n","'use strict'\n\nmodule.exports = powershell\npowershell.displayName = 'powershell'\npowershell.aliases = []\nfunction powershell(Prism) {\n ;(function (Prism) {\n var powershell = (Prism.languages.powershell = {\n comment: [\n {\n pattern: /(^|[^`])<#[\\s\\S]*?#>/,\n lookbehind: true\n },\n {\n pattern: /(^|[^`])#.*/,\n lookbehind: true\n }\n ],\n string: [\n {\n pattern: /\"(?:`[\\s\\S]|[^`\"])*\"/,\n greedy: true,\n inside: null // see below\n },\n {\n pattern: /'(?:[^']|'')*'/,\n greedy: true\n }\n ],\n // Matches name spaces as well as casts, attribute decorators. Force starting with letter to avoid matching array indices\n // Supports two levels of nested brackets (e.g. `[OutputType([System.Collections.Generic.List[int]])]`)\n namespace: /\\[[a-z](?:\\[(?:\\[[^\\]]*\\]|[^\\[\\]])*\\]|[^\\[\\]])*\\]/i,\n boolean: /\\$(?:false|true)\\b/i,\n variable: /\\$\\w+\\b/,\n // Cmdlets and aliases. Aliases should come last, otherwise \"write\" gets preferred over \"write-host\" for example\n // Get-Command | ?{ $_.ModuleName -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n // Get-Alias | ?{ $_.ReferencedCommand.Module.Name -match \"Microsoft.PowerShell.(Util|Core|Management)\" }\n function: [\n /\\b(?:Add|Approve|Assert|Backup|Block|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|ForEach|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Sort|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Tee|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Where|Write)-[a-z]+\\b/i,\n /\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i\n ],\n // per http://technet.microsoft.com/en-us/library/hh847744.aspx\n keyword:\n /\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,\n operator: {\n pattern:\n /(^|\\W)(?:!|-(?:b?(?:and|x?or)|as|(?:Not)?(?:Contains|In|Like|Match)|eq|ge|gt|is(?:Not)?|Join|le|lt|ne|not|Replace|sh[lr])\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,\n lookbehind: true\n },\n punctuation: /[|{}[\\];(),.]/\n }) // Variable interpolation inside strings, and nested expressions\n powershell.string[0].inside = {\n function: {\n // Allow for one level of nesting\n pattern: /(^|[^`])\\$\\((?:\\$\\([^\\r\\n()]*\\)|(?!\\$\\()[^\\r\\n)])*\\)/,\n lookbehind: true,\n inside: powershell\n },\n boolean: powershell.boolean,\n variable: powershell.variable\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = processing\nprocessing.displayName = 'processing'\nprocessing.aliases = []\nfunction processing(Prism) {\n Prism.languages.processing = Prism.languages.extend('clike', {\n keyword:\n /\\b(?:break|case|catch|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,\n // Spaces are allowed between function name and parenthesis\n function: /\\b\\w+(?=\\s*\\()/,\n operator: /<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/\n })\n Prism.languages.insertBefore('processing', 'number', {\n // Special case: XML is a type\n constant: /\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,\n type: {\n pattern: /\\b(?:boolean|byte|char|color|double|float|int|[A-Z]\\w*)\\b/,\n alias: 'class-name'\n }\n })\n}\n","'use strict'\n\nmodule.exports = prolog\nprolog.displayName = 'prolog'\nprolog.aliases = []\nfunction prolog(Prism) {\n Prism.languages.prolog = {\n // Syntax depends on the implementation\n comment: {\n pattern: /\\/\\*[\\s\\S]*?\\*\\/|%.*/,\n greedy: true\n },\n // Depending on the implementation, strings may allow escaped newlines and quote-escape\n string: {\n pattern: /([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1(?!\\1)/,\n greedy: true\n },\n builtin: /\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,\n // FIXME: Should we list all null-ary predicates (not followed by a parenthesis) like halt, trace, etc.?\n function: /\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,\n number: /\\b\\d+(?:\\.\\d*)?/,\n // Custom operators are allowed\n operator: /[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,\n punctuation: /[(){}\\[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = promql\npromql.displayName = 'promql'\npromql.aliases = []\nfunction promql(Prism) {\n // Thanks to: https://github.com/prometheus-community/monaco-promql/blob/master/src/promql/promql.ts\n // As well as: https://kausal.co/blog/slate-prism-add-new-syntax-promql/\n ;(function (Prism) {\n // PromQL Aggregation Operators\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#aggregation-operators)\n var aggregations = [\n 'sum',\n 'min',\n 'max',\n 'avg',\n 'group',\n 'stddev',\n 'stdvar',\n 'count',\n 'count_values',\n 'bottomk',\n 'topk',\n 'quantile'\n ] // PromQL vector matching + the by and without clauses\n // (https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching)\n var vectorMatching = [\n 'on',\n 'ignoring',\n 'group_right',\n 'group_left',\n 'by',\n 'without'\n ] // PromQL offset modifier\n // (https://prometheus.io/docs/prometheus/latest/querying/basics/#offset-modifier)\n var offsetModifier = ['offset']\n var keywords = aggregations.concat(vectorMatching, offsetModifier)\n Prism.languages.promql = {\n comment: {\n pattern: /(^[ \\t]*)#.*/m,\n lookbehind: true\n },\n 'vector-match': {\n // Match the comma-separated label lists inside vector matching:\n pattern: new RegExp(\n '((?:' + vectorMatching.join('|') + ')\\\\s*)\\\\([^)]*\\\\)'\n ),\n lookbehind: true,\n inside: {\n 'label-key': {\n pattern: /\\b[^,]+\\b/,\n alias: 'attr-name'\n },\n punctuation: /[(),]/\n }\n },\n 'context-labels': {\n pattern: /\\{[^{}]*\\}/,\n inside: {\n 'label-key': {\n pattern: /\\b[a-z_]\\w*(?=\\s*(?:=|![=~]))/,\n alias: 'attr-name'\n },\n 'label-value': {\n pattern: /([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true,\n alias: 'attr-value'\n },\n punctuation: /\\{|\\}|=~?|![=~]|,/\n }\n },\n 'context-range': [\n {\n pattern: /\\[[\\w\\s:]+\\]/,\n // [1m]\n inside: {\n punctuation: /\\[|\\]|:/,\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n },\n {\n pattern: /(\\boffset\\s+)\\w+/,\n // offset 1m\n lookbehind: true,\n inside: {\n 'range-duration': {\n pattern: /\\b(?:\\d+(?:[smhdwy]|ms))+\\b/i,\n alias: 'number'\n }\n }\n }\n ],\n keyword: new RegExp('\\\\b(?:' + keywords.join('|') + ')\\\\b', 'i'),\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n number:\n /[-+]?(?:(?:\\b\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[-+]?\\d+)?\\b|\\b(?:0x[0-9a-f]+|nan|inf)\\b)/i,\n operator: /[\\^*/%+-]|==|!=|<=|<|>=|>|\\b(?:and|or|unless)\\b/i,\n punctuation: /[{};()`,.[\\]]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = properties\nproperties.displayName = 'properties'\nproperties.aliases = []\nfunction properties(Prism) {\n Prism.languages.properties = {\n comment: /^[ \\t]*[#!].*$/m,\n 'attr-value': {\n pattern:\n /(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?: *[=:] *(?! )| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,\n lookbehind: true\n },\n 'attr-name': /^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+(?= *[=:]| )/m,\n punctuation: /[=:]/\n }\n}\n","'use strict'\n\nmodule.exports = protobuf\nprotobuf.displayName = 'protobuf'\nprotobuf.aliases = []\nfunction protobuf(Prism) {\n ;(function (Prism) {\n var builtinTypes =\n /\\b(?:bool|bytes|double|s?fixed(?:32|64)|float|[su]?int(?:32|64)|string)\\b/\n Prism.languages.protobuf = Prism.languages.extend('clike', {\n 'class-name': [\n {\n pattern:\n /(\\b(?:enum|extend|message|service)\\s+)[A-Za-z_]\\w*(?=\\s*\\{)/,\n lookbehind: true\n },\n {\n pattern:\n /(\\b(?:rpc\\s+\\w+|returns)\\s*\\(\\s*(?:stream\\s+)?)\\.?[A-Za-z_]\\w*(?:\\.[A-Za-z_]\\w*)*(?=\\s*\\))/,\n lookbehind: true\n }\n ],\n keyword:\n /\\b(?:enum|extend|extensions|import|message|oneof|option|optional|package|public|repeated|required|reserved|returns|rpc(?=\\s+\\w)|service|stream|syntax|to)\\b(?!\\s*=\\s*\\d)/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i\n })\n Prism.languages.insertBefore('protobuf', 'operator', {\n map: {\n pattern: /\\bmap<\\s*[\\w.]+\\s*,\\s*[\\w.]+\\s*>(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /[<>.,]/,\n builtin: builtinTypes\n }\n },\n builtin: builtinTypes,\n 'positional-class-name': {\n pattern: /(?:\\b|\\B\\.)[a-z_]\\w*(?:\\.[a-z_]\\w*)*(?=\\s+[a-z_]\\w*\\s*[=;])/i,\n alias: 'class-name',\n inside: {\n punctuation: /\\./\n }\n },\n annotation: {\n pattern: /(\\[\\s*)[a-z_]\\w*(?=\\s*=)/i,\n lookbehind: true\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = psl\npsl.displayName = 'psl'\npsl.aliases = []\nfunction psl(Prism) {\n Prism.languages.psl = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true,\n inside: {\n symbol: /\\\\[ntrbA-Z\"\\\\]/\n }\n },\n 'heredoc-string': {\n pattern: /<<<([a-zA-Z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?\\1\\b/,\n alias: 'string',\n greedy: true\n },\n keyword:\n /\\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\\b/,\n constant:\n /\\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\\b/,\n boolean: /\\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\\b/,\n variable: /\\b(?:PslDebug|errno|exit_status)\\b/,\n builtin: {\n pattern:\n /\\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\\b/,\n alias: 'builtin-function'\n },\n 'foreach-variable': {\n pattern:\n /(\\bforeach\\s+(?:(?:\\w+\\b|\"(?:\\\\.|[^\\\\\"])*\")\\s+){0,2})[_a-zA-Z]\\w*(?=\\s*\\()/,\n lookbehind: true,\n greedy: true\n },\n function: /\\b[_a-z]\\w*\\b(?=\\s*\\()/i,\n number: /\\b(?:0x[0-9a-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator: /--|\\+\\+|&&=?|\\|\\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\\.|[:?]/,\n punctuation: /[(){}\\[\\];,]/\n }\n}\n","'use strict'\n\nmodule.exports = pug\npug.displayName = 'pug'\npug.aliases = []\nfunction pug(Prism) {\n ;(function (Prism) {\n // TODO:\n // - Add CSS highlighting inside <style> tags\n // - Add support for multi-line code blocks\n // - Add support for interpolation #{} and !{}\n // - Add support for tag interpolation #[]\n // - Add explicit support for plain text using |\n // - Add support for markup embedded in plain text\n Prism.languages.pug = {\n // Multiline stuff should appear before the rest\n // This handles both single-line and multi-line comments\n comment: {\n pattern: /(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ].+)*/m,\n lookbehind: true\n },\n // All the tag-related part is in lookbehind\n // so that it can be highlighted by the \"tag\" pattern\n 'multiline-script': {\n pattern:\n /(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n // See at the end of the file for known filters\n filter: {\n pattern:\n /(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n text: /\\S[\\s\\S]*/\n }\n },\n 'multiline-plain-text': {\n pattern:\n /(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/m,\n lookbehind: true\n },\n markup: {\n pattern: /(^[\\t ]*)<.+/m,\n lookbehind: true,\n inside: Prism.languages.markup\n },\n doctype: {\n pattern: /((?:^|\\n)[\\t ]*)doctype(?: .+)?/,\n lookbehind: true\n },\n // This handle all conditional and loop keywords\n 'flow-control': {\n pattern:\n /(^[\\t ]*)(?:case|default|each|else|if|unless|when|while)\\b(?: .+)?/m,\n lookbehind: true,\n inside: {\n each: {\n pattern: /^each .+? in\\b/,\n inside: {\n keyword: /\\b(?:each|in)\\b/,\n punctuation: /,/\n }\n },\n branch: {\n pattern: /^(?:case|default|else|if|unless|when|while)\\b/,\n alias: 'keyword'\n },\n rest: Prism.languages.javascript\n }\n },\n keyword: {\n pattern: /(^[\\t ]*)(?:append|block|extends|include|prepend)\\b.+/m,\n lookbehind: true\n },\n mixin: [\n // Declaration\n {\n pattern: /(^[\\t ]*)mixin .+/m,\n lookbehind: true,\n inside: {\n keyword: /^mixin/,\n function: /\\w+(?=\\s*\\(|\\s*$)/,\n punctuation: /[(),.]/\n }\n }, // Usage\n {\n pattern: /(^[\\t ]*)\\+.+/m,\n lookbehind: true,\n inside: {\n name: {\n pattern: /^\\+\\w+/,\n alias: 'function'\n },\n rest: Prism.languages.javascript\n }\n }\n ],\n script: {\n pattern: /(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'plain-text': {\n pattern:\n /(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]).+/m,\n lookbehind: true\n },\n tag: {\n pattern: /(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,\n lookbehind: true,\n inside: {\n attributes: [\n {\n pattern: /&[^(]+\\([^)]+\\)/,\n inside: Prism.languages.javascript\n },\n {\n pattern: /\\([^)]+\\)/,\n inside: {\n 'attr-value': {\n pattern: /(=\\s*(?!\\s))(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n 'attr-name': /[\\w-]+(?=\\s*!?=|\\s*[,)])/,\n punctuation: /[!=(),]+/\n }\n }\n ],\n punctuation: /:/,\n 'attr-id': /#[\\w\\-]+/,\n 'attr-class': /\\.[\\w\\-]+/\n }\n },\n code: [\n {\n pattern: /(^[\\t ]*(?:-|!?=)).+/m,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n punctuation: /[.\\-!=|]+/\n }\n var filter_pattern =\n /(^([\\t ]*)):<filter_name>(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ].+|\\s*?(?=\\r?\\n|\\r)))+/\n .source // Non exhaustive list of available filters and associated languages\n var filters = [\n {\n filter: 'atpl',\n language: 'twig'\n },\n {\n filter: 'coffee',\n language: 'coffeescript'\n },\n 'ejs',\n 'handlebars',\n 'less',\n 'livescript',\n 'markdown',\n {\n filter: 'sass',\n language: 'scss'\n },\n 'stylus'\n ]\n var all_filters = {}\n for (var i = 0, l = filters.length; i < l; i++) {\n var filter = filters[i]\n filter =\n typeof filter === 'string'\n ? {\n filter: filter,\n language: filter\n }\n : filter\n if (Prism.languages[filter.language]) {\n all_filters['filter-' + filter.filter] = {\n pattern: RegExp(\n filter_pattern.replace('<filter_name>', function () {\n return filter.filter\n }),\n 'm'\n ),\n lookbehind: true,\n inside: {\n 'filter-name': {\n pattern: /^:[\\w-]+/,\n alias: 'variable'\n },\n text: {\n pattern: /\\S[\\s\\S]*/,\n alias: [filter.language, 'language-' + filter.language],\n inside: Prism.languages[filter.language]\n }\n }\n }\n }\n }\n Prism.languages.insertBefore('pug', 'filter', all_filters)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = puppet\npuppet.displayName = 'puppet'\npuppet.aliases = []\nfunction puppet(Prism) {\n ;(function (Prism) {\n Prism.languages.puppet = {\n heredoc: [\n // Matches the content of a quoted heredoc string (subject to interpolation)\n {\n pattern:\n /(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/ // See interpolation below\n }\n }, // Matches the content of an unquoted heredoc string (no interpolation)\n {\n pattern:\n /(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r(?!\\n)))*?[ \\t]*(?:\\|[ \\t]*)?(?:-[ \\t]*)?\\2/,\n lookbehind: true,\n greedy: true,\n alias: 'string',\n inside: {\n // Matches the end tag\n punctuation: /(?=\\S).*\\S(?= *$)/\n }\n }, // Matches the start tag of heredoc strings\n {\n pattern: /@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,\n alias: 'string',\n inside: {\n punctuation: {\n pattern: /(\\().+?(?=\\))/,\n lookbehind: true\n }\n }\n }\n ],\n 'multiline-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n regex: {\n // Must be prefixed with the keyword \"node\" or a non-word char\n pattern:\n /((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,\n lookbehind: true,\n greedy: true,\n inside: {\n // Extended regexes must have the x flag. They can contain single-line comments.\n 'extended-regex': {\n pattern: /^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,\n inside: {\n comment: /#.*/\n }\n }\n }\n },\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n string: {\n // Allow for one nested level of double quotes inside interpolation\n pattern:\n /([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|\\$(?!\\{)|(?!\\1)[^\\\\$]|\\\\[\\s\\S])*\\1/,\n greedy: true,\n inside: {\n 'double-quoted': {\n pattern: /^\"[\\s\\S]*\"$/,\n inside: {\n // See interpolation below\n }\n }\n }\n },\n variable: {\n pattern: /\\$(?:::)?\\w+(?:::\\w+)*/,\n inside: {\n punctuation: /::/\n }\n },\n 'attr-name': /(?:\\b\\w+|\\*)(?=\\s*=>)/,\n function: [\n {\n pattern: /(\\.)(?!\\d)\\w+/,\n lookbehind: true\n },\n /\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/\n ],\n number: /\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\n boolean: /\\b(?:false|true)\\b/,\n // Includes words reserved for future use\n keyword:\n /\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,\n datatype: {\n pattern:\n /\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,\n alias: 'symbol'\n },\n operator:\n /=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,\n punctuation: /[\\[\\]{}().,;]|:+/\n }\n var interpolation = [\n {\n // Allow for one nested level of braces inside interpolation\n pattern:\n /(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,\n lookbehind: true,\n inside: {\n 'short-variable': {\n // Negative look-ahead prevent wrong highlighting of functions\n pattern: /(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n },\n delimiter: {\n pattern: /^\\$/,\n alias: 'variable'\n },\n rest: Prism.languages.puppet\n }\n },\n {\n pattern: /(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,\n lookbehind: true,\n alias: 'variable',\n inside: {\n punctuation: /::/\n }\n }\n ]\n Prism.languages.puppet['heredoc'][0].inside.interpolation = interpolation\n Prism.languages.puppet['string'].inside[\n 'double-quoted'\n ].inside.interpolation = interpolation\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = pure\npure.displayName = 'pure'\npure.aliases = []\nfunction pure(Prism) {\n ;(function (Prism) {\n // https://agraef.github.io/pure-docs/pure.html#lexical-matters\n Prism.languages.pure = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true\n },\n /#!.+/\n ],\n 'inline-lang': {\n pattern: /%<[\\s\\S]+?%>/,\n greedy: true,\n inside: {\n lang: {\n pattern: /(^%< *)-\\*-.+?-\\*-/,\n lookbehind: true,\n alias: 'comment'\n },\n delimiter: {\n pattern: /^%<.*|%>$/,\n alias: 'punctuation'\n }\n }\n },\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n number: {\n // The look-behind prevents wrong highlighting of the .. operator\n pattern:\n /((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d+)?|\\B\\.\\d+)(?:e[+-]?\\d+)?L?)/i,\n lookbehind: true\n },\n keyword:\n /\\b(?:NULL|ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\n function:\n /\\b(?:abs|add_(?:addr|constdef|(?:fundef|interface|macdef|typedef)(?:_at)?|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_c?string(?:_pointer)?|byte_(?:matrix|pointer)|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|sentry|short|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,\n special: {\n pattern: /\\b__[a-z]+__\\b/i,\n alias: 'builtin'\n },\n // Any combination of operator chars can be an operator\n // eslint-disable-next-line no-misleading-character-class\n operator:\n /(?:[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]|\\b_+\\b)+|\\b(?:and|div|mod|not|or)\\b/,\n // FIXME: How can we prevent | and , to be highlighted as operator when they are used alone?\n punctuation: /[(){}\\[\\];,|]/\n }\n var inlineLanguages = [\n 'c',\n {\n lang: 'c++',\n alias: 'cpp'\n },\n 'fortran'\n ]\n var inlineLanguageRe = /%< *-\\*- *<lang>\\d* *-\\*-[\\s\\S]+?%>/.source\n inlineLanguages.forEach(function (lang) {\n var alias = lang\n if (typeof lang !== 'string') {\n alias = lang.alias\n lang = lang.lang\n }\n if (Prism.languages[alias]) {\n var o = {}\n o['inline-lang-' + alias] = {\n pattern: RegExp(\n inlineLanguageRe.replace(\n '<lang>',\n lang.replace(/([.+*?\\/\\\\(){}\\[\\]])/g, '\\\\$1')\n ),\n 'i'\n ),\n inside: Prism.util.clone(Prism.languages.pure['inline-lang'].inside)\n }\n o['inline-lang-' + alias].inside.rest = Prism.util.clone(\n Prism.languages[alias]\n )\n Prism.languages.insertBefore('pure', 'inline-lang', o)\n }\n }) // C is the default inline language\n if (Prism.languages.c) {\n Prism.languages.pure['inline-lang'].inside.rest = Prism.util.clone(\n Prism.languages.c\n )\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = purebasic\npurebasic.displayName = 'purebasic'\npurebasic.aliases = []\nfunction purebasic(Prism) {\n /*\nOriginal Code by Bas Groothedde\n!!MANY THANKS!! I never would have made this, regex and me will never be best friends ;)\n==> https://codepen.io/ImagineProgramming/details/JYydBy/\nslightly changed to pass all tests\n*/\n // PureBasic support, steal stuff from ansi-c\n Prism.languages.purebasic = Prism.languages.extend('clike', {\n comment: /;.*/,\n keyword:\n /\\b(?:align|and|as|break|calldebugger|case|compilercase|compilerdefault|compilerelse|compilerelseif|compilerendif|compilerendselect|compilererror|compilerif|compilerselect|continue|data|datasection|debug|debuglevel|declare|declarec|declarecdll|declaredll|declaremodule|default|define|dim|disableasm|disabledebugger|disableexplicit|else|elseif|enableasm|enabledebugger|enableexplicit|end|enddatasection|enddeclaremodule|endenumeration|endif|endimport|endinterface|endmacro|endmodule|endprocedure|endselect|endstructure|endstructureunion|endwith|enumeration|extends|fakereturn|for|foreach|forever|global|gosub|goto|if|import|importc|includebinary|includefile|includepath|interface|macro|module|newlist|newmap|next|not|or|procedure|procedurec|procedurecdll|proceduredll|procedurereturn|protected|prototype|prototypec|read|redim|repeat|restore|return|runtime|select|shared|static|step|structure|structureunion|swap|threaded|to|until|wend|while|with|xincludefile|xor)\\b/i,\n function: /\\b\\w+(?:\\.\\w+)?\\s*(?=\\()/,\n number: /(?:\\$[\\da-f]+|\\b-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e[+-]?\\d+)?)\\b/i,\n operator:\n /(?:@\\*?|\\?|\\*)\\w+|-[>-]?|\\+\\+?|!=?|<<?=?|>>?=?|==?|&&?|\\|?\\||[~^%?*/@]/\n })\n Prism.languages.insertBefore('purebasic', 'keyword', {\n tag: /#\\w+\\$?/,\n asm: {\n pattern: /(^[\\t ]*)!.*/m,\n lookbehind: true,\n alias: 'tag',\n inside: {\n comment: /;.*/,\n string: {\n pattern: /([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n // Anonymous label references, i.e.: jmp @b\n 'label-reference-anonymous': {\n pattern: /(!\\s*j[a-z]+\\s+)@[fb]/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n // Named label reference, i.e.: jne label1\n 'label-reference-addressed': {\n pattern: /(!\\s*j[a-z]+\\s+)[A-Z._?$@][\\w.?$@~#]*/i,\n lookbehind: true,\n alias: 'fasm-label'\n },\n keyword: [\n /\\b(?:extern|global)\\b[^;\\r\\n]*/i,\n /\\b(?:CPU|DEFAULT|FLOAT)\\b.*/\n ],\n function: {\n pattern: /^([\\t ]*!\\s*)[\\da-z]+(?=\\s|$)/im,\n lookbehind: true\n },\n 'function-inline': {\n pattern: /(:\\s*)[\\da-z]+(?=\\s)/i,\n lookbehind: true,\n alias: 'function'\n },\n label: {\n pattern: /^([\\t ]*!\\s*)[A-Za-z._?$@][\\w.?$@~#]*(?=:)/m,\n lookbehind: true,\n alias: 'fasm-label'\n },\n register:\n /\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|di|si|sp)|[cdefgs]s|mm\\d+)\\b/i,\n number:\n /(?:\\b|-|(?=\\$))(?:0[hx](?:[\\da-f]*\\.)?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,\n operator: /[\\[\\]*+\\-/%<>=&|$!,.:]/\n }\n }\n })\n delete Prism.languages.purebasic['class-name']\n delete Prism.languages.purebasic['boolean']\n Prism.languages.pbfasm = Prism.languages['purebasic']\n}\n","'use strict'\nvar refractorHaskell = require('./haskell.js')\nmodule.exports = purescript\npurescript.displayName = 'purescript'\npurescript.aliases = ['purs']\nfunction purescript(Prism) {\n Prism.register(refractorHaskell)\n Prism.languages.purescript = Prism.languages.extend('haskell', {\n keyword:\n /\\b(?:ado|case|class|data|derive|do|else|forall|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b|∀/,\n 'import-statement': {\n // The imported or hidden names are not included in this import\n // statement. This is because we want to highlight those exactly like\n // we do for the names in the program.\n pattern:\n /(^[\\t ]*)import\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+[A-Z][\\w']*(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,\n lookbehind: true,\n inside: {\n keyword: /\\b(?:as|hiding|import)\\b/,\n punctuation: /\\./\n }\n },\n // These are builtin functions only. Constructors are highlighted later as a constant.\n builtin:\n /\\b(?:absurd|add|ap|append|apply|between|bind|bottom|clamp|compare|comparing|compose|conj|const|degree|discard|disj|div|eq|flap|flip|gcd|identity|ifM|join|lcm|liftA1|liftM1|map|max|mempty|min|mod|mul|negate|not|notEq|one|otherwise|recip|show|sub|top|unit|unless|unlessM|void|when|whenM|zero)\\b/,\n operator: [\n // Infix operators\n Prism.languages.haskell.operator[0], // ASCII operators\n Prism.languages.haskell.operator[2], // All UTF16 Unicode operator symbols\n // This regex is equivalent to /(?=[\\x80-\\uFFFF])[\\p{gc=Math_Symbol}\\p{gc=Currency_Symbol}\\p{Modifier_Symbol}\\p{Other_Symbol}]/u\n // See https://github.com/PrismJS/prism/issues/3006 for more details.\n /[\\xa2-\\xa6\\xa8\\xa9\\xac\\xae-\\xb1\\xb4\\xb8\\xd7\\xf7\\u02c2-\\u02c5\\u02d2-\\u02df\\u02e5-\\u02eb\\u02ed\\u02ef-\\u02ff\\u0375\\u0384\\u0385\\u03f6\\u0482\\u058d-\\u058f\\u0606-\\u0608\\u060b\\u060e\\u060f\\u06de\\u06e9\\u06fd\\u06fe\\u07f6\\u07fe\\u07ff\\u09f2\\u09f3\\u09fa\\u09fb\\u0af1\\u0b70\\u0bf3-\\u0bfa\\u0c7f\\u0d4f\\u0d79\\u0e3f\\u0f01-\\u0f03\\u0f13\\u0f15-\\u0f17\\u0f1a-\\u0f1f\\u0f34\\u0f36\\u0f38\\u0fbe-\\u0fc5\\u0fc7-\\u0fcc\\u0fce\\u0fcf\\u0fd5-\\u0fd8\\u109e\\u109f\\u1390-\\u1399\\u166d\\u17db\\u1940\\u19de-\\u19ff\\u1b61-\\u1b6a\\u1b74-\\u1b7c\\u1fbd\\u1fbf-\\u1fc1\\u1fcd-\\u1fcf\\u1fdd-\\u1fdf\\u1fed-\\u1fef\\u1ffd\\u1ffe\\u2044\\u2052\\u207a-\\u207c\\u208a-\\u208c\\u20a0-\\u20bf\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211e-\\u2123\\u2125\\u2127\\u2129\\u212e\\u213a\\u213b\\u2140-\\u2144\\u214a-\\u214d\\u214f\\u218a\\u218b\\u2190-\\u2307\\u230c-\\u2328\\u232b-\\u2426\\u2440-\\u244a\\u249c-\\u24e9\\u2500-\\u2767\\u2794-\\u27c4\\u27c7-\\u27e5\\u27f0-\\u2982\\u2999-\\u29d7\\u29dc-\\u29fb\\u29fe-\\u2b73\\u2b76-\\u2b95\\u2b97-\\u2bff\\u2ce5-\\u2cea\\u2e50\\u2e51\\u2e80-\\u2e99\\u2e9b-\\u2ef3\\u2f00-\\u2fd5\\u2ff0-\\u2ffb\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303e\\u303f\\u309b\\u309c\\u3190\\u3191\\u3196-\\u319f\\u31c0-\\u31e3\\u3200-\\u321e\\u322a-\\u3247\\u3250\\u3260-\\u327f\\u328a-\\u32b0\\u32c0-\\u33ff\\u4dc0-\\u4dff\\ua490-\\ua4c6\\ua700-\\ua716\\ua720\\ua721\\ua789\\ua78a\\ua828-\\ua82b\\ua836-\\ua839\\uaa77-\\uaa79\\uab5b\\uab6a\\uab6b\\ufb29\\ufbb2-\\ufbc1\\ufdfc\\ufdfd\\ufe62\\ufe64-\\ufe66\\ufe69\\uff04\\uff0b\\uff1c-\\uff1e\\uff3e\\uff40\\uff5c\\uff5e\\uffe0-\\uffe6\\uffe8-\\uffee\\ufffc\\ufffd]/\n ]\n })\n Prism.languages.purs = Prism.languages.purescript\n}\n","'use strict'\n\nmodule.exports = python\npython.displayName = 'python'\npython.aliases = ['py']\nfunction python(Prism) {\n Prism.languages.python = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true,\n greedy: true\n },\n 'string-interpolation': {\n pattern:\n /(?:f|fr|rf)(?:(\"\"\"|''')[\\s\\S]*?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2)/i,\n greedy: true,\n inside: {\n interpolation: {\n // \"{\" <expression> <optional \"!s\", \"!r\", or \"!a\"> <optional \":\" format specifier> \"}\"\n pattern:\n /((?:^|[^{])(?:\\{\\{)*)\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}]|\\{(?!\\{)(?:[^{}])+\\})+\\})+\\}/,\n lookbehind: true,\n inside: {\n 'format-spec': {\n pattern: /(:)[^:(){}]+(?=\\}$)/,\n lookbehind: true\n },\n 'conversion-option': {\n pattern: /![sra](?=[:}]$)/,\n alias: 'punctuation'\n },\n rest: null\n }\n },\n string: /[\\s\\S]+/\n }\n },\n 'triple-quoted-string': {\n pattern: /(?:[rub]|br|rb)?(\"\"\"|''')[\\s\\S]*?\\1/i,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(?:[rub]|br|rb)?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/i,\n greedy: true\n },\n function: {\n pattern: /((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,\n lookbehind: true\n },\n 'class-name': {\n pattern: /(\\bclass\\s+)\\w+/i,\n lookbehind: true\n },\n decorator: {\n pattern: /(^[\\t ]*)@\\w+(?:\\.\\w+)*/m,\n lookbehind: true,\n alias: ['annotation', 'punctuation'],\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:_(?=\\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\\b/,\n builtin:\n /\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\n boolean: /\\b(?:False|None|True)\\b/,\n number:\n /\\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\\b|(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:e[+-]?\\d+(?:_\\d+)*)?j?(?!\\w)/i,\n operator: /[-+%=]=?|!=|:=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.python['string-interpolation'].inside[\n 'interpolation'\n ].inside.rest = Prism.languages.python\n Prism.languages.py = Prism.languages.python\n}\n","'use strict'\n\nmodule.exports = q\nq.displayName = 'q'\nq.aliases = []\nfunction q(Prism) {\n Prism.languages.q = {\n string: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n comment: [\n // From http://code.kx.com/wiki/Reference/Slash:\n // When / is following a space (or a right parenthesis, bracket, or brace), it is ignored with the rest of the line.\n {\n pattern: /([\\t )\\]}])\\/.*/,\n lookbehind: true,\n greedy: true\n }, // From http://code.kx.com/wiki/Reference/Slash:\n // A line which has / as its first character and contains at least one other non-whitespace character is a whole-line comment and is ignored entirely.\n // A / on a line by itself begins a multiline comment which is terminated by the next \\ on a line by itself.\n // If a / is not matched by a \\, the multiline comment is unterminated and continues to end of file.\n // The / and \\ must be the first char on the line, but may be followed by any amount of whitespace.\n {\n pattern:\n /(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r(?!\\n)))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,\n lookbehind: true,\n greedy: true\n }, // From http://code.kx.com/wiki/Reference/Slash:\n // A \\ on a line by itself with no preceding matching / will comment to end of file.\n {\n pattern: /^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,\n greedy: true\n },\n {\n pattern: /^#!.+/m,\n greedy: true\n }\n ],\n symbol: /`(?::\\S+|[\\w.]*)/,\n datetime: {\n pattern:\n /0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,\n alias: 'number'\n },\n // The negative look-ahead prevents bad highlighting\n // of verbs 0: and 1:\n number:\n /\\b(?![01]:)(?:0N[hje]?|0W[hj]?|0[wn]|0x[\\da-fA-F]+|\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?[hjfeb]?)/,\n keyword:\n /\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,\n adverb: {\n pattern: /['\\/\\\\]:?|\\beach\\b/,\n alias: 'function'\n },\n verb: {\n pattern: /(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?~=|$&#@^]):?|\\b_\\b:?/,\n alias: 'operator'\n },\n punctuation: /[(){}\\[\\];.]/\n }\n}\n","'use strict'\n\nmodule.exports = qml\nqml.displayName = 'qml'\nqml.aliases = []\nfunction qml(Prism) {\n ;(function (Prism) {\n var jsString = /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|'(?:\\\\.|[^\\\\'\\r\\n])*'/.source\n var jsComment = /\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\//.source\n var jsExpr =\n /(?:[^\\\\()[\\]{}\"'/]|<string>|\\/(?![*/])|<comment>|\\(<expr>*\\)|\\[<expr>*\\]|\\{<expr>*\\}|\\\\[\\s\\S])/.source\n .replace(/<string>/g, function () {\n return jsString\n })\n .replace(/<comment>/g, function () {\n return jsComment\n }) // the pattern will blow up, so only a few iterations\n for (var i = 0; i < 2; i++) {\n jsExpr = jsExpr.replace(/<expr>/g, function () {\n return jsExpr\n })\n }\n jsExpr = jsExpr.replace(/<expr>/g, '[^\\\\s\\\\S]')\n Prism.languages.qml = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n 'javascript-function': {\n pattern: RegExp(\n /((?:^|;)[ \\t]*)function\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*\\(<js>*\\)\\s*\\{<js>*\\}/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n 'class-name': {\n pattern: /((?:^|[:;])[ \\t]*)(?!\\d)\\w+(?=[ \\t]*\\{|[ \\t]+on\\b)/m,\n lookbehind: true\n },\n property: [\n {\n pattern: /((?:^|[;{])[ \\t]*)(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true\n },\n {\n pattern:\n /((?:^|[;{])[ \\t]*)property[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*[ \\t]+(?!\\d)\\w+(?:\\.\\w+)*(?=[ \\t]*:)/m,\n lookbehind: true,\n inside: {\n keyword: /^property/,\n property: /\\w+(?:\\.\\w+)*/\n }\n }\n ],\n 'javascript-expression': {\n pattern: RegExp(\n /(:[ \\t]*)(?![\\s;}[])(?:(?!$|[;}])<js>)+/.source.replace(\n /<js>/g,\n function () {\n return jsExpr\n }\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'language-javascript',\n inside: Prism.languages.javascript\n },\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n keyword: /\\b(?:as|import|on)\\b/,\n punctuation: /[{}[\\]:;,]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = qore\nqore.displayName = 'qore'\nqore.aliases = []\nfunction qore(Prism) {\n Prism.languages.qore = Prism.languages.extend('clike', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,\n lookbehind: true\n },\n // Overridden to allow unescaped multi-line strings\n string: {\n pattern: /(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,\n greedy: true\n },\n keyword:\n /\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:bool|date|float|int|list|number|string)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\$?\\b(?!\\d)\\w+(?=\\()/,\n number:\n /\\b(?:0b[01]+|0x(?:[\\da-f]*\\.)?[\\da-fp\\-]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:e\\d+)?[df]|(?:\\d+(?:\\.\\d+)?|\\.\\d+))\\b/i,\n operator: {\n pattern:\n /(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,\n lookbehind: true\n },\n variable: /\\$(?!\\d)\\w+\\b/\n })\n}\n","'use strict'\n\nmodule.exports = qsharp\nqsharp.displayName = 'qsharp'\nqsharp.aliases = ['qs']\nfunction qsharp(Prism) {\n ;(function (Prism) {\n /**\n * Replaces all placeholders \"<<n>>\" of given pattern with the n-th replacement (zero based).\n *\n * Note: This is a simple text based replacement. Be careful when using backreferences!\n *\n * @param {string} pattern the given pattern.\n * @param {string[]} replacements a list of replacement which can be inserted into the given pattern.\n * @returns {string} the pattern with all placeholders replaced with their corresponding replacements.\n * @example replace(/a<<0>>a/.source, [/b+/.source]) === /a(?:b+)a/.source\n */\n function replace(pattern, replacements) {\n return pattern.replace(/<<(\\d+)>>/g, function (m, index) {\n return '(?:' + replacements[+index] + ')'\n })\n }\n /**\n * @param {string} pattern\n * @param {string[]} replacements\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function re(pattern, replacements, flags) {\n return RegExp(replace(pattern, replacements), flags || '')\n }\n /**\n * Creates a nested pattern where all occurrences of the string `<<self>>` are replaced with the pattern itself.\n *\n * @param {string} pattern\n * @param {number} depthLog2\n * @returns {string}\n */\n function nested(pattern, depthLog2) {\n for (var i = 0; i < depthLog2; i++) {\n pattern = pattern.replace(/<<self>>/g, function () {\n return '(?:' + pattern + ')'\n })\n }\n return pattern.replace(/<<self>>/g, '[^\\\\s\\\\S]')\n } // https://docs.microsoft.com/en-us/azure/quantum/user-guide/language/typesystem/\n // https://github.com/microsoft/qsharp-language/tree/main/Specifications/Language/5_Grammar\n var keywordKinds = {\n // keywords which represent a return or variable type\n type: 'Adj BigInt Bool Ctl Double false Int One Pauli PauliI PauliX PauliY PauliZ Qubit Range Result String true Unit Zero',\n // all other keywords\n other:\n 'Adjoint adjoint apply as auto body borrow borrowing Controlled controlled distribute elif else fail fixup for function if in internal intrinsic invert is let mutable namespace new newtype open operation repeat return self set until use using while within'\n } // keywords\n function keywordsToPattern(words) {\n return '\\\\b(?:' + words.trim().replace(/ /g, '|') + ')\\\\b'\n }\n var keywords = RegExp(\n keywordsToPattern(keywordKinds.type + ' ' + keywordKinds.other)\n ) // types\n var identifier = /\\b[A-Za-z_]\\w*\\b/.source\n var qualifiedName = replace(/<<0>>(?:\\s*\\.\\s*<<0>>)*/.source, [identifier])\n var typeInside = {\n keyword: keywords,\n punctuation: /[<>()?,.:[\\]]/\n } // strings\n var regularString = /\"(?:\\\\.|[^\\\\\"])*\"/.source\n Prism.languages.qsharp = Prism.languages.extend('clike', {\n comment: /\\/\\/.*/,\n string: [\n {\n pattern: re(/(^|[^$\\\\])<<0>>/.source, [regularString]),\n lookbehind: true,\n greedy: true\n }\n ],\n 'class-name': [\n {\n // open Microsoft.Quantum.Canon;\n // open Microsoft.Quantum.Canon as CN;\n pattern: re(/(\\b(?:as|open)\\s+)<<0>>(?=\\s*(?:;|as\\b))/.source, [\n qualifiedName\n ]),\n lookbehind: true,\n inside: typeInside\n },\n {\n // namespace Quantum.App1;\n pattern: re(/(\\bnamespace\\s+)<<0>>(?=\\s*\\{)/.source, [qualifiedName]),\n lookbehind: true,\n inside: typeInside\n }\n ],\n keyword: keywords,\n number:\n /(?:\\b0(?:x[\\da-f]+|b[01]+|o[0-7]+)|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d*)?)(?:e[-+]?\\d+)?)l?\\b/i,\n operator:\n /\\band=|\\bor=|\\band\\b|\\bnot\\b|\\bor\\b|<[-=]|[-=]>|>>>=?|<<<=?|\\^\\^\\^=?|\\|\\|\\|=?|&&&=?|w\\/=?|~~~|[*\\/+\\-^=!%]=?/,\n punctuation: /::|[{}[\\];(),.:]/\n })\n Prism.languages.insertBefore('qsharp', 'number', {\n range: {\n pattern: /\\.\\./,\n alias: 'operator'\n }\n }) // single line\n var interpolationExpr = nested(\n replace(/\\{(?:[^\"{}]|<<0>>|<<self>>)*\\}/.source, [regularString]),\n 2\n )\n Prism.languages.insertBefore('qsharp', 'string', {\n 'interpolation-string': {\n pattern: re(/\\$\"(?:\\\\.|<<0>>|[^\\\\\"{])*\"/.source, [interpolationExpr]),\n greedy: true,\n inside: {\n interpolation: {\n pattern: re(/((?:^|[^\\\\])(?:\\\\\\\\)*)<<0>>/.source, [\n interpolationExpr\n ]),\n lookbehind: true,\n inside: {\n punctuation: /^\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n alias: 'language-qsharp',\n inside: Prism.languages.qsharp\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n })(Prism)\n Prism.languages.qs = Prism.languages.qsharp\n}\n","'use strict'\n\nmodule.exports = r\nr.displayName = 'r'\nr.aliases = []\nfunction r(Prism) {\n Prism.languages.r = {\n comment: /#.*/,\n string: {\n pattern: /(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'percent-operator': {\n // Includes user-defined operators\n // and %%, %*%, %/%, %in%, %o%, %x%\n pattern: /%[^%\\s]*%/,\n alias: 'operator'\n },\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n ellipsis: /\\.\\.(?:\\.|\\d+)/,\n number: [\n /\\b(?:Inf|NaN)\\b/,\n /(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/\n ],\n keyword:\n /\\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\\b/,\n operator: /->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,\n punctuation: /[(){}\\[\\],;]/\n }\n}\n","'use strict'\nvar refractorScheme = require('./scheme.js')\nmodule.exports = racket\nracket.displayName = 'racket'\nracket.aliases = ['rkt']\nfunction racket(Prism) {\n Prism.register(refractorScheme)\n Prism.languages.racket = Prism.languages.extend('scheme', {\n 'lambda-parameter': {\n // the racket lambda syntax is a lot more complex, so we won't even attempt to capture it.\n // this will just prevent false positives of the `function` pattern\n pattern: /([(\\[]lambda\\s+[(\\[])[^()\\[\\]'\\s]+/,\n lookbehind: true\n }\n })\n Prism.languages.insertBefore('racket', 'string', {\n lang: {\n pattern: /^#lang.+/m,\n greedy: true,\n alias: 'keyword'\n }\n })\n Prism.languages.rkt = Prism.languages.racket\n}\n","'use strict'\n\nmodule.exports = reason\nreason.displayName = 'reason'\nreason.aliases = []\nfunction reason(Prism) {\n Prism.languages.reason = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,\n greedy: true\n },\n // 'class-name' must be matched *after* 'constructor' defined below\n 'class-name': /\\b[A-Z]\\w*/,\n keyword:\n /\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,\n operator:\n /\\.{3}|:[:=]|\\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:asr|land|lor|lsl|lsr|lxor|mod)\\b/\n })\n Prism.languages.insertBefore('reason', 'class-name', {\n char: {\n pattern: /'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,\n greedy: true\n },\n // Negative look-ahead prevents from matching things like String.capitalize\n constructor: /\\b[A-Z]\\w*\\b(?!\\s*\\.)/,\n label: {\n pattern: /\\b[a-z]\\w*(?=::)/,\n alias: 'symbol'\n }\n }) // We can't match functions property, so let's not even try.\n delete Prism.languages.reason.function\n}\n","'use strict'\n\nmodule.exports = regex\nregex.displayName = 'regex'\nregex.aliases = []\nfunction regex(Prism) {\n ;(function (Prism) {\n var specialEscape = {\n pattern: /\\\\[\\\\(){}[\\]^$+*?|.]/,\n alias: 'escape'\n }\n var escape =\n /\\\\(?:x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/\n var charSet = {\n pattern: /\\.|\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var charSetWithoutDot = {\n pattern: /\\\\[wsd]|\\\\p\\{[^{}]+\\}/i,\n alias: 'class-name'\n }\n var rangeChar = '(?:[^\\\\\\\\-]|' + escape.source + ')'\n var range = RegExp(rangeChar + '-' + rangeChar) // the name of a capturing group\n var groupName = {\n pattern: /(<|')[^<>']+(?=[>']$)/,\n lookbehind: true,\n alias: 'variable'\n }\n Prism.languages.regex = {\n 'char-class': {\n pattern: /((?:^|[^\\\\])(?:\\\\\\\\)*)\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/,\n lookbehind: true,\n inside: {\n 'char-class-negation': {\n pattern: /(^\\[)\\^/,\n lookbehind: true,\n alias: 'operator'\n },\n 'char-class-punctuation': {\n pattern: /^\\[|\\]$/,\n alias: 'punctuation'\n },\n range: {\n pattern: range,\n inside: {\n escape: escape,\n 'range-punctuation': {\n pattern: /-/,\n alias: 'operator'\n }\n }\n },\n 'special-escape': specialEscape,\n 'char-set': charSetWithoutDot,\n escape: escape\n }\n },\n 'special-escape': specialEscape,\n 'char-set': charSet,\n backreference: [\n {\n // a backreference which is not an octal escape\n pattern: /\\\\(?![123][0-7]{2})[1-9]/,\n alias: 'keyword'\n },\n {\n pattern: /\\\\k<[^<>']+>/,\n alias: 'keyword',\n inside: {\n 'group-name': groupName\n }\n }\n ],\n anchor: {\n pattern: /[$^]|\\\\[ABbGZz]/,\n alias: 'function'\n },\n escape: escape,\n group: [\n {\n // https://docs.oracle.com/javase/10/docs/api/java/util/regex/Pattern.html\n // https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference?view=netframework-4.7.2#grouping-constructs\n // (), (?<name>), (?'name'), (?>), (?:), (?=), (?!), (?<=), (?<!), (?is-m), (?i-m:)\n pattern:\n /\\((?:\\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,\n alias: 'punctuation',\n inside: {\n 'group-name': groupName\n }\n },\n {\n pattern: /\\)/,\n alias: 'punctuation'\n }\n ],\n quantifier: {\n pattern: /(?:[+*?]|\\{\\d+(?:,\\d*)?\\})[?+]?/,\n alias: 'number'\n },\n alternation: {\n pattern: /\\|/,\n alias: 'keyword'\n }\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = rego\nrego.displayName = 'rego'\nrego.aliases = []\nfunction rego(Prism) {\n // https://www.openpolicyagent.org/docs/latest/policy-reference/\n Prism.languages.rego = {\n comment: /#.*/,\n property: {\n pattern:\n /(^|[^\\\\.])(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`|\\b[a-z_]\\w*\\b)(?=\\s*:(?!=))/i,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|`[^`]*`/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /\\b(?:as|default|else|import|not|null|package|set(?=\\s*\\()|some|with)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n function: {\n pattern: /\\b[a-z_]\\w*\\b(?:\\s*\\.\\s*\\b[a-z_]\\w*\\b)*(?=\\s*\\()/i,\n inside: {\n namespace: /\\b\\w+\\b(?=\\s*\\.)/,\n punctuation: /\\./\n }\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n operator: /[-+*/%|&]|[<>:=]=?|!=|\\b_\\b/,\n punctuation: /[,;.\\[\\]{}()]/\n }\n}\n","'use strict'\n\nmodule.exports = renpy\nrenpy.displayName = 'renpy'\nrenpy.aliases = ['rpy']\nfunction renpy(Prism) {\n Prism.languages.renpy = {\n comment: {\n pattern: /(^|[^\\\\])#.+/,\n lookbehind: true\n },\n string: {\n pattern:\n /(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\])*\\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,\n greedy: true\n },\n function: /\\b[a-z_]\\w*(?=\\()/i,\n property:\n /\\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\\b/,\n tag: /\\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\\b|\\$/,\n keyword:\n /\\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\\b/,\n boolean: /\\b(?:[Ff]alse|[Tt]rue)\\b/,\n number:\n /(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,\n operator:\n /[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:and|at|not|or|with)\\b/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.rpy = Prism.languages.renpy\n}\n","'use strict'\n\nmodule.exports = rest\nrest.displayName = 'rest'\nrest.aliases = []\nfunction rest(Prism) {\n Prism.languages.rest = {\n table: [\n {\n pattern:\n /(^[\\t ]*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1[+|].+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/m,\n lookbehind: true,\n inside: {\n punctuation: /\\||(?:\\+[=-]+)+\\+/\n }\n },\n {\n pattern:\n /(^[\\t ]*)=+ [ =]*=(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1=+ [ =]*=(?=(?:\\r?\\n|\\r){2}|\\s*$)/m,\n lookbehind: true,\n inside: {\n punctuation: /[=-]+/\n }\n }\n ],\n // Directive-like patterns\n 'substitution-def': {\n pattern: /(^[\\t ]*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,\n lookbehind: true,\n inside: {\n substitution: {\n pattern: /^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,\n alias: 'attr-value',\n inside: {\n punctuation: /^\\||\\|$/\n }\n },\n directive: {\n pattern: /( )(?! )[^:]+::/,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n }\n }\n },\n 'link-target': [\n {\n pattern: /(^[\\t ]*\\.\\. )\\[[^\\]]+\\]/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]$/\n }\n },\n {\n pattern: /(^[\\t ]*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /^_|:$/\n }\n }\n ],\n directive: {\n pattern: /(^[\\t ]*\\.\\. )[^:]+::/m,\n lookbehind: true,\n alias: 'function',\n inside: {\n punctuation: /::$/\n }\n },\n comment: {\n // The two alternatives try to prevent highlighting of blank comments\n pattern:\n /(^[\\t ]*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,\n lookbehind: true\n },\n title: [\n // Overlined and underlined\n {\n pattern:\n /^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,\n inside: {\n punctuation:\n /^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n }, // Underlined only\n {\n pattern:\n /(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,\n lookbehind: true,\n inside: {\n punctuation: /[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,\n important: /.+/\n }\n }\n ],\n hr: {\n pattern:\n /((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,\n lookbehind: true,\n alias: 'punctuation'\n },\n field: {\n pattern: /(^[\\t ]*):[^:\\r\\n]+:(?= )/m,\n lookbehind: true,\n alias: 'attr-name'\n },\n 'command-line-option': {\n pattern:\n /(^[\\t ]*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,\n lookbehind: true,\n alias: 'symbol'\n },\n 'literal-block': {\n pattern: /::(?:\\r?\\n|\\r){2}([ \\t]+)(?![ \\t]).+(?:(?:\\r?\\n|\\r)\\1.+)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^::/,\n alias: 'punctuation'\n }\n }\n },\n 'quoted-literal-block': {\n pattern:\n /::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,\n inside: {\n 'literal-block-punctuation': {\n pattern: /^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,\n alias: 'punctuation'\n }\n }\n },\n 'list-bullet': {\n pattern:\n /(^[\\t ]*)(?:[*+\\-•‣⁃]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'doctest-block': {\n pattern: /(^[\\t ]*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,\n lookbehind: true,\n inside: {\n punctuation: /^>>>/\n }\n },\n inline: [\n {\n pattern:\n /(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s)(?:(?!\\2).)*\\S\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,\n lookbehind: true,\n inside: {\n bold: {\n pattern: /(^\\*\\*).+(?=\\*\\*$)/,\n lookbehind: true\n },\n italic: {\n pattern: /(^\\*).+(?=\\*$)/,\n lookbehind: true\n },\n 'inline-literal': {\n pattern: /(^``).+(?=``$)/,\n lookbehind: true,\n alias: 'symbol'\n },\n role: {\n pattern: /^:[^:]+:|:[^:]+:$/,\n alias: 'function',\n inside: {\n punctuation: /^:|:$/\n }\n },\n 'interpreted-text': {\n pattern: /(^`).+(?=`$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n substitution: {\n pattern: /(^\\|).+(?=\\|$)/,\n lookbehind: true,\n alias: 'attr-value'\n },\n punctuation: /\\*\\*?|``?|\\|/\n }\n }\n ],\n link: [\n {\n pattern: /\\[[^\\[\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,\n alias: 'string',\n inside: {\n punctuation: /^\\[|\\]_$/\n }\n },\n {\n pattern:\n /(?:\\b[a-z\\d]+(?:[_.:+][a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,\n alias: 'string',\n inside: {\n punctuation: /^_?`|`$|`?_?_$/\n }\n }\n ],\n // Line block start,\n // quote attribution,\n // explicit markup start,\n // and anonymous hyperlink target shortcut (__)\n punctuation: {\n pattern: /(^[\\t ]*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,\n lookbehind: true\n }\n }\n}\n","'use strict'\n\nmodule.exports = rip\nrip.displayName = 'rip'\nrip.aliases = []\nfunction rip(Prism) {\n Prism.languages.rip = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n char: {\n pattern: /\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n regex: {\n pattern:\n /(^|[^/])\\/(?!\\/)(?:\\[[^\\n\\r\\]]*\\]|\\\\.|[^/\\\\\\r\\n\\[])+\\/(?=\\s*(?:$|[\\r\\n,.;})]))/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /(?:=>|->)|\\b(?:case|catch|class|else|exit|finally|if|raise|return|switch|try)\\b/,\n builtin: /@|\\bSystem\\b/,\n boolean: /\\b(?:false|true)\\b/,\n date: /\\b\\d{4}-\\d{2}-\\d{2}\\b/,\n time: /\\b\\d{2}:\\d{2}:\\d{2}\\b/,\n datetime: /\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,\n symbol: /:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,\n number: /[+-]?\\b(?:\\d+\\.\\d+|\\d+)\\b/,\n punctuation: /(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,\n reference: /[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/\n }\n}\n","'use strict'\n\nmodule.exports = roboconf\nroboconf.displayName = 'roboconf'\nroboconf.aliases = []\nfunction roboconf(Prism) {\n Prism.languages.roboconf = {\n comment: /#.*/,\n keyword: {\n pattern:\n /(^|\\s)(?:(?:external|import)\\b|(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{))/,\n lookbehind: true\n },\n component: {\n pattern: /[\\w-]+(?=[ \\t]*\\{)/,\n alias: 'variable'\n },\n property: /[\\w.-]+(?=[ \\t]*:)/,\n value: {\n pattern: /(=[ \\t]*(?![ \\t]))[^,;]+/,\n lookbehind: true,\n alias: 'attr-value'\n },\n optional: {\n pattern: /\\(optional\\)/,\n alias: 'builtin'\n },\n wildcard: {\n pattern: /(\\.)\\*/,\n lookbehind: true,\n alias: 'operator'\n },\n punctuation: /[{},.;:=]/\n }\n}\n","'use strict'\n\nmodule.exports = robotframework\nrobotframework.displayName = 'robotframework'\nrobotframework.aliases = []\nfunction robotframework(Prism) {\n ;(function (Prism) {\n var comment = {\n pattern: /(^[ \\t]*| {2}|\\t)#.*/m,\n lookbehind: true,\n greedy: true\n }\n var variable = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)[$@&%]\\{(?:[^{}\\r\\n]|\\{[^{}\\r\\n]*\\})*\\}/,\n lookbehind: true,\n inside: {\n punctuation: /^[$@&%]\\{|\\}$/\n }\n }\n function createSection(name, inside) {\n var extendecInside = {}\n extendecInside['section-header'] = {\n pattern: /^ ?\\*{3}.+?\\*{3}/,\n alias: 'keyword'\n } // copy inside tokens\n for (var token in inside) {\n extendecInside[token] = inside[token]\n }\n extendecInside['tag'] = {\n pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)\\[[-\\w]+\\]/,\n lookbehind: true,\n inside: {\n punctuation: /\\[|\\]/\n }\n }\n extendecInside['variable'] = variable\n extendecInside['comment'] = comment\n return {\n pattern: RegExp(\n /^ ?\\*{3}[ \\t]*<name>[ \\t]*\\*{3}(?:.|[\\r\\n](?!\\*{3}))*/.source.replace(\n /<name>/g,\n function () {\n return name\n }\n ),\n 'im'\n ),\n alias: 'section',\n inside: extendecInside\n }\n }\n var docTag = {\n pattern:\n /(\\[Documentation\\](?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n }\n var testNameLike = {\n pattern: /([\\r\\n] ?)(?!#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n alias: 'function',\n inside: {\n variable: variable\n }\n }\n var testPropertyLike = {\n pattern: /([\\r\\n](?: {2}|\\t)[ \\t]*)(?!\\[|\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true,\n inside: {\n variable: variable\n }\n }\n Prism.languages['robotframework'] = {\n settings: createSection('Settings', {\n documentation: {\n pattern:\n /([\\r\\n] ?Documentation(?: {2}|\\t)[ \\t]*)(?![ \\t]|#)(?:.|(?:\\r\\n?|\\n)[ \\t]*\\.{3})+/,\n lookbehind: true,\n alias: 'string'\n },\n property: {\n pattern: /([\\r\\n] ?)(?!\\.{3}|#)(?:\\S(?:[ \\t]\\S)*)+/,\n lookbehind: true\n }\n }),\n variables: createSection('Variables'),\n 'test-cases': createSection('Test Cases', {\n 'test-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n keywords: createSection('Keywords', {\n 'keyword-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n tasks: createSection('Tasks', {\n 'task-name': testNameLike,\n documentation: docTag,\n property: testPropertyLike\n }),\n comment: comment\n }\n Prism.languages.robot = Prism.languages['robotframework']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = ruby\nruby.displayName = 'ruby'\nruby.aliases = ['rb']\nfunction ruby(Prism) {\n /**\n * Original by Samuel Flores\n *\n * Adds the following new token classes:\n * constant, builtin, variable, symbol, regex\n */\n ;(function (Prism) {\n Prism.languages.ruby = Prism.languages.extend('clike', {\n comment: {\n pattern: /#.*|^=begin\\s[\\s\\S]*?^=end/m,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|module)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+|\\b[A-Z_]\\w*(?=\\s*\\.\\s*new\\b)/,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\\b/,\n operator:\n /\\.{2,3}|&\\.|===|<?=>|[!=]?~|(?:&&|\\|\\||<<|>>|\\*\\*|[+\\-*/%<>!^&|=])=?|[?:]/,\n punctuation: /[(){}[\\].,;]/\n })\n Prism.languages.insertBefore('ruby', 'operator', {\n 'double-colon': {\n pattern: /::/,\n alias: 'punctuation'\n }\n })\n var interpolation = {\n pattern: /((?:^|[^\\\\])(?:\\\\{2})*)#\\{(?:[^{}]|\\{[^{}]*\\})*\\}/,\n lookbehind: true,\n inside: {\n content: {\n pattern: /^(#\\{)[\\s\\S]+(?=\\}$)/,\n lookbehind: true,\n inside: Prism.languages.ruby\n },\n delimiter: {\n pattern: /^#\\{|\\}$/,\n alias: 'punctuation'\n }\n }\n }\n delete Prism.languages.ruby.function\n var percentExpression =\n '(?:' +\n [\n /([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/.source,\n /\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)/.source,\n /\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}/.source,\n /\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]/.source,\n /<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>/.source\n ].join('|') +\n ')'\n var symbolName =\n /(?:\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)/\n .source\n Prism.languages.insertBefore('ruby', 'keyword', {\n 'regex-literal': [\n {\n pattern: RegExp(\n /%r/.source + percentExpression + /[egimnosux]{0,6}/.source\n ),\n greedy: true,\n inside: {\n interpolation: interpolation,\n regex: /[\\s\\S]+/\n }\n },\n {\n pattern:\n /(^|[^/])\\/(?!\\/)(?:\\[[^\\r\\n\\]]+\\]|\\\\.|[^[/\\\\\\r\\n])+\\/[egimnosux]{0,6}(?=\\s*(?:$|[\\r\\n,.;})#]))/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: interpolation,\n regex: /[\\s\\S]+/\n }\n }\n ],\n variable: /[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,\n symbol: [\n {\n pattern: RegExp(/(^|[^:]):/.source + symbolName),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: RegExp(\n /([\\r\\n{(,][ \\t]*)/.source + symbolName + /(?=:(?!:))/.source\n ),\n lookbehind: true,\n greedy: true\n }\n ],\n 'method-definition': {\n pattern: /(\\bdef\\s+)\\w+(?:\\s*\\.\\s*\\w+)?/,\n lookbehind: true,\n inside: {\n function: /\\b\\w+$/,\n keyword: /^self\\b/,\n 'class-name': /^\\w+/,\n punctuation: /\\./\n }\n }\n })\n Prism.languages.insertBefore('ruby', 'string', {\n 'string-literal': [\n {\n pattern: RegExp(/%[qQiIwWs]?/.source + percentExpression),\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern:\n /(\"|')(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\#\\r\\n])*\\1/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?([a-z_]\\w*)[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<[-~]?[a-z_]\\w*|\\b[a-z_]\\w*$/i,\n inside: {\n symbol: /\\b\\w+/,\n punctuation: /^<<[-~]?/\n }\n },\n interpolation: interpolation,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: /<<[-~]?'([a-z_]\\w*)'[\\r\\n](?:.*[\\r\\n])*?[\\t ]*\\1/i,\n alias: 'heredoc-string',\n greedy: true,\n inside: {\n delimiter: {\n pattern: /^<<[-~]?'[a-z_]\\w*'|\\b[a-z_]\\w*$/i,\n inside: {\n symbol: /\\b\\w+/,\n punctuation: /^<<[-~]?'|'$/\n }\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n 'command-literal': [\n {\n pattern: RegExp(/%x/.source + percentExpression),\n greedy: true,\n inside: {\n interpolation: interpolation,\n command: {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n },\n {\n pattern: /`(?:#\\{[^}]+\\}|#(?!\\{)|\\\\(?:\\r\\n|[\\s\\S])|[^\\\\`#\\r\\n])*`/,\n greedy: true,\n inside: {\n interpolation: interpolation,\n command: {\n pattern: /[\\s\\S]+/,\n alias: 'string'\n }\n }\n }\n ]\n })\n delete Prism.languages.ruby.string\n Prism.languages.insertBefore('ruby', 'number', {\n builtin:\n /\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\\b/,\n constant: /\\b[A-Z][A-Z0-9_]*(?:[?!]|\\b)/\n })\n Prism.languages.rb = Prism.languages.ruby\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = rust\nrust.displayName = 'rust'\nrust.aliases = []\nfunction rust(Prism) {\n ;(function (Prism) {\n var multilineComment = /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\//.source\n for (var i = 0; i < 2; i++) {\n // support 4 levels of nested comments\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return multilineComment\n })\n }\n multilineComment = multilineComment.replace(/<self>/g, function () {\n return /[^\\s\\S]/.source\n })\n Prism.languages.rust = {\n comment: [\n {\n pattern: RegExp(/(^|[^\\\\])/.source + multilineComment),\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /b?\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|b?r(#*)\"(?:[^\"]|\"(?!\\1))*\"\\1/,\n greedy: true\n },\n char: {\n pattern:\n /b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u\\{(?:[\\da-fA-F]_*){1,6}\\}|.)|[^\\\\\\r\\n\\t'])'/,\n greedy: true\n },\n attribute: {\n pattern: /#!?\\[(?:[^\\[\\]\"]|\"(?:\\\\[\\s\\S]|[^\\\\\"])*\")*\\]/,\n greedy: true,\n alias: 'attr-name',\n inside: {\n string: null // see below\n }\n },\n // Closure params should not be confused with bitwise OR |\n 'closure-params': {\n pattern: /([=(,:]\\s*|\\bmove\\s*)\\|[^|]*\\||\\|[^|]*\\|(?=\\s*(?:\\{|->))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'closure-punctuation': {\n pattern: /^\\||\\|$/,\n alias: 'punctuation'\n },\n rest: null // see below\n }\n },\n 'lifetime-annotation': {\n pattern: /'\\w+/,\n alias: 'symbol'\n },\n 'fragment-specifier': {\n pattern: /(\\$\\w+:)[a-z]+/,\n lookbehind: true,\n alias: 'punctuation'\n },\n variable: /\\$\\w+/,\n 'function-definition': {\n pattern: /(\\bfn\\s+)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n 'type-definition': {\n pattern: /(\\b(?:enum|struct|trait|type|union)\\s+)\\w+/,\n lookbehind: true,\n alias: 'class-name'\n },\n 'module-declaration': [\n {\n pattern: /(\\b(?:crate|mod)\\s+)[a-z][a-z_\\d]*/,\n lookbehind: true,\n alias: 'namespace'\n },\n {\n pattern:\n /(\\b(?:crate|self|super)\\s*)::\\s*[a-z][a-z_\\d]*\\b(?:\\s*::(?:\\s*[a-z][a-z_\\d]*\\s*::)*)?/,\n lookbehind: true,\n alias: 'namespace',\n inside: {\n punctuation: /::/\n }\n }\n ],\n keyword: [\n // https://github.com/rust-lang/reference/blob/master/src/keywords.md\n /\\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\\b/, // primitives and str\n // https://doc.rust-lang.org/stable/rust-by-example/primitives.html\n /\\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\\b/\n ],\n // functions can technically start with an upper-case letter, but this will introduce a lot of false positives\n // and Rust's naming conventions recommend snake_case anyway.\n // https://doc.rust-lang.org/1.0.0/style/style/naming/README.html\n function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())/,\n macro: {\n pattern: /\\b\\w+!/,\n alias: 'property'\n },\n constant: /\\b[A-Z_][A-Z_\\d]+\\b/,\n 'class-name': /\\b[A-Z]\\w*\\b/,\n namespace: {\n pattern: /(?:\\b[a-z][a-z_\\d]*\\s*::\\s*)*\\b[a-z][a-z_\\d]*\\s*::(?!\\s*<)/,\n inside: {\n punctuation: /::/\n }\n },\n // Hex, oct, bin, dec numbers with visual separators and type suffix\n number:\n /\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\\d(?:_?\\d)*)?\\.)?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\\b/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: /->|\\.\\.=|\\.{1,3}|::|[{}[\\];(),:]/,\n operator: /[-+*\\/%!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?=?|[@?]/\n }\n Prism.languages.rust['closure-params'].inside.rest = Prism.languages.rust\n Prism.languages.rust['attribute'].inside['string'] =\n Prism.languages.rust['string']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sas\nsas.displayName = 'sas'\nsas.aliases = []\nfunction sas(Prism) {\n ;(function (Prism) {\n var stringPattern = /(?:\"(?:\"\"|[^\"])*\"(?!\")|'(?:''|[^'])*'(?!'))/.source\n var number = /\\b(?:\\d[\\da-f]*x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i\n var numericConstant = {\n pattern: RegExp(stringPattern + '[bx]'),\n alias: 'number'\n }\n var macroVariable = {\n pattern: /&[a-z_]\\w*/i\n }\n var macroKeyword = {\n pattern:\n /((?:^|\\s|=|\\())%(?:ABORT|BY|CMS|COPY|DISPLAY|DO|ELSE|END|EVAL|GLOBAL|GO|GOTO|IF|INC|INCLUDE|INDEX|INPUT|KTRIM|LENGTH|LET|LIST|LOCAL|PUT|QKTRIM|QSCAN|QSUBSTR|QSYSFUNC|QUPCASE|RETURN|RUN|SCAN|SUBSTR|SUPERQ|SYMDEL|SYMEXIST|SYMGLOBL|SYMLOCAL|SYSCALL|SYSEVALF|SYSEXEC|SYSFUNC|SYSGET|SYSRPUT|THEN|TO|TSO|UNQUOTE|UNTIL|UPCASE|WHILE|WINDOW)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var step = {\n pattern: /(^|\\s)(?:proc\\s+\\w+|data(?!=)|quit|run)\\b/i,\n alias: 'keyword',\n lookbehind: true\n }\n var comment = [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(^[ \\t]*|;\\s*)\\*[^;]*;/m,\n lookbehind: true\n }\n ]\n var string = {\n pattern: RegExp(stringPattern),\n greedy: true\n }\n var punctuation = /[$%@.(){}\\[\\];,\\\\]/\n var func = {\n pattern: /%?\\b\\w+(?=\\()/,\n alias: 'keyword'\n }\n var args = {\n function: func,\n 'arg-value': {\n pattern: /(=\\s*)[A-Z\\.]+/i,\n lookbehind: true\n },\n operator: /=/,\n 'macro-variable': macroVariable,\n arg: {\n pattern: /[A-Z]+/i,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n var format = {\n pattern: /\\b(?:format|put)\\b=?[\\w'$.]+/i,\n inside: {\n keyword: /^(?:format|put)(?==)/i,\n equals: /=/,\n format: {\n pattern: /(?:\\w|\\$\\d)+\\.\\d?/,\n alias: 'number'\n }\n }\n }\n var altformat = {\n pattern: /\\b(?:format|put)\\s+[\\w']+(?:\\s+[$.\\w]+)+(?=;)/i,\n inside: {\n keyword: /^(?:format|put)/i,\n format: {\n pattern: /[\\w$]+\\.\\d?/,\n alias: 'number'\n }\n }\n }\n var globalStatements = {\n pattern:\n /((?:^|\\s)=?)(?:catname|checkpoint execute_always|dm|endsas|filename|footnote|%include|libname|%list|lock|missing|options|page|resetline|%run|sasfile|skip|sysecho|title\\d?)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var submitStatement = {\n pattern: /(^|\\s)(?:submit(?:\\s+(?:load|norun|parseonly))?|endsubmit)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n }\n var actionSets =\n /aStore|accessControl|aggregation|audio|autotune|bayesianNetClassifier|bioMedImage|boolRule|builtins|cardinality|cdm|clustering|conditionalRandomFields|configuration|copula|countreg|dataDiscovery|dataPreprocess|dataSciencePilot|dataStep|decisionTree|deduplication|deepLearn|deepNeural|deepRnn|ds2|ecm|entityRes|espCluster|explainModel|factmac|fastKnn|fcmpact|fedSql|freqTab|gVarCluster|gam|gleam|graphSemiSupLearn|hiddenMarkovModel|hyperGroup|ica|image|iml|kernalPca|langModel|ldaTopic|loadStreams|mbc|mixed|mlTools|modelPublishing|network|neuralNet|nmf|nonParametricBayes|nonlinear|optNetwork|optimization|panel|pca|percentile|phreg|pls|qkb|qlim|quantreg|recommend|regression|reinforcementLearn|robustPca|ruleMining|sampling|sandwich|sccasl|search(?:Analytics)?|sentimentAnalysis|sequence|session(?:Prop)?|severity|simSystem|simple|smartData|sparkEmbeddedProcess|sparseML|spatialreg|spc|stabilityMonitoring|svDataDescription|svm|table|text(?:Filters|Frequency|Mining|Parse|Rule(?:Develop|Score)|Topic|Util)|timeData|transpose|tsInfo|tsReconcile|uniTimeSeries|varReduce/\n .source\n var casActions = {\n pattern: RegExp(\n /(^|\\s)(?:action\\s+)?(?:<act>)\\.[a-z]+\\b[^;]+/.source.replace(\n /<act>/g,\n function () {\n return actionSets\n }\n ),\n 'i'\n ),\n lookbehind: true,\n inside: {\n keyword: RegExp(\n /(?:<act>)\\.[a-z]+\\b/.source.replace(/<act>/g, function () {\n return actionSets\n }),\n 'i'\n ),\n action: {\n pattern: /(?:action)/i,\n alias: 'keyword'\n },\n comment: comment,\n function: func,\n 'arg-value': args['arg-value'],\n operator: args.operator,\n argument: args.arg,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n }\n var keywords = {\n pattern:\n /((?:^|\\s)=?)(?:after|analysis|and|array|barchart|barwidth|begingraph|by|call|cas|cbarline|cfill|class(?:lev)?|close|column|computed?|contains|continue|data(?==)|define|delete|describe|document|do\\s+over|do|dol|drop|dul|else|end(?:comp|source)?|entryTitle|eval(?:uate)?|exec(?:ute)?|exit|file(?:name)?|fill(?:attrs)?|flist|fnc|function(?:list)?|global|goto|group(?:by)?|headline|headskip|histogram|if|infile|keep|keylabel|keyword|label|layout|leave|legendlabel|length|libname|loadactionset|merge|midpoints|_?null_|name|noobs|nowd|ods|options|or|otherwise|out(?:put)?|over(?:lay)?|plot|print|put|raise|ranexp|rannor|rbreak|retain|return|select|session|sessref|set|source|statgraph|sum|summarize|table|temp|terminate|then\\s+do|then|title\\d?|to|var|when|where|xaxisopts|y2axisopts|yaxisopts)\\b/i,\n lookbehind: true\n }\n Prism.languages.sas = {\n datalines: {\n pattern: /^([ \\t]*)(?:cards|(?:data)?lines);[\\s\\S]+?^[ \\t]*;/im,\n lookbehind: true,\n alias: 'string',\n inside: {\n keyword: {\n pattern: /^(?:cards|(?:data)?lines)/i\n },\n punctuation: /;/\n }\n },\n 'proc-sql': {\n pattern:\n /(^proc\\s+(?:fed)?sql(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n sql: {\n pattern: RegExp(\n /^[ \\t]*(?:select|alter\\s+table|(?:create|describe|drop)\\s+(?:index|table(?:\\s+constraints)?|view)|create\\s+unique\\s+index|insert\\s+into|update)(?:<str>|[^;\"'])+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n alias: 'language-sql',\n inside: Prism.languages.sql\n },\n 'global-statements': globalStatements,\n 'sql-statements': {\n pattern:\n /(^|\\s)(?:disconnect\\s+from|begin|commit|exec(?:ute)?|reset|rollback|validate)\\b/i,\n lookbehind: true,\n alias: 'keyword'\n },\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-groovy': {\n pattern:\n /(^proc\\s+groovy(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n groovy: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-groovy',\n inside: Prism.languages.groovy\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-lua': {\n pattern:\n /(^proc\\s+lua(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|data|quit|run);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n lua: {\n pattern: RegExp(\n /(^[ \\t]*submit(?:\\s+(?:load|norun|parseonly))?)(?:<str>|[^\"'])+?(?=endsubmit;)/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n alias: 'language-lua',\n inside: Prism.languages.lua\n },\n keyword: keywords,\n 'submit-statement': submitStatement,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-cas': {\n pattern:\n /(^proc\\s+cas(?:\\s+[\\w|=]+)?;)[\\s\\S]+?(?=^(?:proc\\s+\\w+|quit|data);|(?![\\s\\S]))/im,\n lookbehind: true,\n inside: {\n comment: comment,\n 'statement-var': {\n pattern: /((?:^|\\s)=?)saveresult\\s[^;]+/im,\n lookbehind: true,\n inside: {\n statement: {\n pattern: /^saveresult\\s+\\S+/i,\n inside: {\n keyword: /^(?:saveresult)/i\n }\n },\n rest: args\n }\n },\n 'cas-actions': casActions,\n statement: {\n pattern:\n /((?:^|\\s)=?)(?:default|(?:un)?set|on|output|upload)[^;]+/im,\n lookbehind: true,\n inside: args\n },\n step: step,\n keyword: keywords,\n function: func,\n format: format,\n altformat: altformat,\n 'global-statements': globalStatements,\n number: number,\n 'numeric-constant': numericConstant,\n punctuation: punctuation,\n string: string\n }\n },\n 'proc-args': {\n pattern: RegExp(\n /(^proc\\s+\\w+\\s+)(?!\\s)(?:[^;\"']|<str>)+;/.source.replace(\n /<str>/g,\n function () {\n return stringPattern\n }\n ),\n 'im'\n ),\n lookbehind: true,\n inside: args\n },\n /*Special keywords within macros*/\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'macro-string-functions': {\n pattern:\n /((?:^|\\s|=))%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)\\(.*?(?:[^%]\\))/i,\n lookbehind: true,\n inside: {\n function: {\n pattern: /%(?:BQUOTE|NRBQUOTE|NRQUOTE|NRSTR|QUOTE|STR)/i,\n alias: 'keyword'\n },\n 'macro-keyword': macroKeyword,\n 'macro-variable': macroVariable,\n 'escaped-char': {\n pattern: /%['\"()<>=¬^~;,#]/\n },\n punctuation: punctuation\n }\n },\n 'macro-declaration': {\n pattern: /^%macro[^;]+(?=;)/im,\n inside: {\n keyword: /%macro/i\n }\n },\n 'macro-end': {\n pattern: /^%mend[^;]+(?=;)/im,\n inside: {\n keyword: /%mend/i\n }\n },\n /*%_zscore(headcir, _lhc, _mhc, _shc, headcz, headcpct, _Fheadcz); */\n macro: {\n pattern: /%_\\w+(?=\\()/,\n alias: 'keyword'\n },\n input: {\n pattern: /\\binput\\s[-\\w\\s/*.$&]+;/i,\n inside: {\n input: {\n alias: 'keyword',\n pattern: /^input/i\n },\n comment: comment,\n number: number,\n 'numeric-constant': numericConstant\n }\n },\n 'options-args': {\n pattern: /(^options)[-'\"|/\\\\<>*+=:()\\w\\s]*(?=;)/im,\n lookbehind: true,\n inside: args\n },\n 'cas-actions': casActions,\n comment: comment,\n function: func,\n format: format,\n altformat: altformat,\n 'numeric-constant': numericConstant,\n datetime: {\n // '1jan2013'd, '9:25:19pm't, '18jan2003:9:27:05am'dt\n pattern: RegExp(stringPattern + '(?:dt?|t)'),\n alias: 'number'\n },\n string: string,\n step: step,\n keyword: keywords,\n // In SAS Studio syntax highlighting, these operators are styled like keywords\n 'operator-keyword': {\n pattern: /\\b(?:eq|ge|gt|in|le|lt|ne|not)\\b/i,\n alias: 'operator'\n },\n // Decimal (1.2e23), hexadecimal (0c1x)\n number: number,\n operator: /\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?/,\n punctuation: punctuation\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sass\nsass.displayName = 'sass'\nsass.aliases = []\nfunction sass(Prism) {\n ;(function (Prism) {\n Prism.languages.sass = Prism.languages.extend('css', {\n // Sass comments don't need to be closed, only indented\n comment: {\n pattern: /^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t].+)*/m,\n lookbehind: true,\n greedy: true\n }\n })\n Prism.languages.insertBefore('sass', 'atrule', {\n // We want to consume the whole line\n 'atrule-line': {\n // Includes support for = and + shortcuts\n pattern: /^(?:[ \\t]*)[@+=].+/m,\n greedy: true,\n inside: {\n atrule: /(?:@[\\w-]+|[+=])/\n }\n }\n })\n delete Prism.languages.sass.atrule\n var variable = /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n var operator = [\n /[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|not|or)\\b/,\n {\n pattern: /(\\s)-(?=\\s)/,\n lookbehind: true\n }\n ]\n Prism.languages.insertBefore('sass', 'property', {\n // We want to consume the whole line\n 'variable-line': {\n pattern: /^[ \\t]*\\$.+/m,\n greedy: true,\n inside: {\n punctuation: /:/,\n variable: variable,\n operator: operator\n }\n },\n // We want to consume the whole line\n 'property-line': {\n pattern: /^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s].*)/m,\n greedy: true,\n inside: {\n property: [\n /[^:\\s]+(?=\\s*:)/,\n {\n pattern: /(:)[^:\\s]+/,\n lookbehind: true\n }\n ],\n punctuation: /:/,\n variable: variable,\n operator: operator,\n important: Prism.languages.sass.important\n }\n }\n })\n delete Prism.languages.sass.property\n delete Prism.languages.sass.important // Now that whole lines for other patterns are consumed,\n // what's left should be selectors\n Prism.languages.insertBefore('sass', 'punctuation', {\n selector: {\n pattern:\n /^([ \\t]*)\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,[^,\\r\\n]+|[^,\\r\\n]*)(?:,[^,\\r\\n]+)*)*/m,\n lookbehind: true,\n greedy: true\n }\n })\n })(Prism)\n}\n","'use strict'\nvar refractorJava = require('./java.js')\nmodule.exports = scala\nscala.displayName = 'scala'\nscala.aliases = []\nfunction scala(Prism) {\n Prism.register(refractorJava)\n Prism.languages.scala = Prism.languages.extend('java', {\n 'triple-quoted-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n keyword:\n /<-|=>|\\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\\b/,\n number:\n /\\b0x(?:[\\da-f]*\\.)?[\\da-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,\n builtin:\n /\\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\\b/,\n symbol: /'[^\\d\\s\\\\]\\w*/\n })\n Prism.languages.insertBefore('scala', 'triple-quoted-string', {\n 'string-interpolation': {\n pattern:\n /\\b[a-z]\\w*(?:\"\"\"(?:[^$]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*?\"\"\"|\"(?:[^$\"\\r\\n]|\\$(?:[^{]|\\{(?:[^{}]|\\{[^{}]*\\})*\\}))*\")/i,\n greedy: true,\n inside: {\n id: {\n pattern: /^\\w+/,\n greedy: true,\n alias: 'function'\n },\n escape: {\n pattern: /\\\\\\$\"|\\$[$\"]/,\n greedy: true,\n alias: 'symbol'\n },\n interpolation: {\n pattern: /\\$(?:\\w+|\\{(?:[^{}]|\\{[^{}]*\\})*\\})/,\n greedy: true,\n inside: {\n punctuation: /^\\$\\{?|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.scala\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n delete Prism.languages.scala['class-name']\n delete Prism.languages.scala['function']\n}\n","'use strict'\n\nmodule.exports = scheme\nscheme.displayName = 'scheme'\nscheme.aliases = []\nfunction scheme(Prism) {\n ;(function (Prism) {\n Prism.languages.scheme = {\n // this supports \"normal\" single-line comments:\n // ; comment\n // and (potentially nested) multiline comments:\n // #| comment #| nested |# still comment |#\n // (only 1 level of nesting is supported)\n comment:\n /;.*|#;\\s*(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\[(?:[^\\[\\]]|\\[[^\\[\\]]*\\])*\\])|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#)|#\\|(?:[^#|]|#(?!\\|)|\\|(?!#))*\\|#)*\\|#/,\n string: {\n pattern: /\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n symbol: {\n pattern: /'[^()\\[\\]#'\\s]+/,\n greedy: true\n },\n char: {\n pattern:\n /#\\\\(?:[ux][a-fA-F\\d]+\\b|[-a-zA-Z]+\\b|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|\\S)/,\n greedy: true\n },\n 'lambda-parameter': [\n // https://www.cs.cmu.edu/Groups/AI/html/r4rs/r4rs_6.html#SEC30\n {\n pattern:\n /((?:^|[^'`#])[(\\[]lambda\\s+)(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)/,\n lookbehind: true\n },\n {\n pattern: /((?:^|[^'`#])[(\\[]lambda\\s+[(\\[])[^()\\[\\]']+/,\n lookbehind: true\n }\n ],\n keyword: {\n pattern:\n /((?:^|[^'`#])[(\\[])(?:begin|case(?:-lambda)?|cond(?:-expand)?|define(?:-library|-macro|-record-type|-syntax|-values)?|defmacro|delay(?:-force)?|do|else|except|export|guard|if|import|include(?:-ci|-library-declarations)?|lambda|let(?:rec)?(?:-syntax|-values|\\*)?|let\\*-values|only|parameterize|prefix|(?:quasi-?)?quote|rename|set!|syntax-(?:case|rules)|unless|unquote(?:-splicing)?|when)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n builtin: {\n // all functions of the base library of R7RS plus some of built-ins of R5Rs\n pattern:\n /((?:^|[^'`#])[(\\[])(?:abs|and|append|apply|assoc|ass[qv]|binary-port\\?|boolean=?\\?|bytevector(?:-append|-copy|-copy!|-length|-u8-ref|-u8-set!|\\?)?|caar|cadr|call-with-(?:current-continuation|port|values)|call\\/cc|car|cdar|cddr|cdr|ceiling|char(?:->integer|-ready\\?|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)|close-(?:input-port|output-port|port)|complex\\?|cons|current-(?:error|input|output)-port|denominator|dynamic-wind|eof-object\\??|eq\\?|equal\\?|eqv\\?|error|error-object(?:-irritants|-message|\\?)|eval|even\\?|exact(?:-integer-sqrt|-integer\\?|\\?)?|expt|features|file-error\\?|floor(?:-quotient|-remainder|\\/)?|flush-output-port|for-each|gcd|get-output-(?:bytevector|string)|inexact\\??|input-port(?:-open\\?|\\?)|integer(?:->char|\\?)|lcm|length|list(?:->string|->vector|-copy|-ref|-set!|-tail|\\?)?|make-(?:bytevector|list|parameter|string|vector)|map|max|member|memq|memv|min|modulo|negative\\?|newline|not|null\\?|number(?:->string|\\?)|numerator|odd\\?|open-(?:input|output)-(?:bytevector|string)|or|output-port(?:-open\\?|\\?)|pair\\?|peek-char|peek-u8|port\\?|positive\\?|procedure\\?|quotient|raise|raise-continuable|rational\\?|rationalize|read-(?:bytevector|bytevector!|char|error\\?|line|string|u8)|real\\?|remainder|reverse|round|set-c[ad]r!|square|string(?:->list|->number|->symbol|->utf8|->vector|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?|<\\?|<=\\?|=\\?|>\\?|>=\\?)?|substring|symbol(?:->string|\\?|=\\?)|syntax-error|textual-port\\?|truncate(?:-quotient|-remainder|\\/)?|u8-ready\\?|utf8->string|values|vector(?:->list|->string|-append|-copy|-copy!|-fill!|-for-each|-length|-map|-ref|-set!|\\?)?|with-exception-handler|write-(?:bytevector|char|string|u8)|zero\\?)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n operator: {\n pattern: /((?:^|[^'`#])[(\\[])(?:[-+*%/]|[<>]=?|=>?)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n number: {\n // The number pattern from [the R7RS spec](https://small.r7rs.org/attachment/r7rs.pdf).\n //\n // <number> := <num 2>|<num 8>|<num 10>|<num 16>\n // <num R> := <prefix R><complex R>\n // <complex R> := <real R>(?:@<real R>|<imaginary R>)?|<imaginary R>\n // <imaginary R> := [+-](?:<ureal R>|(?:inf|nan)\\.0)?i\n // <real R> := [+-]?<ureal R>|[+-](?:inf|nan)\\.0\n // <ureal R> := <uint R>(?:\\/<uint R>)?\n // | <decimal R>\n //\n // <decimal 10> := (?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?\n // <uint R> := <digit R>+\n // <prefix R> := <radix R>(?:#[ei])?|(?:#[ei])?<radix R>\n // <radix 2> := #b\n // <radix 8> := #o\n // <radix 10> := (?:#d)?\n // <radix 16> := #x\n // <digit 2> := [01]\n // <digit 8> := [0-7]\n // <digit 10> := \\d\n // <digit 16> := [0-9a-f]\n //\n // The problem with this grammar is that the resulting regex is way to complex, so we simplify by grouping all\n // non-decimal bases together. This results in a decimal (dec) and combined binary, octal, and hexadecimal (box)\n // pattern:\n pattern: RegExp(\n SortedBNF({\n '<ureal dec>':\n /\\d+(?:\\/\\d+)|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[esfdl][+-]?\\d+)?/.source,\n '<real dec>': /[+-]?<ureal dec>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary dec>': /[+-](?:<ureal dec>|(?:inf|nan)\\.0)?i/.source,\n '<complex dec>':\n /<real dec>(?:@<real dec>|<imaginary dec>)?|<imaginary dec>/\n .source,\n '<num dec>': /(?:#d(?:#[ei])?|#[ei](?:#d)?)?<complex dec>/.source,\n '<ureal box>': /[0-9a-f]+(?:\\/[0-9a-f]+)?/.source,\n '<real box>': /[+-]?<ureal box>|[+-](?:inf|nan)\\.0/.source,\n '<imaginary box>': /[+-](?:<ureal box>|(?:inf|nan)\\.0)?i/.source,\n '<complex box>':\n /<real box>(?:@<real box>|<imaginary box>)?|<imaginary box>/\n .source,\n '<num box>': /#[box](?:#[ei])?|(?:#[ei])?#[box]<complex box>/\n .source,\n '<number>': /(^|[()\\[\\]\\s])(?:<num dec>|<num box>)(?=[()\\[\\]\\s]|$)/\n .source\n }),\n 'i'\n ),\n lookbehind: true\n },\n boolean: {\n pattern: /(^|[()\\[\\]\\s])#(?:[ft]|false|true)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n function: {\n pattern:\n /((?:^|[^'`#])[(\\[])(?:[^|()\\[\\]'\\s]+|\\|(?:[^\\\\|]|\\\\.)*\\|)(?=[()\\[\\]\\s]|$)/,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[()\\[\\]\\s])\\|(?:[^\\\\|]|\\\\.)*\\|(?=[()\\[\\]\\s]|$)/,\n lookbehind: true,\n greedy: true\n },\n punctuation: /[()\\[\\]']/\n }\n /**\n * Given a topologically sorted BNF grammar, this will return the RegExp source of last rule of the grammar.\n *\n * @param {Record<string, string>} grammar\n * @returns {string}\n */\n function SortedBNF(grammar) {\n for (var key in grammar) {\n grammar[key] = grammar[key].replace(/<[\\w\\s]+>/g, function (key) {\n return '(?:' + grammar[key].trim() + ')'\n })\n } // return the last item\n return grammar[key]\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = scss\nscss.displayName = 'scss'\nscss.aliases = []\nfunction scss(Prism) {\n Prism.languages.scss = Prism.languages.extend('css', {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n atrule: {\n pattern: /@[\\w-](?:\\([^()]+\\)|[^()\\s]|\\s+(?!\\s))*?(?=\\s+[{;])/,\n inside: {\n rule: /@[\\w-]+/ // See rest below\n }\n },\n // url, compassified\n url: /(?:[-a-z]+-)?url(?=\\()/i,\n // CSS selector regex is not appropriate for Sass\n // since there can be lot more things (var, @ directive, nesting..)\n // a selector must start at the end of a property or after a brace (end of other rules or nesting)\n // it can contain some characters that aren't used for defining rules or end of selector, & (parent selector), or interpolated variable\n // the end of a selector is found when there is no rules in it ( {} or {\\s}) or if there is a property (because an interpolated var\n // can \"pass\" as a selector- e.g: proper#{$erty})\n // this one was hard to do, so please be careful if you edit this one :)\n selector: {\n // Initial look-ahead is used to prevent matching of blank selectors\n pattern:\n /(?=\\S)[^@;{}()]?(?:[^@;{}()\\s]|\\s+(?!\\s)|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}][^:{}]*[:{][^}]))/,\n inside: {\n parent: {\n pattern: /&/,\n alias: 'important'\n },\n placeholder: /%[-\\w]+/,\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n },\n property: {\n pattern: /(?:[-\\w]|\\$[-\\w]|#\\{\\$[-\\w]+\\})+(?=\\s*:)/,\n inside: {\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n }\n }\n })\n Prism.languages.insertBefore('scss', 'atrule', {\n keyword: [\n /@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\\b/i,\n {\n pattern: /( )(?:from|through)(?= )/,\n lookbehind: true\n }\n ]\n })\n Prism.languages.insertBefore('scss', 'important', {\n // var and interpolated vars\n variable: /\\$[-\\w]+|#\\{\\$[-\\w]+\\}/\n })\n Prism.languages.insertBefore('scss', 'function', {\n 'module-modifier': {\n pattern: /\\b(?:as|hide|show|with)\\b/i,\n alias: 'keyword'\n },\n placeholder: {\n pattern: /%[-\\w]+/,\n alias: 'selector'\n },\n statement: {\n pattern: /\\B!(?:default|optional)\\b/i,\n alias: 'keyword'\n },\n boolean: /\\b(?:false|true)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n operator: {\n pattern: /(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|not|or)(?=\\s)/,\n lookbehind: true\n }\n })\n Prism.languages.scss['atrule'].inside.rest = Prism.languages.scss\n}\n","'use strict'\nvar refractorBash = require('./bash.js')\nmodule.exports = shellSession\nshellSession.displayName = 'shellSession'\nshellSession.aliases = []\nfunction shellSession(Prism) {\n Prism.register(refractorBash)\n ;(function (Prism) {\n // CAREFUL!\n // The following patterns are concatenated, so the group referenced by a back reference is non-obvious!\n var strings = [\n // normal string\n /\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/.source,\n /'[^']*'/.source,\n /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/.source, // here doc\n // 2 capturing groups\n /<<-?\\s*([\"']?)(\\w+)\\1\\s[\\s\\S]*?[\\r\\n]\\2/.source\n ].join('|')\n Prism.languages['shell-session'] = {\n command: {\n pattern: RegExp(\n // user info\n /^/.source +\n '(?:' + // <user> \":\" ( <path> )?\n (/[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+(?::[^\\0-\\x1F$#%*?\"<>:;|]+)?/\n .source +\n '|' + // <path>\n // Since the path pattern is quite general, we will require it to start with a special character to\n // prevent false positives.\n /[/~.][^\\0-\\x1F$#%*?\"<>@:;|]*/.source) +\n ')?' + // shell symbol\n /[$#%](?=\\s)/.source + // bash command\n /(?:[^\\\\\\r\\n \\t'\"<$]|[ \\t](?:(?!#)|#.*$)|\\\\(?:[^\\r]|\\r\\n?)|\\$(?!')|<(?!<)|<<str>>)+/.source.replace(\n /<<str>>/g,\n function () {\n return strings\n }\n ),\n 'm'\n ),\n greedy: true,\n inside: {\n info: {\n // foo@bar:~/files$ exit\n // foo@bar$ exit\n // ~/files$ exit\n pattern: /^[^#$%]+/,\n alias: 'punctuation',\n inside: {\n user: /^[^\\s@:$#%*!/\\\\]+@[^\\r\\n@:$#%*!/\\\\]+/,\n punctuation: /:/,\n path: /[\\s\\S]+/\n }\n },\n bash: {\n pattern: /(^[$#%]\\s*)\\S[\\s\\S]*/,\n lookbehind: true,\n alias: 'language-bash',\n inside: Prism.languages.bash\n },\n 'shell-symbol': {\n pattern: /^[$#%]/,\n alias: 'important'\n }\n }\n },\n output: /.(?:.*(?:[\\r\\n]|.$))*/\n }\n Prism.languages['sh-session'] = Prism.languages['shellsession'] =\n Prism.languages['shell-session']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = smali\nsmali.displayName = 'smali'\nsmali.aliases = []\nfunction smali(Prism) {\n // Test files for the parser itself:\n // https://github.com/JesusFreke/smali/tree/master/smali/src/test/resources/LexerTest\n Prism.languages.smali = {\n comment: /#.*/,\n string: {\n pattern: /\"(?:[^\\r\\n\\\\\"]|\\\\.)*\"|'(?:[^\\r\\n\\\\']|\\\\(?:.|u[\\da-fA-F]{4}))'/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(^|[^L])L(?:(?:\\w+|`[^`\\r\\n]*`)\\/)*(?:[\\w$]+|`[^`\\r\\n]*`)(?=\\s*;)/,\n lookbehind: true,\n inside: {\n 'class-name': {\n pattern: /(^L|\\/)(?:[\\w$]+|`[^`\\r\\n]*`)$/,\n lookbehind: true\n },\n namespace: {\n pattern: /^(L)(?:(?:\\w+|`[^`\\r\\n]*`)\\/)+/,\n lookbehind: true,\n inside: {\n punctuation: /\\//\n }\n },\n builtin: /^L/\n }\n },\n builtin: [\n {\n // Reference: https://github.com/JesusFreke/smali/wiki/TypesMethodsAndFields#types\n pattern: /([();\\[])[BCDFIJSVZ]+/,\n lookbehind: true\n },\n {\n // e.g. .field mWifiOnUid:I\n pattern: /([\\w$>]:)[BCDFIJSVZ]/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /(\\.end\\s+)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern: /(^|[^\\w.-])\\.(?!\\d)[\\w-]+/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^\\w.-])(?:abstract|annotation|bridge|constructor|enum|final|interface|private|protected|public|runtime|static|synthetic|system|transient)(?![\\w.-])/,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^|[^\\w.-])(?:\\w+|<[\\w$-]+>)(?=\\()/,\n lookbehind: true\n },\n field: {\n pattern: /[\\w$]+(?=:)/,\n alias: 'variable'\n },\n register: {\n pattern: /(^|[^\\w.-])[vp]\\d(?![\\w.-])/,\n lookbehind: true,\n alias: 'variable'\n },\n boolean: {\n pattern: /(^|[^\\w.-])(?:false|true)(?![\\w.-])/,\n lookbehind: true\n },\n number: {\n pattern:\n /(^|[^/\\w.-])-?(?:NAN|INFINITY|0x(?:[\\dA-F]+(?:\\.[\\dA-F]*)?|\\.[\\dA-F]+)(?:p[+-]?[\\dA-F]+)?|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?)[dflst]?(?![\\w.-])/i,\n lookbehind: true\n },\n label: {\n pattern: /(:)\\w+/,\n lookbehind: true,\n alias: 'property'\n },\n operator: /->|\\.\\.|[\\[=]/,\n punctuation: /[{}(),;:]/\n }\n}\n","'use strict'\n\nmodule.exports = smalltalk\nsmalltalk.displayName = 'smalltalk'\nsmalltalk.aliases = []\nfunction smalltalk(Prism) {\n Prism.languages.smalltalk = {\n comment: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n char: {\n pattern: /\\$./,\n greedy: true\n },\n string: {\n pattern: /'(?:''|[^'])*'/,\n greedy: true\n },\n symbol: /#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\n 'block-arguments': {\n pattern: /(\\[\\s*):[^\\[|]*\\|/,\n lookbehind: true,\n inside: {\n variable: /:[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n 'temporary-variables': {\n pattern: /\\|[^|]+\\|/,\n inside: {\n variable: /[\\da-z]+/i,\n punctuation: /\\|/\n }\n },\n keyword: /\\b(?:new|nil|self|super)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: [\n /\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,\n /\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/\n ],\n operator: /[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,\n punctuation: /[.;:?\\[\\](){}]/\n }\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = smarty\nsmarty.displayName = 'smarty'\nsmarty.aliases = []\nfunction smarty(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.smarty = {\n comment: {\n pattern: /^\\{\\*[\\s\\S]*?\\*\\}/,\n greedy: true\n },\n 'embedded-php': {\n pattern: /^\\{php\\}[\\s\\S]*?\\{\\/php\\}/,\n greedy: true,\n inside: {\n smarty: {\n pattern: /^\\{php\\}|\\{\\/php\\}$/,\n inside: null // see below\n },\n php: {\n pattern: /[\\s\\S]+/,\n alias: 'language-php',\n inside: Prism.languages.php\n }\n }\n },\n string: [\n {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\{[^{}]*\\}|`[^`]*`/,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^[{`]|[`}]$/,\n alias: 'punctuation'\n },\n expression: {\n pattern: /[\\s\\S]+/,\n inside: null // see below\n }\n }\n },\n variable: /\\$\\w+/\n }\n },\n {\n pattern: /'(?:\\\\.|[^'\\\\\\r\\n])*'/,\n greedy: true\n }\n ],\n keyword: {\n pattern: /(^\\{\\/?)[a-z_]\\w*\\b(?!\\()/i,\n lookbehind: true,\n greedy: true\n },\n delimiter: {\n pattern: /^\\{\\/?|\\}$/,\n greedy: true,\n alias: 'punctuation'\n },\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n variable: [\n /\\$(?!\\d)\\w+/,\n /#(?!\\d)\\w+#/,\n {\n pattern: /(\\.|->|\\w\\s*=)(?!\\d)\\w+\\b(?!\\()/,\n lookbehind: true\n },\n {\n pattern: /(\\[)(?!\\d)\\w+(?=\\])/,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(\\|\\s*)@?[a-z_]\\w*|\\b[a-z_]\\w*(?=\\()/i,\n lookbehind: true\n },\n 'attr-name': /\\b[a-z_]\\w*(?=\\s*=)/i,\n boolean: /\\b(?:false|no|off|on|true|yes)\\b/,\n punctuation: /[\\[\\](){}.,:`]|->/,\n operator: [\n /[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,\n /\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,\n /\\b(?:and|eq|gt?e|gt|lt?e|lt|mod|neq?|not|or)\\b/\n ]\n }\n Prism.languages.smarty['embedded-php'].inside.smarty.inside =\n Prism.languages.smarty\n Prism.languages.smarty.string[0].inside.interpolation.inside.expression.inside =\n Prism.languages.smarty\n var string = /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/\n var smartyPattern = RegExp(\n // comments\n /\\{\\*[\\s\\S]*?\\*\\}/.source +\n '|' + // php tags\n /\\{php\\}[\\s\\S]*?\\{\\/php\\}/.source +\n '|' + // smarty blocks\n /\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>|\\{(?:[^{}\"']|<str>)*\\})*\\})*\\}/.source.replace(\n /<str>/g,\n function () {\n return string.source\n }\n ),\n 'g'\n ) // Tokenize all inline Smarty expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var smartyLiteralStart = '{literal}'\n var smartyLiteralEnd = '{/literal}'\n var smartyLiteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'smarty',\n smartyPattern,\n function (match) {\n // Smarty tags inside {literal} block are ignored\n if (match === smartyLiteralEnd) {\n smartyLiteralMode = false\n }\n if (!smartyLiteralMode) {\n if (match === smartyLiteralStart) {\n smartyLiteralMode = true\n }\n return true\n }\n return false\n }\n )\n }) // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'smarty')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = sml\nsml.displayName = 'sml'\nsml.aliases = ['smlnj']\nfunction sml(Prism) {\n // https://smlfamily.github.io/sml97-defn.pdf\n // https://people.mpi-sws.org/~rossberg/sml.html\n ;(function (Prism) {\n var keywords =\n /\\b(?:abstype|and|andalso|as|case|datatype|do|else|end|eqtype|exception|fn|fun|functor|handle|if|in|include|infix|infixr|let|local|nonfix|of|op|open|orelse|raise|rec|sharing|sig|signature|struct|structure|then|type|val|where|while|with|withtype)\\b/i\n Prism.languages.sml = {\n // allow one level of nesting\n comment:\n /\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*)|\\(\\*(?:[^*(]|\\*(?!\\))|\\((?!\\*))*\\*\\))*\\*\\)/,\n string: {\n pattern: /#?\"(?:[^\"\\\\]|\\\\.)*\"/,\n greedy: true\n },\n 'class-name': [\n {\n // This is only an approximation since the real grammar is context-free\n //\n // Why the main loop so complex?\n // The main loop is approximately the same as /(?:\\s*(?:[*,]|->)\\s*<TERMINAL>)*/ which is, obviously, a lot\n // simpler. The difference is that if a comma is the last iteration of the loop, then the terminal must be\n // followed by a long identifier.\n pattern: RegExp(\n /((?:^|[^:]):\\s*)<TERMINAL>(?:\\s*(?:(?:\\*|->)\\s*<TERMINAL>|,\\s*<TERMINAL>(?:(?=<NOT-LAST>)|(?!<NOT-LAST>)\\s+<LONG-ID>)))*/.source\n .replace(/<NOT-LAST>/g, function () {\n return /\\s*(?:[*,]|->)/.source\n })\n .replace(/<TERMINAL>/g, function () {\n return /(?:'[\\w']*|<LONG-ID>|\\((?:[^()]|\\([^()]*\\))*\\)|\\{(?:[^{}]|\\{[^{}]*\\})*\\})(?:\\s+<LONG-ID>)*/\n .source\n })\n .replace(/<LONG-ID>/g, function () {\n return /(?!<KEYWORD>)[a-z\\d_][\\w'.]*/.source\n })\n .replace(/<KEYWORD>/g, function () {\n return keywords.source\n }),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n {\n pattern:\n /((?:^|[^\\w'])(?:datatype|exception|functor|signature|structure|type)\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n }\n ],\n function: {\n pattern: /((?:^|[^\\w'])fun\\s+)[a-z_][\\w'.]*/i,\n lookbehind: true\n },\n keyword: keywords,\n variable: {\n pattern: /(^|[^\\w'])'[\\w']*/,\n lookbehind: true\n },\n number: /~?\\b(?:\\d+(?:\\.\\d+)?(?:e~?\\d+)?|0x[\\da-f]+)\\b/i,\n word: {\n pattern: /\\b0w(?:\\d+|x[\\da-f]+)\\b/i,\n alias: 'constant'\n },\n boolean: /\\b(?:false|true)\\b/i,\n operator: /\\.\\.\\.|:[>=:]|=>?|->|[<>]=?|[!+\\-*/^#|@~]/,\n punctuation: /[(){}\\[\\].:,;]/\n }\n Prism.languages.sml['class-name'][0].inside = Prism.languages.sml\n Prism.languages.smlnj = Prism.languages.sml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = solidity\nsolidity.displayName = 'solidity'\nsolidity.aliases = ['sol']\nfunction solidity(Prism) {\n Prism.languages.solidity = Prism.languages.extend('clike', {\n 'class-name': {\n pattern:\n /(\\b(?:contract|enum|interface|library|new|struct|using)\\s+)(?!\\d)[\\w$]+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:_|anonymous|as|assembly|assert|break|calldata|case|constant|constructor|continue|contract|default|delete|do|else|emit|enum|event|external|for|from|function|if|import|indexed|inherited|interface|internal|is|let|library|mapping|memory|modifier|new|payable|pragma|private|public|pure|require|returns?|revert|selfdestruct|solidity|storage|struct|suicide|switch|this|throw|using|var|view|while)\\b/,\n operator: /=>|->|:=|=:|\\*\\*|\\+\\+|--|\\|\\||&&|<<=?|>>=?|[-+*/%^&|<>!=]=?|[~?]/\n })\n Prism.languages.insertBefore('solidity', 'keyword', {\n builtin:\n /\\b(?:address|bool|byte|u?int(?:8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?|string|bytes(?:[1-9]|[12]\\d|3[0-2])?)\\b/\n })\n Prism.languages.insertBefore('solidity', 'number', {\n version: {\n pattern: /([<>]=?|\\^)\\d+\\.\\d+\\.\\d+\\b/,\n lookbehind: true,\n alias: 'number'\n }\n })\n Prism.languages.sol = Prism.languages.solidity\n}\n","'use strict'\n\nmodule.exports = solutionFile\nsolutionFile.displayName = 'solutionFile'\nsolutionFile.aliases = []\nfunction solutionFile(Prism) {\n ;(function (Prism) {\n var guid = {\n // https://en.wikipedia.org/wiki/Universally_unique_identifier#Format\n pattern: /\\{[\\da-f]{8}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{4}-[\\da-f]{12}\\}/i,\n alias: 'constant',\n inside: {\n punctuation: /[{}]/\n }\n }\n Prism.languages['solution-file'] = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n greedy: true,\n inside: {\n guid: guid\n }\n },\n object: {\n // Foo\n // Bar(\"abs\") = 9\n // EndBar\n // Prop = TRUE\n // EndFoo\n pattern:\n /^([ \\t]*)(?:([A-Z]\\w*)\\b(?=.*(?:\\r\\n?|\\n)(?:\\1[ \\t].*(?:\\r\\n?|\\n))*\\1End\\2(?=[ \\t]*$))|End[A-Z]\\w*(?=[ \\t]*$))/m,\n lookbehind: true,\n greedy: true,\n alias: 'keyword'\n },\n property: {\n pattern: /^([ \\t]*)(?!\\s)[^\\r\\n\"#=()]*[^\\s\"#=()](?=\\s*=)/m,\n lookbehind: true,\n inside: {\n guid: guid\n }\n },\n guid: guid,\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n boolean: /\\b(?:FALSE|TRUE)\\b/,\n operator: /=/,\n punctuation: /[(),]/\n }\n Prism.languages['sln'] = Prism.languages['solution-file']\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = soy\nsoy.displayName = 'soy'\nsoy.aliases = []\nfunction soy(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n var stringPattern = /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/\n var numberPattern = /\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/\n Prism.languages.soy = {\n comment: [\n /\\/\\*[\\s\\S]*?\\*\\//,\n {\n pattern: /(\\s)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n 'command-arg': {\n pattern:\n /(\\{+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'string',\n inside: {\n punctuation: /\\./\n }\n },\n parameter: {\n pattern: /(\\{+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,\n lookbehind: true,\n alias: 'variable'\n },\n keyword: [\n {\n pattern:\n /(\\{+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,\n lookbehind: true\n },\n /\\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\\b/\n ],\n delimiter: {\n pattern: /^\\{+\\/?|\\/?\\}+$/,\n alias: 'punctuation'\n },\n property: /\\w+(?==)/,\n variable: {\n pattern: /\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+\\]))*/,\n inside: {\n string: {\n pattern: stringPattern,\n greedy: true\n },\n number: numberPattern,\n punctuation: /[\\[\\].?]/\n }\n },\n string: {\n pattern: stringPattern,\n greedy: true\n },\n function: [\n /\\w+(?=\\()/,\n {\n pattern: /(\\|[^\\S\\r\\n]*)\\w+/,\n lookbehind: true\n }\n ],\n boolean: /\\b(?:false|true)\\b/,\n number: numberPattern,\n operator: /\\?:?|<=?|>=?|==?|!=|[+*/%-]|\\b(?:and|not|or)\\b/,\n punctuation: /[{}()\\[\\]|.,:]/\n } // Tokenize all inline Soy expressions\n Prism.hooks.add('before-tokenize', function (env) {\n var soyPattern = /\\{\\{.+?\\}\\}|\\{.+?\\}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g\n var soyLitteralStart = '{literal}'\n var soyLitteralEnd = '{/literal}'\n var soyLitteralMode = false\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'soy',\n soyPattern,\n function (match) {\n // Soy tags inside {literal} block are ignored\n if (match === soyLitteralEnd) {\n soyLitteralMode = false\n }\n if (!soyLitteralMode) {\n if (match === soyLitteralStart) {\n soyLitteralMode = true\n }\n return true\n }\n return false\n }\n )\n }) // Re-insert the tokens after tokenizing\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'soy')\n })\n })(Prism)\n}\n","'use strict'\nvar refractorTurtle = require('./turtle.js')\nmodule.exports = sparql\nsparql.displayName = 'sparql'\nsparql.aliases = ['rq']\nfunction sparql(Prism) {\n Prism.register(refractorTurtle)\n Prism.languages.sparql = Prism.languages.extend('turtle', {\n boolean: /\\b(?:false|true)\\b/i,\n variable: {\n pattern: /[?$]\\w+/,\n greedy: true\n }\n })\n Prism.languages.insertBefore('sparql', 'punctuation', {\n keyword: [\n /\\b(?:A|ADD|ALL|AS|ASC|ASK|BNODE|BY|CLEAR|CONSTRUCT|COPY|CREATE|DATA|DEFAULT|DELETE|DESC|DESCRIBE|DISTINCT|DROP|EXISTS|FILTER|FROM|GROUP|HAVING|INSERT|INTO|LIMIT|LOAD|MINUS|MOVE|NAMED|NOT|NOW|OFFSET|OPTIONAL|ORDER|RAND|REDUCED|SELECT|SEPARATOR|SERVICE|SILENT|STRUUID|UNION|USING|UUID|VALUES|WHERE)\\b/i,\n /\\b(?:ABS|AVG|BIND|BOUND|CEIL|COALESCE|CONCAT|CONTAINS|COUNT|DATATYPE|DAY|ENCODE_FOR_URI|FLOOR|GROUP_CONCAT|HOURS|IF|IRI|isBLANK|isIRI|isLITERAL|isNUMERIC|isURI|LANG|LANGMATCHES|LCASE|MAX|MD5|MIN|MINUTES|MONTH|REGEX|REPLACE|ROUND|sameTerm|SAMPLE|SECONDS|SHA1|SHA256|SHA384|SHA512|STR|STRAFTER|STRBEFORE|STRDT|STRENDS|STRLANG|STRLEN|STRSTARTS|SUBSTR|SUM|TIMEZONE|TZ|UCASE|URI|YEAR)\\b(?=\\s*\\()/i,\n /\\b(?:BASE|GRAPH|PREFIX)\\b/i\n ]\n })\n Prism.languages.rq = Prism.languages.sparql\n}\n","'use strict'\n\nmodule.exports = splunkSpl\nsplunkSpl.displayName = 'splunkSpl'\nsplunkSpl.aliases = []\nfunction splunkSpl(Prism) {\n Prism.languages['splunk-spl'] = {\n comment: /`comment\\(\"(?:\\\\.|[^\\\\\"])*\"\\)`/,\n string: {\n pattern: /\"(?:\\\\.|[^\\\\\"])*\"/,\n greedy: true\n },\n // https://docs.splunk.com/Documentation/Splunk/7.3.0/SearchReference/ListOfSearchCommands\n keyword:\n /\\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b/i,\n 'operator-word': {\n pattern: /\\b(?:and|as|by|not|or|xor)\\b/i,\n alias: 'operator'\n },\n function: /\\b\\w+(?=\\s*\\()/,\n property: /\\b\\w+(?=\\s*=(?!=))/,\n date: {\n // MM/DD/YYYY(:HH:MM:SS)?\n pattern: /\\b\\d{1,2}\\/\\d{1,2}\\/\\d{1,4}(?:(?::\\d{1,2}){3})?\\b/,\n alias: 'number'\n },\n number: /\\b\\d+(?:\\.\\d+)?\\b/,\n boolean: /\\b(?:f|false|t|true)\\b/i,\n operator: /[<>=]=?|[-+*/%|]/,\n punctuation: /[()[\\],]/\n }\n}\n","'use strict'\n\nmodule.exports = sqf\nsqf.displayName = 'sqf'\nsqf.aliases = []\nfunction sqf(Prism) {\n Prism.languages.sqf = Prism.languages.extend('clike', {\n string: {\n pattern: /\"(?:(?:\"\")?[^\"])*\"(?!\")|'(?:[^'])*'/,\n greedy: true\n },\n keyword:\n /\\b(?:breakOut|breakTo|call|case|catch|default|do|echo|else|execFSM|execVM|exitWith|for|forEach|forEachMember|forEachMemberAgent|forEachMemberTeam|from|goto|if|nil|preprocessFile|preprocessFileLineNumbers|private|scopeName|spawn|step|switch|then|throw|to|try|while|with)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function:\n /\\b(?:abs|accTime|acos|action|actionIDs|actionKeys|actionKeysImages|actionKeysNames|actionKeysNamesArray|actionName|actionParams|activateAddons|activatedAddons|activateKey|add3DENConnection|add3DENEventHandler|add3DENLayer|addAction|addBackpack|addBackpackCargo|addBackpackCargoGlobal|addBackpackGlobal|addCamShake|addCuratorAddons|addCuratorCameraArea|addCuratorEditableObjects|addCuratorEditingArea|addCuratorPoints|addEditorObject|addEventHandler|addForce|addForceGeneratorRTD|addGoggles|addGroupIcon|addHandgunItem|addHeadgear|addItem|addItemCargo|addItemCargoGlobal|addItemPool|addItemToBackpack|addItemToUniform|addItemToVest|addLiveStats|addMagazine|addMagazineAmmoCargo|addMagazineCargo|addMagazineCargoGlobal|addMagazineGlobal|addMagazinePool|addMagazines|addMagazineTurret|addMenu|addMenuItem|addMissionEventHandler|addMPEventHandler|addMusicEventHandler|addOwnedMine|addPlayerScores|addPrimaryWeaponItem|addPublicVariableEventHandler|addRating|addResources|addScore|addScoreSide|addSecondaryWeaponItem|addSwitchableUnit|addTeamMember|addToRemainsCollector|addTorque|addUniform|addVehicle|addVest|addWaypoint|addWeapon|addWeaponCargo|addWeaponCargoGlobal|addWeaponGlobal|addWeaponItem|addWeaponPool|addWeaponTurret|admin|agent|agents|AGLToASL|aimedAtTarget|aimPos|airDensityCurveRTD|airDensityRTD|airplaneThrottle|airportSide|AISFinishHeal|alive|all3DENEntities|allAirports|allControls|allCurators|allCutLayers|allDead|allDeadMen|allDisplays|allGroups|allMapMarkers|allMines|allMissionObjects|allow3DMode|allowCrewInImmobile|allowCuratorLogicIgnoreAreas|allowDamage|allowDammage|allowFileOperations|allowFleeing|allowGetIn|allowSprint|allPlayers|allSimpleObjects|allSites|allTurrets|allUnits|allUnitsUAV|allVariables|ammo|ammoOnPylon|animate|animateBay|animateDoor|animatePylon|animateSource|animationNames|animationPhase|animationSourcePhase|animationState|append|apply|armoryPoints|arrayIntersect|asin|ASLToAGL|ASLToATL|assert|assignAsCargo|assignAsCargoIndex|assignAsCommander|assignAsDriver|assignAsGunner|assignAsTurret|assignCurator|assignedCargo|assignedCommander|assignedDriver|assignedGunner|assignedItems|assignedTarget|assignedTeam|assignedVehicle|assignedVehicleRole|assignItem|assignTeam|assignToAirport|atan|atan2|atg|ATLToASL|attachedObject|attachedObjects|attachedTo|attachObject|attachTo|attackEnabled|backpack|backpackCargo|backpackContainer|backpackItems|backpackMagazines|backpackSpaceFor|behaviour|benchmark|binocular|blufor|boundingBox|boundingBoxReal|boundingCenter|briefingName|buildingExit|buildingPos|buldozer_EnableRoadDiag|buldozer_IsEnabledRoadDiag|buldozer_LoadNewRoads|buldozer_reloadOperMap|buttonAction|buttonSetAction|cadetMode|callExtension|camCommand|camCommit|camCommitPrepared|camCommitted|camConstuctionSetParams|camCreate|camDestroy|cameraEffect|cameraEffectEnableHUD|cameraInterest|cameraOn|cameraView|campaignConfigFile|camPreload|camPreloaded|camPrepareBank|camPrepareDir|camPrepareDive|camPrepareFocus|camPrepareFov|camPrepareFovRange|camPreparePos|camPrepareRelPos|camPrepareTarget|camSetBank|camSetDir|camSetDive|camSetFocus|camSetFov|camSetFovRange|camSetPos|camSetRelPos|camSetTarget|camTarget|camUseNVG|canAdd|canAddItemToBackpack|canAddItemToUniform|canAddItemToVest|cancelSimpleTaskDestination|canFire|canMove|canSlingLoad|canStand|canSuspend|canTriggerDynamicSimulation|canUnloadInCombat|canVehicleCargo|captive|captiveNum|cbChecked|cbSetChecked|ceil|channelEnabled|cheatsEnabled|checkAIFeature|checkVisibility|civilian|className|clear3DENAttribute|clear3DENInventory|clearAllItemsFromBackpack|clearBackpackCargo|clearBackpackCargoGlobal|clearForcesRTD|clearGroupIcons|clearItemCargo|clearItemCargoGlobal|clearItemPool|clearMagazineCargo|clearMagazineCargoGlobal|clearMagazinePool|clearOverlay|clearRadio|clearVehicleInit|clearWeaponCargo|clearWeaponCargoGlobal|clearWeaponPool|clientOwner|closeDialog|closeDisplay|closeOverlay|collapseObjectTree|collect3DENHistory|collectiveRTD|combatMode|commandArtilleryFire|commandChat|commander|commandFire|commandFollow|commandFSM|commandGetOut|commandingMenu|commandMove|commandRadio|commandStop|commandSuppressiveFire|commandTarget|commandWatch|comment|commitOverlay|compile|compileFinal|completedFSM|composeText|configClasses|configFile|configHierarchy|configName|configNull|configProperties|configSourceAddonList|configSourceMod|configSourceModList|confirmSensorTarget|connectTerminalToUAV|controlNull|controlsGroupCtrl|copyFromClipboard|copyToClipboard|copyWaypoints|cos|count|countEnemy|countFriendly|countSide|countType|countUnknown|create3DENComposition|create3DENEntity|createAgent|createCenter|createDialog|createDiaryLink|createDiaryRecord|createDiarySubject|createDisplay|createGearDialog|createGroup|createGuardedPoint|createLocation|createMarker|createMarkerLocal|createMenu|createMine|createMissionDisplay|createMPCampaignDisplay|createSimpleObject|createSimpleTask|createSite|createSoundSource|createTask|createTeam|createTrigger|createUnit|createVehicle|createVehicleCrew|createVehicleLocal|crew|ctAddHeader|ctAddRow|ctClear|ctCurSel|ctData|ctFindHeaderRows|ctFindRowHeader|ctHeaderControls|ctHeaderCount|ctRemoveHeaders|ctRemoveRows|ctrlActivate|ctrlAddEventHandler|ctrlAngle|ctrlAutoScrollDelay|ctrlAutoScrollRewind|ctrlAutoScrollSpeed|ctrlChecked|ctrlClassName|ctrlCommit|ctrlCommitted|ctrlCreate|ctrlDelete|ctrlEnable|ctrlEnabled|ctrlFade|ctrlHTMLLoaded|ctrlIDC|ctrlIDD|ctrlMapAnimAdd|ctrlMapAnimClear|ctrlMapAnimCommit|ctrlMapAnimDone|ctrlMapCursor|ctrlMapMouseOver|ctrlMapScale|ctrlMapScreenToWorld|ctrlMapWorldToScreen|ctrlModel|ctrlModelDirAndUp|ctrlModelScale|ctrlParent|ctrlParentControlsGroup|ctrlPosition|ctrlRemoveAllEventHandlers|ctrlRemoveEventHandler|ctrlScale|ctrlSetActiveColor|ctrlSetAngle|ctrlSetAutoScrollDelay|ctrlSetAutoScrollRewind|ctrlSetAutoScrollSpeed|ctrlSetBackgroundColor|ctrlSetChecked|ctrlSetDisabledColor|ctrlSetEventHandler|ctrlSetFade|ctrlSetFocus|ctrlSetFont|ctrlSetFontH1|ctrlSetFontH1B|ctrlSetFontH2|ctrlSetFontH2B|ctrlSetFontH3|ctrlSetFontH3B|ctrlSetFontH4|ctrlSetFontH4B|ctrlSetFontH5|ctrlSetFontH5B|ctrlSetFontH6|ctrlSetFontH6B|ctrlSetFontHeight|ctrlSetFontHeightH1|ctrlSetFontHeightH2|ctrlSetFontHeightH3|ctrlSetFontHeightH4|ctrlSetFontHeightH5|ctrlSetFontHeightH6|ctrlSetFontHeightSecondary|ctrlSetFontP|ctrlSetFontPB|ctrlSetFontSecondary|ctrlSetForegroundColor|ctrlSetModel|ctrlSetModelDirAndUp|ctrlSetModelScale|ctrlSetPixelPrecision|ctrlSetPosition|ctrlSetScale|ctrlSetStructuredText|ctrlSetText|ctrlSetTextColor|ctrlSetTextColorSecondary|ctrlSetTextSecondary|ctrlSetTooltip|ctrlSetTooltipColorBox|ctrlSetTooltipColorShade|ctrlSetTooltipColorText|ctrlShow|ctrlShown|ctrlText|ctrlTextHeight|ctrlTextSecondary|ctrlTextWidth|ctrlType|ctrlVisible|ctRowControls|ctRowCount|ctSetCurSel|ctSetData|ctSetHeaderTemplate|ctSetRowTemplate|ctSetValue|ctValue|curatorAddons|curatorCamera|curatorCameraArea|curatorCameraAreaCeiling|curatorCoef|curatorEditableObjects|curatorEditingArea|curatorEditingAreaType|curatorMouseOver|curatorPoints|curatorRegisteredObjects|curatorSelected|curatorWaypointCost|current3DENOperation|currentChannel|currentCommand|currentMagazine|currentMagazineDetail|currentMagazineDetailTurret|currentMagazineTurret|currentMuzzle|currentNamespace|currentTask|currentTasks|currentThrowable|currentVisionMode|currentWaypoint|currentWeapon|currentWeaponMode|currentWeaponTurret|currentZeroing|cursorObject|cursorTarget|customChat|customRadio|cutFadeOut|cutObj|cutRsc|cutText|damage|date|dateToNumber|daytime|deActivateKey|debriefingText|debugFSM|debugLog|deg|delete3DENEntities|deleteAt|deleteCenter|deleteCollection|deleteEditorObject|deleteGroup|deleteGroupWhenEmpty|deleteIdentity|deleteLocation|deleteMarker|deleteMarkerLocal|deleteRange|deleteResources|deleteSite|deleteStatus|deleteTeam|deleteVehicle|deleteVehicleCrew|deleteWaypoint|detach|detectedMines|diag_activeMissionFSMs|diag_activeScripts|diag_activeSQFScripts|diag_activeSQSScripts|diag_captureFrame|diag_captureFrameToFile|diag_captureSlowFrame|diag_codePerformance|diag_drawMode|diag_dynamicSimulationEnd|diag_enable|diag_enabled|diag_fps|diag_fpsMin|diag_frameNo|diag_lightNewLoad|diag_list|diag_log|diag_logSlowFrame|diag_mergeConfigFile|diag_recordTurretLimits|diag_setLightNew|diag_tickTime|diag_toggle|dialog|diarySubjectExists|didJIP|didJIPOwner|difficulty|difficultyEnabled|difficultyEnabledRTD|difficultyOption|direction|directSay|disableAI|disableCollisionWith|disableConversation|disableDebriefingStats|disableMapIndicators|disableNVGEquipment|disableRemoteSensors|disableSerialization|disableTIEquipment|disableUAVConnectability|disableUserInput|displayAddEventHandler|displayCtrl|displayNull|displayParent|displayRemoveAllEventHandlers|displayRemoveEventHandler|displaySetEventHandler|dissolveTeam|distance|distance2D|distanceSqr|distributionRegion|do3DENAction|doArtilleryFire|doFire|doFollow|doFSM|doGetOut|doMove|doorPhase|doStop|doSuppressiveFire|doTarget|doWatch|drawArrow|drawEllipse|drawIcon|drawIcon3D|drawLine|drawLine3D|drawLink|drawLocation|drawPolygon|drawRectangle|drawTriangle|driver|drop|dynamicSimulationDistance|dynamicSimulationDistanceCoef|dynamicSimulationEnabled|dynamicSimulationSystemEnabled|east|edit3DENMissionAttributes|editObject|editorSetEventHandler|effectiveCommander|emptyPositions|enableAI|enableAIFeature|enableAimPrecision|enableAttack|enableAudioFeature|enableAutoStartUpRTD|enableAutoTrimRTD|enableCamShake|enableCaustics|enableChannel|enableCollisionWith|enableCopilot|enableDebriefingStats|enableDiagLegend|enableDynamicSimulation|enableDynamicSimulationSystem|enableEndDialog|enableEngineArtillery|enableEnvironment|enableFatigue|enableGunLights|enableInfoPanelComponent|enableIRLasers|enableMimics|enablePersonTurret|enableRadio|enableReload|enableRopeAttach|enableSatNormalOnDetail|enableSaving|enableSentences|enableSimulation|enableSimulationGlobal|enableStamina|enableStressDamage|enableTeamSwitch|enableTraffic|enableUAVConnectability|enableUAVWaypoints|enableVehicleCargo|enableVehicleSensor|enableWeaponDisassembly|endl|endLoadingScreen|endMission|engineOn|enginesIsOnRTD|enginesPowerRTD|enginesRpmRTD|enginesTorqueRTD|entities|environmentEnabled|estimatedEndServerTime|estimatedTimeLeft|evalObjectArgument|everyBackpack|everyContainer|exec|execEditorScript|exp|expectedDestination|exportJIPMessages|eyeDirection|eyePos|face|faction|fadeMusic|fadeRadio|fadeSound|fadeSpeech|failMission|fillWeaponsFromPool|find|findCover|findDisplay|findEditorObject|findEmptyPosition|findEmptyPositionReady|findIf|findNearestEnemy|finishMissionInit|finite|fire|fireAtTarget|firstBackpack|flag|flagAnimationPhase|flagOwner|flagSide|flagTexture|fleeing|floor|flyInHeight|flyInHeightASL|fog|fogForecast|fogParams|forceAddUniform|forceAtPositionRTD|forcedMap|forceEnd|forceFlagTexture|forceFollowRoad|forceGeneratorRTD|forceMap|forceRespawn|forceSpeed|forceWalk|forceWeaponFire|forceWeatherChange|forgetTarget|format|formation|formationDirection|formationLeader|formationMembers|formationPosition|formationTask|formatText|formLeader|freeLook|fromEditor|fuel|fullCrew|gearIDCAmmoCount|gearSlotAmmoCount|gearSlotData|get3DENActionState|get3DENAttribute|get3DENCamera|get3DENConnections|get3DENEntity|get3DENEntityID|get3DENGrid|get3DENIconsVisible|get3DENLayerEntities|get3DENLinesVisible|get3DENMissionAttribute|get3DENMouseOver|get3DENSelected|getAimingCoef|getAllEnvSoundControllers|getAllHitPointsDamage|getAllOwnedMines|getAllSoundControllers|getAmmoCargo|getAnimAimPrecision|getAnimSpeedCoef|getArray|getArtilleryAmmo|getArtilleryComputerSettings|getArtilleryETA|getAssignedCuratorLogic|getAssignedCuratorUnit|getBackpackCargo|getBleedingRemaining|getBurningValue|getCameraViewDirection|getCargoIndex|getCenterOfMass|getClientState|getClientStateNumber|getCompatiblePylonMagazines|getConnectedUAV|getContainerMaxLoad|getCursorObjectParams|getCustomAimCoef|getDammage|getDescription|getDir|getDirVisual|getDLCAssetsUsage|getDLCAssetsUsageByName|getDLCs|getDLCUsageTime|getEditorCamera|getEditorMode|getEditorObjectScope|getElevationOffset|getEngineTargetRpmRTD|getEnvSoundController|getFatigue|getFieldManualStartPage|getForcedFlagTexture|getFriend|getFSMVariable|getFuelCargo|getGroupIcon|getGroupIconParams|getGroupIcons|getHideFrom|getHit|getHitIndex|getHitPointDamage|getItemCargo|getMagazineCargo|getMarkerColor|getMarkerPos|getMarkerSize|getMarkerType|getMass|getMissionConfig|getMissionConfigValue|getMissionDLCs|getMissionLayerEntities|getMissionLayers|getModelInfo|getMousePosition|getMusicPlayedTime|getNumber|getObjectArgument|getObjectChildren|getObjectDLC|getObjectMaterials|getObjectProxy|getObjectTextures|getObjectType|getObjectViewDistance|getOxygenRemaining|getPersonUsedDLCs|getPilotCameraDirection|getPilotCameraPosition|getPilotCameraRotation|getPilotCameraTarget|getPlateNumber|getPlayerChannel|getPlayerScores|getPlayerUID|getPlayerUIDOld|getPos|getPosASL|getPosASLVisual|getPosASLW|getPosATL|getPosATLVisual|getPosVisual|getPosWorld|getPylonMagazines|getRelDir|getRelPos|getRemoteSensorsDisabled|getRepairCargo|getResolution|getRotorBrakeRTD|getShadowDistance|getShotParents|getSlingLoad|getSoundController|getSoundControllerResult|getSpeed|getStamina|getStatValue|getSuppression|getTerrainGrid|getTerrainHeightASL|getText|getTotalDLCUsageTime|getTrimOffsetRTD|getUnitLoadout|getUnitTrait|getUserMFDText|getUserMFDValue|getVariable|getVehicleCargo|getWeaponCargo|getWeaponSway|getWingsOrientationRTD|getWingsPositionRTD|getWPPos|glanceAt|globalChat|globalRadio|goggles|group|groupChat|groupFromNetId|groupIconSelectable|groupIconsVisible|groupId|groupOwner|groupRadio|groupSelectedUnits|groupSelectUnit|grpNull|gunner|gusts|halt|handgunItems|handgunMagazine|handgunWeapon|handsHit|hasInterface|hasPilotCamera|hasWeapon|hcAllGroups|hcGroupParams|hcLeader|hcRemoveAllGroups|hcRemoveGroup|hcSelected|hcSelectGroup|hcSetGroup|hcShowBar|hcShownBar|headgear|hideBody|hideObject|hideObjectGlobal|hideSelection|hint|hintC|hintCadet|hintSilent|hmd|hostMission|htmlLoad|HUDMovementLevels|humidity|image|importAllGroups|importance|in|inArea|inAreaArray|incapacitatedState|independent|inflame|inflamed|infoPanel|infoPanelComponentEnabled|infoPanelComponents|infoPanels|inGameUISetEventHandler|inheritsFrom|initAmbientLife|inPolygon|inputAction|inRangeOfArtillery|insertEditorObject|intersect|is3DEN|is3DENMultiplayer|isAbleToBreathe|isAgent|isAimPrecisionEnabled|isArray|isAutoHoverOn|isAutonomous|isAutoStartUpEnabledRTD|isAutotest|isAutoTrimOnRTD|isBleeding|isBurning|isClass|isCollisionLightOn|isCopilotEnabled|isDamageAllowed|isDedicated|isDLCAvailable|isEngineOn|isEqualTo|isEqualType|isEqualTypeAll|isEqualTypeAny|isEqualTypeArray|isEqualTypeParams|isFilePatchingEnabled|isFlashlightOn|isFlatEmpty|isForcedWalk|isFormationLeader|isGroupDeletedWhenEmpty|isHidden|isInRemainsCollector|isInstructorFigureEnabled|isIRLaserOn|isKeyActive|isKindOf|isLaserOn|isLightOn|isLocalized|isManualFire|isMarkedForCollection|isMultiplayer|isMultiplayerSolo|isNil|isNull|isNumber|isObjectHidden|isObjectRTD|isOnRoad|isPipEnabled|isPlayer|isRealTime|isRemoteExecuted|isRemoteExecutedJIP|isServer|isShowing3DIcons|isSimpleObject|isSprintAllowed|isStaminaEnabled|isSteamMission|isStreamFriendlyUIEnabled|isStressDamageEnabled|isText|isTouchingGround|isTurnedOut|isTutHintsEnabled|isUAVConnectable|isUAVConnected|isUIContext|isUniformAllowed|isVehicleCargo|isVehicleRadarOn|isVehicleSensorEnabled|isWalking|isWeaponDeployed|isWeaponRested|itemCargo|items|itemsWithMagazines|join|joinAs|joinAsSilent|joinSilent|joinString|kbAddDatabase|kbAddDatabaseTargets|kbAddTopic|kbHasTopic|kbReact|kbRemoveTopic|kbTell|kbWasSaid|keyImage|keyName|knowsAbout|land|landAt|landResult|language|laserTarget|lbAdd|lbClear|lbColor|lbColorRight|lbCurSel|lbData|lbDelete|lbIsSelected|lbPicture|lbPictureRight|lbSelection|lbSetColor|lbSetColorRight|lbSetCurSel|lbSetData|lbSetPicture|lbSetPictureColor|lbSetPictureColorDisabled|lbSetPictureColorSelected|lbSetPictureRight|lbSetPictureRightColor|lbSetPictureRightColorDisabled|lbSetPictureRightColorSelected|lbSetSelectColor|lbSetSelectColorRight|lbSetSelected|lbSetText|lbSetTextRight|lbSetTooltip|lbSetValue|lbSize|lbSort|lbSortByValue|lbText|lbTextRight|lbValue|leader|leaderboardDeInit|leaderboardGetRows|leaderboardInit|leaderboardRequestRowsFriends|leaderboardRequestRowsGlobal|leaderboardRequestRowsGlobalAroundUser|leaderboardsRequestUploadScore|leaderboardsRequestUploadScoreKeepBest|leaderboardState|leaveVehicle|libraryCredits|libraryDisclaimers|lifeState|lightAttachObject|lightDetachObject|lightIsOn|lightnings|limitSpeed|linearConversion|lineBreak|lineIntersects|lineIntersectsObjs|lineIntersectsSurfaces|lineIntersectsWith|linkItem|list|listObjects|listRemoteTargets|listVehicleSensors|ln|lnbAddArray|lnbAddColumn|lnbAddRow|lnbClear|lnbColor|lnbColorRight|lnbCurSelRow|lnbData|lnbDeleteColumn|lnbDeleteRow|lnbGetColumnsPosition|lnbPicture|lnbPictureRight|lnbSetColor|lnbSetColorRight|lnbSetColumnsPos|lnbSetCurSelRow|lnbSetData|lnbSetPicture|lnbSetPictureColor|lnbSetPictureColorRight|lnbSetPictureColorSelected|lnbSetPictureColorSelectedRight|lnbSetPictureRight|lnbSetText|lnbSetTextRight|lnbSetValue|lnbSize|lnbSort|lnbSortByValue|lnbText|lnbTextRight|lnbValue|load|loadAbs|loadBackpack|loadFile|loadGame|loadIdentity|loadMagazine|loadOverlay|loadStatus|loadUniform|loadVest|local|localize|locationNull|locationPosition|lock|lockCameraTo|lockCargo|lockDriver|locked|lockedCargo|lockedDriver|lockedTurret|lockIdentity|lockTurret|lockWP|log|logEntities|logNetwork|logNetworkTerminate|lookAt|lookAtPos|magazineCargo|magazines|magazinesAllTurrets|magazinesAmmo|magazinesAmmoCargo|magazinesAmmoFull|magazinesDetail|magazinesDetailBackpack|magazinesDetailUniform|magazinesDetailVest|magazinesTurret|magazineTurretAmmo|mapAnimAdd|mapAnimClear|mapAnimCommit|mapAnimDone|mapCenterOnCamera|mapGridPosition|markAsFinishedOnSteam|markerAlpha|markerBrush|markerColor|markerDir|markerPos|markerShape|markerSize|markerText|markerType|max|members|menuAction|menuAdd|menuChecked|menuClear|menuCollapse|menuData|menuDelete|menuEnable|menuEnabled|menuExpand|menuHover|menuPicture|menuSetAction|menuSetCheck|menuSetData|menuSetPicture|menuSetValue|menuShortcut|menuShortcutText|menuSize|menuSort|menuText|menuURL|menuValue|min|mineActive|mineDetectedBy|missionConfigFile|missionDifficulty|missionName|missionNamespace|missionStart|missionVersion|modelToWorld|modelToWorldVisual|modelToWorldVisualWorld|modelToWorldWorld|modParams|moonIntensity|moonPhase|morale|move|move3DENCamera|moveInAny|moveInCargo|moveInCommander|moveInDriver|moveInGunner|moveInTurret|moveObjectToEnd|moveOut|moveTime|moveTo|moveToCompleted|moveToFailed|musicVolume|name|nameSound|nearEntities|nearestBuilding|nearestLocation|nearestLocations|nearestLocationWithDubbing|nearestObject|nearestObjects|nearestTerrainObjects|nearObjects|nearObjectsReady|nearRoads|nearSupplies|nearTargets|needReload|netId|netObjNull|newOverlay|nextMenuItemIndex|nextWeatherChange|nMenuItems|numberOfEnginesRTD|numberToDate|objectCurators|objectFromNetId|objectParent|objNull|objStatus|onBriefingGear|onBriefingGroup|onBriefingNotes|onBriefingPlan|onBriefingTeamSwitch|onCommandModeChanged|onDoubleClick|onEachFrame|onGroupIconClick|onGroupIconOverEnter|onGroupIconOverLeave|onHCGroupSelectionChanged|onMapSingleClick|onPlayerConnected|onPlayerDisconnected|onPreloadFinished|onPreloadStarted|onShowNewObject|onTeamSwitch|openCuratorInterface|openDLCPage|openDSInterface|openMap|openSteamApp|openYoutubeVideo|opfor|orderGetIn|overcast|overcastForecast|owner|param|params|parseNumber|parseSimpleArray|parseText|parsingNamespace|particlesQuality|pi|pickWeaponPool|pitch|pixelGrid|pixelGridBase|pixelGridNoUIScale|pixelH|pixelW|playableSlotsNumber|playableUnits|playAction|playActionNow|player|playerRespawnTime|playerSide|playersNumber|playGesture|playMission|playMove|playMoveNow|playMusic|playScriptedMission|playSound|playSound3D|position|positionCameraToWorld|posScreenToWorld|posWorldToScreen|ppEffectAdjust|ppEffectCommit|ppEffectCommitted|ppEffectCreate|ppEffectDestroy|ppEffectEnable|ppEffectEnabled|ppEffectForceInNVG|precision|preloadCamera|preloadObject|preloadSound|preloadTitleObj|preloadTitleRsc|primaryWeapon|primaryWeaponItems|primaryWeaponMagazine|priority|processDiaryLink|processInitCommands|productVersion|profileName|profileNamespace|profileNameSteam|progressLoadingScreen|progressPosition|progressSetPosition|publicVariable|publicVariableClient|publicVariableServer|pushBack|pushBackUnique|putWeaponPool|queryItemsPool|queryMagazinePool|queryWeaponPool|rad|radioChannelAdd|radioChannelCreate|radioChannelRemove|radioChannelSetCallSign|radioChannelSetLabel|radioVolume|rain|rainbow|random|rank|rankId|rating|rectangular|registeredTasks|registerTask|reload|reloadEnabled|remoteControl|remoteExec|remoteExecCall|remoteExecutedOwner|remove3DENConnection|remove3DENEventHandler|remove3DENLayer|removeAction|removeAll3DENEventHandlers|removeAllActions|removeAllAssignedItems|removeAllContainers|removeAllCuratorAddons|removeAllCuratorCameraAreas|removeAllCuratorEditingAreas|removeAllEventHandlers|removeAllHandgunItems|removeAllItems|removeAllItemsWithMagazines|removeAllMissionEventHandlers|removeAllMPEventHandlers|removeAllMusicEventHandlers|removeAllOwnedMines|removeAllPrimaryWeaponItems|removeAllWeapons|removeBackpack|removeBackpackGlobal|removeCuratorAddons|removeCuratorCameraArea|removeCuratorEditableObjects|removeCuratorEditingArea|removeDrawIcon|removeDrawLinks|removeEventHandler|removeFromRemainsCollector|removeGoggles|removeGroupIcon|removeHandgunItem|removeHeadgear|removeItem|removeItemFromBackpack|removeItemFromUniform|removeItemFromVest|removeItems|removeMagazine|removeMagazineGlobal|removeMagazines|removeMagazinesTurret|removeMagazineTurret|removeMenuItem|removeMissionEventHandler|removeMPEventHandler|removeMusicEventHandler|removeOwnedMine|removePrimaryWeaponItem|removeSecondaryWeaponItem|removeSimpleTask|removeSwitchableUnit|removeTeamMember|removeUniform|removeVest|removeWeapon|removeWeaponAttachmentCargo|removeWeaponCargo|removeWeaponGlobal|removeWeaponTurret|reportRemoteTarget|requiredVersion|resetCamShake|resetSubgroupDirection|resistance|resize|resources|respawnVehicle|restartEditorCamera|reveal|revealMine|reverse|reversedMouseY|roadAt|roadsConnectedTo|roleDescription|ropeAttachedObjects|ropeAttachedTo|ropeAttachEnabled|ropeAttachTo|ropeCreate|ropeCut|ropeDestroy|ropeDetach|ropeEndPosition|ropeLength|ropes|ropeUnwind|ropeUnwound|rotorsForcesRTD|rotorsRpmRTD|round|runInitScript|safeZoneH|safeZoneW|safeZoneWAbs|safeZoneX|safeZoneXAbs|safeZoneY|save3DENInventory|saveGame|saveIdentity|saveJoysticks|saveOverlay|saveProfileNamespace|saveStatus|saveVar|savingEnabled|say|say2D|say3D|score|scoreSide|screenshot|screenToWorld|scriptDone|scriptName|scriptNull|scudState|secondaryWeapon|secondaryWeaponItems|secondaryWeaponMagazine|select|selectBestPlaces|selectDiarySubject|selectedEditorObjects|selectEditorObject|selectionNames|selectionPosition|selectLeader|selectMax|selectMin|selectNoPlayer|selectPlayer|selectRandom|selectRandomWeighted|selectWeapon|selectWeaponTurret|sendAUMessage|sendSimpleCommand|sendTask|sendTaskResult|sendUDPMessage|serverCommand|serverCommandAvailable|serverCommandExecutable|serverName|serverTime|set|set3DENAttribute|set3DENAttributes|set3DENGrid|set3DENIconsVisible|set3DENLayer|set3DENLinesVisible|set3DENLogicType|set3DENMissionAttribute|set3DENMissionAttributes|set3DENModelsVisible|set3DENObjectType|set3DENSelected|setAccTime|setActualCollectiveRTD|setAirplaneThrottle|setAirportSide|setAmmo|setAmmoCargo|setAmmoOnPylon|setAnimSpeedCoef|setAperture|setApertureNew|setArmoryPoints|setAttributes|setAutonomous|setBehaviour|setBleedingRemaining|setBrakesRTD|setCameraInterest|setCamShakeDefParams|setCamShakeParams|setCamUseTI|setCaptive|setCenterOfMass|setCollisionLight|setCombatMode|setCompassOscillation|setConvoySeparation|setCuratorCameraAreaCeiling|setCuratorCoef|setCuratorEditingAreaType|setCuratorWaypointCost|setCurrentChannel|setCurrentTask|setCurrentWaypoint|setCustomAimCoef|setCustomWeightRTD|setDamage|setDammage|setDate|setDebriefingText|setDefaultCamera|setDestination|setDetailMapBlendPars|setDir|setDirection|setDrawIcon|setDriveOnPath|setDropInterval|setDynamicSimulationDistance|setDynamicSimulationDistanceCoef|setEditorMode|setEditorObjectScope|setEffectCondition|setEngineRpmRTD|setFace|setFaceAnimation|setFatigue|setFeatureType|setFlagAnimationPhase|setFlagOwner|setFlagSide|setFlagTexture|setFog|setForceGeneratorRTD|setFormation|setFormationTask|setFormDir|setFriend|setFromEditor|setFSMVariable|setFuel|setFuelCargo|setGroupIcon|setGroupIconParams|setGroupIconsSelectable|setGroupIconsVisible|setGroupId|setGroupIdGlobal|setGroupOwner|setGusts|setHideBehind|setHit|setHitIndex|setHitPointDamage|setHorizonParallaxCoef|setHUDMovementLevels|setIdentity|setImportance|setInfoPanel|setLeader|setLightAmbient|setLightAttenuation|setLightBrightness|setLightColor|setLightDayLight|setLightFlareMaxDistance|setLightFlareSize|setLightIntensity|setLightnings|setLightUseFlare|setLocalWindParams|setMagazineTurretAmmo|setMarkerAlpha|setMarkerAlphaLocal|setMarkerBrush|setMarkerBrushLocal|setMarkerColor|setMarkerColorLocal|setMarkerDir|setMarkerDirLocal|setMarkerPos|setMarkerPosLocal|setMarkerShape|setMarkerShapeLocal|setMarkerSize|setMarkerSizeLocal|setMarkerText|setMarkerTextLocal|setMarkerType|setMarkerTypeLocal|setMass|setMimic|setMousePosition|setMusicEffect|setMusicEventHandler|setName|setNameSound|setObjectArguments|setObjectMaterial|setObjectMaterialGlobal|setObjectProxy|setObjectTexture|setObjectTextureGlobal|setObjectViewDistance|setOvercast|setOwner|setOxygenRemaining|setParticleCircle|setParticleClass|setParticleFire|setParticleParams|setParticleRandom|setPilotCameraDirection|setPilotCameraRotation|setPilotCameraTarget|setPilotLight|setPiPEffect|setPitch|setPlateNumber|setPlayable|setPlayerRespawnTime|setPos|setPosASL|setPosASL2|setPosASLW|setPosATL|setPosition|setPosWorld|setPylonLoadOut|setPylonsPriority|setRadioMsg|setRain|setRainbow|setRandomLip|setRank|setRectangular|setRepairCargo|setRotorBrakeRTD|setShadowDistance|setShotParents|setSide|setSimpleTaskAlwaysVisible|setSimpleTaskCustomData|setSimpleTaskDescription|setSimpleTaskDestination|setSimpleTaskTarget|setSimpleTaskType|setSimulWeatherLayers|setSize|setSkill|setSlingLoad|setSoundEffect|setSpeaker|setSpeech|setSpeedMode|setStamina|setStaminaScheme|setStatValue|setSuppression|setSystemOfUnits|setTargetAge|setTaskMarkerOffset|setTaskResult|setTaskState|setTerrainGrid|setText|setTimeMultiplier|setTitleEffect|setToneMapping|setToneMappingParams|setTrafficDensity|setTrafficDistance|setTrafficGap|setTrafficSpeed|setTriggerActivation|setTriggerArea|setTriggerStatements|setTriggerText|setTriggerTimeout|setTriggerType|setType|setUnconscious|setUnitAbility|setUnitLoadout|setUnitPos|setUnitPosWeak|setUnitRank|setUnitRecoilCoefficient|setUnitTrait|setUnloadInCombat|setUserActionText|setUserMFDText|setUserMFDValue|setVariable|setVectorDir|setVectorDirAndUp|setVectorUp|setVehicleAmmo|setVehicleAmmoDef|setVehicleArmor|setVehicleCargo|setVehicleId|setVehicleInit|setVehicleLock|setVehiclePosition|setVehicleRadar|setVehicleReceiveRemoteTargets|setVehicleReportOwnPosition|setVehicleReportRemoteTargets|setVehicleTIPars|setVehicleVarName|setVelocity|setVelocityModelSpace|setVelocityTransformation|setViewDistance|setVisibleIfTreeCollapsed|setWantedRpmRTD|setWaves|setWaypointBehaviour|setWaypointCombatMode|setWaypointCompletionRadius|setWaypointDescription|setWaypointForceBehaviour|setWaypointFormation|setWaypointHousePosition|setWaypointLoiterRadius|setWaypointLoiterType|setWaypointName|setWaypointPosition|setWaypointScript|setWaypointSpeed|setWaypointStatements|setWaypointTimeout|setWaypointType|setWaypointVisible|setWeaponReloadingTime|setWind|setWindDir|setWindForce|setWindStr|setWingForceScaleRTD|setWPPos|show3DIcons|showChat|showCinemaBorder|showCommandingMenu|showCompass|showCuratorCompass|showGPS|showHUD|showLegend|showMap|shownArtilleryComputer|shownChat|shownCompass|shownCuratorCompass|showNewEditorObject|shownGPS|shownHUD|shownMap|shownPad|shownRadio|shownScoretable|shownUAVFeed|shownWarrant|shownWatch|showPad|showRadio|showScoretable|showSubtitles|showUAVFeed|showWarrant|showWatch|showWaypoint|showWaypoints|side|sideAmbientLife|sideChat|sideEmpty|sideEnemy|sideFriendly|sideLogic|sideRadio|sideUnknown|simpleTasks|simulationEnabled|simulCloudDensity|simulCloudOcclusion|simulInClouds|simulWeatherSync|sin|size|sizeOf|skill|skillFinal|skipTime|sleep|sliderPosition|sliderRange|sliderSetPosition|sliderSetRange|sliderSetSpeed|sliderSpeed|slingLoadAssistantShown|soldierMagazines|someAmmo|sort|soundVolume|speaker|speed|speedMode|splitString|sqrt|squadParams|stance|startLoadingScreen|stop|stopEngineRTD|stopped|str|sunOrMoon|supportInfo|suppressFor|surfaceIsWater|surfaceNormal|surfaceType|swimInDepth|switchableUnits|switchAction|switchCamera|switchGesture|switchLight|switchMove|synchronizedObjects|synchronizedTriggers|synchronizedWaypoints|synchronizeObjectsAdd|synchronizeObjectsRemove|synchronizeTrigger|synchronizeWaypoint|systemChat|systemOfUnits|tan|targetKnowledge|targets|targetsAggregate|targetsQuery|taskAlwaysVisible|taskChildren|taskCompleted|taskCustomData|taskDescription|taskDestination|taskHint|taskMarkerOffset|taskNull|taskParent|taskResult|taskState|taskType|teamMember|teamMemberNull|teamName|teams|teamSwitch|teamSwitchEnabled|teamType|terminate|terrainIntersect|terrainIntersectASL|terrainIntersectAtASL|text|textLog|textLogFormat|tg|time|timeMultiplier|titleCut|titleFadeOut|titleObj|titleRsc|titleText|toArray|toFixed|toLower|toString|toUpper|triggerActivated|triggerActivation|triggerArea|triggerAttachedVehicle|triggerAttachObject|triggerAttachVehicle|triggerDynamicSimulation|triggerStatements|triggerText|triggerTimeout|triggerTimeoutCurrent|triggerType|turretLocal|turretOwner|turretUnit|tvAdd|tvClear|tvCollapse|tvCollapseAll|tvCount|tvCurSel|tvData|tvDelete|tvExpand|tvExpandAll|tvPicture|tvPictureRight|tvSetColor|tvSetCurSel|tvSetData|tvSetPicture|tvSetPictureColor|tvSetPictureColorDisabled|tvSetPictureColorSelected|tvSetPictureRight|tvSetPictureRightColor|tvSetPictureRightColorDisabled|tvSetPictureRightColorSelected|tvSetSelectColor|tvSetText|tvSetTooltip|tvSetValue|tvSort|tvSortByValue|tvText|tvTooltip|tvValue|type|typeName|typeOf|UAVControl|uiNamespace|uiSleep|unassignCurator|unassignItem|unassignTeam|unassignVehicle|underwater|uniform|uniformContainer|uniformItems|uniformMagazines|unitAddons|unitAimPosition|unitAimPositionVisual|unitBackpack|unitIsUAV|unitPos|unitReady|unitRecoilCoefficient|units|unitsBelowHeight|unlinkItem|unlockAchievement|unregisterTask|updateDrawIcon|updateMenuItem|updateObjectTree|useAIOperMapObstructionTest|useAISteeringComponent|useAudioTimeForMoves|userInputDisabled|vectorAdd|vectorCos|vectorCrossProduct|vectorDiff|vectorDir|vectorDirVisual|vectorDistance|vectorDistanceSqr|vectorDotProduct|vectorFromTo|vectorMagnitude|vectorMagnitudeSqr|vectorModelToWorld|vectorModelToWorldVisual|vectorMultiply|vectorNormalized|vectorUp|vectorUpVisual|vectorWorldToModel|vectorWorldToModelVisual|vehicle|vehicleCargoEnabled|vehicleChat|vehicleRadio|vehicleReceiveRemoteTargets|vehicleReportOwnPosition|vehicleReportRemoteTargets|vehicles|vehicleVarName|velocity|velocityModelSpace|verifySignature|vest|vestContainer|vestItems|vestMagazines|viewDistance|visibleCompass|visibleGPS|visibleMap|visiblePosition|visiblePositionASL|visibleScoretable|visibleWatch|waitUntil|waves|waypointAttachedObject|waypointAttachedVehicle|waypointAttachObject|waypointAttachVehicle|waypointBehaviour|waypointCombatMode|waypointCompletionRadius|waypointDescription|waypointForceBehaviour|waypointFormation|waypointHousePosition|waypointLoiterRadius|waypointLoiterType|waypointName|waypointPosition|waypoints|waypointScript|waypointsEnabledUAV|waypointShow|waypointSpeed|waypointStatements|waypointTimeout|waypointTimeoutCurrent|waypointType|waypointVisible|weaponAccessories|weaponAccessoriesCargo|weaponCargo|weaponDirection|weaponInertia|weaponLowered|weapons|weaponsItems|weaponsItemsCargo|weaponState|weaponsTurret|weightRTD|west|WFSideText|wind|windDir|windRTD|windStr|wingsForcesRTD|worldName|worldSize|worldToModel|worldToModelVisual|worldToScreen)\\b/i,\n number:\n /(?:\\$|\\b0x)[\\da-f]+\\b|(?:\\B\\.\\d+|\\b\\d+(?:\\.\\d+)?)(?:e[+-]?\\d+)?\\b/i,\n operator: /##|>>|&&|\\|\\||[!=<>]=?|[-+*/%#^]|\\b(?:and|mod|not|or)\\b/i,\n 'magic-variable': {\n pattern:\n /\\b(?:this|thisList|thisTrigger|_exception|_fnc_scriptName|_fnc_scriptNameParent|_forEachIndex|_this|_thisEventHandler|_thisFSM|_thisScript|_x)\\b/i,\n alias: 'keyword'\n },\n constant: /\\bDIK(?:_[a-z\\d]+)+\\b/i\n })\n Prism.languages.insertBefore('sqf', 'string', {\n macro: {\n pattern: /(^[ \\t]*)#[a-z](?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,\n lookbehind: true,\n greedy: true,\n alias: 'property',\n inside: {\n directive: {\n pattern: /#[a-z]+\\b/i,\n alias: 'keyword'\n },\n comment: Prism.languages.sqf.comment\n }\n }\n })\n delete Prism.languages.sqf['class-name']\n}\n","'use strict'\n\nmodule.exports = sql\nsql.displayName = 'sql'\nsql.aliases = []\nfunction sql(Prism) {\n Prism.languages.sql = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n variable: [\n {\n pattern: /@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\n greedy: true\n },\n /@[\\w.$]+/\n ],\n string: {\n pattern: /(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\]|\\2\\2)*\\2/,\n greedy: true,\n lookbehind: true\n },\n identifier: {\n pattern: /(^|[^@\\\\])`(?:\\\\[\\s\\S]|[^`\\\\]|``)*`/,\n greedy: true,\n lookbehind: true,\n inside: {\n punctuation: /^`|`$/\n }\n },\n function:\n /\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,\n // Should we highlight user defined functions too?\n keyword:\n /\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\n boolean: /\\b(?:FALSE|NULL|TRUE)\\b/i,\n number: /\\b0x[\\da-f]+\\b|\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+\\b/i,\n operator:\n /[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,\n punctuation: /[;[\\]()`,.]/\n }\n}\n","'use strict'\n\nmodule.exports = squirrel\nsquirrel.displayName = 'squirrel'\nsquirrel.aliases = []\nfunction squirrel(Prism) {\n Prism.languages.squirrel = Prism.languages.extend('clike', {\n comment: [\n Prism.languages.clike['comment'][0],\n {\n pattern: /(^|[^\\\\:])(?:\\/\\/|#).*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(^|[^\\\\\"'@])(?:@\"(?:[^\"]|\"\")*\"(?!\")|\"(?:[^\\\\\\r\\n\"]|\\\\.)*\")/,\n lookbehind: true,\n greedy: true\n },\n 'class-name': {\n pattern: /(\\b(?:class|enum|extends|instanceof)\\s+)\\w+(?:\\.\\w+)*/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n keyword:\n /\\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\\b/,\n number: /\\b(?:0x[0-9a-fA-F]+|\\d+(?:\\.(?:\\d+|[eE][+-]?\\d+))?)\\b/,\n operator: /\\+\\+|--|<=>|<[-<]|>>>?|&&?|\\|\\|?|[-+*/%!=<>]=?|[~^]|::?/,\n punctuation: /[(){}\\[\\],;.]/\n })\n Prism.languages.insertBefore('squirrel', 'string', {\n char: {\n pattern: /(^|[^\\\\\"'])'(?:[^\\\\']|\\\\(?:[xuU][0-9a-fA-F]{0,8}|[\\s\\S]))'/,\n lookbehind: true,\n greedy: true\n }\n })\n Prism.languages.insertBefore('squirrel', 'operator', {\n 'attribute-punctuation': {\n pattern: /<\\/|\\/>/,\n alias: 'important'\n },\n lambda: {\n pattern: /@(?=\\()/,\n alias: 'operator'\n }\n })\n}\n","'use strict'\n\nmodule.exports = stan\nstan.displayName = 'stan'\nstan.aliases = []\nfunction stan(Prism) {\n ;(function (Prism) {\n // https://mc-stan.org/docs/2_28/reference-manual/bnf-grammars.html\n var higherOrderFunctions =\n /\\b(?:algebra_solver|algebra_solver_newton|integrate_1d|integrate_ode|integrate_ode_bdf|integrate_ode_rk45|map_rect|ode_(?:adams|bdf|ckrk|rk45)(?:_tol)?|ode_adjoint_tol_ctl|reduce_sum|reduce_sum_static)\\b/\n Prism.languages.stan = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\/|#(?!include).*/,\n string: {\n // String literals can contain spaces and any printable ASCII characters except for \" and \\\n // https://mc-stan.org/docs/2_24/reference-manual/print-statements-section.html#string-literals\n pattern: /\"[\\x20\\x21\\x23-\\x5B\\x5D-\\x7E]*\"/,\n greedy: true\n },\n directive: {\n pattern: /^([ \\t]*)#include\\b.*/m,\n lookbehind: true,\n alias: 'property'\n },\n 'function-arg': {\n pattern: RegExp(\n '(' +\n higherOrderFunctions.source +\n /\\s*\\(\\s*/.source +\n ')' +\n /[a-zA-Z]\\w*/.source\n ),\n lookbehind: true,\n alias: 'function'\n },\n constraint: {\n pattern: /(\\b(?:int|matrix|real|row_vector|vector)\\s*)<[^<>]*>/,\n lookbehind: true,\n inside: {\n expression: {\n pattern: /(=\\s*)\\S(?:\\S|\\s+(?!\\s))*?(?=\\s*(?:>$|,\\s*\\w+\\s*=))/,\n lookbehind: true,\n inside: null // see below\n },\n property: /\\b[a-z]\\w*(?=\\s*=)/i,\n operator: /=/,\n punctuation: /^<|>$|,/\n }\n },\n keyword: [\n {\n pattern:\n /\\bdata(?=\\s*\\{)|\\b(?:functions|generated|model|parameters|quantities|transformed)\\b/,\n alias: 'program-block'\n },\n /\\b(?:array|break|cholesky_factor_corr|cholesky_factor_cov|complex|continue|corr_matrix|cov_matrix|data|else|for|if|in|increment_log_prob|int|matrix|ordered|positive_ordered|print|real|reject|return|row_vector|simplex|target|unit_vector|vector|void|while)\\b/, // these are functions that are known to take another function as their first argument.\n higherOrderFunctions\n ],\n function: /\\b[a-z]\\w*(?=\\s*\\()/i,\n number:\n /(?:\\b\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\B\\.\\d+(?:_\\d+)*)(?:E[+-]?\\d+(?:_\\d+)*)?i?(?!\\w)/i,\n boolean: /\\b(?:false|true)\\b/,\n operator: /<-|\\.[*/]=?|\\|\\|?|&&|[!=<>+\\-*/]=?|['^%~?:]/,\n punctuation: /[()\\[\\]{},;]/\n }\n Prism.languages.stan.constraint.inside.expression.inside =\n Prism.languages.stan\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = stylus\nstylus.displayName = 'stylus'\nstylus.aliases = []\nfunction stylus(Prism) {\n ;(function (Prism) {\n var unit = {\n pattern: /(\\b\\d+)(?:%|[a-z]+)/,\n lookbehind: true\n } // 123 -123 .123 -.123 12.3 -12.3\n var number = {\n pattern: /(^|[^\\w.-])-?(?:\\d+(?:\\.\\d+)?|\\.\\d+)/,\n lookbehind: true\n }\n var inside = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true\n },\n url: {\n pattern: /\\burl\\(([\"']?).*?\\1\\)/i,\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,\n greedy: true\n },\n interpolation: null,\n // See below\n func: null,\n // See below\n important: /\\B!(?:important|optional)\\b/i,\n keyword: {\n pattern: /(^|\\s+)(?:(?:else|for|if|return|unless)(?=\\s|$)|@[\\w-]+)/,\n lookbehind: true\n },\n hexcode: /#[\\da-f]{3,6}/i,\n color: [\n /\\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\\b/i,\n {\n pattern:\n /\\b(?:hsl|rgb)\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*\\)\\B|\\b(?:hsl|rgb)a\\(\\s*\\d{1,3}\\s*,\\s*\\d{1,3}%?\\s*,\\s*\\d{1,3}%?\\s*,\\s*(?:0|0?\\.\\d+|1)\\s*\\)\\B/i,\n inside: {\n unit: unit,\n number: number,\n function: /[\\w-]+(?=\\()/,\n punctuation: /[(),]/\n }\n }\n ],\n entity: /\\\\[\\da-f]{1,8}/i,\n unit: unit,\n boolean: /\\b(?:false|true)\\b/,\n operator: [\n // We want non-word chars around \"-\" because it is\n // accepted in property names.\n /~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.{2,3}|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/\n ],\n number: number,\n punctuation: /[{}()\\[\\];:,]/\n }\n inside['interpolation'] = {\n pattern: /\\{[^\\r\\n}:]+\\}/,\n alias: 'variable',\n inside: {\n delimiter: {\n pattern: /^\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: inside\n }\n }\n inside['func'] = {\n pattern: /[\\w-]+\\([^)]*\\).*/,\n inside: {\n function: /^[^(]+/,\n rest: inside\n }\n }\n Prism.languages.stylus = {\n 'atrule-declaration': {\n pattern: /(^[ \\t]*)@.+/m,\n lookbehind: true,\n inside: {\n atrule: /^@[\\w-]+/,\n rest: inside\n }\n },\n 'variable-declaration': {\n pattern: /(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:\\{[^{}]*\\}|\\S.*|$)/m,\n lookbehind: true,\n inside: {\n variable: /^\\S+/,\n rest: inside\n }\n },\n statement: {\n pattern: /(^[ \\t]*)(?:else|for|if|return|unless)[ \\t].+/m,\n lookbehind: true,\n inside: {\n keyword: /^\\S+/,\n rest: inside\n }\n },\n // A property/value pair cannot end with a comma or a brace\n // It cannot have indented content unless it ended with a semicolon\n 'property-declaration': {\n pattern:\n /((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)(?!\\s)[^{\\r\\n]*(?:;|[^{\\r\\n,]$(?!(?:\\r?\\n|\\r)(?:\\{|\\2[ \\t])))/m,\n lookbehind: true,\n inside: {\n property: {\n pattern: /^[^\\s:]+/,\n inside: {\n interpolation: inside.interpolation\n }\n },\n rest: inside\n }\n },\n // A selector can contain parentheses only as part of a pseudo-element\n // It can span multiple lines.\n // It must end with a comma or an accolade or have indented content.\n selector: {\n pattern:\n /(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\)|(?![\\w-]))|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t])))/m,\n lookbehind: true,\n inside: {\n interpolation: inside.interpolation,\n comment: inside.comment,\n punctuation: /[{},]/\n }\n },\n func: inside.func,\n string: inside.string,\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,\n lookbehind: true,\n greedy: true\n },\n interpolation: inside.interpolation,\n punctuation: /[{}()\\[\\];:.]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = swift\nswift.displayName = 'swift'\nswift.aliases = []\nfunction swift(Prism) {\n Prism.languages.swift = {\n comment: {\n // Nested comments are supported up to 2 levels\n pattern:\n /(^|[^\\\\:])(?:\\/\\/.*|\\/\\*(?:[^/*]|\\/(?!\\*)|\\*(?!\\/)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*\\*\\/)/,\n lookbehind: true,\n greedy: true\n },\n 'string-literal': [\n // https://docs.swift.org/swift-book/LanguageGuide/StringsAndCharacters.html\n {\n pattern: RegExp(\n /(^|[^\"#])/.source +\n '(?:' + // single-line string\n /\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n\"])*\"/\n .source +\n '|' + // multi-line string\n /\"\"\"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\\"]|\"(?!\"\"))*\"\"\"/\n .source +\n ')' +\n /(?![\"#])/.source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(\\\\\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n lookbehind: true,\n inside: null // see below\n },\n 'interpolation-punctuation': {\n pattern: /^\\)|\\\\\\($/,\n alias: 'punctuation'\n },\n punctuation: /\\\\(?=[\\r\\n])/,\n string: /[\\s\\S]+/\n }\n },\n {\n pattern: RegExp(\n /(^|[^\"#])(#+)/.source +\n '(?:' + // single-line string\n /\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?\"/\n .source +\n '|' + // multi-line string\n /\"\"\"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?\"\"\"/.source +\n ')' +\n '\\\\2'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /(\\\\#+\\()(?:[^()]|\\([^()]*\\))*(?=\\))/,\n lookbehind: true,\n inside: null // see below\n },\n 'interpolation-punctuation': {\n pattern: /^\\)|\\\\#+\\($/,\n alias: 'punctuation'\n },\n string: /[\\s\\S]+/\n }\n }\n ],\n directive: {\n // directives with conditions\n pattern: RegExp(\n /#/.source +\n '(?:' +\n (/(?:elseif|if)\\b/.source +\n '(?:[ \\t]*' + // This regex is a little complex. It's equivalent to this:\n // (?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*<round>)?|<round>)(?:[ \\t]*(?:&&|\\|\\|))?\n // where <round> is a general parentheses expression.\n /(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?/\n .source +\n ')+') +\n '|' +\n /(?:else|endif)\\b/.source +\n ')'\n ),\n alias: 'property',\n inside: {\n 'directive-name': /^#\\w+/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b\\d+(?:\\.\\d+)*\\b/,\n operator: /!|&&|\\|\\||[<>]=?/,\n punctuation: /[(),]/\n }\n },\n literal: {\n pattern:\n /#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\\b/,\n alias: 'constant'\n },\n 'other-directive': {\n pattern: /#\\w+\\b/,\n alias: 'property'\n },\n attribute: {\n pattern: /@\\w+/,\n alias: 'atrule'\n },\n 'function-definition': {\n pattern: /(\\bfunc\\s+)\\w+/,\n lookbehind: true,\n alias: 'function'\n },\n label: {\n // https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID141\n pattern:\n /\\b(break|continue)\\s+\\w+|\\b[a-zA-Z_]\\w*(?=\\s*:\\s*(?:for|repeat|while)\\b)/,\n lookbehind: true,\n alias: 'important'\n },\n keyword:\n /\\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n nil: {\n pattern: /\\bnil\\b/,\n alias: 'constant'\n },\n 'short-argument': /\\$\\d+\\b/,\n omit: {\n pattern: /\\b_\\b/,\n alias: 'keyword'\n },\n number:\n /\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,\n // A class name must start with an upper-case letter and be either 1 letter long or contain a lower-case letter.\n 'class-name': /\\b[A-Z](?:[A-Z_\\d]*[a-z]\\w*)?\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n constant: /\\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,\n // Operators are generic in Swift. Developers can even create new operators (e.g. +++).\n // https://docs.swift.org/swift-book/ReferenceManual/zzSummaryOfTheGrammar.html#ID481\n // This regex only supports ASCII operators.\n operator: /[-+*/%=!<>&|^~?]+|\\.[.\\-+*/%=!<>&|^~?]+/,\n punctuation: /[{}[\\]();,.:\\\\]/\n }\n Prism.languages.swift['string-literal'].forEach(function (rule) {\n rule.inside['interpolation'].inside = Prism.languages.swift\n })\n}\n","'use strict'\n\nmodule.exports = systemd\nsystemd.displayName = 'systemd'\nsystemd.aliases = []\nfunction systemd(Prism) {\n // https://www.freedesktop.org/software/systemd/man/systemd.syntax.html\n ;(function (Prism) {\n var comment = {\n pattern: /^[;#].*/m,\n greedy: true\n }\n var quotesSource = /\"(?:[^\\r\\n\"\\\\]|\\\\(?:[^\\r]|\\r\\n?))*\"(?!\\S)/.source\n Prism.languages.systemd = {\n comment: comment,\n section: {\n pattern: /^\\[[^\\n\\r\\[\\]]*\\](?=[ \\t]*$)/m,\n greedy: true,\n inside: {\n punctuation: /^\\[|\\]$/,\n 'section-name': {\n pattern: /[\\s\\S]+/,\n alias: 'selector'\n }\n }\n },\n key: {\n pattern: /^[^\\s=]+(?=[ \\t]*=)/m,\n greedy: true,\n alias: 'attr-name'\n },\n value: {\n // This pattern is quite complex because of two properties:\n // 1) Quotes (strings) must be preceded by a space. Since we can't use lookbehinds, we have to \"resolve\"\n // the lookbehind. You will see this in the main loop where spaces are handled separately.\n // 2) Line continuations.\n // After line continuations, empty lines and comments are ignored so we have to consume them.\n pattern: RegExp(\n /(=[ \\t]*(?!\\s))/.source + // the value either starts with quotes or not\n '(?:' +\n quotesSource +\n '|(?=[^\"\\r\\n]))' + // main loop\n '(?:' +\n (/[^\\s\\\\]/.source + // handle spaces separately because of quotes\n '|' +\n '[ \\t]+(?:(?![ \\t\"])|' +\n quotesSource +\n ')' + // line continuation\n '|' +\n /\\\\[\\r\\n]+(?:[#;].*[\\r\\n]+)*(?![#;])/.source) +\n ')*'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'attr-value',\n inside: {\n comment: comment,\n quoted: {\n pattern: RegExp(/(^|\\s)/.source + quotesSource),\n lookbehind: true,\n greedy: true\n },\n punctuation: /\\\\$/m,\n boolean: {\n pattern: /^(?:false|no|off|on|true|yes)$/,\n greedy: true\n }\n }\n },\n punctuation: /=/\n }\n })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorCsharp = require('./csharp.js')\nmodule.exports = t4Cs\nt4Cs.displayName = 't4Cs'\nt4Cs.aliases = []\nfunction t4Cs(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorCsharp)\n Prism.languages.t4 = Prism.languages['t4-cs'] =\n Prism.languages['t4-templating'].createT4('csharp')\n}\n","'use strict'\n\nmodule.exports = t4Templating\nt4Templating.displayName = 't4Templating'\nt4Templating.aliases = []\nfunction t4Templating(Prism) {\n ;(function (Prism) {\n function createBlock(prefix, inside, contentAlias) {\n return {\n pattern: RegExp('<#' + prefix + '[\\\\s\\\\S]*?#>'),\n alias: 'block',\n inside: {\n delimiter: {\n pattern: RegExp('^<#' + prefix + '|#>$'),\n alias: 'important'\n },\n content: {\n pattern: /[\\s\\S]+/,\n inside: inside,\n alias: contentAlias\n }\n }\n }\n }\n function createT4(insideLang) {\n var grammar = Prism.languages[insideLang]\n var className = 'language-' + insideLang\n return {\n block: {\n pattern: /<#[\\s\\S]+?#>/,\n inside: {\n directive: createBlock('@', {\n 'attr-value': {\n pattern: /=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/,\n inside: {\n punctuation: /^=|^[\"']|[\"']$/\n }\n },\n keyword: /\\b\\w+(?=\\s)/,\n 'attr-name': /\\b\\w+/\n }),\n expression: createBlock('=', grammar, className),\n 'class-feature': createBlock('\\\\+', grammar, className),\n standard: createBlock('', grammar, className)\n }\n }\n }\n }\n Prism.languages['t4-templating'] = Object.defineProperty({}, 'createT4', {\n value: createT4\n })\n })(Prism)\n}\n","'use strict'\nvar refractorT4Templating = require('./t4-templating.js')\nvar refractorVbnet = require('./vbnet.js')\nmodule.exports = t4Vb\nt4Vb.displayName = 't4Vb'\nt4Vb.aliases = []\nfunction t4Vb(Prism) {\n Prism.register(refractorT4Templating)\n Prism.register(refractorVbnet)\n Prism.languages['t4-vb'] = Prism.languages['t4-templating'].createT4('vbnet')\n}\n","'use strict'\nvar refractorYaml = require('./yaml.js')\nmodule.exports = tap\ntap.displayName = 'tap'\ntap.aliases = []\nfunction tap(Prism) {\n Prism.register(refractorYaml)\n // https://en.wikipedia.org/wiki/Test_Anything_Protocol\n Prism.languages.tap = {\n fail: /not ok[^#{\\n\\r]*/,\n pass: /ok[^#{\\n\\r]*/,\n pragma: /pragma [+-][a-z]+/,\n bailout: /bail out!.*/i,\n version: /TAP version \\d+/i,\n plan: /\\b\\d+\\.\\.\\d+(?: +#.*)?/,\n subtest: {\n pattern: /# Subtest(?:: .*)?/,\n greedy: true\n },\n punctuation: /[{}]/,\n directive: /#.*/,\n yamlish: {\n pattern: /(^[ \\t]*)---[\\s\\S]*?[\\r\\n][ \\t]*\\.\\.\\.$/m,\n lookbehind: true,\n inside: Prism.languages.yaml,\n alias: 'language-yaml'\n }\n }\n}\n","'use strict'\n\nmodule.exports = tcl\ntcl.displayName = 'tcl'\ntcl.aliases = []\nfunction tcl(Prism) {\n Prism.languages.tcl = {\n comment: {\n pattern: /(^|[^\\\\])#.*/,\n lookbehind: true\n },\n string: {\n pattern: /\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n greedy: true\n },\n variable: [\n {\n pattern: /(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,\n lookbehind: true\n },\n {\n pattern: /(\\$)\\{[^}]+\\}/,\n lookbehind: true\n },\n {\n pattern: /(^[\\t ]*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,\n lookbehind: true\n }\n ],\n function: {\n pattern: /(^[\\t ]*proc[ \\t]+)\\S+/m,\n lookbehind: true\n },\n builtin: [\n {\n pattern:\n /(^[\\t ]*)(?:break|class|continue|error|eval|exit|for|foreach|if|proc|return|switch|while)\\b/m,\n lookbehind: true\n },\n /\\b(?:else|elseif)\\b/\n ],\n scope: {\n pattern: /(^[\\t ]*)(?:global|upvar|variable)\\b/m,\n lookbehind: true,\n alias: 'constant'\n },\n keyword: {\n pattern:\n /(^[\\t ]*|\\[)(?:Safe_Base|Tcl|after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|scan|seek|set|socket|source|split|string|subst|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|test|vars|wordBreak(?:After|Before))|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,\n lookbehind: true\n },\n operator:\n /!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|in|ne|ni)\\b/,\n punctuation: /[{}()\\[\\]]/\n }\n}\n","'use strict'\n\nmodule.exports = textile\ntextile.displayName = 'textile'\ntextile.aliases = []\nfunction textile(Prism) {\n ;(function (Prism) {\n // We don't allow for pipes inside parentheses\n // to not break table pattern |(. foo |). bar |\n var modifierRegex = /\\([^|()\\n]+\\)|\\[[^\\]\\n]+\\]|\\{[^}\\n]+\\}/.source // Opening and closing parentheses which are not a modifier\n // This pattern is necessary to prevent exponential backtracking\n var parenthesesRegex = /\\)|\\((?![^|()\\n]+\\))/.source\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function withModifier(source, flags) {\n return RegExp(\n source\n .replace(/<MOD>/g, function () {\n return '(?:' + modifierRegex + ')'\n })\n .replace(/<PAR>/g, function () {\n return '(?:' + parenthesesRegex + ')'\n }),\n flags || ''\n )\n }\n var modifierTokens = {\n css: {\n pattern: /\\{[^{}]+\\}/,\n inside: {\n rest: Prism.languages.css\n }\n },\n 'class-id': {\n pattern: /(\\()[^()]+(?=\\))/,\n lookbehind: true,\n alias: 'attr-value'\n },\n lang: {\n pattern: /(\\[)[^\\[\\]]+(?=\\])/,\n lookbehind: true,\n alias: 'attr-value'\n },\n // Anything else is punctuation (the first pattern is for row/col spans inside tables)\n punctuation: /[\\\\\\/]\\d+|\\S/\n }\n var textile = (Prism.languages.textile = Prism.languages.extend('markup', {\n phrase: {\n pattern: /(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,\n lookbehind: true,\n inside: {\n // h1. Header 1\n 'block-tag': {\n pattern: withModifier(/^[a-z]\\w*(?:<MOD>|<PAR>|[<>=])*\\./.source),\n inside: {\n modifier: {\n pattern: withModifier(\n /(^[a-z]\\w*)(?:<MOD>|<PAR>|[<>=])+(?=\\.)/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n tag: /^[a-z]\\w*/,\n punctuation: /\\.$/\n }\n },\n // # List item\n // * List item\n list: {\n pattern: withModifier(/^[*#]+<MOD>*\\s+\\S.*/.source, 'm'),\n inside: {\n modifier: {\n pattern: withModifier(/(^[*#]+)<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /^[*#]+/\n }\n },\n // | cell | cell | cell |\n table: {\n // Modifiers can be applied to the row: {color:red}.|1|2|3|\n // or the cell: |{color:red}.1|2|3|\n pattern: withModifier(\n /^(?:(?:<MOD>|<PAR>|[<>=^~])+\\.\\s*)?(?:\\|(?:(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.|(?!(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+\\.))[^|]*)+\\|/\n .source,\n 'm'\n ),\n inside: {\n modifier: {\n // Modifiers for rows after the first one are\n // preceded by a pipe and a line feed\n pattern: withModifier(\n /(^|\\|(?:\\r?\\n|\\r)?)(?:<MOD>|<PAR>|[<>=^~_]|[\\\\/]\\d+)+(?=\\.)/\n .source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /\\||^\\./\n }\n },\n inline: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(\n /(^|[^a-zA-Z\\d])(\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>*.+?\\2(?![a-zA-Z\\d])/\n .source\n ),\n lookbehind: true,\n inside: {\n // Note: superscripts and subscripts are not handled specifically\n // *bold*, **bold**\n bold: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^(\\*\\*?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // _italic_, __italic__\n italic: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^(__?)<MOD>*).+?(?=\\2)/.source),\n lookbehind: true\n },\n // ??cite??\n cite: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\\?\\?<MOD>*).+?(?=\\?\\?)/.source),\n lookbehind: true,\n alias: 'string'\n },\n // @code@\n code: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^@<MOD>*).+?(?=@)/.source),\n lookbehind: true,\n alias: 'keyword'\n },\n // +inserted+\n inserted: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\\+<MOD>*).+?(?=\\+)/.source),\n lookbehind: true\n },\n // -deleted-\n deleted: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^-<MOD>*).+?(?=-)/.source),\n lookbehind: true\n },\n // %span%\n span: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^%<MOD>*).+?(?=%)/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(\n /(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])<MOD>+/.source\n ),\n lookbehind: true,\n inside: modifierTokens\n },\n punctuation: /[*_%?@+\\-^~]+/\n }\n },\n // [alias]http://example.com\n 'link-ref': {\n pattern: /^\\[[^\\]]+\\]\\S+$/m,\n inside: {\n string: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\])\\S+$/,\n lookbehind: true\n },\n punctuation: /[\\[\\]]/\n }\n },\n // \"text\":http://example.com\n // \"text\":link-ref\n link: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(\n /\"<MOD>*[^\"]+\":.+?(?=[^\\w/]?(?:\\s|$))/.source\n ),\n inside: {\n text: {\n // eslint-disable-next-line regexp/no-super-linear-backtracking\n pattern: withModifier(/(^\"<MOD>*)[^\"]+(?=\")/.source),\n lookbehind: true\n },\n modifier: {\n pattern: withModifier(/(^\")<MOD>+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[\":]/\n }\n },\n // !image.jpg!\n // !image.jpg(Title)!:http://example.com\n image: {\n pattern: withModifier(\n /!(?:<MOD>|<PAR>|[<>=])*(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?/\n .source\n ),\n inside: {\n source: {\n pattern: withModifier(\n /(^!(?:<MOD>|<PAR>|[<>=])*)(?![<>=])[^!\\s()]+(?:\\([^)]+\\))?(?=!)/\n .source\n ),\n lookbehind: true,\n alias: 'url'\n },\n modifier: {\n pattern: withModifier(/(^!)(?:<MOD>|<PAR>|[<>=])+/.source),\n lookbehind: true,\n inside: modifierTokens\n },\n url: {\n pattern: /(:).+/,\n lookbehind: true\n },\n punctuation: /[!:]/\n }\n },\n // Footnote[1]\n footnote: {\n pattern: /\\b\\[\\d+\\]/,\n alias: 'comment',\n inside: {\n punctuation: /\\[|\\]/\n }\n },\n // CSS(Cascading Style Sheet)\n acronym: {\n pattern: /\\b[A-Z\\d]+\\([^)]+\\)/,\n inside: {\n comment: {\n pattern: /(\\()[^()]+(?=\\))/,\n lookbehind: true\n },\n punctuation: /[()]/\n }\n },\n // Prism(C)\n mark: {\n pattern: /\\b\\((?:C|R|TM)\\)/,\n alias: 'comment',\n inside: {\n punctuation: /[()]/\n }\n }\n }\n }\n }))\n var phraseInside = textile['phrase'].inside\n var nestedPatterns = {\n inline: phraseInside['inline'],\n link: phraseInside['link'],\n image: phraseInside['image'],\n footnote: phraseInside['footnote'],\n acronym: phraseInside['acronym'],\n mark: phraseInside['mark']\n } // Only allow alpha-numeric HTML tags, not XML tags\n textile.tag.pattern =\n /<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i // Allow some nesting\n var phraseInlineInside = phraseInside['inline'].inside\n phraseInlineInside['bold'].inside = nestedPatterns\n phraseInlineInside['italic'].inside = nestedPatterns\n phraseInlineInside['inserted'].inside = nestedPatterns\n phraseInlineInside['deleted'].inside = nestedPatterns\n phraseInlineInside['span'].inside = nestedPatterns // Allow some styles inside table cells\n var phraseTableInside = phraseInside['table'].inside\n phraseTableInside['inline'] = nestedPatterns['inline']\n phraseTableInside['link'] = nestedPatterns['link']\n phraseTableInside['image'] = nestedPatterns['image']\n phraseTableInside['footnote'] = nestedPatterns['footnote']\n phraseTableInside['acronym'] = nestedPatterns['acronym']\n phraseTableInside['mark'] = nestedPatterns['mark']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = toml\ntoml.displayName = 'toml'\ntoml.aliases = []\nfunction toml(Prism) {\n ;(function (Prism) {\n var key = /(?:[\\w-]+|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")/.source\n /**\n * @param {string} pattern\n */\n function insertKey(pattern) {\n return pattern.replace(/__/g, function () {\n return key\n })\n }\n Prism.languages.toml = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n table: {\n pattern: RegExp(\n insertKey(\n /(^[\\t ]*\\[\\s*(?:\\[\\s*)?)__(?:\\s*\\.\\s*__)*(?=\\s*\\])/.source\n ),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'class-name'\n },\n key: {\n pattern: RegExp(\n insertKey(/(^[\\t ]*|[{,]\\s*)__(?:\\s*\\.\\s*__)*(?=\\s*=)/.source),\n 'm'\n ),\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n string: {\n pattern:\n /\"\"\"(?:\\\\[\\s\\S]|[^\\\\])*?\"\"\"|'''[\\s\\S]*?'''|'[^'\\n\\r]*'|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n date: [\n {\n // Offset Date-Time, Local Date-Time, Local Date\n pattern:\n /\\b\\d{4}-\\d{2}-\\d{2}(?:[T\\s]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:Z|[+-]\\d{2}:\\d{2})?)?\\b/i,\n alias: 'number'\n },\n {\n // Local Time\n pattern: /\\b\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?\\b/,\n alias: 'number'\n }\n ],\n number:\n /(?:\\b0(?:x[\\da-zA-Z]+(?:_[\\da-zA-Z]+)*|o[0-7]+(?:_[0-7]+)*|b[10]+(?:_[10]+)*))\\b|[-+]?\\b\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?\\b|[-+]?\\b(?:inf|nan)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n punctuation: /[.,=[\\]{}]/\n }\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = tremor\ntremor.displayName = 'tremor'\ntremor.aliases = []\nfunction tremor(Prism) {\n ;(function (Prism) {\n Prism.languages.tremor = {\n comment: {\n pattern: /(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,\n lookbehind: true\n },\n 'interpolated-string': null,\n // see below\n extractor: {\n pattern: /\\b[a-z_]\\w*\\|(?:[^\\r\\n\\\\|]|\\\\(?:\\r\\n|[\\s\\S]))*\\|/i,\n greedy: true,\n inside: {\n regex: {\n pattern: /(^re)\\|[\\s\\S]+/,\n lookbehind: true\n },\n function: /^\\w+/,\n value: /\\|[\\s\\S]+/\n }\n },\n identifier: {\n pattern: /`[^`]*`/,\n greedy: true\n },\n function: /\\b[a-z_]\\w*(?=\\s*(?:::\\s*<|\\())\\b/,\n keyword:\n /\\b(?:args|as|by|case|config|connect|connector|const|copy|create|default|define|deploy|drop|each|emit|end|erase|event|flow|fn|for|from|group|having|insert|into|intrinsic|let|links|match|merge|mod|move|of|operator|patch|pipeline|recur|script|select|set|sliding|state|stream|to|tumbling|update|use|when|where|window|with)\\b/,\n boolean: /\\b(?:false|null|true)\\b/i,\n number:\n /\\b(?:0b[01_]*|0x[0-9a-fA-F_]*|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[Ee][+-]?[\\d_]+)?)\\b/,\n 'pattern-punctuation': {\n pattern: /%(?=[({[])/,\n alias: 'punctuation'\n },\n operator:\n /[-+*\\/%~!^]=?|=[=>]?|&[&=]?|\\|[|=]?|<<?=?|>>?>?=?|(?:absent|and|not|or|present|xor)\\b/,\n punctuation: /::|[;\\[\\]()\\{\\},.:]/\n }\n var interpolationPattern =\n /#\\{(?:[^\"{}]|\\{[^{}]*\\}|\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\")*\\}/.source\n Prism.languages.tremor['interpolated-string'] = {\n pattern: RegExp(\n /(^|[^\\\\])/.source +\n '(?:' +\n '\"\"\"(?:' +\n /[^\"\\\\#]|\\\\[\\s\\S]|\"(?!\"\")|#(?!\\{)/.source +\n '|' +\n interpolationPattern +\n ')*\"\"\"' +\n '|' +\n '\"(?:' +\n /[^\"\\\\\\r\\n#]|\\\\(?:\\r\\n|[\\s\\S])|#(?!\\{)/.source +\n '|' +\n interpolationPattern +\n ')*\"' +\n ')'\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n pattern: RegExp(interpolationPattern),\n inside: {\n punctuation: /^#\\{|\\}$/,\n expression: {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages.tremor\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n Prism.languages.troy = Prism.languages['tremor']\n Prism.languages.trickle = Prism.languages['tremor']\n })(Prism)\n}\n","'use strict'\nvar refractorJsx = require('./jsx.js')\nvar refractorTypescript = require('./typescript.js')\nmodule.exports = tsx\ntsx.displayName = 'tsx'\ntsx.aliases = []\nfunction tsx(Prism) {\n Prism.register(refractorJsx)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var typescript = Prism.util.clone(Prism.languages.typescript)\n Prism.languages.tsx = Prism.languages.extend('jsx', typescript) // doesn't work with TS because TS is too complex\n delete Prism.languages.tsx['parameter']\n delete Prism.languages.tsx['literal-property'] // This will prevent collisions between TSX tags and TS generic types.\n // Idea by https://github.com/karlhorky\n // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n var tag = Prism.languages.tsx.tag\n tag.pattern = RegExp(\n /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n tag.pattern.flags\n )\n tag.lookbehind = true\n })(Prism)\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = tt2\ntt2.displayName = 'tt2'\ntt2.aliases = []\nfunction tt2(Prism) {\n Prism.register(refractorMarkupTemplating)\n ;(function (Prism) {\n Prism.languages.tt2 = Prism.languages.extend('clike', {\n comment: /#.*|\\[%#[\\s\\S]*?%\\]/,\n keyword:\n /\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|SWITCH|TAGS|THROW|TRY|UNLESS|USE|WHILE|WRAPPER)\\b/,\n punctuation: /[[\\]{},()]/\n })\n Prism.languages.insertBefore('tt2', 'number', {\n operator: /=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|not|or)\\b/,\n variable: {\n pattern: /\\b[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*\\b/i\n }\n })\n Prism.languages.insertBefore('tt2', 'keyword', {\n delimiter: {\n pattern: /^(?:\\[%|%%)-?|-?%\\]$/,\n alias: 'punctuation'\n }\n })\n Prism.languages.insertBefore('tt2', 'string', {\n 'single-quoted-string': {\n pattern: /'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,\n greedy: true,\n alias: 'string'\n },\n 'double-quoted-string': {\n pattern: /\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,\n greedy: true,\n alias: 'string',\n inside: {\n variable: {\n pattern: /\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i\n }\n }\n }\n }) // The different types of TT2 strings \"replace\" the C-like standard string\n delete Prism.languages.tt2.string\n Prism.hooks.add('before-tokenize', function (env) {\n var tt2Pattern = /\\[%[\\s\\S]+?%\\]/g\n Prism.languages['markup-templating'].buildPlaceholders(\n env,\n 'tt2',\n tt2Pattern\n )\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'tt2')\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = turtle\nturtle.displayName = 'turtle'\nturtle.aliases = []\nfunction turtle(Prism) {\n Prism.languages.turtle = {\n comment: {\n pattern: /#.*/,\n greedy: true\n },\n 'multiline-string': {\n pattern:\n /\"\"\"(?:(?:\"\"?)?(?:[^\"\\\\]|\\\\.))*\"\"\"|'''(?:(?:''?)?(?:[^'\\\\]|\\\\.))*'''/,\n greedy: true,\n alias: 'string',\n inside: {\n comment: /#.*/\n }\n },\n string: {\n pattern: /\"(?:[^\\\\\"\\r\\n]|\\\\.)*\"|'(?:[^\\\\'\\r\\n]|\\\\.)*'/,\n greedy: true\n },\n url: {\n pattern:\n /<(?:[^\\x00-\\x20<>\"{}|^`\\\\]|\\\\(?:u[\\da-fA-F]{4}|U[\\da-fA-F]{8}))*>/,\n greedy: true,\n inside: {\n punctuation: /[<>]/\n }\n },\n function: {\n pattern:\n /(?:(?![-.\\d\\xB7])[-.\\w\\xB7\\xC0-\\uFFFD]+)?:(?:(?![-.])(?:[-.:\\w\\xC0-\\uFFFD]|%[\\da-f]{2}|\\\\.)+)?/i,\n inside: {\n 'local-name': {\n pattern: /([^:]*:)[\\s\\S]+/,\n lookbehind: true\n },\n prefix: {\n pattern: /[\\s\\S]+/,\n inside: {\n punctuation: /:/\n }\n }\n }\n },\n number: /[+-]?\\b\\d+(?:\\.\\d*)?(?:e[+-]?\\d+)?/i,\n punctuation: /[{}.,;()[\\]]|\\^\\^/,\n boolean: /\\b(?:false|true)\\b/,\n keyword: [/(?:\\ba|@prefix|@base)\\b|=/, /\\b(?:base|graph|prefix)\\b/i],\n tag: {\n pattern: /@[a-z]+(?:-[a-z\\d]+)*/i,\n inside: {\n punctuation: /@/\n }\n }\n }\n Prism.languages.trig = Prism.languages['turtle']\n}\n","'use strict'\nvar refractorMarkupTemplating = require('./markup-templating.js')\nmodule.exports = twig\ntwig.displayName = 'twig'\ntwig.aliases = []\nfunction twig(Prism) {\n Prism.register(refractorMarkupTemplating)\n Prism.languages.twig = {\n comment: /^\\{#[\\s\\S]*?#\\}$/,\n 'tag-name': {\n pattern: /(^\\{%-?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n alias: 'punctuation'\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n inside: {\n punctuation: /^['\"]|['\"]$/\n }\n },\n keyword: /\\b(?:even|if|odd)\\b/,\n boolean: /\\b(?:false|null|true)\\b/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n operator: [\n {\n pattern:\n /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n punctuation: /[()\\[\\]{}:.,]/\n }\n Prism.hooks.add('before-tokenize', function (env) {\n if (env.language !== 'twig') {\n return\n }\n var pattern = /\\{(?:#[\\s\\S]*?#|%[\\s\\S]*?%|\\{[\\s\\S]*?\\})\\}/g\n Prism.languages['markup-templating'].buildPlaceholders(env, 'twig', pattern)\n })\n Prism.hooks.add('after-tokenize', function (env) {\n Prism.languages['markup-templating'].tokenizePlaceholders(env, 'twig')\n })\n}\n","'use strict'\n\nmodule.exports = typescript\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\nfunction typescript(Prism) {\n ;(function (Prism) {\n Prism.languages.typescript = Prism.languages.extend('javascript', {\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n builtin:\n /\\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\\b/\n }) // The keywords TypeScript adds to JavaScript\n Prism.languages.typescript.keyword.push(\n /\\b(?:abstract|declare|is|keyof|readonly|require)\\b/, // keywords that have to be followed by an identifier\n /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, // This is for `import type *, {}`\n /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n ) // doesn't work with TS because TS is too complex\n delete Prism.languages.typescript['parameter']\n delete Prism.languages.typescript['literal-property'] // a version of typescript specifically for highlighting types\n var typeInside = Prism.languages.extend('typescript', {})\n delete typeInside['class-name']\n Prism.languages.typescript['class-name'].inside = typeInside\n Prism.languages.insertBefore('typescript', 'function', {\n decorator: {\n pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n inside: {\n at: {\n pattern: /^@/,\n alias: 'operator'\n },\n function: /^[\\s\\S]+/\n }\n },\n 'generic-function': {\n // e.g. foo<T extends \"bar\" | \"baz\">( ...\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n greedy: true,\n inside: {\n function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n generic: {\n pattern: /<[\\s\\S]+/,\n // everything after the first <\n alias: 'class-name',\n inside: typeInside\n }\n }\n }\n })\n Prism.languages.ts = Prism.languages.typescript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = typoscript\ntyposcript.displayName = 'typoscript'\ntyposcript.aliases = ['tsconfig']\nfunction typoscript(Prism) {\n ;(function (Prism) {\n var keywords =\n /\\b(?:ACT|ACTIFSUB|CARRAY|CASE|CLEARGIF|COA|COA_INT|CONSTANTS|CONTENT|CUR|EDITPANEL|EFFECT|EXT|FILE|FLUIDTEMPLATE|FORM|FRAME|FRAMESET|GIFBUILDER|GMENU|GMENU_FOLDOUT|GMENU_LAYERS|GP|HMENU|HRULER|HTML|IENV|IFSUB|IMAGE|IMGMENU|IMGMENUITEM|IMGTEXT|IMG_RESOURCE|INCLUDE_TYPOSCRIPT|JSMENU|JSMENUITEM|LLL|LOAD_REGISTER|NO|PAGE|RECORDS|RESTORE_REGISTER|TEMPLATE|TEXT|TMENU|TMENUITEM|TMENU_LAYERS|USER|USER_INT|_GIFBUILDER|global|globalString|globalVar)\\b/\n Prism.languages.typoscript = {\n comment: [\n {\n // multiline comments /* */\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true\n },\n {\n // double-slash comments - ignored when backslashes or colon is found in front\n // also ignored whenever directly after an equal-sign, because it would probably be an url without protocol\n pattern: /(^|[^\\\\:= \\t]|(?:^|[^= \\t])[ \\t]+)\\/\\/.*/,\n lookbehind: true,\n greedy: true\n },\n {\n // hash comments - ignored when leading quote is found for hex colors in strings\n pattern: /(^|[^\"'])#.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n function: [\n {\n // old include style\n pattern:\n /<INCLUDE_TYPOSCRIPT:\\s*source\\s*=\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')\\s*>/,\n inside: {\n string: {\n pattern: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/,\n inside: {\n keyword: keywords\n }\n },\n keyword: {\n pattern: /INCLUDE_TYPOSCRIPT/\n }\n }\n },\n {\n // new include style\n pattern: /@import\\s*(?:\"[^\"\\r\\n]*\"|'[^'\\r\\n]*')/,\n inside: {\n string: /\"[^\"\\r\\n]*\"|'[^'\\r\\n]*'/\n }\n }\n ],\n string: {\n pattern: /^([^=]*=[< ]?)(?:(?!\\]\\n).)*/,\n lookbehind: true,\n inside: {\n function: /\\{\\$.*\\}/,\n // constants include\n keyword: keywords,\n number: /^\\d+$/,\n punctuation: /[,|:]/\n }\n },\n keyword: keywords,\n number: {\n // special highlighting for indexes of arrays in tags\n pattern: /\\b\\d+\\s*[.{=]/,\n inside: {\n operator: /[.{=]/\n }\n },\n tag: {\n pattern: /\\.?[-\\w\\\\]+\\.?/,\n inside: {\n punctuation: /\\./\n }\n },\n punctuation: /[{}[\\];(),.:|]/,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/\n }\n Prism.languages.tsconfig = Prism.languages.typoscript\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = unrealscript\nunrealscript.displayName = 'unrealscript'\nunrealscript.aliases = ['uc', 'uscript']\nfunction unrealscript(Prism) {\n Prism.languages.unrealscript = {\n comment: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n category: {\n pattern:\n /(\\b(?:(?:autoexpand|hide|show)categories|var)\\s*\\()[^()]+(?=\\))/,\n lookbehind: true,\n greedy: true,\n alias: 'property'\n },\n metadata: {\n pattern: /(\\w\\s*)<\\s*\\w+\\s*=[^<>|=\\r\\n]+(?:\\|\\s*\\w+\\s*=[^<>|=\\r\\n]+)*>/,\n lookbehind: true,\n greedy: true,\n inside: {\n property: /\\b\\w+(?=\\s*=)/,\n operator: /=/,\n punctuation: /[<>|]/\n }\n },\n macro: {\n pattern: /`\\w+/,\n alias: 'property'\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|enum|extends|interface|state(?:\\(\\))?|struct|within)\\s+)\\w+/,\n lookbehind: true\n },\n keyword:\n /\\b(?:abstract|actor|array|auto|autoexpandcategories|bool|break|byte|case|class|classgroup|client|coerce|collapsecategories|config|const|continue|default|defaultproperties|delegate|dependson|deprecated|do|dontcollapsecategories|editconst|editinlinenew|else|enum|event|exec|export|extends|final|float|for|forcescriptorder|foreach|function|goto|guid|hidecategories|hidedropdown|if|ignores|implements|inherits|input|int|interface|iterator|latent|local|material|name|native|nativereplication|noexport|nontransient|noteditinlinenew|notplaceable|operator|optional|out|pawn|perobjectconfig|perobjectlocalized|placeable|postoperator|preoperator|private|protected|reliable|replication|return|server|showcategories|simulated|singular|state|static|string|struct|structdefault|structdefaultproperties|switch|texture|transient|travel|unreliable|until|var|vector|while|within)\\b/,\n function: /\\b[a-z_]\\w*(?=\\s*\\()/i,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n // https://docs.unrealengine.com/udk/Three/UnrealScriptExpressions.html\n operator:\n />>|<<|--|\\+\\+|\\*\\*|[-+*/~!=<>$@]=?|&&?|\\|\\|?|\\^\\^?|[?:%]|\\b(?:ClockwiseFrom|Cross|Dot)\\b/,\n punctuation: /[()[\\]{};,.]/\n }\n Prism.languages.uc = Prism.languages.uscript = Prism.languages.unrealscript\n}\n","'use strict'\n\nmodule.exports = uorazor\nuorazor.displayName = 'uorazor'\nuorazor.aliases = []\nfunction uorazor(Prism) {\n Prism.languages.uorazor = {\n 'comment-hash': {\n pattern: /#.*/,\n alias: 'comment',\n greedy: true\n },\n 'comment-slash': {\n pattern: /\\/\\/.*/,\n alias: 'comment',\n greedy: true\n },\n string: {\n pattern: /(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,\n inside: {\n punctuation: /^['\"]|['\"]$/\n },\n greedy: true\n },\n 'source-layers': {\n pattern:\n /\\b(?:arms|backpack|blue|bracelet|cancel|clear|cloak|criminal|earrings|enemy|facialhair|friend|friendly|gloves|gray|grey|ground|hair|head|innerlegs|innertorso|innocent|lefthand|middletorso|murderer|neck|nonfriendly|onehandedsecondary|outerlegs|outertorso|pants|red|righthand|ring|self|shirt|shoes|talisman|waist)\\b/i,\n alias: 'function'\n },\n 'source-commands': {\n pattern:\n /\\b(?:alliance|attack|cast|clearall|clearignore|clearjournal|clearlist|clearsysmsg|createlist|createtimer|dclick|dclicktype|dclickvar|dress|dressconfig|drop|droprelloc|emote|getlabel|guild|gumpclose|gumpresponse|hotkey|ignore|lasttarget|lift|lifttype|menu|menuresponse|msg|org|organize|organizer|overhead|pause|poplist|potion|promptresponse|pushlist|removelist|removetimer|rename|restock|say|scav|scavenger|script|setability|setlasttarget|setskill|settimer|setvar|sysmsg|target|targetloc|targetrelloc|targettype|undress|unignore|unsetvar|useobject|useonce|useskill|usetype|virtue|wait|waitforgump|waitformenu|waitforprompt|waitforstat|waitforsysmsg|waitfortarget|walk|wfsysmsg|wft|whisper|yell)\\b/,\n alias: 'function'\n },\n 'tag-name': {\n pattern: /(^\\{%-?\\s*)\\w+/,\n lookbehind: true,\n alias: 'keyword'\n },\n delimiter: {\n pattern: /^\\{[{%]-?|-?[%}]\\}$/,\n alias: 'punctuation'\n },\n function:\n /\\b(?:atlist|close|closest|count|counter|counttype|dead|dex|diffhits|diffmana|diffstam|diffweight|find|findbuff|finddebuff|findlayer|findtype|findtypelist|followers|gumpexists|hidden|hits|hp|hue|human|humanoid|ingump|inlist|insysmessage|insysmsg|int|invul|lhandempty|list|listexists|mana|maxhits|maxhp|maxmana|maxstam|maxweight|monster|mounted|name|next|noto|paralyzed|poisoned|position|prev|previous|queued|rand|random|rhandempty|skill|stam|str|targetexists|timer|timerexists|varexist|warmode|weight)\\b/,\n keyword:\n /\\b(?:and|as|break|continue|else|elseif|endfor|endif|endwhile|for|if|loop|not|or|replay|stop|while)\\b/,\n boolean: /\\b(?:false|null|true)\\b/,\n number: /\\b0x[\\dA-Fa-f]+|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,\n operator: [\n {\n pattern:\n /(\\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,\n lookbehind: true\n },\n /[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/\n ],\n punctuation: /[()\\[\\]{}:.,]/\n }\n}\n","'use strict'\n\nmodule.exports = uri\nuri.displayName = 'uri'\nuri.aliases = ['url']\nfunction uri(Prism) {\n // https://tools.ietf.org/html/rfc3986#appendix-A\n Prism.languages.uri = {\n scheme: {\n pattern: /^[a-z][a-z0-9+.-]*:/im,\n greedy: true,\n inside: {\n 'scheme-delimiter': /:$/\n }\n },\n fragment: {\n pattern: /#[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n inside: {\n 'fragment-delimiter': /^#/\n }\n },\n query: {\n pattern: /\\?[\\w\\-.~!$&'()*+,;=%:@/?]*/,\n inside: {\n 'query-delimiter': {\n pattern: /^\\?/,\n greedy: true\n },\n 'pair-delimiter': /[&;]/,\n pair: {\n pattern: /^[^=][\\s\\S]*/,\n inside: {\n key: /^[^=]+/,\n value: {\n pattern: /(^=)[\\s\\S]+/,\n lookbehind: true\n }\n }\n }\n }\n },\n authority: {\n pattern: RegExp(\n /^\\/\\//.source + // [ userinfo \"@\" ]\n /(?:[\\w\\-.~!$&'()*+,;=%:]*@)?/.source + // host\n ('(?:' + // IP-literal\n /\\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\\.[\\w\\-.~!$&'()*+,;=]+)\\]/\n .source +\n '|' + // IPv4address or registered name\n /[\\w\\-.~!$&'()*+,;=%]*/.source +\n ')') + // [ \":\" port ]\n /(?::\\d*)?/.source,\n 'm'\n ),\n inside: {\n 'authority-delimiter': /^\\/\\//,\n 'user-info-segment': {\n pattern: /^[\\w\\-.~!$&'()*+,;=%:]*@/,\n inside: {\n 'user-info-delimiter': /@$/,\n 'user-info': /^[\\w\\-.~!$&'()*+,;=%:]+/\n }\n },\n 'port-segment': {\n pattern: /:\\d*$/,\n inside: {\n 'port-delimiter': /^:/,\n port: /^\\d+/\n }\n },\n host: {\n pattern: /[\\s\\S]+/,\n inside: {\n 'ip-literal': {\n pattern: /^\\[[\\s\\S]+\\]$/,\n inside: {\n 'ip-literal-delimiter': /^\\[|\\]$/,\n 'ipv-future': /^v[\\s\\S]+/,\n 'ipv6-address': /^[\\s\\S]+/\n }\n },\n 'ipv4-address':\n /^(?:(?:[03-9]\\d?|[12]\\d{0,2})\\.){3}(?:[03-9]\\d?|[12]\\d{0,2})$/\n }\n }\n }\n },\n path: {\n pattern: /^[\\w\\-.~!$&'()*+,;=%:@/]+/m,\n inside: {\n 'path-separator': /\\//\n }\n }\n }\n Prism.languages.url = Prism.languages.uri\n}\n","'use strict'\n\nmodule.exports = v\nv.displayName = 'v'\nv.aliases = []\nfunction v(Prism) {\n ;(function (Prism) {\n var interpolationExpr = {\n pattern: /[\\s\\S]+/,\n inside: null\n }\n Prism.languages.v = Prism.languages.extend('clike', {\n string: {\n pattern: /r?([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n alias: 'quoted-string',\n greedy: true,\n inside: {\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$(?:\\{[^{}]*\\}|\\w+(?:\\.\\w+(?:\\([^\\(\\)]*\\))?|\\[[^\\[\\]]+\\])*)/,\n lookbehind: true,\n inside: {\n 'interpolation-variable': {\n pattern: /^\\$\\w[\\s\\S]*$/,\n alias: 'variable'\n },\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n 'interpolation-expression': interpolationExpr\n }\n }\n }\n },\n 'class-name': {\n pattern: /(\\b(?:enum|interface|struct|type)\\s+)(?:C\\.)?\\w+/,\n lookbehind: true\n },\n keyword:\n /(?:\\b(?:__global|as|asm|assert|atomic|break|chan|const|continue|defer|else|embed|enum|fn|for|go(?:to)?|if|import|in|interface|is|lock|match|module|mut|none|or|pub|return|rlock|select|shared|sizeof|static|struct|type(?:of)?|union|unsafe)|\\$(?:else|for|if)|#(?:flag|include))\\b/,\n number:\n /\\b(?:0x[a-f\\d]+(?:_[a-f\\d]+)*|0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?)\\b/i,\n operator:\n /~|\\?|[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\.?/,\n builtin:\n /\\b(?:any(?:_float|_int)?|bool|byte(?:ptr)?|charptr|f(?:32|64)|i(?:8|16|64|128|nt)|rune|size_t|string|u(?:16|32|64|128)|voidptr)\\b/\n })\n interpolationExpr.inside = Prism.languages.v\n Prism.languages.insertBefore('v', 'string', {\n char: {\n pattern: /`(?:\\\\`|\\\\?[^`]{1,2})`/,\n // using {1,2} instead of `u` flag for compatibility\n alias: 'rune'\n }\n })\n Prism.languages.insertBefore('v', 'operator', {\n attribute: {\n pattern:\n /(^[\\t ]*)\\[(?:deprecated|direct_array_access|flag|inline|live|ref_only|typedef|unsafe_fn|windows_stdcall)\\]/m,\n lookbehind: true,\n alias: 'annotation',\n inside: {\n punctuation: /[\\[\\]]/,\n keyword: /\\w+/\n }\n },\n generic: {\n pattern: /<\\w+>(?=\\s*[\\)\\{])/,\n inside: {\n punctuation: /[<>]/,\n 'class-name': /\\w+/\n }\n }\n })\n Prism.languages.insertBefore('v', 'function', {\n 'generic-function': {\n // e.g. foo<T>( ...\n pattern: /\\b\\w+\\s*<\\w+>(?=\\()/,\n inside: {\n function: /^\\w+/,\n generic: {\n pattern: /<\\w+>/,\n inside: Prism.languages.v.generic.inside\n }\n }\n }\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = vala\nvala.displayName = 'vala'\nvala.aliases = []\nfunction vala(Prism) {\n Prism.languages.vala = Prism.languages.extend('clike', {\n // Classes copied from prism-csharp\n 'class-name': [\n {\n // (Foo bar, Bar baz)\n pattern: /\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=(?:\\?\\s+|\\*?\\s+\\*?)\\w)/,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // [Foo]\n pattern: /(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo : Bar\n pattern:\n /(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n },\n {\n // class Foo\n pattern:\n /((?:\\b(?:class|enum|interface|new|struct)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,\n lookbehind: true,\n inside: {\n punctuation: /\\./\n }\n }\n ],\n keyword:\n /\\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\\b/i,\n function: /\\b\\w+(?=\\s*\\()/,\n number:\n /(?:\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?)(?:f|u?l?)?/i,\n operator:\n /\\+\\+|--|&&|\\|\\||<<=?|>>=?|=>|->|~|[+\\-*\\/%&^|=!<>]=?|\\?\\??|\\.\\.\\./,\n punctuation: /[{}[\\];(),.:]/,\n constant: /\\b[A-Z0-9_]+\\b/\n })\n Prism.languages.insertBefore('vala', 'string', {\n 'raw-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n 'template-string': {\n pattern: /@\"[\\s\\S]*?\"/,\n greedy: true,\n inside: {\n interpolation: {\n pattern: /\\$(?:\\([^)]*\\)|[a-zA-Z]\\w*)/,\n inside: {\n delimiter: {\n pattern: /^\\$\\(?|\\)$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.vala\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n Prism.languages.insertBefore('vala', 'keyword', {\n regex: {\n pattern:\n /\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[imsx]{0,4}(?=\\s*(?:$|[\\r\\n,.;})\\]]))/,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\//,\n 'regex-flags': /^[a-z]+$/\n }\n }\n })\n}\n","'use strict'\nvar refractorBasic = require('./basic.js')\nmodule.exports = vbnet\nvbnet.displayName = 'vbnet'\nvbnet.aliases = []\nfunction vbnet(Prism) {\n Prism.register(refractorBasic)\n Prism.languages.vbnet = Prism.languages.extend('basic', {\n comment: [\n {\n pattern: /(?:!|REM\\b).+/i,\n inside: {\n keyword: /^REM/i\n }\n },\n {\n pattern: /(^|[^\\\\:])'.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /(^|[^\"])\"(?:\"\"|[^\"])*\"(?!\")/,\n lookbehind: true,\n greedy: true\n },\n keyword:\n /(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i,\n punctuation: /[,;:(){}]/\n })\n}\n","'use strict'\n\nmodule.exports = velocity\nvelocity.displayName = 'velocity'\nvelocity.aliases = []\nfunction velocity(Prism) {\n ;(function (Prism) {\n Prism.languages.velocity = Prism.languages.extend('markup', {})\n var velocity = {\n variable: {\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+\\])*|\\{[^}]+\\})/i,\n lookbehind: true,\n inside: {} // See below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n number: /\\b\\d+\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator:\n /[=!<>]=?|[+*/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,\n punctuation: /[(){}[\\]:,.]/\n }\n velocity.variable.inside = {\n string: velocity['string'],\n function: {\n pattern: /([^\\w-])[a-z][\\w-]*(?=\\()/,\n lookbehind: true\n },\n number: velocity['number'],\n boolean: velocity['boolean'],\n punctuation: velocity['punctuation']\n }\n Prism.languages.insertBefore('velocity', 'comment', {\n unparsed: {\n pattern: /(^|[^\\\\])#\\[\\[[\\s\\S]*?\\]\\]#/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^#\\[\\[|\\]\\]#$/\n }\n },\n 'velocity-comment': [\n {\n pattern: /(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n },\n {\n pattern: /(^|[^\\\\])##.*/,\n lookbehind: true,\n greedy: true,\n alias: 'comment'\n }\n ],\n directive: {\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,\n lookbehind: true,\n inside: {\n keyword: {\n pattern: /^#@?(?:[a-z][\\w-]*|\\{[a-z][\\w-]*\\})|\\bin\\b/,\n inside: {\n punctuation: /[{}]/\n }\n },\n rest: velocity\n }\n },\n variable: velocity['variable']\n })\n Prism.languages.velocity['tag'].inside['attr-value'].inside.rest =\n Prism.languages.velocity\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = verilog\nverilog.displayName = 'verilog'\nverilog.aliases = []\nfunction verilog(Prism) {\n Prism.languages.verilog = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n 'kernel-function': {\n // support for any kernel function (ex: $display())\n pattern: /\\B\\$\\w+\\b/,\n alias: 'property'\n },\n // support for user defined constants (ex: `define)\n constant: /\\B`\\w+\\b/,\n function: /\\b\\w+(?=\\()/,\n // support for verilog and system verilog keywords\n keyword:\n /\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|case|casex|casez|cell|chandle|class|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endsequence|endspecify|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_ondetect|pulsestyle_onevent|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,\n // bold highlighting for all verilog and system verilog logic blocks\n important: /\\b(?:always|always_comb|always_ff|always_latch)\\b(?: *@)?/,\n // support for time ticks, vectors, and real numbers\n number:\n /\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b(?:\\d*[._])?\\d+(?:e[-+]?\\d+)?/i,\n operator: /[-+{}^~%*\\/?=!<>&|]+/,\n punctuation: /[[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = vhdl\nvhdl.displayName = 'vhdl'\nvhdl.aliases = []\nfunction vhdl(Prism) {\n Prism.languages.vhdl = {\n comment: /--.+/,\n // support for all logic vectors\n 'vhdl-vectors': {\n pattern: /\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,\n alias: 'number'\n },\n // support for operator overloading included\n 'quoted-function': {\n pattern: /\"\\S+?\"(?=\\()/,\n alias: 'function'\n },\n string: /\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,\n constant: /\\b(?:library|use)\\b/i,\n // support for predefined attributes included\n keyword:\n /\\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\\b/i,\n boolean: /\\b(?:false|true)\\b/i,\n function: /\\w+(?=\\()/,\n // decimal, based, physical, and exponential numbers supported\n number: /'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,\n operator:\n /[<>]=?|:=|[-+*/&=]|\\b(?:abs|and|mod|nand|nor|not|or|rem|rol|ror|sla|sll|sra|srl|xnor|xor)\\b/i,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n","'use strict'\n\nmodule.exports = vim\nvim.displayName = 'vim'\nvim.aliases = []\nfunction vim(Prism) {\n Prism.languages.vim = {\n string: /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,\n comment: /\".*/,\n function: /\\b\\w+(?=\\()/,\n keyword:\n /\\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,\n builtin:\n /\\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,\n operator:\n /\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,\n punctuation: /[{}[\\](),;:]/\n }\n}\n","'use strict'\n\nmodule.exports = visualBasic\nvisualBasic.displayName = 'visualBasic'\nvisualBasic.aliases = []\nfunction visualBasic(Prism) {\n Prism.languages['visual-basic'] = {\n comment: {\n pattern: /(?:[']|REM\\b)(?:[^\\r\\n_]|_(?:\\r\\n?|\\n)?)*/i,\n inside: {\n keyword: /^REM/i\n }\n },\n directive: {\n pattern:\n /#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:\\b_[ \\t]*(?:\\r\\n?|\\n)|.)+/i,\n alias: 'property',\n greedy: true\n },\n string: {\n pattern: /\\$?[\"“”](?:[\"“”]{2}|[^\"“”])*[\"“”]C?/i,\n greedy: true\n },\n date: {\n pattern:\n /#[ \\t]*(?:\\d+([/-])\\d+\\1\\d+(?:[ \\t]+(?:\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?))?|\\d+[ \\t]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[ \\t]*(?:AM|PM))?)[ \\t]*#/i,\n alias: 'number'\n },\n number:\n /(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:[FRD]|U?[ILS])?/i,\n boolean: /\\b(?:False|Nothing|True)\\b/i,\n keyword:\n /\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Currency|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|Out|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|SByte|Select|Set|Shadows|Shared|short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TryCast|Type|TypeOf|U(?:Integer|Long|Short)|Until|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\\b/i,\n operator: /[+\\-*/\\\\^<=>&#@$%!]|\\b_(?=[ \\t]*[\\r\\n])/,\n punctuation: /[{}().,:?]/\n }\n Prism.languages.vb = Prism.languages['visual-basic']\n Prism.languages.vba = Prism.languages['visual-basic']\n}\n","'use strict'\n\nmodule.exports = warpscript\nwarpscript.displayName = 'warpscript'\nwarpscript.aliases = []\nfunction warpscript(Prism) {\n Prism.languages.warpscript = {\n comment: /#.*|\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n string: {\n pattern:\n /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'|<'(?:[^\\\\']|'(?!>)|\\\\.)*'>/,\n greedy: true\n },\n variable: /\\$\\S+/,\n macro: {\n pattern: /@\\S+/,\n alias: 'property'\n },\n // WarpScript doesn't have any keywords, these are all functions under the control category\n // https://www.warp10.io/tags/control\n keyword:\n /\\b(?:BREAK|CHECKMACRO|CONTINUE|CUDF|DEFINED|DEFINEDMACRO|EVAL|FAIL|FOR|FOREACH|FORSTEP|IFT|IFTE|MSGFAIL|NRETURN|RETHROW|RETURN|SWITCH|TRY|UDF|UNTIL|WHILE)\\b/,\n number:\n /[+-]?\\b(?:NaN|Infinity|\\d+(?:\\.\\d*)?(?:[Ee][+-]?\\d+)?|0x[\\da-fA-F]+|0b[01]+)\\b/,\n boolean: /\\b(?:F|T|false|true)\\b/,\n punctuation: /<%|%>|[{}[\\]()]/,\n // Some operators from the \"operators\" category\n // https://www.warp10.io/tags/operators\n operator:\n /==|&&?|\\|\\|?|\\*\\*?|>>>?|<<|[<>!~]=?|[-/%^]|\\+!?|\\b(?:AND|NOT|OR)\\b/\n }\n}\n","'use strict'\n\nmodule.exports = wasm\nwasm.displayName = 'wasm'\nwasm.aliases = []\nfunction wasm(Prism) {\n Prism.languages.wasm = {\n comment: [\n /\\(;[\\s\\S]*?;\\)/,\n {\n pattern: /;;.*/,\n greedy: true\n }\n ],\n string: {\n pattern: /\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,\n greedy: true\n },\n keyword: [\n {\n pattern: /\\b(?:align|offset)=/,\n inside: {\n operator: /=/\n }\n },\n {\n pattern:\n /\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,\n inside: {\n punctuation: /\\./\n }\n },\n /\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/\n ],\n variable: /\\$[\\w!#$%&'*+\\-./:<=>?@\\\\^`|~]+/,\n number:\n /[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,\n punctuation: /[()]/\n }\n}\n","'use strict'\n\nmodule.exports = webIdl\nwebIdl.displayName = 'webIdl'\nwebIdl.aliases = []\nfunction webIdl(Prism) {\n ;(function (Prism) {\n var id = /(?:\\B-|\\b_|\\b)[A-Za-z][\\w-]*(?![\\w-])/.source\n var type =\n '(?:' +\n /\\b(?:unsigned\\s+)?long\\s+long(?![\\w-])/.source +\n '|' +\n /\\b(?:unrestricted|unsigned)\\s+[a-z]+(?![\\w-])/.source +\n '|' +\n /(?!(?:unrestricted|unsigned)\\b)/.source +\n id +\n /(?:\\s*<(?:[^<>]|<[^<>]*>)*>)?/.source +\n ')' +\n /(?:\\s*\\?)?/.source\n var typeInside = {}\n Prism.languages['web-idl'] = {\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,\n greedy: true\n },\n string: {\n pattern: /\"[^\"]*\"/,\n greedy: true\n },\n namespace: {\n pattern: RegExp(/(\\bnamespace\\s+)/.source + id),\n lookbehind: true\n },\n 'class-name': [\n {\n pattern:\n /(^|[^\\w-])(?:iterable|maplike|setlike)\\s*<(?:[^<>]|<[^<>]*>)*>/,\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: RegExp(\n /(\\b(?:attribute|const|deleter|getter|optional|setter)\\s+)/.source +\n type\n ),\n lookbehind: true,\n inside: typeInside\n },\n {\n // callback return type\n pattern: RegExp(\n '(' + /\\bcallback\\s+/.source + id + /\\s*=\\s*/.source + ')' + type\n ),\n lookbehind: true,\n inside: typeInside\n },\n {\n // typedef\n pattern: RegExp(/(\\btypedef\\b\\s*)/.source + type),\n lookbehind: true,\n inside: typeInside\n },\n {\n pattern: RegExp(\n /(\\b(?:callback|dictionary|enum|interface(?:\\s+mixin)?)\\s+)(?!(?:interface|mixin)\\b)/\n .source + id\n ),\n lookbehind: true\n },\n {\n // inheritance\n pattern: RegExp(/(:\\s*)/.source + id),\n lookbehind: true\n }, // includes and implements\n RegExp(id + /(?=\\s+(?:implements|includes)\\b)/.source),\n {\n pattern: RegExp(/(\\b(?:implements|includes)\\s+)/.source + id),\n lookbehind: true\n },\n {\n // function return type, parameter types, and dictionary members\n pattern: RegExp(\n type +\n '(?=' +\n /\\s*(?:\\.{3}\\s*)?/.source +\n id +\n /\\s*[(),;=]/.source +\n ')'\n ),\n inside: typeInside\n }\n ],\n builtin:\n /\\b(?:ArrayBuffer|BigInt64Array|BigUint64Array|ByteString|DOMString|DataView|Float32Array|Float64Array|FrozenArray|Int16Array|Int32Array|Int8Array|ObservableArray|Promise|USVString|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray)\\b/,\n keyword: [\n /\\b(?:async|attribute|callback|const|constructor|deleter|dictionary|enum|getter|implements|includes|inherit|interface|mixin|namespace|null|optional|or|partial|readonly|required|setter|static|stringifier|typedef|unrestricted)\\b/, // type keywords\n /\\b(?:any|bigint|boolean|byte|double|float|iterable|long|maplike|object|octet|record|sequence|setlike|short|symbol|undefined|unsigned|void)\\b/\n ],\n boolean: /\\b(?:false|true)\\b/,\n number: {\n pattern:\n /(^|[^\\w-])-?(?:0x[0-9a-f]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|NaN|Infinity)(?![\\w-])/i,\n lookbehind: true\n },\n operator: /\\.{3}|[=:?<>-]/,\n punctuation: /[(){}[\\].,;]/\n }\n for (var key in Prism.languages['web-idl']) {\n if (key !== 'class-name') {\n typeInside[key] = Prism.languages['web-idl'][key]\n }\n }\n Prism.languages['webidl'] = Prism.languages['web-idl']\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = wiki\nwiki.displayName = 'wiki'\nwiki.aliases = []\nfunction wiki(Prism) {\n Prism.languages.wiki = Prism.languages.extend('markup', {\n 'block-comment': {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,\n lookbehind: true,\n alias: 'comment'\n },\n heading: {\n pattern: /^(=+)[^=\\r\\n].*?\\1/m,\n inside: {\n punctuation: /^=+|=+$/,\n important: /.+/\n }\n },\n emphasis: {\n // TODO Multi-line\n pattern: /('{2,5}).+?\\1/,\n inside: {\n 'bold-italic': {\n pattern: /(''''').+?(?=\\1)/,\n lookbehind: true,\n alias: ['bold', 'italic']\n },\n bold: {\n pattern: /(''')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n italic: {\n pattern: /('')[^'](?:.*?[^'])?(?=\\1)/,\n lookbehind: true\n },\n punctuation: /^''+|''+$/\n }\n },\n hr: {\n pattern: /^-{4,}/m,\n alias: 'punctuation'\n },\n url: [\n /ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:PMID|RFC) +\\d+/i,\n /\\[\\[.+?\\]\\]|\\[.+?\\]/\n ],\n variable: [\n /__[A-Z]+__/, // FIXME Nested structures should be handled\n // {{formatnum:{{#expr:{{{3}}}}}}}\n /\\{{3}.+?\\}{3}/,\n /\\{\\{.+?\\}\\}/\n ],\n symbol: [/^#redirect/im, /~{3,5}/],\n // Handle table attrs:\n // {|\n // ! style=\"text-align:left;\"| Item\n // |}\n 'table-tag': {\n pattern: /((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,\n lookbehind: true,\n inside: {\n 'table-bar': {\n pattern: /\\|$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.markup['tag'].inside\n }\n },\n punctuation: /^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m\n })\n Prism.languages.insertBefore('wiki', 'tag', {\n // Prevent highlighting inside <nowiki>, <source> and <pre> tags\n nowiki: {\n pattern: /<(nowiki|pre|source)\\b[^>]*>[\\s\\S]*?<\\/\\1>/i,\n inside: {\n tag: {\n pattern: /<(?:nowiki|pre|source)\\b[^>]*>|<\\/(?:nowiki|pre|source)>/i,\n inside: Prism.languages.markup['tag'].inside\n }\n }\n }\n })\n}\n","'use strict'\n\nmodule.exports = wolfram\nwolfram.displayName = 'wolfram'\nwolfram.aliases = ['mathematica', 'wl', 'nb']\nfunction wolfram(Prism) {\n Prism.languages.wolfram = {\n // Allow one level of nesting - note: regex taken from applescipt\n comment: /\\(\\*(?:\\(\\*(?:[^*]|\\*(?!\\)))*\\*\\)|(?!\\(\\*)[\\s\\S])*?\\*\\)/,\n string: {\n pattern: /\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,\n greedy: true\n },\n keyword:\n /\\b(?:Abs|AbsArg|Accuracy|Block|Do|For|Function|If|Manipulate|Module|Nest|NestList|None|Return|Switch|Table|Which|While)\\b/,\n context: {\n pattern: /\\b\\w+`+\\w*/,\n alias: 'class-name'\n },\n blank: {\n pattern: /\\b\\w+_\\b/,\n alias: 'regex'\n },\n 'global-variable': {\n pattern: /\\$\\w+/,\n alias: 'variable'\n },\n boolean: /\\b(?:False|True)\\b/,\n number:\n /(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,\n operator:\n /\\/\\.|;|=\\.|\\^=|\\^:=|:=|<<|>>|<\\||\\|>|:>|\\|->|->|<-|@@@|@@|@|\\/@|=!=|===|==|=|\\+|-|\\^|\\[\\/-+%=\\]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]/,\n punctuation: /[{}[\\];(),.:]/\n }\n Prism.languages.mathematica = Prism.languages.wolfram\n Prism.languages.wl = Prism.languages.wolfram\n Prism.languages.nb = Prism.languages.wolfram\n}\n","'use strict'\n\nmodule.exports = wren\nwren.displayName = 'wren'\nwren.aliases = []\nfunction wren(Prism) {\n // https://wren.io/\n Prism.languages.wren = {\n // Multiline comments in Wren can have nested multiline comments\n // Comments: // and /* */\n comment: [\n {\n // support 3 levels of nesting\n // regex: \\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\/\n pattern:\n /\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*))*\\*\\/)*\\*\\/)*\\*\\//,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n // Triple quoted strings are multiline but cannot have interpolation (raw strings)\n // Based on prism-python.js\n 'triple-quoted-string': {\n pattern: /\"\"\"[\\s\\S]*?\"\"\"/,\n greedy: true,\n alias: 'string'\n },\n // see below\n 'string-literal': null,\n // #!/usr/bin/env wren on the first line\n hashbang: {\n pattern: /^#!\\/.+/,\n greedy: true,\n alias: 'comment'\n },\n // Attributes are special keywords to add meta data to classes\n attribute: {\n // #! attributes are stored in class properties\n // #!myvar = true\n // #attributes are not stored and dismissed at compilation\n pattern: /#!?[ \\t\\u3000]*\\w+/,\n alias: 'keyword'\n },\n 'class-name': [\n {\n // class definition\n // class Meta {}\n pattern: /(\\bclass\\s+)\\w+/,\n lookbehind: true\n }, // A class must always start with an uppercase.\n // File.read\n /\\b[A-Z][a-z\\d_]*\\b/\n ],\n // A constant can be a variable, class, property or method. Just named in all uppercase letters\n constant: /\\b[A-Z][A-Z\\d_]*\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n },\n keyword:\n /\\b(?:as|break|class|construct|continue|else|for|foreign|if|import|in|is|return|static|super|this|var|while)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n number: /\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\n // Functions can be Class.method()\n function: /\\b[a-z_]\\w*(?=\\s*[({])/i,\n operator: /<<|>>|[=!<>]=?|&&|\\|\\||[-+*/%~^&|?:]|\\.{2,3}/,\n punctuation: /[\\[\\](){}.,;]/\n }\n Prism.languages.wren['string-literal'] = {\n // A single quote string is multiline and can have interpolation (similar to JS backticks ``)\n pattern:\n /(^|[^\\\\\"])\"(?:[^\\\\\"%]|\\\\[\\s\\S]|%(?!\\()|%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\))*\"/,\n lookbehind: true,\n greedy: true,\n inside: {\n interpolation: {\n // \"%(interpolation)\"\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)%\\((?:[^()]|\\((?:[^()]|\\([^)]*\\))*\\))*\\)/,\n lookbehind: true,\n inside: {\n expression: {\n pattern: /^(%\\()[\\s\\S]+(?=\\)$)/,\n lookbehind: true,\n inside: Prism.languages.wren\n },\n 'interpolation-punctuation': {\n pattern: /^%\\(|\\)$/,\n alias: 'punctuation'\n }\n }\n },\n string: /[\\s\\S]+/\n }\n }\n}\n","'use strict'\n\nmodule.exports = xeora\nxeora.displayName = 'xeora'\nxeora.aliases = ['xeoracube']\nfunction xeora(Prism) {\n ;(function (Prism) {\n Prism.languages.xeora = Prism.languages.extend('markup', {\n constant: {\n pattern: /\\$(?:DomainContents|PageRenderDuration)\\$/,\n inside: {\n punctuation: {\n pattern: /\\$/\n }\n }\n },\n variable: {\n pattern: /\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[$.]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n 'function-inline': {\n pattern:\n /\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\$/,\n inside: {\n variable: {\n pattern: /(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,\n inside: {\n punctuation: {\n pattern: /[,.|]/\n },\n operator: {\n pattern: /#+|[-+*~=^@]/\n }\n }\n },\n punctuation: {\n pattern: /\\$\\w:|[$:?.,|]/\n }\n },\n alias: 'function'\n },\n 'function-block': {\n pattern:\n /\\$XF:\\{[-\\w.]+\\?[-\\w.]+(?:,(?:(?:@[-#]*\\w+\\.[\\w+.]\\.*)*\\|)*(?:(?:[\\w+]|[-#*.~^]+[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\\w+\\.[\\w+.]\\.*)+(?:(?:[\\w+]|[-#*~^][-#*.~^]*[\\w+]|=\\S)(?:[^$=]|=+[^=])*=*)?)?)?\\}:XF\\$/,\n inside: {\n punctuation: {\n pattern: /[$:{}?.,|]/\n }\n },\n alias: 'function'\n },\n 'directive-inline': {\n pattern: /\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\/\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n }\n },\n alias: 'function'\n },\n 'directive-block-open': {\n pattern:\n /\\$\\w+:\\{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+\\])?:[-\\w.]+:\\{(?:![A-Z]+)?/,\n inside: {\n punctuation: {\n pattern: /\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,\n inside: {\n tag: {\n pattern: /#\\d/\n }\n }\n },\n attribute: {\n pattern: /![A-Z]+$/,\n inside: {\n punctuation: {\n pattern: /!/\n }\n },\n alias: 'keyword'\n }\n },\n alias: 'function'\n },\n 'directive-block-separator': {\n pattern: /\\}:[-\\w.]+:\\{/,\n inside: {\n punctuation: {\n pattern: /[:{}]/\n }\n },\n alias: 'function'\n },\n 'directive-block-close': {\n pattern: /\\}:[-\\w.]+\\$/,\n inside: {\n punctuation: {\n pattern: /[:{}$]/\n }\n },\n alias: 'function'\n }\n })\n Prism.languages.insertBefore(\n 'inside',\n 'punctuation',\n {\n variable: Prism.languages.xeora['function-inline'].inside['variable']\n },\n Prism.languages.xeora['function-block']\n )\n Prism.languages.xeoracube = Prism.languages.xeora\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = xmlDoc\nxmlDoc.displayName = 'xmlDoc'\nxmlDoc.aliases = []\nfunction xmlDoc(Prism) {\n ;(function (Prism) {\n /**\n * If the given language is present, it will insert the given doc comment grammar token into it.\n *\n * @param {string} lang\n * @param {any} docComment\n */\n function insertDocComment(lang, docComment) {\n if (Prism.languages[lang]) {\n Prism.languages.insertBefore(lang, 'comment', {\n 'doc-comment': docComment\n })\n }\n }\n var tag = Prism.languages.markup.tag\n var slashDocComment = {\n pattern: /\\/\\/\\/.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n var tickDocComment = {\n pattern: /'''.*/,\n greedy: true,\n alias: 'comment',\n inside: {\n tag: tag\n }\n }\n insertDocComment('csharp', slashDocComment)\n insertDocComment('fsharp', slashDocComment)\n insertDocComment('vbnet', tickDocComment)\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = xojo\nxojo.displayName = 'xojo'\nxojo.aliases = []\nfunction xojo(Prism) {\n Prism.languages.xojo = {\n comment: {\n pattern: /(?:'|\\/\\/|Rem\\b).+/i,\n greedy: true\n },\n string: {\n pattern: /\"(?:\"\"|[^\"])*\"/,\n greedy: true\n },\n number: [/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:E[+-]?\\d+)?/i, /&[bchou][a-z\\d]+/i],\n directive: {\n pattern: /#(?:Else|ElseIf|Endif|If|Pragma)\\b/i,\n alias: 'property'\n },\n keyword:\n /\\b(?:AddHandler|App|Array|As(?:signs)?|Auto|Boolean|Break|By(?:Ref|Val)|Byte|Call|Case|Catch|CFStringRef|CGFloat|Class|Color|Const|Continue|CString|Currency|CurrentMethodName|Declare|Delegate|Dim|Do(?:uble|wnTo)?|Each|Else(?:If)?|End|Enumeration|Event|Exception|Exit|Extends|False|Finally|For|Function|Get|GetTypeInfo|Global|GOTO|If|Implements|In|Inherits|Int(?:8|16|32|64|eger|erface)?|Lib|Loop|Me|Module|Next|Nil|Object|Optional|OSType|ParamArray|Private|Property|Protected|PString|Ptr|Raise(?:Event)?|ReDim|RemoveHandler|Return|Select(?:or)?|Self|Set|Shared|Short|Single|Soft|Static|Step|String|Sub|Super|Text|Then|To|True|Try|Ubound|UInt(?:8|16|32|64|eger)?|Until|Using|Var(?:iant)?|Wend|While|WindowPtr|WString)\\b/i,\n operator:\n /<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|WeakAddressOf|Xor)\\b/i,\n punctuation: /[.,;:()]/\n }\n}\n","'use strict'\n\nmodule.exports = xquery\nxquery.displayName = 'xquery'\nxquery.aliases = []\nfunction xquery(Prism) {\n ;(function (Prism) {\n Prism.languages.xquery = Prism.languages.extend('markup', {\n 'xquery-comment': {\n pattern: /\\(:[\\s\\S]*?:\\)/,\n greedy: true,\n alias: 'comment'\n },\n string: {\n pattern: /([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,\n greedy: true\n },\n extension: {\n pattern: /\\(#.+?#\\)/,\n alias: 'symbol'\n },\n variable: /\\$[-\\w:]+/,\n axis: {\n pattern:\n /(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,\n lookbehind: true,\n alias: 'operator'\n },\n 'keyword-operator': {\n pattern:\n /(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,\n lookbehind: true,\n alias: 'operator'\n },\n keyword: {\n pattern:\n /(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,\n lookbehind: true\n },\n function: /[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\n 'xquery-element': {\n pattern: /(element\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'tag'\n },\n 'xquery-attribute': {\n pattern: /(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,\n lookbehind: true,\n alias: 'attr-name'\n },\n builtin: {\n pattern:\n /(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:ENTITIES|ENTITY|ID|IDREFS?|NCName|NMTOKENS?|NOTATION|Name|QName|anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|int|integer|language|long|negativeInteger|nonNegativeInteger|nonPositiveInteger|normalizedString|positiveInteger|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,\n lookbehind: true\n },\n number: /\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,\n operator: [\n /[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,\n {\n pattern: /(\\s)-(?=\\s)/,\n lookbehind: true\n }\n ],\n punctuation: /[[\\](){},;:/]/\n })\n Prism.languages.xquery.tag.pattern =\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/\n Prism.languages.xquery['tag'].inside['attr-value'].pattern =\n /=(?:(\"|')(?:\\\\[\\s\\S]|\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/\n Prism.languages.xquery['tag'].inside['attr-value'].inside['punctuation'] =\n /^=\"|\"$/\n Prism.languages.xquery['tag'].inside['attr-value'].inside['expression'] = {\n // Allow for two levels of nesting\n pattern: /\\{(?!\\{)(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])+\\}/,\n inside: Prism.languages.xquery,\n alias: 'language-xquery'\n } // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{' && // Ignore `{{`\n (!tokens[i + 1] ||\n tokens[i + 1].type !== 'punctuation' ||\n tokens[i + 1].content !== '{') &&\n (!tokens[i - 1] ||\n tokens[i - 1].type !== 'plain-text' ||\n tokens[i - 1].content !== '{')\n ) {\n // Here we might have entered an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left an XQuery expression inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else if (token.type !== 'comment') {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside an XQuery expression.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token) // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n if (/^\\s+$/.test(plainText)) {\n tokens[i] = plainText\n } else {\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'xquery') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = yaml\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\nfunction yaml(Prism) {\n ;(function (Prism) {\n // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n var anchorOrAlias = /[*&][^\\s[\\]{},]+/ // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n var tag =\n /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/ // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n var properties =\n '(?:' +\n tag.source +\n '(?:[ \\t]+' +\n anchorOrAlias.source +\n ')?|' +\n anchorOrAlias.source +\n '(?:[ \\t]+' +\n tag.source +\n ')?)' // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n // This is a simplified version that doesn't support \"#\" and multiline keys\n // All these long scarry character classes are simplified versions of YAML's characters\n var plainKey =\n /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(\n /<PLAIN>/g,\n function () {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/\n .source\n }\n )\n var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source\n /**\n *\n * @param {string} value\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function createValuePattern(value, flags) {\n flags = (flags || '').replace(/m/g, '') + 'm' // add m flag\n var pattern =\n /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<value>>/g, function () {\n return value\n })\n return RegExp(pattern, flags)\n }\n Prism.languages.yaml = {\n scalar: {\n pattern: RegExp(\n /([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(\n /<<prop>>/g,\n function () {\n return properties\n }\n )\n ),\n lookbehind: true,\n alias: 'string'\n },\n comment: /#.*/,\n key: {\n pattern: RegExp(\n /((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<key>>/g, function () {\n return '(?:' + plainKey + '|' + string + ')'\n })\n ),\n lookbehind: true,\n greedy: true,\n alias: 'atrule'\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'important'\n },\n datetime: {\n pattern: createValuePattern(\n /\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/\n .source\n ),\n lookbehind: true,\n alias: 'number'\n },\n boolean: {\n pattern: createValuePattern(/false|true/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n null: {\n pattern: createValuePattern(/null|~/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n string: {\n pattern: createValuePattern(string),\n lookbehind: true,\n greedy: true\n },\n number: {\n pattern: createValuePattern(\n /[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n tag: tag,\n important: anchorOrAlias,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n }\n Prism.languages.yml = Prism.languages.yaml\n })(Prism)\n}\n","'use strict'\n\nmodule.exports = yang\nyang.displayName = 'yang'\nyang.aliases = []\nfunction yang(Prism) {\n Prism.languages.yang = {\n // https://tools.ietf.org/html/rfc6020#page-34\n // http://www.yang-central.org/twiki/bin/view/Main/YangExamples\n comment: /\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*/,\n string: {\n pattern: /\"(?:[^\\\\\"]|\\\\.)*\"|'[^']*'/,\n greedy: true\n },\n keyword: {\n pattern: /(^|[{};\\r\\n][ \\t]*)[a-z_][\\w.-]*/i,\n lookbehind: true\n },\n namespace: {\n pattern: /(\\s)[a-z_][\\w.-]*(?=:)/i,\n lookbehind: true\n },\n boolean: /\\b(?:false|true)\\b/,\n operator: /\\+/,\n punctuation: /[{};:]/\n }\n}\n","'use strict'\n\nmodule.exports = zig\nzig.displayName = 'zig'\nzig.aliases = []\nfunction zig(Prism) {\n ;(function (Prism) {\n function literal(str) {\n return function () {\n return str\n }\n }\n var keyword =\n /\\b(?:align|allowzero|and|anyframe|anytype|asm|async|await|break|cancel|catch|comptime|const|continue|defer|else|enum|errdefer|error|export|extern|fn|for|if|inline|linksection|nakedcc|noalias|nosuspend|null|or|orelse|packed|promise|pub|resume|return|stdcallcc|struct|suspend|switch|test|threadlocal|try|undefined|union|unreachable|usingnamespace|var|volatile|while)\\b/\n var IDENTIFIER = '\\\\b(?!' + keyword.source + ')(?!\\\\d)\\\\w+\\\\b'\n var ALIGN = /align\\s*\\((?:[^()]|\\([^()]*\\))*\\)/.source\n var PREFIX_TYPE_OP =\n /(?:\\?|\\bpromise->|(?:\\[[^[\\]]*\\]|\\*(?!\\*)|\\*\\*)(?:\\s*<ALIGN>|\\s*const\\b|\\s*volatile\\b|\\s*allowzero\\b)*)/.source.replace(\n /<ALIGN>/g,\n literal(ALIGN)\n )\n var SUFFIX_EXPR =\n /(?:\\bpromise\\b|(?:\\berror\\.)?<ID>(?:\\.<ID>)*(?!\\s+<ID>))/.source.replace(\n /<ID>/g,\n literal(IDENTIFIER)\n )\n var TYPE =\n '(?!\\\\s)(?:!?\\\\s*(?:' + PREFIX_TYPE_OP + '\\\\s*)*' + SUFFIX_EXPR + ')+'\n /*\n * A simplified grammar for Zig compile time type literals:\n *\n * TypeExpr = ( \"!\"? PREFIX_TYPE_OP* SUFFIX_EXPR )+\n *\n * SUFFIX_EXPR = ( \\b \"promise\" \\b | ( \\b \"error\" \".\" )? IDENTIFIER ( \".\" IDENTIFIER )* (?! \\s+ IDENTIFIER ) )\n *\n * PREFIX_TYPE_OP = \"?\"\n * | \\b \"promise\" \"->\"\n * | ( \"[\" [^\\[\\]]* \"]\" | \"*\" | \"**\" ) ( ALIGN | \"const\" \\b | \"volatile\" \\b | \"allowzero\" \\b )*\n *\n * ALIGN = \"align\" \"(\" ( [^()] | \"(\" [^()]* \")\" )* \")\"\n *\n * IDENTIFIER = \\b (?! KEYWORD ) [a-zA-Z_] \\w* \\b\n *\n */\n Prism.languages.zig = {\n comment: [\n {\n pattern: /\\/\\/[/!].*/,\n alias: 'doc-comment'\n },\n /\\/{2}.*/\n ],\n string: [\n {\n // \"string\" and c\"string\"\n pattern: /(^|[^\\\\@])c?\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,\n lookbehind: true,\n greedy: true\n },\n {\n // multiline strings and c-strings\n pattern: /([\\r\\n])([ \\t]+c?\\\\{2}).*(?:(?:\\r\\n?|\\n)\\2.*)*/,\n lookbehind: true,\n greedy: true\n }\n ],\n char: {\n // characters 'a', '\\n', '\\xFF', '\\u{10FFFF}'\n pattern:\n /(^|[^\\\\])'(?:[^'\\\\\\r\\n]|[\\uD800-\\uDFFF]{2}|\\\\(?:.|x[a-fA-F\\d]{2}|u\\{[a-fA-F\\d]{1,6}\\}))'/,\n lookbehind: true,\n greedy: true\n },\n builtin: /\\B@(?!\\d)\\w+(?=\\s*\\()/,\n label: {\n pattern:\n /(\\b(?:break|continue)\\s*:\\s*)\\w+\\b|\\b(?!\\d)\\w+\\b(?=\\s*:\\s*(?:\\{|while\\b))/,\n lookbehind: true\n },\n 'class-name': [\n // const Foo = struct {};\n /\\b(?!\\d)\\w+(?=\\s*=\\s*(?:(?:extern|packed)\\s+)?(?:enum|struct|union)\\s*[({])/,\n {\n // const x: i32 = 9;\n // var x: Bar;\n // fn foo(x: bool, y: f32) void {}\n pattern: RegExp(\n /(:\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?[=;,)])|<TYPE>(?=\\s*(?:<ALIGN>\\s*)?\\{)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n },\n {\n // extern fn foo(x: f64) f64; (optional alignment)\n pattern: RegExp(\n /(\\)\\s*)<TYPE>(?=\\s*(?:<ALIGN>\\s*)?;)/.source\n .replace(/<TYPE>/g, literal(TYPE))\n .replace(/<ALIGN>/g, literal(ALIGN))\n ),\n lookbehind: true,\n inside: null // see below\n }\n ],\n 'builtin-type': {\n pattern:\n /\\b(?:anyerror|bool|c_u?(?:int|long|longlong|short)|c_longdouble|c_void|comptime_(?:float|int)|f(?:16|32|64|128)|[iu](?:8|16|32|64|128|size)|noreturn|type|void)\\b/,\n alias: 'keyword'\n },\n keyword: keyword,\n function: /\\b(?!\\d)\\w+(?=\\s*\\()/,\n number:\n /\\b(?:0b[01]+|0o[0-7]+|0x[a-fA-F\\d]+(?:\\.[a-fA-F\\d]*)?(?:[pP][+-]?[a-fA-F\\d]+)?|\\d+(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\b/,\n boolean: /\\b(?:false|true)\\b/,\n operator:\n /\\.[*?]|\\.{2,3}|[-=]>|\\*\\*|\\+\\+|\\|\\||(?:<<|>>|[-+*]%|[-+*/%^&|<>!=])=?|[?~]/,\n punctuation: /[.:,;(){}[\\]]/\n }\n Prism.languages.zig['class-name'].forEach(function (obj) {\n if (obj.inside === null) {\n obj.inside = Prism.languages.zig\n }\n })\n })(Prism)\n}\n","/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\t/**\n\t\t * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n\t\t * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n\t\t * own worker, you don't want it to do this.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not add its own listeners to the worker.\n\t\t *\n\t\t * You obviously have to change this value before Prism executes. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.disableWorkerMessageHandler = true;\n\t\t * // Load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar m = lang.exec(element.className);\n\t\t\t\t\tif (m) {\n\t\t\t\t\t\treturn m[1].toLowerCase();\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Sets the Prism `language-xxxx` class of the given element.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} language\n\t\t\t * @returns {void}\n\t\t\t */\n\t\t\tsetLanguage: function (element, language) {\n\t\t\t\t// remove all `language-xxxx` classes\n\t\t\t\t// (this might leave behind a leading space)\n\t\t\t\telement.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n\t\t\t\t// add the new `language-xxxx` class\n\t\t\t\t// (using `classList` will automatically clean up spaces for us)\n\t\t\t\telement.classList.add('language-' + language);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\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\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prisms API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\t_.util.setLanguage(element, language);\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\t_.util.setLanguage(parent, language);\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what youre doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tif (!env.grammar) {\n\t\t\t\tthrow new Error('The language \"' + env.language + '\" has no grammar.');\n\t\t\t}\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match || match.index >= text.length) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif (typeof module !== 'undefined' && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","var parse = require('inline-style-parser');\n\n/**\n * Parses inline style to object.\n *\n * @example\n * // returns { 'line-height': '42' }\n * StyleToObject('line-height: 42;');\n *\n * @param {String} style - The inline style.\n * @param {Function} [iterator] - The iterator function.\n * @return {null|Object}\n */\nfunction StyleToObject(style, iterator) {\n var output = null;\n if (!style || typeof style !== 'string') {\n return output;\n }\n\n var declaration;\n var declarations = parse(style);\n var hasIterator = typeof iterator === 'function';\n var property;\n var value;\n\n for (var i = 0, len = declarations.length; i < len; i++) {\n declaration = declarations[i];\n property = declaration.property;\n value = declaration.value;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n output || (output = {});\n output[property] = value;\n }\n }\n\n return output;\n}\n\nmodule.exports = StyleToObject;\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\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}\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}\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}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\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 return possibleConstructorReturn(this, result);\n };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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 return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var superPropBase = require(\"./superPropBase.js\");\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _get.apply(this, arguments);\n}\nmodule.exports = _get, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : 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}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\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 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}\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 try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\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 return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : 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}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}\nmodule.exports = _superPropBase, 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}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// 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\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// 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};","// 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__.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); }","// 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};","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 return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\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 return keys;\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 return target;\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 if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\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 for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\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}","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 default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\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 if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\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 return _arr;\n}","\nconst data = {\n \"categories\": [\n {\n \"title\": \"Proxmox Tools\",\n }, {\n \"title\": \"Home Assistant\",\n }, {\n \"title\": \"Automation\",\n }, {\n \"title\": \"MQTT\",\n }, {\n \"title\": \"Database\",\n }, {\n \"title\": \"Zigbee - Zwave\",\n }, {\n \"title\": \"Monitoring - Analytics\",\n }, {\n \"title\": \"Docker - Kubernetes\",\n }, {\n \"title\": \"Operating System\",\n }, {\n \"title\": \"Server - Networking\",\n }, {\n \"title\": \"Media - Photo\",\n }, {\n \"title\": \"Ad Blocker - DNS\",\n }, {\n \"title\": \"Document - Notes\",\n }, {\n \"title\": \"Dashboards\",\n }, {\n \"title\": \"File - Code\",\n }, {\n \"title\": \"Miscellaneous\",\n }],\n \"items\": [\n {\n \"category\": \"Proxmox Tools\",\n \"title\": \"Proxmox VE 7 Post Install\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Proxmox VE 7 Post Install </h1>\n \n The script will give options to Disable the Enterprise Repo, Add/Correct PVE7 Sources, Enable the No-Subscription Repo, Add Test/Beta Repo, Disable Subscription Nag, Update Proxmox VE and Reboot PVE.\n \n Run the command below in the <b>Proxmox Shell</b>. ⚠️ **PVE7 ONLY**\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)\"\n ~~~\n \n <p>It's recommended to answer <code class=\"highlighter-rouge\">y</code> to all options.</p>`\n },\n {\n \"category\": \"Proxmox Tools\",\n\n \"title\": \"Proxmox Kernel Clean\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Proxmox Kernel Clean </h1>\n Cleaning unused kernel images is not only good because of a reduced grub menu, but also gains some disk space.\n \n Run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/kernel-clean.sh)\"\n ~~~`\n },\n {\n \"category\": \"Proxmox Tools\",\n\n \"title\": \"Proxmox Edge Kernel Tool\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Proxmox Edge Kernel Tool </h1>\n\n PVE [Edge Kernels](https://github.com/fabianishere/pve-edge-kernel) are custom Linux Kernels for Proxmox VE 7. Keeping up with new Kernel releases instead of LTS\n \n Run the command below in the Proxmox Shell.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/edge-kernel.sh)\"\n ~~~`\n },\n {\n \"category\": \"Proxmox Tools\",\n\n \"title\": \"Proxmox CPU Scaling Governor\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/cpu.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Proxmox CPU Scaling Governor </h1>\n\n CPU Scaling Governor enables the operating system to scale the CPU frequency up or down in order to save power or improve performance. [Generic Scaling Governors](https://www.kernel.org/doc/html/latest/admin-guide/pm/cpufreq.html?#generic-scaling-governors)\n \n Run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/scaling-governor.sh)\"\n ~~~`\n },\n {\n \"category\": \"Proxmox Tools\",\n\n \"title\": \"Proxmox LXC Updater\",\n \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Felpuig.xeill.net%2FMembers%2Fvcarceler%2Farticulos%2Fcontenedores-con-lxd-lxc%2Fcontainers.png&f=1&nofb=1\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Proxmox LXC Updater </h1>\n Update All LXC's Fast & Easy (Ubuntu, Debian, Devuan, Alpine Linux, CentOS-Rocky-Alma, Fedora, ArchLinux)\n \n Run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/update-lxcs.sh)\"\n ~~~`\n },\n {\n \"category\": \"Proxmox Tools\",\n\n \"title\": \"Proxmox Dark Theme\",\n \"content\": `<p align=\"center\"><img src=\"https://camo.githubusercontent.com/f6f33a09f8c1207dfb3dc1cbd754c2f3393562c11b1c999751ad9a91a656834a/68747470733a2f2f692e696d6775722e636f6d2f536e6c437948462e706e67\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Proxmox Discord Dark Theme </h1>\n \n A dark theme for the Proxmox Web UI by [Weilbyte](https://github.com/Weilbyte/PVEDiscordDark)\n \n Run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash <(curl -s https://raw.githubusercontent.com/Weilbyte/PVEDiscordDark/master/PVEDiscordDark.sh ) install\n ~~~\n \n To uninstall the theme, simply run the script with the <code class=\"highlighter-rouge\">uninstall</code> command.`\n },\n {\n \"category\": \"Proxmox Tools\",\n\n \"title\": \"Proxmox Backup Server Post Install\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/proxmoxve/icon.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Proxmox Backup Server Post Install </h1>\n The script will give options to Disable the Enterprise Repo, Add/Correct PBS Sources, Enable the No-Subscription Repo, Add Test Repo, Disable Subscription Nag, Update Proxmox Backup Server and Reboot PBS.\n \n Run the command below in the <b>Proxmox Shell</b>. ⚠️ **Proxmox Backup Server ONLY**\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pbs-install.sh)\"\n ~~~\n \n It's recommended to answer <code class=\"highlighter-rouge\">y</code> to all options.`\n },\n {\n \"category\": \"Home Assistant\",\n\n \"title\": \"Home Assistant OS VM\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/haos.png?raw=true\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Home Assistant OS VM </h1>\n <h3 align=\"center\"> Option to create VM using Stable, Beta, Dev or Latest Image </h3>\n \n The script automates the manual process of finding, downloading and extracting the Official KVM (qcow2) disk image provided by the Home Assistant Team, creating a VM with user defined settings, importing and attaching the disk, setting the boot order and starting the VM. No hidden (kpartx, unzip, ect...) installs of any kind. Supports lvmthin, zfspool, nfs, dir and btrfs storage types.\n \n To create a new Proxmox Home Assistant OS VM, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/haos-vm-v4.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 4GB RAM - 32GB Storage - 2vCPU - Stable Image ⚡</h3>\n \n After the script completes, click on the VM, then on the **_Summary_** tab to find the VM IP.\n \n **Home Assistant Interface: IP:8123**`\n },\n {\n \"category\": \"Home Assistant\",\n\n \"title\": \"PiMox HAOS VM\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/pimox.png?raw=true\" width=\"100\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\"> PiMox HAOS VM </h1>\n \n <h3 align=\"center\"> Option to create VM using Stable, Beta or Dev Image </h3>\n \n The script automates the manual process of finding, downloading and extracting the aarch64 (qcow2) disk image provided by the Home Assistant Team, creating a VM with user defined settings, importing and attaching the disk, setting the boot order and starting the VM.\n \n To create a new PiMox HAOS VM, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/pimox-haos-vm-v4.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 4GB RAM - 32GB Storage - 2vCPU - Stable Image ⚡</h3>\n \n After the script completes, click on the VM, then on the **_Console_** tab to find the VM IP.\n \n **Home Assistant Interface: IP:8123**`\n },\n {\n \"category\": \"Home Assistant\",\n\n \"title\": \"Home Assistant Container LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/docker/docs/main/assets/images/docker-icon.svg\" height=\"100\"/>\n <img src=\"https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4\" width=\"100\" height=\"100\"/><img src=\"https://avatars1.githubusercontent.com/u/22225832?s=400&amp;v=4\" alt=\"GitHub - portainer/portainer-docs: Portainer documentation\" width=\"100\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Home Assistant Container LXC </h1>\n <h3 align=\"center\"> Option to Use Fuse Overlayfs (Advanced)</h3> \n\n 🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n A standalone container-based installation of Home Assistant Core\n \n To create a new Proxmox Home Assistant Container LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update ALL Containers, Remove Unused Images or Install HACS, run the command below in the <b>LXC Console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 16GB Storage - 2vCPU ⚡</h3>\n \n **Home Assistant Interface: IP:8123**\n \n **Portainer Interface: IP:9000**\n \n ⚙️ **Path to HA /config**\n ~~~bash\n /var/lib/docker/volumes/hass_config/_data\n ~~~`\n \n },\n {\n \"category\": \"Home Assistant\",\n\n \"title\": \"Home Assistant Core LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4\" width=\"100\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Home Assistant Core LXC </h1>\n \n A standalone installation of Home Assistant Core\n \n 🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n \n To create a new Proxmox Home Assistant Core LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update, Install HACS or Filebrowser, run the command below in the <b>LXC Console</b>. <br>\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homeassistant-core-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n\n **Home Assistant Interface: IP:8123**\n \n ⚙️ **Path to HA /config**\n ~~~bash\n /root/.homeassistant\n ~~~`\n \n },\n {\n \"category\": \"Home Assistant\",\n\n \"title\": \"Podman Home Assistant Container LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg\" height=\"100\"/>\n <img src=\"https://avatars.githubusercontent.com/u/13844975?s=200&amp;v=4\" height=\"100\"/><img/></p>\n <h1 align=\"center\" id=\"heading\">Podman Home Assistant Container LXC</h1>\n \n A standalone container-based installation of Home Assistant Core\n \n 🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n To create a new Proxmox Podman Home Assistant Container LXC, run the command below in the <b>Proxmox Shell</b>. <br> \n To Update Podman, Install HACS or FileBrowser, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman-homeassistant-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 16GB Storage - 2vCPU ⚡</h3>\n \n **Home Assistant Interface: IP:8123**\n \n ⚙️ **Path to HA /config**\n ~~~bash\n /var/lib/containers/storage/volumes/hass_config/_data\n ~~~`\n\n },\n {\n \"category\": \"Automation\",\n\n \"title\": \"ioBroker LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/ioBroker/ioBroker/blob/master/img/logos/ioBroker_Logo_256px.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> ioBroker LXC </h1>\n \n [ioBroker](https://www.iobroker.net/#en/intro) is an open source automation platform.\n \n To create a new Proxmox ioBroker LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/iobroker-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **ioBroker Interface: IP:8081**`\n \n },\n {\n \"category\": \"Automation\",\n\n \"title\": \"openHAB LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://www.openhab.org/openhab-logo-square.png?raw=true\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\">openHAB LXC</h1>\n\n [openHAB](https://www.openhab.org/), a vendor and technology agnostic open source automation software for your home.\n \n To create a new Proxmox openHAB LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/openhab-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **openHAB Interface: IP:8080**`\n \n },\n {\n \"category\": \"Automation\",\n\n \"title\": \"Homebridge LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.dingz.ch%2Fadmin%2Fdata%2Ffiles%2Fintegration%2Flogo%2F20%2F200514-em-logo-homebridge_logo.png%3Flm%3D1589459081&f=1&nofb=1\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\">Homebridge LXC</h1>\n\n [Homebridge](https://homebridge.io/) allows you to integrate with smart home devices that do not natively support HomeKit\n \n To create a new Proxmox Homebridge LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homebridge-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n \n **Homebridge Interface: IP:8581**\n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">admin</code>\n \n **password** <code class=\"highlighter-rouge\">admin</code>`\n \n },\n {\n \"category\": \"Automation\",\n\n \"title\": \"ESPHome LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/esphome/dark_icon@2x.png?raw=true\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\">ESPHome LXC</h1>\n \n [ESPHome](https://esphome.io/) is a system to control your ESP8266/ESP32 by simple yet powerful configuration files and control them remotely through Home Automation systems.\n \n To create a new Proxmox ESPHome LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update ESPHome, run the command below in the <b>LXC Console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/esphome-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **ESPHome Interface: IP:6052**`\n \n },\n {\n \"category\": \"Automation\",\n\n \"title\": \"Node-Red LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/custom_integrations/nodered/icon.png?raw=true\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\">Node-Red LXC</h1>\n\n [Node-RED](https://nodered.org/) is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.\n \n To create a new Proxmox Node-RED LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Node-Red or Install Themes run the command below in the <b>LXC Console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/node-red-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n \n **Node-Red Interface: IP:1880**`\n \n },\n {\n \"category\": \"Automation\",\n\n \"title\": \"n8n LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://docs.n8n.io/_images/n8n-docs-icon.svg\" height=\"70\"/></p>\n <h1 align=\"center\" id=\"heading\">n8n LXC</h1>\n \n [n8n](https://n8n.io/) is an extendable workflow automation tool which enables you to connect anything to everything.\n \n To create a new Proxmox n8n LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update n8n, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/n8n-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 3GB Storage - 2vCPU ⚡</h3>\n \n **n8n Interface: IP:5678**`\n \n },\n {\n \"category\": \"Automation\",\n\n \"title\": \"Scrypted LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://www.scrypted.app/images/web_hi_res_512.png?raw=true\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\">Scrypted LXC</h1>\n\n <h3 align=\"center\"> Option to add Coral Edge TPU support </h3> \n \n [Scrypted](https://www.scrypted.app/) is a home automation platform primarily focusing on making camera experiences seamless.\n\n 🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n \n To create a new Proxmox Scrypted LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/scrypted-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **Scrypted Interface: (https)IP:10443**`\n \n },\n {\n \"category\": \"MQTT\",\n\n \"title\": \"MQTT LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://mosquitto.org/images/mosquitto-text-side-28.png\" height=\"75\"/></p>\n <h1 align=\"center\" id=\"heading\">MQTT LXC</h1>\n \n [Eclipse Mosquitto](https://mosquitto.org/) is an open source message broker that implements the MQTT protocol\n \n To create a new Proxmox MQTT LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mqtt-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n Mosquitto comes with a password file generating utility called mosquitto_passwd.\n ~~~bash\n sudo mosquitto_passwd -c /etc/mosquitto/passwd <usr>\n ~~~\n Password: < password >\n \n Create a configuration file for Mosquitto pointing to the password file we have just created.\n ~~~bash\n sudo nano /etc/mosquitto/conf.d/default.conf\n ~~~\n This will open an empty file. Paste the command below into it.\n ~~~bash\n allow_anonymous false\n persistence true\n password_file /etc/mosquitto/passwd\n listener 1883\n ~~~\n Save and exit the text editor with \"Ctrl+O\", \"Enter\" and \"Ctrl+X\".\n \n Now restart Mosquitto server.\n ~~~bash\n sudo systemctl restart mosquitto\n ~~~`\n \n },\n {\n \"category\": \"MQTT\",\n\n \"title\": \"EMQX LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/hassio-addons/repository/blob/master/emqx/icon.png?raw=true\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\">EMQX LXC</h1>\n\n[EMQX](https://www.emqx.io/) is an Open-source MQTT broker with a high-performance real-time message processing engine, powering event streaming for IoT devices at massive scale.\n \n To create a new Proxmox EMQX LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emqx-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n \n **EMQX Interface: IP:18083** \n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">admin</code>\n\n **password** <code class=\"highlighter-rouge\">public</code>\n\n ⚙️ **Setup**\n \n Access Control ➡ Authentication ➡ Create ➡ Next ➡ Next ➡ Create ➡ Users ➡ Add ➡ Username / Password (to authenicate with MQTT) ➡ Save. You're now ready to enjoy a high-performance MQTT Broker.`\n \n },\n {\n \"category\": \"Database\",\n\n \"title\": \"Mariadb LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://mariadb.com/wp-content/webp-express/webp-images/doc-root/wp-content/themes/sage/dist/images/mariadb-logo-white.png.webp\" alt=\"MariaDB\"/><img src=\"https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/adminer_logo-cl.png\" height=\"60\"></p>\n <h1 align=\"center\" id=\"heading\">Mariadb LXC</h1>\n\n <h3 align=\"center\"> Option to Install Adminer</h3>\n \n [MariaDB](https://mariadb.org/) is a community-developed, commercially supported fork of the MySQL relational database management system.\n \n To create a new Proxmox Mariadb LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/mariadb-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n \n To enable MariaDB to listen to remote connections, you need to edit your defaults file. To do this, open the console in your MariaDB lxc:\n ~~~bash\n nano /etc/mysql/my.cnf\n ~~~\n Un-comment <code class=\"highlighter-rouge\">port =3306</code>\n Save and exit the editor with \"Ctrl+O\", \"Enter\" and \"Ctrl+X\".\n \n ~~~bash\n nano /etc/mysql/mariadb.conf.d/50-server.cnf\n ~~~\n Comment <code class=\"highlighter-rouge\">bind-address = 127.0.0.1</code>\n Save and exit the editor with \"Ctrl+O\", \"Enter\" and \"Ctrl+X\".\n \n For new MariaDB installations, the next step is to run the included security script. This script changes some of the less secure default options. We will use it to block remote root logins and to remove unused database users.\n \n Run the security script:\n ~~~bash\n sudo mysql_secure_installation\n ~~~\n Enter current password for root (enter for none): <code class=\"highlighter-rouge\">enter</code>\n \n Switch to unix_socket authentication [Y/n] <code class=\"highlighter-rouge\">y</code> \n \n Change the root password? [Y/n] <code class=\"highlighter-rouge\">n</code> \n \n Remove anonymous users? [Y/n] <code class=\"highlighter-rouge\">y</code> \n \n Disallow root login remotely? [Y/n] <code class=\"highlighter-rouge\">y</code> \n \n Remove test database and access to it? [Y/n] <code class=\"highlighter-rouge\">y</code> \n \n Reload privilege tables now? [Y/n] <code class=\"highlighter-rouge\">y</code> \n \n We will create a new account called admin with the same capabilities as the root account, but configured for password authentication. \n ~~~bash\n sudo mysql\n ~~~ \n Prompt will change to <code class=\"highlighter-rouge\">MariaDB [(none)]></code>\n \n Create a new local admin (Change the username and password to match your preferences)\n ~~~sql\n CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';\n ~~~\n Give local admin root privileges (Change the username and password to match above)\n ~~~sql\n GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;\n ~~~\n \n Now, we'll give the user admin root privileges and password-based access that can connect from anywhere on your local area network (LAN), which has addresses in the subnet 192.168.100.0/24. This is an improvement because opening a MariaDB server up to the Internet and granting access to all hosts is bad practice.. Change the **_username_**, **_password_** and **_subnet_** to match your preferences:\n ~~~sql\n GRANT ALL ON *.* TO 'admin'@'192.168.100.%' IDENTIFIED BY 'password' WITH GRANT OPTION;\n ~~~\n Flush the privileges to ensure that they are saved and available in the current session:\n ~~~sql\n FLUSH PRIVILEGES;\n ~~~\n command below this, exit the MariaDB shell:\n ~~~bash\n exit\n ~~~\n Log in as the new database user you just created:\n ~~~bash\n mysql -u admin -p\n ~~~\n Create a new database:\n ~~~sql\n CREATE DATABASE homeassistant;\n ~~~\n command below this, exit the MariaDB shell:\n ~~~bash\n exit\n ~~~\n ⚠️ Reboot the lxc \n \n Checking status.\n ~~~bash\n sudo systemctl status mariadb\n ~~~ \n Change the recorder: <code class=\"highlighter-rouge\">db_url:</code> in your HA configuration.yaml\n \n Example:\n ~~~bash\n recorder:\n db_url: mysql://admin:password@192.168.100.26:3306/homeassistant?charset=utf8mb4\n ~~~\n \n ⚙️ [**Adminer**](https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/adminer.png) (formerly phpMinAdmin) is a full-featured database management tool\n \n **Adminer Interface: IP/adminer/**`\n },\n {\n \"category\": \"Database\",\n\n \"title\": \"PostgreSQL LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://wiki.postgresql.org/images/3/30/PostgreSQL_logo.3colors.120x120.png\" height=\"100\"/><img src=\"https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/adminer_logo-cl.png\" height=\"60\"></p>\n <h1 align=\"center\" id=\"heading\">PostgreSQL LXC</h1>\n <h3 align=\"center\"> Option to Install Adminer</h3>\n \n [PostgreSQL](https://www.postgresql.org/), also known as Postgres, is a free and open-source relational database management system emphasizing extensibility and SQL compliance.\n \n To create a new Proxmox PostgreSQL LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/postgresql-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n \n To make sure our PostgreSQL is secured with a strong password, set a password for its system user and then change the default database admin user account\n \n Change user password\n ~~~bash\n passwd postgres\n ~~~\n Login using Postgres system account\n \n ~~~bash\n su - postgres\n ~~~\n Now, change the Admin database password \n ~~~bash\n psql -c \"ALTER USER postgres WITH PASSWORD 'your-password';\"\n ~~~\n Create a new user.\n ~~~bash\n psql\n ~~~\n ~~~sql\n CREATE USER admin WITH PASSWORD 'your-password';\n ~~~\n Create a new database:\n ~~~sql\n CREATE DATABASE homeassistant;\n ~~~\n Grant all rights or privileges on created database to the user\n ~~~sql\n GRANT ALL ON DATABASE homeassistant TO admin;\n ~~~\n To exit psql\n ~~~bash\n \\\\q\n ~~~ \n Then type exit to get back to root\n \n Change the recorder: <code class=\"highlighter-rouge\">db_url:</code> in your HA configuration.yaml\n \n Example:\n ~~~bash\n recorder:\n db_url: postgresql://admin:your-password@192.168.100.20:5432/homeassistant?client_encoding=utf8\n ~~~\n\n ⚙️ [**Adminer**](https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/adminer.png) (formerly phpMinAdmin) is a full-featured database management tool\n \n **Adminer Interface: IP/adminer/**`\n },\n {\n \"category\": \"Database\",\n\n \"title\": \"InfluxDB LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://d7umqicpi7263.cloudfront.net/img/product/83e3ab8e-540e-4391-b603-f65174ac0275/ea15d6da-1c4f-409f-8c24-4bbcfbb0d309.png\" height=\"150\"/></p>\n <h1 align=\"center\" id=\"heading\">InfluxDB LXC</h1>\n <h3 align=\"center\"> Options to Install InfluxDB v1 or v2 and Telegraf</h3>\n \n [InfluxDB](https://www.influxdata.com/) is an open-source time series database developed by the company InfluxData.\n \n [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) is an open source plugin-driven server agent for collecting and reporting metrics.\n \n To create a new Proxmox InfluxDB LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/influxdb-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n ⚙️ **InfluxDB Configuration**\n \n ~~~yaml\n nano /etc/influxdb/influxdb.conf\n ~~~\n \n ⚙️ **Telegraf Configuration**\n \n ~~~yaml\n nano /etc/telegraf/telegraf.conf\n ~~~`\n \n },\n {\n \"category\": \"Zigbee - Zwave\",\n\n \"title\": \"Zigbee2MQTT LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/Koenkk/zigbee2mqtt/blob/master/images/logo_bee_only.png?raw=true\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\">Zigbee2MQTT LXC</h1>\n\n <h3 align=\"center\"> Option to switch to Edge/dev branch</h3>\n \n [Zigbee2MQTT](https://www.zigbee2mqtt.io/) is a standalone nodejs application that connects a zigbee network to MQTT\n \n 🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n To create a new Proxmox Zigbee2MQTT LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Zigbee2MQTT, run the command below in the <b>LXC Console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zigbee2mqtt-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n ⚙️ **Determine the location of your adapter**\n \n ~~~bash\n ls -l /dev/serial/by-id\n ~~~\n Example Output: <code class=\"highlighter-rouge\">lrwxrwxrwx 1 root root 13 Jun 19 17:30 usb-1a86_USB_Serial-if00-port0 -> ../../ttyUSB0</code>\n \n \n ⚙️ ⚠️ **Before you start Zigbee2MQTT you need to edit the [configuration.yaml](https://www.zigbee2mqtt.io/guide/configuration/)**\n \n ~~~bash\n nano /opt/zigbee2mqtt/data/configuration.yaml\n ~~~\n \n Save and exit the editor with “Ctrl+O”, “Enter” and “Ctrl+X”\n \n Example:\n ~~~yaml\n frontend:\n port: 9442\n homeassistant: true\n permit_join: false\n mqtt:\n base_topic: zigbee2mqtt\n server: 'mqtt://192.168.86.224:1883'\n user: usr\n password: pwd\n keepalive: 60\n reject_unauthorized: true\n version: 4\n serial:\n port: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0\n #adapter: deconz\t\t#(uncomment for ConBee II)\n advanced:\n pan_id: GENERATE\n network_key: GENERATE\n channel: 20\n ~~~\n ⚙️ **Zigbee2MQTT can be started after completing the configuration**\n \n ~~~bash\n cd /opt/zigbee2mqtt && npm start\n ~~~`\n\n },\n {\n \"category\": \"Zigbee - Zwave\",\n\n \"title\": \"deCONZ LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://phoscon.de/img/phoscon-logo128x.svg\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> deCONZ LXC </h1>\n \n [deCONZ](https://www.phoscon.de/en/conbee2/software#deconz) is used to configure, control and display Zigbee networks.\n \n 🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n To create a new Proxmox deCONZ LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deconz-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **deCONZ Interface: IP:80**`\n \n },\n {\n \"category\": \"Zigbee - Zwave\",\n\n \"title\": \"Z-Wave JS UI LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/zwave-js/zwave-js-ui/blob/master/docs/_images/app_logo.svg?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Z-Wave JS UI LXC </h1>\n \n [Z-Wave JS UI](https://github.com/zwave-js/zwave-js-ui#) is a fully configurable Z-Wave to MQTT Gateway and Control Panel.\n \n 🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n \n To create a new Proxmox Z-Wave JS UI LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Z-Wave JS UI, run the command below in the <b>LXC Console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/zwave-js-ui-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **Z-Wave JS UI Interface: IP:8091**`\n \n },\n {\n \"category\": \"Monitoring - Analytics\",\n\n \"title\": \"Uptime Kuma LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/louislam/uptime-kuma/blob/master/public/icon.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Uptime Kuma LXC </h1>\n \n Uptime Kuma is a self-hosted, open source, fancy uptime monitoring and alerting system. It can monitor HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server.\n \n To create a new Proxmox Uptime Kuma LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Uptime Kuma, run the command below in the <b>LXC Console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/uptimekuma-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **Uptime Kuma Interface: IP:3001**`\n \n },\n {\n \"category\": \"Monitoring - Analytics\",\n \n \"title\": \"Change Detection LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/dgtlmoon/changedetection.io/blob/master/changedetectionio/static/images/avatar-256x256.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Change Detection LXC </h1>\n \n To create a new Proxmox Change Detection LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Change Detection, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/changedetection-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **Change Detection Interface: IP:5000**`\n \n \n },\n {\n \"category\": \"Monitoring - Analytics\",\n\n \"title\": \"Prometheus LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/prome.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Prometheus LXC </h1>\n \n [Prometheus](https://prometheus.io/) is an open-source systems monitoring and alerting toolkit\n \n To create a new Proxmox Prometheus LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prometheus-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n \n **Prometheus Interface: IP:9090**`\n \n },\n {\n \"category\": \"Monitoring - Analytics\",\n\n \"title\": \"Grafana LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fdocs.checkmk.com%2Flatest%2Fimages%2Fgrafana_logo.png&f=1&nofb=1\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Grafana LXC </h1>\n \n [Grafana](https://grafana.com/) is a multi-platform open source analytics and interactive visualization web application.\n \n To create a new Proxmox Grafana LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grafana-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **Grafana Interface: IP:3000**\n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">admin</code>\n \n **password** <code class=\"highlighter-rouge\">admin</code>`\n \n },\n {\n \"category\": \"Docker - Kubernetes\",\n\n \"title\": \"Docker LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/docker.svg\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Docker LXC </h1>\n <h3 align=\"center\"> Options to Install Portainer and/or Docker Compose V2 (Fuse Overlayfs is in \"Advanced\")</h3>\n \n 🛈 *If the LXC is created Privileged, the script will automatically set up USB passthrough.*\n\n [Docker](https://www.docker.com/) is an open-source project for automating the deployment of applications as portable, self-sufficient containers.\n \n To create a new Proxmox Docker LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/docker-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **⚠ Run Compose V2 by replacing the hyphen (-) with a space, using docker compose, instead of docker-compose.**\n \n **Portainer Interface: IP:9000**`\n\n },\n {\n \"category\": \"Docker - Kubernetes\",\n\n \"title\": \"Umbrel LXC\",\n \n \"content\": `<p align=\"center\"><img src=\"https://uploads-ssl.webflow.com/62966b49981ba146f4842f45/62966b49981ba15b44842fe4_umbrel-logo-compact-purple.svg\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Umbrel LXC </h1>\n \n [Umbrel](https://umbrel.com/) is a beautiful personal server OS for self-hosting.\n \n \n To create a new Proxmox Umbrel LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/umbrel-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **Umbrel Interface: IP** (a reboot is required before app installs)`\n \n },\n {\n \"category\": \"Docker - Kubernetes\",\n\n \"title\": \"CasaOS LXC\",\n \n \"content\": `<p align=\"center\"><img src=\"https://www.casaos.io/images/casa_9c491a0f.svg\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> CasaOS LXC </h1>\n \n [CasaOS](https://www.casaos.io/) is a community-based open source software focused on delivering simple home cloud experience around Docker ecosystem.\n \n \n To create a new Proxmox CasaOS LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/casaos-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **CasaOS Interface: IP**`\n \n },\n {\n \"category\": \"Docker - Kubernetes\",\n\n \"title\": \"k0s Kubernetes LXC\",\n \n \"content\": `<p align=\"center\"><img src=\"https://k0sproject.io/images/k0s-logo.svg\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> k0s Kubernetes LXC </h1>\n <h3 align=\"center\"> Option to Install Helm Package Manager</h3>\n \n [k0s](https://k0sproject.io/) is the Simple, Solid & Certified Kubernetes Distribution.\n \n \n To create a new Proxmox k0s Kubernetes LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/k0s-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n\n ⚙️ **Config Path**\n\n ~~~yaml\n /etc/k0s/k0s.yaml\n ~~~`\n \n },\n {\n \"category\": \"Docker - Kubernetes\",\n\n \"title\": \"Podman LXC\",\n \n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/podman.svg\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Podman LXC </h1>\n \n [Podman](https://podman.io/) is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System.\n \n \n To create a new Proxmox Podman LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/podman-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 2vCPU ⚡</h3>`\n \n },\n {\n \"category\": \"Operating System\",\n\n \"title\": \"Debian LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://www.debian.org/Pics/debian-logo-1024x576.png\" alt=\"Debian\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Debian LXC </h1>\n Debian Linux is a distribution that emphasizes free software. It supports many hardware platforms.\n\n To create a new Proxmox Debian LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/debian-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>`\n \n },\n {\n \"category\": \"Operating System\",\n\n \"title\": \"Ubuntu LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://assets.ubuntu.com/v1/29985a98-ubuntu-logo32.png\" alt=\"Ubuntu\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Ubuntu LXC </h1>\n <h3 align=\"center\" id=\"heading\"> Option to select version 18.04, 20.04, 21.10 or 22.04</h3>\n Ubuntu is a distribution based on Debian, designed to have regular releases and a consistent user experience.\n \n To create a new Proxmox Ubuntu LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/ubuntu-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU - 22.04 ⚡</h3>`\n \n },\n {\n \"category\": \"Operating System\",\n\n \"title\": \"Alpine LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/alpinelinux.svg\" alt=\"Alpine\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Alpine LXC </h1>\n A security-oriented, lightweight Linux distribution based on musl and BusyBox.\n\n To create a new Proxmox Alpine LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/alpine-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 100MiB Storage - 1vCPU ⚡</h3>\n\n ⚙️ **Default Password** <code class=\"highlighter-rouge\">alpine</code>\n\n ⚙️ **To Update Alpine**\n \n ~~~bash\n apk update && apk upgrade\n ~~~`\n },\n {\n \"category\": \"Operating System\",\n\n \"title\": \"Arch LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://gitlab.archlinux.org/uploads/-/system/appearance/header_logo/1/lol2.png\n \" alt=\"Arch\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Arch Linux LXC </h1>\n Arch Linux is an independently developed, x86-64 general-purpose Linux distribution that strives to provide the latest stable versions of most software by command below a rolling-release model. The default installation is a minimal base system, configured by the user to only add what is purposely required.\n \n To create a new Proxmox Arch Linux LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/archlinux-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 1GB Storage - 1vCPU ⚡</h3>\n\n\n ⚙️ **Default Password** <code class=\"highlighter-rouge\">archlinux</code>\n \n ⚙️ **To get updated:**\n\n <code class=\"highlighter-rouge\">pacman-key --init</code>\n\n <code class=\"highlighter-rouge\">pacman-key --populate archlinux</code>\n\n <code class=\"highlighter-rouge\">pacman -Sy archlinux-keyring && pacman -Su</code>`\n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"Nginx Proxy Manager LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/nginxproxymanager.svg\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Nginx Proxy Manager LXC </h1>\n \n [Nginx Proxy Manager](https://nginxproxymanager.com/) Expose your services easily and securely\n \n To create a new Proxmox Nginx Proxy Manager LXC Container, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Nginx Proxy Manager, run the command below in the <b>LXC Console</b>.\n ~~~yaml\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nginxproxymanager-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 3GB Storage - 1vCPU ⚡</h3>\n \n Forward port <code class=\"highlighter-rouge\">80</code> and <code class=\"highlighter-rouge\">443</code> from your router to your Nginx Proxy Manager LXC IP.\n \n Add the command below to your <code class=\"highlighter-rouge\">configuration.yaml</code> in Home Assistant.\n ~~~yaml\n http:\n use_x_forwarded_for: true\n trusted_proxies:\n - 192.168.100.27 ###(Nginx Proxy Manager LXC IP)###\n ~~~\n \n **Nginx Proxy Manager Interface: IP:81**\n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">admin@example.com</code>\n \n **password** <code class=\"highlighter-rouge\">changeme</code>`\n\n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"YunoHost LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://yunohost.org/_images/ynh_logo_white_300dpi.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> YunoHost LXC </h1>\n \n YunoHost is an operating system aiming for the simplest administration of a server, and therefore democratize self-hosting, while making sure it stays reliable, secure, ethical and lightweight. \n \n To create a new Proxmox YunoHost LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/yunohost-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 20GB Storage - 2vCPU ⚡</h3>\n \n **YunoHost Interface: IP/**`\n \n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"UniFi Network Application LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fblog.ui.com%2Fwp-content%2Fuploads%2F2016%2F10%2Funifi-app-logo-300x108.png&f=1&nofb=1\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> UniFi Network Application LXC </h1>\n \n <h3 align=\"center\"> With Local Controller Option </h3>\n \n An application designed to optimize UniFi home and business networks with ease.\n \n To create a new Proxmox UniFi Network Application LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Unifi Network Application, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/unifi-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **UniFi Interface: (https)IP:8443**`\n \n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"Omada Controller LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://www.enterpriseitpro.net/wp-content/uploads/2020/12/logo-omada.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Omada Controller LXC </h1>\n \n Omada Controller is software which is used to manage the EAP\n \n To create a new Proxmox Omada Controller LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omada-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **Omada Interface: (https)IP:8043**`\n \n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"WireGuard LXC\",\n \n \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fcdn.icon-icons.com%2Ficons2%2F2699%2FPNG%2F512%2Fwireguard_logo_icon_168760.png&f=1&nofb=1\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> WireGuard LXC </h1>\n \n To create a new Proxmox WireGuard LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update WireGuard or Install a Dashboard, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wireguard-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n ⚙️ **Host Configuration**\n \n ~~~yaml\n nano /etc/pivpn/wireguard/setupVars.conf\n ~~~\n ⚙️ **Add Clients** \n \n ~~~yaml\n pivpn add\n ~~~`\n\n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"Cronicle Primary LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/jhuckaby/Cronicle/blob/master/htdocs/images/logo-128.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Cronicle Primary LXC </h1>\n \n [Cronicle](https://github.com/jhuckaby/Cronicle) is a multi-server task scheduler and runner, with a web based front-end UI. It handles both scheduled, repeating and on-demand jobs, targeting any number of worker servers, with real-time stats and live log viewer. \n\n To create a new Proxmox Cronicle Primary LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Cronicle or Install Cronicle Worker, run the command below in a <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/cronicle-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **Cronicle Primary Interface: IP:3012**\n\n ⚙️ Config Path\n ~~~bash\n /opt/cronicle/conf/config.json\n ~~~\n\n Primary and Worker Private Keys Must Match.`\n \n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"MeshCentral LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/Ylianst/MeshCentral/blob/master/public/favicon-303x303.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> MeshCentral LXC </h1>\n \n [MeshCentral](https://meshcentral.com/info/) is a full computer management web site. With MeshCentral, you can run your own web server to remotely manage and control computers on a local network or anywhere on the internet.\n \n To create a new Proxmox MeshCentral LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/meshcentral-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **MeshCentral Interface: IP**`\n \n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"Tailscale\",\n \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/48932923?v=4&s=100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Tailscale</h1>\n \n [Tailscale](https://tailscale.com/) Creates a secure network between your servers, computers, and cloud instances. Even when separated by firewalls or subnets, Tailscale just works.\n \n To Install Talescale on an existing LXC, run the command below in the <b>Proxmox Shell</b> (replace <code class=\"highlighter-rouge\">106</code> with your LXC ID).\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/add-tailscale-lxc.sh)\" -s 106\n ~~~\n After the script finishes, reboot the LXC then run <code class=\"highlighter-rouge\">tailscale up</code> in the LXC console\n \n [**Tailscale Login**](https://login.tailscale.com/start)`\n \n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"CrowdSec\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/crowdsecurity/crowdsec-docs/main/crowdsec-docs/static/img/crowdsec_no_txt.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> CrowdSec</h1>\n\n [CrowdSec](https://crowdsec.net/) is a free, open-source and collaborative IPS. Analyze behaviors, respond to attacks & share signals across the community.\n \n To Install CrowdSec, ⚠️ run the command below in the <b>LXC console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/crowdsec.sh)\"\n ~~~\n \n [**Control center for your CrowdSec machines.**](https://app.crowdsec.net/product-tour)`\n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"Keycloak LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://www.keycloak.org/resources/images/keycloak_icon_512px.svg?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Keycloak LXC</h1>\n\n [Keycloak](https://www.keycloak.org/) is an Open Source Identity and Access Management solution for modern Applications and Services.\n \n To create a new Proxmox Keycloak LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/keycloak-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 2CPU ⚡</h3>\n\n **Keycloak Interface: IP:8080** (First start can take a few minutes)\n \n ⚙️ **Initial Login**\n \n The initial admin user can be added manually using the web frontend when accessed from localhost or automatically using environment variables.\n \n To add the initial admin user using environment variables, set <code class=\"highlighter-rouge\">KEYCLOAK_ADMIN</code> for the initial admin username and <code class=\"highlighter-rouge\">KEYCLOAK_ADMIN_PASSWORD</code> for the initial admin password.\n \n First, stop Keycloak\n ~~~bash\n systemctl stop keycloak.service\n ~~~\n then start Keycloak by coping & pasting the command below (only needed once)\n ~~~bash\n cd /opt/keycloak\n export KEYCLOAK_ADMIN=admin\n export KEYCLOAK_ADMIN_PASSWORD=changeme\n bin/kc.sh start-dev \n ~~~`\n },\n {\n \"category\": \"Server - Networking\",\n\n \"title\": \"Mikrotik RouterOS VM\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/loganmarchione/homelab-svg-assets/main/assets/mikrotik.svg\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Mikrotik RouterOS VM </h1>\n \n [Mikrotik RouterOS](https://wiki.mikrotik.com/wiki/Manual:TOC) can be installed on a PC and will turn it into a router with all the necessary features - routing, firewall, bandwidth management, wireless access point, backhaul link, hotspot gateway, VPN server and more. \n \n To create a new Proxmox Mikrotik RouterOS VM, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/vm/mikrotik-routeros-v4.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 2GB Storage - 1CPU ⚡</h3>\n\n Setup is done via VM console.`\n },\n {\n \"category\": \"Media - Photo\",\n\n \"title\": \"Plex Media Server LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/plex/icon.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Plex Media Server LXC </h1>\n <h3 align=\"center\" id=\"heading\"> With Hardware Acceleration Support </h3> \n \n To create a new Proxmox Plex Media Server LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Plex Media Server, run the command below in the <b>LXC Console</b>.\n\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/plex-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **Plex Media Server Interface: IP:32400/web**`\n \n },\n {\n \"category\": \"Media - Photo\",\n\n \"title\": \"Emby Media Server LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/emby/icon.png?raw=true\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\"> Emby Media Server LXC </h1>\n \n [Emby](https://emby.media/) brings together your personal videos, music, photos, and live television.\n \n To create a new Proxmox Emby Media Server LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Emby, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/emby-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **Emby Media Server Interface: IP:8096**`\n \n },\n {\n \"category\": \"Media - Photo\",\n\n \"title\": \"Jellyfin Media Server LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/jellyfin/icon.png?raw=true\" height=\"100\"/></p>\n <h1 align=\"center\" id=\"heading\"> Jellyfin Media Server LXC </h1>\n \n [TurnKey has a LXC CT for Jellyfin](https://www.turnkeylinux.org/mediaserver)\n \n To create a new Proxmox Jellyfin Media Server LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyfin-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **Jellyfin Media Server Interface: IP:8096**\n \n FFmpeg path: <code class=\"highlighter-rouge\">/usr/lib/jellyfin-ffmpeg/ffmpeg</code>`\n \n },\n {\n \"category\": \"Media - Photo\",\n\n \n \"title\": \"NextCloudPi LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/nextcloud/nextcloudpi/blob/master/ncp-app/img/app.svg?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">NextCloudPi LXC </h1>\n \n [NextCloudPi LXC](https://github.com/nextcloud/nextcloudpi#features) is the most popular self-hosted collaboration solution.\n \n To create a new Proxmox NextCloudPi LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nextcloudpi-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **NextCloudPi Interface: (https)IP/**`\n },\n {\n \"category\": \"Media - Photo\",\n\n \"title\": \"OpenMediaVault LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/omv.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> OpenMediaVault LXC </h1>\n \n [OpenMediaVault](https://www.openmediavault.org/) is the next generation network attached storage (NAS) solution based on Debian Linux.\n \n To create a new Proxmox OpenMediaVault LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/omv-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **OpenMediaVault Interface: IP**\n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">admin</code>\n \n **password** <code class=\"highlighter-rouge\">openmediavault</code>`\n },\n {\n \"category\": \"Media - Photo\",\n\n \"title\": \"Navidrome LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/navidrome/navidrome/master/resources/logo-192x192.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Navidrome LXC </h1>\n \n [Navidrome](https://www.navidrome.org/) allows you to enjoy your music collection from anywhere, by making it available through a modern Web UI and through a wide range of third-party compatible mobile apps, for both iOS and Android devices. \n \n To create a new Proxmox Navidrome LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Navidrome, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/navidrome-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n To change Navidrome music folder path, edit: <code class=\"highlighter-rouge\">/var/lib/navidrome/navidrome.toml</code>\n \n **Navidrome Interface: IP:4533**`\n \n },\n {\n \"category\": \"Media - Photo\",\n\n \"title\": \"PhotoPrism LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/photoprism.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> PhotoPrism LXC </h1>\n \n [PhotoPrism](https://photoprism.app/) is an AI-powered app for browsing, organizing & sharing your photo collection. \n \n To create a new Proxmox PhotoPrism LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update PhotoPrism, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/photoprism-v5.sh)\"\n ~~~\n The script builds from source, which takes time and resources. After the build, the script will automatically set resources to Normal Settings.\n <h3 align=\"center\" id=\"heading\">⚡ Build Settings: 4GB RAM - 8GB Storage - 4vCPU ⚡</h3>\n <h3 align=\"center\" id=\"heading\">⚡ Normal Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **PhotoPrism Interface: IP:2342**\n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">admin</code>\n \n **password** <code class=\"highlighter-rouge\">changeme</code>\n \n [PhotoSync](https://www.photosync-app.com/home.html)`\n \n },\n {\n \"category\": \"Media - Photo\",\n\n \n \"title\": \"Lidarr LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Lidarr/Lidarr/develop/Logo/256.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Lidarr LXC </h1>\n \n [Lidarr](https://lidarr.audio/) is a music collection manager for Usenet and BitTorrent users.\n \n To create a new Proxmox Lidarr LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/lidarr-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **Lidarr Interface: IP:8686**`\n },\n {\n \"category\": \"Media - Photo\",\n\n \n \"title\": \"Prowlarr LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Prowlarr/Prowlarr/develop/Logo/256.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Prowlarr LXC </h1>\n \n [Prowlarr](https://github.com/Prowlarr/Prowlarr) is an indexer manager/proxy built on the popular *arr .net/reactjs base stack to integrate with your various PVR apps.\n \n To create a new Proxmox Prowlarr LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/prowlarr-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **Prowlarr Interface: IP:9696**`\n },\n {\n \"category\": \"Media - Photo\",\n\n \n \"title\": \"Radarr LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Radarr/Radarr/develop/Logo/256.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Radarr LXC </h1>\n \n [Radarr](https://radarr.video/) is a movie collection manager for Usenet and BitTorrent users.\n \n To create a new Proxmox Radarr LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/radarr-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **Radarr Interface: IP:7878**`\n },\n {\n \"category\": \"Media - Photo\",\n\n \n \"title\": \"Readarr LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Readarr/Readarr/develop/Logo/256.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Readarr LXC </h1>\n \n [Readarr](https://readarr.com/) is an eBook and audiobook collection manager for Usenet and BitTorrent users.\n \n To create a new Proxmox Radarr LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/readarr-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **Readarr Interface: IP:8787**`\n },\n {\n \"category\": \"Media - Photo\",\n\n \n \"title\": \"Sonarr LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Sonarr LXC </h1>\n \n [Sonarr](https://sonarr.tv/) is a PVR for Usenet and BitTorrent users.\n \n To create a new Proxmox Sonarr LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/sonarr-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **Sonarr Interface: IP:8989**`\n },\n {\n \"category\": \"Media - Photo\",\n\n \n \"title\": \"Tdarr LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://tdarr.io/static/media/logo3.02a3f4a3.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Tdarr LXC </h1>\n \n [Tdarr](https://sonarr.tv/) is a conditional based transcoding application for automating media library transcode/remux management.\n \n To create a new Proxmox Tdarr LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/tdarr-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **Tdarr Interface: IP:8265**`\n },\n {\n \"category\": \"Media - Photo\",\n\n \n \"title\": \"Whisparr LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/Whisparr/Whisparr/develop/Logo/256.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\">Whisparr LXC </h1>\n \n [Whisparr](https://github.com/Whisparr/Whisparr) is an adult movie collection manager for Usenet and BitTorrent users.\n \n To create a new Proxmox Whisparr LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whisparr-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **Whisparr Interface: IP:6969**`\n },\n {\n \"category\": \"Ad Blocker - DNS\",\n\n \"title\": \"Pi-hole LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/pi_hole/icon.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Pi-hole LXC </h1>\n \n [Pi-hole](https://pi-hole.net/) is a Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole and optionally a DHCP server.\n \n To create a new Proxmox Pi-hole LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/pihole-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n ⚠️ **Reboot Pi-hole LXC after install**\n \n **Pi-hole Interface: IP/admin**\n \n ⚙️ **To set your password:**\n \n ~~~yaml\n pihole -a -p\n ~~~`\n },\n {\n \"category\": \"Ad Blocker - DNS\",\n\n \"title\": \"Technitium DNS LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://avatars.githubusercontent.com/u/12230362?s=100&v=4\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Technitium DNS LXC </h1>\n An open source authoritative as well as recursive DNS server\n \n To create a new Proxmox Technitium DNS LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Technitium DNS, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/technitiumdns-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **Technitium DNS Interface: IP:5380**`\n \n },\n {\n \"category\": \"Ad Blocker - DNS\",\n\n \"title\": \"AdGuard Home LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/adguard/icon.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> AdGuard Home LXC </h1>\n \n To create a new Proxmox AdGuard Home LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Manually Update AdGuard Home, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/adguard-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **AdGuard Home Setup Interface: IP:3000 (After Setup use only IP)**\n \n <sub>(For the Home Assistant Integration, use port <code class=\"highlighter-rouge\">80</code> not <code class=\"highlighter-rouge\">3000</code>)</sub>`\n \n },\n {\n \"category\": \"Ad Blocker - DNS\",\n\n \"title\": \"Blocky LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/0xERR0R/blocky/blob/master/docs/blocky.svg?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Blocky LXC </h1>\n \n [Blocky](https://0xerr0r.github.io/blocky/) is a DNS proxy and ad-blocker for the local network written in Go. 🚨 For Advanced Users. No UI.\n \n To create a new Proxmox Blocky LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/blocky-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n \n ⚙️ **Blocky Config Path**\n \n ~~~yaml\n /opt/blocky/config.yml\n ~~~`\n },\n {\n \"category\": \"Document - Notes\",\n\n \"title\": \"Paperless-ngx LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/paperless-ngx/paperless-ngx/blob/main/resources/logo/web/svg/square.svg?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Paperless-ngx LXC </h1>\n \n [Paperless-ngx](https://paperless-ngx.readthedocs.io/en/latest/#) is a document management system that transforms your physical documents into a searchable online archive so you can keep, well, less paper.\n \n To create a new Proxmox Paperless-ngx LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Paperless-ngx or Show Paperless-ngx Credentials, run the command below in the <b>LXC Console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/paperless-ngx-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2048MiB RAM - 4GB Storage - 2vCPU ⚡</h3>\n \n **Paperless-ngx Interface: IP:8000**`\n \n },\n {\n \"category\": \"Document - Notes\",\n\n \"title\": \"Trilium LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/zadam/trilium/master/images/app-icons/png/128x128.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Trilium LXC </h1>\n \n [Trilium](https://github.com/zadam/trilium#trilium-notes) is a hierarchical note taking application with focus on building large personal knowledge bases.\n \n To create a new Proxmox Trilium LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Trilium, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/trilium-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **Trilium Interface: IP:8080**`\n \n },\n {\n \"category\": \"Document - Notes\",\n\n \"title\": \"Wiki.js LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://static.requarks.io/logo/wikijs-butterfly.svg?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Wiki.js LXC </h1>\n \n [Wiki.js](https://js.wiki/) is a modern, lightweight and powerful wiki app built on NodeJS. \n \n To create a new Proxmox Wiki.js LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Wiki.js, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/wikijs-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **Wiki.js Interface: IP:3000**`\n },\n {\n \"category\": \"Document - Notes\",\n\n \n \"title\": \"NocoDB LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/nocodb.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> NocoDB LXC </h1>\n \n [NocoDB](https://www.nocodb.com/) is an open source #NoCode platform that turns any database into a smart spreadsheet. Airtable Alternative.\n \n To create a new Proxmox NocoDB LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update NocoDB, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nocodb-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 4GB Storage - 1vCPU ⚡</h3>\n \n **NocoDB Interface: IP:8080/dashboard**`\n \n },\n {\n \"category\": \"Dashboards\",\n\n \"title\": \"Heimdall Dashboard LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/heimdall.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Heimdall Dashboard LXC </h1>\n \n [Heimdall Application Dashboard](https://camo.githubusercontent.com/bcfd4f74c93b25bea7b14eacbafd649206bf754a3d4b596329968f0ee569cf3c/68747470733a2f2f692e696d6775722e636f6d2f4d72433451704e2e676966) is a dashboard for all your web applications. It doesn't need to be limited to applications though, you can add links to anything you like.\n \n To create a new Proxmox Heimdall Dashboard LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Heimdall Dashboard, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/heimdalldashboard-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **Heimdall Dashboard Interface: IP:7990**`\n \n },\n {\n \"category\": \"Dashboards\",\n\n \"title\": \"Homepage LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/benphelps/homepage/raw/main/images/banner_light%402x.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Homepage LXC </h1>\n \n [Homepage](https://github.com/benphelps/homepage) is a self-hosted dashboard.\n \n To create a new Proxmox Homepage LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Homepage, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/homepage-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 1GB RAM - 3GB Storage - 2vCPU ⚡</h3>\n \n [Configuration](https://github.com/benphelps/homepage/wiki) (bookmarks.yaml, services.yaml, widgets.yaml) path: <code class=\"highlighter-rouge\">/opt/homepage/config/</code>\n \n **Homepage Interface: IP:3000**`\n \n },\n {\n \"category\": \"Dashboards\",\n\n \"title\": \"Dashy LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/Lissy93/dashy/raw/master/public/web-icons/dashy-logo.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Dashy LXC </h1>\n \n Dashy helps you organize your self-hosted services by making them accessible from a single place\n \n To create a new Proxmox Dashy LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Dashy, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/dashy-v5.sh)\"\n ~~~\n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 3GB Storage - 2vCPU ⚡</h3>\n \n **Dashy Interface: IP:4000**\n \n After getting everything setup the way you want in interactive mode and saved to disk, you have to go into update configuration and rebuild application.`\n \n },\n {\n \"category\": \"File - Code\",\n\n \"title\": \"File Browser\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/filebrowser.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> File Browser </h1>\n\n [File Browser](https://filebrowser.org/features) is a create-your-own-cloud-kind of software where you can install it on a server, direct it to a path and then access your files through a nice web interface. Many available features!\n \n To Install File Browser, ⚠️ run the command below in the LXC console.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/filebrowser.sh)\"\n ~~~\n \n **File Browser Interface: IP:8080**\n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">admin</code>\n\n **password** <code class=\"highlighter-rouge\">changeme</code>\n \n ⚙️ **To Update File Browser**\n \n ~~~yaml\n curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash\n ~~~`\n },\n {\n \"category\": \"File - Code\",\n\n \"title\": \"VS Code Server\",\n \"content\": `<p align=\"center\"><img src=\"https://user-images.githubusercontent.com/674621/71187801-14e60a80-2280-11ea-94c9-e56576f76baf.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> VS Code Server </h1>\n\n [VS Code Server](https://code.visualstudio.com/docs/remote/vscode-server) is a service you can run on a remote development machine, like your desktop PC or a virtual machine (VM). It allows you to securely connect to that remote machine from anywhere through a vscode.dev URL, without the requirement of SSH.\n \n To Install VS Code Server, ⚠️ run the command below in the <b>LXC console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/code-server.sh)\"\n ~~~\n \n **VS Code Server Interface: IP:8680**`\n },\n {\n \"category\": \"File - Code\",\n\n \"title\": \"Deluge LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://dev.deluge-torrent.org/chrome/common/deluge_logo.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Deluge LXC </h1>\n\n [Deluge](https://www.deluge-torrent.org/) is a lightweight, Free Software, cross-platform BitTorrent client.\n \n To create a new Proxmox Deluge LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/deluge-v5.sh)\"\n ~~~\n \n ⚙️ **Initial Login**\n\n **password** <code class=\"highlighter-rouge\">deluge</code>\n\n **Deluge Interface: IP:8112**`\n },\n {\n \"category\": \"File - Code\",\n\n \"title\": \"Webmin System Administration\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/webmin/webmin/blob/master/images/webmin-blue.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Webmin System Administration </h1>\n\n If you prefer to manage all aspects of your Proxmox LXC from a graphical interface instead of the command line interface, Webmin might be right for you.\n Benefits include automatic daily security updates, backup and restore, file manager with editor, web control panel, and preconfigured system monitoring with optional email alerts.\n \n To Install Webmin System Administration [(Screenshot)](https://raw.githubusercontent.com/tteck/Proxmox/main/misc/images/file-manager.png), ⚠️ run the command below in the <b>LXC console</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/webmin.sh)\"\n ~~~\n \n **Webmin Interface: (https)IP:10000**\n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">root</code>\n \n **password** <code class=\"highlighter-rouge\">root</code>\n \n ⚙️ **To Update Webmin**\n \n <code class=\"highlighter-rouge\">Update from the Webmin UI</code>\n \n ⚙️ **To Uninstall Webmin**\n \n ~~~yaml\n bash /etc/webmin/uninstall.sh\n ~~~`\n },\n {\n \"category\": \"File - Code\",\n\n \"title\": \"Syncthing LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/syncthing/syncthing/6afaa9f20c8eb9c7af5abbe2f2d90fa2571aa7ad/assets/logo-only.svg?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Syncthing LXC </h1>\n \n [Syncthing](https://syncthing.net/) is a continuous file synchronization program. It synchronizes files between two or more computers.\n \n To create a new Proxmox Syncthing LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/syncthing-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **Syncthing Interface: IP:8384**`\n \n },\n {\n \"category\": \"File - Code\",\n\n \"title\": \"Daemon Sync Server LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimg.informer.com%2Ficons_mac%2Fpng%2F128%2F350%2F350335.png&f=1&nofb=1\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Daemon Sync Server LXC </h1>\n \n Sync files from app to server, share photos & videos, back up your data and stay secure inside local network.\n \n To create a new Proxmox Daemon Sync Server LXC, run the command below in the <b>Proxmox Shell</b>.\n \n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/daemonsync-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 8GB Storage - 1vCPU ⚡</h3>\n \n **Daemon Sync Server Interface: IP:8084**\n \n Search: <code class=\"highlighter-rouge\">DAEMON Sync</code> in your favorite app store`\n },\n {\n \"category\": \"Miscellaneous\",\n\n \"title\": \"Vaultwarden LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/resources/vaultwarden-icon-white.svg\" width=\"100\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Vaultwarden LXC </h1>\n \n Alternative implementation of the Bitwarden server API written in Rust and compatible with upstream [Bitwarden clients](https://bitwarden.com/download/), perfect for self-hosted deployment where running the official resource-heavy service might not be ideal.\n \n To create a new Proxmox Vaultwarden LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Vaultwarden, Web-Vault or Show Admin Token, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/vaultwarden-v5.sh)\"\n ~~~\n ⚠️ Vaultwarden needs to be behind a proxy (Nginx Proxy Manager) to obtain HTTPS and to allow clients to connect.\n \n The script builds from source, which takes time and resources. After the build, the script will automatically set resources to Normal Settings. \n \n <h3 align=\"center\" id=\"heading\">⚡ Build Settings: 4GB RAM - 6GB Storage - 4vCPU ⚡</h3>\n <h3 align=\"center\" id=\"heading\">⚡ Normal Settings: 512Mib RAM - 6GB Storage - 1vCPU ⚡</h3>\n \n **Vaultwarden Interface: IP:8000**\n \n **Vaultwarden Admin Interface: IP:8000/admin**`\n \n },\n {\n \"category\": \"Miscellaneous\",\n\n \"title\": \"grocy LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://grocy.info/img/grocy_logo.svg\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> grocy LXC </h1>\n \n [grocy](https://grocy.info/) is a web-based self-hosted groceries & household management solution for your home.\n \n To create a new Proxmox grocy LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update grocy, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/grocy-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **grocy Interface: IP**\n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">admin</code>\n \n **password** <code class=\"highlighter-rouge\">admin</code>`\n \n },\n {\n \"category\": \"Miscellaneous\",\n\n \"title\": \"MagicMirror Server LXC\",\n \n \"content\": `<p align=\"center\"><img src=\"https://github.com/MichMich/MagicMirror/raw/master/.github/header.png\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> MagicMirror Server LXC </h1>\n \n [MagicMirror²](https://docs.magicmirror.builders/) is an open source modular smart mirror platform.\n \n To create a new MagicMirror Server LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update MagicMirror, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/magicmirror-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 3GB Storage - 1vCPU ⚡</h3>\n \n **MagicMirror Interface: IP:8080**\n \n ⚙️ **[Configuration](https://docs.magicmirror.builders/configuration/introduction.html#configuring-your-magicmirror)**\n ~~~yaml\n /opt/magicmirror/config/config.js\n ~~~`\n\n },\n {\n \"category\": \"Miscellaneous\",\n\n \"title\": \"Whoogle LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/tteck/Proxmox/blob/main/misc/images/whoogle.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Whoogle LXC </h1>\n \n Get Google search results, but without any ads, javascript, AMP links, cookies, or IP address tracking.\n \n To create a new Proxmox Whoogle LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Whoogle, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/whoogle-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n \n **Whoogle Interface: IP:5000**`\n \n },\n {\n \"category\": \"Miscellaneous\",\n\n \"title\": \"Shinobi NVR LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://gitlab.com/uploads/-/system/project/avatar/6947723/mstile-150x150.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> Shinobi NVR LXC </h1>\n \n To create a new Proxmox Shinobi NVR LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update Shinobi, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/shinobi-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **Shinobi Interface: IP:8080**\n\n **Shinobi Admin Interface: IP:8080/super**\n \n ⚙️ **Initial Admin Login**\n \n **username** <code class=\"highlighter-rouge\">admin@shinobi.video</code>\n \n **password** <code class=\"highlighter-rouge\">admin</code>`\n \n},\n{\n \"category\": \"Miscellaneous\",\n\n \"title\": \"MotionEye NVR LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/home-assistant/brands/blob/master/core_integrations/motioneye/icon.png?raw=true\" height=\"100\"/></p>\n \n <h1 align=\"center\" id=\"heading\"> MotionEye NVR LXC </h1>\n \n To create a new Proxmox MotionEye NVR LXC, run the command below in the <b>Proxmox Shell</b>. <br>\n To Update MotionEye, run the command below in the <b>LXC Console</b>.\n ~~~bash\n bash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/motioneye-v5.sh)\"\n ~~~\n \n <h3 align=\"center\" id=\"heading\">⚡ Default Settings: 2GB RAM - 8GB Storage - 2vCPU ⚡</h3>\n \n **MotionEye Interface: IP:8765**\n \n ⚙️ **Initial Login**\n \n **username** <code class=\"highlighter-rouge\">admin</code>\n \n **password** <code class=\"highlighter-rouge\"> </code>`\n \n},\n{\n \"category\": \"Miscellaneous\",\n\n \"title\": \"Hyperion LXC\",\n \"content\": `<p align=\"center\"><img src=\"https://github.com/hyperion-project/hyperion.ng/raw/master/doc/logo_dark.png?raw=true\" height=\"100\"/></p>\n\n<h1 align=\"center\" id=\"heading\"> Hyperion LXC </h1>\n\nHyperion is an opensource Ambient Lighting implementation. It supports many LED devices and video grabbers.\n\nTo create a new Proxmox Hyperion LXC, run the command below in the <b>Proxmox Shell</b>.\n\n~~~bash\nbash -c \"$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/hyperion-v5.sh)\"\n~~~\n\n<h3 align=\"center\" id=\"heading\">⚡ Default Settings: 512MiB RAM - 2GB Storage - 1vCPU ⚡</h3>\n\n**Hyperion Interface: IP:8090**`\n\n}\n ]\n}\n \nexport default data;","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}\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}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\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 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.bind() : 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 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 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 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 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 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.bind();\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 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 _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\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 return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\n/**\n * Stringify one point, a position (start and end points), or a nodes\n * positional information.\n *\n * @param {Node|NodeLike|Position|Point|null} [value]\n * @returns {string}\n */\nexport function stringifyPosition(value) {\n // Nothing.\n if (!value || typeof value !== 'object') {\n return ''\n }\n\n // Node.\n if ('position' in value || 'type' in value) {\n return position(value.position)\n }\n\n // Position.\n if ('start' in value || 'end' in value) {\n return position(value)\n }\n\n // Point.\n if ('line' in value || 'column' in value) {\n return point(value)\n }\n\n // ?\n return ''\n}\n\n/**\n * @param {Point|undefined} point\n * @returns {string}\n */\nfunction point(point) {\n return index(point && point.line) + ':' + index(point && point.column)\n}\n\n/**\n * @param {Position|undefined} pos\n * @returns {string}\n */\nfunction position(pos) {\n return point(pos && pos.start) + '-' + point(pos && pos.end)\n}\n\n/**\n * @param {number|undefined} value\n * @returns {number}\n */\nfunction index(value) {\n return value && typeof value === 'number' ? value : 1\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {object & {type: string, position?: Position|undefined}} NodeLike\n */\n\nimport {stringifyPosition} from 'unist-util-stringify-position'\n\nexport class VFileMessage extends Error {\n /**\n * Constructor of a message for `reason` at `place` from `origin`.\n * When an error is passed in as `reason`, copies the `stack`.\n *\n * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional).\n * @param {string} [origin] Place in code the message originates from (`string`, optional).\n */\n constructor(reason, place, origin) {\n /** @type {[string|null, string|null]} */\n const parts = [null, null]\n /** @type {Position} */\n let position = {\n // @ts-expect-error: we always follows the structure of `position`.\n start: {line: null, column: null},\n // @ts-expect-error: \"\n end: {line: null, column: null}\n }\n\n super()\n\n if (typeof place === 'string') {\n origin = place\n place = undefined\n }\n\n if (typeof origin === 'string') {\n const index = origin.indexOf(':')\n\n if (index === -1) {\n parts[1] = origin\n } else {\n parts[0] = origin.slice(0, index)\n parts[1] = origin.slice(index + 1)\n }\n }\n\n if (place) {\n // Node.\n if ('type' in place || 'position' in place) {\n if (place.position) {\n position = place.position\n }\n }\n // Position.\n else if ('start' in place || 'end' in place) {\n position = place\n }\n // Point.\n else if ('line' in place || 'column' in place) {\n position.start = place\n }\n }\n\n // Fields from `Error`\n this.name = stringifyPosition(place) || '1:1'\n this.message = typeof reason === 'object' ? reason.message : reason\n this.stack = typeof reason === 'object' ? reason.stack : ''\n\n /**\n * Reason for message.\n * @type {string}\n */\n this.reason = this.message\n /**\n * If true, marks associated file as no longer processable.\n * @type {boolean?}\n */\n // eslint-disable-next-line no-unused-expressions\n this.fatal\n /**\n * Starting line of error.\n * @type {number?}\n */\n this.line = position.start.line\n /**\n * Starting column of error.\n * @type {number?}\n */\n this.column = position.start.column\n /**\n * Namespace of warning.\n * @type {string?}\n */\n this.source = parts[0]\n /**\n * Category of message.\n * @type {string?}\n */\n this.ruleId = parts[1]\n /**\n * Full range information, when available.\n * Has start and end properties, both set to an object with line and column, set to number?.\n * @type {Position?}\n */\n this.position = position\n\n // The following fields are “well known”.\n // Not standard.\n // Feel free to add other non-standard fields to your messages.\n\n /* eslint-disable no-unused-expressions */\n /**\n * You can use this to specify the source value thats being reported, which\n * is deemed incorrect.\n * @type {string?}\n */\n this.actual\n /**\n * You can use this to suggest values that should be used instead of\n * `actual`, one or more values that are deemed as acceptable.\n * @type {Array<string>?}\n */\n this.expected\n /**\n * You may add a file property with a path of a file (used throughout the VFile ecosystem).\n * @type {string?}\n */\n this.file\n /**\n * You may add a url property with a link to documentation for the message.\n * @type {string?}\n */\n this.url\n /**\n * You may add a note property with a long form description of the message (supported by vfile-reporter).\n * @type {string?}\n */\n this.note\n /* eslint-enable no-unused-expressions */\n }\n}\n\nVFileMessage.prototype.file = ''\nVFileMessage.prototype.name = ''\nVFileMessage.prototype.reason = ''\nVFileMessage.prototype.message = ''\nVFileMessage.prototype.stack = ''\nVFileMessage.prototype.fatal = null\nVFileMessage.prototype.column = null\nVFileMessage.prototype.line = null\nVFileMessage.prototype.source = null\nVFileMessage.prototype.ruleId = null\nVFileMessage.prototype.position = null\n","// A derivative work based on:\n// <https://github.com/browserify/path-browserify>.\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Nodes internal `path` module:\n// <https://github.com/nodejs/node/blob/master/lib/path.js>.\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * @param {string} path\n * @param {string} [ext]\n * @returns {string}\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.charCodeAt(index) === ext.charCodeAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.charCodeAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.charCodeAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.charCodeAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * @param {string} path\n * @returns {string}\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean|undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.charCodeAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * @param {Array<string>} segments\n * @returns {string}\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string|undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Note: `normalize` is not exposed as `path.normalize`, so some code is\n * manually removed from it.\n *\n * @param {string} path\n * @returns {string}\n */\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.charCodeAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.charCodeAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * @param {boolean} allowAboveRoot\n * @returns {string}\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number|undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.charCodeAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.charCodeAt(result.length - 1) !== 46 /* `.` */ ||\n result.charCodeAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * @param {string} path\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// <https://github.com/defunctzombie/node-process/blob/master/browser.js>.\n// But I dont think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * @typedef URL\n * @property {string} hash\n * @property {string} host\n * @property {string} hostname\n * @property {string} href\n * @property {string} origin\n * @property {string} password\n * @property {string} pathname\n * @property {string} port\n * @property {string} protocol\n * @property {string} search\n * @property {any} searchParams\n * @property {string} username\n * @property {() => string} toString\n * @property {() => string} toJSON\n */\n\n/**\n * @param {unknown} fileURLOrPath\n * @returns {fileURLOrPath is URL}\n */\n// From: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js#L1501>\nexport function isUrl(fileURLOrPath) {\n return (\n fileURLOrPath !== null &&\n typeof fileURLOrPath === 'object' &&\n // @ts-expect-error: indexable.\n fileURLOrPath.href &&\n // @ts-expect-error: indexable.\n fileURLOrPath.origin\n )\n}\n","/// <reference lib=\"dom\" />\n\nimport {isUrl} from './minurl.shared.js'\n\n// See: <https://github.com/nodejs/node/blob/fcf8ba4/lib/internal/url.js>\n\n/**\n * @param {string|URL} path\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * @param {URL} url\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.charCodeAt(index) === 37 /* `%` */ &&\n pathname.charCodeAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.charCodeAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n\nexport {isUrl} from './minurl.shared.js'\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {Record<string, unknown> & {type: string, position?: Position|undefined}} NodeLike\n * @typedef {import('./minurl.shared.js').URL} URL\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n *\n * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'base64url'|'latin1'|'binary'|'hex'} BufferEncoding\n * Encodings supported by the buffer class.\n * This is a copy of the typing from Node, copied to prevent Node globals from\n * being needed.\n * Copied from: <https://github.com/DefinitelyTyped/DefinitelyTyped/blob/90a4ec8/types/node/buffer.d.ts#L170>\n *\n * @typedef {Value|Options|VFile|URL} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * @property {Value} [value]\n * @property {string} [cwd]\n * @property {Array<string>} [history]\n * @property {string|URL} [path]\n * @property {string} [basename]\n * @property {string} [stem]\n * @property {string} [extname]\n * @property {string} [dirname]\n * @property {Data} [data]\n *\n * @typedef Map\n * Raw source map, see:\n * <https://github.com/mozilla/source-map/blob/58819f0/source-map.d.ts#L15-L23>.\n * @property {number} version\n * @property {Array<string>} sources\n * @property {Array<string>} names\n * @property {string|undefined} [sourceRoot]\n * @property {Array<string>|undefined} [sourcesContent]\n * @property {string} mappings\n * @property {string} file\n *\n * @typedef {{[key: string]: unknown} & VFileCoreOptions} Options\n * Configuration: a bunch of keys that will be shallow copied over to the new\n * file.\n *\n * @typedef {Record<string, unknown>} ReporterSettings\n * @typedef {<T = ReporterSettings>(files: Array<VFile>, options: T) => string} Reporter\n */\n\nimport buffer from 'is-buffer'\nimport {VFileMessage} from 'vfile-message'\nimport {path} from './minpath.js'\nimport {proc} from './minproc.js'\nimport {urlToPath, isUrl} from './minurl.js'\n\n// Order of setting (least specific to most), we need this because otherwise\n// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n// stem can be set.\nconst order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * If `options` is `string` or `Buffer`, its treated as `{value: options}`.\n * If `options` is a `URL`, its treated as `{path: options}`.\n * If `options` is a `VFile`, shallow copies its data over to the new file.\n * All fields in `options` are set on the newly created `VFile`.\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * Its not possible to set either `dirname` or `extname` without setting\n * either `history`, `path`, `basename`, or `stem` as well.\n *\n * @param {Compatible} [value]\n */\n constructor(value) {\n /** @type {Options} */\n let options\n\n if (!value) {\n options = {}\n } else if (typeof value === 'string' || buffer(value)) {\n // @ts-expect-error Looks like a buffer.\n options = {value}\n } else if (isUrl(value)) {\n options = {path: value}\n } else {\n // @ts-expect-error Looks like file or options.\n options = value\n }\n\n /**\n * Place to store custom information (default: `{}`).\n * Its OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of messages associated with the file.\n * @type {Array<VFileMessage>}\n */\n this.messages = []\n\n /**\n * List of filepaths the file moved between.\n * The first is the original path and the last is the current path.\n * @type {Array<string>}\n */\n this.history = []\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /* eslint-disable no-unused-expressions */\n /**\n * Raw value.\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n\n /**\n * Whether a file was saved to disk.\n * This is used by vfile reporters.\n * @type {boolean}\n */\n this.stored\n\n /**\n * Sometimes files have a non-string, compiled, representation.\n * This can be stored in the `result` field.\n * One example is when turning markdown into React nodes.\n * This is used by unified to store non-string results.\n * @type {unknown}\n */\n this.result\n\n /**\n * Sometimes files have a source map associated with them.\n * This can be stored in the `map` field.\n * This should be a `Map` type, which is equivalent to the `RawSourceMap`\n * type from the `source-map` module.\n * @type {Map|undefined}\n */\n this.map\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (prop in options && options[prop] !== undefined) {\n // @ts-expect-error: TS is confused by the different types for `history`.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) this[prop] = options[prop]\n }\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n * @returns {string}\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n * @param {string|URL} path\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the parent path (example: `'~'`).\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n * Cannot be set if theres no `path` yet.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if theres no `path` yet.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.charCodeAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n /**\n * Serialize the file.\n *\n * @param {BufferEncoding} [encoding='utf8']\n * When `value` is a `Buffer`, `encoding` is a character encoding to\n * understand it as (default: `'utf8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n return (this.value || '').toString(encoding)\n }\n\n /**\n * Constructs a new `VFileMessage`, where `fatal` is set to `false`, and\n * associates it with the file by adding it to `vfile.messages` and setting\n * `message.file` to the current filepath.\n *\n * @param {string|Error} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {VFileMessage}\n * Message.\n */\n message(reason, place, origin) {\n const message = new VFileMessage(reason, place, origin)\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Like `VFile#message()`, but associates an informational message where\n * `fatal` is set to `null`.\n *\n * @param {string|Error} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {VFileMessage}\n * Message.\n */\n info(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = null\n\n return message\n }\n\n /**\n * Like `VFile#message()`, but associates a fatal message where `fatal` is\n * set to `true`, and then immediately throws it.\n *\n * > 👉 **Note**: a fatal error means that a file is no longer processable.\n *\n * @param {string|Error} reason\n * Human readable reason for the message, uses the stack and message of the error if given.\n * @param {Node|NodeLike|Position|Point} [place]\n * Place where the message occurred in the file.\n * @param {string} [origin]\n * Computer readable reason for the message\n * @returns {never}\n * Message.\n */\n fail(reason, place, origin) {\n const message = this.message(reason, place, origin)\n\n message.fatal = true\n\n throw message\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {void}\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string|undefined} part\n * @param {string} name\n * @returns {asserts part is string}\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string|undefined} path\n * @param {string} name\n * @returns {asserts path is string}\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\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}","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","/**\n * @typedef {(error?: Error|null|undefined, ...output: Array<any>) => void} Callback\n * @typedef {(...input: Array<any>) => any} Middleware\n *\n * @typedef {(...input: Array<any>) => void} Run\n * Call all middleware.\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add `fn` (middleware) to the list.\n * @typedef {{run: Run, use: Use}} Pipeline\n * Middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n */\nexport function trough() {\n /** @type {Array<Middleware>} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or were done.\n *\n * @param {Error|null|undefined} error\n * @param {Array<any>} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware`.\n * Can be sync or async; return a promise, receive a callback, or return new\n * values and errors.\n *\n * @param {Middleware} middleware\n * @param {Callback} callback\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array<any>} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result instanceof Promise) {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('vfile').VFileCompatible} VFileCompatible\n * @typedef {import('vfile').VFileValue} VFileValue\n * @typedef {import('..').Processor} Processor\n * @typedef {import('..').Plugin} Plugin\n * @typedef {import('..').Preset} Preset\n * @typedef {import('..').Pluggable} Pluggable\n * @typedef {import('..').PluggableList} PluggableList\n * @typedef {import('..').Transformer} Transformer\n * @typedef {import('..').Parser} Parser\n * @typedef {import('..').Compiler} Compiler\n * @typedef {import('..').RunCallback} RunCallback\n * @typedef {import('..').ProcessCallback} ProcessCallback\n *\n * @typedef Context\n * @property {Node} tree\n * @property {VFile} file\n */\n\nimport {bail} from 'bail'\nimport isBuffer from 'is-buffer'\nimport extend from 'extend'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\n\n// Expose a frozen processor.\nexport const unified = base().freeze()\n\nconst own = {}.hasOwnProperty\n\n// Function to create the first processor.\n/**\n * @returns {Processor}\n */\nfunction base() {\n const transformers = trough()\n /** @type {Processor['attachers']} */\n const attachers = []\n /** @type {Record<string, unknown>} */\n let namespace = {}\n /** @type {boolean|undefined} */\n let frozen\n let freezeIndex = -1\n\n // Data management.\n // @ts-expect-error: overloads are handled.\n processor.data = data\n processor.Parser = undefined\n processor.Compiler = undefined\n\n // Lock.\n processor.freeze = freeze\n\n // Plugins.\n processor.attachers = attachers\n // @ts-expect-error: overloads are handled.\n processor.use = use\n\n // API.\n processor.parse = parse\n processor.stringify = stringify\n // @ts-expect-error: overloads are handled.\n processor.run = run\n processor.runSync = runSync\n // @ts-expect-error: overloads are handled.\n processor.process = process\n processor.processSync = processSync\n\n // Expose.\n return processor\n\n // Create a new processor based on the processor in the current scope.\n /** @type {Processor} */\n function processor() {\n const destination = base()\n let index = -1\n\n while (++index < attachers.length) {\n destination.use(...attachers[index])\n }\n\n destination.data(extend(true, {}, namespace))\n\n return destination\n }\n\n /**\n * @param {string|Record<string, unknown>} [key]\n * @param {unknown} [value]\n * @returns {unknown}\n */\n function data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', frozen)\n namespace[key] = value\n return processor\n }\n\n // Get `key`.\n return (own.call(namespace, key) && namespace[key]) || null\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', frozen)\n namespace = key\n return processor\n }\n\n // Get space.\n return namespace\n }\n\n /** @type {Processor['freeze']} */\n function freeze() {\n if (frozen) {\n return processor\n }\n\n while (++freezeIndex < attachers.length) {\n const [attacher, ...options] = attachers[freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n /** @type {Transformer|void} */\n const transformer = attacher.call(processor, ...options)\n\n if (typeof transformer === 'function') {\n transformers.use(transformer)\n }\n }\n\n frozen = true\n freezeIndex = Number.POSITIVE_INFINITY\n\n return processor\n }\n\n /**\n * @param {Pluggable|null|undefined} [value]\n * @param {...unknown} options\n * @returns {Processor}\n */\n function use(value, ...options) {\n /** @type {Record<string, unknown>|undefined} */\n let settings\n\n assertUnfrozen('use', frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, ...options)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n if (settings) {\n namespace.settings = Object.assign(namespace.settings || {}, settings)\n }\n\n return processor\n\n /**\n * @param {import('..').Pluggable<unknown[]>} value\n * @returns {void}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...options] = value\n addPlugin(plugin, ...options)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {void}\n */\n function addPreset(result) {\n addList(result.plugins)\n\n if (result.settings) {\n settings = Object.assign(settings || {}, result.settings)\n }\n }\n\n /**\n * @param {PluggableList|null|undefined} [plugins]\n * @returns {void}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {...unknown} [value]\n * @returns {void}\n */\n function addPlugin(plugin, value) {\n let index = -1\n /** @type {Processor['attachers'][number]|undefined} */\n let entry\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entry = attachers[index]\n break\n }\n }\n\n if (entry) {\n if (isPlainObj(entry[1]) && isPlainObj(value)) {\n value = extend(true, entry[1], value)\n }\n\n entry[1] = value\n } else {\n // @ts-expect-error: fine.\n attachers.push([...arguments])\n }\n }\n }\n\n /** @type {Processor['parse']} */\n function parse(doc) {\n processor.freeze()\n const file = vfile(doc)\n const Parser = processor.Parser\n assertParser('parse', Parser)\n\n if (newable(Parser, 'parse')) {\n // @ts-expect-error: `newable` checks this.\n return new Parser(String(file), file).parse()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Parser(String(file), file) // eslint-disable-line new-cap\n }\n\n /** @type {Processor['stringify']} */\n function stringify(node, doc) {\n processor.freeze()\n const file = vfile(doc)\n const Compiler = processor.Compiler\n assertCompiler('stringify', Compiler)\n assertNode(node)\n\n if (newable(Compiler, 'compile')) {\n // @ts-expect-error: `newable` checks this.\n return new Compiler(node, file).compile()\n }\n\n // @ts-expect-error: `newable` checks this.\n return Compiler(node, file) // eslint-disable-line new-cap\n }\n\n /**\n * @param {Node} node\n * @param {VFileCompatible|RunCallback} [doc]\n * @param {RunCallback} [callback]\n * @returns {Promise<Node>|void}\n */\n function run(node, doc, callback) {\n assertNode(node)\n processor.freeze()\n\n if (!callback && typeof doc === 'function') {\n callback = doc\n doc = undefined\n }\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((node: Node) => void)} resolve\n * @param {(error: Error) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n // @ts-expect-error: `doc` cant be a callback anymore, we checked.\n transformers.run(node, vfile(doc), done)\n\n /**\n * @param {Error|null} error\n * @param {Node} tree\n * @param {VFile} file\n * @returns {void}\n */\n function done(error, tree, file) {\n tree = tree || node\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(tree)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, tree, file)\n }\n }\n }\n }\n\n /** @type {Processor['runSync']} */\n function runSync(node, file) {\n /** @type {Node|undefined} */\n let result\n /** @type {boolean|undefined} */\n let complete\n\n processor.run(node, file, done)\n\n assertDone('runSync', 'run', complete)\n\n // @ts-expect-error: we either bailed on an error or have a tree.\n return result\n\n /**\n * @param {Error|null} [error]\n * @param {Node} [tree]\n * @returns {void}\n */\n function done(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * @param {VFileCompatible} doc\n * @param {ProcessCallback} [callback]\n * @returns {Promise<VFile>|undefined}\n */\n function process(doc, callback) {\n processor.freeze()\n assertParser('process', processor.Parser)\n assertCompiler('process', processor.Compiler)\n\n if (!callback) {\n return new Promise(executor)\n }\n\n executor(null, callback)\n\n /**\n * @param {null|((file: VFile) => void)} resolve\n * @param {(error?: Error|null|undefined) => void} reject\n * @returns {void}\n */\n function executor(resolve, reject) {\n const file = vfile(doc)\n\n processor.run(processor.parse(file), file, (error, tree, file) => {\n if (error || !tree || !file) {\n done(error)\n } else {\n /** @type {unknown} */\n const result = processor.stringify(tree, file)\n\n if (result === undefined || result === null) {\n // Empty.\n } else if (looksLikeAVFileValue(result)) {\n file.value = result\n } else {\n file.result = result\n }\n\n done(error, file)\n }\n })\n\n /**\n * @param {Error|null|undefined} [error]\n * @param {VFile|undefined} [file]\n * @returns {void}\n */\n function done(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n // @ts-expect-error: `callback` is defined if `resolve` is not.\n callback(null, file)\n }\n }\n }\n }\n\n /** @type {Processor['processSync']} */\n function processSync(doc) {\n /** @type {boolean|undefined} */\n let complete\n\n processor.freeze()\n assertParser('processSync', processor.Parser)\n assertCompiler('processSync', processor.Compiler)\n\n const file = vfile(doc)\n\n processor.process(file, done)\n\n assertDone('processSync', 'process', complete)\n\n return file\n\n /**\n * @param {Error|null|undefined} [error]\n * @returns {void}\n */\n function done(error) {\n complete = true\n bail(error)\n }\n }\n}\n\n/**\n * Check if `value` is a constructor.\n *\n * @param {unknown} value\n * @param {string} name\n * @returns {boolean}\n */\nfunction newable(value, name) {\n return (\n typeof value === 'function' &&\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n value.prototype &&\n // A function with keys in its prototype is probably a constructor.\n // Classes prototype methods are not enumerable, so we check if some value\n // exists in the prototype.\n // type-coverage:ignore-next-line\n (keys(value.prototype) || name in value.prototype)\n )\n}\n\n/**\n * Check if `value` is an object with keys.\n *\n * @param {Record<string, unknown>} value\n * @returns {boolean}\n */\nfunction keys(value) {\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `Compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {VFileCompatible} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is VFileValue}\n */\nfunction looksLikeAVFileValue(value) {\n return typeof value === 'string' || isBuffer(value)\n}\n","/**\n * @typedef Options\n * @property {boolean} [includeImageAlt=true]\n */\n\n/**\n * Get the text content of a node.\n * Prefer the nodes plain-text fields, otherwise serialize its children,\n * and if the given value is an array, serialize the nodes in it.\n *\n * @param {unknown} node\n * @param {Options} [options]\n * @returns {string}\n */\nexport function toString(node, options) {\n var {includeImageAlt = true} = options || {}\n return one(node, includeImageAlt)\n}\n\n/**\n * @param {unknown} node\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction one(node, includeImageAlt) {\n return (\n (node &&\n typeof node === 'object' &&\n // @ts-ignore looks like a literal.\n (node.value ||\n // @ts-ignore looks like an image.\n (includeImageAlt ? node.alt : '') ||\n // @ts-ignore looks like a parent.\n ('children' in node && all(node.children, includeImageAlt)) ||\n (Array.isArray(node) && all(node, includeImageAlt)))) ||\n ''\n )\n}\n\n/**\n * @param {Array.<unknown>} values\n * @param {boolean} includeImageAlt\n * @returns {string}\n */\nfunction all(values, includeImageAlt) {\n /** @type {Array.<string>} */\n var result = []\n var index = -1\n\n while (++index < values.length) {\n result[index] = one(values[index], includeImageAlt)\n }\n\n return result.join('')\n}\n","/**\n * Like `Array#splice`, but smarter for giant arrays.\n *\n * `Array#splice` takes all items to be inserted as individual argument which\n * causes a stack overflow in V8 when trying to insert 100k items for instance.\n *\n * Otherwise, this does not return the removed items, and takes `items` as an\n * array instead of rest parameters.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {number} start\n * @param {number} remove\n * @param {T[]} items\n * @returns {void}\n */\nexport function splice(list, start, remove, items) {\n const end = list.length\n let chunkStart = 0\n /** @type {unknown[]} */\n\n let parameters // Make start between zero and `end` (included).\n\n if (start < 0) {\n start = -start > end ? 0 : end + start\n } else {\n start = start > end ? end : start\n }\n\n remove = remove > 0 ? remove : 0 // No need to chunk the items if theres only a couple (10k) items.\n\n if (items.length < 10000) {\n parameters = Array.from(items)\n parameters.unshift(start, remove) // @ts-expect-error Hush, its fine.\n ;[].splice.apply(list, parameters)\n } else {\n // Delete `remove` items starting from `start`\n if (remove) [].splice.apply(list, [start, remove]) // Insert the items in chunks to not cause stack overflows.\n\n while (chunkStart < items.length) {\n parameters = items.slice(chunkStart, chunkStart + 10000)\n parameters.unshift(start, 0) // @ts-expect-error Hush, its fine.\n ;[].splice.apply(list, parameters)\n chunkStart += 10000\n start += 10000\n }\n }\n}\n/**\n * Append `items` (an array) at the end of `list` (another array).\n * When `list` was empty, returns `items` instead.\n *\n * This prevents a potentially expensive operation when `list` is empty,\n * and adds items in batches to prevent V8 from hanging.\n *\n * @template {unknown} T\n * @param {T[]} list\n * @param {T[]} items\n * @returns {T[]}\n */\n\nexport function push(list, items) {\n if (list.length > 0) {\n splice(list, list.length, 0, items)\n return list\n }\n\n return items\n}\n","/**\n * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {splice} from 'micromark-util-chunked'\n\nconst hasOwnProperty = {}.hasOwnProperty\n\n/**\n * Combine several syntax extensions into one.\n *\n * @param {Extension[]} extensions List of syntax extensions.\n * @returns {NormalizedExtension} A single combined extension.\n */\nexport function combineExtensions(extensions) {\n /** @type {NormalizedExtension} */\n const all = {}\n let index = -1\n\n while (++index < extensions.length) {\n syntaxExtension(all, extensions[index])\n }\n\n return all\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {NormalizedExtension} all Extension to merge into.\n * @param {Extension} extension Extension to merge.\n * @returns {void}\n */\nfunction syntaxExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let code\n\n for (code in right) {\n if (!hasOwnProperty.call(left, code)) left[code] = []\n const value = right[code]\n constructs(\n // @ts-expect-error Looks like a list.\n left[code],\n Array.isArray(value) ? value : value ? [value] : []\n )\n }\n }\n}\n\n/**\n * Merge `list` into `existing` (both lists of constructs).\n * Mutates `existing`.\n *\n * @param {unknown[]} existing\n * @param {unknown[]} list\n * @returns {void}\n */\nfunction constructs(existing, list) {\n let index = -1\n /** @type {unknown[]} */\n const before = []\n\n while (++index < list.length) {\n // @ts-expect-error Looks like an object.\n ;(list[index].add === 'after' ? existing : before).push(list[index])\n }\n\n splice(existing, 0, 0, before)\n}\n\n/**\n * Combine several HTML extensions into one.\n *\n * @param {HtmlExtension[]} htmlExtensions List of HTML extensions.\n * @returns {HtmlExtension} A single combined extension.\n */\nexport function combineHtmlExtensions(htmlExtensions) {\n /** @type {HtmlExtension} */\n const handlers = {}\n let index = -1\n\n while (++index < htmlExtensions.length) {\n htmlExtension(handlers, htmlExtensions[index])\n }\n\n return handlers\n}\n\n/**\n * Merge `extension` into `all`.\n *\n * @param {HtmlExtension} all Extension to merge into.\n * @param {HtmlExtension} extension Extension to merge.\n * @returns {void}\n */\nfunction htmlExtension(all, extension) {\n /** @type {string} */\n let hook\n\n for (hook in extension) {\n const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined\n const left = maybe || (all[hook] = {})\n const right = extension[hook]\n /** @type {string} */\n let type\n\n if (right) {\n for (type in right) {\n left[type] = right[type]\n }\n }\n }\n}\n","// This module is generated by `script/`.\n//\n// CommonMark handles attention (emphasis, strong) markers based on what comes\n// before or after them.\n// One such difference is if those characters are Unicode punctuation.\n// This script is generated from the Unicode data.\nexport const unicodePunctuationRegex =\n /[!-/:-@[-`{-~\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u09FD\\u0A76\\u0AF0\\u0C77\\u0C84\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E4F\\u2E52\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {unicodePunctuationRegex} from './lib/unicode-punctuation-regex.js'\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n */\n\nexport const asciiAlpha = regexCheck(/[A-Za-z]/)\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n */\n\nexport const asciiDigit = regexCheck(/\\d/)\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n */\n\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/)\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n */\n\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/)\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n */\n\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/)\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n */\n\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/)\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n )\n}\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32)\n}\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownLineEnding(code) {\n return code !== null && code < -2\n}\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * @returns {code is number}\n */\n\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32\n}\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n\nexport const unicodeWhitespace = regexCheck(/\\s/)\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n */\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n\nexport const unicodePunctuation = regexCheck(unicodePunctuationRegex)\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * @returns {(code: Code) => code is number}\n */\n\nfunction regexCheck(regex) {\n return check\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code Character code\n * @returns {code is number} Whether the character code matches the bound regex\n */\n\n function check(code) {\n return code !== null && regex.test(String.fromCharCode(code))\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownSpace} from 'micromark-util-character'\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {string} type\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n\nexport function factorySpace(effects, ok, type, max) {\n const limit = max ? max - 1 : Number.POSITIVE_INFINITY\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownSpace(code)) {\n effects.enter(type)\n return prefix(code)\n }\n\n return ok(code)\n }\n /** @type {State} */\n\n function prefix(code) {\n if (markdownSpace(code) && size++ < limit) {\n effects.consume(code)\n return prefix\n }\n\n effects.exit(type)\n return ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const content = {\n tokenize: initializeContent\n}\n/** @type {Initializer} */\n\nfunction initializeContent(effects) {\n const contentStart = effects.attempt(\n this.parser.constructs.contentInitial,\n afterContentStartConstruct,\n paragraphInitial\n )\n /** @type {Token} */\n\n let previous\n return contentStart\n /** @type {State} */\n\n function afterContentStartConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, contentStart, 'linePrefix')\n }\n /** @type {State} */\n\n function paragraphInitial(code) {\n effects.enter('paragraph')\n return lineStart(code)\n }\n /** @type {State} */\n\n function lineStart(code) {\n const token = effects.enter('chunkText', {\n contentType: 'text',\n previous\n })\n\n if (previous) {\n previous.next = token\n }\n\n previous = token\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n effects.exit('chunkText')\n effects.exit('paragraph')\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n effects.exit('chunkText')\n return lineStart\n } // Data.\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Point} Point\n */\n\n/**\n * @typedef {Record<string, unknown>} StackState\n * @typedef {[Construct, StackState]} StackItem\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n/** @type {InitialConstruct} */\n\nexport const document = {\n tokenize: initializeDocument\n}\n/** @type {Construct} */\n\nconst containerConstruct = {\n tokenize: tokenizeContainer\n}\n/** @type {Initializer} */\n\nfunction initializeDocument(effects) {\n const self = this\n /** @type {Array<StackItem>} */\n\n const stack = []\n let continued = 0\n /** @type {TokenizeContext|undefined} */\n\n let childFlow\n /** @type {Token|undefined} */\n\n let childToken\n /** @type {number} */\n\n let lineStartOffset\n return start\n /** @type {State} */\n\n function start(code) {\n // First we iterate through the open blocks, starting with the root\n // document, and descending through last children down to the last open\n // block.\n // Each block imposes a condition that the line must satisfy if the block is\n // to remain open.\n // For example, a block quote requires a `>` character.\n // A paragraph requires a non-blank line.\n // In this phase we may match all or just some of the open blocks.\n // But we cannot close unmatched blocks yet, because we may have a lazy\n // continuation line.\n if (continued < stack.length) {\n const item = stack[continued]\n self.containerState = item[1]\n return effects.attempt(\n item[0].continuation,\n documentContinue,\n checkNewContainers\n )(code)\n } // Done.\n\n return checkNewContainers(code)\n }\n /** @type {State} */\n\n function documentContinue(code) {\n continued++ // Note: this field is called `_closeFlow` but it also closes containers.\n // Perhaps a good idea to rename it but its already used in the wild by\n // extensions.\n\n if (self.containerState._closeFlow) {\n self.containerState._closeFlow = undefined\n\n if (childFlow) {\n closeFlow()\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when dealing with lazy lines in `writeToChild`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {Point|undefined} */\n\n let point // Find the flow chunk.\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n let index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (theyre still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n return checkNewContainers(code)\n }\n\n return start(code)\n }\n /** @type {State} */\n\n function checkNewContainers(code) {\n // Next, after consuming the continuation markers for existing blocks, we\n // look for new block starts (e.g. `>` for a block quote).\n // If we encounter a new block start, we close any blocks unmatched in\n // step 1 before creating the new block as a child of the last matched\n // block.\n if (continued === stack.length) {\n // No need to `check` whether theres a container, of `exitContainers`\n // would be moot.\n // We can instead immediately `attempt` to parse one.\n if (!childFlow) {\n return documentContinued(code)\n } // If we have concrete content, such as block HTML or fenced code,\n // we cant have containers “pierce” into them, so we can immediately\n // start.\n\n if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {\n return flowStart(code)\n } // If we do have flow, it could still be a blank line,\n // but wed be interrupting it w/ a new container if theres a current\n // construct.\n\n self.interrupt = Boolean(\n childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack\n )\n } // Check if there is a new container.\n\n self.containerState = {}\n return effects.check(\n containerConstruct,\n thereIsANewContainer,\n thereIsNoNewContainer\n )(code)\n }\n /** @type {State} */\n\n function thereIsANewContainer(code) {\n if (childFlow) closeFlow()\n exitContainers(continued)\n return documentContinued(code)\n }\n /** @type {State} */\n\n function thereIsNoNewContainer(code) {\n self.parser.lazy[self.now().line] = continued !== stack.length\n lineStartOffset = self.now().offset\n return flowStart(code)\n }\n /** @type {State} */\n\n function documentContinued(code) {\n // Try new containers.\n self.containerState = {}\n return effects.attempt(\n containerConstruct,\n containerContinue,\n flowStart\n )(code)\n }\n /** @type {State} */\n\n function containerContinue(code) {\n continued++\n stack.push([self.currentConstruct, self.containerState]) // Try another.\n\n return documentContinued(code)\n }\n /** @type {State} */\n\n function flowStart(code) {\n if (code === null) {\n if (childFlow) closeFlow()\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n childFlow = childFlow || self.parser.flow(self.now())\n effects.enter('chunkFlow', {\n contentType: 'flow',\n previous: childToken,\n _tokenizer: childFlow\n })\n return flowContinue(code)\n }\n /** @type {State} */\n\n function flowContinue(code) {\n if (code === null) {\n writeToChild(effects.exit('chunkFlow'), true)\n exitContainers(0)\n effects.consume(code)\n return\n }\n\n if (markdownLineEnding(code)) {\n effects.consume(code)\n writeToChild(effects.exit('chunkFlow')) // Get ready for the next line.\n\n continued = 0\n self.interrupt = undefined\n return start\n }\n\n effects.consume(code)\n return flowContinue\n }\n /**\n * @param {Token} token\n * @param {boolean} [eof]\n * @returns {void}\n */\n\n function writeToChild(token, eof) {\n const stream = self.sliceStream(token)\n if (eof) stream.push(null)\n token.previous = childToken\n if (childToken) childToken.next = token\n childToken = token\n childFlow.defineSkip(token.start)\n childFlow.write(stream) // Alright, so we just added a lazy line:\n //\n // ```markdown\n // > a\n // b.\n //\n // Or:\n //\n // > ~~~c\n // d\n //\n // Or:\n //\n // > | e |\n // f\n // ```\n //\n // The construct in the second example (fenced code) does not accept lazy\n // lines, so it marked itself as done at the end of its first line, and\n // then the content construct parses `d`.\n // Most constructs in markdown match on the first line: if the first line\n // forms a construct, a non-lazy line cant “unmake” it.\n //\n // The construct in the third example is potentially a GFM table, and\n // those are *weird*.\n // It *could* be a table, from the first line, if the following line\n // matches a condition.\n // In this case, that second line is lazy, which “unmakes” the first line\n // and turns the whole into one content block.\n //\n // Weve now parsed the non-lazy and the lazy line, and can figure out\n // whether the lazy line started a new flow block.\n // If it did, we exit the current containers between the two flow blocks.\n\n if (self.parser.lazy[token.start.line]) {\n let index = childFlow.events.length\n\n while (index--) {\n if (\n // The token starts before the line ending…\n childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet…\n (!childFlow.events[index][1].end || // …or ends after it.\n childFlow.events[index][1].end.offset > lineStartOffset)\n ) {\n // Exit: theres still something open, which means its a lazy line\n // part of something.\n return\n }\n } // Note: this algorithm for moving events around is similar to the\n // algorithm when closing flow in `documentContinue`.\n\n const indexBeforeExits = self.events.length\n let indexBeforeFlow = indexBeforeExits\n /** @type {boolean|undefined} */\n\n let seen\n /** @type {Point|undefined} */\n\n let point // Find the previous chunk (the one before the lazy line).\n\n while (indexBeforeFlow--) {\n if (\n self.events[indexBeforeFlow][0] === 'exit' &&\n self.events[indexBeforeFlow][1].type === 'chunkFlow'\n ) {\n if (seen) {\n point = self.events[indexBeforeFlow][1].end\n break\n }\n\n seen = true\n }\n }\n\n exitContainers(continued) // Fix positions.\n\n index = indexBeforeExits\n\n while (index < self.events.length) {\n self.events[index][1].end = Object.assign({}, point)\n index++\n } // Inject the exits earlier (theyre still also at the end).\n\n splice(\n self.events,\n indexBeforeFlow + 1,\n 0,\n self.events.slice(indexBeforeExits)\n ) // Discard the duplicate exits.\n\n self.events.length = index\n }\n }\n /**\n * @param {number} size\n * @returns {void}\n */\n\n function exitContainers(size) {\n let index = stack.length // Exit open containers.\n\n while (index-- > size) {\n const entry = stack[index]\n self.containerState = entry[1]\n entry[0].exit.call(self, effects)\n }\n\n stack.length = size\n }\n\n function closeFlow() {\n childFlow.write([null])\n childToken = undefined\n childFlow = undefined\n self.containerState._closeFlow = undefined\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContainer(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(this.parser.constructs.document, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blankLine = {\n tokenize: tokenizeBlankLine,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlankLine(effects, ok, nok) {\n return factorySpace(effects, afterWhitespace, 'linePrefix')\n /** @type {State} */\n\n function afterWhitespace(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {splice} from 'micromark-util-chunked'\n\n/**\n * Tokenize subcontent.\n *\n * @param {Event[]} events\n * @returns {boolean}\n */\nexport function subtokenize(events) {\n /** @type {Record<string, number>} */\n const jumps = {}\n let index = -1\n /** @type {Event} */\n\n let event\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number} */\n\n let otherIndex\n /** @type {Event} */\n\n let otherEvent\n /** @type {Event[]} */\n\n let parameters\n /** @type {Event[]} */\n\n let subevents\n /** @type {boolean|undefined} */\n\n let more\n\n while (++index < events.length) {\n while (index in jumps) {\n index = jumps[index]\n }\n\n event = events[index] // Add a hook for the GFM tasklist extension, which needs to know if text\n // is in the first content of a list item.\n\n if (\n index &&\n event[1].type === 'chunkFlow' &&\n events[index - 1][1].type === 'listItemPrefix'\n ) {\n subevents = event[1]._tokenizer.events\n otherIndex = 0\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'lineEndingBlank'\n ) {\n otherIndex += 2\n }\n\n if (\n otherIndex < subevents.length &&\n subevents[otherIndex][1].type === 'content'\n ) {\n while (++otherIndex < subevents.length) {\n if (subevents[otherIndex][1].type === 'content') {\n break\n }\n\n if (subevents[otherIndex][1].type === 'chunkText') {\n subevents[otherIndex][1]._isInFirstContentOfListItem = true\n otherIndex++\n }\n }\n }\n } // Enter.\n\n if (event[0] === 'enter') {\n if (event[1].contentType) {\n Object.assign(jumps, subcontent(events, index))\n index = jumps[index]\n more = true\n }\n } // Exit.\n else if (event[1]._container) {\n otherIndex = index\n lineIndex = undefined\n\n while (otherIndex--) {\n otherEvent = events[otherIndex]\n\n if (\n otherEvent[1].type === 'lineEnding' ||\n otherEvent[1].type === 'lineEndingBlank'\n ) {\n if (otherEvent[0] === 'enter') {\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n }\n\n otherEvent[1].type = 'lineEnding'\n lineIndex = otherIndex\n }\n } else {\n break\n }\n }\n\n if (lineIndex) {\n // Fix position.\n event[1].end = Object.assign({}, events[lineIndex][1].start) // Switch container exit w/ line endings.\n\n parameters = events.slice(lineIndex, index)\n parameters.unshift(event)\n splice(events, lineIndex, index - lineIndex + 1, parameters)\n }\n }\n }\n\n return !more\n}\n/**\n * Tokenize embedded tokens.\n *\n * @param {Event[]} events\n * @param {number} eventIndex\n * @returns {Record<string, number>}\n */\n\nfunction subcontent(events, eventIndex) {\n const token = events[eventIndex][1]\n const context = events[eventIndex][2]\n let startPosition = eventIndex - 1\n /** @type {number[]} */\n\n const startPositions = []\n const tokenizer =\n token._tokenizer || context.parser[token.contentType](token.start)\n const childEvents = tokenizer.events\n /** @type {[number, number][]} */\n\n const jumps = []\n /** @type {Record<string, number>} */\n\n const gaps = {}\n /** @type {Chunk[]} */\n\n let stream\n /** @type {Token|undefined} */\n\n let previous\n let index = -1\n /** @type {Token|undefined} */\n\n let current = token\n let adjust = 0\n let start = 0\n const breaks = [start] // Loop forward through the linked tokens to pass them in order to the\n // subtokenizer.\n\n while (current) {\n // Find the position of the event for this token.\n while (events[++startPosition][1] !== current) {\n // Empty.\n }\n\n startPositions.push(startPosition)\n\n if (!current._tokenizer) {\n stream = context.sliceStream(current)\n\n if (!current.next) {\n stream.push(null)\n }\n\n if (previous) {\n tokenizer.defineSkip(current.start)\n }\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = true\n }\n\n tokenizer.write(stream)\n\n if (current._isInFirstContentOfListItem) {\n tokenizer._gfmTasklistFirstContentOfListItem = undefined\n }\n } // Unravel the next token.\n\n previous = current\n current = current.next\n } // Now, loop back through all events (and linked tokens), to figure out which\n // parts belong where.\n\n current = token\n\n while (++index < childEvents.length) {\n if (\n // Find a void token that includes a break.\n childEvents[index][0] === 'exit' &&\n childEvents[index - 1][0] === 'enter' &&\n childEvents[index][1].type === childEvents[index - 1][1].type &&\n childEvents[index][1].start.line !== childEvents[index][1].end.line\n ) {\n start = index + 1\n breaks.push(start) // Help GC.\n\n current._tokenizer = undefined\n current.previous = undefined\n current = current.next\n }\n } // Help GC.\n\n tokenizer.events = [] // If theres one more token (which is the cases for lines that end in an\n // EOF), thats perfect: the last point we found starts it.\n // If there isnt then make sure any remaining content is added to it.\n\n if (current) {\n // Help GC.\n current._tokenizer = undefined\n current.previous = undefined\n } else {\n breaks.pop()\n } // Now splice the events from the subtokenizer into the current events,\n // moving back to front so that splice indices arent affected.\n\n index = breaks.length\n\n while (index--) {\n const slice = childEvents.slice(breaks[index], breaks[index + 1])\n const start = startPositions.pop()\n jumps.unshift([start, start + slice.length - 1])\n splice(events, start, 2, slice)\n }\n\n index = -1\n\n while (++index < jumps.length) {\n gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]\n adjust += jumps[index][1] - jumps[index][0] - 1\n }\n\n return gaps\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * No name because it must not be turned off.\n * @type {Construct}\n */\nexport const content = {\n tokenize: tokenizeContent,\n resolve: resolveContent\n}\n/** @type {Construct} */\n\nconst continuationConstruct = {\n tokenize: tokenizeContinuation,\n partial: true\n}\n/**\n * Content is transparent: its parsed right now. That way, definitions are also\n * parsed right now: before text in paragraphs (specifically, media) are parsed.\n *\n * @type {Resolver}\n */\n\nfunction resolveContent(events) {\n subtokenize(events)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContent(effects, ok) {\n /** @type {Token} */\n let previous\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('content')\n previous = effects.enter('chunkContent', {\n contentType: 'content'\n })\n return data(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null) {\n return contentEnd(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n continuationConstruct,\n contentContinue,\n contentEnd\n )(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function contentEnd(code) {\n effects.exit('chunkContent')\n effects.exit('content')\n return ok(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n effects.consume(code)\n effects.exit('chunkContent')\n previous.next = effects.enter('chunkContent', {\n contentType: 'content',\n previous\n })\n previous = previous.next\n return data\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeContinuation(effects, ok, nok) {\n const self = this\n return startLookahead\n /** @type {State} */\n\n function startLookahead(code) {\n effects.exit('chunkContent')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1]\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return ok(code)\n }\n\n return effects.interrupt(self.parser.constructs.flow, nok, ok)(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {blankLine, content} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {InitialConstruct} */\nexport const flow = {\n tokenize: initializeFlow\n}\n/** @type {Initializer} */\n\nfunction initializeFlow(effects) {\n const self = this\n const initial = effects.attempt(\n // Try to parse a blank line.\n blankLine,\n atBlankEnding, // Try to parse initial flow (essentially, only code).\n effects.attempt(\n this.parser.constructs.flowInitial,\n afterConstruct,\n factorySpace(\n effects,\n effects.attempt(\n this.parser.constructs.flow,\n afterConstruct,\n effects.attempt(content, afterConstruct)\n ),\n 'linePrefix'\n )\n )\n )\n return initial\n /** @type {State} */\n\n function atBlankEnding(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n self.currentConstruct = undefined\n return initial\n }\n /** @type {State} */\n\n function afterConstruct(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n self.currentConstruct = undefined\n return initial\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Initializer} Initializer\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nexport const resolver = {\n resolveAll: createResolver()\n}\nexport const string = initializeFactory('string')\nexport const text = initializeFactory('text')\n/**\n * @param {'string'|'text'} field\n * @returns {InitialConstruct}\n */\n\nfunction initializeFactory(field) {\n return {\n tokenize: initializeText,\n resolveAll: createResolver(\n field === 'text' ? resolveAllLineSuffixes : undefined\n )\n }\n /** @type {Initializer} */\n\n function initializeText(effects) {\n const self = this\n const constructs = this.parser.constructs[field]\n const text = effects.attempt(constructs, start, notText)\n return start\n /** @type {State} */\n\n function start(code) {\n return atBreak(code) ? text(code) : notText(code)\n }\n /** @type {State} */\n\n function notText(code) {\n if (code === null) {\n effects.consume(code)\n return\n }\n\n effects.enter('data')\n effects.consume(code)\n return data\n }\n /** @type {State} */\n\n function data(code) {\n if (atBreak(code)) {\n effects.exit('data')\n return text(code)\n } // Data.\n\n effects.consume(code)\n return data\n }\n /**\n * @param {Code} code\n * @returns {boolean}\n */\n\n function atBreak(code) {\n if (code === null) {\n return true\n }\n\n const list = constructs[code]\n let index = -1\n\n if (list) {\n while (++index < list.length) {\n const item = list[index]\n\n if (!item.previous || item.previous.call(self, self.previous)) {\n return true\n }\n }\n }\n\n return false\n }\n }\n}\n/**\n * @param {Resolver} [extraResolver]\n * @returns {Resolver}\n */\n\nfunction createResolver(extraResolver) {\n return resolveAllText\n /** @type {Resolver} */\n\n function resolveAllText(events, context) {\n let index = -1\n /** @type {number|undefined} */\n\n let enter // A rather boring computation (to merge adjacent `data` events) which\n // improves mm performance by 29%.\n\n while (++index <= events.length) {\n if (enter === undefined) {\n if (events[index] && events[index][1].type === 'data') {\n enter = index\n index++\n }\n } else if (!events[index] || events[index][1].type !== 'data') {\n // Dont do anything if there is one data token.\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return extraResolver ? extraResolver(events, context) : events\n }\n}\n/**\n * A rather ugly set of instructions which again looks at chunks in the input\n * stream.\n * The reason to do this here is that it is *much* faster to parse in reverse.\n * And that we cant hook into `null` to split the line suffix before an EOF.\n * To do: figure out if we can make this into a clean utility, or even in core.\n * As it will be useful for GFMs literal autolink extension (and maybe even\n * tables?)\n *\n * @type {Resolver}\n */\n\nfunction resolveAllLineSuffixes(events, context) {\n let eventIndex = 0 // Skip first.\n\n while (++eventIndex <= events.length) {\n if (\n (eventIndex === events.length ||\n events[eventIndex][1].type === 'lineEnding') &&\n events[eventIndex - 1][1].type === 'data'\n ) {\n const data = events[eventIndex - 1][1]\n const chunks = context.sliceStream(data)\n let index = chunks.length\n let bufferIndex = -1\n let size = 0\n /** @type {boolean|undefined} */\n\n let tabs\n\n while (index--) {\n const chunk = chunks[index]\n\n if (typeof chunk === 'string') {\n bufferIndex = chunk.length\n\n while (chunk.charCodeAt(bufferIndex - 1) === 32) {\n size++\n bufferIndex--\n }\n\n if (bufferIndex) break\n bufferIndex = -1\n } // Number\n else if (chunk === -2) {\n tabs = true\n size++\n } else if (chunk === -1) {\n // Empty\n } else {\n // Replacement character, exit.\n index++\n break\n }\n }\n\n if (size) {\n const token = {\n type:\n eventIndex === events.length || tabs || size < 2\n ? 'lineSuffix'\n : 'hardBreakTrailing',\n start: {\n line: data.end.line,\n column: data.end.column - size,\n offset: data.end.offset - size,\n _index: data.start._index + index,\n _bufferIndex: index\n ? bufferIndex\n : data.start._bufferIndex + bufferIndex\n },\n end: Object.assign({}, data.end)\n }\n data.end = Object.assign({}, token.start)\n\n if (data.start.offset === data.end.offset) {\n Object.assign(data, token)\n } else {\n events.splice(\n eventIndex,\n 0,\n ['enter', token, context],\n ['exit', token, context]\n )\n eventIndex += 2\n }\n }\n\n eventIndex++\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n */\n\n/**\n * Call all `resolveAll`s.\n *\n * @param {{resolveAll?: Resolver}[]} constructs\n * @param {Event[]} events\n * @param {TokenizeContext} context\n * @returns {Event[]}\n */\nexport function resolveAll(constructs, events, context) {\n /** @type {Resolver[]} */\n const called = []\n let index = -1\n\n while (++index < constructs.length) {\n const resolve = constructs[index].resolveAll\n\n if (resolve && !called.includes(resolve)) {\n events = resolve(events, context)\n called.push(resolve)\n }\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n */\n\n/**\n * @typedef Info\n * @property {() => void} restore\n * @property {number} from\n *\n * @callback ReturnHandle\n * Handle a successful run.\n * @param {Construct} construct\n * @param {Info} info\n * @returns {void}\n */\nimport {markdownLineEnding} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * Create a tokenizer.\n * Tokenizers deal with one type of data (e.g., containers, flow, text).\n * The parser is the object dealing with it all.\n * `initialize` works like other constructs, except that only its `tokenize`\n * function is used, in which case it doesnt receive an `ok` or `nok`.\n * `from` can be given to set the point before the first character, although\n * when further lines are indented, they must be set with `defineSkip`.\n *\n * @param {ParseContext} parser\n * @param {InitialConstruct} initialize\n * @param {Omit<Point, '_index'|'_bufferIndex'>} [from]\n * @returns {TokenizeContext}\n */\nexport function createTokenizer(parser, initialize, from) {\n /** @type {Point} */\n let point = Object.assign(\n from\n ? Object.assign({}, from)\n : {\n line: 1,\n column: 1,\n offset: 0\n },\n {\n _index: 0,\n _bufferIndex: -1\n }\n )\n /** @type {Record<string, number>} */\n\n const columnStart = {}\n /** @type {Array<Construct>} */\n\n const resolveAllConstructs = []\n /** @type {Array<Chunk>} */\n\n let chunks = []\n /** @type {Array<Token>} */\n\n let stack = []\n /** @type {boolean|undefined} */\n\n let consumed = true\n /**\n * Tools used for tokenizing.\n *\n * @type {Effects}\n */\n\n const effects = {\n consume,\n enter,\n exit,\n attempt: constructFactory(onsuccessfulconstruct),\n check: constructFactory(onsuccessfulcheck),\n interrupt: constructFactory(onsuccessfulcheck, {\n interrupt: true\n })\n }\n /**\n * State and tools for resolving and serializing.\n *\n * @type {TokenizeContext}\n */\n\n const context = {\n previous: null,\n code: null,\n containerState: {},\n events: [],\n parser,\n sliceStream,\n sliceSerialize,\n now,\n defineSkip,\n write\n }\n /**\n * The state function.\n *\n * @type {State|void}\n */\n\n let state = initialize.tokenize.call(context, effects)\n /**\n * Track which character we expect to be consumed, to catch bugs.\n *\n * @type {Code}\n */\n\n let expectedCode\n\n if (initialize.resolveAll) {\n resolveAllConstructs.push(initialize)\n }\n\n return context\n /** @type {TokenizeContext['write']} */\n\n function write(slice) {\n chunks = push(chunks, slice)\n main() // Exit if were not done, resolve might change stuff.\n\n if (chunks[chunks.length - 1] !== null) {\n return []\n }\n\n addResult(initialize, 0) // Otherwise, resolve, and exit.\n\n context.events = resolveAll(resolveAllConstructs, context.events, context)\n return context.events\n } //\n // Tools.\n //\n\n /** @type {TokenizeContext['sliceSerialize']} */\n\n function sliceSerialize(token, expandTabs) {\n return serializeChunks(sliceStream(token), expandTabs)\n }\n /** @type {TokenizeContext['sliceStream']} */\n\n function sliceStream(token) {\n return sliceChunks(chunks, token)\n }\n /** @type {TokenizeContext['now']} */\n\n function now() {\n return Object.assign({}, point)\n }\n /** @type {TokenizeContext['defineSkip']} */\n\n function defineSkip(value) {\n columnStart[value.line] = value.column\n accountForPotentialSkip()\n } //\n // State management.\n //\n\n /**\n * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by\n * `consume`).\n * Here is where we walk through the chunks, which either include strings of\n * several characters, or numerical character codes.\n * The reason to do this in a loop instead of a call is so the stack can\n * drain.\n *\n * @returns {void}\n */\n\n function main() {\n /** @type {number} */\n let chunkIndex\n\n while (point._index < chunks.length) {\n const chunk = chunks[point._index] // If were in a buffer chunk, loop through it.\n\n if (typeof chunk === 'string') {\n chunkIndex = point._index\n\n if (point._bufferIndex < 0) {\n point._bufferIndex = 0\n }\n\n while (\n point._index === chunkIndex &&\n point._bufferIndex < chunk.length\n ) {\n go(chunk.charCodeAt(point._bufferIndex))\n }\n } else {\n go(chunk)\n }\n }\n }\n /**\n * Deal with one code.\n *\n * @param {Code} code\n * @returns {void}\n */\n\n function go(code) {\n consumed = undefined\n expectedCode = code\n state = state(code)\n }\n /** @type {Effects['consume']} */\n\n function consume(code) {\n if (markdownLineEnding(code)) {\n point.line++\n point.column = 1\n point.offset += code === -3 ? 2 : 1\n accountForPotentialSkip()\n } else if (code !== -1) {\n point.column++\n point.offset++\n } // Not in a string chunk.\n\n if (point._bufferIndex < 0) {\n point._index++\n } else {\n point._bufferIndex++ // At end of string chunk.\n // @ts-expect-error Points w/ non-negative `_bufferIndex` reference\n // strings.\n\n if (point._bufferIndex === chunks[point._index].length) {\n point._bufferIndex = -1\n point._index++\n }\n } // Expose the previous character.\n\n context.previous = code // Mark as consumed.\n\n consumed = true\n }\n /** @type {Effects['enter']} */\n\n function enter(type, fields) {\n /** @type {Token} */\n // @ts-expect-error Patch instead of assign required fields to help GC.\n const token = fields || {}\n token.type = type\n token.start = now()\n context.events.push(['enter', token, context])\n stack.push(token)\n return token\n }\n /** @type {Effects['exit']} */\n\n function exit(type) {\n const token = stack.pop()\n token.end = now()\n context.events.push(['exit', token, context])\n return token\n }\n /**\n * Use results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulconstruct(construct, info) {\n addResult(construct, info.from)\n }\n /**\n * Discard results.\n *\n * @type {ReturnHandle}\n */\n\n function onsuccessfulcheck(_, info) {\n info.restore()\n }\n /**\n * Factory to attempt/check/interrupt.\n *\n * @param {ReturnHandle} onreturn\n * @param {Record<string, unknown>} [fields]\n */\n\n function constructFactory(onreturn, fields) {\n return hook\n /**\n * Handle either an object mapping codes to constructs, a list of\n * constructs, or a single construct.\n *\n * @param {Construct|Array<Construct>|ConstructRecord} constructs\n * @param {State} returnState\n * @param {State} [bogusState]\n * @returns {State}\n */\n\n function hook(constructs, returnState, bogusState) {\n /** @type {Array<Construct>} */\n let listOfConstructs\n /** @type {number} */\n\n let constructIndex\n /** @type {Construct} */\n\n let currentConstruct\n /** @type {Info} */\n\n let info\n return Array.isArray(constructs)\n ? /* c8 ignore next 1 */\n handleListOfConstructs(constructs)\n : 'tokenize' in constructs // @ts-expect-error Looks like a construct.\n ? handleListOfConstructs([constructs])\n : handleMapOfConstructs(constructs)\n /**\n * Handle a list of construct.\n *\n * @param {ConstructRecord} map\n * @returns {State}\n */\n\n function handleMapOfConstructs(map) {\n return start\n /** @type {State} */\n\n function start(code) {\n const def = code !== null && map[code]\n const all = code !== null && map.null\n const list = [\n // To do: add more extension tests.\n\n /* c8 ignore next 2 */\n ...(Array.isArray(def) ? def : def ? [def] : []),\n ...(Array.isArray(all) ? all : all ? [all] : [])\n ]\n return handleListOfConstructs(list)(code)\n }\n }\n /**\n * Handle a list of construct.\n *\n * @param {Array<Construct>} list\n * @returns {State}\n */\n\n function handleListOfConstructs(list) {\n listOfConstructs = list\n constructIndex = 0\n\n if (list.length === 0) {\n return bogusState\n }\n\n return handleConstruct(list[constructIndex])\n }\n /**\n * Handle a single construct.\n *\n * @param {Construct} construct\n * @returns {State}\n */\n\n function handleConstruct(construct) {\n return start\n /** @type {State} */\n\n function start(code) {\n // To do: not needed to store if there is no bogus state, probably?\n // Currently doesnt work because `inspect` in document does a check\n // w/o a bogus, which doesnt make sense. But it does seem to help perf\n // by not storing.\n info = store()\n currentConstruct = construct\n\n if (!construct.partial) {\n context.currentConstruct = construct\n }\n\n if (\n construct.name &&\n context.parser.constructs.disable.null.includes(construct.name)\n ) {\n return nok(code)\n }\n\n return construct.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n fields ? Object.assign(Object.create(context), fields) : context,\n effects,\n ok,\n nok\n )(code)\n }\n }\n /** @type {State} */\n\n function ok(code) {\n consumed = true\n onreturn(currentConstruct, info)\n return returnState\n }\n /** @type {State} */\n\n function nok(code) {\n consumed = true\n info.restore()\n\n if (++constructIndex < listOfConstructs.length) {\n return handleConstruct(listOfConstructs[constructIndex])\n }\n\n return bogusState\n }\n }\n }\n /**\n * @param {Construct} construct\n * @param {number} from\n * @returns {void}\n */\n\n function addResult(construct, from) {\n if (construct.resolveAll && !resolveAllConstructs.includes(construct)) {\n resolveAllConstructs.push(construct)\n }\n\n if (construct.resolve) {\n splice(\n context.events,\n from,\n context.events.length - from,\n construct.resolve(context.events.slice(from), context)\n )\n }\n\n if (construct.resolveTo) {\n context.events = construct.resolveTo(context.events, context)\n }\n }\n /**\n * Store state.\n *\n * @returns {Info}\n */\n\n function store() {\n const startPoint = now()\n const startPrevious = context.previous\n const startCurrentConstruct = context.currentConstruct\n const startEventsIndex = context.events.length\n const startStack = Array.from(stack)\n return {\n restore,\n from: startEventsIndex\n }\n /**\n * Restore state.\n *\n * @returns {void}\n */\n\n function restore() {\n point = startPoint\n context.previous = startPrevious\n context.currentConstruct = startCurrentConstruct\n context.events.length = startEventsIndex\n stack = startStack\n accountForPotentialSkip()\n }\n }\n /**\n * Move the current point a bit forward in the line when its on a column\n * skip.\n *\n * @returns {void}\n */\n\n function accountForPotentialSkip() {\n if (point.line in columnStart && point.column < 2) {\n point.column = columnStart[point.line]\n point.offset += columnStart[point.line] - 1\n }\n }\n}\n/**\n * Get the chunks from a slice of chunks in the range of a token.\n *\n * @param {Array<Chunk>} chunks\n * @param {Pick<Token, 'start'|'end'>} token\n * @returns {Array<Chunk>}\n */\n\nfunction sliceChunks(chunks, token) {\n const startIndex = token.start._index\n const startBufferIndex = token.start._bufferIndex\n const endIndex = token.end._index\n const endBufferIndex = token.end._bufferIndex\n /** @type {Array<Chunk>} */\n\n let view\n\n if (startIndex === endIndex) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]\n } else {\n view = chunks.slice(startIndex, endIndex)\n\n if (startBufferIndex > -1) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view[0] = view[0].slice(startBufferIndex)\n }\n\n if (endBufferIndex > 0) {\n // @ts-expect-error `_bufferIndex` is used on string chunks.\n view.push(chunks[endIndex].slice(0, endBufferIndex))\n }\n }\n\n return view\n}\n/**\n * Get the string value of a slice of chunks.\n *\n * @param {Array<Chunk>} chunks\n * @param {boolean} [expandTabs=false]\n * @returns {string}\n */\n\nfunction serializeChunks(chunks, expandTabs) {\n let index = -1\n /** @type {Array<string>} */\n\n const result = []\n /** @type {boolean|undefined} */\n\n let atTab\n\n while (++index < chunks.length) {\n const chunk = chunks[index]\n /** @type {string} */\n\n let value\n\n if (typeof chunk === 'string') {\n value = chunk\n } else\n switch (chunk) {\n case -5: {\n value = '\\r'\n break\n }\n\n case -4: {\n value = '\\n'\n break\n }\n\n case -3: {\n value = '\\r' + '\\n'\n break\n }\n\n case -2: {\n value = expandTabs ? ' ' : '\\t'\n break\n }\n\n case -1: {\n if (!expandTabs && atTab) continue\n value = ' '\n break\n }\n\n default: {\n // Currently only replacement character.\n value = String.fromCharCode(chunk)\n }\n }\n\n atTab = chunk === -2\n result.push(value)\n }\n\n return result.join('')\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const thematicBreak = {\n name: 'thematicBreak',\n tokenize: tokenizeThematicBreak\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeThematicBreak(effects, ok, nok) {\n let size = 0\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('thematicBreak')\n marker = code\n return atBreak(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (code === marker) {\n effects.enter('thematicBreakSequence')\n return sequence(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, atBreak, 'whitespace')(code)\n }\n\n if (size < 3 || (code !== null && !markdownLineEnding(code))) {\n return nok(code)\n }\n\n effects.exit('thematicBreak')\n return ok(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return sequence\n }\n\n effects.exit('thematicBreakSequence')\n return atBreak(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @typedef {Record<string, unknown> & {marker: Code, type: string, size: number}} ListContainerState\n * @typedef {TokenizeContext & {containerState: ListContainerState}} TokenizeContextWithState\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {asciiDigit, markdownSpace} from 'micromark-util-character'\nimport {blankLine} from './blank-line.js'\nimport {thematicBreak} from './thematic-break.js'\n/** @type {Construct} */\n\nexport const list = {\n name: 'list',\n tokenize: tokenizeListStart,\n continuation: {\n tokenize: tokenizeListContinuation\n },\n exit: tokenizeListEnd\n}\n/** @type {Construct} */\n\nconst listItemPrefixWhitespaceConstruct = {\n tokenize: tokenizeListItemPrefixWhitespace,\n partial: true\n}\n/** @type {Construct} */\n\nconst indentConstruct = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListStart(effects, ok, nok) {\n const self = this\n const tail = self.events[self.events.length - 1]\n let initialSize =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n const kind =\n self.containerState.type ||\n (code === 42 || code === 43 || code === 45\n ? 'listUnordered'\n : 'listOrdered')\n\n if (\n kind === 'listUnordered'\n ? !self.containerState.marker || code === self.containerState.marker\n : asciiDigit(code)\n ) {\n if (!self.containerState.type) {\n self.containerState.type = kind\n effects.enter(kind, {\n _container: true\n })\n }\n\n if (kind === 'listUnordered') {\n effects.enter('listItemPrefix')\n return code === 42 || code === 45\n ? effects.check(thematicBreak, nok, atMarker)(code)\n : atMarker(code)\n }\n\n if (!self.interrupt || code === 49) {\n effects.enter('listItemPrefix')\n effects.enter('listItemValue')\n return inside(code)\n }\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiDigit(code) && ++size < 10) {\n effects.consume(code)\n return inside\n }\n\n if (\n (!self.interrupt || size < 2) &&\n (self.containerState.marker\n ? code === self.containerState.marker\n : code === 41 || code === 46)\n ) {\n effects.exit('listItemValue')\n return atMarker(code)\n }\n\n return nok(code)\n }\n /**\n * @type {State}\n **/\n\n function atMarker(code) {\n effects.enter('listItemMarker')\n effects.consume(code)\n effects.exit('listItemMarker')\n self.containerState.marker = self.containerState.marker || code\n return effects.check(\n blankLine, // Cant be empty when interrupting.\n self.interrupt ? nok : onBlank,\n effects.attempt(\n listItemPrefixWhitespaceConstruct,\n endOfPrefix,\n otherPrefix\n )\n )\n }\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.initialBlankLine = true\n initialSize++\n return endOfPrefix(code)\n }\n /** @type {State} */\n\n function otherPrefix(code) {\n if (markdownSpace(code)) {\n effects.enter('listItemPrefixWhitespace')\n effects.consume(code)\n effects.exit('listItemPrefixWhitespace')\n return endOfPrefix\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function endOfPrefix(code) {\n self.containerState.size =\n initialSize +\n self.sliceSerialize(effects.exit('listItemPrefix'), true).length\n return ok(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListContinuation(effects, ok, nok) {\n const self = this\n self.containerState._closeFlow = undefined\n return effects.check(blankLine, onBlank, notBlank)\n /** @type {State} */\n\n function onBlank(code) {\n self.containerState.furtherBlankLines =\n self.containerState.furtherBlankLines ||\n self.containerState.initialBlankLine // We have a blank line.\n // Still, try to consume at most the items size.\n\n return factorySpace(\n effects,\n ok,\n 'listItemIndent',\n self.containerState.size + 1\n )(code)\n }\n /** @type {State} */\n\n function notBlank(code) {\n if (self.containerState.furtherBlankLines || !markdownSpace(code)) {\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return notInCurrentItem(code)\n }\n\n self.containerState.furtherBlankLines = undefined\n self.containerState.initialBlankLine = undefined\n return effects.attempt(indentConstruct, ok, notInCurrentItem)(code)\n }\n /** @type {State} */\n\n function notInCurrentItem(code) {\n // While we do continue, we signal that the flow should be closed.\n self.containerState._closeFlow = true // As were closing flow, were no longer interrupting.\n\n self.interrupt = undefined\n return factorySpace(\n effects,\n effects.attempt(list, ok, nok),\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemIndent',\n self.containerState.size + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'listItemIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === self.containerState.size\n ? ok(code)\n : nok(code)\n }\n}\n/**\n * @type {Exiter}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListEnd(effects) {\n effects.exit(this.containerState.type)\n}\n/**\n * @type {Tokenizer}\n * @this {TokenizeContextWithState}\n */\n\nfunction tokenizeListItemPrefixWhitespace(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'listItemPrefixWhitespace',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return !markdownSpace(code) &&\n tail &&\n tail[1].type === 'listItemPrefixWhitespace'\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownSpace} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const blockQuote = {\n name: 'blockQuote',\n tokenize: tokenizeBlockQuoteStart,\n continuation: {\n tokenize: tokenizeBlockQuoteContinuation\n },\n exit\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteStart(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 62) {\n const state = self.containerState\n\n if (!state.open) {\n effects.enter('blockQuote', {\n _container: true\n })\n state.open = true\n }\n\n effects.enter('blockQuotePrefix')\n effects.enter('blockQuoteMarker')\n effects.consume(code)\n effects.exit('blockQuoteMarker')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (markdownSpace(code)) {\n effects.enter('blockQuotePrefixWhitespace')\n effects.consume(code)\n effects.exit('blockQuotePrefixWhitespace')\n effects.exit('blockQuotePrefix')\n return ok\n }\n\n effects.exit('blockQuotePrefix')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeBlockQuoteContinuation(effects, ok, nok) {\n return factorySpace(\n effects,\n effects.attempt(blockQuote, ok, nok),\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4\n )\n}\n/** @type {Exiter} */\n\nfunction exit(effects) {\n effects.exit('blockQuote')\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiControl,\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} literalType\n * @param {string} literalMarkerType\n * @param {string} rawType\n * @param {string} stringType\n * @param {number} [max=Infinity]\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryDestination(\n effects,\n ok,\n nok,\n type,\n literalType,\n literalMarkerType,\n rawType,\n stringType,\n max\n) {\n const limit = max || Number.POSITIVE_INFINITY\n let balance = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (code === 60) {\n effects.enter(type)\n effects.enter(literalType)\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n return destinationEnclosedBefore\n }\n\n if (code === null || code === 41 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.enter(type)\n effects.enter(rawType)\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationRaw(code)\n }\n /** @type {State} */\n\n function destinationEnclosedBefore(code) {\n if (code === 62) {\n effects.enter(literalMarkerType)\n effects.consume(code)\n effects.exit(literalMarkerType)\n effects.exit(literalType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationEnclosed(code) {\n if (code === 62) {\n effects.exit('chunkString')\n effects.exit(stringType)\n return destinationEnclosedBefore(code)\n }\n\n if (code === null || code === 60 || markdownLineEnding(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return code === 92 ? destinationEnclosedEscape : destinationEnclosed\n }\n /** @type {State} */\n\n function destinationEnclosedEscape(code) {\n if (code === 60 || code === 62 || code === 92) {\n effects.consume(code)\n return destinationEnclosed\n }\n\n return destinationEnclosed(code)\n }\n /** @type {State} */\n\n function destinationRaw(code) {\n if (code === 40) {\n if (++balance > limit) return nok(code)\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === 41) {\n if (!balance--) {\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n effects.consume(code)\n return destinationRaw\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n if (balance) return nok(code)\n effects.exit('chunkString')\n effects.exit(stringType)\n effects.exit(rawType)\n effects.exit(type)\n return ok(code)\n }\n\n if (asciiControl(code)) return nok(code)\n effects.consume(code)\n return code === 92 ? destinationRawEscape : destinationRaw\n }\n /** @type {State} */\n\n function destinationRawEscape(code) {\n if (code === 40 || code === 41 || code === 92) {\n effects.consume(code)\n return destinationRaw\n }\n\n return destinationRaw(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @this {TokenizeContext}\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryLabel(effects, ok, nok, type, markerType, stringType) {\n const self = this\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.enter(stringType)\n return atBreak\n }\n /** @type {State} */\n\n function atBreak(code) {\n if (\n code === null ||\n code === 91 ||\n (code === 93 && !data) ||\n /* To do: remove in the future once weve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesnt need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n (code === 94 &&\n !size &&\n '_hiddenFootnoteSupport' in self.parser.constructs) ||\n size > 999\n ) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.exit(stringType)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return atBreak\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n code === 91 ||\n code === 93 ||\n markdownLineEnding(code) ||\n size++ > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n effects.consume(code)\n data = data || !markdownSpace(code)\n return code === 92 ? labelEscape : label\n }\n /** @type {State} */\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n * @param {State} nok\n * @param {string} type\n * @param {string} markerType\n * @param {string} stringType\n * @returns {State}\n */\n// eslint-disable-next-line max-params\nexport function factoryTitle(effects, ok, nok, type, markerType, stringType) {\n /** @type {NonNullable<Code>} */\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter(type)\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n marker = code === 40 ? 41 : code\n return atFirstTitleBreak\n }\n /** @type {State} */\n\n function atFirstTitleBreak(code) {\n if (code === marker) {\n effects.enter(markerType)\n effects.consume(code)\n effects.exit(markerType)\n effects.exit(type)\n return ok\n }\n\n effects.enter(stringType)\n return atTitleBreak(code)\n }\n /** @type {State} */\n\n function atTitleBreak(code) {\n if (code === marker) {\n effects.exit(stringType)\n return atFirstTitleBreak(marker)\n }\n\n if (code === null) {\n return nok(code)\n } // Note: blank lines cant exist in content.\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, atTitleBreak, 'linePrefix')\n }\n\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return title(code)\n }\n /** @type {State} */\n\n function title(code) {\n if (code === marker || code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n return atTitleBreak(code)\n }\n\n effects.consume(code)\n return code === 92 ? titleEscape : title\n }\n /** @type {State} */\n\n function titleEscape(code) {\n if (code === marker || code === 92) {\n effects.consume(code)\n return title\n }\n\n return title(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Effects} Effects\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding, markdownSpace} from 'micromark-util-character'\n\n/**\n * @param {Effects} effects\n * @param {State} ok\n */\nexport function factoryWhitespace(effects, ok) {\n /** @type {boolean} */\n let seen\n return start\n /** @type {State} */\n\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n seen = true\n return start\n }\n\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n start,\n seen ? 'linePrefix' : 'lineSuffix'\n )(code)\n }\n\n return ok(code)\n }\n}\n","/**\n * Normalize an identifier (such as used in definitions).\n *\n * @param {string} value\n * @returns {string}\n */\nexport function normalizeIdentifier(value) {\n return (\n value // Collapse Markdown whitespace.\n .replace(/[\\t\\n\\r ]+/g, ' ') // Trim.\n .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase\n // counterpart is uppercased will result in a different uppercase\n // character.\n // Hence, to get that form, we perform both lower- and uppercase.\n // Upper case makes sure keys will not interact with default prototypal\n // methods: no method is uppercase.\n .toLowerCase()\n .toUpperCase()\n )\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factorySpace} from 'micromark-factory-space'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const definition = {\n name: 'definition',\n tokenize: tokenizeDefinition\n}\n/** @type {Construct} */\n\nconst titleConstruct = {\n tokenize: tokenizeTitle,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinition(effects, ok, nok) {\n const self = this\n /** @type {string} */\n\n let identifier\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('definition')\n return factoryLabel.call(\n self,\n effects,\n labelAfter,\n nok,\n 'definitionLabel',\n 'definitionLabelMarker',\n 'definitionLabelString'\n )(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n identifier = normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Note: blank lines cant exist in content.\n\n return factoryWhitespace(\n effects,\n factoryDestination(\n effects,\n effects.attempt(\n titleConstruct,\n factorySpace(effects, after, 'whitespace'),\n factorySpace(effects, after, 'whitespace')\n ),\n nok,\n 'definitionDestination',\n 'definitionDestinationLiteral',\n 'definitionDestinationLiteralMarker',\n 'definitionDestinationRaw',\n 'definitionDestinationString'\n )\n )\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('definition')\n\n if (!self.parser.defined.includes(identifier)) {\n self.parser.defined.push(identifier)\n }\n\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTitle(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, before)(code)\n : nok(code)\n }\n /** @type {State} */\n\n function before(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factorySpace(effects, after, 'whitespace'),\n nok,\n 'definitionTitle',\n 'definitionTitleMarker',\n 'definitionTitleString'\n )(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? ok(code) : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeIndented = {\n name: 'codeIndented',\n tokenize: tokenizeCodeIndented\n}\n/** @type {Construct} */\n\nconst indentedContent = {\n tokenize: tokenizeIndentedContent,\n partial: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeIndented(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeIndented')\n return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterStartPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? afterPrefix(code)\n : nok(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(indentedContent, afterPrefix, after)(code)\n }\n\n effects.enter('codeFlowValue')\n return content(code)\n }\n /** @type {State} */\n\n function content(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return afterPrefix(code)\n }\n\n effects.consume(code)\n return content\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeIndented')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndentedContent(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n // If this is a lazy line, it cant be code.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return start\n }\n\n return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code)\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ? ok(code)\n : markdownLineEnding(code)\n ? start(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {splice} from 'micromark-util-chunked'\n\n/** @type {Construct} */\nexport const headingAtx = {\n name: 'headingAtx',\n tokenize: tokenizeHeadingAtx,\n resolve: resolveHeadingAtx\n}\n/** @type {Resolver} */\n\nfunction resolveHeadingAtx(events, context) {\n let contentEnd = events.length - 2\n let contentStart = 3\n /** @type {Token} */\n\n let content\n /** @type {Token} */\n\n let text // Prefix whitespace, part of the opening.\n\n if (events[contentStart][1].type === 'whitespace') {\n contentStart += 2\n } // Suffix whitespace, part of the closing.\n\n if (\n contentEnd - 2 > contentStart &&\n events[contentEnd][1].type === 'whitespace'\n ) {\n contentEnd -= 2\n }\n\n if (\n events[contentEnd][1].type === 'atxHeadingSequence' &&\n (contentStart === contentEnd - 1 ||\n (contentEnd - 4 > contentStart &&\n events[contentEnd - 2][1].type === 'whitespace'))\n ) {\n contentEnd -= contentStart + 1 === contentEnd ? 2 : 4\n }\n\n if (contentEnd > contentStart) {\n content = {\n type: 'atxHeadingText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n text = {\n type: 'chunkText',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end,\n // @ts-expect-error Constants are fine to assign.\n contentType: 'text'\n }\n splice(events, contentStart, contentEnd - contentStart + 1, [\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n ])\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHeadingAtx(effects, ok, nok) {\n const self = this\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('atxHeading')\n effects.enter('atxHeadingSequence')\n return fenceOpenInside(code)\n }\n /** @type {State} */\n\n function fenceOpenInside(code) {\n if (code === 35 && size++ < 6) {\n effects.consume(code)\n return fenceOpenInside\n }\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingSequence')\n return self.interrupt ? ok(code) : headingBreak(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function headingBreak(code) {\n if (code === 35) {\n effects.enter('atxHeadingSequence')\n return sequence(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n effects.exit('atxHeading')\n return ok(code)\n }\n\n if (markdownSpace(code)) {\n return factorySpace(effects, headingBreak, 'whitespace')(code)\n }\n\n effects.enter('atxHeadingText')\n return data(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === 35) {\n effects.consume(code)\n return sequence\n }\n\n effects.exit('atxHeadingSequence')\n return headingBreak(code)\n }\n /** @type {State} */\n\n function data(code) {\n if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {\n effects.exit('atxHeadingText')\n return headingBreak(code)\n }\n\n effects.consume(code)\n return data\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const setextUnderline = {\n name: 'setextUnderline',\n tokenize: tokenizeSetextUnderline,\n resolveTo: resolveToSetextUnderline\n}\n/** @type {Resolver} */\n\nfunction resolveToSetextUnderline(events, context) {\n let index = events.length\n /** @type {number|undefined} */\n\n let content\n /** @type {number|undefined} */\n\n let text\n /** @type {number|undefined} */\n\n let definition // Find the opening of the content.\n // Itll always exist: we dont tokenize if it isnt there.\n\n while (index--) {\n if (events[index][0] === 'enter') {\n if (events[index][1].type === 'content') {\n content = index\n break\n }\n\n if (events[index][1].type === 'paragraph') {\n text = index\n }\n } // Exit\n else {\n if (events[index][1].type === 'content') {\n // Remove the content end (if needed well add it later)\n events.splice(index, 1)\n }\n\n if (!definition && events[index][1].type === 'definition') {\n definition = index\n }\n }\n }\n\n const heading = {\n type: 'setextHeading',\n start: Object.assign({}, events[text][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // Change the paragraph to setext heading text.\n\n events[text][1].type = 'setextHeadingText' // If we have definitions in the content, well keep on having content,\n // but we need move it.\n\n if (definition) {\n events.splice(text, 0, ['enter', heading, context])\n events.splice(definition + 1, 0, ['exit', events[content][1], context])\n events[content][1].end = Object.assign({}, events[definition][1].end)\n } else {\n events[content][1] = heading\n } // Add the heading exit at the end.\n\n events.push(['exit', heading, context])\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeSetextUnderline(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {NonNullable<Code>} */\n\n let marker\n /** @type {boolean} */\n\n let paragraph // Find an opening.\n\n while (index--) {\n // Skip enter/exit of line ending, line prefix, and content.\n // We can now either have a definition or a paragraph.\n if (\n self.events[index][1].type !== 'lineEnding' &&\n self.events[index][1].type !== 'linePrefix' &&\n self.events[index][1].type !== 'content'\n ) {\n paragraph = self.events[index][1].type === 'paragraph'\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) {\n effects.enter('setextHeadingLine')\n effects.enter('setextHeadingLineSequence')\n marker = code\n return closingSequence(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n return closingSequence\n }\n\n effects.exit('setextHeadingLineSequence')\n return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('setextHeadingLine')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result\n * in more relaxed rules (condition 6): because they are known blocks, the\n * HTML-like syntax doesnt have to be strictly parsed.\n * For tag names not in this list, a more strict algorithm (condition 7) is used\n * to detect whether the HTML-like syntax is seen as HTML (flow) or not.\n *\n * This is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n */\nexport const htmlBlockNames = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'section',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n]\n\n/**\n * List of lowercase HTML tag names which when parsing HTML (flow), result in\n * HTML that can include lines w/o exiting, until a closing tag also in this\n * list is found (condition 1).\n *\n * This module is copied from:\n * <https://spec.commonmark.org/0.30/#html-blocks>.\n *\n * Note that `textarea` was added in `CommonMark@0.30`.\n */\nexport const htmlRawNames = ['pre', 'script', 'style', 'textarea']\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name'\nimport {blankLine} from './blank-line.js'\n/** @type {Construct} */\n\nexport const htmlFlow = {\n name: 'htmlFlow',\n tokenize: tokenizeHtmlFlow,\n resolveTo: resolveToHtmlFlow,\n concrete: true\n}\n/** @type {Construct} */\n\nconst nextBlankConstruct = {\n tokenize: tokenizeNextBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveToHtmlFlow(events) {\n let index = events.length\n\n while (index--) {\n if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') {\n break\n }\n }\n\n if (index > 1 && events[index - 2][1].type === 'linePrefix') {\n // Add the prefix start to the HTML token.\n events[index][1].start = events[index - 2][1].start // Add the prefix start to the HTML line token.\n\n events[index + 1][1].start = events[index - 2][1].start // Remove the line prefix.\n\n events.splice(index - 2, 2)\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlFlow(effects, ok, nok) {\n const self = this\n /** @type {number} */\n\n let kind\n /** @type {boolean} */\n\n let startTag\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {Code} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlFlow')\n effects.enter('htmlFlowData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationStart\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n kind = 3 // While were in an instruction instead of a declaration, were on a `?`\n // right now, so we do need to search for `>`, similar to declarations.\n\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n startTag = true\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationStart(code) {\n if (code === 45) {\n effects.consume(code)\n kind = 2\n return commentOpenInside\n }\n\n if (code === 91) {\n effects.consume(code)\n kind = 5\n buffer = 'CDATA['\n index = 0\n return cdataOpenInside\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n kind = 4\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code)\n return self.interrupt ? ok : continuationDeclarationInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdataOpenInside(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length\n ? self.interrupt\n ? ok\n : continuation\n : cdataOpenInside\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n buffer = String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagName(code) {\n if (\n code === null ||\n code === 47 ||\n code === 62 ||\n markdownLineEndingOrSpace(code)\n ) {\n if (\n code !== 47 &&\n startTag &&\n htmlRawNames.includes(buffer.toLowerCase())\n ) {\n kind = 1\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n if (htmlBlockNames.includes(buffer.toLowerCase())) {\n kind = 6\n\n if (code === 47) {\n effects.consume(code)\n return basicSelfClosing\n }\n\n return self.interrupt ? ok(code) : continuation(code)\n }\n\n kind = 7 // Do not support complete HTML when interrupting\n\n return self.interrupt && !self.parser.lazy[self.now().line]\n ? nok(code)\n : startTag\n ? completeAttributeNameBefore(code)\n : completeClosingTagAfter(code)\n }\n\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return tagName\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function basicSelfClosing(code) {\n if (code === 62) {\n effects.consume(code)\n return self.interrupt ? ok : continuation\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeClosingTagAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeClosingTagAfter\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeNameBefore(code) {\n if (code === 47) {\n effects.consume(code)\n return completeEnd\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return completeAttributeName\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameBefore\n }\n\n return completeEnd(code)\n }\n /** @type {State} */\n\n function completeAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return completeAttributeName\n }\n\n return completeAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function completeAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeNameAfter\n }\n\n return completeAttributeNameBefore(code)\n }\n /** @type {State} */\n\n function completeAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return completeAttributeValueQuoted\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAttributeValueBefore\n }\n\n marker = null\n return completeAttributeValueUnquoted(code)\n }\n /** @type {State} */\n\n function completeAttributeValueQuoted(code) {\n if (code === null || markdownLineEnding(code)) {\n return nok(code)\n }\n\n if (code === marker) {\n effects.consume(code)\n return completeAttributeValueQuotedAfter\n }\n\n effects.consume(code)\n return completeAttributeValueQuoted\n }\n /** @type {State} */\n\n function completeAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96 ||\n markdownLineEndingOrSpace(code)\n ) {\n return completeAttributeNameAfter(code)\n }\n\n effects.consume(code)\n return completeAttributeValueUnquoted\n }\n /** @type {State} */\n\n function completeAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownSpace(code)) {\n return completeAttributeNameBefore(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeEnd(code) {\n if (code === 62) {\n effects.consume(code)\n return completeAfter\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function completeAfter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return completeAfter\n }\n\n return code === null || markdownLineEnding(code)\n ? continuation(code)\n : nok(code)\n }\n /** @type {State} */\n\n function continuation(code) {\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationCommentInside\n }\n\n if (code === 60 && kind === 1) {\n effects.consume(code)\n return continuationRawTagOpen\n }\n\n if (code === 62 && kind === 4) {\n effects.consume(code)\n return continuationClose\n }\n\n if (code === 63 && kind === 3) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n if (code === 93 && kind === 5) {\n effects.consume(code)\n return continuationCharacterDataInside\n }\n\n if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {\n return effects.check(\n nextBlankConstruct,\n continuationClose,\n continuationAtLineEnding\n )(code)\n }\n\n if (code === null || markdownLineEnding(code)) {\n return continuationAtLineEnding(code)\n }\n\n effects.consume(code)\n return continuation\n }\n /** @type {State} */\n\n function continuationAtLineEnding(code) {\n effects.exit('htmlFlowData')\n return htmlContinueStart(code)\n }\n /** @type {State} */\n\n function htmlContinueStart(code) {\n if (code === null) {\n return done(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n {\n tokenize: htmlLineEnd,\n partial: true\n },\n htmlContinueStart,\n done\n )(code)\n }\n\n effects.enter('htmlFlowData')\n return continuation(code)\n }\n /** @type {Tokenizer} */\n\n function htmlLineEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {State} */\n\n function continuationCommentInside(code) {\n if (code === 45) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code)\n buffer = ''\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationRawEndTag(code) {\n if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {\n effects.consume(code)\n return continuationClose\n }\n\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code)\n buffer += String.fromCharCode(code)\n return continuationRawEndTag\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationCharacterDataInside(code) {\n if (code === 93) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code)\n return continuationClose\n } // More dashes.\n\n if (code === 45 && kind === 2) {\n effects.consume(code)\n return continuationDeclarationInside\n }\n\n return continuation(code)\n }\n /** @type {State} */\n\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('htmlFlowData')\n return done(code)\n }\n\n effects.consume(code)\n return continuationClose\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('htmlFlow')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextBlank(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.exit('htmlFlowData')\n effects.enter('lineEndingBlank')\n effects.consume(code)\n effects.exit('lineEndingBlank')\n return effects.attempt(blankLine, ok, nok)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this\n /** @type {Construct} */\n\n const closingFenceConstruct = {\n tokenize: tokenizeClosingFence,\n partial: true\n }\n /** @type {Construct} */\n\n const nonLazyLine = {\n tokenize: tokenizeNonLazyLine,\n partial: true\n }\n const tail = this.events[this.events.length - 1]\n const initialPrefix =\n tail && tail[1].type === 'linePrefix'\n ? tail[2].sliceSerialize(tail[1], true).length\n : 0\n let sizeOpen = 0\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeFenced')\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n marker = code\n return sequenceOpen(code)\n }\n /** @type {State} */\n\n function sequenceOpen(code) {\n if (code === marker) {\n effects.consume(code)\n sizeOpen++\n return sequenceOpen\n }\n\n effects.exit('codeFencedFenceSequence')\n return sizeOpen < 3\n ? nok(code)\n : factorySpace(effects, infoOpen, 'whitespace')(code)\n }\n /** @type {State} */\n\n function infoOpen(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceInfo')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return info(code)\n }\n /** @type {State} */\n\n function info(code) {\n if (code === null || markdownLineEndingOrSpace(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceInfo')\n return factorySpace(effects, infoAfter, 'whitespace')(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return info\n }\n /** @type {State} */\n\n function infoAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n return openAfter(code)\n }\n\n effects.enter('codeFencedFenceMeta')\n effects.enter('chunkString', {\n contentType: 'string'\n })\n return meta(code)\n }\n /** @type {State} */\n\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('chunkString')\n effects.exit('codeFencedFenceMeta')\n return openAfter(code)\n }\n\n if (code === 96 && code === marker) return nok(code)\n effects.consume(code)\n return meta\n }\n /** @type {State} */\n\n function openAfter(code) {\n effects.exit('codeFencedFence')\n return self.interrupt ? ok(code) : contentStart(code)\n }\n /** @type {State} */\n\n function contentStart(code) {\n if (code === null) {\n return after(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.attempt(\n nonLazyLine,\n effects.attempt(\n closingFenceConstruct,\n after,\n initialPrefix\n ? factorySpace(\n effects,\n contentStart,\n 'linePrefix',\n initialPrefix + 1\n )\n : contentStart\n ),\n after\n )(code)\n }\n\n effects.enter('codeFlowValue')\n return contentContinue(code)\n }\n /** @type {State} */\n\n function contentContinue(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFlowValue')\n return contentStart(code)\n }\n\n effects.consume(code)\n return contentContinue\n }\n /** @type {State} */\n\n function after(code) {\n effects.exit('codeFenced')\n return ok(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeNonLazyLine(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return lineStart\n }\n /** @type {State} */\n\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code)\n }\n }\n /** @type {Tokenizer} */\n\n function tokenizeClosingFence(effects, ok, nok) {\n let size = 0\n return factorySpace(\n effects,\n closingSequenceStart,\n 'linePrefix',\n this.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n /** @type {State} */\n\n function closingSequenceStart(code) {\n effects.enter('codeFencedFence')\n effects.enter('codeFencedFenceSequence')\n return closingSequence(code)\n }\n /** @type {State} */\n\n function closingSequence(code) {\n if (code === marker) {\n effects.consume(code)\n size++\n return closingSequence\n }\n\n if (size < sizeOpen) return nok(code)\n effects.exit('codeFencedFenceSequence')\n return factorySpace(effects, closingSequenceEnd, 'whitespace')(code)\n }\n /** @type {State} */\n\n function closingSequenceEnd(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit('codeFencedFence')\n return ok(code)\n }\n\n return nok(code)\n }\n }\n}\n","/// <reference lib=\"dom\" />\n\n/* eslint-env browser */\n\nconst element = document.createElement('i')\n\n/**\n * @param {string} value\n * @returns {string|false}\n */\nexport function decodeNamedCharacterReference(value) {\n const characterReference = '&' + value + ';'\n element.innerHTML = characterReference\n const char = element.textContent\n\n // Some named character references do not require the closing semicolon\n // (`&not`, for instance), which leads to situations where parsing the assumed\n // named reference of `&notit;` will result in the string `¬it;`.\n // When we encounter a trailing semicolon after parsing, and the character\n // reference to decode was not a semicolon (`&semi;`), we can assume that the\n // matching was not complete.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n if (char.charCodeAt(char.length - 1) === 59 /* `;` */ && value !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the character reference was\n // not valid.\n // @ts-expect-error: TypeScript is wrong that `textContent` on elements can\n // yield `null`.\n return char === characterReference ? false : char\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {\n asciiAlphanumeric,\n asciiDigit,\n asciiHexDigit\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this\n let size = 0\n /** @type {number} */\n\n let max\n /** @type {(code: Code) => code is number} */\n\n let test\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterReference')\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 35) {\n effects.enter('characterReferenceMarkerNumeric')\n effects.consume(code)\n effects.exit('characterReferenceMarkerNumeric')\n return numeric\n }\n\n effects.enter('characterReferenceValue')\n max = 31\n test = asciiAlphanumeric\n return value(code)\n }\n /** @type {State} */\n\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter('characterReferenceMarkerHexadecimal')\n effects.consume(code)\n effects.exit('characterReferenceMarkerHexadecimal')\n effects.enter('characterReferenceValue')\n max = 6\n test = asciiHexDigit\n return value\n }\n\n effects.enter('characterReferenceValue')\n max = 7\n test = asciiDigit\n return value(code)\n }\n /** @type {State} */\n\n function value(code) {\n /** @type {Token} */\n let token\n\n if (code === 59 && size) {\n token = effects.exit('characterReferenceValue')\n\n if (\n test === asciiAlphanumeric &&\n !decodeNamedCharacterReference(self.sliceSerialize(token))\n ) {\n return nok(code)\n }\n\n effects.enter('characterReferenceMarker')\n effects.consume(code)\n effects.exit('characterReferenceMarker')\n effects.exit('characterReference')\n return ok\n }\n\n if (test(code) && size++ < max) {\n effects.consume(code)\n return value\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {asciiPunctuation} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('characterEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n effects.exit('escapeMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiPunctuation(code)) {\n effects.enter('characterEscapeValue')\n effects.consume(code)\n effects.exit('characterEscapeValue')\n effects.exit('characterEscape')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLineEnding(effects, ok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, ok, 'linePrefix')\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factoryDestination} from 'micromark-factory-destination'\nimport {factoryLabel} from 'micromark-factory-label'\nimport {factoryTitle} from 'micromark-factory-title'\nimport {factoryWhitespace} from 'micromark-factory-whitespace'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {push, splice} from 'micromark-util-chunked'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n}\n/** @type {Construct} */\n\nconst resourceConstruct = {\n tokenize: tokenizeResource\n}\n/** @type {Construct} */\n\nconst fullReferenceConstruct = {\n tokenize: tokenizeFullReference\n}\n/** @type {Construct} */\n\nconst collapsedReferenceConstruct = {\n tokenize: tokenizeCollapsedReference\n}\n/** @type {Resolver} */\n\nfunction resolveAllLabelEnd(events) {\n let index = -1\n /** @type {Token} */\n\n let token\n\n while (++index < events.length) {\n token = events[index][1]\n\n if (\n token.type === 'labelImage' ||\n token.type === 'labelLink' ||\n token.type === 'labelEnd'\n ) {\n // Remove the marker.\n events.splice(index + 1, token.type === 'labelImage' ? 4 : 2)\n token.type = 'data'\n index++\n }\n }\n\n return events\n}\n/** @type {Resolver} */\n\nfunction resolveToLabelEnd(events, context) {\n let index = events.length\n let offset = 0\n /** @type {Token} */\n\n let token\n /** @type {number|undefined} */\n\n let open\n /** @type {number|undefined} */\n\n let close\n /** @type {Event[]} */\n\n let media // Find an opening.\n\n while (index--) {\n token = events[index][1]\n\n if (open) {\n // If we see another link, or inactive link label, weve been here before.\n if (\n token.type === 'link' ||\n (token.type === 'labelLink' && token._inactive)\n ) {\n break\n } // Mark other link openings as inactive, as we cant have links in\n // links.\n\n if (events[index][0] === 'enter' && token.type === 'labelLink') {\n token._inactive = true\n }\n } else if (close) {\n if (\n events[index][0] === 'enter' &&\n (token.type === 'labelImage' || token.type === 'labelLink') &&\n !token._balanced\n ) {\n open = index\n\n if (token.type !== 'labelLink') {\n offset = 2\n break\n }\n }\n } else if (token.type === 'labelEnd') {\n close = index\n }\n }\n\n const group = {\n type: events[open][1].type === 'labelLink' ? 'link' : 'image',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n const label = {\n type: 'label',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n }\n const text = {\n type: 'labelText',\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n }\n media = [\n ['enter', group, context],\n ['enter', label, context]\n ] // Opening marker.\n\n media = push(media, events.slice(open + 1, open + offset + 3)) // Text open.\n\n media = push(media, [['enter', text, context]]) // Between.\n\n media = push(\n media,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + offset + 4, close - 3),\n context\n )\n ) // Text close, marker close, label close.\n\n media = push(media, [\n ['exit', text, context],\n events[close - 2],\n events[close - 1],\n ['exit', label, context]\n ]) // Reference, resource, or so.\n\n media = push(media, events.slice(close + 1)) // Media close.\n\n media = push(media, [['exit', group, context]])\n splice(events, open, events.length, media)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Token} */\n\n let labelStart\n /** @type {boolean} */\n\n let defined // Find an opening.\n\n while (index--) {\n if (\n (self.events[index][1].type === 'labelImage' ||\n self.events[index][1].type === 'labelLink') &&\n !self.events[index][1]._balanced\n ) {\n labelStart = self.events[index][1]\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart) {\n return nok(code)\n } // Its a balanced bracket, but contains a link.\n\n if (labelStart._inactive) return balanced(code)\n defined = self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n )\n effects.enter('labelEnd')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelEnd')\n return afterLabelEnd\n }\n /** @type {State} */\n\n function afterLabelEnd(code) {\n // Resource: `[asd](fgh)`.\n if (code === 40) {\n return effects.attempt(\n resourceConstruct,\n ok,\n defined ? ok : balanced\n )(code)\n } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference?\n\n if (code === 91) {\n return effects.attempt(\n fullReferenceConstruct,\n ok,\n defined\n ? effects.attempt(collapsedReferenceConstruct, ok, balanced)\n : balanced\n )(code)\n } // Shortcut reference: `[asd]`?\n\n return defined ? ok(code) : balanced(code)\n }\n /** @type {State} */\n\n function balanced(code) {\n labelStart._balanced = true\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeResource(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('resource')\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n return factoryWhitespace(effects, open)\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 41) {\n return end(code)\n }\n\n return factoryDestination(\n effects,\n destinationAfter,\n nok,\n 'resourceDestination',\n 'resourceDestinationLiteral',\n 'resourceDestinationLiteralMarker',\n 'resourceDestinationRaw',\n 'resourceDestinationString',\n 32\n )(code)\n }\n /** @type {State} */\n\n function destinationAfter(code) {\n return markdownLineEndingOrSpace(code)\n ? factoryWhitespace(effects, between)(code)\n : end(code)\n }\n /** @type {State} */\n\n function between(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(\n effects,\n factoryWhitespace(effects, end),\n nok,\n 'resourceTitle',\n 'resourceTitleMarker',\n 'resourceTitleString'\n )(code)\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 41) {\n effects.enter('resourceMarker')\n effects.consume(code)\n effects.exit('resourceMarker')\n effects.exit('resource')\n return ok\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeFullReference(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n return factoryLabel.call(\n self,\n effects,\n afterLabel,\n nok,\n 'reference',\n 'referenceMarker',\n 'referenceString'\n )(code)\n }\n /** @type {State} */\n\n function afterLabel(code) {\n return self.parser.defined.includes(\n normalizeIdentifier(\n self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1)\n )\n )\n ? ok(code)\n : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCollapsedReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('reference')\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 93) {\n effects.enter('referenceMarker')\n effects.consume(code)\n effects.exit('referenceMarker')\n effects.exit('reference')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelImage')\n effects.enter('labelImageMarker')\n effects.consume(code)\n effects.exit('labelImageMarker')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 91) {\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelImage')\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once weve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesnt need this */\n\n /* Hidden footnotes hook */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n\n/**\n * Classify whether a character code represents whitespace, punctuation, or\n * something else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * Note that eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * @returns {number|undefined}\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Point} Point\n */\nimport {push, splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n}\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n\nfunction resolveAllAttention(events, context) {\n let index = -1\n /** @type {number} */\n\n let open\n /** @type {Token} */\n\n let group\n /** @type {Token} */\n\n let text\n /** @type {Token} */\n\n let openingSequence\n /** @type {Token} */\n\n let closingSequence\n /** @type {number} */\n\n let use\n /** @type {Event[]} */\n\n let nextEvents\n /** @type {number} */\n\n let offset // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but its\n // a bottleneck for malicious stuff.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'attentionSequence' &&\n events[index][1]._close\n ) {\n open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'attentionSequence' &&\n events[open][1]._open && // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) ===\n context.sliceSerialize(events[index][1]).charCodeAt(0)\n ) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then dont match.\n if (\n (events[open][1]._close || events[index][1]._open) &&\n (events[index][1].end.offset - events[index][1].start.offset) % 3 &&\n !(\n (events[open][1].end.offset -\n events[open][1].start.offset +\n events[index][1].end.offset -\n events[index][1].start.offset) %\n 3\n )\n ) {\n continue\n } // Number of markers to use from the sequence.\n\n use =\n events[open][1].end.offset - events[open][1].start.offset > 1 &&\n events[index][1].end.offset - events[index][1].start.offset > 1\n ? 2\n : 1\n const start = Object.assign({}, events[open][1].end)\n const end = Object.assign({}, events[index][1].start)\n movePoint(start, -use)\n movePoint(end, use)\n openingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start,\n end: Object.assign({}, events[open][1].end)\n }\n closingSequence = {\n type: use > 1 ? 'strongSequence' : 'emphasisSequence',\n start: Object.assign({}, events[index][1].start),\n end\n }\n text = {\n type: use > 1 ? 'strongText' : 'emphasisText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n group = {\n type: use > 1 ? 'strong' : 'emphasis',\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n }\n events[open][1].end = Object.assign({}, openingSequence.start)\n events[index][1].start = Object.assign({}, closingSequence.end)\n nextEvents = [] // If there are more markers in the opening, add them before.\n\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [\n ['enter', events[open][1], context],\n ['exit', events[open][1], context]\n ])\n } // Opening.\n\n nextEvents = push(nextEvents, [\n ['enter', group, context],\n ['enter', openingSequence, context],\n ['exit', openingSequence, context],\n ['enter', text, context]\n ]) // Between.\n\n nextEvents = push(\n nextEvents,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n nextEvents = push(nextEvents, [\n ['exit', text, context],\n ['enter', closingSequence, context],\n ['exit', closingSequence, context],\n ['exit', group, context]\n ]) // If there are more markers in the closing, add them after.\n\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2\n nextEvents = push(nextEvents, [\n ['enter', events[index][1], context],\n ['exit', events[index][1], context]\n ])\n } else {\n offset = 0\n }\n\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - offset - 2\n break\n }\n }\n }\n } // Remove remaining sequences.\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null\n const previous = this.previous\n const before = classifyCharacter(previous)\n /** @type {NonNullable<Code>} */\n\n let marker\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('attentionSequence')\n marker = code\n return sequence(code)\n }\n /** @type {State} */\n\n function sequence(code) {\n if (code === marker) {\n effects.consume(code)\n return sequence\n }\n\n const token = effects.exit('attentionSequence')\n const after = classifyCharacter(code)\n const open =\n !after || (after === 2 && before) || attentionMarkers.includes(code)\n const close =\n !before || (before === 2 && after) || attentionMarkers.includes(previous)\n token._open = Boolean(marker === 42 ? open : open && (before || !close))\n token._close = Boolean(marker === 42 ? close : close && (after || !open))\n return ok(code)\n }\n}\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! Its not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {void}\n */\n\nfunction movePoint(point, offset) {\n point.column += offset\n point.offset += offset\n point._bufferIndex += offset\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiAtext,\n asciiControl\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 1\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('autolink')\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.enter('autolinkProtocol')\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return schemeOrEmailAtext\n }\n\n return asciiAtext(code) ? emailAtext(code) : nok(code)\n }\n /** @type {State} */\n\n function schemeOrEmailAtext(code) {\n return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)\n ? schemeInsideOrEmailAtext(code)\n : emailAtext(code)\n }\n /** @type {State} */\n\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code)\n return urlInside\n }\n\n if (\n (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) &&\n size++ < 32\n ) {\n effects.consume(code)\n return schemeInsideOrEmailAtext\n }\n\n return emailAtext(code)\n }\n /** @type {State} */\n\n function urlInside(code) {\n if (code === 62) {\n effects.exit('autolinkProtocol')\n return end(code)\n }\n\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code)\n }\n\n effects.consume(code)\n return urlInside\n }\n /** @type {State} */\n\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (asciiAtext(code)) {\n effects.consume(code)\n return emailAtext\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code)\n }\n /** @type {State} */\n\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code)\n size = 0\n return emailAtSignOrDot\n }\n\n if (code === 62) {\n // Exit, then change the type.\n effects.exit('autolinkProtocol').type = 'autolinkEmail'\n return end(code)\n }\n\n return emailValue(code)\n }\n /** @type {State} */\n\n function emailValue(code) {\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n effects.consume(code)\n return code === 45 ? emailValue : emailLabel\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('autolinkMarker')\n effects.consume(code)\n effects.exit('autolinkMarker')\n effects.exit('autolink')\n return ok\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this\n /** @type {NonNullable<Code>|undefined} */\n\n let marker\n /** @type {string} */\n\n let buffer\n /** @type {number} */\n\n let index\n /** @type {State} */\n\n let returnState\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('htmlText')\n effects.enter('htmlTextData')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (code === 33) {\n effects.consume(code)\n return declarationOpen\n }\n\n if (code === 47) {\n effects.consume(code)\n return tagCloseStart\n }\n\n if (code === 63) {\n effects.consume(code)\n return instruction\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentOpen\n }\n\n if (code === 91) {\n effects.consume(code)\n buffer = 'CDATA['\n index = 0\n return cdataOpen\n }\n\n if (asciiAlpha(code)) {\n effects.consume(code)\n return declaration\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentOpen(code) {\n if (code === 45) {\n effects.consume(code)\n return commentStart\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function commentStart(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentStartDash\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function commentStartDash(code) {\n if (code === null || code === 62) {\n return nok(code)\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function comment(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 45) {\n effects.consume(code)\n return commentClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = comment\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return comment\n }\n /** @type {State} */\n\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code)\n return end\n }\n\n return comment(code)\n }\n /** @type {State} */\n\n function cdataOpen(code) {\n if (code === buffer.charCodeAt(index++)) {\n effects.consume(code)\n return index === buffer.length ? cdata : cdataOpen\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function cdata(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = cdata\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return cdata\n }\n /** @type {State} */\n\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function cdataEnd(code) {\n if (code === 62) {\n return end(code)\n }\n\n if (code === 93) {\n effects.consume(code)\n return cdataEnd\n }\n\n return cdata(code)\n }\n /** @type {State} */\n\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = declaration\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return declaration\n }\n /** @type {State} */\n\n function instruction(code) {\n if (code === null) {\n return nok(code)\n }\n\n if (code === 63) {\n effects.consume(code)\n return instructionClose\n }\n\n if (markdownLineEnding(code)) {\n returnState = instruction\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return instruction\n }\n /** @type {State} */\n\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code)\n }\n /** @type {State} */\n\n function tagCloseStart(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagClose(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagClose\n }\n\n return tagCloseBetween(code)\n }\n /** @type {State} */\n\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagCloseBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpen(code) {\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code)\n return tagOpen\n }\n\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code)\n return end\n }\n\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenBetween\n }\n\n return end(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeName(code) {\n if (\n code === 45 ||\n code === 46 ||\n code === 58 ||\n code === 95 ||\n asciiAlphanumeric(code)\n ) {\n effects.consume(code)\n return tagOpenAttributeName\n }\n\n return tagOpenAttributeNameAfter(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeNameAfter\n }\n\n return tagOpenBetween(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueBefore(code) {\n if (\n code === null ||\n code === 60 ||\n code === 61 ||\n code === 62 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 34 || code === 39) {\n effects.consume(code)\n marker = code\n return tagOpenAttributeValueQuoted\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore\n return atLineEnding(code)\n }\n\n if (markdownSpace(code)) {\n effects.consume(code)\n return tagOpenAttributeValueBefore\n }\n\n effects.consume(code)\n marker = undefined\n return tagOpenAttributeValueUnquoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code)\n return tagOpenAttributeValueQuotedAfter\n }\n\n if (code === null) {\n return nok(code)\n }\n\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted\n return atLineEnding(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueQuoted\n }\n /** @type {State} */\n\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function tagOpenAttributeValueUnquoted(code) {\n if (\n code === null ||\n code === 34 ||\n code === 39 ||\n code === 60 ||\n code === 61 ||\n code === 96\n ) {\n return nok(code)\n }\n\n if (code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code)\n }\n\n effects.consume(code)\n return tagOpenAttributeValueUnquoted\n } // We cant have blank lines in content, so no need to worry about empty\n // tokens.\n\n /** @type {State} */\n\n function atLineEnding(code) {\n effects.exit('htmlTextData')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(\n effects,\n afterPrefix,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )\n }\n /** @type {State} */\n\n function afterPrefix(code) {\n effects.enter('htmlTextData')\n return returnState(code)\n }\n /** @type {State} */\n\n function end(code) {\n if (code === 62) {\n effects.consume(code)\n effects.exit('htmlTextData')\n effects.exit('htmlText')\n return ok\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {labelEnd} from './label-end.js'\n/** @type {Construct} */\n\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('labelLink')\n effects.enter('labelMarker')\n effects.consume(code)\n effects.exit('labelMarker')\n effects.exit('labelLink')\n return after\n }\n /** @type {State} */\n\n function after(code) {\n /* To do: remove in the future once weve switched from\n * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n * which doesnt need this */\n\n /* Hidden footnotes hook. */\n\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs\n ? nok(code)\n : ok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('hardBreakEscape')\n effects.enter('escapeMarker')\n effects.consume(code)\n return open\n }\n /** @type {State} */\n\n function open(code) {\n if (markdownLineEnding(code)) {\n effects.exit('escapeMarker')\n effects.exit('hardBreakEscape')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').State} State\n */\nimport {markdownLineEnding} from 'micromark-util-character'\n\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n}\n/** @type {Resolver} */\n\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4\n let headEnterIndex = 3\n /** @type {number} */\n\n let index\n /** @type {number|undefined} */\n\n let enter // If we start and end with an EOL or a space.\n\n if (\n (events[headEnterIndex][1].type === 'lineEnding' ||\n events[headEnterIndex][1].type === 'space') &&\n (events[tailExitIndex][1].type === 'lineEnding' ||\n events[tailExitIndex][1].type === 'space')\n ) {\n index = headEnterIndex // And we have data.\n\n while (++index < tailExitIndex) {\n if (events[index][1].type === 'codeTextData') {\n // Then we have padding.\n events[headEnterIndex][1].type = 'codeTextPadding'\n events[tailExitIndex][1].type = 'codeTextPadding'\n headEnterIndex += 2\n tailExitIndex -= 2\n break\n }\n }\n } // Merge adjacent spaces and data.\n\n index = headEnterIndex - 1\n tailExitIndex++\n\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') {\n enter = index\n }\n } else if (\n index === tailExitIndex ||\n events[index][1].type === 'lineEnding'\n ) {\n events[enter][1].type = 'codeTextData'\n\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end\n events.splice(enter + 2, index - enter - 2)\n tailExitIndex -= index - enter - 2\n index = enter + 2\n }\n\n enter = undefined\n }\n }\n\n return events\n}\n/** @type {Previous} */\n\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return (\n code !== 96 ||\n this.events[this.events.length - 1][1].type === 'characterEscape'\n )\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this\n let sizeOpen = 0\n /** @type {number} */\n\n let size\n /** @type {Token} */\n\n let token\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('codeText')\n effects.enter('codeTextSequence')\n return openingSequence(code)\n }\n /** @type {State} */\n\n function openingSequence(code) {\n if (code === 96) {\n effects.consume(code)\n sizeOpen++\n return openingSequence\n }\n\n effects.exit('codeTextSequence')\n return gap(code)\n }\n /** @type {State} */\n\n function gap(code) {\n // EOF.\n if (code === null) {\n return nok(code)\n } // Closing fence?\n // Could also be data.\n\n if (code === 96) {\n token = effects.enter('codeTextSequence')\n size = 0\n return closingSequence(code)\n } // Tabs dont work, and virtual spaces dont make sense.\n\n if (code === 32) {\n effects.enter('space')\n effects.consume(code)\n effects.exit('space')\n return gap\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return gap\n } // Data.\n\n effects.enter('codeTextData')\n return data(code)\n } // In code.\n\n /** @type {State} */\n\n function data(code) {\n if (\n code === null ||\n code === 32 ||\n code === 96 ||\n markdownLineEnding(code)\n ) {\n effects.exit('codeTextData')\n return gap(code)\n }\n\n effects.consume(code)\n return data\n } // Closing fence.\n\n /** @type {State} */\n\n function closingSequence(code) {\n // More.\n if (code === 96) {\n effects.consume(code)\n size++\n return closingSequence\n } // Done!\n\n if (size === sizeOpen) {\n effects.exit('codeTextSequence')\n effects.exit('codeText')\n return ok(code)\n } // More or less accents: mark as data.\n\n token.type = 'codeTextData'\n return data(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n/** @type {Extension['document']} */\n\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n/** @type {Extension['contentInitial']} */\n\nexport const contentInitial = {\n [91]: definition\n}\n/** @type {Extension['flowInitial']} */\n\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n/** @type {Extension['flow']} */\n\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n/** @type {Extension['string']} */\n\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n/** @type {Extension['text']} */\n\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n/** @type {Extension['insideSpan']} */\n\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n/** @type {Extension['attentionMarkers']} */\n\nexport const attentionMarkers = {\n null: [42, 95]\n}\n/** @type {Extension['disable']} */\n\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {boolean} [end=false]\n * @returns {Array<Chunk>}\n */\nconst search = /[\\0\\t\\n\\r]/g\n/**\n * @returns {Preprocessor}\n */\n\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean|undefined} */\n\n let start = true\n /** @type {boolean|undefined} */\n\n let atCarriageReturn\n return preprocessor\n /** @type {Preprocessor} */\n\n function preprocessor(value, encoding, end) {\n /** @type {Array<Chunk>} */\n const chunks = []\n /** @type {RegExpMatchArray|null} */\n\n let match\n /** @type {number} */\n\n let next\n /** @type {number} */\n\n let startPosition\n /** @type {number} */\n\n let endPosition\n /** @type {Code} */\n\n let code // @ts-expect-error `Buffer` does allow an encoding.\n\n value = buffer + value.toString(encoding)\n startPosition = 0\n buffer = ''\n\n if (start) {\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n\n start = undefined\n }\n\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n\n while (column++ < next) chunks.push(-1)\n\n break\n }\n\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n\n startPosition = endPosition + 1\n }\n\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base)\n\n if (\n // C0 except for HT, LF, FF, CR, space\n code < 9 ||\n code === 11 ||\n (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls.\n (code > 126 && code < 160) || // Lone high surrogates and low surrogates.\n (code > 55295 && code < 57344) || // Noncharacters.\n (code > 64975 && code < 65008) ||\n (code & 65535) === 65535 ||\n (code & 65535) === 65534 || // Out of range\n code > 1114111\n ) {\n return '\\uFFFD'\n }\n\n return String.fromCharCode(code)\n}\n","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n/**\n * Utility to decode markdown strings (which occur in places such as fenced\n * code info strings, destinations, labels, and titles).\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * @returns {string}\n */\n\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\n\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n } // Reference.\n\n const head = $2.charCodeAt(0)\n\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n * @typedef {import('unist').Parent} UnistParent\n * @typedef {import('unist').Point} Point\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {Extract<Node, UnistParent>} Parent\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {UnistParent & {type: 'fragment', children: Array<PhrasingContent>}} Fragment\n */\n\n/**\n * @typedef _CompileDataFields\n * @property {boolean|undefined} expectingFirstListItemValue\n * @property {boolean|undefined} flowCodeInside\n * @property {boolean|undefined} setextHeadingSlurpLineEnding\n * @property {boolean|undefined} atHardBreak\n * @property {'collapsed'|'full'} referenceType\n * @property {boolean|undefined} inReference\n * @property {'characterReferenceMarkerHexadecimal'|'characterReferenceMarkerNumeric'} characterReferenceType\n *\n * @typedef {Record<string, unknown> & Partial<_CompileDataFields>} CompileData\n *\n * @typedef {(tree: Root) => Root|void} Transform\n * @typedef {(this: CompileContext, token: Token) => void} Handle\n * @typedef {Record<string, Handle>} Handles\n * Token types mapping to handles\n * @typedef {Record<string, Record<string, unknown>|Array<unknown>> & {canContainEols: Array<string>, transforms: Array<Transform>, enter: Handles, exit: Handles}} NormalizedExtension\n * @typedef {Partial<NormalizedExtension>} Extension\n * An mdast extension changes how markdown tokens are turned into mdast.\n *\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token|undefined, right: Token) => void} OnEnterError\n * @typedef {(this: Omit<CompileContext, 'sliceSerialize'>, left: Token, right: Token) => void} OnExitError\n *\n * @typedef CompileContext\n * mdast compiler context\n * @property {Array<Node | Fragment>} stack\n * @property {Array<[Token, OnEnterError|undefined]>} tokenStack\n * @property {(key: string, value?: unknown) => void} setData\n * Set data into the key-value store.\n * @property {<K extends string>(key: K) => CompileData[K]} getData\n * Get data from the key-value store.\n * @property {(this: CompileContext) => void} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {<N extends Node>(this: CompileContext, node: N, token: Token, onError?: OnEnterError) => N} enter\n * Enter a token.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => Node} exit\n * Exit a token.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {NormalizedExtension} config\n * Configuration.\n *\n * @typedef {{mdastExtensions?: Array<Extension|Array<Extension>>}} FromMarkdownOptions\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n */\nimport {toString} from 'mdast-util-to-string'\nimport {parse} from 'micromark/lib/parse.js'\nimport {preprocess} from 'micromark/lib/preprocess.js'\nimport {postprocess} from 'micromark/lib/postprocess.js'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n/**\n * @param value Markdown to parse (`string` or `Buffer`).\n * @param [encoding] Character encoding to understand `value` as when its a `Buffer` (`string`, default: `'utf8'`).\n * @param [options] Configuration\n */\n\nexport const fromMarkdown =\n /**\n * @type {(\n * ((value: Value, encoding: Encoding, options?: Options) => Root) &\n * ((value: Value, options?: Options) => Root)\n * )}\n */\n\n /**\n * @param {Value} value\n * @param {Encoding} [encoding]\n * @param {Options} [options]\n * @returns {Root}\n */\n function (value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n }\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options} [options]\n */\n\nfunction compiler(options = {}) {\n /** @type {NormalizedExtension} */\n // @ts-expect-error: our base has all required fields, so the result will too.\n const config = configure(\n {\n transforms: [],\n canContainEols: [\n 'emphasis',\n 'fragment',\n 'heading',\n 'paragraph',\n 'strong'\n ],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n },\n options.mdastExtensions || []\n )\n /** @type {CompileData} */\n\n const data = {}\n return compile\n /**\n * @param {Array<Event>} events\n * @returns {Root}\n */\n\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {CompileContext['stack']} */\n\n const stack = [tree]\n /** @type {CompileContext['tokenStack']} */\n\n const tokenStack = []\n /** @type {Array<number>} */\n\n const listStack = []\n /** @type {Omit<CompileContext, 'sliceSerialize'>} */\n\n const context = {\n stack,\n tokenStack,\n config,\n enter,\n exit,\n buffer,\n resume,\n setData,\n getData\n }\n let index = -1\n\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n const handler = config[events[index][0]]\n\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n if (tokenStack.length > 0) {\n const tail = tokenStack[tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n } // Figure out `root` position.\n\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n index = -1\n\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n\n return tree\n }\n /**\n * @param {Array<Event>} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token|undefined} */\n\n let listItem\n /** @type {number|undefined} */\n\n let lineIndex\n /** @type {number|undefined} */\n\n let firstBlankLineIndex\n /** @type {boolean|undefined} */\n\n let atMarker\n\n while (++index <= length) {\n const event = events[index]\n\n if (\n event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered' ||\n event[1].type === 'blockQuote'\n ) {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n\n atMarker = undefined\n } else if (event[1].type === 'lineEndingBlank') {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n\n atMarker = undefined\n }\n } else if (\n event[1].type === 'linePrefix' ||\n event[1].type === 'listItemValue' ||\n event[1].type === 'listItemMarker' ||\n event[1].type === 'listItemPrefix' ||\n event[1].type === 'listItemPrefixWhitespace'\n ) {\n // Empty.\n } else {\n atMarker = undefined\n }\n\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n // @ts-expect-error Patched.\n listItem._spread = true\n } // Fix position.\n\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n } // Create a new list item.\n\n if (event[1].type === 'listItemPrefix') {\n listItem = {\n type: 'listItem',\n // @ts-expect-error Patched\n _spread: false,\n start: Object.assign({}, event[1].start)\n } // @ts-expect-error: `listItem` is most definitely defined, TS...\n\n events.splice(index, 0, ['enter', listItem, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n } // @ts-expect-error Patched.\n\n events[start][1]._spread = listSpread\n return length\n }\n /**\n * @type {CompileContext['setData']}\n * @param [value]\n */\n\n function setData(key, value) {\n data[key] = value\n }\n /**\n * @type {CompileContext['getData']}\n * @template {string} K\n * @param {K} key\n * @returns {CompileData[K]}\n */\n\n function getData(key) {\n return data[key]\n }\n /**\n * @param {Point} d\n * @returns {Point}\n */\n\n function point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n }\n /**\n * @param {(token: Token) => Node} create\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function opener(create, and) {\n return open\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n /** @type {CompileContext['buffer']} */\n\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n /**\n * @type {CompileContext['enter']}\n * @template {Node} N\n * @this {CompileContext}\n * @param {N} node\n * @param {Token} token\n * @param {OnEnterError} [errorHandler]\n * @returns {N}\n */\n\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n // @ts-expect-error: Assume `Node` can exist as a child of `parent`.\n parent.children.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler]) // @ts-expect-error: `end` will be patched later.\n\n node.position = {\n start: point(token.start)\n }\n return node\n }\n /**\n * @param {Handle} [and]\n * @returns {Handle}\n */\n\n function closer(and) {\n return close\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {void}\n */\n\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n /**\n * @type {CompileContext['exit']}\n * @this {CompileContext}\n * @param {Token} token\n * @param {OnExitError} [onExitError]\n * @returns {Node}\n */\n\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): its not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n\n node.position.end = point(token.end)\n return node\n }\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n\n function resume() {\n return toString(this.stack.pop())\n } //\n // Handlers.\n //\n\n /** @type {Handle} */\n\n function onenterlistordered() {\n setData('expectingFirstListItemValue', true)\n }\n /** @type {Handle} */\n\n function onenterlistitemvalue(token) {\n if (getData('expectingFirstListItemValue')) {\n const ancestor =\n /** @type {List} */\n this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n setData('expectingFirstListItemValue')\n }\n }\n /** @type {Handle} */\n\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.lang = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.meta = data\n }\n /** @type {Handle} */\n\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (getData('flowCodeInside')) return\n this.buffer()\n setData('flowCodeInside', true)\n }\n /** @type {Handle} */\n\n function onexitcodefenced() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n setData('flowCodeInside')\n }\n /** @type {Handle} */\n\n function onexitcodeindented() {\n const data = this.resume()\n const node =\n /** @type {Code} */\n this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n /** @type {Handle} */\n\n function onexitdefinitionlabelstring(token) {\n // Discard label, use the source content instead.\n const label = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Definition} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitatxheadingsequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n /** @type {Handle} */\n\n function onexitsetextheadingtext() {\n setData('setextHeadingSlurpLineEnding', true)\n }\n /** @type {Handle} */\n\n function onexitsetextheadinglinesequence(token) {\n const node =\n /** @type {Heading} */\n this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2\n }\n /** @type {Handle} */\n\n function onexitsetextheading() {\n setData('setextHeadingSlurpLineEnding')\n }\n /** @type {Handle} */\n\n function onenterdata(token) {\n const parent =\n /** @type {Parent} */\n this.stack[this.stack.length - 1]\n /** @type {Node} */\n\n let tail = parent.children[parent.children.length - 1]\n\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text() // @ts-expect-error: well add `end` later.\n\n tail.position = {\n start: point(token.start)\n } // @ts-expect-error: Assume `parent` accepts `text`.\n\n parent.children.push(tail)\n }\n\n this.stack.push(tail)\n }\n /** @type {Handle} */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n\n // If were at a hard break, include the line ending in there.\n if (getData('atHardBreak')) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n setData('atHardBreak')\n return\n }\n\n if (\n !getData('setextHeadingSlurpLineEnding') &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n /** @type {Handle} */\n\n function onexithardbreak() {\n setData('atHardBreak', true)\n }\n /** @type {Handle} */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexithtmltext() {\n const data = this.resume()\n const node =\n /** @type {HTML} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitcodetext() {\n const data = this.resume()\n const node =\n /** @type {InlineCode} */\n this.stack[this.stack.length - 1]\n node.value = data\n }\n /** @type {Handle} */\n\n function onexitlink() {\n const context =\n /** @type {Link & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitimage() {\n const context =\n /** @type {Image & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // To do: clean.\n\n if (getData('inReference')) {\n context.type += 'Reference' // @ts-expect-error: mutate.\n\n context.referenceType = getData('referenceType') || 'shortcut' // @ts-expect-error: mutate.\n\n delete context.url\n delete context.title\n } else {\n // @ts-expect-error: mutate.\n delete context.identifier // @ts-expect-error: mutate.\n\n delete context.label\n }\n\n setData('referenceType')\n }\n /** @type {Handle} */\n\n function onexitlabeltext(token) {\n const ancestor =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 2]\n const string = this.sliceSerialize(token)\n ancestor.label = decodeString(string)\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n /** @type {Handle} */\n\n function onexitlabel() {\n const fragment =\n /** @type {Fragment} */\n this.stack[this.stack.length - 1]\n const value = this.resume()\n const node =\n /** @type {(Link|Image) & {identifier: string, label: string}} */\n this.stack[this.stack.length - 1] // Assume a reference.\n\n setData('inReference', true)\n\n if (node.type === 'link') {\n // @ts-expect-error: Assume static phrasing content.\n node.children = fragment.children\n } else {\n node.alt = value\n }\n }\n /** @type {Handle} */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.url = data\n }\n /** @type {Handle} */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node =\n /** @type {Link|Image} */\n this.stack[this.stack.length - 1]\n node.title = data\n }\n /** @type {Handle} */\n\n function onexitresource() {\n setData('inReference')\n }\n /** @type {Handle} */\n\n function onenterreference() {\n setData('referenceType', 'collapsed')\n }\n /** @type {Handle} */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node =\n /** @type {LinkReference|ImageReference} */\n this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n setData('referenceType', 'full')\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencemarker(token) {\n setData('characterReferenceType', token.type)\n }\n /** @type {Handle} */\n\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = getData('characterReferenceType')\n /** @type {string} */\n\n let value\n\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n setData('characterReferenceType')\n } else {\n // @ts-expect-error `decodeNamedCharacterReference` can return false for\n // invalid named character references, but everything weve tokenized is\n // valid.\n value = decodeNamedCharacterReference(data)\n }\n\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n /** @type {Handle} */\n\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n /** @type {Handle} */\n\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node =\n /** @type {Link} */\n this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n } //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n /** @returns {Code} */\n\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n /** @returns {InlineCode} */\n\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n /** @returns {Definition} */\n\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n /** @returns {Emphasis} */\n\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n /** @returns {Heading} */\n\n function heading() {\n // @ts-expect-error `depth` will be set later.\n return {\n type: 'heading',\n depth: undefined,\n children: []\n }\n }\n /** @returns {Break} */\n\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n /** @returns {HTML} */\n\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n /** @returns {Image} */\n\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n /** @returns {Link} */\n\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {List}\n */\n\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n // @ts-expect-error Patched.\n spread: token._spread,\n children: []\n }\n }\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n\n function listItem(token) {\n return {\n type: 'listItem',\n // @ts-expect-error Patched.\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n /** @returns {Paragraph} */\n\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n /** @returns {Strong} */\n\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n /** @returns {Text} */\n\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n /** @returns {ThematicBreak} */\n\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n/**\n * @param {Extension} combined\n * @param {Array<Extension|Array<Extension>>} extensions\n * @returns {Extension}\n */\n\nfunction configure(combined, extensions) {\n let index = -1\n\n while (++index < extensions.length) {\n const value = extensions[index]\n\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n\n return combined\n}\n/**\n * @param {Extension} combined\n * @param {Extension} extension\n * @returns {void}\n */\n\nfunction extension(combined, extension) {\n /** @type {string} */\n let key\n\n for (key in extension) {\n if (own.call(extension, key)) {\n const list = key === 'canContainEols' || key === 'transforms'\n const maybe = own.call(combined, key) ? combined[key] : undefined\n /* c8 ignore next */\n\n const left = maybe || (combined[key] = list ? [] : {})\n const right = extension[key]\n\n if (right) {\n if (list) {\n // @ts-expect-error: `left` is an array.\n combined[key] = [...left, ...right]\n } else {\n Object.assign(left, right)\n }\n }\n }\n }\n}\n/** @type {OnEnterError} */\n\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {subtokenize} from 'micromark-util-subtokenize'\n/**\n * @param {Array<Event>} events\n * @returns {Array<Event>}\n */\n\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').Create} Create\n */\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {text, string} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n/**\n * @param {ParseOptions} [options]\n * @returns {ParseContext}\n */\n\nexport function parse(options = {}) {\n /** @type {FullNormalizedExtension} */\n // @ts-expect-error `defaultConstructs` is full, so the result will be too.\n const constructs = combineExtensions(\n // @ts-expect-error Same as above.\n [defaultConstructs].concat(options.extensions || [])\n )\n /** @type {ParseContext} */\n\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n /**\n * @param {InitialConstruct} initial\n */\n\n function create(initial) {\n return creator\n /** @type {Create} */\n\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","import remarkParse from './lib/index.js'\n\nexport default remarkParse\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */\nexport default function remarkParse(options) {\n /** @type {import('unified').ParserFunction<Root>} */\n const parser = (doc) => {\n // Assume options.\n const settings = /** @type {Options} */ (this.data('settings'))\n\n return fromMarkdown(\n doc,\n Object.assign({}, settings, options, {\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: this.data('micromarkExtensions') || [],\n mdastExtensions: this.data('fromMarkdownExtensions') || []\n })\n )\n }\n\n Object.assign(this, {Parser: parser})\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist').Literal} Literal\n * @typedef {Object.<string, unknown>} Props\n * @typedef {Array.<Node>|string} ChildrenOrValue\n *\n * @typedef {(<T extends string, P extends Record<string, unknown>, C extends Node[]>(type: T, props: P, children: C) => {type: T, children: C} & P)} BuildParentWithProps\n * @typedef {(<T extends string, P extends Record<string, unknown>>(type: T, props: P, value: string) => {type: T, value: string} & P)} BuildLiteralWithProps\n * @typedef {(<T extends string, P extends Record<string, unknown>>(type: T, props: P) => {type: T} & P)} BuildVoidWithProps\n * @typedef {(<T extends string, C extends Node[]>(type: T, children: C) => {type: T, children: C})} BuildParent\n * @typedef {(<T extends string>(type: T, value: string) => {type: T, value: string})} BuildLiteral\n * @typedef {(<T extends string>(type: T) => {type: T})} BuildVoid\n */\n\nexport var u = /**\n * @type {BuildVoid & BuildVoidWithProps & BuildLiteral & BuildLiteralWithProps & BuildParent & BuildParentWithProps}\n */ (\n /**\n * @param {string} type Type of node\n * @param {Props|ChildrenOrValue} [props] Additional properties for node (or `children` or `value`)\n * @param {ChildrenOrValue} [value] `children` or `value` of node\n * @returns {Node}\n */\n function (type, props, value) {\n /** @type {Node} */\n var node = {type: String(type)}\n\n if (\n (value === undefined || value === null) &&\n (typeof props === 'string' || Array.isArray(props))\n ) {\n value = props\n } else {\n Object.assign(node, props)\n }\n\n if (Array.isArray(value)) {\n node.children = value\n } else if (value !== undefined && value !== null) {\n node.value = String(value)\n }\n\n return node\n }\n)\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n *\n * @typedef {string} Type\n * @typedef {Object<string, unknown>} Props\n *\n * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.<Type|Props|TestFunctionAnything>} Test\n */\n\n/**\n * Check if a node passes a test\n *\n * @callback TestFunctionAnything\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean|void}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} X\n * @callback TestFunctionPredicate\n * @param {Node} node\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is X}\n */\n\n/**\n * @callback AssertAnything\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {boolean}\n */\n\n/**\n * Check if a node passes a certain node test\n *\n * @template {Node} Y\n * @callback AssertPredicate\n * @param {unknown} [node]\n * @param {number|null|undefined} [index]\n * @param {Parent|null|undefined} [parent]\n * @returns {node is Y}\n */\n\nexport const is =\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @type {(\n * (<T extends Node>(node: unknown, test: T['type']|Partial<T>|TestFunctionPredicate<T>|Array.<T['type']|Partial<T>|TestFunctionPredicate<T>>, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => node is T) &\n * ((node?: unknown, test?: Test, index?: number|null|undefined, parent?: Parent|null|undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * Check if a node passes a test.\n * When a `parent` node is known the `index` of node should also be given.\n *\n * @param {unknown} [node] Node to check\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * When `array`, checks any one of the subtests pass.\n * @param {number|null|undefined} [index] Position of `node` in `parent`\n * @param {Parent|null|undefined} [parent] Parent of `node`\n * @param {unknown} [context] Context object to invoke `test` with\n * @returns {boolean} Whether test passed and `node` is a `Node` (object with `type` set to non-empty `string`).\n */\n // eslint-disable-next-line max-params\n function is(node, test, index, parent, context) {\n const check = convert(test)\n\n if (\n index !== undefined &&\n index !== null &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite index')\n }\n\n if (\n parent !== undefined &&\n parent !== null &&\n (!is(parent) || !parent.children)\n ) {\n throw new Error('Expected parent node')\n }\n\n if (\n (parent === undefined || parent === null) !==\n (index === undefined || index === null)\n ) {\n throw new Error('Expected both parent and index')\n }\n\n // @ts-expect-error Looks like a node.\n return node && node.type && typeof node.type === 'string'\n ? Boolean(check.call(context, node, index, parent))\n : false\n }\n )\n\nexport const convert =\n /**\n * @type {(\n * (<T extends Node>(test: T['type']|Partial<T>|TestFunctionPredicate<T>) => AssertPredicate<T>) &\n * ((test?: Test) => AssertAnything)\n * )}\n */\n (\n /**\n * Generate an assertion from a check.\n * @param {Test} [test]\n * When nullish, checks if `node` is a `Node`.\n * When `string`, works like passing `function (node) {return node.type === test}`.\n * When `function` checks if function passed the node is true.\n * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values.\n * When `array`, checks any one of the subtests pass.\n * @returns {AssertAnything}\n */\n function (test) {\n if (test === undefined || test === null) {\n return ok\n }\n\n if (typeof test === 'string') {\n return typeFactory(test)\n }\n\n if (typeof test === 'object') {\n return Array.isArray(test) ? anyFactory(test) : propsFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or object as test')\n }\n )\n/**\n * @param {Array.<Type|Props|TestFunctionAnything>} tests\n * @returns {AssertAnything}\n */\nfunction anyFactory(tests) {\n /** @type {Array.<AssertAnything>} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convert(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @param {unknown[]} parameters\n * @returns {boolean}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].call(this, ...parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Utility to assert each property in `test` is represented in `node`, and each\n * values are strictly equal.\n *\n * @param {Props} check\n * @returns {AssertAnything}\n */\nfunction propsFactory(check) {\n return castFactory(all)\n\n /**\n * @param {Node} node\n * @returns {boolean}\n */\n function all(node) {\n /** @type {string} */\n let key\n\n for (key in check) {\n // @ts-expect-error: hush, it sure works as an index.\n if (node[key] !== check[key]) return false\n }\n\n return true\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given nodes type\n * for said string.\n *\n * @param {Type} check\n * @returns {AssertAnything}\n */\nfunction typeFactory(check) {\n return castFactory(type)\n\n /**\n * @param {Node} node\n */\n function type(node) {\n return node && node.type === check\n }\n}\n\n/**\n * Utility to convert a string into a function which checks a given nodes type\n * for said string.\n * @param {TestFunctionAnything} check\n * @returns {AssertAnything}\n */\nfunction castFactory(check) {\n return assertion\n\n /**\n * @this {unknown}\n * @param {Array.<unknown>} parameters\n * @returns {boolean}\n */\n function assertion(...parameters) {\n // @ts-expect-error: spreading is fine.\n return Boolean(check.call(this, ...parameters))\n }\n}\n\n// Utility to return true.\nfunction ok() {\n return true\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('./complex-types.js').Action} Action\n * @typedef {import('./complex-types.js').Index} Index\n * @typedef {import('./complex-types.js').ActionTuple} ActionTuple\n * @typedef {import('./complex-types.js').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {convert} from 'unist-util-is'\nimport {color} from './color.js'\n\n/**\n * Continue traversing as normal\n */\nexport const CONTINUE = true\n/**\n * Do not traverse this nodes children\n */\nexport const SKIP = 'skip'\n/**\n * Stop traversing immediately\n */\nexport const EXIT = false\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n * Tree to walk\n * @param [test]\n * `unist-util-is`-compatible test\n * @param visitor\n * Function called for nodes that pass `test`.\n * @param [reverse=false]\n * Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visitParents =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types.js').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types.js').Visitor<Node>} visitor\n * @param {boolean} [reverse=false]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n // @ts-expect-error no visitor given, so `visitor` is test.\n visitor = test\n test = null\n }\n\n const is = convert(test)\n const step = reverse ? -1 : 1\n\n factory(tree, null, [])()\n\n /**\n * @param {Node} node\n * @param {number?} index\n * @param {Array<Parent>} parents\n */\n function factory(node, index, parents) {\n /** @type {Record<string, unknown>} */\n // @ts-expect-error: hush\n const value = typeof node === 'object' && node !== null ? node : {}\n /** @type {string|undefined} */\n let name\n\n if (typeof value.type === 'string') {\n name =\n typeof value.tagName === 'string'\n ? value.tagName\n : typeof value.name === 'string'\n ? value.name\n : undefined\n\n Object.defineProperty(visit, 'name', {\n value:\n 'node (' +\n color(value.type + (name ? '<' + name + '>' : '')) +\n ')'\n })\n }\n\n return visit\n\n function visit() {\n /** @type {ActionTuple} */\n let result = []\n /** @type {ActionTuple} */\n let subresult\n /** @type {number} */\n let offset\n /** @type {Array<Parent>} */\n let grandparents\n\n if (!test || is(node, index, parents[parents.length - 1] || null)) {\n result = toResult(visitor(node, parents))\n\n if (result[0] === EXIT) {\n return result\n }\n }\n\n // @ts-expect-error looks like a parent.\n if (node.children && result[0] !== SKIP) {\n // @ts-expect-error looks like a parent.\n offset = (reverse ? node.children.length : -1) + step\n // @ts-expect-error looks like a parent.\n grandparents = parents.concat(node)\n\n // @ts-expect-error looks like a parent.\n while (offset > -1 && offset < node.children.length) {\n // @ts-expect-error looks like a parent.\n subresult = factory(node.children[offset], offset, grandparents)()\n\n if (subresult[0] === EXIT) {\n return subresult\n }\n\n offset =\n typeof subresult[1] === 'number' ? subresult[1] : offset + step\n }\n }\n\n return result\n }\n }\n }\n )\n\n/**\n * @param {VisitorResult} value\n * @returns {ActionTuple}\n */\nfunction toResult(value) {\n if (Array.isArray(value)) {\n return value\n }\n\n if (typeof value === 'number') {\n return [CONTINUE, value]\n }\n\n return [value]\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Parent} Parent\n * @typedef {import('unist-util-is').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n * @typedef {import('./complex-types.js').Visitor} Visitor\n */\n\nimport {visitParents} from 'unist-util-visit-parents'\n\n/**\n * Visit children of tree which pass test.\n *\n * @param tree\n * Tree to walk\n * @param [test]\n * `unist-util-is`-compatible test\n * @param visitor\n * Function called for nodes that pass `test`.\n * @param reverse\n * Traverse in reverse preorder (NRL) instead of preorder (NLR) (default).\n */\nexport const visit =\n /**\n * @type {(\n * (<Tree extends Node, Check extends Test>(tree: Tree, test: Check, visitor: import('./complex-types.js').BuildVisitor<Tree, Check>, reverse?: boolean) => void) &\n * (<Tree extends Node>(tree: Tree, visitor: import('./complex-types.js').BuildVisitor<Tree>, reverse?: boolean) => void)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {Test} test\n * @param {import('./complex-types.js').Visitor} visitor\n * @param {boolean} [reverse]\n */\n function (tree, test, visitor, reverse) {\n if (typeof test === 'function' && typeof visitor !== 'function') {\n reverse = visitor\n visitor = test\n test = null\n }\n\n visitParents(tree, test, overload, reverse)\n\n /**\n * @param {Node} node\n * @param {Array<Parent>} parents\n */\n function overload(node, parents) {\n const parent = parents[parents.length - 1]\n return visitor(\n node,\n parent ? parent.children.indexOf(node) : null,\n parent\n )\n }\n }\n )\n\nexport {CONTINUE, EXIT, SKIP} from 'unist-util-visit-parents'\n","/**\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Node} Node\n * @typedef {Record<string, unknown> & {type: string, position?: PositionLike|undefined}} NodeLike\n * @typedef {import('unist').Point} Point\n *\n * @typedef {Partial<Point>} PointLike\n *\n * @typedef PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n */\n\nexport const pointStart = point('start')\nexport const pointEnd = point('end')\n\n/**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {Position}\n */\nexport function position(node) {\n return {start: pointStart(node), end: pointEnd(node)}\n}\n\n/**\n * Get the positional info of `node`.\n *\n * @param {'start'|'end'} type\n */\nfunction point(type) {\n return point\n\n /**\n * Get the positional info of `node`.\n *\n * @param {NodeLike|Node} [node]\n * @returns {Point}\n */\n function point(node) {\n const point = (node && node.position && node.position[type]) || {}\n\n return {\n line: point.line || null,\n column: point.column || null,\n offset: point.offset > -1 ? point.offset : null\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Content} Node\n * @typedef {import('mdast').Definition} Definition\n */\n\nimport {visit} from 'unist-util-visit'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Find definitions in `node`.\n * Uses CommonMark precedence, which means that earlier definitions are\n * preferred over duplicate later definitions.\n *\n * @param {Node} node\n */\nexport function definitions(node) {\n /** @type {Record<string, Definition>} */\n const cache = Object.create(null)\n\n if (!node || !node.type) {\n throw new Error('mdast-util-definitions expected node')\n }\n\n visit(node, 'definition', (definition) => {\n const id = clean(definition.identifier)\n if (id && !own.call(cache, id)) {\n cache[id] = definition\n }\n })\n\n return definition\n\n /**\n * Get a node from the bound definition cache.\n *\n * @param {string} identifier\n * @returns {Definition|null}\n */\n function definition(identifier) {\n const id = clean(identifier)\n return id && own.call(cache, id) ? cache[id] : null\n }\n}\n\n/**\n * @param {string} [value]\n * @returns {string}\n */\nfunction clean(value) {\n return String(value || '').toUpperCase()\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('./index.js').H} H\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Transform an unknown node.\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction unknown(h, node) {\n const data = node.data || {}\n\n if (\n 'value' in node &&\n !(\n own.call(data, 'hName') ||\n own.call(data, 'hProperties') ||\n own.call(data, 'hChildren')\n )\n ) {\n return h.augment(node, u('text', node.value))\n }\n\n return h(node, 'div', all(h, node))\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nexport function one(h, node, parent) {\n const type = node && node.type\n /** @type {Handler} */\n let fn\n\n // Fail on non-nodes.\n if (!type) {\n throw new Error('Expected node, got `' + node + '`')\n }\n\n if (own.call(h.handlers, type)) {\n fn = h.handlers[type]\n } else if (h.passThrough && h.passThrough.includes(type)) {\n fn = returnNode\n } else {\n fn = h.unknownHandler\n }\n\n return (typeof fn === 'function' ? fn : unknown)(h, node, parent)\n}\n\n/**\n * @type {Handler}\n * @param {MdastNode} node\n */\nfunction returnNode(h, node) {\n // @ts-expect-error: Pass through custom node.\n return 'children' in node ? {...node, children: all(h, node)} : node\n}\n\n/**\n * @param {H} h\n * @param {MdastNode} parent\n */\nexport function all(h, parent) {\n /** @type {Array.<Content>} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n\n while (++index < nodes.length) {\n const result = one(h, nodes[index], parent)\n\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = result.value.replace(/^\\s+/, '')\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = head.value.replace(/^\\s+/, '')\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n}\n","/**\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n */\n\n/**\n * @type {Handler}\n * @param {ThematicBreak} [node]\n * @returns {Element}\n */\nexport function thematicBreak(h, node) {\n return h(node, 'hr')\n}\n","/**\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Wrap `nodes` with line feeds between each entry.\n * Optionally adds line feeds at the start and end.\n *\n * @param {Array.<Content>} nodes\n * @param {boolean} [loose=false]\n * @returns {Array.<Content>}\n */\nexport function wrap(nodes, loose) {\n /** @type {Array.<Content>} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push(u('text', '\\n'))\n }\n\n while (++index < nodes.length) {\n if (index) result.push(u('text', '\\n'))\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push(u('text', '\\n'))\n }\n\n return result\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {List} node\n * @returns {Element}\n */\nexport function list(h, node) {\n /** @type {Properties} */\n const props = {}\n const name = node.ordered ? 'ol' : 'ul'\n const items = all(h, node)\n let index = -1\n\n if (typeof node.start === 'number' && node.start !== 1) {\n props.start = node.start\n }\n\n // Like GitHub, add a class for custom styling.\n while (++index < items.length) {\n const item = items[index]\n\n if (\n item.type === 'element' &&\n item.tagName === 'li' &&\n item.properties &&\n Array.isArray(item.properties.className) &&\n item.properties.className.includes('task-list-item')\n ) {\n props.className = ['contains-task-list']\n break\n }\n }\n\n return h(node, name, props, wrap(items, true))\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {FootnoteReference} node\n */\nexport function footnoteReference(h, node) {\n const footnoteOrder = h.footnoteOrder\n const identifier = String(node.identifier)\n const index = footnoteOrder.indexOf(identifier)\n const marker = String(\n index === -1 ? footnoteOrder.push(identifier) : index + 1\n )\n\n return h(\n node,\n 'a',\n {\n href: '#fn' + marker,\n className: ['footnote-ref'],\n id: 'fnref' + marker,\n role: 'doc-noteref'\n },\n [h(node.position, 'sup', [u('text', marker)])]\n )\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('./index.js').Handler} Handler\n * @typedef {import('./index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from './traverse.js'\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @type {Handler}\n * @param {ImageReference|LinkReference} node\n * @returns {Content|Array.<Content>}\n */\nexport function revert(h, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return u('text', '![' + node.alt + suffix)\n }\n\n const contents = all(h, node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift(u('text', '['))\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push(u('text', suffix))\n }\n\n return contents\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {ListItem} node\n * @param {List} parent\n */\nexport function listItem(h, node, parent) {\n const result = all(h, node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const props = {}\n /** @type {Array.<Content>} */\n const wrapped = []\n\n if (typeof node.checked === 'boolean') {\n /** @type {Element} */\n let paragraph\n\n if (\n result[0] &&\n result[0].type === 'element' &&\n result[0].tagName === 'p'\n ) {\n paragraph = result[0]\n } else {\n paragraph = h(null, 'p', [])\n result.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift(u('text', ' '))\n }\n\n paragraph.children.unshift(\n h(null, 'input', {\n type: 'checkbox',\n checked: node.checked,\n disabled: true\n })\n )\n\n // According to github-markdown-css, this class hides bullet.\n // See: <https://github.com/sindresorhus/github-markdown-css>.\n props.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < result.length) {\n const child = result[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n wrapped.push(u('text', '\\n'))\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n wrapped.push(...child.children)\n } else {\n wrapped.push(child)\n }\n }\n\n const tail = result[result.length - 1]\n\n // Add a final eol.\n if (tail && (loose || !('tagName' in tail) || tail.tagName !== 'p')) {\n wrapped.push(u('text', '\\n'))\n }\n\n return h(node, 'li', props, wrapped)\n}\n\n/**\n * @param {List} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = node.spread\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n\n return Boolean(loose)\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === undefined || spread === null\n ? node.children.length > 1\n : spread\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {footnote} from './footnote.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n footnote,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n root,\n strong,\n table,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return null\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Blockquote} node\n */\nexport function blockquote(h, node) {\n return h(node, 'blockquote', wrap(all(h, node), true))\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Break} node\n * @returns {Array<Element|Text>}\n */\nexport function hardBreak(h, node) {\n return [h(node, 'br'), u('text', '\\n')]\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Code} node\n */\nexport function code(h, node) {\n const value = node.value ? node.value + '\\n' : ''\n // To do: next major, use `node.lang` w/o regex, the splittings been going\n // on for years in remark now.\n const lang = node.lang && node.lang.match(/^[^ \\t]+(?=[ \\t]|$)/)\n /** @type {Properties} */\n const props = {}\n\n if (lang) {\n props.className = ['language-' + lang]\n }\n\n const code = h(node, 'code', props, [u('text', value)])\n\n if (node.meta) {\n code.data = {meta: node.meta}\n }\n\n return h(node.position, 'pre', [code])\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Delete} node\n */\nexport function strikethrough(h, node) {\n return h(node, 'del', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Emphasis} node\n */\nexport function emphasis(h, node) {\n return h(node, 'em', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Footnote} Footnote\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {footnoteReference} from './footnote-reference.js'\n\n/**\n * @type {Handler}\n * @param {Footnote} node\n */\nexport function footnote(h, node) {\n const footnoteById = h.footnoteById\n const footnoteOrder = h.footnoteOrder\n let no = 1\n\n while (no in footnoteById) no++\n\n const identifier = String(no)\n\n // No need to check if `identifier` exists in `footnoteOrder`, its guaranteed\n // to not exist because we just generated it.\n footnoteOrder.push(identifier)\n\n footnoteById[identifier] = {\n type: 'footnoteDefinition',\n identifier,\n children: [{type: 'paragraph', children: node.children}],\n position: node.position\n }\n\n return footnoteReference(h, {\n type: 'footnoteReference',\n identifier,\n position: node.position\n })\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Heading} node\n */\nexport function heading(h, node) {\n return h(node, 'h' + node.depth, all(h, node))\n}\n","/**\n * @typedef {import('mdast').HTML} HTML\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * Return either a `raw` node in dangerous mode, otherwise nothing.\n *\n * @type {Handler}\n * @param {HTML} node\n */\nexport function html(h, node) {\n return h.dangerous ? h.augment(node, u('raw', node.value)) : null\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\n\n/**\n * @type {Handler}\n * @param {ImageReference} node\n */\nexport function imageReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {src: normalize(def.url || ''), alt: node.alt}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\n\n/**\n * @type {Handler}\n * @param {Image} node\n */\nexport function image(h, node) {\n /** @type {Properties} */\n const props = {src: normalize(node.url), alt: node.alt}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'img', props)\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {InlineCode} node\n */\nexport function inlineCode(h, node) {\n return h(node, 'code', [u('text', node.value.replace(/\\r?\\n|\\r/g, ' '))])\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {revert} from '../revert.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {LinkReference} node\n */\nexport function linkReference(h, node) {\n const def = h.definition(node.identifier)\n\n if (!def) {\n return revert(h, node)\n }\n\n /** @type {Properties} */\n const props = {href: normalize(def.url || '')}\n\n if (def.title !== null && def.title !== undefined) {\n props.title = def.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport normalize from 'mdurl/encode.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Link} node\n */\nexport function link(h, node) {\n /** @type {Properties} */\n const props = {href: normalize(node.url)}\n\n if (node.title !== null && node.title !== undefined) {\n props.title = node.title\n }\n\n return h(node, 'a', props, all(h, node))\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Paragraph} node\n */\nexport function paragraph(h, node) {\n return h(node, 'p', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\nimport {all} from '../traverse.js'\nimport {wrap} from '../wrap.js'\n\n/**\n * @type {Handler}\n * @param {Root} node\n */\nexport function root(h, node) {\n // @ts-expect-error `root`s are also fine.\n return h.augment(node, u('root', wrap(all(h, node))))\n}\n","/**\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Strong} node\n */\nexport function strong(h, node) {\n return h(node, 'strong', all(h, node))\n}\n","/**\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('hast').Element} Element\n * @typedef {import('../index.js').Handler} Handler\n * @typedef {import('../index.js').Content} Content\n */\n\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {wrap} from '../wrap.js'\nimport {all} from '../traverse.js'\n\n/**\n * @type {Handler}\n * @param {Table} node\n */\nexport function table(h, node) {\n const rows = node.children\n let index = -1\n const align = node.align || []\n /** @type {Array.<Element>} */\n const result = []\n\n while (++index < rows.length) {\n const row = rows[index].children\n const name = index === 0 ? 'th' : 'td'\n let pos = node.align ? align.length : row.length\n /** @type {Array.<Content>} */\n const out = []\n\n while (pos--) {\n const cell = row[pos]\n out[pos] = h(cell, name, {align: align[pos]}, cell ? all(h, cell) : [])\n }\n\n result[index] = h(rows[index], 'tr', wrap(out, true))\n }\n\n return h(\n node,\n 'table',\n wrap(\n [h(result[0].position, 'thead', wrap([result[0]], true))].concat(\n result[1]\n ? h(\n {\n start: pointStart(result[1]),\n end: pointEnd(result[result.length - 1])\n },\n 'tbody',\n wrap(result.slice(1), true)\n )\n : []\n ),\n true\n )\n )\n}\n","/**\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../index.js').Handler} Handler\n */\n\nimport {u} from 'unist-builder'\n\n/**\n * @type {Handler}\n * @param {Text} node\n */\nexport function text(h, node) {\n return h.augment(\n node,\n u('text', String(node.value).replace(/[ \\t]*(\\r?\\n|\\r)[ \\t]*/g, '$1'))\n )\n}\n","/**\n * @typedef {import('mdast').Root|import('mdast').Parent['children'][number]} MdastNode\n * @typedef {import('hast').Root|import('hast').Parent['children'][number]} HastNode\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').ElementContent} Content\n * @typedef {import('unist-util-position').PositionLike} PositionLike\n *\n * @typedef EmbeddedHastFields\n * @property {string} [hName] Defines the tag name of an element\n * @property {Properties} [hProperties] Defines the properties of an element\n * @property {Array.<Content>} [hChildren] Defines the (hast) children of an element\n *\n * @typedef {Object.<string, unknown> & EmbeddedHastFields} Data unist data with embedded hast fields\n *\n * @typedef {MdastNode & {data?: Data}} NodeWithData unist node with embedded hast data\n *\n * @callback Handler\n * @param {H} h Handle context\n * @param {any} node mdast node to handle\n * @param {Parent|null} parent Parent of `node`\n * @returns {Content|Array.<Content>|null|undefined} hast node\n *\n * @callback HFunctionProps\n * @param {MdastNode|PositionLike|null|undefined} node mdast node or unist position\n * @param {string} tagName HTML tag name\n * @param {Properties} props Properties\n * @param {Array.<Content>?} [children] hast content\n * @returns {Element}\n *\n * @callback HFunctionNoProps\n * @param {MdastNode|PositionLike|null|undefined} node mdast node or unist position\n * @param {string} tagName HTML tag name\n * @param {Array.<Content>?} [children] hast content\n * @returns {Element}\n *\n * @typedef HFields\n * @property {boolean} dangerous Whether HTML is allowed\n * @property {(identifier: string) => Definition|null} definition Definition cache\n * @property {Object.<string, FootnoteDefinition>} footnoteById Footnote cache\n * @property {Array.<string>} footnoteOrder Order in which footnotes occur\n * @property {Handlers} handlers Applied handlers\n * @property {Handler} unknownHandler Handler for any none not in `passThrough` or otherwise handled\n * @property {(left: NodeWithData|PositionLike|null|undefined, right: Content) => Content} augment Like `h` but lower-level and usable on non-elements.\n * @property {Array.<string>} passThrough List of node types to pass through untouched (except for their children).\n *\n * @typedef Options\n * @property {boolean} [allowDangerousHtml=false] Whether to allow `html` nodes and inject them as `raw` HTML\n * @property {Handlers} [handlers] Object mapping mdast nodes to functions handling them\n * @property {Array.<string>} [passThrough] List of custom mdast node types to pass through (keep) in hast\n * @property {Handler} [unknownHandler] Handler for all unknown nodes.\n *\n * @typedef {Record.<string, Handler>} Handlers Map of node types to handlers\n * @typedef {HFunctionProps & HFunctionNoProps & HFields} H Handle context\n */\n\nimport {u} from 'unist-builder'\nimport {visit} from 'unist-util-visit'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {generated} from 'unist-util-generated'\nimport {definitions} from 'mdast-util-definitions'\nimport {one} from './traverse.js'\nimport {footer} from './footer.js'\nimport {handlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * Factory to transform.\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {H} `h` function\n */\nfunction factory(tree, options) {\n const settings = options || {}\n const dangerous = settings.allowDangerousHtml || false\n /** @type {Object.<string, FootnoteDefinition>} */\n const footnoteById = {}\n\n h.dangerous = dangerous\n h.definition = definitions(tree)\n h.footnoteById = footnoteById\n /** @type {Array.<string>} */\n h.footnoteOrder = []\n h.augment = augment\n h.handlers = {...handlers, ...settings.handlers}\n h.unknownHandler = settings.unknownHandler\n h.passThrough = settings.passThrough\n\n visit(tree, 'footnoteDefinition', (definition) => {\n const id = String(definition.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8290999/index.js#L26>.\n if (!own.call(footnoteById, id)) {\n footnoteById[id] = definition\n }\n })\n\n // @ts-expect-error Hush, its fine!\n return h\n\n /**\n * Finalise the created `right`, a hast node, from `left`, an mdast node.\n * @param {(NodeWithData|PositionLike)?} left\n * @param {Content} right\n * @returns {Content}\n */\n function augment(left, right) {\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (left && 'data' in left && left.data) {\n /** @type {Data} */\n const data = left.data\n\n if (data.hName) {\n if (right.type !== 'element') {\n right = {\n type: 'element',\n tagName: '',\n properties: {},\n children: []\n }\n }\n\n right.tagName = data.hName\n }\n\n if (right.type === 'element' && data.hProperties) {\n right.properties = {...right.properties, ...data.hProperties}\n }\n\n if ('children' in right && right.children && data.hChildren) {\n right.children = data.hChildren\n }\n }\n\n if (left) {\n const ctx = 'type' in left ? left : {position: left}\n\n if (!generated(ctx)) {\n right.position = {start: pointStart(ctx), end: pointEnd(ctx)}\n }\n }\n\n return right\n }\n\n /**\n * Create an element for `node`.\n *\n * @type {HFunctionProps}\n */\n function h(node, tagName, props, children) {\n if (Array.isArray(props)) {\n children = props\n props = {}\n }\n\n // @ts-expect-error augmenting an element yields an element.\n return augment(node, {\n type: 'element',\n tagName,\n properties: props || {},\n children: children || []\n })\n }\n}\n\n/**\n * Transform `tree` (an mdast node) to a hast node.\n *\n * @param {MdastNode} tree mdast node\n * @param {Options} [options] Configuration\n * @returns {HastNode|null|undefined} hast node\n */\nexport function toHast(tree, options) {\n const h = factory(tree, options)\n const node = one(h, tree, null)\n const foot = footer(h)\n\n if (foot) {\n // @ts-expect-error If theres a footer, there were definitions, meaning block\n // content.\n // So assume `node` is a parent node.\n node.children.push(u('text', '\\n'), foot)\n }\n\n return Array.isArray(node) ? {type: 'root', children: node} : node\n}\n","/**\n * @typedef {Object} PointLike\n * @property {number} [line]\n * @property {number} [column]\n * @property {number} [offset]\n *\n * @typedef {Object} PositionLike\n * @property {PointLike} [start]\n * @property {PointLike} [end]\n *\n * @typedef {Object} NodeLike\n * @property {PositionLike} [position]\n */\n\n/**\n * Check if `node` is *generated*.\n *\n * @param {NodeLike} [node]\n * @returns {boolean}\n */\nexport function generated(node) {\n return (\n !node ||\n !node.position ||\n !node.position.start ||\n !node.position.start.line ||\n !node.position.start.column ||\n !node.position.end ||\n !node.position.end.line ||\n !node.position.end.column\n )\n}\n","/**\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('./index.js').H} H\n */\n\nimport {thematicBreak} from './handlers/thematic-break.js'\nimport {list} from './handlers/list.js'\nimport {wrap} from './wrap.js'\n\n/**\n * @param {H} h\n */\nexport function footer(h) {\n const footnoteById = h.footnoteById\n const footnoteOrder = h.footnoteOrder\n let index = -1\n /** @type {Array.<ListItem>} */\n const listItems = []\n\n while (++index < footnoteOrder.length) {\n const def = footnoteById[footnoteOrder[index].toUpperCase()]\n\n if (!def) {\n continue\n }\n\n const marker = String(index + 1)\n const content = [...def.children]\n /** @type {Link} */\n const backReference = {\n type: 'link',\n url: '#fnref' + marker,\n data: {hProperties: {className: ['footnote-back'], role: 'doc-backlink'}},\n children: [{type: 'text', value: '↩'}]\n }\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'paragraph') {\n tail.children.push(backReference)\n } else {\n // @ts-expect-error Indeed, link directly added in block content.\n // Which we do because that way at least the handlers will be called\n // for the other HTML were generating (as markdown).\n content.push(backReference)\n }\n\n listItems.push({\n type: 'listItem',\n data: {hProperties: {id: 'fn' + marker, role: 'doc-endnote'}},\n children: content,\n position: def.position\n })\n }\n\n if (listItems.length === 0) {\n return null\n }\n\n return h(\n null,\n 'section',\n {className: ['footnotes'], role: 'doc-endnotes'},\n wrap(\n [\n thematicBreak(h),\n list(h, {type: 'list', ordered: true, children: listItems})\n ],\n true\n )\n )\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} Options\n * @typedef {import('unified').Processor<any, any, any, any>} Processor\n *\n * @typedef {import('mdast-util-to-hast')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n// Note: the `<MdastRoot, HastRoot>` overload doesnt seem to work :'(\n\n/**\n * Plugin to bridge or mutate to rehype.\n *\n * If a destination is given, runs the destination with the new hast tree\n * (bridge-mode).\n * Without destination, returns the hast tree: further plugins run on that tree\n * (mutate-mode).\n *\n * @param destination\n * Optional unified processor.\n * @param options\n * Options passed to `mdast-util-to-hast`.\n */\nconst remarkRehype =\n /** @type {(import('unified').Plugin<[Processor, Options?]|[Options]|[], MdastRoot>)} */\n (\n function (destination, options) {\n return destination && 'run' in destination\n ? bridge(destination, options)\n : mutate(destination)\n }\n )\n\nexport default remarkRehype\n\n/**\n * Bridge-mode.\n * Runs the destination with the new hast tree.\n *\n * @type {import('unified').Plugin<[Processor, Options?], MdastRoot>}\n */\nfunction bridge(destination, options) {\n return (node, file, next) => {\n destination.run(toHast(node, options), file, (error) => {\n next(error)\n })\n }\n}\n\n/**\n * Mutate-mode.\n * Further transformers run on the nlcst tree.\n *\n * @type {import('unified').Plugin<[Options?]|void[], MdastRoot, HastRoot>}\n */\nfunction mutate(options) {\n // @ts-expect-error: assume a corresponding node is returned for `toHast`.\n return (node) => toHast(node, options)\n}\n","/**\n * @typedef {import('./info.js').Info} Info\n * @typedef {Record<string, Info>} Properties\n * @typedef {Record<string, string>} Normal\n */\n\nexport class Schema {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(property, normal, space) {\n this.property = property\n this.normal = normal\n if (space) {\n this.space = space\n }\n }\n}\n\n/** @type {Properties} */\nSchema.prototype.property = {}\n/** @type {Normal} */\nSchema.prototype.normal = {}\n/** @type {string|null} */\nSchema.prototype.space = null\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n */\n\nimport {Schema} from './schema.js'\n\n/**\n * @param {Schema[]} definitions\n * @param {string} [space]\n * @returns {Schema}\n */\nexport function merge(definitions, space) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n let index = -1\n\n while (++index < definitions.length) {\n Object.assign(property, definitions[index].property)\n Object.assign(normal, definitions[index].normal)\n }\n\n return new Schema(property, normal, space)\n}\n","/**\n * @param {string} value\n * @returns {string}\n */\nexport function normalize(value) {\n return value.toLowerCase()\n}\n","export class Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(property, attribute) {\n /** @type {string} */\n this.property = property\n /** @type {string} */\n this.attribute = attribute\n }\n}\n\n/** @type {string|null} */\nInfo.prototype.space = null\nInfo.prototype.boolean = false\nInfo.prototype.booleanish = false\nInfo.prototype.overloadedBoolean = false\nInfo.prototype.number = false\nInfo.prototype.commaSeparated = false\nInfo.prototype.spaceSeparated = false\nInfo.prototype.commaOrSpaceSeparated = false\nInfo.prototype.mustUseProperty = false\nInfo.prototype.defined = false\n","let powers = 0\n\nexport const boolean = increment()\nexport const booleanish = increment()\nexport const overloadedBoolean = increment()\nexport const number = increment()\nexport const spaceSeparated = increment()\nexport const commaSeparated = increment()\nexport const commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return 2 ** ++powers\n}\n","import {Info} from './info.js'\nimport * as types from './types.js'\n\n/** @type {Array<keyof types>} */\n// @ts-expect-error: hush.\nconst checks = Object.keys(types)\n\nexport class DefinedInfo extends Info {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(property, attribute, mask, space) {\n let index = -1\n\n super(property, attribute)\n\n mark(this, 'space', space)\n\n if (typeof mask === 'number') {\n while (++index < checks.length) {\n const check = checks[index]\n mark(this, checks[index], (mask & types[check]) === types[check])\n }\n }\n }\n}\n\nDefinedInfo.prototype.defined = true\n\n/**\n * @param {DefinedInfo} values\n * @param {string} key\n * @param {unknown} value\n */\nfunction mark(values, key, value) {\n if (value) {\n // @ts-expect-error: assume `value` matches the expected value of `key`.\n values[key] = value\n }\n}\n","/**\n * @typedef {import('./schema.js').Properties} Properties\n * @typedef {import('./schema.js').Normal} Normal\n *\n * @typedef {Record<string, string>} Attributes\n *\n * @typedef {Object} Definition\n * @property {Record<string, number|null>} properties\n * @property {(attributes: Attributes, property: string) => string} transform\n * @property {string} [space]\n * @property {Attributes} [attributes]\n * @property {Array<string>} [mustUseProperty]\n */\n\nimport {normalize} from '../normalize.js'\nimport {Schema} from './schema.js'\nimport {DefinedInfo} from './defined-info.js'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Definition} definition\n * @returns {Schema}\n */\nexport function create(definition) {\n /** @type {Properties} */\n const property = {}\n /** @type {Normal} */\n const normal = {}\n /** @type {string} */\n let prop\n\n for (prop in definition.properties) {\n if (own.call(definition.properties, prop)) {\n const value = definition.properties[prop]\n const info = new DefinedInfo(\n prop,\n definition.transform(definition.attributes || {}, prop),\n value,\n definition.space\n )\n\n if (\n definition.mustUseProperty &&\n definition.mustUseProperty.includes(prop)\n ) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n }\n\n return new Schema(property, normal, definition.space)\n}\n","import {create} from './util/create.js'\n\nexport const xlink = create({\n space: 'xlink',\n transform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n","import {create} from './util/create.js'\n\nexport const xml = create({\n space: 'xml',\n transform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n },\n properties: {xmlLang: null, xmlBase: null, xmlSpace: null}\n})\n","/**\n * @param {Record<string, string>} attributes\n * @param {string} attribute\n * @returns {string}\n */\nexport function caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n","import {caseSensitiveTransform} from './case-sensitive-transform.js'\n\n/**\n * @param {Record<string, string>} attributes\n * @param {string} property\n * @returns {string}\n */\nexport function caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n","import {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const xmlns = create({\n space: 'xmlns',\n attributes: {xmlnsxlink: 'xmlns:xlink'},\n transform: caseInsensitiveTransform,\n properties: {xmlns: null, xmlnsXLink: null}\n})\n","import {booleanish, number, spaceSeparated} from './util/types.js'\nimport {create} from './util/create.js'\n\nexport const aria = create({\n transform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n","import {\n boolean,\n overloadedBoolean,\n booleanish,\n number,\n spaceSeparated,\n commaSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseInsensitiveTransform} from './util/case-insensitive-transform.js'\n\nexport const html = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n","import {\n boolean,\n number,\n spaceSeparated,\n commaSeparated,\n commaOrSpaceSeparated\n} from './util/types.js'\nimport {create} from './util/create.js'\nimport {caseSensitiveTransform} from './util/case-sensitive-transform.js'\n\nexport const svg = create({\n space: 'svg',\n attributes: {\n accentHeight: 'accent-height',\n alignmentBaseline: 'alignment-baseline',\n arabicForm: 'arabic-form',\n baselineShift: 'baseline-shift',\n capHeight: 'cap-height',\n className: 'class',\n clipPath: 'clip-path',\n clipRule: 'clip-rule',\n colorInterpolation: 'color-interpolation',\n colorInterpolationFilters: 'color-interpolation-filters',\n colorProfile: 'color-profile',\n colorRendering: 'color-rendering',\n crossOrigin: 'crossorigin',\n dataType: 'datatype',\n dominantBaseline: 'dominant-baseline',\n enableBackground: 'enable-background',\n fillOpacity: 'fill-opacity',\n fillRule: 'fill-rule',\n floodColor: 'flood-color',\n floodOpacity: 'flood-opacity',\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontSizeAdjust: 'font-size-adjust',\n fontStretch: 'font-stretch',\n fontStyle: 'font-style',\n fontVariant: 'font-variant',\n fontWeight: 'font-weight',\n glyphName: 'glyph-name',\n glyphOrientationHorizontal: 'glyph-orientation-horizontal',\n glyphOrientationVertical: 'glyph-orientation-vertical',\n hrefLang: 'hreflang',\n horizAdvX: 'horiz-adv-x',\n horizOriginX: 'horiz-origin-x',\n horizOriginY: 'horiz-origin-y',\n imageRendering: 'image-rendering',\n letterSpacing: 'letter-spacing',\n lightingColor: 'lighting-color',\n markerEnd: 'marker-end',\n markerMid: 'marker-mid',\n markerStart: 'marker-start',\n navDown: 'nav-down',\n navDownLeft: 'nav-down-left',\n navDownRight: 'nav-down-right',\n navLeft: 'nav-left',\n navNext: 'nav-next',\n navPrev: 'nav-prev',\n navRight: 'nav-right',\n navUp: 'nav-up',\n navUpLeft: 'nav-up-left',\n navUpRight: 'nav-up-right',\n onAbort: 'onabort',\n onActivate: 'onactivate',\n onAfterPrint: 'onafterprint',\n onBeforePrint: 'onbeforeprint',\n onBegin: 'onbegin',\n onCancel: 'oncancel',\n onCanPlay: 'oncanplay',\n onCanPlayThrough: 'oncanplaythrough',\n onChange: 'onchange',\n onClick: 'onclick',\n onClose: 'onclose',\n onCopy: 'oncopy',\n onCueChange: 'oncuechange',\n onCut: 'oncut',\n onDblClick: 'ondblclick',\n onDrag: 'ondrag',\n onDragEnd: 'ondragend',\n onDragEnter: 'ondragenter',\n onDragExit: 'ondragexit',\n onDragLeave: 'ondragleave',\n onDragOver: 'ondragover',\n onDragStart: 'ondragstart',\n onDrop: 'ondrop',\n onDurationChange: 'ondurationchange',\n onEmptied: 'onemptied',\n onEnd: 'onend',\n onEnded: 'onended',\n onError: 'onerror',\n onFocus: 'onfocus',\n onFocusIn: 'onfocusin',\n onFocusOut: 'onfocusout',\n onHashChange: 'onhashchange',\n onInput: 'oninput',\n onInvalid: 'oninvalid',\n onKeyDown: 'onkeydown',\n onKeyPress: 'onkeypress',\n onKeyUp: 'onkeyup',\n onLoad: 'onload',\n onLoadedData: 'onloadeddata',\n onLoadedMetadata: 'onloadedmetadata',\n onLoadStart: 'onloadstart',\n onMessage: 'onmessage',\n onMouseDown: 'onmousedown',\n onMouseEnter: 'onmouseenter',\n onMouseLeave: 'onmouseleave',\n onMouseMove: 'onmousemove',\n onMouseOut: 'onmouseout',\n onMouseOver: 'onmouseover',\n onMouseUp: 'onmouseup',\n onMouseWheel: 'onmousewheel',\n onOffline: 'onoffline',\n onOnline: 'ononline',\n onPageHide: 'onpagehide',\n onPageShow: 'onpageshow',\n onPaste: 'onpaste',\n onPause: 'onpause',\n onPlay: 'onplay',\n onPlaying: 'onplaying',\n onPopState: 'onpopstate',\n onProgress: 'onprogress',\n onRateChange: 'onratechange',\n onRepeat: 'onrepeat',\n onReset: 'onreset',\n onResize: 'onresize',\n onScroll: 'onscroll',\n onSeeked: 'onseeked',\n onSeeking: 'onseeking',\n onSelect: 'onselect',\n onShow: 'onshow',\n onStalled: 'onstalled',\n onStorage: 'onstorage',\n onSubmit: 'onsubmit',\n onSuspend: 'onsuspend',\n onTimeUpdate: 'ontimeupdate',\n onToggle: 'ontoggle',\n onUnload: 'onunload',\n onVolumeChange: 'onvolumechange',\n onWaiting: 'onwaiting',\n onZoom: 'onzoom',\n overlinePosition: 'overline-position',\n overlineThickness: 'overline-thickness',\n paintOrder: 'paint-order',\n panose1: 'panose-1',\n pointerEvents: 'pointer-events',\n referrerPolicy: 'referrerpolicy',\n renderingIntent: 'rendering-intent',\n shapeRendering: 'shape-rendering',\n stopColor: 'stop-color',\n stopOpacity: 'stop-opacity',\n strikethroughPosition: 'strikethrough-position',\n strikethroughThickness: 'strikethrough-thickness',\n strokeDashArray: 'stroke-dasharray',\n strokeDashOffset: 'stroke-dashoffset',\n strokeLineCap: 'stroke-linecap',\n strokeLineJoin: 'stroke-linejoin',\n strokeMiterLimit: 'stroke-miterlimit',\n strokeOpacity: 'stroke-opacity',\n strokeWidth: 'stroke-width',\n tabIndex: 'tabindex',\n textAnchor: 'text-anchor',\n textDecoration: 'text-decoration',\n textRendering: 'text-rendering',\n typeOf: 'typeof',\n underlinePosition: 'underline-position',\n underlineThickness: 'underline-thickness',\n unicodeBidi: 'unicode-bidi',\n unicodeRange: 'unicode-range',\n unitsPerEm: 'units-per-em',\n vAlphabetic: 'v-alphabetic',\n vHanging: 'v-hanging',\n vIdeographic: 'v-ideographic',\n vMathematical: 'v-mathematical',\n vectorEffect: 'vector-effect',\n vertAdvY: 'vert-adv-y',\n vertOriginX: 'vert-origin-x',\n vertOriginY: 'vert-origin-y',\n wordSpacing: 'word-spacing',\n writingMode: 'writing-mode',\n xHeight: 'x-height',\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: 'playbackorder',\n timelineBegin: 'timelinebegin'\n },\n transform: caseSensitiveTransform,\n properties: {\n about: commaOrSpaceSeparated,\n accentHeight: number,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: number,\n amplitude: number,\n arabicForm: null,\n ascent: number,\n attributeName: null,\n attributeType: null,\n azimuth: number,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: number,\n by: null,\n calcMode: null,\n capHeight: number,\n className: spaceSeparated,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: number,\n diffuseConstant: number,\n direction: null,\n display: null,\n dur: null,\n divisor: number,\n dominantBaseline: null,\n download: boolean,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: number,\n enableBackground: null,\n end: null,\n event: null,\n exponent: number,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: number,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: commaSeparated,\n g2: commaSeparated,\n glyphName: commaSeparated,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: number,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: number,\n horizOriginX: number,\n horizOriginY: number,\n id: null,\n ideographic: number,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: number,\n k: number,\n k1: number,\n k2: number,\n k3: number,\n k4: number,\n kernelMatrix: commaOrSpaceSeparated,\n kernelUnitLength: null,\n keyPoints: null, // SEMI_COLON_SEPARATED\n keySplines: null, // SEMI_COLON_SEPARATED\n keyTimes: null, // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: number,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: number,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: number,\n overlineThickness: number,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: number,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: spaceSeparated,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: number,\n pointsAtY: number,\n pointsAtZ: number,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: commaOrSpaceSeparated,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: commaOrSpaceSeparated,\n rev: commaOrSpaceSeparated,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: commaOrSpaceSeparated,\n requiredFeatures: commaOrSpaceSeparated,\n requiredFonts: commaOrSpaceSeparated,\n requiredFormats: commaOrSpaceSeparated,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: number,\n specularExponent: number,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: number,\n strikethroughThickness: number,\n string: null,\n stroke: null,\n strokeDashArray: commaOrSpaceSeparated,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: number,\n strokeOpacity: number,\n strokeWidth: null,\n style: null,\n surfaceScale: number,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: commaOrSpaceSeparated,\n tabIndex: number,\n tableValues: null,\n target: null,\n targetX: number,\n targetY: number,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: commaOrSpaceSeparated,\n to: null,\n transform: null,\n u1: null,\n u2: null,\n underlinePosition: number,\n underlineThickness: number,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: number,\n values: null,\n vAlphabetic: number,\n vMathematical: number,\n vectorEffect: null,\n vHanging: number,\n vIdeographic: number,\n version: null,\n vertAdvY: number,\n vertOriginX: number,\n vertOriginY: number,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: number,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n})\n","/**\n * @typedef {import('./lib/util/info.js').Info} Info\n * @typedef {import('./lib/util/schema.js').Schema} Schema\n */\n\nimport {merge} from './lib/util/merge.js'\nimport {xlink} from './lib/xlink.js'\nimport {xml} from './lib/xml.js'\nimport {xmlns} from './lib/xmlns.js'\nimport {aria} from './lib/aria.js'\nimport {html as htmlBase} from './lib/html.js'\nimport {svg as svgBase} from './lib/svg.js'\n\nexport {find} from './lib/find.js'\nexport {hastToReact} from './lib/hast-to-react.js'\nexport {normalize} from './lib/normalize.js'\nexport const html = merge([xml, xlink, xmlns, aria, htmlBase], 'html')\nexport const svg = merge([xml, xlink, xmlns, aria, svgBase], 'svg')\n","import {visit} from 'unist-util-visit'\n\n/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n *\n * @callback AllowElement\n * @param {Element} element\n * @param {number} index\n * @param {Element|Root} parent\n * @returns {boolean|undefined}\n *\n * @typedef Options\n * @property {Array<string>} [allowedElements]\n * @property {Array<string>} [disallowedElements=[]]\n * @property {AllowElement} [allowElement]\n * @property {boolean} [unwrapDisallowed=false]\n */\n\n/**\n * @type {import('unified').Plugin<[Options], Root>}\n */\nexport default function rehypeFilter(options) {\n if (options.allowedElements && options.disallowedElements) {\n throw new TypeError(\n 'Only one of `allowedElements` and `disallowedElements` should be defined'\n )\n }\n\n if (\n options.allowedElements ||\n options.disallowedElements ||\n options.allowElement\n ) {\n return (tree) => {\n visit(tree, 'element', (node, index, parent_) => {\n const parent = /** @type {Element|Root} */ (parent_)\n /** @type {boolean|undefined} */\n let remove\n\n if (options.allowedElements) {\n remove = !options.allowedElements.includes(node.tagName)\n } else if (options.disallowedElements) {\n remove = options.disallowedElements.includes(node.tagName)\n }\n\n if (!remove && options.allowElement && typeof index === 'number') {\n remove = !options.allowElement(node, index, parent)\n }\n\n if (remove && typeof index === 'number') {\n if (options.unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n\n return undefined\n })\n }\n }\n}\n","const protocols = ['http', 'https', 'mailto', 'tel']\n\n/**\n * @param {string} uri\n * @returns {string}\n */\nexport function uriTransformer(uri) {\n const url = (uri || '').trim()\n const first = url.charAt(0)\n\n if (first === '#' || first === '/') {\n return url\n }\n\n const colon = url.indexOf(':')\n if (colon === -1) {\n return url\n }\n\n let index = -1\n\n while (++index < protocols.length) {\n const protocol = protocols[index]\n\n if (\n colon === protocol.length &&\n url.slice(0, protocol.length).toLowerCase() === protocol\n ) {\n return url\n }\n }\n\n index = url.indexOf('?')\n if (index !== -1 && colon > index) {\n return url\n }\n\n index = url.indexOf('#')\n if (index !== -1 && colon > index) {\n return url\n }\n\n // eslint-disable-next-line no-script-url\n return 'javascript:void(0)'\n}\n","/**\n * @param {unknown} thing\n * @returns {boolean}\n */\nexport function whitespace(thing) {\n /** @type {string} */\n var value =\n // @ts-ignore looks like a node.\n thing && typeof thing === 'object' && thing.type === 'text'\n ? // @ts-ignore looks like a text.\n thing.value || ''\n : thing\n\n // HTML whitespace expression.\n // See <https://html.spec.whatwg.org/#space-character>.\n return typeof value === 'string' && value.replace(/[ \\t\\n\\f\\r]/g, '') === ''\n}\n","/**\n * @typedef {import('./util/schema.js').Schema} Schema\n */\n\nimport {normalize} from './normalize.js'\nimport {DefinedInfo} from './util/defined-info.js'\nimport {Info} from './util/info.js'\n\nconst valid = /^data[-\\w.:]+$/i\nconst dash = /-[a-z]/g\nconst cap = /[A-Z]/g\n\n/**\n * @param {Schema} schema\n * @param {string} value\n * @returns {Info}\n */\nexport function find(schema, value) {\n const normal = normalize(value)\n let prop = value\n let Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === 'data' && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n // Turn it into a property.\n const rest = value.slice(5).replace(dash, camelcase)\n prop = 'data' + rest.charAt(0).toUpperCase() + rest.slice(1)\n } else {\n // Turn it into an attribute.\n const rest = value.slice(4)\n\n if (!dash.test(rest)) {\n let dashes = rest.replace(cap, kebab)\n\n if (dashes.charAt(0) !== '-') {\n dashes = '-' + dashes\n }\n\n value = 'data' + dashes\n }\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\n/**\n * @param {string} $0\n * @returns {string}\n */\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n","export const hastToReact = {\n classId: 'classID',\n dataType: 'datatype',\n itemId: 'itemID',\n strokeDashArray: 'strokeDasharray',\n strokeDashOffset: 'strokeDashoffset',\n strokeLineCap: 'strokeLinecap',\n strokeLineJoin: 'strokeLinejoin',\n strokeMiterLimit: 'strokeMiterlimit',\n typeOf: 'typeof',\n xLinkActuate: 'xlinkActuate',\n xLinkArcRole: 'xlinkArcrole',\n xLinkHref: 'xlinkHref',\n xLinkRole: 'xlinkRole',\n xLinkShow: 'xlinkShow',\n xLinkTitle: 'xlinkTitle',\n xLinkType: 'xlinkType',\n xmlnsXLink: 'xmlnsXlink'\n}\n","/**\n * Parse space separated tokens to an array of strings.\n *\n * @param {string} value Space separated tokens\n * @returns {Array.<string>} Tokens\n */\nexport function parse(value) {\n const input = String(value || '').trim()\n return input ? input.split(/[ \\t\\n\\r\\f]+/g) : []\n}\n\n/**\n * Serialize an array of strings as space separated tokens.\n *\n * @param {Array.<string|number>} values Tokens\n * @returns {string} Space separated tokens\n */\nexport function stringify(values) {\n return values.join(' ').trim()\n}\n","/**\n * @typedef {Object} StringifyOptions\n * @property {boolean} [padLeft=true] Whether to pad a space before a token (`boolean`, default: `true`).\n * @property {boolean} [padRight=false] Whether to pad a space after a token (`boolean`, default: `false`).\n */\n\n/**\n * Parse comma separated tokens to an array.\n *\n * @param {string} value\n * @returns {Array.<string>}\n */\nexport function parse(value) {\n /** @type {Array.<string>} */\n var tokens = []\n var input = String(value || '')\n var index = input.indexOf(',')\n var start = 0\n /** @type {boolean} */\n var end\n /** @type {string} */\n var token\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n token = input.slice(start, index).trim()\n\n if (token || !end) {\n tokens.push(token)\n }\n\n start = index + 1\n index = input.indexOf(',', start)\n }\n\n return tokens\n}\n\n/**\n * Serialize an array of strings to comma separated tokens.\n *\n * @param {Array.<string|number>} values\n * @param {StringifyOptions} [options]\n * @returns {string}\n */\nexport function stringify(values, options) {\n var settings = options || {}\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === '') {\n values = values.concat('')\n }\n\n return values\n .join(\n (settings.padRight ? ' ' : '') +\n ',' +\n (settings.padLeft === false ? '' : ' ')\n )\n .trim()\n}\n","/**\n * @template T\n * @typedef {import('react').ComponentType<T>} ComponentType<T>\n */\n\n/**\n * @template T\n * @typedef {import('react').ComponentPropsWithoutRef<T>} ComponentPropsWithoutRef<T>\n */\n\n/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('unist').Position} Position\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('./complex-types').ReactMarkdownProps} ReactMarkdownProps\n *\n * @typedef Raw\n * @property {'raw'} type\n * @property {string} value\n *\n * @typedef Context\n * @property {Options} options\n * @property {Schema} schema\n * @property {number} listDepth\n *\n * @callback TransformLink\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {string}\n *\n * @callback TransformImage\n * @param {string} src\n * @param {string} alt\n * @param {string?} title\n * @returns {string}\n *\n * @typedef {import('react').HTMLAttributeAnchorTarget} TransformLinkTargetType\n *\n * @callback TransformLinkTarget\n * @param {string} href\n * @param {Array<ElementContent>} children\n * @param {string?} title\n * @returns {TransformLinkTargetType|undefined}\n *\n * @typedef {keyof JSX.IntrinsicElements} ReactMarkdownNames\n *\n * To do: is `data-sourcepos` typeable?\n *\n * @typedef {ComponentPropsWithoutRef<'code'> & ReactMarkdownProps & {inline?: boolean}} CodeProps\n * @typedef {ComponentPropsWithoutRef<'h1'> & ReactMarkdownProps & {level: number}} HeadingProps\n * @typedef {ComponentPropsWithoutRef<'li'> & ReactMarkdownProps & {checked: boolean|null, index: number, ordered: boolean}} LiProps\n * @typedef {ComponentPropsWithoutRef<'ol'> & ReactMarkdownProps & {depth: number, ordered: true}} OrderedListProps\n * @typedef {ComponentPropsWithoutRef<'table'> & ReactMarkdownProps & {style?: Record<string, unknown>, isHeader: boolean}} TableCellProps\n * @typedef {ComponentPropsWithoutRef<'tr'> & ReactMarkdownProps & {isHeader: boolean}} TableRowProps\n * @typedef {ComponentPropsWithoutRef<'ul'> & ReactMarkdownProps & {depth: number, ordered: false}} UnorderedListProps\n *\n * @typedef {ComponentType<CodeProps>} CodeComponent\n * @typedef {ComponentType<HeadingProps>} HeadingComponent\n * @typedef {ComponentType<LiProps>} LiComponent\n * @typedef {ComponentType<OrderedListProps>} OrderedListComponent\n * @typedef {ComponentType<TableCellProps>} TableCellComponent\n * @typedef {ComponentType<TableRowProps>} TableRowComponent\n * @typedef {ComponentType<UnorderedListProps>} UnorderedListComponent\n *\n * @typedef SpecialComponents\n * @property {CodeComponent|ReactMarkdownNames} code\n * @property {HeadingComponent|ReactMarkdownNames} h1\n * @property {HeadingComponent|ReactMarkdownNames} h2\n * @property {HeadingComponent|ReactMarkdownNames} h3\n * @property {HeadingComponent|ReactMarkdownNames} h4\n * @property {HeadingComponent|ReactMarkdownNames} h5\n * @property {HeadingComponent|ReactMarkdownNames} h6\n * @property {LiComponent|ReactMarkdownNames} li\n * @property {OrderedListComponent|ReactMarkdownNames} ol\n * @property {TableCellComponent|ReactMarkdownNames} td\n * @property {TableCellComponent|ReactMarkdownNames} th\n * @property {TableRowComponent|ReactMarkdownNames} tr\n * @property {UnorderedListComponent|ReactMarkdownNames} ul\n *\n * @typedef {Partial<Omit<import('./complex-types').NormalComponents, keyof SpecialComponents> & SpecialComponents>} Components\n *\n * @typedef Options\n * @property {boolean} [sourcePos=false]\n * @property {boolean} [rawSourcePos=false]\n * @property {boolean} [skipHtml=false]\n * @property {boolean} [includeElementIndex=false]\n * @property {null|false|TransformLink} [transformLinkUri]\n * @property {TransformImage} [transformImageUri]\n * @property {TransformLinkTargetType|TransformLinkTarget} [linkTarget]\n * @property {Components} [components]\n */\n\nimport React from 'react'\nimport ReactIs from 'react-is'\nimport {whitespace} from 'hast-util-whitespace'\nimport {svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\n\nconst own = {}.hasOwnProperty\n\n// The table-related elements that must not contain whitespace text according\n// to React.\nconst tableElements = new Set(['table', 'thead', 'tbody', 'tfoot', 'tr'])\n\n/**\n * @param {Context} context\n * @param {Element|Root} node\n */\nexport function childrenToReact(context, node) {\n /** @type {Array<ReactNode>} */\n const children = []\n let childIndex = -1\n /** @type {Comment|Doctype|Element|Raw|Text} */\n let child\n\n while (++childIndex < node.children.length) {\n child = node.children[childIndex]\n\n if (child.type === 'element') {\n children.push(toReact(context, child, childIndex, node))\n } else if (child.type === 'text') {\n // Currently, a warning is triggered by react for *any* white space in\n // tables.\n // So we drop it.\n // See: <https://github.com/facebook/react/pull/7081>.\n // See: <https://github.com/facebook/react/pull/7515>.\n // See: <https://github.com/remarkjs/remark-react/issues/64>.\n // See: <https://github.com/remarkjs/react-markdown/issues/576>.\n if (\n node.type !== 'element' ||\n !tableElements.has(node.tagName) ||\n !whitespace(child)\n ) {\n children.push(child.value)\n }\n } else if (child.type === 'raw' && !context.options.skipHtml) {\n // Default behavior is to show (encoded) HTML.\n children.push(child.value)\n }\n }\n\n return children\n}\n\n/**\n * @param {Context} context\n * @param {Element} node\n * @param {number} index\n * @param {Element|Root} parent\n */\nfunction toReact(context, node, index, parent) {\n const options = context.options\n const parentSchema = context.schema\n /** @type {ReactMarkdownNames} */\n // @ts-expect-error assume a known HTML/SVG element.\n const name = node.tagName\n /** @type {Record<string, unknown>} */\n const properties = {}\n let schema = parentSchema\n /** @type {string} */\n let property\n\n if (parentSchema.space === 'html' && name === 'svg') {\n schema = svg\n context.schema = schema\n }\n\n if (node.properties) {\n for (property in node.properties) {\n if (own.call(node.properties, property)) {\n addProperty(properties, property, node.properties[property], context)\n }\n }\n }\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth++\n }\n\n const children = childrenToReact(context, node)\n\n if (name === 'ol' || name === 'ul') {\n context.listDepth--\n }\n\n // Restore parent schema.\n context.schema = parentSchema\n\n // Nodes created by plugins do not have positional info, in which case we use\n // an object that matches the position interface.\n const position = node.position || {\n start: {line: null, column: null, offset: null},\n end: {line: null, column: null, offset: null}\n }\n const component =\n options.components && own.call(options.components, name)\n ? options.components[name]\n : name\n const basic = typeof component === 'string' || component === React.Fragment\n\n if (!ReactIs.isValidElementType(component)) {\n throw new TypeError(\n `Component for name \\`${name}\\` not defined or is not renderable`\n )\n }\n\n properties.key = [\n name,\n position.start.line,\n position.start.column,\n index\n ].join('-')\n\n if (name === 'a' && options.linkTarget) {\n properties.target =\n typeof options.linkTarget === 'function'\n ? options.linkTarget(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n : options.linkTarget\n }\n\n if (name === 'a' && options.transformLinkUri) {\n properties.href = options.transformLinkUri(\n String(properties.href || ''),\n node.children,\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (\n !basic &&\n name === 'code' &&\n parent.type === 'element' &&\n parent.tagName !== 'pre'\n ) {\n properties.inline = true\n }\n\n if (\n !basic &&\n (name === 'h1' ||\n name === 'h2' ||\n name === 'h3' ||\n name === 'h4' ||\n name === 'h5' ||\n name === 'h6')\n ) {\n properties.level = Number.parseInt(name.charAt(1), 10)\n }\n\n if (name === 'img' && options.transformImageUri) {\n properties.src = options.transformImageUri(\n String(properties.src || ''),\n String(properties.alt || ''),\n typeof properties.title === 'string' ? properties.title : null\n )\n }\n\n if (!basic && name === 'li' && parent.type === 'element') {\n const input = getInputElement(node)\n properties.checked =\n input && input.properties ? Boolean(input.properties.checked) : null\n properties.index = getElementsBeforeCount(parent, node)\n properties.ordered = parent.tagName === 'ol'\n }\n\n if (!basic && (name === 'ol' || name === 'ul')) {\n properties.ordered = name === 'ol'\n properties.depth = context.listDepth\n }\n\n if (name === 'td' || name === 'th') {\n if (properties.align) {\n if (!properties.style) properties.style = {}\n // @ts-expect-error assume `style` is an object\n properties.style.textAlign = properties.align\n delete properties.align\n }\n\n if (!basic) {\n properties.isHeader = name === 'th'\n }\n }\n\n if (!basic && name === 'tr' && parent.type === 'element') {\n properties.isHeader = Boolean(parent.tagName === 'thead')\n }\n\n // If `sourcePos` is given, pass source information (line/column info from markdown source).\n if (options.sourcePos) {\n properties['data-sourcepos'] = flattenPosition(position)\n }\n\n if (!basic && options.rawSourcePos) {\n properties.sourcePosition = node.position\n }\n\n // If `includeElementIndex` is given, pass node index info to components.\n if (!basic && options.includeElementIndex) {\n properties.index = getElementsBeforeCount(parent, node)\n properties.siblingCount = getElementsBeforeCount(parent)\n }\n\n if (!basic) {\n properties.node = node\n }\n\n // Ensure no React warnings are emitted for void elements w/ children.\n return children.length > 0\n ? React.createElement(component, properties, children)\n : React.createElement(component, properties)\n}\n\n/**\n * @param {Element|Root} node\n * @returns {Element?}\n */\nfunction getInputElement(node) {\n let index = -1\n\n while (++index < node.children.length) {\n const child = node.children[index]\n\n if (child.type === 'element' && child.tagName === 'input') {\n return child\n }\n }\n\n return null\n}\n\n/**\n * @param {Element|Root} parent\n * @param {Element} [node]\n * @returns {number}\n */\nfunction getElementsBeforeCount(parent, node) {\n let index = -1\n let count = 0\n\n while (++index < parent.children.length) {\n if (parent.children[index] === node) break\n if (parent.children[index].type === 'element') count++\n }\n\n return count\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n */\nfunction addProperty(props, prop, value, ctx) {\n const info = find(ctx.schema, prop)\n let result = value\n\n // Ignore nullish and `NaN` values.\n // eslint-disable-next-line no-self-compare\n if (result === null || result === undefined || result !== result) {\n return\n }\n\n // Accept `array`.\n // Most props are space-separated.\n if (Array.isArray(result)) {\n result = info.commaSeparated ? commas(result) : spaces(result)\n }\n\n if (info.property === 'style' && typeof result === 'string') {\n result = parseStyle(result)\n }\n\n if (info.space && info.property) {\n props[\n own.call(hastToReact, info.property)\n ? hastToReact[info.property]\n : info.property\n ] = result\n } else if (info.attribute) {\n props[info.attribute] = result\n }\n}\n\n/**\n * @param {string} value\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value) {\n /** @type {Record<string, string>} */\n const result = {}\n\n try {\n style(value, iterator)\n } catch {\n // Silent.\n }\n\n return result\n\n /**\n * @param {string} name\n * @param {string} v\n */\n function iterator(name, v) {\n const k = name.slice(0, 4) === '-ms-' ? `ms-${name.slice(4)}` : name\n result[k.replace(/-([a-z])/g, styleReplacer)] = v\n }\n}\n\n/**\n * @param {unknown} _\n * @param {string} $1\n */\nfunction styleReplacer(_, $1) {\n return $1.toUpperCase()\n}\n\n/**\n * @param {Position|{start: {line: null, column: null, offset: null}, end: {line: null, column: null, offset: null}}} pos\n * @returns {string}\n */\nfunction flattenPosition(pos) {\n return [\n pos.start.line,\n ':',\n pos.start.column,\n '-',\n pos.end.line,\n ':',\n pos.end.column\n ]\n .map((d) => String(d))\n .join('')\n}\n","/**\n * @typedef {import('react').ReactNode} ReactNode\n * @typedef {import('react').ReactElement<{}>} ReactElement\n * @typedef {import('unified').PluggableList} PluggableList\n * @typedef {import('hast').Root} Root\n * @typedef {import('./rehype-filter.js').Options} FilterOptions\n * @typedef {import('./ast-to-react.js').Options} TransformOptions\n *\n * @typedef CoreOptions\n * @property {string} children\n *\n * @typedef PluginOptions\n * @property {PluggableList} [plugins=[]] **deprecated**: use `remarkPlugins` instead\n * @property {PluggableList} [remarkPlugins=[]]\n * @property {PluggableList} [rehypePlugins=[]]\n *\n * @typedef LayoutOptions\n * @property {string} [className]\n *\n * @typedef {CoreOptions & PluginOptions & LayoutOptions & FilterOptions & TransformOptions} ReactMarkdownOptions\n *\n * @typedef Deprecation\n * @property {string} id\n * @property {string} [to]\n */\n\nimport React from 'react'\nimport {VFile} from 'vfile'\nimport {unified} from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport PropTypes from 'prop-types'\nimport {html} from 'property-information'\nimport rehypeFilter from './rehype-filter.js'\nimport {uriTransformer} from './uri-transformer.js'\nimport {childrenToReact} from './ast-to-react.js'\n\nconst own = {}.hasOwnProperty\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {Record<string, Deprecation>} */\nconst deprecated = {\n renderers: {to: 'components', id: 'change-renderers-to-components'},\n astPlugins: {id: 'remove-buggy-html-in-markdown-parser'},\n allowDangerousHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n escapeHtml: {id: 'remove-buggy-html-in-markdown-parser'},\n source: {to: 'children', id: 'change-source-to-children'},\n allowNode: {\n to: 'allowElement',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n allowedTypes: {\n to: 'allowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n disallowedTypes: {\n to: 'disallowedElements',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes'\n },\n includeNodeIndex: {\n to: 'includeElementIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n }\n}\n\n/**\n * React component to render markdown.\n *\n * @param {ReactMarkdownOptions} options\n * @returns {ReactElement}\n */\nexport function ReactMarkdown(options) {\n for (const key in deprecated) {\n if (own.call(deprecated, key) && own.call(options, key)) {\n const deprecation = deprecated[key]\n console.warn(\n `[react-markdown] Warning: please ${\n deprecation.to ? `use \\`${deprecation.to}\\` instead of` : 'remove'\n } \\`${key}\\` (see <${changelog}#${deprecation.id}> for more info)`\n )\n delete deprecated[key]\n }\n }\n\n const processor = unified()\n .use(remarkParse)\n // TODO: deprecate `plugins` in v8.0.0.\n .use(options.remarkPlugins || options.plugins || [])\n .use(remarkRehype, {allowDangerousHtml: true})\n .use(options.rehypePlugins || [])\n .use(rehypeFilter, options)\n\n const file = new VFile()\n\n if (typeof options.children === 'string') {\n file.value = options.children\n } else if (options.children !== undefined && options.children !== null) {\n console.warn(\n `[react-markdown] Warning: please pass a string as \\`children\\` (not: \\`${options.children}\\`)`\n )\n }\n\n const hastNode = processor.runSync(processor.parse(file), file)\n\n if (hastNode.type !== 'root') {\n throw new TypeError('Expected a `root` node')\n }\n\n /** @type {ReactElement} */\n let result = React.createElement(\n React.Fragment,\n {},\n childrenToReact({options, schema: html, listDepth: 0}, hastNode)\n )\n\n if (options.className) {\n result = React.createElement('div', {className: options.className}, result)\n }\n\n return result\n}\n\nReactMarkdown.defaultProps = {transformLinkUri: uriTransformer}\n\nReactMarkdown.propTypes = {\n // Core options:\n children: PropTypes.string,\n // Layout options:\n className: PropTypes.string,\n // Filter options:\n allowElement: PropTypes.func,\n allowedElements: PropTypes.arrayOf(PropTypes.string),\n disallowedElements: PropTypes.arrayOf(PropTypes.string),\n unwrapDisallowed: PropTypes.bool,\n // Plugin options:\n remarkPlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n rehypePlugins: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.object, PropTypes.func]))\n ])\n ),\n // Transform options:\n sourcePos: PropTypes.bool,\n rawSourcePos: PropTypes.bool,\n skipHtml: PropTypes.bool,\n includeElementIndex: PropTypes.bool,\n transformLinkUri: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n linkTarget: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),\n transformImageUri: PropTypes.func,\n components: PropTypes.object\n}\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/extends\";\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); 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\nimport React from 'react'; // Get all possible permutations of all power sets\n//\n// Super simple, non-algorithmic solution since the\n// number of class names will not be greater than 4\n\nfunction powerSetPermutations(arr) {\n var arrLength = arr.length;\n if (arrLength === 0 || arrLength === 1) return arr;\n\n if (arrLength === 2) {\n // prettier-ignore\n return [arr[0], arr[1], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength === 3) {\n return [arr[0], arr[1], arr[2], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n\n if (arrLength >= 4) {\n // Currently does not support more than 4 extra\n // class names (after `.token` has been removed)\n return [arr[0], arr[1], arr[2], arr[3], \"\".concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[3], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[3]), \"\".concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[3], \".\").concat(arr[0]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[2], \".\").concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[1], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[0], \".\").concat(arr[2], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[0], \".\").concat(arr[2]), \"\".concat(arr[3], \".\").concat(arr[1], \".\").concat(arr[2], \".\").concat(arr[0]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[0], \".\").concat(arr[1]), \"\".concat(arr[3], \".\").concat(arr[2], \".\").concat(arr[1], \".\").concat(arr[0])];\n }\n}\n\nvar classNameCombinations = {};\n\nfunction getClassNameCombinations(classNames) {\n if (classNames.length === 0 || classNames.length === 1) return classNames;\n var key = classNames.join('.');\n\n if (!classNameCombinations[key]) {\n classNameCombinations[key] = powerSetPermutations(classNames);\n }\n\n return classNameCombinations[key];\n}\n\nexport function createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n var nonTokenClassNames = classNames.filter(function (className) {\n return className !== 'token';\n });\n var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);\n return classNamesCombinations.reduce(function (styleObject, className) {\n return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);\n }, elementStyle);\n}\nexport function createClassNameString(classNames) {\n return classNames.join(' ');\n}\nexport function createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segment-\".concat(childrenCount, \"-\").concat(i)\n });\n });\n };\n}\nexport default function createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n\n if (type === 'text') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var props;\n\n if (!useInlineStyles) {\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(properties.className)\n });\n } else {\n var allStylesheetSelectors = Object.keys(stylesheet).reduce(function (classes, selector) {\n selector.split('.').forEach(function (className) {\n if (!classes.includes(className)) classes.push(className);\n });\n return classes;\n }, []); // For compatibility with older versions of react-syntax-highlighter\n\n var startingClassName = properties.className && properties.className.includes('token') ? ['token'] : [];\n var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {\n return !allStylesheetSelectors.includes(className);\n }));\n props = _objectSpread(_objectSpread({}, properties), {}, {\n className: createClassNameString(className) || undefined,\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n });\n }\n\n var children = childrenCreator(node.children);\n return /*#__PURE__*/React.createElement(TagName, _extends({\n key: key\n }, props), children);\n }\n}","export default (function (astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n});","import _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nvar _excluded = [\"language\", \"children\", \"style\", \"customStyle\", \"codeTagProps\", \"useInlineStyles\", \"showLineNumbers\", \"showInlineLineNumbers\", \"startingLineNumber\", \"lineNumberContainerStyle\", \"lineNumberStyle\", \"wrapLines\", \"wrapLongLines\", \"lineProps\", \"renderer\", \"PreTag\", \"CodeTag\", \"code\", \"astGenerator\"];\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\nimport React from 'react';\nimport createElement from './create-element';\nimport checkForListedLanguage from './checkForListedLanguage';\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return /*#__PURE__*/React.createElement(\"span\", {\n key: \"line-\".concat(i),\n className: \"react-syntax-highlighter-line-number\",\n style: typeof style === 'function' ? style(number) : style\n }, \"\".concat(number, \"\\n\"));\n });\n}\n\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n \"float\": 'left',\n paddingRight: '10px'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return /*#__PURE__*/React.createElement(\"code\", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, '').split('\\n'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\n\nfunction getEmWidthOfNumber(num) {\n return \"\".concat(num.toString().length, \".25em\");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: 'element',\n tagName: 'span',\n properties: {\n key: \"line-number--\".concat(lineNumber),\n className: ['comment', 'linenumber', 'react-syntax-highlighter-line-number'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: 'text',\n value: lineNumber\n }]\n };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: 'inline-block',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: '1em',\n textAlign: 'right',\n userSelect: 'none'\n }; // prep custom styling\n\n var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n var assembledStyle = _objectSpread(_objectSpread({}, defaultLineNumberStyle), customLineNumberStyle);\n\n return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className,\n showLineNumbers = _ref3.showLineNumbers,\n wrapLongLines = _ref3.wrapLongLines;\n var properties = typeof lineProps === 'function' ? lineProps(lineNumber) : lineProps;\n properties['className'] = className;\n\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n if (wrapLongLines & showLineNumbers) {\n properties.style = _objectSpread(_objectSpread({}, properties.style), {}, {\n display: 'flex'\n });\n }\n\n return {\n type: 'element',\n tagName: 'span',\n properties: properties,\n children: children\n };\n}\n\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n\n if (node.type === 'text') {\n newTree.push(createLineElement({\n children: [node],\n className: _toConsumableArray(new Set(className))\n }));\n } else if (node.children) {\n var classNames = className.concat(node.properties.className);\n flattenCodeTree(node.children, classNames).forEach(function (i) {\n return newTree.push(i);\n });\n }\n }\n\n return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines) {\n var _ref4;\n\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className,\n showLineNumbers: showLineNumbers,\n wrapLongLines: wrapLongLines\n });\n }\n\n function createUnwrappedLine(children, lineNumber) {\n if (showLineNumbers && lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n return children;\n }\n\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n\n if (newLines) {\n var splitValue = value.split('\\n');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: 'text',\n value: \"\".concat(text, \"\\n\")\n }; // if it's the first line\n\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n\n var _line = createLine(_children, lineNumber);\n\n newTree.push(_line); // if it's the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n var lastLineInPreviousSpan = {\n type: 'text',\n value: \"\".concat(text)\n };\n\n if (stringChild) {\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [lastLineInPreviousSpan];\n\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n newTree.push(_line2);\n } // if it's neither the first nor the last line\n\n } else {\n var _children3 = [newChild];\n\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n\n index++;\n };\n\n while (index < tree.length) {\n _loop();\n }\n\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n if (children && children.length) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: \"code-segement\".concat(i)\n });\n });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== 'undefined';\n}\n\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue;\n\n // figure out whether we're using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n // lowlight/highlight?\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n if (language === 'text') {\n return {\n value: defaultCodeValue,\n language: 'text'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n } // must be refractor/prism, then\n\n\n try {\n return language && language !== 'text' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\n\nexport default function (defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? \"language-\".concat(language) : undefined,\n style: _objectSpread(_objectSpread({}, style['code[class*=\"language-\"]']), style[\"code[class*=\\\"language-\".concat(language, \"\\\"]\")])\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? true : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$wrapLongLines = _ref7.wrapLongLines,\n wrapLongLines = _ref7$wrapLongLines === void 0 ? false : _ref7$wrapLongLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? 'pre' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = _objectWithoutProperties(_ref7, _excluded);\n\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? /*#__PURE__*/React.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style['pre[class*=\"language-\"]'] || {\n backgroundColor: '#fff'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? 'hljs' : 'prismjs';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? \"\".concat(generatorClassName, \" \").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n\n if (wrapLongLines) {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre-wrap'\n });\n } else {\n codeTagProps.style = _objectSpread(_objectSpread({}, codeTagProps.style), {}, {\n whiteSpace: 'pre'\n });\n }\n\n if (!astGenerator) {\n return /*#__PURE__*/React.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, code));\n }\n /*\n * Some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined.\n */\n\n\n if (wrapLines === undefined && renderer || wrapLongLines) wrapLines = true;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: 'text',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n var largestLineNumber = codeTree.value.length + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);\n return /*#__PURE__*/React.createElement(PreTag, preProps, /*#__PURE__*/React.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n}","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"black\",\n \"background\": \"none\",\n \"textShadow\": \"0 1px white\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"black\",\n \"background\": \"#f5f2f0\",\n \"textShadow\": \"0 1px white\",\n \"fontFamily\": \"Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace\",\n \"fontSize\": \"1em\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \".5em 0\",\n \"overflow\": \"auto\"\n },\n \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"pre[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \"code[class*=\\\"language-\\\"] ::selection\": {\n \"textShadow\": \"none\",\n \"background\": \"#b3d4fc\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#f5f2f0\",\n \"padding\": \".1em\",\n \"borderRadius\": \".3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"slategray\"\n },\n \"prolog\": {\n \"color\": \"slategray\"\n },\n \"doctype\": {\n \"color\": \"slategray\"\n },\n \"cdata\": {\n \"color\": \"slategray\"\n },\n \"punctuation\": {\n \"color\": \"#999\"\n },\n \"namespace\": {\n \"Opacity\": \".7\"\n },\n \"property\": {\n \"color\": \"#905\"\n },\n \"tag\": {\n \"color\": \"#905\"\n },\n \"boolean\": {\n \"color\": \"#905\"\n },\n \"number\": {\n \"color\": \"#905\"\n },\n \"constant\": {\n \"color\": \"#905\"\n },\n \"symbol\": {\n \"color\": \"#905\"\n },\n \"deleted\": {\n \"color\": \"#905\"\n },\n \"selector\": {\n \"color\": \"#690\"\n },\n \"attr-name\": {\n \"color\": \"#690\"\n },\n \"string\": {\n \"color\": \"#690\"\n },\n \"char\": {\n \"color\": \"#690\"\n },\n \"builtin\": {\n \"color\": \"#690\"\n },\n \"inserted\": {\n \"color\": \"#690\"\n },\n \"operator\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \"entity\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\",\n \"cursor\": \"help\"\n },\n \"url\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \".language-css .token.string\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \".style .token.string\": {\n \"color\": \"#9a6e3a\",\n \"background\": \"hsla(0, 0%, 100%, .5)\"\n },\n \"atrule\": {\n \"color\": \"#07a\"\n },\n \"attr-value\": {\n \"color\": \"#07a\"\n },\n \"keyword\": {\n \"color\": \"#07a\"\n },\n \"function\": {\n \"color\": \"#DD4A68\"\n },\n \"class-name\": {\n \"color\": \"#DD4A68\"\n },\n \"regex\": {\n \"color\": \"#e90\"\n },\n \"important\": {\n \"color\": \"#e90\",\n \"fontWeight\": \"bold\"\n },\n \"variable\": {\n \"color\": \"#e90\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n }\n};","import highlight from './highlight';\nimport defaultStyle from './styles/prism/prism';\nimport refractor from 'refractor';\nimport supportedLanguages from './languages/prism/supported-languages';\nvar highlighter = highlight(refractor, defaultStyle);\nhighlighter.supportedLanguages = supportedLanguages;\nexport default highlighter;","//\n// This file has been auto-generated by the `npm run build-languages-prism` task\n//\nexport default ['abap', 'abnf', 'actionscript', 'ada', 'agda', 'al', 'antlr4', 'apacheconf', 'apex', 'apl', 'applescript', 'aql', 'arduino', 'arff', 'asciidoc', 'asm6502', 'asmatmel', 'aspnet', 'autohotkey', 'autoit', 'avisynth', 'avro-idl', 'bash', 'basic', 'batch', 'bbcode', 'bicep', 'birb', 'bison', 'bnf', 'brainfuck', 'brightscript', 'bro', 'bsl', 'c', 'cfscript', 'chaiscript', 'cil', 'clike', 'clojure', 'cmake', 'cobol', 'coffeescript', 'concurnas', 'coq', 'cpp', 'crystal', 'csharp', 'cshtml', 'csp', 'css-extras', 'css', 'csv', 'cypher', 'd', 'dart', 'dataweave', 'dax', 'dhall', 'diff', 'django', 'dns-zone-file', 'docker', 'dot', 'ebnf', 'editorconfig', 'eiffel', 'ejs', 'elixir', 'elm', 'erb', 'erlang', 'etlua', 'excel-formula', 'factor', 'false', 'firestore-security-rules', 'flow', 'fortran', 'fsharp', 'ftl', 'gap', 'gcode', 'gdscript', 'gedcom', 'gherkin', 'git', 'glsl', 'gml', 'gn', 'go-module', 'go', 'graphql', 'groovy', 'haml', 'handlebars', 'haskell', 'haxe', 'hcl', 'hlsl', 'hoon', 'hpkp', 'hsts', 'http', 'ichigojam', 'icon', 'icu-message-format', 'idris', 'iecst', 'ignore', 'inform7', 'ini', 'io', 'j', 'java', 'javadoc', 'javadoclike', 'javascript', 'javastacktrace', 'jexl', 'jolie', 'jq', 'js-extras', 'js-templates', 'jsdoc', 'json', 'json5', 'jsonp', 'jsstacktrace', 'jsx', 'julia', 'keepalived', 'keyman', 'kotlin', 'kumir', 'kusto', 'latex', 'latte', 'less', 'lilypond', 'liquid', 'lisp', 'livescript', 'llvm', 'log', 'lolcode', 'lua', 'magma', 'makefile', 'markdown', 'markup-templating', 'markup', 'matlab', 'maxscript', 'mel', 'mermaid', 'mizar', 'mongodb', 'monkey', 'moonscript', 'n1ql', 'n4js', 'nand2tetris-hdl', 'naniscript', 'nasm', 'neon', 'nevod', 'nginx', 'nim', 'nix', 'nsis', 'objectivec', 'ocaml', 'opencl', 'openqasm', 'oz', 'parigp', 'parser', 'pascal', 'pascaligo', 'pcaxis', 'peoplecode', 'perl', 'php-extras', 'php', 'phpdoc', 'plsql', 'powerquery', 'powershell', 'processing', 'prolog', 'promql', 'properties', 'protobuf', 'psl', 'pug', 'puppet', 'pure', 'purebasic', 'purescript', 'python', 'q', 'qml', 'qore', 'qsharp', 'r', 'racket', 'reason', 'regex', 'rego', 'renpy', 'rest', 'rip', 'roboconf', 'robotframework', 'ruby', 'rust', 'sas', 'sass', 'scala', 'scheme', 'scss', 'shell-session', 'smali', 'smalltalk', 'smarty', 'sml', 'solidity', 'solution-file', 'soy', 'sparql', 'splunk-spl', 'sqf', 'sql', 'squirrel', 'stan', 'stylus', 'swift', 'systemd', 't4-cs', 't4-templating', 't4-vb', 'tap', 'tcl', 'textile', 'toml', 'tremor', 'tsx', 'tt2', 'turtle', 'twig', 'typescript', 'typoscript', 'unrealscript', 'uorazor', 'uri', 'v', 'vala', 'vbnet', 'velocity', 'verilog', 'vhdl', 'vim', 'visual-basic', 'warpscript', 'wasm', 'web-idl', 'wiki', 'wolfram', 'wren', 'xeora', 'xml-doc', 'xojo', 'xquery', 'yaml', 'yang', 'zig'];","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiControl,\n asciiDigit,\n markdownLineEndingOrSpace,\n markdownLineEnding,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nconst www = {\n tokenize: tokenizeWww,\n partial: true\n}\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n}\nconst path = {\n tokenize: tokenizePath,\n partial: true\n}\nconst punctuation = {\n tokenize: tokenizePunctuation,\n partial: true\n}\nconst namedCharacterReference = {\n tokenize: tokenizeNamedCharacterReference,\n partial: true\n}\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n}\nconst httpAutolink = {\n tokenize: tokenizeHttpAutolink,\n previous: previousHttp\n}\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n}\n/** @type {ConstructRecord} */\n\nconst text = {}\n/** @type {Extension} */\n\nexport const gfmAutolinkLiteral = {\n text\n}\nlet code = 48 // Add alphanumerics.\n\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n if (code === 58) code = 65\n else if (code === 91) code = 97\n}\n\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, httpAutolink]\ntext[104] = [emailAutolink, httpAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n/** @type {Tokenizer} */\n\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this\n /** @type {boolean} */\n\n let hasDot\n /** @type {boolean|undefined} */\n\n let hasDigitInLastSegment\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n !gfmAtext(code) ||\n !previousEmail(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n /** @type {State} */\n\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n\n if (code === 64) {\n effects.consume(code)\n return label\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (code === 46) {\n return effects.check(punctuation, done, dotContinuation)(code)\n }\n\n if (code === 45 || code === 95) {\n return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code)\n }\n\n if (asciiAlphanumeric(code)) {\n if (!hasDigitInLastSegment && asciiDigit(code)) {\n hasDigitInLastSegment = true\n }\n\n effects.consume(code)\n return label\n }\n\n return done(code)\n }\n /** @type {State} */\n\n function dotContinuation(code) {\n effects.consume(code)\n hasDot = true\n hasDigitInLastSegment = undefined\n return label\n }\n /** @type {State} */\n\n function dashOrUnderscoreContinuation(code) {\n effects.consume(code)\n return afterDashOrUnderscore\n }\n /** @type {State} */\n\n function afterDashOrUnderscore(code) {\n if (code === 46) {\n return effects.check(punctuation, nok, dotContinuation)(code)\n }\n\n return label(code)\n }\n /** @type {State} */\n\n function done(code) {\n if (hasDot && !hasDigitInLastSegment) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n (code !== 87 && code !== 119) ||\n !previousWww(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww') // For `www.` we check instead of attempt, because when it matches, GH\n // treats it as part of a domain (yes, it says a valid domain must come\n // after `www.`, but thats not how its implemented by them).\n\n return effects.check(\n www,\n effects.attempt(domain, effects.attempt(path, done), nok),\n nok\n )(code)\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeHttpAutolink(effects, ok, nok) {\n const self = this\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n (code !== 72 && code !== 104) ||\n !previousHttp(self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n effects.consume(code)\n return t1\n }\n /** @type {State} */\n\n function t1(code) {\n if (code === 84 || code === 116) {\n effects.consume(code)\n return t2\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function t2(code) {\n if (code === 84 || code === 116) {\n effects.consume(code)\n return p\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function p(code) {\n if (code === 80 || code === 112) {\n effects.consume(code)\n return s\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function s(code) {\n if (code === 83 || code === 115) {\n effects.consume(code)\n return colon\n }\n\n return colon(code)\n }\n /** @type {State} */\n\n function colon(code) {\n if (code === 58) {\n effects.consume(code)\n return slash1\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function slash1(code) {\n if (code === 47) {\n effects.consume(code)\n return slash2\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function slash2(code) {\n if (code === 47) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null ||\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, done), nok)(code)\n }\n /** @type {State} */\n\n function done(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeWww(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return w2\n }\n /** @type {State} */\n\n function w2(code) {\n if (code === 87 || code === 119) {\n effects.consume(code)\n return w3\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function w3(code) {\n if (code === 87 || code === 119) {\n effects.consume(code)\n return dot\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function dot(code) {\n if (code === 46) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n return code === null || markdownLineEnding(code) ? nok(code) : ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean|undefined} */\n let hasUnderscoreInLastSegment\n /** @type {boolean|undefined} */\n\n let hasUnderscoreInLastLastSegment\n return domain\n /** @type {State} */\n\n function domain(code) {\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n done,\n punctuationContinuation\n )(code)\n }\n\n if (code === 46 || code === 95) {\n return effects.check(punctuation, done, punctuationContinuation)(code)\n } // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so thats Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n\n if (\n code === null ||\n asciiControl(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 && unicodePunctuation(code))\n ) {\n return done(code)\n }\n\n effects.consume(code)\n return domain\n }\n /** @type {State} */\n\n function punctuationContinuation(code) {\n if (code === 46) {\n hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment\n hasUnderscoreInLastSegment = undefined\n effects.consume(code)\n return domain\n }\n\n if (code === 95) hasUnderscoreInLastSegment = true\n effects.consume(code)\n return domain\n }\n /** @type {State} */\n\n function done(code) {\n if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) {\n return ok(code)\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePath(effects, ok) {\n let balance = 0\n return inPath\n /** @type {State} */\n\n function inPath(code) {\n if (code === 38) {\n return effects.check(\n namedCharacterReference,\n ok,\n continuedPunctuation\n )(code)\n }\n\n if (code === 40) {\n balance++\n }\n\n if (code === 41) {\n return effects.check(\n punctuation,\n parenAtPathEnd,\n continuedPunctuation\n )(code)\n }\n\n if (pathEnd(code)) {\n return ok(code)\n }\n\n if (trailingPunctuation(code)) {\n return effects.check(punctuation, ok, continuedPunctuation)(code)\n }\n\n effects.consume(code)\n return inPath\n }\n /** @type {State} */\n\n function continuedPunctuation(code) {\n effects.consume(code)\n return inPath\n }\n /** @type {State} */\n\n function parenAtPathEnd(code) {\n balance--\n return balance < 0 ? ok(code) : continuedPunctuation(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNamedCharacterReference(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return inside\n }\n /** @type {State} */\n\n function inside(code) {\n if (asciiAlpha(code)) {\n effects.consume(code)\n return inside\n }\n\n if (code === 59) {\n effects.consume(code)\n return after\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function after(code) {\n // If the named character reference is followed by the end of the path, its\n // not continued punctuation.\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePunctuation(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.consume(code)\n return after\n }\n /** @type {State} */\n\n function after(code) {\n // Check the next.\n if (trailingPunctuation(code)) {\n effects.consume(code)\n return after\n } // If the punctuation marker is followed by the end of the path, its not\n // continued punctuation.\n\n return pathEnd(code) ? ok(code) : nok(code)\n }\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction trailingPunctuation(code) {\n return (\n code === 33 ||\n code === 34 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 60 ||\n code === 63 ||\n code === 95 ||\n code === 126\n )\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction pathEnd(code) {\n return code === null || code === 60 || markdownLineEndingOrSpace(code)\n}\n/**\n * @param {Code} code\n * @returns {boolean}\n */\n\nfunction gfmAtext(code) {\n return (\n code === 43 ||\n code === 45 ||\n code === 46 ||\n code === 95 ||\n asciiAlphanumeric(code)\n )\n}\n/** @type {Previous} */\n\nfunction previousWww(code) {\n return (\n code === null ||\n code === 40 ||\n code === 42 ||\n code === 95 ||\n code === 126 ||\n markdownLineEndingOrSpace(code)\n )\n}\n/** @type {Previous} */\n\nfunction previousHttp(code) {\n return code === null || !asciiAlpha(code)\n}\n/** @type {Previous} */\n\nfunction previousEmail(code) {\n return code !== 47 && previousHttp(code)\n}\n/**\n * @param {Array<Event>} events\n * @returns {boolean}\n */\n\nfunction previousUnbalanced(events) {\n let index = events.length\n let result = false\n\n while (index--) {\n const token = events[index][1]\n\n if (\n (token.type === 'labelLink' || token.type === 'labelImage') &&\n !token._balanced\n ) {\n result = true\n break\n } // @ts-expect-error If weve seen this token, and it was marked as not\n // having any unbalanced bracket before it, we can exit.\n\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false\n break\n }\n }\n\n if (events.length > 0 && !result) {\n // @ts-expect-error Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n }\n\n return result\n}\n","export default {\n \"code[class*=\\\"language-\\\"]\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"none\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\"\n },\n \"pre[class*=\\\"language-\\\"]\": {\n \"color\": \"#e3eaf2\",\n \"background\": \"#111b27\",\n \"fontFamily\": \"Consolas, Monaco, \\\"Andale Mono\\\", \\\"Ubuntu Mono\\\", monospace\",\n \"textAlign\": \"left\",\n \"whiteSpace\": \"pre\",\n \"wordSpacing\": \"normal\",\n \"wordBreak\": \"normal\",\n \"wordWrap\": \"normal\",\n \"lineHeight\": \"1.5\",\n \"MozTabSize\": \"4\",\n \"OTabSize\": \"4\",\n \"tabSize\": \"4\",\n \"WebkitHyphens\": \"none\",\n \"MozHyphens\": \"none\",\n \"msHyphens\": \"none\",\n \"hyphens\": \"none\",\n \"padding\": \"1em\",\n \"margin\": \"0.5em 0\",\n \"overflow\": \"auto\"\n },\n \"pre[class*=\\\"language-\\\"]::-moz-selection\": {\n \"background\": \"#3c526d\"\n },\n \"pre[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"background\": \"#3c526d\"\n },\n \"code[class*=\\\"language-\\\"]::-moz-selection\": {\n \"background\": \"#3c526d\"\n },\n \"code[class*=\\\"language-\\\"] ::-moz-selection\": {\n \"background\": \"#3c526d\"\n },\n \"pre[class*=\\\"language-\\\"]::selection\": {\n \"background\": \"#3c526d\"\n },\n \"pre[class*=\\\"language-\\\"] ::selection\": {\n \"background\": \"#3c526d\"\n },\n \"code[class*=\\\"language-\\\"]::selection\": {\n \"background\": \"#3c526d\"\n },\n \"code[class*=\\\"language-\\\"] ::selection\": {\n \"background\": \"#3c526d\"\n },\n \":not(pre) > code[class*=\\\"language-\\\"]\": {\n \"background\": \"#111b27\",\n \"padding\": \"0.1em 0.3em\",\n \"borderRadius\": \"0.3em\",\n \"whiteSpace\": \"normal\"\n },\n \"comment\": {\n \"color\": \"#8da1b9\"\n },\n \"prolog\": {\n \"color\": \"#8da1b9\"\n },\n \"doctype\": {\n \"color\": \"#8da1b9\"\n },\n \"cdata\": {\n \"color\": \"#8da1b9\"\n },\n \"punctuation\": {\n \"color\": \"#e3eaf2\"\n },\n \"delimiter.important\": {\n \"color\": \"#66cccc\",\n \"fontWeight\": \"inherit\"\n },\n \"selector.parent\": {\n \"color\": \"#66cccc\"\n },\n \"tag\": {\n \"color\": \"#66cccc\"\n },\n \"tag.punctuation\": {\n \"color\": \"#66cccc\"\n },\n \"attr-name\": {\n \"color\": \"#e6d37a\"\n },\n \"boolean\": {\n \"color\": \"#e6d37a\"\n },\n \"boolean.important\": {\n \"color\": \"#e6d37a\"\n },\n \"number\": {\n \"color\": \"#e6d37a\"\n },\n \"constant\": {\n \"color\": \"#e6d37a\"\n },\n \"selector.attribute\": {\n \"color\": \"#e6d37a\"\n },\n \"class-name\": {\n \"color\": \"#6cb8e6\"\n },\n \"key\": {\n \"color\": \"#6cb8e6\"\n },\n \"parameter\": {\n \"color\": \"#6cb8e6\"\n },\n \"property\": {\n \"color\": \"#6cb8e6\"\n },\n \"property-access\": {\n \"color\": \"#6cb8e6\"\n },\n \"variable\": {\n \"color\": \"#6cb8e6\"\n },\n \"attr-value\": {\n \"color\": \"#91d076\"\n },\n \"inserted\": {\n \"color\": \"#91d076\"\n },\n \"color\": {\n \"color\": \"#91d076\"\n },\n \"selector.value\": {\n \"color\": \"#91d076\"\n },\n \"string\": {\n \"color\": \"#91d076\"\n },\n \"string.url-link\": {\n \"color\": \"#91d076\"\n },\n \"builtin\": {\n \"color\": \"#f4adf4\"\n },\n \"keyword-array\": {\n \"color\": \"#f4adf4\"\n },\n \"package\": {\n \"color\": \"#f4adf4\"\n },\n \"regex\": {\n \"color\": \"#f4adf4\"\n },\n \"function\": {\n \"color\": \"#c699e3\"\n },\n \"selector.class\": {\n \"color\": \"#c699e3\"\n },\n \"selector.id\": {\n \"color\": \"#c699e3\"\n },\n \"atrule.rule\": {\n \"color\": \"#e9ae7e\"\n },\n \"combinator\": {\n \"color\": \"#e9ae7e\"\n },\n \"keyword\": {\n \"color\": \"#e9ae7e\"\n },\n \"operator\": {\n \"color\": \"#e9ae7e\"\n },\n \"pseudo-class\": {\n \"color\": \"#e9ae7e\"\n },\n \"pseudo-element\": {\n \"color\": \"#e9ae7e\"\n },\n \"selector\": {\n \"color\": \"#e9ae7e\"\n },\n \"unit\": {\n \"color\": \"#e9ae7e\"\n },\n \"deleted\": {\n \"color\": \"#cd6660\"\n },\n \"important\": {\n \"color\": \"#cd6660\",\n \"fontWeight\": \"bold\"\n },\n \"keyword-this\": {\n \"color\": \"#6cb8e6\",\n \"fontWeight\": \"bold\"\n },\n \"this\": {\n \"color\": \"#6cb8e6\",\n \"fontWeight\": \"bold\"\n },\n \"bold\": {\n \"fontWeight\": \"bold\"\n },\n \"italic\": {\n \"fontStyle\": \"italic\"\n },\n \"entity\": {\n \"cursor\": \"help\"\n },\n \".language-markdown .token.title\": {\n \"color\": \"#6cb8e6\",\n \"fontWeight\": \"bold\"\n },\n \".language-markdown .token.title .token.punctuation\": {\n \"color\": \"#6cb8e6\",\n \"fontWeight\": \"bold\"\n },\n \".language-markdown .token.blockquote.punctuation\": {\n \"color\": \"#f4adf4\"\n },\n \".language-markdown .token.code\": {\n \"color\": \"#66cccc\"\n },\n \".language-markdown .token.hr.punctuation\": {\n \"color\": \"#6cb8e6\"\n },\n \".language-markdown .token.url .token.content\": {\n \"color\": \"#91d076\"\n },\n \".language-markdown .token.url-link\": {\n \"color\": \"#e6d37a\"\n },\n \".language-markdown .token.list.punctuation\": {\n \"color\": \"#f4adf4\"\n },\n \".language-markdown .token.table-header\": {\n \"color\": \"#e3eaf2\"\n },\n \".language-json .token.operator\": {\n \"color\": \"#e3eaf2\"\n },\n \".language-scss .token.variable\": {\n \"color\": \"#66cccc\"\n },\n \"token.tab:not(:empty):before\": {\n \"color\": \"#8da1b9\"\n },\n \"token.cr:before\": {\n \"color\": \"#8da1b9\"\n },\n \"token.lf:before\": {\n \"color\": \"#8da1b9\"\n },\n \"token.space:before\": {\n \"color\": \"#8da1b9\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:hover\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6da\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > a:focus\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6da\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:hover\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6da\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > button:focus\": {\n \"color\": \"#111b27\",\n \"background\": \"#6cb8e6da\",\n \"textDecoration\": \"none\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span\": {\n \"color\": \"#111b27\",\n \"background\": \"#8da1b9\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:hover\": {\n \"color\": \"#111b27\",\n \"background\": \"#8da1b9\"\n },\n \"div.code-toolbar > .toolbar.toolbar > .toolbar-item > span:focus\": {\n \"color\": \"#111b27\",\n \"background\": \"#8da1b9\"\n },\n \".line-highlight.line-highlight\": {\n \"background\": \"linear-gradient(to right, #3c526d5f 70%, #3c526d55)\"\n },\n \".line-highlight.line-highlight:before\": {\n \"backgroundColor\": \"#8da1b9\",\n \"color\": \"#111b27\",\n \"boxShadow\": \"0 1px #3c526d\"\n },\n \".line-highlight.line-highlight[data-end]:after\": {\n \"backgroundColor\": \"#8da1b9\",\n \"color\": \"#111b27\",\n \"boxShadow\": \"0 1px #3c526d\"\n },\n \"pre[id].linkable-line-numbers.linkable-line-numbers span.line-numbers-rows > span:hover:before\": {\n \"backgroundColor\": \"#8da1b918\"\n },\n \".line-numbers.line-numbers .line-numbers-rows\": {\n \"borderRight\": \"1px solid #0b121b\",\n \"background\": \"#0b121b7a\"\n },\n \".line-numbers .line-numbers-rows > span:before\": {\n \"color\": \"#8da1b9da\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-1\": {\n \"color\": \"#e6d37a\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-5\": {\n \"color\": \"#e6d37a\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-9\": {\n \"color\": \"#e6d37a\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-2\": {\n \"color\": \"#f4adf4\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-6\": {\n \"color\": \"#f4adf4\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-10\": {\n \"color\": \"#f4adf4\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-3\": {\n \"color\": \"#6cb8e6\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-7\": {\n \"color\": \"#6cb8e6\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-11\": {\n \"color\": \"#6cb8e6\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-4\": {\n \"color\": \"#c699e3\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-8\": {\n \"color\": \"#c699e3\"\n },\n \".rainbow-braces .token.token.punctuation.brace-level-12\": {\n \"color\": \"#c699e3\"\n },\n \"pre.diff-highlight > code .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"#cd66601f\"\n },\n \"pre > code.diff-highlight .token.token.deleted:not(.prefix)\": {\n \"backgroundColor\": \"#cd66601f\"\n },\n \"pre.diff-highlight > code .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"#91d0761f\"\n },\n \"pre > code.diff-highlight .token.token.inserted:not(.prefix)\": {\n \"backgroundColor\": \"#91d0761f\"\n },\n \".command-line .command-line-prompt\": {\n \"borderRight\": \"1px solid #0b121b\"\n },\n \".command-line .command-line-prompt > span:before\": {\n \"color\": \"#8da1b9da\"\n }\n};","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n */\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace\n} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n}\n/**\n * @returns {Extension}\n */\n\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this\n let index = self.events.length\n /** @type {Array<string>} */\n // @ts-expect-error Its fine!\n\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {Token} */\n\n let labelStart // Find an opening.\n\n while (index--) {\n const token = self.events[index][1]\n\n if (token.type === 'labelImage') {\n labelStart = token\n break\n } // Exit if weve walked far enough.\n\n if (\n token.type === 'gfmFootnoteCall' ||\n token.type === 'labelLink' ||\n token.type === 'label' ||\n token.type === 'image' ||\n token.type === 'link'\n ) {\n break\n }\n }\n\n return start\n /** @type {State} */\n\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code)\n }\n\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n\n if (id.charCodeAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code)\n }\n\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return ok(code)\n }\n}\n/** @type {Resolver} */\n\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length\n /** @type {Token|undefined} */\n\n let labelStart // Find an opening.\n\n while (index--) {\n if (\n events[index][1].type === 'labelImage' &&\n events[index][0] === 'enter'\n ) {\n labelStart = events[index][1]\n break\n }\n }\n\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = 'data'\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker' // The whole (without `!`):\n\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n } // The `^` marker\n\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n } // Increment the end 1 character.\n\n marker.end.column++\n marker.end.offset++\n marker.end._bufferIndex++\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n }\n const chunk = {\n type: 'chunkString',\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n }\n /** @type {Array<Event>} */\n\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n ['enter', call, context], // The `[`\n events[index + 3],\n events[index + 4], // The `^`.\n ['enter', marker, context],\n ['exit', marker, context], // Everything in between.\n ['enter', string, context],\n ['enter', chunk, context],\n ['exit', chunk, context],\n ['exit', string, context], // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n ['exit', call, context]\n ]\n events.splice(index, events.length - index + 1, ...replacement)\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this\n /** @type {Array<string>} */\n // @ts-expect-error Its fine!\n\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n let size = 0\n /** @type {boolean} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('gfmFootnoteCall')\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return callStart\n }\n /** @type {State} */\n\n function callStart(code) {\n if (code !== 94) return nok(code)\n effects.enter('gfmFootnoteCallMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallMarker')\n effects.enter('gfmFootnoteCallString')\n effects.enter('chunkString').contentType = 'string'\n return callData\n }\n /** @type {State} */\n\n function callData(code) {\n /** @type {Token} */\n let token\n\n if (code === null || code === 91 || size++ > 999) {\n return nok(code)\n }\n\n if (code === 93) {\n if (!data) {\n return nok(code)\n }\n\n effects.exit('chunkString')\n token = effects.exit('gfmFootnoteCallString')\n return defined.includes(normalizeIdentifier(self.sliceSerialize(token)))\n ? end(code)\n : nok(code)\n }\n\n effects.consume(code)\n\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n\n return code === 92 ? callEscape : callData\n }\n /** @type {State} */\n\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return callData\n }\n\n return callData(code)\n }\n /** @type {State} */\n\n function end(code) {\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n effects.exit('gfmFootnoteCall')\n return ok\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this\n /** @type {Array<string>} */\n // @ts-expect-error Its fine!\n\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {string} */\n\n let identifier\n let size = 0\n /** @type {boolean|undefined} */\n\n let data\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true\n effects.enter('gfmFootnoteDefinitionLabel')\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n return labelStart\n }\n /** @type {State} */\n\n function labelStart(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionMarker')\n effects.enter('gfmFootnoteDefinitionLabelString')\n return atBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function atBreak(code) {\n /** @type {Token} */\n let token\n\n if (code === null || code === 91 || size > 999) {\n return nok(code)\n }\n\n if (code === 93) {\n if (!data) {\n return nok(code)\n }\n\n token = effects.exit('gfmFootnoteDefinitionLabelString')\n identifier = normalizeIdentifier(self.sliceSerialize(token))\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n effects.exit('gfmFootnoteDefinitionLabel')\n return labelAfter\n }\n\n if (markdownLineEnding(code)) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n size++\n return atBreak\n }\n\n effects.enter('chunkString').contentType = 'string'\n return label(code)\n }\n /** @type {State} */\n\n function label(code) {\n if (\n code === null ||\n markdownLineEnding(code) ||\n code === 91 ||\n code === 93 ||\n size > 999\n ) {\n effects.exit('chunkString')\n return atBreak(code)\n }\n\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n\n size++\n effects.consume(code)\n return code === 92 ? labelEscape : label\n }\n /** @type {State} */\n\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return label\n }\n\n return label(code)\n }\n /** @type {State} */\n\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker') // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n\n return factorySpace(effects, done, 'gfmFootnoteDefinitionWhitespace')\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function done(code) {\n if (!defined.includes(identifier)) {\n defined.push(identifier)\n }\n\n return ok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n/** @type {Exiter} */\n\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition')\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'gfmFootnoteDefinitionIndent',\n 4 + 1\n )\n /** @type {State} */\n\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === 4\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef Options\n * Configuration (optional).\n * @property {boolean} [singleTilde=true]\n * Whether to support strikethrough with a single tilde (`boolean`, default:\n * `true`).\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n\n/**\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfmStrikethrough(options = {}) {\n let single = options.singleTilde\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n\n if (single === null || single === undefined) {\n single = true\n }\n\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n }\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n\n function resolveAllStrikethrough(events, context) {\n let index = -1 // Walk through all events.\n\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n let open = index // Now walk back to find an opener.\n\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open && // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n }\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n } // Opening.\n\n const nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ] // Between.\n\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(\n context.parser.constructs.insideSpan.null,\n events.slice(open + 1, index),\n context\n )\n ) // Closing.\n\n splice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n\n index = -1\n\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n\n return events\n }\n /** @type {Tokenizer} */\n\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous\n const events = this.events\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n if (\n previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape'\n ) {\n return nok(code)\n }\n\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n /** @type {State} */\n\n function more(code) {\n const before = classifyCharacter(previous)\n\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n\n if (size < 2 && !single) return nok(code)\n const token = effects.exit('strikethroughSequenceTemporary')\n const after = classifyCharacter(code)\n token._open = !after || (after === 2 && Boolean(before))\n token._close = !before || (before === 2 && Boolean(after))\n return ok(code)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n */\n\n/**\n * @typedef {'left'|'center'|'right'|'none'} Align\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\n\n/** @type {Extension} */\nexport const gfmTable = {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolve: resolveTable\n }\n }\n}\nconst nextPrefixedOrBlank = {\n tokenize: tokenizeNextPrefixedOrBlank,\n partial: true\n}\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1\n /** @type {boolean|undefined} */\n\n let inHead\n /** @type {boolean|undefined} */\n\n let inDelimiterRow\n /** @type {boolean|undefined} */\n\n let inRow\n /** @type {number|undefined} */\n\n let contentStart\n /** @type {number|undefined} */\n\n let contentEnd\n /** @type {number|undefined} */\n\n let cellStart\n /** @type {boolean|undefined} */\n\n let seenCellInRow\n\n while (++index < events.length) {\n const token = events[index][1]\n\n if (inRow) {\n if (token.type === 'temporaryTableCellContent') {\n contentStart = contentStart || index\n contentEnd = index\n }\n\n if (\n // Combine separate content parts into one.\n (token.type === 'tableCellDivider' || token.type === 'tableRow') &&\n contentEnd\n ) {\n const content = {\n type: 'tableContent',\n start: events[contentStart][1].start,\n end: events[contentEnd][1].end\n }\n /** @type {Token} */\n\n const text = {\n type: 'chunkText',\n start: content.start,\n end: content.end,\n // @ts-expect-error Its fine.\n contentType: 'text'\n }\n events.splice(\n contentStart,\n contentEnd - contentStart + 1,\n ['enter', content, context],\n ['enter', text, context],\n ['exit', text, context],\n ['exit', content, context]\n )\n index -= contentEnd - contentStart - 3\n contentStart = undefined\n contentEnd = undefined\n }\n }\n\n if (\n events[index][0] === 'exit' &&\n cellStart !== undefined &&\n cellStart + (seenCellInRow ? 0 : 1) < index &&\n (token.type === 'tableCellDivider' ||\n (token.type === 'tableRow' &&\n (cellStart + 3 < index ||\n events[cellStart][1].type !== 'whitespace')))\n ) {\n const cell = {\n type: inDelimiterRow\n ? 'tableDelimiter'\n : inHead\n ? 'tableHeader'\n : 'tableData',\n start: events[cellStart][1].start,\n end: events[index][1].end\n }\n events.splice(index + (token.type === 'tableCellDivider' ? 1 : 0), 0, [\n 'exit',\n cell,\n context\n ])\n events.splice(cellStart, 0, ['enter', cell, context])\n index += 2\n cellStart = index + 1\n seenCellInRow = true\n }\n\n if (token.type === 'tableRow') {\n inRow = events[index][0] === 'enter'\n\n if (inRow) {\n cellStart = index + 1\n seenCellInRow = false\n }\n }\n\n if (token.type === 'tableDelimiterRow') {\n inDelimiterRow = events[index][0] === 'enter'\n\n if (inDelimiterRow) {\n cellStart = index + 1\n seenCellInRow = false\n }\n }\n\n if (token.type === 'tableHead') {\n inHead = events[index][0] === 'enter'\n }\n }\n\n return events\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTable(effects, ok, nok) {\n const self = this\n /** @type {Array<Align>} */\n\n const align = []\n let tableHeaderCount = 0\n /** @type {boolean|undefined} */\n\n let seenDelimiter\n /** @type {boolean|undefined} */\n\n let hasDash\n return start\n /** @type {State} */\n\n function start(code) {\n // @ts-expect-error Custom.\n effects.enter('table')._align = align\n effects.enter('tableHead')\n effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n return cellDividerHead(code)\n }\n\n tableHeaderCount++\n effects.enter('temporaryTableCellContent') // Cant be space or eols at the start of a construct, so were in a cell.\n\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function cellDividerHead(code) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n seenDelimiter = true\n return cellBreakHead\n }\n /** @type {State} */\n\n function cellBreakHead(code) {\n if (code === null || markdownLineEnding(code)) {\n return atRowEndHead(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceHead\n }\n\n if (seenDelimiter) {\n seenDelimiter = undefined\n tableHeaderCount++\n }\n\n if (code === 124) {\n return cellDividerHead(code)\n } // Anything else is cell content.\n\n effects.enter('temporaryTableCellContent')\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function inWhitespaceHead(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceHead\n }\n\n effects.exit('whitespace')\n return cellBreakHead(code)\n }\n /** @type {State} */\n\n function inCellContentHead(code) {\n // EOF, whitespace, pipe\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('temporaryTableCellContent')\n return cellBreakHead(code)\n }\n\n effects.consume(code)\n return code === 92 ? inCellContentEscapeHead : inCellContentHead\n }\n /** @type {State} */\n\n function inCellContentEscapeHead(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentHead\n } // Anything else.\n\n return inCellContentHead(code)\n }\n /** @type {State} */\n\n function atRowEndHead(code) {\n if (code === null) {\n return nok(code)\n }\n\n effects.exit('tableRow')\n effects.exit('tableHead')\n const originalInterrupt = self.interrupt\n self.interrupt = true\n return effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n function (code) {\n self.interrupt = originalInterrupt\n effects.enter('tableDelimiterRow')\n return atDelimiterRowBreak(code)\n },\n function (code) {\n self.interrupt = originalInterrupt\n return nok(code)\n }\n )(code)\n }\n /** @type {State} */\n\n function atDelimiterRowBreak(code) {\n if (code === null || markdownLineEnding(code)) {\n return rowEndDelimiter(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n align.push('none')\n return inFillerDelimiter\n }\n\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align.push('left')\n return afterLeftAlignment\n } // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function inWhitespaceDelimiter(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceDelimiter\n }\n\n effects.exit('whitespace')\n return atDelimiterRowBreak(code)\n }\n /** @type {State} */\n\n function inFillerDelimiter(code) {\n if (code === 45) {\n effects.consume(code)\n return inFillerDelimiter\n }\n\n effects.exit('tableDelimiterFiller')\n\n if (code === 58) {\n effects.enter('tableDelimiterAlignment')\n effects.consume(code)\n effects.exit('tableDelimiterAlignment')\n align[align.length - 1] =\n align[align.length - 1] === 'left' ? 'center' : 'right'\n return afterRightAlignment\n }\n\n return atDelimiterRowBreak(code)\n }\n /** @type {State} */\n\n function afterLeftAlignment(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n effects.consume(code)\n hasDash = true\n return inFillerDelimiter\n } // Anything else is not ok.\n\n return nok(code)\n }\n /** @type {State} */\n\n function afterRightAlignment(code) {\n if (code === null || markdownLineEnding(code)) {\n return rowEndDelimiter(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceDelimiter\n } // `|`\n\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return atDelimiterRowBreak\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function rowEndDelimiter(code) {\n effects.exit('tableDelimiterRow') // Exit if there was no dash at all, or if the header cell count is not the\n // delimiter cell count.\n\n if (!hasDash || tableHeaderCount !== align.length) {\n return nok(code)\n }\n\n if (code === null) {\n return tableClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableClose,\n effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n factorySpace(effects, bodyStart, 'linePrefix', 4),\n tableClose\n )\n )(code)\n }\n /** @type {State} */\n\n function tableClose(code) {\n effects.exit('table')\n return ok(code)\n }\n /** @type {State} */\n\n function bodyStart(code) {\n effects.enter('tableBody')\n return rowStartBody(code)\n }\n /** @type {State} */\n\n function rowStartBody(code) {\n effects.enter('tableRow') // If we start with a pipe, we open a cell marker.\n\n if (code === 124) {\n return cellDividerBody(code)\n }\n\n effects.enter('temporaryTableCellContent') // Cant be space or eols at the start of a construct, so were in a cell.\n\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function cellDividerBody(code) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return cellBreakBody\n }\n /** @type {State} */\n\n function cellBreakBody(code) {\n if (code === null || markdownLineEnding(code)) {\n return atRowEndBody(code)\n }\n\n if (markdownSpace(code)) {\n effects.enter('whitespace')\n effects.consume(code)\n return inWhitespaceBody\n } // `|`\n\n if (code === 124) {\n return cellDividerBody(code)\n } // Anything else is cell content.\n\n effects.enter('temporaryTableCellContent')\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function inWhitespaceBody(code) {\n if (markdownSpace(code)) {\n effects.consume(code)\n return inWhitespaceBody\n }\n\n effects.exit('whitespace')\n return cellBreakBody(code)\n }\n /** @type {State} */\n\n function inCellContentBody(code) {\n // EOF, whitespace, pipe\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('temporaryTableCellContent')\n return cellBreakBody(code)\n }\n\n effects.consume(code)\n return code === 92 ? inCellContentEscapeBody : inCellContentBody\n }\n /** @type {State} */\n\n function inCellContentEscapeBody(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return inCellContentBody\n } // Anything else.\n\n return inCellContentBody(code)\n }\n /** @type {State} */\n\n function atRowEndBody(code) {\n effects.exit('tableRow')\n\n if (code === null) {\n return tableBodyClose(code)\n }\n\n return effects.check(\n nextPrefixedOrBlank,\n tableBodyClose,\n effects.attempt(\n {\n tokenize: tokenizeRowEnd,\n partial: true\n },\n factorySpace(effects, rowStartBody, 'linePrefix', 4),\n tableBodyClose\n )\n )(code)\n }\n /** @type {State} */\n\n function tableBodyClose(code) {\n effects.exit('tableBody')\n return tableClose(code)\n }\n /** @type {Tokenizer} */\n\n function tokenizeRowEnd(effects, ok, nok) {\n return start\n /** @type {State} */\n\n function start(code) {\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return factorySpace(effects, prefixed, 'linePrefix')\n }\n /** @type {State} */\n\n function prefixed(code) {\n // Blank or interrupting line.\n if (\n self.parser.lazy[self.now().line] ||\n code === null ||\n markdownLineEnding(code)\n ) {\n return nok(code)\n }\n\n const tail = self.events[self.events.length - 1] // Indented code can interrupt delimiter and body rows.\n\n if (\n !self.parser.constructs.disable.null.includes('codeIndented') &&\n tail &&\n tail[1].type === 'linePrefix' &&\n tail[2].sliceSerialize(tail[1], true).length >= 4\n ) {\n return nok(code)\n }\n\n self._gfmTableDynamicInterruptHack = true\n return effects.check(\n self.parser.constructs.flow,\n function (code) {\n self._gfmTableDynamicInterruptHack = false\n return nok(code)\n },\n function (code) {\n self._gfmTableDynamicInterruptHack = false\n return ok(code)\n }\n )(code)\n }\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeNextPrefixedOrBlank(effects, ok, nok) {\n let size = 0\n return start\n /** @type {State} */\n\n function start(code) {\n // This is a check, so we dont care about tokens, but we open a bogus one\n // so were valid.\n effects.enter('check') // EOL.\n\n effects.consume(code)\n return whitespace\n }\n /** @type {State} */\n\n function whitespace(code) {\n if (code === -1 || code === 32) {\n effects.consume(code)\n size++\n return size === 4 ? ok : whitespace\n } // EOF or whitespace\n\n if (code === null || markdownLineEndingOrSpace(code)) {\n return ok(code)\n } // Anything else.\n\n return nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Code} Code\n */\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEndingOrSpace,\n markdownLineEnding\n} from 'micromark-util-character'\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n}\nexport const gfmTaskListItem = {\n text: {\n [91]: tasklistCheck\n }\n}\n/** @type {Tokenizer} */\n\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this\n return open\n /** @type {State} */\n\n function open(code) {\n if (\n // Exit if theres stuff before.\n self.previous !== null || // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n /** @type {State} */\n\n function inside(code) {\n // To match how GH works in comments, use `markdownSpace` (`[ \\t]`) instead\n // of `markdownLineEndingOrSpace` (`[ \\t\\r\\n]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n\n return nok(code)\n }\n /** @type {State} */\n\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )\n }\n\n return nok(code)\n }\n}\n/** @type {Tokenizer} */\n\nfunction spaceThenNonSpace(effects, ok, nok) {\n const self = this\n return factorySpace(effects, after, 'whitespace')\n /** @type {State} */\n\n function after(code) {\n const tail = self.events[self.events.length - 1]\n return (\n // We either found spaces…\n ((tail && tail[1].type === 'whitespace') || // …or it was followed by a line ending, in which case, there has to be\n // non-whitespace after that line ending, because otherwise wed get an\n // EOF as the content is closed with blank lines.\n markdownLineEnding(code)) &&\n code !== null\n ? ok(code)\n : nok(code)\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Support GFM or markdown on github.com.\n *\n * @param {Options} [options]\n * @returns {Extension}\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral,\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable,\n gfmTaskListItem\n ])\n}\n\n/**\n * Support to compile GFM to HTML.\n *\n * @param {HtmlOptions} [options]\n * @returns {HtmlExtension}\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml,\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml,\n gfmTableHtml,\n gfmTagfilterHtml,\n gfmTaskListItemHtml\n ])\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {Test} [ignore]\n * `unist-util-is` test used to assert parents\n *\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Content} Content\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Text} Text\n * @typedef {Content|Root} Node\n * @typedef {Exclude<Extract<Node, import('mdast').Parent>, Root>} Parent\n *\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n *\n * @typedef RegExpMatchObject\n * @property {number} index\n * @property {string} input\n * @property {[Root, ...Array<Parent>, Text]} stack\n *\n * @typedef {string|RegExp} Find\n * @typedef {string|ReplaceFunction} Replace\n *\n * @typedef {[Find, Replace]} FindAndReplaceTuple\n * @typedef {Record<string, Replace>} FindAndReplaceSchema\n * @typedef {Array<FindAndReplaceTuple>} FindAndReplaceList\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * @typedef {Array<Pair>} Pairs\n */\n\n/**\n * @callback ReplaceFunction\n * @param {...any} parameters\n * @returns {Array<PhrasingContent>|PhrasingContent|string|false|undefined|null}\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param tree mdast tree\n * @param find Value to find and remove. When `string`, escaped and made into a global `RegExp`\n * @param [replace] Value to insert.\n * * When `string`, turned into a Text node.\n * * When `Function`, called with the results of calling `RegExp.exec` as\n * arguments, in which case it can return a single or a list of `Node`,\n * a `string` (which is wrapped in a `Text` node), or `false` to not replace\n * @param [options] Configuration.\n */\nexport const findAndReplace =\n /**\n * @type {(\n * ((tree: Node, find: Find, replace?: Replace, options?: Options) => Node) &\n * ((tree: Node, schema: FindAndReplaceSchema|FindAndReplaceList, options?: Options) => Node)\n * )}\n **/\n (\n /**\n * @param {Node} tree\n * @param {Find|FindAndReplaceSchema|FindAndReplaceList} find\n * @param {Replace|Options} [replace]\n * @param {Options} [options]\n */\n function (tree, find, replace, options) {\n /** @type {Options|undefined} */\n let settings\n /** @type {FindAndReplaceSchema|FindAndReplaceList} */\n let schema\n\n if (typeof find === 'string' || find instanceof RegExp) {\n // @ts-expect-error dont expect options twice.\n schema = [[find, replace]]\n settings = options\n } else {\n schema = find\n // @ts-expect-error dont expect replace twice.\n settings = replace\n }\n\n if (!settings) {\n settings = {}\n }\n\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(schema)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n return tree\n\n /** @type {import('unist-util-visit-parents/complex-types').BuildVisitor<Root, 'text'>} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parent|undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = /** @type {Parent} */ (parents[index])\n\n if (\n ignored(\n parent,\n // @ts-expect-error mdast vs. unist parent.\n grandparent ? grandparent.children.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n // @ts-expect-error: stack is fine.\n return handler(node, parents)\n }\n }\n\n /**\n * @param {Text} node\n * @param {[Root, ...Array<Parent>]} parents\n * @returns {VisitorResult}\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n // @ts-expect-error: TS is wrong, some of these children can be text.\n const index = parent.children.indexOf(node)\n let change = false\n /** @type {Array<PhrasingContent>} */\n let nodes = []\n /** @type {number|undefined} */\n let position\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n if (value !== false) {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n }\n )\n\n/**\n * @param {FindAndReplaceSchema|FindAndReplaceList} schema\n * @returns {Pairs}\n */\nfunction toPairs(schema) {\n /** @type {Pairs} */\n const result = []\n\n if (typeof schema !== 'object') {\n throw new TypeError('Expected array or object as schema')\n }\n\n if (Array.isArray(schema)) {\n let index = -1\n\n while (++index < schema.length) {\n result.push([\n toExpression(schema[index][0]),\n toFunction(schema[index][1])\n ])\n }\n } else {\n /** @type {string} */\n let key\n\n for (key in schema) {\n if (own.call(schema, key)) {\n result.push([toExpression(key), toFunction(schema[key])])\n }\n }\n }\n\n return result\n}\n\n/**\n * @param {Find} find\n * @returns {RegExp}\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * @param {Replace} replace\n * @returns {ReplaceFunction}\n */\nfunction toFunction(replace) {\n return typeof replace === 'function' ? replace : () => replace\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when its always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown/lib/types.js').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').PhrasingContent} PhrasingContent\n */\n\nimport {ccount} from 'ccount'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\n\nconst inConstruct = 'phrasing'\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/** @type {FromMarkdownExtension} */\nexport const gfmAutolinkLiteralFromMarkdown = {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmAutolinkLiteralToMarkdown = {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {character: ':', before: '[ps]', after: '\\\\/', inConstruct, notInConstruct}\n ]\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = /** @type {Link} */ (this.stack[this.stack.length - 1])\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {PhrasingContent} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[_-\\d]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string|undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n /** @type {number} */\n let closingParenIndex\n /** @type {number} */\n let openingParens\n /** @type {number} */\n let closingParens\n /** @type {string|undefined} */\n let trail\n\n if (trailExec) {\n url = url.slice(0, trailExec.index)\n trail = trailExec[0]\n closingParenIndex = trail.indexOf(')')\n openingParens = ccount(url, '(')\n closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","/**\n * @typedef {import('mdast').Association} Association\n */\n\nimport {decodeString} from 'micromark-util-decode-string'\n\n/**\n * The `label` of an association is the string value: character escapes and\n * references work, and casing is intact.\n * The `identifier` is used to match one association to another: controversially,\n * character escapes and references dont work in this matching: `&copy;` does\n * not match `©`, and `\\+` does not match `+`.\n * But casing is ignored (and whitespace) is trimmed and collapsed: ` A\\nb`\n * matches `a b`.\n * So, we do prefer the label when figuring out how were going to serialize:\n * it has whitespace, casing, and we can ignore most useless character escapes\n * and all character references.\n *\n * @param {Association} node\n * @returns {string}\n */\nexport function association(node) {\n if (node.label || !node.identifier) {\n return node.label || ''\n }\n\n return decodeString(node.identifier)\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\n/**\n * Functions to track output positions.\n * This info isnt used yet but suchs functionality allows line wrapping,\n * and theoretically source maps (though, is there practical use in that?).\n *\n * @param {TrackFields} options_\n */\nexport function track(options_) {\n // Defaults are used to prevent crashes when older utilities somehow activate\n // this code.\n /* c8 ignore next 5 */\n const options = options_ || {}\n const now = options.now || {}\n let lineShift = options.lineShift || 0\n let line = now.line || 1\n let column = now.column || 1\n\n return {move, current, shift}\n\n /**\n * Get the current tracked info.\n *\n * @returns {{now: Point, lineShift: number}}\n */\n function current() {\n return {now: {line, column}, lineShift}\n }\n\n /**\n * Define an increased line shift (the typical indent for lines).\n *\n * @param {number} value\n */\n function shift(value) {\n lineShift += value\n }\n\n /**\n * Move past a string.\n *\n * @param {string} value\n * @returns {string}\n */\n function move(value = '') {\n const chunks = value.split(/\\r?\\n|\\r/g)\n const tail = chunks[chunks.length - 1]\n line += chunks.length - 1\n column =\n chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift\n return value\n }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').Join} Join\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').TrackFields} TrackFields\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {TrackFields} safeOptions\n * @returns {string}\n */\nexport function containerFlow(parent, context, safeOptions) {\n const indexStack = context.indexStack\n const children = parent.children || []\n const tracker = track(safeOptions)\n /** @type {Array<string>} */\n const results = []\n let index = -1\n\n indexStack.push(-1)\n\n while (++index < children.length) {\n const child = children[index]\n\n indexStack[indexStack.length - 1] = index\n\n results.push(\n tracker.move(\n context.handle(child, parent, context, {\n before: '\\n',\n after: '\\n',\n ...tracker.current()\n })\n )\n )\n\n if (child.type !== 'list') {\n context.bulletLastUsed = undefined\n }\n\n if (index < children.length - 1) {\n results.push(tracker.move(between(child, children[index + 1])))\n }\n }\n\n indexStack.pop()\n\n return results.join('')\n\n /**\n * @param {Node} left\n * @param {Node} right\n * @returns {string}\n */\n function between(left, right) {\n let index = context.join.length\n\n while (index--) {\n const result = context.join[index](left, right, parent, context)\n\n if (result === true || result === 1) {\n break\n }\n\n if (typeof result === 'number') {\n return '\\n'.repeat(1 + result)\n }\n\n if (result === false) {\n return '\\n\\n<!---->\\n\\n'\n }\n }\n\n return '\\n\\n'\n }\n}\n","/**\n * @callback Map\n * @param {string} value\n * @param {number} line\n * @param {boolean} blank\n * @returns {string}\n */\n\nconst eol = /\\r?\\n|\\r/g\n\n/**\n * @param {string} value\n * @param {Map} map\n * @returns {string}\n */\nexport function indentLines(value, map) {\n /** @type {Array<string>} */\n const result = []\n let start = 0\n let line = 0\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = eol.exec(value))) {\n one(value.slice(start, match.index))\n result.push(match[0])\n start = match.index + match[0].length\n line++\n }\n\n one(value.slice(start))\n\n return result.join('')\n\n /**\n * @param {string} value\n */\n function one(value) {\n result.push(map(value, line, !value))\n }\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Unsafe} pattern\n * @returns {RegExp}\n */\nexport function patternCompile(pattern) {\n if (!pattern._compiled) {\n const before =\n (pattern.atBreak ? '[\\\\r\\\\n][\\\\t ]*' : '') +\n (pattern.before ? '(?:' + pattern.before + ')' : '')\n\n pattern._compiled = new RegExp(\n (before ? '(' + before + ')' : '') +\n (/[|\\\\{}()[\\]^$+*?.-]/.test(pattern.character) ? '\\\\' : '') +\n pattern.character +\n (pattern.after ? '(?:' + pattern.after + ')' : ''),\n 'g'\n )\n }\n\n return pattern._compiled\n}\n","/**\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array<string>} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array<string>} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (!list) {\n return none\n }\n\n if (typeof list === 'string') {\n list = [list]\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n */\n\nimport {patternCompile} from './pattern-compile.js'\nimport {patternInScope} from './pattern-in-scope.js'\n\n/**\n * @param {Context} context\n * @param {string|null|undefined} input\n * @param {SafeOptions & {encode?: Array<string>}} config\n * @returns {string}\n */\nexport function safe(context, input, config) {\n const value = (config.before || '') + (input || '') + (config.after || '')\n /** @type {Array<number>} */\n const positions = []\n /** @type {Array<string>} */\n const result = []\n /** @type {Record<number, {before: boolean, after: boolean}>} */\n const infos = {}\n let index = -1\n\n while (++index < context.unsafe.length) {\n const pattern = context.unsafe[index]\n\n if (!patternInScope(context.stack, pattern)) {\n continue\n }\n\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = expression.exec(value))) {\n const before = 'before' in pattern || Boolean(pattern.atBreak)\n const after = 'after' in pattern\n const position = match.index + (before ? match[1].length : 0)\n\n if (positions.includes(position)) {\n if (infos[position].before && !before) {\n infos[position].before = false\n }\n\n if (infos[position].after && !after) {\n infos[position].after = false\n }\n } else {\n positions.push(position)\n infos[position] = {before, after}\n }\n }\n }\n\n positions.sort(numerical)\n\n let start = config.before ? config.before.length : 0\n const end = value.length - (config.after ? config.after.length : 0)\n index = -1\n\n while (++index < positions.length) {\n const position = positions[index]\n\n // Character before or after matched:\n if (position < start || position >= end) {\n continue\n }\n\n // If this character is supposed to be escaped because it has a condition on\n // the next character, and the next character is definitly being escaped,\n // then skip this escape.\n if (\n (position + 1 < end &&\n positions[index + 1] === position + 1 &&\n infos[position].after &&\n !infos[position + 1].before &&\n !infos[position + 1].after) ||\n (positions[index - 1] === position - 1 &&\n infos[position].before &&\n !infos[position - 1].before &&\n !infos[position - 1].after)\n ) {\n continue\n }\n\n if (start !== position) {\n // If we have to use a character reference, an ampersand would be more\n // correct, but as backslashes only care about punctuation, either will\n // do the trick\n result.push(escapeBackslashes(value.slice(start, position), '\\\\'))\n }\n\n start = position\n\n if (\n /[!-/:-@[-`{-~]/.test(value.charAt(position)) &&\n (!config.encode || !config.encode.includes(value.charAt(position)))\n ) {\n // Character escape.\n result.push('\\\\')\n } else {\n // Character reference.\n result.push(\n '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';'\n )\n start++\n }\n }\n\n result.push(escapeBackslashes(value.slice(start, end), config.after))\n\n return result.join('')\n}\n\n/**\n * @param {number} a\n * @param {number} b\n * @returns {number}\n */\nfunction numerical(a, b) {\n return a - b\n}\n\n/**\n * @param {string} value\n * @param {string} after\n * @returns {string}\n */\nfunction escapeBackslashes(value, after) {\n const expression = /\\\\(?=[!-/:-@[-`{-~])/g\n /** @type {Array<number>} */\n const positions = []\n /** @type {Array<string>} */\n const results = []\n const whole = value + after\n let index = -1\n let start = 0\n /** @type {RegExpExecArray|null} */\n let match\n\n while ((match = expression.exec(whole))) {\n positions.push(match.index)\n }\n\n while (++index < positions.length) {\n if (start !== positions[index]) {\n results.push(value.slice(start, positions[index]))\n }\n\n results.push('\\\\')\n start = positions[index]\n }\n\n results.push(value.slice(start))\n\n return results.join('')\n}\n","/**\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n */\n\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {association} from 'mdast-util-to-markdown/lib/util/association.js'\nimport {containerFlow} from 'mdast-util-to-markdown/lib/util/container-flow.js'\nimport {indentLines} from 'mdast-util-to-markdown/lib/util/indent-lines.js'\nimport {safe} from 'mdast-util-to-markdown/lib/util/safe.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/**\n * @returns {FromMarkdownExtension}\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteDefinitionLabelString() {\n this.buffer()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteDefinition(token) {\n this.exit(token)\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n }\n\n /** @type {FromMarkdownHandle} */\n function enterFootnoteCallString() {\n this.buffer()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteCallString(token) {\n const label = this.resume()\n const node = /** @type {FootnoteDefinition} */ (\n this.stack[this.stack.length - 1]\n )\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /** @type {FromMarkdownHandle} */\n function exitFootnoteCall(token) {\n this.exit(token)\n }\n}\n\n/**\n * @returns {ToMarkdownExtension}\n */\nexport function gfmFootnoteToMarkdown() {\n footnoteReference.peek = footnoteReferencePeek\n\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\n function footnoteReference(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteReference')\n const subexit = context.enter('reference')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n }\n\n /** @type {ToMarkdownHandle} */\n function footnoteReferencePeek() {\n return '['\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\n function footnoteDefinition(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n let value = tracker.move('[^')\n const exit = context.enter('footnoteDefinition')\n const subexit = context.enter('label')\n value += tracker.move(\n safe(context, association(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n indentLines(containerFlow(node, context, tracker.current()), map)\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' ') + line\n }\n\n return line\n }\n }\n}\n","/**\n * @typedef {import('../types.js').Node} Node\n * @typedef {import('../types.js').Parent} Parent\n * @typedef {import('../types.js').SafeOptions} SafeOptions\n * @typedef {import('../types.js').Context} Context\n */\n\nimport {track} from './track.js'\n\n/**\n * @param {Parent} parent\n * @param {Context} context\n * @param {SafeOptions} safeOptions\n * @returns {string}\n */\nexport function containerPhrasing(parent, context, safeOptions) {\n const indexStack = context.indexStack\n const children = parent.children || []\n /** @type {Array<string>} */\n const results = []\n let index = -1\n let before = safeOptions.before\n\n indexStack.push(-1)\n let tracker = track(safeOptions)\n\n while (++index < children.length) {\n const child = children[index]\n /** @type {string} */\n let after\n\n indexStack[indexStack.length - 1] = index\n\n if (index + 1 < children.length) {\n // @ts-expect-error: hush, its actually a `zwitch`.\n let handle = context.handle.handlers[children[index + 1].type]\n if (handle && handle.peek) handle = handle.peek\n after = handle\n ? handle(children[index + 1], parent, context, {\n before: '',\n after: '',\n ...tracker.current()\n }).charAt(0)\n : ''\n } else {\n after = safeOptions.after\n }\n\n // In some cases, html (text) can be found in phrasing right after an eol.\n // When wed serialize that, in most cases that would be seen as html\n // (flow).\n // As we cant escape or so to prevent it from happening, we take a somewhat\n // reasonable approach: replace that eol with a space.\n // See: <https://github.com/syntax-tree/mdast-util-to-markdown/issues/15>\n if (\n results.length > 0 &&\n (before === '\\r' || before === '\\n') &&\n child.type === 'html'\n ) {\n results[results.length - 1] = results[results.length - 1].replace(\n /(\\r?\\n|\\r)$/,\n ' '\n )\n before = ' '\n\n // To do: does this work to reset tracker?\n tracker = track(safeOptions)\n tracker.move(results.join(''))\n }\n\n results.push(\n tracker.move(\n context.handle(child, parent, context, {\n ...tracker.current(),\n before,\n after\n })\n )\n )\n\n before = results[results.length - 1].slice(-1)\n }\n\n indexStack.pop()\n\n return results.join('')\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmStrikethroughFromMarkdown = {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmStrikethroughToMarkdown = {\n unsafe: [{character: '~', inConstruct: 'phrasing'}],\n handlers: {delete: handleDelete}\n}\n\nhandleDelete.peek = peekDelete\n\n/** @type {FromMarkdownHandle} */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, context, safeOptions) {\n const tracker = track(safeOptions)\n const exit = context.enter('emphasis')\n let value = tracker.move('~~')\n value += containerPhrasing(node, context, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {patternCompile} from '../util/pattern-compile.js'\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @type {Handle}\n * @param {InlineCode} node\n */\nexport function inlineCode(node, _, context) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs dont count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We cant escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < context.unsafe.length) {\n const pattern = context.unsafe[index]\n const expression = patternCompile(pattern)\n /** @type {RegExpExecArray|null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @type {Handle}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|Array<string|null|undefined>} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesnt place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please dont use this: it could create fragile structures\n * > that arent understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please dont use this: it could create fragile structures\n * > that arent understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isnt visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {Array<Array<string|null|undefined>>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array<number>} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array<Array<string>>} Cells per row. */\n const cellMatrix = []\n /** @type {Array<Array<number>>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array<number>} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we dont align delimiters, but otherwise wed\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array<string>} */\n const row = []\n /** @type {Array<number>} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array<string>} */\n const row = []\n /** @type {Array<number>} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array<string>} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array<string>} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Dont add the opening space if were not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').AlignType} AlignType\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext\n * @typedef {import('mdast-util-to-markdown').SafeOptions} SafeOptions\n *\n * @typedef Options\n * @property {boolean} [tableCellPadding=true]\n * @property {boolean} [tablePipeAlign=true]\n * @property {MarkdownTableOptions['stringLength']} [stringLength]\n */\n\nimport {containerPhrasing} from 'mdast-util-to-markdown/lib/util/container-phrasing.js'\nimport {inlineCode} from 'mdast-util-to-markdown/lib/handle/inline-code.js'\nimport {markdownTable} from 'markdown-table'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTableFromMarkdown = {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterTable(token) {\n /** @type {Array<'left'|'right'|'center'|'none'>} */\n // @ts-expect-error: `align` is custom.\n const align = token._align\n this.enter(\n {\n type: 'table',\n align: align.map((d) => (d === 'none' ? null : d)),\n children: []\n },\n token\n )\n this.setData('inTable', true)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitTable(token) {\n this.exit(token)\n this.setData('inTable')\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exit(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownHandle} */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/** @type {FromMarkdownHandle} */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.getData('inTable')) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1])\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes dont (but cant escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // <https://github.com/syntax-tree/mdast-util-to-markdown/blob/51a2038/lib/unsafe.js#L57>\n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n table: handleTable,\n tableRow: handleTableRow,\n tableCell: handleTableCell,\n inlineCode: inlineCodeWithTable\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, context, safeOptions) {\n return serializeData(\n handleTableAsData(node, context, safeOptions),\n // @ts-expect-error: fixed in `markdown-table@3.0.1`.\n node.align\n )\n }\n\n /**\n * This function isnt really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, context, safeOptions) {\n const row = handleTableRowAsData(node, context, safeOptions)\n // `markdown-table` will always add an align row\n const value = serializeData([row])\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, context, safeOptions) {\n const exit = context.enter('tableCell')\n const subexit = context.enter('phrasing')\n const value = containerPhrasing(node, context, {\n ...safeOptions,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array<Array<string>>} matrix\n * @param {Array<string>} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n alignDelimiters,\n padding,\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array<Array<string>>} */\n const result = []\n const subexit = context.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(\n children[index],\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {ToMarkdownContext} context\n * @param {SafeOptions} safeOptions\n */\n function handleTableRowAsData(node, context, safeOptions) {\n const children = node.children\n let index = -1\n /** @type {Array<string>} */\n const result = []\n const subexit = context.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(\n children[index],\n node,\n context,\n safeOptions\n )\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, context) {\n let value = inlineCode(node, parent, context)\n\n if (context.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').List} List\n * @typedef {import('../util/indent-lines.js').Map} Map\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').Handle} Handle\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\nimport {containerFlow} from '../util/container-flow.js'\nimport {indentLines} from '../util/indent-lines.js'\nimport {track} from '../util/track.js'\n\n/**\n * @type {Handle}\n * @param {ListItem} node\n */\nexport function listItem(node, parent, context, safeOptions) {\n const listItemIndent = checkListItemIndent(context)\n let bullet = context.bulletCurrent || checkBullet(context)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (context.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = track(safeOptions)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = context.enter('listItem')\n const value = indentLines(\n containerFlow(node, context, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude<Options['listItemIndent'], undefined>}\n */\nexport function checkListItemIndent(context) {\n const style = context.options.listItemIndent || 'tab'\n\n // To do: remove in a major.\n // @ts-expect-error: deprecated.\n if (style === 1 || style === '1') {\n return 'one'\n }\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('../types.js').Context} Context\n * @typedef {import('../types.js').Options} Options\n */\n\n/**\n * @param {Context} context\n * @returns {Exclude<Options['bullet'], undefined>}\n */\nexport function checkBullet(context) {\n const marker = context.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {Extract<import('mdast').Root|import('mdast').Content, import('unist').Parent>} Parent\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').BlockContent} BlockContent\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {listItem} from 'mdast-util-to-markdown/lib/handle/list-item.js'\nimport {track} from 'mdast-util-to-markdown/lib/util/track.js'\n\n/** @type {FromMarkdownExtension} */\nexport const gfmTaskListItemFromMarkdown = {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n}\n\n/** @type {ToMarkdownExtension} */\nexport const gfmTaskListItemToMarkdown = {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitCheck(token) {\n const node = /** @type {ListItem} */ (this.stack[this.stack.length - 2])\n // Were always in a paragraph, in a list item.\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/** @type {FromMarkdownHandle} */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = /** @type {Parent} */ (this.stack[this.stack.length - 2])\n const node = /** @type {Paragraph} */ (this.stack[this.stack.length - 1])\n const siblings = parent.children\n const head = node.children[0]\n let index = -1\n /** @type {Paragraph|undefined} */\n let firstParaghraph\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean' &&\n head &&\n head.type === 'text'\n ) {\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, context, safeOptions) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = track(safeOptions)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = listItem(node, parent, context, {\n ...safeOptions,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-gfm-table').Options} Options\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * @returns {Array<FromMarkdownExtension>}\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown,\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown,\n gfmTableFromMarkdown,\n gfmTaskListItemFromMarkdown\n ]\n}\n\n/**\n * @param {Options} [options]\n * @returns {ToMarkdownExtension}\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown,\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown,\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown\n ]\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options\n */\n\nimport {gfm} from 'micromark-extension-gfm'\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\n\n/**\n * Plugin to support GFM (autolink literals, footnotes, strikethrough, tables, tasklists).\n *\n * @type {import('unified').Plugin<[Options?]|void[], Root>}\n */\nexport default function remarkGfm(options = {}) {\n const data = this.data()\n\n add('micromarkExtensions', gfm(options))\n add('fromMarkdownExtensions', gfmFromMarkdown())\n add('toMarkdownExtensions', gfmToMarkdown(options))\n\n /**\n * @param {string} field\n * @param {unknown} value\n */\n function add(field, value) {\n const list = /** @type {unknown[]} */ (\n // Other extensions\n /* c8 ignore next 2 */\n data[field] ? data[field] : (data[field] = [])\n )\n\n list.push(value)\n }\n}\n","/**\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Element} Element\n */\n\nvar search = /[#.]/g\n\n/**\n * Create a hast element from a simple CSS selector.\n *\n * @param selector A simple CSS selector.\n * Can contain a tag-name (`foo`), classes (`.bar`), and an ID (`#baz`).\n * Multiple classes are allowed.\n * Uses the last ID if multiple IDs are found.\n * @param [defaultTagName='div'] Tag name to use if `selector` does not specify one.\n */\nexport const parseSelector =\n /**\n * @type {(\n * <Selector extends string, DefaultTagName extends string = 'div'>(selector?: Selector, defaultTagName?: DefaultTagName) => Element & {tagName: import('./extract.js').ExtractTagName<Selector, DefaultTagName>}\n * )}\n */\n (\n /**\n * @param {string} [selector]\n * @param {string} [defaultTagName='div']\n * @returns {Element}\n */\n function (selector, defaultTagName = 'div') {\n var value = selector || ''\n /** @type {Properties} */\n var props = {}\n var start = 0\n /** @type {string} */\n var subvalue\n /** @type {string} */\n var previous\n /** @type {RegExpMatchArray} */\n var match\n\n while (start < value.length) {\n search.lastIndex = start\n match = search.exec(value)\n subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n defaultTagName = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (Array.isArray(props.className)) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {\n type: 'element',\n tagName: defaultTagName,\n properties: props,\n children: []\n }\n }\n )\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {Root['children'][number]} Child\n * @typedef {Child|Root} Node\n * @typedef {import('property-information').Info} Info\n * @typedef {import('property-information').Schema} Schema\n *\n * @typedef {Root|Element} HResult\n * @typedef {string|number} HStyleValue\n * @typedef {Record<string, HStyleValue>} HStyle\n * @typedef {string|number|boolean|null|undefined} HPrimitiveValue\n * @typedef {Array<string|number>} HArrayValue\n * @typedef {HPrimitiveValue|HArrayValue} HPropertyValue\n * @typedef {{[property: string]: HPropertyValue|HStyle}} HProperties\n * Acceptable properties value.\n *\n * @typedef {string|number|null|undefined} HPrimitiveChild\n * @typedef {Array<Node|HPrimitiveChild>} HArrayChild\n * @typedef {Node|HPrimitiveChild|HArrayChild} HChild\n * Acceptable child value\n */\n\nimport {find, normalize} from 'property-information'\nimport {parseSelector} from 'hast-util-parse-selector'\nimport {parse as spaces} from 'space-separated-tokens'\nimport {parse as commas} from 'comma-separated-tokens'\n\nconst buttonTypes = new Set(['menu', 'submit', 'reset', 'button'])\n\nconst own = {}.hasOwnProperty\n\n/**\n * @param {Schema} schema\n * @param {string} defaultTagName\n * @param {Array<string>} [caseSensitive]\n */\nexport function core(schema, defaultTagName, caseSensitive) {\n const adjust = caseSensitive && createAdjustMap(caseSensitive)\n\n const h =\n /**\n * @type {{\n * (): Root\n * (selector: null|undefined, ...children: Array<HChild>): Root\n * (selector: string, properties?: HProperties, ...children: Array<HChild>): Element\n * (selector: string, ...children: Array<HChild>): Element\n * }}\n */\n (\n /**\n * Hyperscript compatible DSL for creating virtual hast trees.\n *\n * @param {string|null} [selector]\n * @param {HProperties|HChild} [properties]\n * @param {Array<HChild>} children\n * @returns {HResult}\n */\n function (selector, properties, ...children) {\n let index = -1\n /** @type {HResult} */\n let node\n\n if (selector === undefined || selector === null) {\n node = {type: 'root', children: []}\n // @ts-expect-error Properties are not supported for roots.\n children.unshift(properties)\n } else {\n node = parseSelector(selector, defaultTagName)\n // Normalize the name.\n node.tagName = node.tagName.toLowerCase()\n if (adjust && own.call(adjust, node.tagName)) {\n node.tagName = adjust[node.tagName]\n }\n\n // Handle props.\n if (isProperties(properties, node.tagName)) {\n /** @type {string} */\n let key\n\n for (key in properties) {\n if (own.call(properties, key)) {\n // @ts-expect-error `node.properties` is set.\n addProperty(schema, node.properties, key, properties[key])\n }\n }\n } else {\n children.unshift(properties)\n }\n }\n\n // Handle children.\n while (++index < children.length) {\n addChild(node.children, children[index])\n }\n\n if (node.type === 'element' && node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n )\n\n return h\n}\n\n/**\n * @param {HProperties|HChild} value\n * @param {string} name\n * @returns {value is HProperties}\n */\nfunction isProperties(value, name) {\n if (\n value === null ||\n value === undefined ||\n typeof value !== 'object' ||\n Array.isArray(value)\n ) {\n return false\n }\n\n if (name === 'input' || !value.type || typeof value.type !== 'string') {\n return true\n }\n\n if ('children' in value && Array.isArray(value.children)) {\n return false\n }\n\n if (name === 'button') {\n return buttonTypes.has(value.type.toLowerCase())\n }\n\n return !('value' in value)\n}\n\n/**\n * @param {Schema} schema\n * @param {Properties} properties\n * @param {string} key\n * @param {HStyle|HPropertyValue} value\n * @returns {void}\n */\nfunction addProperty(schema, properties, key, value) {\n const info = find(schema, key)\n let index = -1\n /** @type {HPropertyValue} */\n let result\n\n // Ignore nullish and NaN values.\n if (value === undefined || value === null) return\n\n if (typeof value === 'number') {\n // Ignore NaN.\n if (Number.isNaN(value)) return\n\n result = value\n }\n // Booleans.\n else if (typeof value === 'boolean') {\n result = value\n }\n // Handle list values.\n else if (typeof value === 'string') {\n if (info.spaceSeparated) {\n result = spaces(value)\n } else if (info.commaSeparated) {\n result = commas(value)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(value).join(' '))\n } else {\n result = parsePrimitive(info, info.property, value)\n }\n } else if (Array.isArray(value)) {\n result = value.concat()\n } else {\n result = info.property === 'style' ? style(value) : String(value)\n }\n\n if (Array.isArray(result)) {\n /** @type {Array<string|number>} */\n const finalResult = []\n\n while (++index < result.length) {\n // @ts-expect-error Assume no booleans in array.\n finalResult[index] = parsePrimitive(info, info.property, result[index])\n }\n\n result = finalResult\n }\n\n // Class names (which can be added both on the `selector` and here).\n if (info.property === 'className' && Array.isArray(properties.className)) {\n // @ts-expect-error Assume no booleans in `className`.\n result = properties.className.concat(result)\n }\n\n properties[info.property] = result\n}\n\n/**\n * @param {Array<Child>} nodes\n * @param {HChild} value\n * @returns {void}\n */\nfunction addChild(nodes, value) {\n let index = -1\n\n if (value === undefined || value === null) {\n // Empty.\n } else if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n } else if (Array.isArray(value)) {\n while (++index < value.length) {\n addChild(nodes, value[index])\n }\n } else if (typeof value === 'object' && 'type' in value) {\n if (value.type === 'root') {\n addChild(nodes, value.children)\n } else {\n nodes.push(value)\n }\n } else {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n}\n\n/**\n * Parse a single primitives.\n *\n * @param {Info} info\n * @param {string} name\n * @param {HPrimitiveValue} value\n * @returns {HPrimitiveValue}\n */\nfunction parsePrimitive(info, name, value) {\n if (typeof value === 'string') {\n if (info.number && value && !Number.isNaN(Number(value))) {\n return Number(value)\n }\n\n if (\n (info.boolean || info.overloadedBoolean) &&\n (value === '' || normalize(value) === normalize(name))\n ) {\n return true\n }\n }\n\n return value\n}\n\n/**\n * @param {HStyle} value\n * @returns {string}\n */\nfunction style(value) {\n /** @type {Array<string>} */\n const result = []\n /** @type {string} */\n let key\n\n for (key in value) {\n if (own.call(value, key)) {\n result.push([key, value[key]].join(': '))\n }\n }\n\n return result.join('; ')\n}\n\n/**\n * @param {Array<string>} values\n * @returns {Record<string, string>}\n */\nfunction createAdjustMap(values) {\n /** @type {Record<string, string>} */\n const result = {}\n let index = -1\n\n while (++index < values.length) {\n result[values[index].toLowerCase()] = values[index]\n }\n\n return result\n}\n","export const svgCaseSensitiveTagNames = [\n 'altGlyph',\n 'altGlyphDef',\n 'altGlyphItem',\n 'animateColor',\n 'animateMotion',\n 'animateTransform',\n 'clipPath',\n 'feBlend',\n 'feColorMatrix',\n 'feComponentTransfer',\n 'feComposite',\n 'feConvolveMatrix',\n 'feDiffuseLighting',\n 'feDisplacementMap',\n 'feDistantLight',\n 'feDropShadow',\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 'foreignObject',\n 'glyphRef',\n 'linearGradient',\n 'radialGradient',\n 'solidColor',\n 'textArea',\n 'textPath'\n]\n","/**\n * @typedef {import('./core.js').HChild} Child\n * @typedef {import('./core.js').HProperties} Properties\n *\n * @typedef {import('./jsx-classic').Element} s.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} s.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} s.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} s.JSX.ElementChildrenAttribute\n */\n\nimport {svg} from 'property-information'\nimport {core} from './core.js'\nimport {svgCaseSensitiveTagNames} from './svg-case-sensitive-tag-names.js'\n\nexport const s = core(svg, 'g', svgCaseSensitiveTagNames)\n","/**\n * @typedef {import('./core.js').HChild} Child Acceptable child value\n * @typedef {import('./core.js').HProperties} Properties Acceptable properties value.\n *\n * @typedef {import('./jsx-classic').Element} h.JSX.Element\n * @typedef {import('./jsx-classic').IntrinsicAttributes} h.JSX.IntrinsicAttributes\n * @typedef {import('./jsx-classic').IntrinsicElements} h.JSX.IntrinsicElements\n * @typedef {import('./jsx-classic').ElementChildrenAttribute} h.JSX.ElementChildrenAttribute\n */\n\nimport {html} from 'property-information'\nimport {core} from './core.js'\n\nexport const h = core(html, 'div')\n","/**\n * Map of web namespaces.\n *\n * @type {Record<string, string>}\n */\nexport const webNamespaces = {\n html: 'http://www.w3.org/1999/xhtml',\n mathml: 'http://www.w3.org/1998/Math/MathML',\n svg: 'http://www.w3.org/2000/svg',\n xlink: 'http://www.w3.org/1999/xlink',\n xml: 'http://www.w3.org/XML/1998/namespace',\n xmlns: 'http://www.w3.org/2000/xmlns/'\n}\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('unist').Position} Position\n * @typedef {import('unist').Point} Point\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').DocType} Doctype\n * @typedef {Parent['children'][number]} Child\n * @typedef {Element['children'][number]} ElementChild\n * @typedef {Child|Root} Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').ElementLocation} P5ElementLocation\n * @typedef {import('parse5').Location} P5Location\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').Node} P5Node\n *\n * @typedef {'html'|'svg'} Space\n *\n * @callback Handler\n * @param {Context} ctx\n * @param {P5Node} node\n * @param {Array.<Child>} [children]\n * @returns {Node}\n *\n * @typedef Options\n * @property {Space} [space='html'] Whether the root of the tree is in the `'html'` or `'svg'` space. If an element in with the SVG namespace is found in `ast`, `fromParse5` automatically switches to the SVG space when entering the element, and switches back when leaving\n * @property {VFile} [file] `VFile`, used to add positional information to nodes. If given, the file should have the original HTML source as its contents\n * @property {boolean} [verbose=false] Whether to add extra positional information about starting tags, closing tags, and attributes to elements. Note: not used without `file`\n *\n * @typedef Context\n * @property {Schema} schema\n * @property {VFile|undefined} file\n * @property {boolean|undefined} verbose\n * @property {boolean} location\n */\n\nimport {h, s} from 'hastscript'\nimport {html, svg, find} from 'property-information'\nimport {location} from 'vfile-location'\nimport {webNamespaces} from 'web-namespaces'\n\nconst own = {}.hasOwnProperty\n\n// Handlers.\nconst map = {\n '#document': root,\n '#document-fragment': root,\n '#text': text,\n '#comment': comment,\n '#documentType': doctype\n}\n\n/**\n * Transform Parse5s AST to a hast tree.\n *\n * @param {P5Node} ast\n * @param {Options|VFile} [options]\n */\nexport function fromParse5(ast, options = {}) {\n /** @type {Options} */\n let settings\n /** @type {VFile|undefined} */\n let file\n\n if (isFile(options)) {\n file = options\n settings = {}\n } else {\n file = options.file\n settings = options\n }\n\n return transform(\n {\n schema: settings.space === 'svg' ? svg : html,\n file,\n verbose: settings.verbose,\n location: false\n },\n ast\n )\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {P5Node} ast\n * @returns {Node}\n */\nfunction transform(ctx, ast) {\n const schema = ctx.schema\n /** @type {Handler} */\n // @ts-expect-error: index is fine.\n const fn = own.call(map, ast.nodeName) ? map[ast.nodeName] : element\n /** @type {Array.<Child>|undefined} */\n let children\n\n // Element.\n if ('tagName' in ast) {\n ctx.schema = ast.namespaceURI === webNamespaces.svg ? svg : html\n }\n\n if ('childNodes' in ast) {\n children = nodes(ctx, ast.childNodes)\n }\n\n const result = fn(ctx, ast, children)\n\n if ('sourceCodeLocation' in ast && ast.sourceCodeLocation && ctx.file) {\n // @ts-expect-error Its fine.\n const position = createLocation(ctx, result, ast.sourceCodeLocation)\n\n if (position) {\n ctx.location = true\n result.position = position\n }\n }\n\n ctx.schema = schema\n\n return result\n}\n\n/**\n * Transform children.\n *\n * @param {Context} ctx\n * @param {Array.<P5Node>} children\n * @returns {Array.<Child>}\n */\nfunction nodes(ctx, children) {\n let index = -1\n /** @type {Array.<Child>} */\n const result = []\n\n while (++index < children.length) {\n // @ts-expect-error Assume no roots in children.\n result[index] = transform(ctx, children[index])\n }\n\n return result\n}\n\n/**\n * Transform a document.\n * Stores `ast.quirksMode` in `node.data.quirksMode`.\n *\n * @type {Handler}\n * @param {P5Document} ast\n * @param {Array.<Child>} children\n * @returns {Root}\n */\nfunction root(ctx, ast, children) {\n /** @type {Root} */\n const result = {\n type: 'root',\n children,\n data: {quirksMode: ast.mode === 'quirks' || ast.mode === 'limited-quirks'}\n }\n\n if (ctx.file && ctx.location) {\n const doc = String(ctx.file)\n const loc = location(doc)\n result.position = {\n start: loc.toPoint(0),\n end: loc.toPoint(doc.length)\n }\n }\n\n return result\n}\n\n/**\n * Transform a doctype.\n *\n * @type {Handler}\n * @returns {Doctype}\n */\nfunction doctype() {\n // @ts-expect-error Types are out of date.\n return {type: 'doctype'}\n}\n\n/**\n * Transform a text.\n *\n * @type {Handler}\n * @param {P5Text} ast\n * @returns {Text}\n */\nfunction text(_, ast) {\n return {type: 'text', value: ast.value}\n}\n\n/**\n * Transform a comment.\n *\n * @type {Handler}\n * @param {P5Comment} ast\n * @returns {Comment}\n */\nfunction comment(_, ast) {\n return {type: 'comment', value: ast.data}\n}\n\n/**\n * Transform an element.\n *\n * @type {Handler}\n * @param {P5Element} ast\n * @param {Array.<ElementChild>} children\n * @returns {Element}\n */\nfunction element(ctx, ast, children) {\n const fn = ctx.schema.space === 'svg' ? s : h\n let index = -1\n /** @type {Object.<string, string>} */\n const props = {}\n\n while (++index < ast.attrs.length) {\n const attribute = ast.attrs[index]\n props[(attribute.prefix ? attribute.prefix + ':' : '') + attribute.name] =\n attribute.value\n }\n\n const result = fn(ast.tagName, props, children)\n\n if (result.tagName === 'template' && 'content' in ast) {\n const pos = ast.sourceCodeLocation\n const startTag = pos && pos.startTag && position(pos.startTag)\n const endTag = pos && pos.endTag && position(pos.endTag)\n\n /** @type {Root} */\n // @ts-expect-error Types are wrong.\n const content = transform(ctx, ast.content)\n\n if (startTag && endTag && ctx.file) {\n content.position = {start: startTag.end, end: endTag.start}\n }\n\n result.content = content\n }\n\n return result\n}\n\n/**\n * Create clean positional information.\n *\n * @param {Context} ctx\n * @param {Node} node\n * @param {P5ElementLocation} location\n * @returns {Position|null}\n */\nfunction createLocation(ctx, node, location) {\n const result = position(location)\n\n if (node.type === 'element') {\n const tail = node.children[node.children.length - 1]\n\n // Bug for unclosed with children.\n // See: <https://github.com/inikulin/parse5/issues/109>.\n if (\n result &&\n !location.endTag &&\n tail &&\n tail.position &&\n tail.position.end\n ) {\n result.end = Object.assign({}, tail.position.end)\n }\n\n if (ctx.verbose) {\n /** @type {Object.<string, Position|null>} */\n const props = {}\n /** @type {string} */\n let key\n\n for (key in location.attrs) {\n if (own.call(location.attrs, key)) {\n props[find(ctx.schema, key).property] = position(location.attrs[key])\n }\n }\n\n node.data = {\n position: {\n opening: position(location.startTag),\n closing: location.endTag ? position(location.endTag) : null,\n properties: props\n }\n }\n }\n }\n\n return result\n}\n\n/**\n * @param {P5Location} loc\n * @returns {Position|null}\n */\nfunction position(loc) {\n const start = point({\n line: loc.startLine,\n column: loc.startCol,\n offset: loc.startOffset\n })\n const end = point({\n line: loc.endLine,\n column: loc.endCol,\n offset: loc.endOffset\n })\n // @ts-expect-error `null` is fine.\n return start || end ? {start, end} : null\n}\n\n/**\n * @param {Point} point\n * @returns {Point|null}\n */\nfunction point(point) {\n return point.line && point.column ? point : null\n}\n\n/**\n * @param {VFile|Options} value\n * @returns {value is VFile}\n */\nfunction isFile(value) {\n return 'messages' in value\n}\n","/**\n * @typedef {import('unist').Point} Point\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {Pick<Point, 'line'|'column'>} PositionalPoint\n * @typedef {Required<Point>} FullPoint\n * @typedef {NonNullable<Point['offset']>} Offset\n */\n\n/**\n * Get transform functions for the given `document`.\n *\n * @param {string|Uint8Array|VFile} file\n */\nexport function location(file) {\n var value = String(file)\n /** @type {Array.<number>} */\n var indices = []\n var search = /\\r?\\n|\\r/g\n\n while (search.test(value)) {\n indices.push(search.lastIndex)\n }\n\n indices.push(value.length + 1)\n\n return {toPoint, toOffset}\n\n /**\n * Get the line and column-based `point` for `offset` in the bound indices.\n * Returns a point with `undefined` values when given invalid or out of bounds\n * input.\n *\n * @param {Offset} offset\n * @returns {FullPoint}\n */\n function toPoint(offset) {\n var index = -1\n\n if (offset > -1 && offset < indices[indices.length - 1]) {\n while (++index < indices.length) {\n if (indices[index] > offset) {\n return {\n line: index + 1,\n column: offset - (indices[index - 1] || 0) + 1,\n offset\n }\n }\n }\n }\n\n return {line: undefined, column: undefined, offset: undefined}\n }\n\n /**\n * Get the `offset` for a line and column-based `point` in the bound indices.\n * Returns `-1` when given invalid or out of bounds input.\n *\n * @param {PositionalPoint} point\n * @returns {Offset}\n */\n function toOffset(point) {\n var line = point && point.line\n var column = point && point.column\n /** @type {number} */\n var offset\n\n if (\n typeof line === 'number' &&\n typeof column === 'number' &&\n !Number.isNaN(line) &&\n !Number.isNaN(column) &&\n line - 1 in indices\n ) {\n offset = (indices[line - 2] || 0) + column - 1 || 0\n }\n\n return offset > -1 && offset < indices[indices.length - 1] ? offset : -1\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').Text} Text\n *\n * @typedef {import('unist-util-is').AssertPredicate<Element>} AssertElement\n * @typedef {import('unist-util-is').AssertPredicate<Text>} AssertText\n * @typedef {import('unist-util-is').AssertPredicate<Root>} AssertRoot\n *\n * @callback CreateElementLike\n * @param {string} name\n * @param {any} attributes\n * @param {Array.<string|any>} [children]\n * @returns {any}\n *\n * @typedef Context\n * @property {html|svg} schema\n * @property {string|null} prefix\n * @property {number} key\n * @property {boolean} react\n * @property {boolean} vue\n * @property {boolean} vdom\n * @property {boolean} hyperscript\n *\n * @typedef Options\n * @property {string|null} [prefix]\n * @property {'html'|'svg'} [space]\n */\n\nimport {html, svg, find, hastToReact} from 'property-information'\nimport {stringify as spaces} from 'space-separated-tokens'\nimport {stringify as commas} from 'comma-separated-tokens'\nimport style from 'style-to-object'\nimport {webNamespaces} from 'web-namespaces'\nimport {convert} from 'unist-util-is'\n\nconst ns = /** @type {Record<string, string>} */ (webNamespaces)\nconst toReact = /** @type {Record<string, string>} */ (hastToReact)\n\nconst own = {}.hasOwnProperty\n\n/** @type {AssertRoot} */\n// @ts-expect-error its correct.\nconst root = convert('root')\n/** @type {AssertElement} */\n// @ts-expect-error its correct.\nconst element = convert('element')\n/** @type {AssertText} */\n// @ts-expect-error its correct.\nconst text = convert('text')\n\n/**\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element|Root} tree\n * @param {string|boolean|Options} [options]\n * @returns {ReturnType<H>}\n */\nexport function toH(h, tree, options) {\n if (typeof h !== 'function') {\n throw new TypeError('h is not a function')\n }\n\n const r = react(h)\n const v = vue(h)\n const vd = vdom(h)\n /** @type {string|boolean|null|undefined} */\n let prefix\n /** @type {Element} */\n let node\n\n if (typeof options === 'string' || typeof options === 'boolean') {\n prefix = options\n options = {}\n } else {\n if (!options) options = {}\n prefix = options.prefix\n }\n\n if (root(tree)) {\n // @ts-expect-error Allow `doctypes` in there, well filter them out later.\n node =\n tree.children.length === 1 && element(tree.children[0])\n ? tree.children[0]\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: tree.children\n }\n } else if (element(tree)) {\n node = tree\n } else {\n throw new Error(\n // @ts-expect-error runtime.\n 'Expected root or element, not `' + ((tree && tree.type) || tree) + '`'\n )\n }\n\n return transform(h, node, {\n schema: options.space === 'svg' ? svg : html,\n prefix:\n prefix === undefined || prefix === null\n ? r || v || vd\n ? 'h-'\n : null\n : typeof prefix === 'string'\n ? prefix\n : prefix\n ? 'h-'\n : null,\n key: 0,\n react: r,\n vue: v,\n vdom: vd,\n hyperscript: hyperscript(h)\n })\n}\n\n/**\n * Transform a hast node through a hyperscript interface to *anything*!\n *\n * @template {CreateElementLike} H\n * @param {H} h\n * @param {Element} node\n * @param {Context} ctx\n */\nfunction transform(h, node, ctx) {\n const parentSchema = ctx.schema\n let schema = parentSchema\n let name = node.tagName\n /** @type {Record<string, unknown>} */\n const attributes = {}\n /** @type {Array.<ReturnType<H>|string>} */\n const nodes = []\n let index = -1\n /** @type {string} */\n let key\n\n if (parentSchema.space === 'html' && name.toLowerCase() === 'svg') {\n schema = svg\n ctx.schema = schema\n }\n\n for (key in node.properties) {\n if (node.properties && own.call(node.properties, key)) {\n addAttribute(attributes, key, node.properties[key], ctx, name)\n }\n }\n\n if (ctx.vdom) {\n if (schema.space === 'html') {\n name = name.toUpperCase()\n } else if (schema.space) {\n attributes.namespace = ns[schema.space]\n }\n }\n\n if (ctx.prefix) {\n ctx.key++\n attributes.key = ctx.prefix + ctx.key\n }\n\n if (node.children) {\n while (++index < node.children.length) {\n const value = node.children[index]\n\n if (element(value)) {\n nodes.push(transform(h, value, ctx))\n } else if (text(value)) {\n nodes.push(value.value)\n }\n }\n }\n\n // Restore parent schema.\n ctx.schema = parentSchema\n\n // Ensure no React warnings are triggered for void elements having children\n // passed in.\n return nodes.length > 0\n ? h.call(node, name, attributes, nodes)\n : h.call(node, name, attributes)\n}\n\n/**\n * @param {Record<string, unknown>} props\n * @param {string} prop\n * @param {unknown} value\n * @param {Context} ctx\n * @param {string} name\n */\n// eslint-disable-next-line complexity, max-params\nfunction addAttribute(props, prop, value, ctx, name) {\n const info = find(ctx.schema, prop)\n /** @type {string|undefined} */\n let subprop\n\n // Ignore nullish and `NaN` values.\n // Ignore `false` and falsey known booleans for hyperlike DSLs.\n if (\n value === undefined ||\n value === null ||\n (typeof value === 'number' && Number.isNaN(value)) ||\n (value === false && (ctx.vue || ctx.vdom || ctx.hyperscript)) ||\n (!value && info.boolean && (ctx.vue || ctx.vdom || ctx.hyperscript))\n ) {\n return\n }\n\n if (Array.isArray(value)) {\n // Accept `array`.\n // Most props are space-separated.\n value = info.commaSeparated ? commas(value) : spaces(value)\n }\n\n // Treat `true` and truthy known booleans.\n if (info.boolean && ctx.hyperscript) {\n value = ''\n }\n\n // VDOM, Vue, and React accept `style` as object.\n if (\n info.property === 'style' &&\n typeof value === 'string' &&\n (ctx.react || ctx.vue || ctx.vdom)\n ) {\n value = parseStyle(value, name)\n }\n\n if (ctx.vue) {\n if (info.property !== 'style') subprop = 'attrs'\n } else if (!info.mustUseProperty) {\n if (ctx.vdom) {\n if (info.property !== 'style') subprop = 'attributes'\n } else if (ctx.hyperscript) {\n subprop = 'attrs'\n }\n }\n\n if (subprop) {\n props[subprop] = Object.assign(props[subprop] || {}, {\n [info.attribute]: value\n })\n } else if (info.space && ctx.react) {\n props[toReact[info.property] || info.property] = value\n } else {\n props[info.attribute] = value\n }\n}\n\n/**\n * Check if `h` is `react.createElement`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction react(h) {\n /** @type {unknown} */\n const node = h('div', {})\n return Boolean(\n node &&\n // @ts-expect-error Looks like a React node.\n ('_owner' in node || '_store' in node) &&\n // @ts-expect-error Looks like a React node.\n (node.key === undefined || node.key === null)\n )\n}\n\n/**\n * Check if `h` is `hyperscript`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction hyperscript(h) {\n return 'context' in h && 'cleanup' in h\n}\n\n/**\n * Check if `h` is `virtual-dom/h`.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vdom(h) {\n /** @type {unknown} */\n const node = h('div', {})\n // @ts-expect-error Looks like a vnode.\n return node.type === 'VirtualNode'\n}\n\n/**\n * Check if `h` is Vue.\n *\n * @param {CreateElementLike} h\n * @returns {boolean}\n */\nfunction vue(h) {\n /** @type {unknown} */\n const node = h('div', {})\n // @ts-expect-error Looks like a Vue node.\n return Boolean(node && node.context && node.context._isVue)\n}\n\n/**\n * @param {string} value\n * @param {string} tagName\n * @returns {Record<string, string>}\n */\nfunction parseStyle(value, tagName) {\n /** @type {Record<string, string>} */\n const result = {}\n\n try {\n style(value, (name, value) => {\n if (name.slice(0, 4) === '-ms-') name = 'ms-' + name.slice(4)\n\n result[\n name.replace(\n /-([a-z])/g,\n /**\n * @param {string} _\n * @param {string} $1\n * @returns {string}\n */ (_, $1) => $1.toUpperCase()\n )\n ] = value\n })\n } catch (error) {\n error.message =\n tagName + '[style]' + error.message.slice('undefined'.length)\n throw error\n }\n\n return result\n}\n","var own = {}.hasOwnProperty\n\n/**\n * @callback Handler\n * @param {...unknown} value\n * @return {unknown}\n *\n * @typedef {Record<string, Handler>} Handlers\n *\n * @typedef {Object} Options\n * @property {Handler} [unknown]\n * @property {Handler} [invalid]\n * @property {Handlers} [handlers]\n */\n\n/**\n * Handle values based on a property.\n *\n * @param {string} key\n * @param {Options} [options]\n */\nexport function zwitch(key, options) {\n var settings = options || {}\n\n /**\n * Handle one value.\n * Based on the bound `key`, a respective handler will be called.\n * If `value` is not an object, or doesnt have a `key` property, the special\n * “invalid” handler will be called.\n * If `value` has an unknown `key`, the special “unknown” handler will be\n * called.\n *\n * All arguments, and the context object, are passed through to the handler,\n * and its result is returned.\n *\n * @param {...unknown} [value]\n * @this {unknown}\n * @returns {unknown}\n * @property {Handler} invalid\n * @property {Handler} unknown\n * @property {Handlers} handlers\n */\n function one(value) {\n var fn = one.invalid\n var handlers = one.handlers\n\n if (value && own.call(value, key)) {\n fn = own.call(handlers, value[key]) ? handlers[value[key]] : one.unknown\n }\n\n if (fn) {\n return fn.apply(this, arguments)\n }\n }\n\n one.handlers = settings.handlers || {}\n one.invalid = settings.invalid\n one.unknown = settings.unknown\n\n return one\n}\n","/**\n * @typedef {import('parse5').Node} P5Node\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {import('parse5').DocumentType} P5Doctype\n * @typedef {import('parse5').CommentNode} P5Comment\n * @typedef {import('parse5').TextNode} P5Text\n * @typedef {import('parse5').Element} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {import('parse5').ParentNode} P5Parent\n * @typedef {Exclude<P5Node, P5Document|P5Fragment>} P5Child\n * @typedef {import('property-information').Schema} Schema\n * @typedef {import('property-information').Info} Info\n * @typedef {'html'|'svg'} Space\n * @typedef {import('hast').Parent} Parent\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {Parent['children'][number]} Child\n * @typedef {Child|Root} Node\n *\n * @callback Handle\n * @param {Node} node\n * @param {Schema} schema\n * @returns {P5Node}\n */\n\nimport {html, svg, find} from 'property-information'\nimport {toH} from 'hast-to-hyperscript'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nvar own = {}.hasOwnProperty\n\nvar one = zwitch('type', {handlers: {root, element, text, comment, doctype}})\n\n/**\n * Transform a tree from hast to Parse5s AST.\n *\n * @param {Node} tree\n * @param {Space} [space='html']\n * @returns {P5Node}\n */\nexport function toParse5(tree, space) {\n // @ts-ignore Types are wrong.\n return one(tree, space === 'svg' ? svg : html)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Document}\n */\nfunction root(node, schema) {\n /** @type {P5Document} */\n var p5 = {\n nodeName: '#document',\n mode: (node.data || {}).quirksMode ? 'quirks' : 'no-quirks',\n childNodes: []\n }\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Root} node\n * @returns {P5Fragment}\n */\nfunction fragment(node, schema) {\n /** @type {P5Fragment} */\n var p5 = {nodeName: '#document-fragment', childNodes: []}\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n return patch(node, p5)\n}\n\n/**\n * @type {Handle}\n * @param {Doctype} node\n * @returns {P5Doctype}\n */\nfunction doctype(node) {\n return patch(node, {\n nodeName: '#documentType',\n name: 'html',\n publicId: '',\n systemId: '',\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Text} node\n * @returns {P5Text}\n */\nfunction text(node) {\n return patch(node, {\n nodeName: '#text',\n value: node.value,\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Comment} node\n * @returns {P5Comment}\n */\nfunction comment(node) {\n return patch(node, {\n nodeName: '#comment',\n data: node.value,\n parentNode: undefined\n })\n}\n\n/**\n * @type {Handle}\n * @param {Element} node\n * @returns {P5Element}\n */\nfunction element(node, schema) {\n /** @type {Space} */\n // @ts-ignore Assume space.\n var space = schema.space\n return toH(h, Object.assign({}, node, {children: []}), {space})\n\n /**\n * @param {string} name\n * @param {Object.<string, string|boolean|number>} attrs\n */\n function h(name, attrs) {\n /** @type {Array.<P5Attribute>} */\n var values = []\n /** @type {Info} */\n var info\n /** @type {P5Attribute} */\n var value\n /** @type {string} */\n var key\n /** @type {number} */\n var index\n /** @type {P5Element} */\n var p5\n\n for (key in attrs) {\n if (!own.call(attrs, key) || attrs[key] === false) {\n continue\n }\n\n info = find(schema, key)\n\n if (info.boolean && !attrs[key]) {\n continue\n }\n\n value = {name: key, value: attrs[key] === true ? '' : String(attrs[key])}\n\n if (info.space && info.space !== 'html' && info.space !== 'svg') {\n index = key.indexOf(':')\n\n if (index < 0) {\n value.prefix = ''\n } else {\n value.name = key.slice(index + 1)\n value.prefix = key.slice(0, index)\n }\n\n value.namespace = webNamespaces[info.space]\n }\n\n values.push(value)\n }\n\n if (schema.space === 'html' && node.tagName === 'svg') schema = svg\n\n p5 = patch(node, {\n nodeName: name,\n tagName: name,\n attrs: values,\n namespaceURI: webNamespaces[schema.space],\n childNodes: [],\n parentNode: undefined\n })\n\n // @ts-ignore Assume correct children.\n p5.childNodes = all(node.children, p5, schema)\n\n // @ts-ignore Types are wrong.\n if (name === 'template') p5.content = fragment(node.content, schema)\n\n return p5\n }\n}\n\n/**\n * @param {Array.<Child>} children\n * @param {P5Parent} p5\n * @param {Schema} schema\n * @returns {Array.<P5Child>}\n */\nfunction all(children, p5, schema) {\n var index = -1\n /** @type {Array.<P5Child>} */\n var result = []\n /** @type {P5Child} */\n var child\n\n if (children) {\n while (++index < children.length) {\n // @ts-ignore Assume child.\n child = one(children[index], schema)\n\n // @ts-ignore types are wrong.\n child.parentNode = p5\n\n result.push(child)\n }\n }\n\n return result\n}\n\n/**\n * Patch specific properties.\n *\n * @template {P5Node} T\n * @param {Node} node\n * @param {T} p5\n * @returns {T}\n */\nfunction patch(node, p5) {\n var position = node.position\n\n if (position && position.start && position.end) {\n // @ts-ignore Types are wrong.\n p5.sourceCodeLocation = {\n startLine: position.start.line,\n startCol: position.start.column,\n startOffset: position.start.offset,\n endLine: position.end.line,\n endCol: position.end.column,\n endOffset: position.end.offset\n }\n }\n\n return p5\n}\n","/**\n * List of HTML void tag names.\n *\n * @type {Array<string>}\n */\nexport const htmlVoidElements = [\n 'area',\n 'base',\n 'basefont',\n 'bgsound',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'frame',\n 'hr',\n 'image',\n 'img',\n 'input',\n 'isindex',\n 'keygen',\n 'link',\n 'menuitem',\n 'meta',\n 'nextid',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]\n","/**\n * @typedef {import('vfile').VFile} VFile\n * @typedef {import('parse5').Document} P5Document\n * @typedef {import('parse5').DocumentFragment} P5Fragment\n * @typedef {Omit<import('parse5').Element, 'parentNode'>} P5Element\n * @typedef {import('parse5').Attribute} P5Attribute\n * @typedef {Omit<import('parse5').Location, 'startOffset' | 'endOffset'> & {startOffset: number|undefined, endOffset: number|undefined}} P5Location\n * @typedef {import('parse5').ParserOptions} P5ParserOptions\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast').DocType} Doctype\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('hast').Comment} Comment\n * @typedef {import('hast').Content} Content\n * @typedef {Root|Content} Node\n * @typedef {import('../complex-types').Raw} Raw\n *\n * @typedef {Omit<Comment, 'value'> & {value: {stitch: Node}}} Stitch\n *\n * @typedef Options\n * @property {Array<string>} [passThrough]\n * List of custom hast node types to pass through (keep) in hast.\n * If the passed through nodes have children, those children are expected to\n * be hast and will be handled.\n *\n * @typedef HiddenTokenizer\n * @property {Array<HiddenLocationTracker>} __mixins\n * Way too simple, but works for us.\n * @property {HiddenPreprocessor} preprocessor\n * @property {(value: string) => void} write\n * @property {() => number} _consume\n * @property {Array<HiddenToken>} tokenQueue\n * @property {string} state\n * @property {string} returnState\n * @property {number} charRefCode\n * @property {Array<number>} tempBuff\n * @property {Function} _flushCodePointsConsumedAsCharacterReference\n * @property {string} lastStartTagName\n * @property {number} consumedAfterSnapshot\n * @property {boolean} active\n * @property {HiddenToken|undefined} currentCharacterToken\n * @property {HiddenToken|undefined} currentToken\n * @property {unknown} currentAttr\n * @property {Function} NAMED_CHARACTER_REFERENCE_STATE\n * @property {Function} NUMERIC_CHARACTER_REFERENCE_END_STATE\n *\n * @typedef {Record<string, unknown> & {location: P5Location}} HiddenToken\n *\n * @typedef HiddenPreprocessor\n * @property {string|undefined} html\n * @property {number} pos\n * @property {number} lastGapPos\n * @property {number} lastCharPos\n * @property {Array<number>} gapStack\n * @property {boolean} skipNextNewLine\n * @property {boolean} lastChunkWritten\n * @property {boolean} endOfChunkHit\n *\n * @typedef HiddenLocationTracker\n * @property {P5Location|undefined} currentAttrLocation\n * @property {P5Location} ctLoc\n * @property {HiddenPosTracker} posTracker\n *\n * @typedef HiddenPosTracker\n * @property {boolean} isEol\n * @property {number} lineStartPos\n * @property {number} droppedBufferSize\n * @property {number} offset\n * @property {number} col\n * @property {number} line\n */\n\n// @ts-expect-error: untyped.\nimport Parser from 'parse5/lib/parser/index.js'\nimport {pointStart, pointEnd} from 'unist-util-position'\nimport {visit} from 'unist-util-visit'\nimport {fromParse5} from 'hast-util-from-parse5'\nimport {toParse5} from 'hast-util-to-parse5'\nimport {htmlVoidElements} from 'html-void-elements'\nimport {webNamespaces} from 'web-namespaces'\nimport {zwitch} from 'zwitch'\n\nconst inTemplateMode = 'IN_TEMPLATE_MODE'\nconst dataState = 'DATA_STATE'\nconst characterToken = 'CHARACTER_TOKEN'\nconst startTagToken = 'START_TAG_TOKEN'\nconst endTagToken = 'END_TAG_TOKEN'\nconst commentToken = 'COMMENT_TOKEN'\nconst doctypeToken = 'DOCTYPE_TOKEN'\n\n/** @type {P5ParserOptions} */\nconst parseOptions = {sourceCodeLocationInfo: true, scriptingEnabled: false}\n\n/**\n * Given a hast tree and an optional vfile (for positional info), return a new\n * parsed-again hast tree.\n *\n * @param tree\n * Original hast tree.\n * @param file\n * Virtual file for positional info, optional.\n * @param options\n * Configuration.\n */\nexport const raw =\n /**\n * @type {(\n * ((tree: Node, file: VFile|undefined, options?: Options) => Node) &\n * ((tree: Node, options?: Options) => Node)\n * )}\n */\n (\n /**\n * @param {Node} tree\n * @param {VFile} [file]\n * @param {Options} [options]\n */\n function (tree, file, options) {\n let index = -1\n const parser = new Parser(parseOptions)\n const one = zwitch('type', {\n // @ts-expect-error: hush.\n handlers: {root, element, text, comment, doctype, raw: handleRaw},\n // @ts-expect-error: hush.\n unknown\n })\n /** @type {boolean|undefined} */\n let stitches\n /** @type {HiddenTokenizer|undefined} */\n let tokenizer\n /** @type {HiddenPreprocessor|undefined} */\n let preprocessor\n /** @type {HiddenPosTracker|undefined} */\n let posTracker\n /** @type {HiddenLocationTracker|undefined} */\n let locationTracker\n\n if (isOptions(file)) {\n options = file\n file = undefined\n }\n\n if (options && options.passThrough) {\n while (++index < options.passThrough.length) {\n // @ts-expect-error: hush.\n one.handlers[options.passThrough[index]] = stitch\n }\n }\n\n const result = fromParse5(\n documentMode(tree) ? document() : fragment(),\n file\n )\n\n if (stitches) {\n visit(result, 'comment', (node, index, parent) => {\n const stitch = /** @type {Stitch} */ (/** @type {unknown} */ (node))\n if (stitch.value.stitch && parent !== null && index !== null) {\n // @ts-expect-error: assume the stitch is allowed.\n parent.children[index] = stitch.value.stitch\n return index\n }\n })\n }\n\n // Unpack if possible and when not given a `root`.\n if (\n tree.type !== 'root' &&\n result.type === 'root' &&\n result.children.length === 1\n ) {\n return result.children[0]\n }\n\n return result\n\n /**\n * @returns {P5Fragment}\n */\n function fragment() {\n /** @type {P5Element} */\n const context = {\n nodeName: 'template',\n tagName: 'template',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Element} */\n const mock = {\n nodeName: 'documentmock',\n tagName: 'documentmock',\n attrs: [],\n namespaceURI: webNamespaces.html,\n childNodes: []\n }\n /** @type {P5Fragment} */\n const doc = {nodeName: '#document-fragment', childNodes: []}\n\n parser._bootstrap(mock, context)\n parser._pushTmplInsertionMode(inTemplateMode)\n parser._initTokenizerForFragmentParsing()\n parser._insertFakeRootElement()\n parser._resetInsertionMode()\n parser._findFormInFragmentContext()\n\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n resetTokenizer()\n\n parser._adoptNodes(mock.childNodes[0], doc)\n\n return doc\n }\n\n /**\n * @returns {P5Document}\n */\n function document() {\n /** @type {P5Document} */\n const doc = parser.treeAdapter.createDocument()\n\n parser._bootstrap(doc, undefined)\n tokenizer = parser.tokenizer\n /* c8 ignore next */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n preprocessor = tokenizer.preprocessor\n locationTracker = tokenizer.__mixins[0]\n posTracker = locationTracker.posTracker\n\n one(tree)\n\n resetTokenizer()\n\n return doc\n }\n\n /**\n * @param {Array<Content>} nodes\n * @returns {void}\n */\n function all(nodes) {\n let index = -1\n\n /* istanbul ignore else - invalid nodes, see rehypejs/rehype-raw#7. */\n if (nodes) {\n while (++index < nodes.length) {\n one(nodes[index])\n }\n }\n }\n\n /**\n * @param {Root} node\n * @returns {void}\n */\n function root(node) {\n all(node.children)\n }\n\n /**\n * @param {Element} node\n * @returns {void}\n */\n function element(node) {\n resetTokenizer()\n parser._processToken(startTag(node), webNamespaces.html)\n\n all(node.children)\n\n if (!htmlVoidElements.includes(node.tagName)) {\n resetTokenizer()\n parser._processToken(endTag(node))\n }\n }\n\n /**\n * @param {Text} node\n * @returns {void}\n */\n function text(node) {\n resetTokenizer()\n parser._processToken({\n type: characterToken,\n chars: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Doctype} node\n * @returns {void}\n */\n function doctype(node) {\n resetTokenizer()\n parser._processToken({\n type: doctypeToken,\n name: 'html',\n forceQuirks: false,\n publicId: '',\n systemId: '',\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Comment|Stitch} node\n * @returns {void}\n */\n function comment(node) {\n resetTokenizer()\n parser._processToken({\n type: commentToken,\n data: node.value,\n location: createParse5Location(node)\n })\n }\n\n /**\n * @param {Raw} node\n * @returns {void}\n */\n function handleRaw(node) {\n const start = pointStart(node)\n const line = start.line || 1\n const column = start.column || 1\n const offset = start.offset || 0\n\n /* c8 ignore next 4 */\n if (!preprocessor) throw new Error('Expected `preprocessor`')\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n if (!locationTracker) throw new Error('Expected `locationTracker`')\n\n // Reset preprocessor:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/preprocessor.js#L17>.\n preprocessor.html = undefined\n preprocessor.pos = -1\n preprocessor.lastGapPos = -1\n preprocessor.lastCharPos = -1\n preprocessor.gapStack = []\n preprocessor.skipNextNewLine = false\n preprocessor.lastChunkWritten = false\n preprocessor.endOfChunkHit = false\n\n // Reset preprocessor mixin:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/position-tracking/preprocessor-mixin.js>.\n posTracker.isEol = false\n posTracker.lineStartPos = -column + 1 // Looks weird, but ensures we get correct positional info.\n posTracker.droppedBufferSize = offset\n posTracker.offset = 0\n posTracker.col = 1\n posTracker.line = line\n\n // Reset location tracker:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js>.\n locationTracker.currentAttrLocation = undefined\n locationTracker.ctLoc = createParse5Location(node)\n\n // See the code for `parse` and `parseFragment`:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/parser/index.js#L371>.\n tokenizer.write(node.value)\n parser._runParsingLoop(null)\n\n // Character references hang, so if we ended there, we need to flush\n // those too.\n // We reset the preprocessor as if the document ends here.\n // Then one single call to the relevant state does the trick, parse5\n // consumes the whole token.\n if (\n tokenizer.state === 'NAMED_CHARACTER_REFERENCE_STATE' ||\n tokenizer.state === 'NUMERIC_CHARACTER_REFERENCE_END_STATE'\n ) {\n preprocessor.lastChunkWritten = true\n tokenizer[tokenizer.state](tokenizer._consume())\n }\n }\n\n /**\n * @param {Node} node\n */\n function stitch(node) {\n stitches = true\n\n /** @type {Node} */\n let clone\n\n // Recurse, because to somewhat handle `[<x>]</x>` (where `[]` denotes the\n // passed through node).\n if ('children' in node) {\n clone = {\n ...node,\n children: raw(\n {type: 'root', children: node.children},\n file,\n options\n // @ts-expect-error Assume a given parent yields a parent.\n ).children\n }\n } else {\n clone = {...node}\n }\n\n // Hack: `value` is supposed to be a string, but as none of the tools\n // (`parse5` or `hast-util-from-parse5`) looks at it, we can pass nodes\n // through.\n comment({type: 'comment', value: {stitch: clone}})\n }\n\n function resetTokenizer() {\n /* c8 ignore next 2 */\n if (!tokenizer) throw new Error('Expected `tokenizer`')\n if (!posTracker) throw new Error('Expected `posTracker`')\n\n // Process final characters if theyre still there after hibernating.\n // Similar to:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/extensions/location-info/tokenizer-mixin.js#L95>.\n const token = tokenizer.currentCharacterToken\n\n if (token) {\n token.location.endLine = posTracker.line\n token.location.endCol = posTracker.col + 1\n token.location.endOffset = posTracker.offset + 1\n parser._processToken(token)\n }\n\n // Reset tokenizer:\n // See: <https://github.com/inikulin/parse5/blob/9c683e1/packages/parse5/lib/tokenizer/index.js#L218-L234>.\n // Especially putting it back in the `data` state is useful: some elements,\n // like textareas and iframes, change the state.\n // See GH-7.\n // But also if broken HTML is in `raw`, and then a correct element is given.\n // See GH-11.\n tokenizer.tokenQueue = []\n tokenizer.state = dataState\n tokenizer.returnState = ''\n tokenizer.charRefCode = -1\n tokenizer.tempBuff = []\n tokenizer.lastStartTagName = ''\n tokenizer.consumedAfterSnapshot = -1\n tokenizer.active = false\n tokenizer.currentCharacterToken = undefined\n tokenizer.currentToken = undefined\n tokenizer.currentAttr = undefined\n }\n }\n )\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction startTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: startTagToken,\n tagName: node.tagName,\n selfClosing: false,\n attrs: attributes(node),\n location\n }\n}\n\n/**\n * @param {Element} node\n * @returns {Array<P5Attribute>}\n */\nfunction attributes(node) {\n return toParse5({\n tagName: node.tagName,\n type: 'element',\n properties: node.properties,\n children: []\n // @ts-expect-error Assume element.\n }).attrs\n}\n\n/**\n * @param {Element} node\n * @returns {HiddenToken}\n */\nfunction endTag(node) {\n /** @type {P5Location} */\n const location = Object.assign(createParse5Location(node))\n // @ts-expect-error extra positional info.\n location.startTag = Object.assign({}, location)\n\n // Untyped token.\n return {\n type: endTagToken,\n tagName: node.tagName,\n attrs: [],\n location\n }\n}\n\n/**\n * @param {Node} node\n */\nfunction unknown(node) {\n throw new Error('Cannot compile `' + node.type + '` node')\n}\n\n/**\n * @param {Node} node\n * @returns {boolean}\n */\nfunction documentMode(node) {\n const head = node.type === 'root' ? node.children[0] : node\n return Boolean(\n head &&\n (head.type === 'doctype' ||\n (head.type === 'element' && head.tagName === 'html'))\n )\n}\n\n/**\n * @param {Node|Stitch} node\n * @returns {P5Location}\n */\nfunction createParse5Location(node) {\n const start = pointStart(node)\n const end = pointEnd(node)\n\n return {\n startLine: start.line,\n startCol: start.column,\n startOffset: start.offset,\n endLine: end.line,\n endCol: end.column,\n endOffset: end.offset\n }\n}\n\n/**\n * @param {VFile|Options|undefined} value\n * @return {value is Options}\n */\nfunction isOptions(value) {\n return Boolean(value && !('message' in value && 'messages' in value))\n}\n","/**\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-raw').Options} Options\n * @typedef {import('hast-util-raw')} DoNotTouchAsThisImportIncludesRawInTree\n */\n\nimport {raw} from 'hast-util-raw'\n\n/**\n * Plugin to parse the tree again (and raw nodes).\n * Keeping positional info OK. 🙌\n *\n * @type {import('unified').Plugin<[Options?] | Array<void>, Root>}\n */\nexport default function rehypeRaw(options = {}) {\n return (tree, file) => {\n // Assume that when a root was given, its also returned.\n const result = /** @type {Root} */ (raw(tree, file, options))\n return result\n }\n}\n","import * as React from \"react\";\nconst SVGComponent = (props) => (\n <svg\n height={512}\n style={{\n enableBackground: \"new 0 0 512 512\",\n }}\n viewBox=\"0 0 512 512\"\n width={512}\n xmlSpace=\"preserve\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path d=\"m184.7 413.1 2.1-1.8 156.5-136c5.3-4.6 8.6-11.5 8.6-19.2 0-7.7-3.4-14.6-8.6-19.2L187.1 101l-2.6-2.3C182 97 179 96 175.8 96c-8.7 0-15.8 7.4-15.8 16.6v286.8c0 9.2 7.1 16.6 15.8 16.6 3.3 0 6.4-1.1 8.9-2.9z\" />\n <path\n style={{\n fill: \"#fff\",\n strokeWidth: 0.498539,\n }}\n d=\"M171.101 414.868c-4.514-1.611-8.561-5.771-10.18-10.464-.834-2.42-1.217-288.516-.393-293.894.907-5.921 3.926-10.216 8.895-12.657 3.95-1.94 9.155-1.937 12.793.007 3.343 1.785 161.905 139.906 164.376 143.184 3.021 4.01 4.472 8.2 4.757 13.742.186 3.605.037 5.49-.609 7.727-1.173 4.064-3.454 8.202-5.94 10.774-1.146 1.186-37.704 33.115-81.239 70.955-55.39 48.142-79.907 69.15-81.66 69.97-3.43 1.606-7.454 1.85-10.8.656z\"\n />\n </svg>\n);\nexport default SVGComponent;\n","import * as React from \"react\";\nconst SVGComponent = (props) => (\n <svg\n height={512}\n style={{\n enableBackground: \"new 0 0 512 512\",\n }}\n viewBox=\"0 0 512 512\"\n width={512}\n xmlSpace=\"preserve\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n {...props}\n >\n <path d=\"m98.9 184.7 1.8 2.1 136 156.5c4.6 5.3 11.5 8.6 19.2 8.6 7.7 0 14.6-3.4 19.2-8.6L411 187.1l2.3-2.6c1.7-2.5 2.7-5.5 2.7-8.7 0-8.7-7.4-15.8-16.6-15.8H112.6c-9.2 0-16.6 7.1-16.6 15.8 0 3.3 1.1 6.4 2.9 8.9z\" />\n <path\n style={{\n fill: \"#fff\",\n strokeWidth: 0.498539,\n }}\n d=\"M248.273 350.336c-4.083-1.397-7.187-3.22-9.662-5.673-1.064-1.054-32.92-37.549-70.793-81.098-48.133-55.35-69.23-79.958-70.096-81.76-1.803-3.758-1.753-8.546.131-12.382 2.335-4.755 6.517-7.824 12.058-8.848 4.16-.769 288.018-.769 292.178 0 5.54 1.024 9.723 4.093 12.058 8.848 1.847 3.762 1.927 9.146.186 12.495-1.265 2.433-139.44 161.51-142.47 164.02-6.161 5.108-16.1 6.96-23.59 4.398z\"\n />\n </svg>\n);\nexport default SVGComponent;\n","import './App.css';\nimport { useState, useCallback } from \"react\";\nimport data from \"./data\";\nimport ReactMarkdown from 'react-markdown';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\n// Theme examples: https://react-syntax-highlighter.github.io/react-syntax-highlighter/demo/prism.html\nimport { coldarkDark } from 'react-syntax-highlighter/dist/esm/styles/prism';\nimport remarkGfm from 'remark-gfm';\nimport rehypeRaw from 'rehype-raw';\nimport RightArrow from \"./components/right_arrow\";\nimport DownArrow from \"./components/down_arrow\";\n\n// TODO: Future, have a way to bookmark to specific entries\n\n// Copy icon reference:\n// https://github.com/react-syntax-highlighter/react-syntax-highlighter/issues/132\n\nfunction debounce(fn, wait, immediate) {\n let timeout;\n\n return (...args) => {\n const context = this;\n\n const later = () => {\n timeout = null;\n if (!immediate) fn.apply(context, args);\n };\n\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) {\n fn.apply(context, args);\n }\n };\n}\n\n// const types = data.items.map(item => item.type);\n\nfunction filterData(data, filter = \"\", typeFilter = \"all\") {\n // console.warn(\"filterData\");\n \n if (typeFilter === \"all\" && filter.length) return data;\n\n const typeFilteredItems = {};\n typeFilteredItems.items = typeFilter !== \"all\" ? data.items.filter(item => item.type === typeFilter) : data.items;\n\n if (filter.length) return typeFilteredItems;\n\n const filtered = {};\n filtered.items = filter.length ? typeFilteredItems.items.filter(item => {\n // console.warn(\"title\", filter.toLowerCase(), item.title.toLowerCase(), item.title.toLowerCase().includes(filter.toLowerCase()));\n // console.warn(\"content\", filter.toLowerCase(), item.content.toLowerCase(), item.content.toLowerCase().includes(filter.toLowerCase()));\n return item.title.toLowerCase().includes(filter.toLowerCase()) || item.content.toLowerCase().includes(filter.toLowerCase());\n }) : typeFilteredItems.items;\n\n return filtered;\n};\n\nfunction App() {\n const [filter, setFilter] = useState(\"\");\n const [typeFilter, setTypeFilter] = useState(\"all\");\n const [expandedItems, setExpandedItems] = useState([]);\n const [expandedCategories, setExpandedCategories] = useState([]);\n // Alphabetize categories\n // data.items.sort((fa, fb) => {\n // if (fa.category < fb.category) {\n // return -1;\n // }\n // if (fa.category > fb.category) {\n // return 1;\n // }\n // return 0;\n // });\n function handleFilter(event) {\n // console.warn(\"handleFilter\");\n debounce(setFilter(event.target.value), 300);\n }\n\n const handleExpandItem = useCallback((event) => {\n // console.warn(\"handleExpandItem\");\n const newExpanded = expandedItems.includes(event) ? expandedItems.filter(i => i !== event) : [...expandedItems, event];\n setExpandedItems(newExpanded);\n }, [expandedItems]);\n\n const handleCategoryClick = useCallback((event) => {\n // console.warn(\"handleCategoryClick\");\n const newExpandedCategory = expandedCategories.includes(event) ? expandedCategories.filter(i => i !== event) : [...expandedCategories, event];\n setExpandedCategories(newExpandedCategory);\n }, [expandedCategories]);\n\n function expandAll() {\n setExpandedCategories(data.categories.map(category => category.title));\n }\n\n function collapseAll() {\n setExpandedItems([]);\n setExpandedCategories([]);\n }\n\n // function handleTypeFilterClick(type) {\n // // console.warn(\"handleTypeFilterClick\");\n // setTypeFilter(type);\n // }\n\n function clearFilters() {\n setFilter(\"\");\n setTypeFilter(\"all\");\n }\n\n // console.warn(\"expandedCategories\", expandedCategories);\n // console.warn(\"expandedItems\", expandedItems);\n\n const filtered = filter.length || typeFilter !== \"all\" ? filterData(data, filter, typeFilter) : data;\n // console.warn(\"render\");\n return (\n <div className=\"App\">\n <div className={\"inputFilter\"}>\n <span align=\"center\"><input type=\"text\" onChange={handleFilter} value={filter} /> Search</span>\n <span align=\"center\"> 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝 󠁝<a href=\"https://github.com/tteck/Proxmox/blob/main/LICENSE\"><img alt=\"License MIT\" src=\"https://img.shields.io/badge/license-MIT-blue\" /></a> <a href=\"https://github.com/tteck/Proxmox/discussions\"><img src=\"https://img.shields.io/badge/%F0%9F%92%AC-Discussions-orange\" alt=\"Discussions\" /></a> <a href=\"https://github.com/tteck/Proxmox/blob/main/CHANGELOG.MD\"><img src=\"https://img.shields.io/badge/🔶-Changelog-blue\" alt=\"Changelog\" /></a> <a href=\"https://ko-fi.com/D1D7EP4GF\"><img src=\"https://img.shields.io/badge/%E2%98%95-Buy%20me%20a%20coffee-red\" alt=\"Buy me a coffee\" /></a></span>\n {/* <span className=\"typeFilter\">Type: {[\"all\", ...new Set(types)].map(type =>\n <span onClick={() => handleTypeFilterClick(type)} key={type} className={typeFilter === type ? \"typeFilterSelected\" : \"typeFilterNotSelected\"}> {type} </span>\n )}</span> */}\n </div>\n {filtered.items.length === 0 && <div>No items match your criteria <button onClick={clearFilters}>Clear Filters</button></div>}\n <div><span onClick={expandAll}> 󠀠 󠀠 󠀠 󠀠 󠀠</span> 󠀠 <span onClick={collapseAll}> 󠀠 󠀠 󠀠 󠀠 󠀠</span></div>\n {filtered.items?.map((item, index) => {\n return <div className={\"App-items\"} key={item.title} >\n {/** Show Category \n * Since Categories are flatted, only show the category the first time it appears while mapping through.\n */}\n {(index === 0 || filtered.items[index === 0 ? 0 : index - 1].category !== item.category) && <div onClick={() => handleCategoryClick(item.category)} className={\"itemCategory\"}>\n {/* <img className={\"categoryLogo\"} src={data.categories.filter(category => category.title === item.category)[0]?.logo_url || data.categories[0].logo_url} alt=\"logo\" /> */}\n {item.category}{(((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) || expandedCategories.includes(item.category)) ? <DownArrow className=\"navArrow\" alt=\"Expanded\" /> : <RightArrow className=\"navArrow\" alt=\"Collapsed\" />} </div>}\n\n {/* Show Item Title */}\n {(((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) || expandedCategories.includes(item.category)) && <span onClick={() => handleExpandItem(item.title)} className={\"itemTitle\"}>{item.title}</span>}\n\n {\n ((filter && item.title.toLowerCase().includes(filter.toLowerCase())) || expandedItems.includes(item.title)) && <div className=\"item\">\n <ReactMarkdown\n children={item.content}\n remarkPlugins={[remarkGfm]}\n rehypePlugins={[rehypeRaw]}\n components={{\n code({ node, inline, className, children, ...props }) {\n const match = /language-(\\w+)/.exec(className || '');\n return !inline && match ? (\n <>\n <CopyButton valueToCopy={String(children)} />\n <SyntaxHighlighter\n children={String(children).replace(/\\n$/, '')}\n style={coldarkDark}\n language={match[1]}\n PreTag=\"div\"\n {...props}\n />\n </>\n ) : (\n <code className={className} {...props}>\n {children}\n </code>\n );\n }\n }}\n />\n </div>}\n </div>;\n })}\n </div>\n );\n}\nfunction CopyButton({ valueToCopy }) {\n function handleClick(text) {\n navigator.clipboard.writeText(text);\n }\n\n return <button onClick={() => handleClick(valueToCopy)}>Copy</button>;\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n);\n\n"],"names":["hasOwn","Object","prototype","hasOwnProperty","toStr","toString","defineProperty","gOPD","getOwnPropertyDescriptor","isArray","arr","Array","call","isPlainObject","obj","key","hasOwnConstructor","hasIsPrototypeOf","constructor","setProperty","target","options","name","enumerable","configurable","value","newValue","writable","getProperty","module","exports","extend","src","copy","copyIsArray","clone","arguments","i","length","deep","selector","defaultTagName","subvalue","previous","match","props","start","search","lastIndex","exec","slice","index","id","className","push","type","tagName","properties","children","find","require","normalize","parseSelector","spaces","commas","schema","caseSensitive","adjust","values","result","toLowerCase","createAdjustMap","property","node","own","isChildren","unshift","addProperty","addChild","content","info","undefined","spaceSeparated","commaSeparated","commaOrSpaceSeparated","join","style","concat","parsePrimitive","parsePrimitives","isNode","nodes","Error","String","number","positiveNumber","isNaN","Number","boolean","overloadedBoolean","html","factory","displayName","val","input","indexOf","end","trim","DefinedInfo","Info","data","normal","prop","Type","valid","test","charAt","attribute","replace","dash","camelcase","toUpperCase","datasetToProperty","cap","kebab","datasetToAttribute","$0","merge","xlink","xml","xmlns","aria","types","create","booleanish","transform","_","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabel","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","role","caseInsensitiveTransform","space","attributes","acceptcharset","classname","htmlfor","httpequiv","mustUseProperty","abbr","accept","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","alt","as","async","autoCapitalize","autoComplete","autoFocus","autoPlay","capture","charSet","checked","cite","cols","colSpan","contentEditable","controls","controlsList","coords","crossOrigin","dateTime","decoding","default","defer","dir","dirName","disabled","download","draggable","encType","enterKeyHint","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","height","hidden","high","href","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","kind","label","lang","language","list","loading","loop","low","manifest","max","maxLength","media","method","min","minLength","multiple","muted","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforePrint","onBeforeUnload","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextMenu","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onHashChange","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","open","optimum","pattern","ping","placeholder","playsInline","poster","preload","readOnly","referrerPolicy","rel","required","reversed","rows","rowSpan","sandbox","scope","scoped","seamless","selected","shape","size","sizes","slot","span","spellCheck","srcDoc","srcLang","srcSet","step","tabIndex","title","translate","typeMustMatch","useMap","width","wrap","align","aLink","archive","axis","background","bgColor","border","borderColor","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","clear","code","codeBase","codeType","color","compact","declare","event","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","noWrap","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","summary","text","topMargin","valueType","version","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","results","security","unselectable","caseSensitiveTransform","Schema","definition","defined","checks","checksLength","mask","check","mark","this","proto","xtend","definitions","apply","powers","increment","Math","pow","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","xmlnsxlink","xmlnsXLink","split","whiteSpace","COMMENT_REGEX","NEWLINE_REGEX","WHITESPACE_REGEX","PROPERTY_REGEX","COLON_REGEX","VALUE_REGEX","SEMICOLON_REGEX","TRIM_REGEX","EMPTY_STRING","str","TypeError","lineno","column","updatePosition","lines","lastIndexOf","position","line","Position","whitespace","source","errorsList","error","msg","err","reason","filename","silent","re","m","comments","c","comment","pos","declaration","ret","decl","decls","declarations","character","charCodeAt","alphabetical","decimal","isBuffer","encodeCache","encode","string","exclude","keepEscaped","l","nextCode","cache","defaultChars","ch","fromCharCode","getEncodeCache","encodeURIComponent","componentChars","el","characters","entity","document","createElement","innerHTML","textContent","legacy","invalid","hexadecimal","alphanumerical","decodeEntity","option","settings","defaults","indent","entityCharacters","namedEntity","terminated","reference","following","warning","output","begin","prev","next","diff","additional","nonTerminated","handleText","handleReference","handleWarning","textContext","referenceContext","warningContext","queue","now","parseError","noop","hexa","deci","tests","prohibited","parseInt","bases","disallowed","flush","offset","messages","parse","Function","DOCUMENT_MODE","VALID_DOCTYPE_NAME","QUIRKS_MODE_PUBLIC_ID_PREFIXES","QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES","QUIRKS_MODE_PUBLIC_IDS","LIMITED_QUIRKS_PUBLIC_ID_PREFIXES","LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES","enquoteDoctypeId","quote","hasPrefix","publicId","prefixes","isConforming","token","systemId","getDocumentMode","QUIRKS","LIMITED_QUIRKS","NO_QUIRKS","serializeContent","controlCharacterInInputStream","noncharacterInInputStream","surrogateInInputStream","nonVoidHtmlElementStartTagWithTrailingSolidus","endTagWithAttributes","endTagWithTrailingSolidus","unexpectedSolidusInTag","unexpectedNullCharacter","unexpectedQuestionMarkInsteadOfTagName","invalidFirstCharacterOfTagName","unexpectedEqualsSignBeforeAttributeName","missingEndTagName","unexpectedCharacterInAttributeName","unknownNamedCharacterReference","missingSemicolonAfterCharacterReference","unexpectedCharacterAfterDoctypeSystemIdentifier","unexpectedCharacterInUnquotedAttributeValue","eofBeforeTagName","eofInTag","missingAttributeValue","missingWhitespaceBetweenAttributes","missingWhitespaceAfterDoctypePublicKeyword","missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers","missingWhitespaceAfterDoctypeSystemKeyword","missingQuoteBeforeDoctypePublicIdentifier","missingQuoteBeforeDoctypeSystemIdentifier","missingDoctypePublicIdentifier","missingDoctypeSystemIdentifier","abruptDoctypePublicIdentifier","abruptDoctypeSystemIdentifier","cdataInHtmlContent","incorrectlyOpenedComment","eofInScriptHtmlCommentLikeText","eofInDoctype","nestedComment","abruptClosingOfEmptyComment","eofInComment","incorrectlyClosedComment","eofInCdata","absenceOfDigitsInNumericCharacterReference","nullCharacterReference","surrogateCharacterReference","characterReferenceOutsideUnicodeRange","controlCharacterReference","noncharacterCharacterReference","missingWhitespaceBeforeDoctypeName","missingDoctypeName","invalidCharacterSequenceAfterDoctypeName","duplicateAttribute","nonConformingDoctype","missingDoctype","misplacedDoctype","endTagWithoutMatchingOpenElement","closingOfElementWithOpenChildElements","disallowedContentInNoscriptInHead","openElementsLeftAfterEof","abandonedHeadElementChild","misplacedStartTagForHeadElement","nestedNoscriptInHead","eofInElementThatCanContainOnlyText","Tokenizer","HTML","$","TAG_NAMES","NS","NAMESPACES","ATTRS","MIME_TYPES","SVG_ATTRS_ADJUSTMENT_MAP","attributename","attributetype","basefrequency","baseprofile","calcmode","clippathunits","diffuseconstant","edgemode","filterunits","glyphref","gradienttransform","gradientunits","kernelmatrix","kernelunitlength","keypoints","keysplines","keytimes","lengthadjust","limitingconeangle","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","numoctaves","pathlength","patterncontentunits","patterntransform","patternunits","pointsatx","pointsaty","pointsatz","preservealpha","preserveaspectratio","primitiveunits","refx","refy","repeatcount","repeatdur","requiredextensions","requiredfeatures","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","surfacescale","systemlanguage","tablevalues","targetx","targety","textlength","viewbox","viewtarget","xchannelselector","ychannelselector","zoomandpan","XML_ATTRS_ADJUSTMENT_MAP","namespace","XLINK","XML","XMLNS","SVG_TAG_NAMES_ADJUSTMENT_MAP","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","clippath","feblend","fecolormatrix","fecomponenttransfer","fecomposite","feconvolvematrix","fediffuselighting","fedisplacementmap","fedistantlight","feflood","fefunca","fefuncb","fefuncg","fefuncr","fegaussianblur","feimage","femerge","femergenode","femorphology","feoffset","fepointlight","fespecularlighting","fespotlight","fetile","feturbulence","foreignobject","lineargradient","radialgradient","textpath","EXITS_FOREIGN_CONTENT","B","BIG","BLOCKQUOTE","BODY","BR","CENTER","CODE","DD","DIV","DL","DT","EM","EMBED","H1","H2","H3","H4","H5","H6","HEAD","HR","I","IMG","LI","LISTING","MENU","META","NOBR","OL","P","PRE","RUBY","S","SMALL","SPAN","STRONG","STRIKE","SUB","SUP","TABLE","TT","U","UL","VAR","causesExit","startTagToken","tn","FONT","getTokenAttr","COLOR","SIZE","FACE","adjustTokenMathMLAttrs","attrs","adjustTokenSVGAttrs","adjustedAttrName","adjustTokenXMLAttrs","adjustedAttrEntry","adjustTokenSVGTagName","adjustedTagName","isIntegrationPoint","ns","foreignNS","MATHML","ANNOTATION_XML","ENCODING","SVG","FOREIGN_OBJECT","DESC","TITLE","isHtmlIntegrationPoint","MI","MO","MN","MS","MTEXT","isMathMLTextIntegrationPoint","TYPE","ACTION","PROMPT","NAME","A","ADDRESS","APPLET","AREA","ARTICLE","ASIDE","BASE","BASEFONT","BGSOUND","BUTTON","CAPTION","COL","COLGROUP","DETAILS","DIALOG","DIR","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","FRAME","FRAMESET","HEADER","HGROUP","IMAGE","INPUT","IFRAME","KEYGEN","LABEL","LINK","MAIN","MALIGNMARK","MARQUEE","MATH","MGLYPH","NAV","NOFRAMES","NOEMBED","NOSCRIPT","OBJECT","OPTGROUP","OPTION","PARAM","PLAINTEXT","RB","RP","RT","RTC","SCRIPT","SECTION","SELECT","SOURCE","STYLE","SUMMARY","TBODY","TEMPLATE","TEXTAREA","TFOOT","TD","TH","THEAD","TR","TRACK","WBR","XMP","SPECIAL_ELEMENTS","UNDEFINED_CODE_POINTS","REPLACEMENT_CHARACTER","CODE_POINTS","EOF","NULL","TABULATION","CARRIAGE_RETURN","LINE_FEED","FORM_FEED","SPACE","EXCLAMATION_MARK","QUOTATION_MARK","NUMBER_SIGN","AMPERSAND","APOSTROPHE","HYPHEN_MINUS","SOLIDUS","DIGIT_0","DIGIT_9","SEMICOLON","LESS_THAN_SIGN","EQUALS_SIGN","GREATER_THAN_SIGN","QUESTION_MARK","LATIN_CAPITAL_A","LATIN_CAPITAL_F","LATIN_CAPITAL_X","LATIN_CAPITAL_Z","RIGHT_SQUARE_BRACKET","GRAVE_ACCENT","LATIN_SMALL_A","LATIN_SMALL_F","LATIN_SMALL_X","LATIN_SMALL_Z","CODE_POINT_SEQUENCES","DASH_DASH_STRING","DOCTYPE_STRING","CDATA_START_STRING","SCRIPT_STRING","PUBLIC_STRING","SYSTEM_STRING","isSurrogate","cp","isSurrogatePair","getSurrogatePairCodePoint","cp1","cp2","isControlCodePoint","isUndefinedCodePoint","ErrorReportingMixinBase","host","opts","posTracker","onParseError","startLine","endLine","startCol","endCol","col","startOffset","endOffset","_setErrorLocation","mxn","_err","_reportError","ErrorReportingTokenizerMixin","LocationInfoTokenizerMixin","Mixin","ErrorReportingParserMixin","parser","ctLoc","locBeforeToken","orig","_bootstrap","fragmentContext","install","tokenizer","_processInputToken","location","beforeToken","PositionTrackingPreprocessorMixin","ErrorReportingPreprocessorMixin","preprocessor","lastErrOffset","preprocessorMixin","LocationInfoOpenElementStackMixin","stack","onItemPop","pop","current","popAllUpToHtmlElement","stackTop","items","remove","element","LocationInfoParserMixin","treeAdapter","lastStartTagToken","lastFosterParentingLocation","currentToken","loc","assign","startTag","setNodeSourceCodeLocation","closingToken","getNodeSourceCodeLocation","getTagName","endLoc","END_TAG_TOKEN","endTag","updateNodeSourceCodeLocation","tokenizerMixin","openElements","_setEndLocation","_runParsingLoop","scriptHandler","_processTokenInForeignContent","_processToken","hasInScope","_setDocumentType","documentChildren","getChildNodes","cnLength","isDocumentTypeNode","_attachElementToTree","_setStartLocation","_appendElement","namespaceURI","_insertElement","_insertTemplate","tmplContent","getTemplateContent","_insertFakeRootElement","_appendCommentNode","parent","commentNode","_findFosterParentingLocation","_insertCharacters","hasFosterParent","_shouldFosterParentOnInsertion","currentTmplContent","siblings","textNodeIdx","beforeElement","textNode","currentAttrLocation","currentAttr","methods","_createStartTagToken","_createEndTagToken","_createCommentToken","_createDoctypeToken","initialName","_createCharacterToken","currentCharacterToken","_createEOFToken","_getCurrentLocation","_createAttr","attrNameFirstCh","_leaveAttrName","toState","_attachCurrentAttrLocationInfo","_leaveAttrValue","_emitCurrentToken","EOF_TOKEN","_emitCurrentCharacterToken","keys","MODE","forEach","modeName","state","isEol","lineStartPos","droppedBufferSize","advance","retreat","dropParsedChunk","prevPos","reduction","FormattingElementList","entries","bookmark","newElement","candidates","neAttrsLength","getAttrList","neTagName","neNamespaceURI","getNamespaceURI","entry","MARKER_ENTRY","elementAttrs","idx","_getNoahArkConditionCandidates","cLength","neAttrs","neAttrsMap","neAttr","j","cAttr","splice","NOAH_ARK_CAPACITY","_ensureNoahArkCondition","ELEMENT_ENTRY","bookmarkIdx","OpenElementStack","defaultTreeAdapter","mergeOptions","doctype","foreignContent","ERR","unicode","DEFAULT_OPTIONS","scriptingEnabled","sourceCodeLocationInfo","HIDDEN_INPUT_TYPE","INITIAL_MODE","BEFORE_HTML_MODE","BEFORE_HEAD_MODE","IN_HEAD_MODE","IN_HEAD_NO_SCRIPT_MODE","AFTER_HEAD_MODE","IN_BODY_MODE","TEXT_MODE","IN_TABLE_MODE","IN_TABLE_TEXT_MODE","IN_CAPTION_MODE","IN_COLUMN_GROUP_MODE","IN_TABLE_BODY_MODE","IN_ROW_MODE","IN_CELL_MODE","IN_SELECT_MODE","IN_SELECT_IN_TABLE_MODE","IN_TEMPLATE_MODE","AFTER_BODY_MODE","IN_FRAMESET_MODE","AFTER_FRAMESET_MODE","AFTER_AFTER_BODY_MODE","AFTER_AFTER_FRAMESET_MODE","INSERTION_MODE_RESET_MAP","TEMPLATE_INSERTION_MODE_SWITCH_MAP","TOKEN_HANDLERS","CHARACTER_TOKEN","tokenInInitialMode","NULL_CHARACTER_TOKEN","WHITESPACE_CHARACTER_TOKEN","ignoreToken","COMMENT_TOKEN","appendComment","DOCTYPE_TOKEN","p","mode","forceQuirks","setDocumentMode","insertionMode","START_TAG_TOKEN","tokenBeforeHtml","tokenBeforeHead","startTagInBody","headElement","tokenInHead","insertCharacters","startTagInHead","endTagInHead","tokenInHeadNoScript","tokenAfterHead","framesetOk","characterInBody","whitespaceCharacterInBody","endTagInBody","eofInBody","pendingScript","originalInsertionMode","characterInTable","startTagInTable","endTagInTable","pendingCharacterTokens","hasNonWhitespacePendingCharacterToken","tokenInTableText","hasInTableScope","generateImpliedEndTags","popUntilTagNamePopped","activeFormattingElements","clearToLastMarker","tokenInColumnGroup","ackSelfClosing","currentTagName","clearBackToTableBodyContext","_insertFakeElement","hasTableBodyContextInTableScope","clearBackToTableRowContext","insertMarker","_closeTableCell","startTagInSelect","endTagInSelect","_resetInsertionMode","newInsertionMode","_popTmplInsertionMode","_pushTmplInsertionMode","eofInTemplate","tokenAfterBody","stopParsing","isRootHtmlElementCurrent","tokenAfterAfterBody","appendCommentToDocument","Parser","createDocument","write","documentMock","_initTokenizerForFragmentParsing","_findFormInFragmentContext","rootElement","getFirstChild","fragment","createDocumentFragment","_adoptNodes","stopped","formElement","tmplInsertionModeStack","tmplInsertionModeStackTop","currentTmplInsertionMode","skipNextNewLine","fosterParentingEnabled","_setupTokenizerCDATAMode","getNextToken","HIBERNATION_TOKEN","chars","substr","writeCallback","script","_getAdjustedCurrentElement","allowCDATA","_isIntegrationPoint","nextTokenizerState","getParentNode","RCDATA","RAWTEXT","SCRIPT_DATA","setDocumentType","_fosterParentElement","appendChild","tmpl","setTemplateContent","createCommentNode","_fosterParentText","insertText","donor","recipient","child","detachNode","isCharacterToken","characterInForeignContent","nullCharacterInForeignContent","currentNs","selfClosing","startTagInForeignContent","popUntilElementPopped","endTagInForeignContent","_shouldProcessTokenInForeignContent","listLength","unopenIdx","contains","popUntilTableCellPopped","generateImpliedEndTagsWithExclusion","last","_resetInsertionModeForSelect","selectIdx","ancestor","_isElementCausesFosterParenting","openElement","insertBefore","insertTextBefore","aaObtainFormattingElementEntry","formattingElementEntry","getElementEntryInScopeWithTagName","removeEntry","genericEndTagInBody","aaObtainFurthestBlock","furthestBlock","_isSpecialElement","aaInnerLoop","formattingElement","lastElement","nextElement","getCommonAncestor","elementEntry","getElementEntry","counterOverflow","aaRecreateElementFromEntry","aaInsertLastNodeInCommonAncestor","commonAncestor","aaReplaceFormattingElement","insertElementAfterBookmark","insertAfter","callAdoptionAgency","_switchToTextParsing","tmplCount","generateImpliedEndTagsThoroughly","errCode","_reconstructActiveFormattingElements","addressStartTagInBody","hasInButtonScope","_closePElement","preStartTagInBody","bStartTagInBody","pushElement","appletStartTagInBody","areaStartTagInBody","paramStartTagInBody","noembedStartTagInBody","optgroupStartTagInBody","rbStartTagInBody","genericStartTagInBody","activeElementEntry","aStartTagInBody","numberedHeaderStartTagInBody","elementTn","closeTn","listItemStartTagInBody","hrStartTagInBody","rtStartTagInBody","xmpStartTagInBody","svgStartTagInBody","adoptAttributes","htmlStartTagInBody","bodyElement","tryPeekProperlyNestedBodyElement","bodyStartTagInBody","inTemplate","formStartTagInBody","nobrStartTagInBody","mathStartTagInBody","menuStartTagInBody","tableStartTagInBody","inputType","inputStartTagInBody","imageStartTagInBody","buttonStartTagInBody","iframeStartTagInBody","selectStartTagInBody","framesetStartTagInBody","textareaStartTagInBody","plaintextStartTagInBody","addressEndTagInBody","appletEndTagInBody","pEndTagInBody","hasInListItemScope","liEndTagInBody","ddEndTagInBody","hasNumberedHeaderInScope","popUntilNumberedHeaderPopped","numberedHeaderEndTagInBody","brEndTagInBody","bodyEndTagInBody","htmlEndTagInBody","formEndTagInBody","curTn","tokenInTable","clearBackToTableContext","tdStartTagInTable","colStartTagInTable","formStartTagInTable","tableStartTagInTable","tbodyStartTagInTable","inputStartTagInTable","captionStartTagInTable","colgroupStartTagInTable","savedFosterParentingState","_processTokenInBodyMode","hasInSelectScope","prevOpenElement","prevOpenElementTn","isImpliedEndTagRequired","isImpliedEndTagRequiredThoroughly","isScopingElement","_isInTemplate","_updateCurrentElement","oldElement","_indexOf","referenceElement","insertionIdx","poppedElement","elementIdx","exclusionTagName","Preprocessor","neTree","$$","C1_CONTROLS_REFERENCE_REPLACEMENTS","DATA_STATE","RCDATA_STATE","RAWTEXT_STATE","SCRIPT_DATA_STATE","PLAINTEXT_STATE","TAG_OPEN_STATE","END_TAG_OPEN_STATE","TAG_NAME_STATE","RCDATA_LESS_THAN_SIGN_STATE","RCDATA_END_TAG_OPEN_STATE","RCDATA_END_TAG_NAME_STATE","RAWTEXT_LESS_THAN_SIGN_STATE","RAWTEXT_END_TAG_OPEN_STATE","RAWTEXT_END_TAG_NAME_STATE","SCRIPT_DATA_LESS_THAN_SIGN_STATE","SCRIPT_DATA_END_TAG_OPEN_STATE","SCRIPT_DATA_END_TAG_NAME_STATE","SCRIPT_DATA_ESCAPE_START_STATE","SCRIPT_DATA_ESCAPE_START_DASH_STATE","SCRIPT_DATA_ESCAPED_STATE","SCRIPT_DATA_ESCAPED_DASH_STATE","SCRIPT_DATA_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_OPEN_STATE","SCRIPT_DATA_ESCAPED_END_TAG_NAME_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_START_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH_STATE","SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN_STATE","SCRIPT_DATA_DOUBLE_ESCAPE_END_STATE","BEFORE_ATTRIBUTE_NAME_STATE","ATTRIBUTE_NAME_STATE","AFTER_ATTRIBUTE_NAME_STATE","BEFORE_ATTRIBUTE_VALUE_STATE","ATTRIBUTE_VALUE_DOUBLE_QUOTED_STATE","ATTRIBUTE_VALUE_SINGLE_QUOTED_STATE","ATTRIBUTE_VALUE_UNQUOTED_STATE","AFTER_ATTRIBUTE_VALUE_QUOTED_STATE","SELF_CLOSING_START_TAG_STATE","BOGUS_COMMENT_STATE","MARKUP_DECLARATION_OPEN_STATE","COMMENT_START_STATE","COMMENT_START_DASH_STATE","COMMENT_STATE","COMMENT_LESS_THAN_SIGN_STATE","COMMENT_LESS_THAN_SIGN_BANG_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_STATE","COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH_STATE","COMMENT_END_DASH_STATE","COMMENT_END_STATE","COMMENT_END_BANG_STATE","DOCTYPE_STATE","BEFORE_DOCTYPE_NAME_STATE","DOCTYPE_NAME_STATE","AFTER_DOCTYPE_NAME_STATE","AFTER_DOCTYPE_PUBLIC_KEYWORD_STATE","BEFORE_DOCTYPE_PUBLIC_IDENTIFIER_STATE","DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_PUBLIC_IDENTIFIER_STATE","BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS_STATE","AFTER_DOCTYPE_SYSTEM_KEYWORD_STATE","BEFORE_DOCTYPE_SYSTEM_IDENTIFIER_STATE","DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED_STATE","DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED_STATE","AFTER_DOCTYPE_SYSTEM_IDENTIFIER_STATE","BOGUS_DOCTYPE_STATE","CDATA_SECTION_STATE","CDATA_SECTION_BRACKET_STATE","CDATA_SECTION_END_STATE","CHARACTER_REFERENCE_STATE","NAMED_CHARACTER_REFERENCE_STATE","AMBIGUOUS_AMPERSAND_STATE","NUMERIC_CHARACTER_REFERENCE_STATE","HEXADEMICAL_CHARACTER_REFERENCE_START_STATE","DECIMAL_CHARACTER_REFERENCE_START_STATE","HEXADEMICAL_CHARACTER_REFERENCE_STATE","DECIMAL_CHARACTER_REFERENCE_STATE","NUMERIC_CHARACTER_REFERENCE_END_STATE","isWhitespace","isAsciiDigit","isAsciiUpper","isAsciiLower","isAsciiLetter","isAsciiAlphaNumeric","isAsciiUpperHexDigit","isAsciiLowerHexDigit","toAsciiLowerCodePoint","toChar","toAsciiLowerChar","findNamedEntityTreeBranch","nodeIx","branchCount","lo","hi","mid","midCp","tokenQueue","returnState","charRefCode","tempBuff","lastStartTagName","consumedAfterSnapshot","active","_consume","_unconsume","_ensureHibernation","shift","chunk","isLastChunk","insertHtmlAtCurrentPos","endOfChunkHit","startCp","consumedCount","isMatch","patternLength","patternPos","patternCp","ct","_appendCharToCurrentCharacterToken","codePoints","_emitCodePoint","excess","inNode","HAS_DATA_FLAG","withSemicolon","_isCharacterReferenceInAttribute","nextCp","_emitSeveralCodePoints","_emitEOFToken","_emitChars","_reconsumeInState","_isTempBufferEqualToScriptString","_consumeSequenceIfMatch","_flushCodePointsConsumedAsCharacterReference","matchResult","_matchNamedCharacterReference","_isCharacterReferenceAttributeQuirk","_errOnNextCodePoint","isAsciiHexDigit","replacement","DATA","attrName","Uint16Array","lastGapPos","lastCharPos","gapStack","lastChunkWritten","bufferWaterline","_addGap","substring","_processSurrogate","_checkForProblematicCharacters","nodeName","childNodes","parentNode","createTextNode","newNode","referenceNode","templateElement","contentElement","doctypeNode","prevNode","recipientAttrsMap","getTextNodeContent","getCommentNodeContent","getDocumentTypeNodeName","getDocumentTypeNodePublicId","getDocumentTypeNodeSystemId","isTextNode","isCommentNode","isElementNode","sourceCodeLocation","endLocation","reduce","merged","optObj","originalMethods","overriddenMethods","_getOverriddenMethods","Ctor","__mixins","mixin","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","symbol","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","aa","ca","a","b","da","Set","ea","fa","ha","add","ia","window","ja","ka","la","ma","v","d","e","f","g","acceptsBooleans","attributeName","attributeNamespace","propertyName","sanitizeURL","removeEmptyString","z","ra","sa","ta","pa","qa","oa","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","Symbol","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","iterator","Ka","La","Ma","Na","Oa","prepareStackTrace","set","Reflect","construct","h","k","includes","Pa","tag","render","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","get","getValue","setValue","stopTracking","Ua","Wa","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","cb","db","ownerDocument","eb","fb","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","valueOf","firstChild","removeChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","tb","menuitem","area","base","br","embed","hr","img","keygen","meta","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","addEventListener","removeEventListener","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","pc","qc","log","LN2","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","password","range","tel","time","url","week","me","ne","oe","listeners","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","ff","gf","hf","lf","mf","nf","Ub","instance","listener","D","of","has","pf","qf","rf","random","sf","bind","passive","n","t","J","x","u","w","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","setTimeout","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","gg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","context","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","eventTime","lane","payload","callback","dh","K","eh","fh","gh","q","r","y","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","console","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","suppressHydrationWarning","onclick","createElementNS","T","Hj","Ij","Jj","Kj","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","ceil","nk","ok","pk","Y","Z","qk","rk","sk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","dl","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","JSON","stringify","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","ContextConsumer","ContextProvider","Element","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","map","count","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","ctx","globalThis","self","global","restore","Prism","manual","disableWorkerMessageHandler","decode","markup","css","clike","js","Refractor","refract","register","grammar","languages","highlight","sup","util","alias","registered","listLanguages","tokens","Token","env","stringifyAll","classes","hooks","run","refractor","abap","lookbehind","keyword","operator","punctuation","aliases","abnf","coreRules","greedy","inside","terminal","repetition","RegExp","rule","actionscript","ada","variable","agda","function","antlr4","command","annotation","constant","g4","apacheconf","regex","refractorSql","apex","keywords","insertClassName","classNameInside","sql","trigger","apl","statement","assignment","dfn","applescript","aql","identifier","refractorCpp","arduino","builtin","ino","arff","asciidoc","quoted","interpreted","table","specifiers","admonition","callout","macro","inline","italic","bold","copyFromAsciiDoc","o","rest","adoc","asm6502","directive","asmatmel","refractorCsharp","aspnet","csharp","javascript","autohotkey","important","autoit","avisynth","replacements","allinternals","argument","avs","avroIdl","avdl","bash","envVars","commandAfterHeredoc","insideString","environment","shebang","toBeCopied","shell","basic","batch","parameter","bbcode","shortcode","bicep","interpolation","expression","datatype","decorator","birb","metadata","refractorC","bison","delimiter","bnf","rbnf","brainfuck","pointer","decrement","branching","brightscript","bro","bsl","oscript","cfscript","cfc","chaiscript","cpp","cil","clojure","cmake","inserted","cobol","level","coffeescript","coffee","concurnas","langext","conc","coq","commentSource","punct","modName","generic","refractorRuby","crystal","ruby","args","expansion","nested","depthLog2","keywordKinds","keywordsToPattern","words","typeDeclarationKeywords","nonTypeKeywords","nonContextualKeywords","nestedRound","genericName","typeExpressionWithoutTuple","tupleElement","tuple","typeExpression","typeInside","regularString","verbatimString","regularStringOrCharacter","regularStringCharacterOrComment","roundExpression","attrTarget","attr","formatString","mInterpolationRound","mInterpolation","sInterpolationRound","sInterpolation","createInterpolationInside","interpolationRound","dotnet","cs","cshtml","commentLike","stringLike","round","square","curly","angle","tagAttrs","tagContent","tagRegion","block","razor","csp","none","hash","cssExtras","selectorInside","class","combinator","unit","hexcode","atrule","addInlined","addAttribute","csv","cypher","relationship","dart","packagePrefix","generics","dataweave","dax","measure","dhall","coord","PREFIXES","unchanged","refractorMarkupTemplating","django","filter","markupTemplating","buildPlaceholders","tokenizePlaceholders","jinja2","dnsZoneFile","docker","spaceAfterBackSlash","stringRule","commentRule","instruction","dockerfile","dot","ID","IDInside","withID","gv","ebnf","special","editorconfig","section","eiffel","ejs","eta","elixir","doc","atom","elm","hvariable","erb","erlang","refractorLua","etlua","lua","excelFormula","sheet","file","path","cell","row","factor","comment_inside","string_inside","regexp","combinators","arrToWordsRegExp","builtins","$false","firestoreSecurityRules","flow","fortran","fsharp","ftl","FTL_EXPR","gap","continuation","gcode","checksum","gdscript","gedcom","gherkin","tableRow","pystring","feature","scenario","outline","git","deleted","glsl","gml","gamemakerlanguage","gn","gni","goModule","go","graphql","description","markdown","scalar","validTokens","currentIndex","startToken","inputVariables","isTokenType","getToken","definitionEnd","findClosingBracket","addAlias","mutationEnd","varToken","close","stackHeight","groovy","haml","filters","all_filters","handlebars","brackets","hbs","haskell","hs","haxe","reification","hcl","heredoc","hlsl","hoon","hpkp","hsts","http","headerValueOf","uri","header","langs","httpLanguages","json","plain","suffixTypes","getSuffixPattern","contentType","suffix","ichigojam","icon","icuMessageFormat","stringPattern","argumentSource","nestedMessage","refractorHaskell","idris","idr","iecst","address","ignore","gitignore","hgignore","npmignore","inform7","substitution","verb","ini","io","adverb","conjunction","java","classNamePrefix","refractorJava","refractorJavadoclike","javadoc","codeLinePattern","memberReference","field","javadoclike","addSupport","javaDocLike","docLanguage","tokenName","docCommentSupport","hashbang","javastacktrace","exceptions","more","jexl","jolie","aggregates","redirects","jq","stringInterpolation","jsExtras","withId","imports","spread","arrow","dom","maybeClassNameTokens","jsTemplates","templateString","templateLiteralPattern","interpolationObject","interpolationPunctuationObject","interpolationPattern","createTemplate","getPlaceholder","counter","tokenizeWithHooks","tokenize","tokenizeInterpolationExpression","tempGrammar","tokenizeEmbedded","_tokens","placeholderCounter","placeholderMap","embeddedTokens","interpolationExpression","placeholders","walkTokens","s","before","middle","after","afterTokens","Boolean","supportedLanguages","typescript","ts","tsx","stringContent","findTemplateStrings","embedded","refractorTypescript","jsdoc","parameterPrefix","example","null","webmanifest","refractorJson","json5","jsonp","jsstacktrace","braces","stringifyToken","openedTags","notTagNorBrace","openedBraces","plainText","julia","keepalived","ip","keyman","kotlin","interpolationInside","kt","kts","kumir","nonId","wrapId","prolog","kum","kusto","latex","funcPattern","insideEqu","cdata","equation","headline","tex","refractorPhp","latte","php","markupLatte","less","refractorScheme","lilypond","schemeExpression","ly","liquid","empty","insideRaw","tagMatch","lisp","simple_form","primitive","marker","par","nestedPar","heading","interactive","defvar","defun","lambda","car","arg","varform","forms","arglist","sublist","elisp","emacs","livescript","llvm","exception","separator","domain","uuid","lolcode","magma","generator","makefile","inner","createInline","tableCell","tableLine","yaml","blockquote","strike","codeLang","codeBlock","cls","tagPattern","fromCodePoint","known","KNOWN_ENTITY_NAMES","plugins","autoloader","floor","loadLanguages","ele","getElementById","amp","lt","gt","quot","defineProperties","placeholderPattern","replaceFilter","tokenStack","includedCdataInside","def","mathml","svg","ssml","rss","matlab","maxscript","mel","flag","mermaid","mizar","mongodb","operators","operatorsSource","monkey","moonscript","moon","n1ql","n4js","n4jsd","nand2tetrisHdl","naniscript","expressionDef","params","getTextContent","define","nani","bracket","bracketsIndex","isBracketsBalanced","nasm","neon","literal","nevod","fields","quantifier","colon","nginx","nim","nix","antiquotation","nsis","objectivec","objc","ocaml","variant","opencl","openqasm","qasm","oz","parigp","pascal","asm","objectpascal","pascaligo","accum","pcaxis","tlist","px","peoplecode","pcode","perl","filehandle","phpExtras","package","string_interpolation","phpdoc","plsql","powerquery","pq","mscript","powershell","processing","promql","vectorMatching","protobuf","builtinTypes","psl","pug","each","branch","filter_pattern","puppet","pure","inlineLanguageRe","purebasic","pbfasm","purescript","purs","python","py","qml","jsString","jsComment","jsExpr","qore","qsharp","qualifiedName","interpolationExpr","qs","ellipsis","racket","rkt","specialEscape","rangeChar","groupName","backreference","anchor","group","alternation","rego","renpy","rpy","rip","roboconf","component","optional","wildcard","robotframework","createSection","extendecInside","docTag","testNameLike","testPropertyLike","documentation","variables","tasks","robot","percentExpression","symbolName","rust","multilineComment","sas","numericConstant","macroVariable","macroKeyword","format","equals","altformat","globalStatements","submitStatement","actionSets","casActions","datalines","sass","scala","SortedBNF","scss","refractorBash","shellSession","strings","user","smali","smalltalk","smarty","smartyPattern","smartyLiteralMode","sml","word","smlnj","solidity","sol","solutionFile","guid","soy","numberPattern","soyLitteralMode","refractorTurtle","sparql","rq","splunkSpl","sqf","squirrel","stan","higherOrderFunctions","constraint","stylus","swift","nil","omit","systemd","quotesSource","refractorT4Templating","t4Cs","t4","createT4","t4Templating","createBlock","contentAlias","insideLang","standard","refractorVbnet","t4Vb","refractorYaml","tap","fail","pass","pragma","bailout","plan","subtest","yamlish","tcl","textile","modifierRegex","parenthesesRegex","withModifier","modifierTokens","phrase","modifier","image","footnote","acronym","phraseInside","nestedPatterns","phraseInlineInside","phraseTableInside","toml","insertKey","tremor","extractor","troy","trickle","refractorJsx","tt2","turtle","trig","twig","at","typoscript","tsconfig","unrealscript","category","uscript","uorazor","query","pair","authority","port","vala","refractorBasic","vbnet","velocity","unparsed","verilog","vhdl","vim","visualBasic","vba","warpscript","wasm","webIdl","wiki","emphasis","nowiki","wolfram","blank","mathematica","wren","xeora","xeoracube","xmlDoc","insertDocComment","docComment","slashDocComment","tickDocComment","xojo","xquery","extension","anchorOrAlias","plainKey","createValuePattern","yml","yang","zig","IDENTIFIER","ALIGN","_self","uniqueId","plainTextGrammar","objId","deepClone","visited","getLanguage","parentElement","setLanguage","classList","currentScript","scripts","getElementsByTagName","isActive","defaultActivation","no","plaintext","txt","redef","insert","root","newToken","old","DFS","propertyType","highlightAll","highlightAllUnder","container","elements","highlightElement","insertHighlightedCode","highlightedCode","hasAttribute","Worker","worker","onmessage","evt","postMessage","immediateClose","tokenList","LinkedList","addAfter","head","matchGrammar","all","callbacks","matchedStr","matchPattern","lookbehindLength","startNode","startPos","rematch","patterns","cause","patternObj","currentNode","reach","removeCount","from","to","matchStr","removeFrom","removeRange","nestedRematch","highlightAutomaticallyCallback","readyState","requestAnimationFrame","WorkerGlobalScope","sortIndex","performance","setImmediate","startTime","expirationTime","priorityLevel","navigator","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","hasIterator","len","ReferenceError","__esModule","Constructor","_defineProperties","descriptor","protoProps","staticProps","getPrototypeOf","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","Super","NewTarget","superPropBase","_get","receiver","desc","_getPrototypeOf","setPrototypeOf","__proto__","subClass","superClass","sham","Proxy","_typeof","assertThisInitialized","_setPrototypeOf","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","toStringTag","_defineProperty","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","_objectWithoutProperties","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","_arrayLikeToArray","arr2","_iterableToArray","iter","_unsupportedIterableToArray","minLen","_toConsumableArray","_arrayWithHoles","_nonIterableRest","_slicedToArray","_i","_s","_e","_arr","_n","_d","_classCallCheck","_createClass","_inherits","_isNativeReflectConstruct","_assertThisInitialized","_possibleConstructorReturn","_createSuper","_construct","Parent","Class","_wrapNativeSuper","_cache","fn","Wrapper","stringifyPosition","point","VFileMessage","place","origin","parts","fatal","ruleId","actual","expected","note","basename","ext","assertPath","seenNonSlash","firstNonSlashEnd","extIndex","dirname","unmatchedSlash","extname","startPart","startDot","preDotState","joined","segments","sep","absolute","allowAboveRoot","lastSlashIndex","lastSegmentLength","lastSlash","dots","normalizeString","proc","cwd","isUrl","fileURLOrPath","urlToPath","URL","protocol","hostname","pathname","third","decodeURIComponent","getPathFromURLPosix","VFile","buffer","history","stored","assertNonEmpty","assertPart","stem","encoding","part","_toArray","bail","middleware","called","parameters","fnExpectsCallback","unified","frozen","transformers","fns","pipeline","middlewareIndex","use","middelware","trough","attachers","freezeIndex","processor","assertUnfrozen","Compiler","freeze","attacher","transformer","POSITIVE_INFINITY","addPlugin","addList","addPreset","plugin","isPlainObj","vfile","assertParser","newable","assertCompiler","assertNode","compile","executor","reject","tree","runSync","complete","assertDone","process","processSync","destination","asyncName","looksLikeAVFile","includeImageAlt","one","chunkStart","combineExtensions","extensions","syntaxExtension","hook","right","constructs","existing","asciiAlpha","regexCheck","asciiDigit","asciiHexDigit","asciiAlphanumeric","asciiPunctuation","asciiAtext","asciiControl","markdownLineEndingOrSpace","markdownLineEnding","markdownSpace","unicodeWhitespace","unicodePunctuation","factorySpace","limit","enter","consume","exit","contentStart","attempt","contentInitial","lineStart","childFlow","childToken","lineStartOffset","continued","item","containerState","documentContinue","checkNewContainers","_closeFlow","closeFlow","indexBeforeExits","events","indexBeforeFlow","exitContainers","documentContinued","currentConstruct","concrete","flowStart","interrupt","_gfmTableDynamicInterruptHack","containerConstruct","thereIsANewContainer","thereIsNoNewContainer","containerContinue","_tokenizer","flowContinue","writeToChild","eof","stream","sliceStream","defineSkip","seen","nok","disable","blankLine","partial","subtokenize","lineIndex","otherIndex","otherEvent","subevents","jumps","_isInFirstContentOfListItem","subcontent","_container","eventIndex","startPosition","startPositions","childEvents","gaps","breaks","_gfmTasklistFirstContentOfListItem","contentEnd","continuationConstruct","contentContinue","prefixed","sliceSerialize","initial","flowInitial","afterConstruct","resolver","resolveAll","createResolver","initializeFactory","notText","atBreak","resolveAllLineSuffixes","extraResolver","chunks","bufferIndex","tabs","_index","_bufferIndex","createTokenizer","initialize","columnStart","resolveAllConstructs","accountForPotentialSkip","constructFactory","addResult","onsuccessfulcheck","expandTabs","atTab","serializeChunks","main","startIndex","startBufferIndex","endIndex","endBufferIndex","sliceChunks","chunkIndex","onreturn","bogusState","listOfConstructs","constructIndex","handleListOfConstructs","handleMapOfConstructs","handleConstruct","startPoint","startPrevious","startCurrentConstruct","startEventsIndex","startStack","store","resolveTo","thematicBreak","sequence","initialSize","atMarker","onBlank","listItemPrefixWhitespaceConstruct","endOfPrefix","otherPrefix","initialBlankLine","notBlank","furtherBlankLines","notInCurrentItem","indentConstruct","blockQuote","factoryDestination","literalType","literalMarkerType","rawType","stringType","balance","destinationEnclosedBefore","destinationRaw","destinationEnclosed","destinationEnclosedEscape","destinationRawEscape","factoryLabel","markerType","labelEscape","factoryTitle","atFirstTitleBreak","atTitleBreak","titleEscape","factoryWhitespace","normalizeIdentifier","labelAfter","titleConstruct","codeIndented","afterStartPrefix","afterPrefix","indentedContent","headingAtx","fenceOpenInside","headingBreak","setextUnderline","paragraph","closingSequence","closingSequenceEnd","htmlBlockNames","htmlRawNames","htmlFlow","declarationStart","tagCloseStart","continuationDeclarationInside","commentOpenInside","cdataOpenInside","basicSelfClosing","completeAttributeNameBefore","completeClosingTagAfter","completeEnd","completeAttributeName","completeAttributeNameAfter","completeAttributeValueBefore","completeAttributeValueQuoted","completeAttributeValueUnquoted","completeAttributeValueQuotedAfter","completeAfter","continuationCommentInside","continuationRawTagOpen","continuationClose","continuationCharacterDataInside","continuationAtLineEnding","nextBlankConstruct","htmlContinueStart","htmlLineEnd","continuationRawEndTag","codeFenced","closingFenceConstruct","closingSequenceStart","sizeOpen","nonLazyLine","initialPrefix","sequenceOpen","infoOpen","openAfter","infoAfter","decodeNamedCharacterReference","characterReference","numeric","characterEscape","lineEnding","labelEnd","labelStart","_balanced","_inactive","balanced","afterLabelEnd","resourceConstruct","fullReferenceConstruct","collapsedReferenceConstruct","insideSpan","destinationAfter","between","afterLabel","labelStartImage","classifyCharacter","attention","attentionMarkers","_open","_close","openingSequence","nextEvents","movePoint","autolink","schemeOrEmailAtext","emailAtext","schemeInsideOrEmailAtext","urlInside","emailAtSignOrDot","emailLabel","emailValue","htmlText","declarationOpen","tagOpen","commentOpen","cdataOpen","commentStart","commentStartDash","commentClose","atLineEnding","cdataClose","cdataEnd","instructionClose","tagClose","tagCloseBetween","tagOpenBetween","tagOpenAttributeName","tagOpenAttributeNameAfter","tagOpenAttributeValueBefore","tagOpenAttributeValueQuoted","tagOpenAttributeValueUnquoted","tagOpenAttributeValueQuotedAfter","labelStartLink","hardBreakEscape","codeText","tailExitIndex","headEnterIndex","resolveText","decodeNumericCharacterReference","characterEscapeOrReference","decodeString","$1","$2","hex","fromMarkdown","config","configure","transforms","canContainEols","opener","autolinkProtocol","onenterdata","autolinkEmail","atxHeading","codeFlow","codeFencedFenceInfo","codeFencedFenceMeta","codeTextData","codeFlowValue","definitionDestinationString","definitionLabelString","definitionTitleString","hardBreak","hardBreakTrailing","htmlFlowData","htmlTextData","listItem","listItemValue","onenterlistitemvalue","listOrdered","onenterlistordered","listUnordered","onenterreference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","closer","atxHeadingSequence","onexitatxheadingsequence","onexitautolinkemail","onexitautolinkprotocol","characterEscapeValue","onexitdata","characterReferenceMarkerHexadecimal","onexitcharacterreferencemarker","characterReferenceMarkerNumeric","characterReferenceValue","onexitcharacterreferencevalue","onexitcodefenced","codeFencedFence","onexitcodefencedfence","onexitcodefencedfenceinfo","onexitcodefencedfencemeta","onexitcodeindented","onexitcodetext","onexitdefinitiondestinationstring","onexitdefinitionlabelstring","onexitdefinitiontitlestring","onexithardbreak","onexithtmlflow","onexithtmltext","onexitimage","onexitlabel","labelText","onexitlabeltext","onexitlineending","onexitlink","onexitreferencestring","onexitresourcedestinationstring","onexitresourcetitlestring","resource","onexitresource","onexitsetextheading","setextHeadingLineSequence","onexitsetextheadinglinesequence","setextHeadingText","onexitsetextheadingtext","mdastExtensions","listStack","resume","setData","getData","prepareList","handler","defaultOnError","firstBlankLineIndex","containerBalance","listSpread","tailIndex","tailEvent","_spread","and","errorHandler","onExitError","depth","referenceType","ordered","compiler","postprocess","defaultConstructs","atCarriageReturn","endPosition","preprocess","combined","convert","castFactory","typeFactory","anyFactory","propsFactory","visitParents","visitor","reverse","parents","visit","subresult","grandparents","toResult","pointStart","pointEnd","clean","unknown","augment","handlers","passThrough","returnNode","unknownHandler","loose","footnoteReference","footnoteOrder","revert","subtype","contents","listItemLoose","break","footnoteById","dangerous","imageReference","inlineCode","linkReference","listLoose","wrapped","out","footnoteDefinition","allowDangerousHtml","hName","hProperties","hChildren","toHast","foot","listItems","backReference","footer","bridge","mutate","onContextLost","onContextRestored","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillRule","floodColor","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","textAnchor","textDecoration","textRendering","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cursor","cx","cy","defaultAction","descent","diffuseConstant","direction","dur","divisor","dx","dy","edgeMode","editable","elevation","exponent","externalResourcesRequired","fill","filterRes","filterUnits","focusable","focusHighlight","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","orient","orientation","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","stdDeviation","stemh","stemv","stitchTiles","stroke","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","viewBox","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","htmlBase","svgBase","rehypeFilter","allowedElements","disallowedElements","allowElement","parent_","unwrapDisallowed","protocols","thing","dashes","hastToReact","padRight","padLeft","tableElements","childrenToReact","childIndex","toReact","skipHtml","parentSchema","listDepth","components","React","ReactIs","linkTarget","transformLinkUri","transformImageUri","getInputElement","getElementsBeforeCount","textAlign","isHeader","sourcePos","rawSourcePos","sourcePosition","includeElementIndex","siblingCount","styleReplacer","parseStyle","deprecated","renderers","astPlugins","escapeHtml","allowNode","allowedTypes","disallowedTypes","includeNodeIndex","ReactMarkdown","deprecation","warn","remarkParse","remarkPlugins","remarkRehype","rehypePlugins","hastNode","_extends","_objectSpread","first","propTypes","classNameCombinations","getClassNameCombinations","classNames","arrLength","powerSetPermutations","createStyleObject","elementStyle","stylesheet","nonTokenClassNames","classNamesCombinations","styleObject","createClassNameString","_ref","_ref$style","useInlineStyles","TagName","childrenCreator","childrenCount","createChildren","allStylesheetSelectors","startingClassName","_excluded","newLineRegex","AllLineNumbers","_ref2","codeString","codeStyle","_ref2$containerStyle","containerStyle","paddingRight","_ref2$numberStyle","numberStyle","startingLineNumber","getAllLineNumbers","getInlineLineNumber","lineNumber","inlineLineNumberStyle","assembleLineNumberStyles","lineNumberStyle","largestLineNumber","num","defaultLineNumberStyle","minWidth","userSelect","customLineNumberStyle","createLineElement","_ref3","showInlineLineNumbers","_ref3$lineProps","lineProps","_ref3$className","showLineNumbers","wrapLongLines","flattenCodeTree","newTree","processLines","codeTree","wrapLines","_ref4","lastLineBreakIndex","createWrappedLine","createUnwrappedLine","createLine","_loop","splitValue","newChild","_line","stringChild","lastLineInPreviousSpan","newElem","_line2","_line3","defaultRenderer","_ref5","isHighlightJs","astGenerator","highlightAuto","defaultAstGenerator","defaultStyle","highlighter","_ref7","_ref7$style","_ref7$customStyle","customStyle","_ref7$codeTagProps","codeTagProps","_ref7$useInlineStyles","_ref7$showLineNumbers","_ref7$showInlineLineN","_ref7$startingLineNum","lineNumberContainerStyle","_ref7$lineNumberStyle","_ref7$wrapLongLines","_ref7$lineProps","renderer","_ref7$PreTag","PreTag","_ref7$CodeTag","CodeTag","_ref7$code","allLineNumbers","defaultPreStyle","hljs","backgroundColor","generatorClassName","preProps","defaultCodeValue","_ref6","hasLanguage","checkForListedLanguage","getCodeTree","www","w2","w3","hasUnderscoreInLastSegment","hasUnderscoreInLastLastSegment","namedCharacterReference","punctuationContinuation","inPath","continuedPunctuation","parenAtPathEnd","pathEnd","trailingPunctuation","wwwAutolink","previousWww","previousUnbalanced","httpAutolink","previousHttp","t1","t2","slash1","slash2","emailAutolink","hasDot","hasDigitInLastSegment","gfmAtext","previousEmail","atext","dotContinuation","dashOrUnderscoreContinuation","afterDashOrUnderscore","gfmAutolinkLiteral","_gfmAutolinkLiteralWalkedInto","gfmFootnote","tokenizeDefinitionStart","tokenizeDefinitionContinuation","gfmFootnoteDefinitionEnd","tokenizeGfmFootnoteCall","tokenizePotentialGfmFootnoteCall","resolveToPotentialGfmFootnoteCall","gfmFootnotes","callStart","callData","callEscape","gfmStrikethrough","single","singleTilde","tokenizeStrikethrough","resolveAllStrikethrough","strikethrough","gfmTable","seenDelimiter","hasDash","tableHeaderCount","_align","cellDividerHead","inCellContentHead","cellBreakHead","originalInterrupt","tokenizeRowEnd","atDelimiterRowBreak","atRowEndHead","inWhitespaceHead","inCellContentEscapeHead","rowEndDelimiter","inWhitespaceDelimiter","inFillerDelimiter","afterLeftAlignment","afterRightAlignment","tableClose","nextPrefixedOrBlank","bodyStart","rowStartBody","cellDividerBody","inCellContentBody","cellBreakBody","tableBodyClose","atRowEndBody","inWhitespaceBody","inCellContentEscapeBody","inHead","inDelimiterRow","inRow","cellStart","seenCellInRow","tasklistCheck","spaceThenNonSpace","gfmTaskListItem","gfm","ccount","findAndReplace","ignored","pairs","toExpression","toFunction","toPairs","pairIndex","grandparent","change","matchObject","inConstruct","notInConstruct","gfmAutolinkLiteralFromMarkdown","findUrl","findEmail","literalAutolink","literalAutolinkEmail","enterLiteralAutolinkValue","literalAutolinkHttp","literalAutolinkWww","gfmAutolinkLiteralToMarkdown","unsafe","isCorrectDomain","closingParenIndex","openingParens","closingParens","trail","trailExec","splitUrl","association","options_","lineShift","move","containerFlow","safeOptions","indexStack","tracker","handle","bulletLastUsed","eol","indentLines","patternCompile","_compiled","patternInScope","listInScope","safe","positions","infos","sort","numerical","escapeBackslashes","whole","gfmFootnoteToMarkdown","peek","subexit","containerPhrasing","gfmStrikethroughFromMarkdown","gfmStrikethroughToMarkdown","handleDelete","serialize","defaultStringLength","toAlignment","codePointAt","gfmTableFromMarkdown","tableData","enterCell","tableHeader","gfmTableToMarkdown","padding","tableCellPadding","alignDelimiters","tablePipeAlign","stringLength","around","serializeData","handleTableRowAsData","handleTableAsData","handleTableCell","matrix","alignments","cellMatrix","sizeMatrix","longestCellByColumn","mostCellsPerRow","rowIndex","columnIndex","delimiterStart","delimiterEnd","markdownTable","listItemIndent","checkListItemIndent","bullet","bulletCurrent","checkBullet","incrementListMarker","gfmTaskListItemFromMarkdown","taskListCheckValueChecked","exitCheck","taskListCheckValueUnchecked","firstParaghraph","gfmTaskListItemToMarkdown","checkable","checkbox","gfmFromMarkdown","gfmFootnoteDefinition","gfmFootnoteDefinitionLabelString","gfmFootnoteCall","gfmFootnoteCallString","gfmToMarkdown","remarkGfm","buttonTypes","core","isProperties","finalResult","webNamespaces","ast","verbose","opening","closing","createLocation","quirksMode","indices","toPoint","toOffset","isFile","toH","react","_isVue","vue","vdom","hyperscript","subprop","zwitch","p5","patch","htmlVoidElements","endTagToken","parseOptions","raw","stitches","locationTracker","resetTokenizer","createParse5Location","stitch","fromParse5","mock","rehypeRaw","CopyButton","valueToCopy","clipboard","writeText","setFilter","typeFilter","setTypeFilter","expandedItems","setExpandedItems","expandedCategories","setExpandedCategories","handleExpandItem","newExpanded","handleCategoryClick","newExpandedCategory","filtered","typeFilteredItems","filterData","wait","immediate","timeout","debounce","coldarkDark","ReactDOM"],"sourceRoot":""}