{"version":3,"file":"markademic.cjs","sources":["../src/languages/cpp.ts","../src/languages/glsl.ts","../src/languages/hlsl.ts","../src/languages/msl.ts","../src/languages/wgsl.ts","../src/remarkable.ts","../src/katex.ts","../src/reroute.ts","../src/jsonrender.ts","../src/markademic.ts"],"sourcesContent":["/*\nLanguage: C++\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nexport default function (hljs) {\n  const regex = hljs.regex;\n  // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n  // not include such support nor can we be sure all the grammars depending\n  // on it would desire this behavior\n  const C_LINE_COMMENT_MODE = hljs.COMMENT(\"//\", \"$\", {\n    contains: [{ begin: /\\\\\\n/ }],\n  });\n  const DECLTYPE_AUTO_RE = \"decltype\\\\(auto\\\\)\";\n  const NAMESPACE_RE = \"[a-zA-Z_]\\\\w*::\";\n  const TEMPLATE_ARGUMENT_RE = \"<[^<>]+>\";\n  const FUNCTION_TYPE_RE =\n    \"(?!struct)(\" +\n    DECLTYPE_AUTO_RE +\n    \"|\" +\n    regex.optional(NAMESPACE_RE) +\n    \"[a-zA-Z_]\\\\w*\" +\n    regex.optional(TEMPLATE_ARGUMENT_RE) +\n    \")\";\n\n  const CPP_PRIMITIVE_TYPES = {\n    className: \"type\",\n    begin: \"\\\\b[a-z\\\\d_]*_t\\\\b\",\n  };\n\n  // https://en.cppreference.com/w/cpp/language/escape\n  // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n  const CHARACTER_ESCAPES =\n    \"\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)\";\n  const STRINGS = {\n    className: \"string\",\n    variants: [\n      {\n        begin: '(u8?|U|L)?\"',\n        end: '\"',\n        illegal: \"\\\\n\",\n        contains: [hljs.BACKSLASH_ESCAPE],\n      },\n      {\n        begin: \"(u8?|U|L)?'(\" + CHARACTER_ESCAPES + \"|.)\",\n        end: \"'\",\n        illegal: \".\",\n      },\n      hljs.END_SAME_AS_BEGIN({\n        begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n        end: /\\)([^()\\\\ ]{0,16})\"/,\n      }),\n    ],\n  };\n\n  const NUMBERS = {\n    className: \"number\",\n    variants: [\n      { begin: \"\\\\b(0b[01']+)\" },\n      {\n        begin:\n          \"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)\",\n      },\n      {\n        begin:\n          \"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\",\n      },\n    ],\n    relevance: 0,\n  };\n\n  const PREPROCESSOR = {\n    className: \"meta\",\n    begin: /#\\s*[a-z]+\\b/,\n    end: /$/,\n    keywords: {\n      keyword:\n        \"if else elif endif define undef warning error line \" +\n        \"pragma _Pragma ifdef ifndef include\",\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0,\n      },\n      hljs.inherit(STRINGS, { className: \"string\" }),\n      {\n        className: \"string\",\n        begin: /<.*?>/,\n      },\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n    ],\n  };\n\n  const TITLE_MODE = {\n    className: \"title\",\n    begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n    relevance: 0,\n  };\n\n  const FUNCTION_TITLE =\n    regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + \"\\\\s*\\\\(\";\n\n  // https://en.cppreference.com/w/cpp/keyword\n  const RESERVED_KEYWORDS = [\n    \"alignas\",\n    \"alignof\",\n    \"and\",\n    \"and_eq\",\n    \"asm\",\n    \"atomic_cancel\",\n    \"atomic_commit\",\n    \"atomic_noexcept\",\n    \"auto\",\n    \"bitand\",\n    \"bitor\",\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"class\",\n    \"co_await\",\n    \"co_return\",\n    \"co_yield\",\n    \"compl\",\n    \"concept\",\n    \"const_cast|10\",\n    \"consteval\",\n    \"constexpr\",\n    \"constinit\",\n    \"continue\",\n    \"decltype\",\n    \"default\",\n    \"delete\",\n    \"do\",\n    \"dynamic_cast|10\",\n    \"else\",\n    \"enum\",\n    \"explicit\",\n    \"export\",\n    \"extern\",\n    \"false\",\n    \"final\",\n    \"for\",\n    \"friend\",\n    \"goto\",\n    \"if\",\n    \"import\",\n    \"inline\",\n    \"module\",\n    \"mutable\",\n    \"namespace\",\n    \"new\",\n    \"noexcept\",\n    \"not\",\n    \"not_eq\",\n    \"nullptr\",\n    \"operator\",\n    \"or\",\n    \"or_eq\",\n    \"override\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"reflexpr\",\n    \"register\",\n    \"reinterpret_cast|10\",\n    \"requires\",\n    \"return\",\n    \"sizeof\",\n    \"static_assert\",\n    \"static_cast|10\",\n    \"struct\",\n    \"switch\",\n    \"synchronized\",\n    \"template\",\n    \"this\",\n    \"thread_local\",\n    \"throw\",\n    \"transaction_safe\",\n    \"transaction_safe_dynamic\",\n    \"true\",\n    \"try\",\n    \"typedef\",\n    \"typeid\",\n    \"typename\",\n    \"union\",\n    \"using\",\n    \"virtual\",\n    \"volatile\",\n    \"while\",\n    \"xor\",\n    \"xor_eq\",\n  ];\n\n  // https://en.cppreference.com/w/cpp/keyword\n  const RESERVED_TYPES = [\n    \"bool\",\n    \"char\",\n    \"char16_t\",\n    \"char32_t\",\n    \"char8_t\",\n    \"double\",\n    \"float\",\n    \"int\",\n    \"long\",\n    \"short\",\n    \"void\",\n    \"wchar_t\",\n    \"unsigned\",\n    \"signed\",\n    \"const\",\n    \"static\",\n  ];\n\n  const TYPE_HINTS = [\n    \"any\",\n    \"auto_ptr\",\n    \"barrier\",\n    \"binary_semaphore\",\n    \"bitset\",\n    \"complex\",\n    \"condition_variable\",\n    \"condition_variable_any\",\n    \"counting_semaphore\",\n    \"deque\",\n    \"false_type\",\n    \"future\",\n    \"imaginary\",\n    \"initializer_list\",\n    \"istringstream\",\n    \"jthread\",\n    \"latch\",\n    \"lock_guard\",\n    \"multimap\",\n    \"multiset\",\n    \"mutex\",\n    \"optional\",\n    \"ostringstream\",\n    \"packaged_task\",\n    \"pair\",\n    \"promise\",\n    \"priority_queue\",\n    \"queue\",\n    \"recursive_mutex\",\n    \"recursive_timed_mutex\",\n    \"scoped_lock\",\n    \"set\",\n    \"shared_future\",\n    \"shared_lock\",\n    \"shared_mutex\",\n    \"shared_timed_mutex\",\n    \"shared_ptr\",\n    \"stack\",\n    \"string_view\",\n    \"stringstream\",\n    \"timed_mutex\",\n    \"thread\",\n    \"true_type\",\n    \"tuple\",\n    \"unique_lock\",\n    \"unique_ptr\",\n    \"unordered_map\",\n    \"unordered_multimap\",\n    \"unordered_multiset\",\n    \"unordered_set\",\n    \"variant\",\n    \"vector\",\n    \"weak_ptr\",\n    \"wstring\",\n    \"wstring_view\",\n  ];\n\n  const FUNCTION_HINTS = [\n    \"abort\",\n    \"abs\",\n    \"acos\",\n    \"apply\",\n    \"as_const\",\n    \"asin\",\n    \"atan\",\n    \"atan2\",\n    \"calloc\",\n    \"ceil\",\n    \"cerr\",\n    \"cin\",\n    \"clog\",\n    \"cos\",\n    \"cosh\",\n    \"cout\",\n    \"declval\",\n    \"endl\",\n    \"exchange\",\n    \"exit\",\n    \"exp\",\n    \"fabs\",\n    \"floor\",\n    \"fmod\",\n    \"forward\",\n    \"fprintf\",\n    \"fputs\",\n    \"free\",\n    \"frexp\",\n    \"fscanf\",\n    \"future\",\n    \"invoke\",\n    \"isalnum\",\n    \"isalpha\",\n    \"iscntrl\",\n    \"isdigit\",\n    \"isgraph\",\n    \"islower\",\n    \"isprint\",\n    \"ispunct\",\n    \"isspace\",\n    \"isupper\",\n    \"isxdigit\",\n    \"labs\",\n    \"launder\",\n    \"ldexp\",\n    \"log\",\n    \"log10\",\n    \"make_pair\",\n    \"make_shared\",\n    \"make_shared_for_overwrite\",\n    \"make_tuple\",\n    \"make_unique\",\n    \"malloc\",\n    \"memchr\",\n    \"memcmp\",\n    \"memcpy\",\n    \"memset\",\n    \"modf\",\n    \"move\",\n    \"pow\",\n    \"printf\",\n    \"putchar\",\n    \"puts\",\n    \"realloc\",\n    \"scanf\",\n    \"sin\",\n    \"sinh\",\n    \"snprintf\",\n    \"sprintf\",\n    \"sqrt\",\n    \"sscanf\",\n    \"std\",\n    \"stderr\",\n    \"stdin\",\n    \"stdout\",\n    \"strcat\",\n    \"strchr\",\n    \"strcmp\",\n    \"strcpy\",\n    \"strcspn\",\n    \"strlen\",\n    \"strncat\",\n    \"strncmp\",\n    \"strncpy\",\n    \"strpbrk\",\n    \"strrchr\",\n    \"strspn\",\n    \"strstr\",\n    \"swap\",\n    \"tan\",\n    \"tanh\",\n    \"terminate\",\n    \"to_underlying\",\n    \"tolower\",\n    \"toupper\",\n    \"vfprintf\",\n    \"visit\",\n    \"vprintf\",\n    \"vsprintf\",\n  ];\n\n  const LITERALS = [\"NULL\", \"false\", \"nullopt\", \"nullptr\", \"true\"];\n\n  // https://en.cppreference.com/w/cpp/keyword\n  const BUILT_IN = [\"_Pragma\"];\n\n  const CPP_KEYWORDS = {\n    type: RESERVED_TYPES,\n    keyword: RESERVED_KEYWORDS,\n    literal: LITERALS,\n    built_in: BUILT_IN,\n    _type_hints: TYPE_HINTS,\n  };\n\n  const FUNCTION_DISPATCH = {\n    className: \"function.dispatch\",\n    relevance: 0,\n    keywords: {\n      // Only for relevance, not highlighting.\n      _hint: FUNCTION_HINTS,\n    },\n    begin: regex.concat(\n      /\\b/,\n      /(?!decltype)/,\n      /(?!if)/,\n      /(?!for)/,\n      /(?!switch)/,\n      /(?!while)/,\n      hljs.IDENT_RE,\n      regex.lookahead(/(<[^<>]+>|)\\s*\\(/)\n    ),\n  };\n\n  const EXPRESSION_CONTAINS = [\n    FUNCTION_DISPATCH,\n    PREPROCESSOR,\n    CPP_PRIMITIVE_TYPES,\n    C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    NUMBERS,\n    STRINGS,\n  ];\n\n  const EXPRESSION_CONTEXT = {\n    // This mode covers expression context where we can't expect a function\n    // definition and shouldn't highlight anything that looks like one:\n    // `return some()`, `else if()`, `(x*sum(1, 2))`\n    variants: [\n      {\n        begin: /=/,\n        end: /;/,\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/,\n      },\n      {\n        beginKeywords: \"new throw return else\",\n        end: /;/,\n      },\n    ],\n    keywords: CPP_KEYWORDS,\n    contains: EXPRESSION_CONTAINS.concat([\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        contains: EXPRESSION_CONTAINS.concat([\"self\"]),\n        relevance: 0,\n      },\n    ]),\n    relevance: 0,\n  };\n\n  const FUNCTION_DECLARATION = {\n    className: \"function\",\n    begin: \"(\" + FUNCTION_TYPE_RE + \"[\\\\*&\\\\s]+)+\" + FUNCTION_TITLE,\n    returnBegin: true,\n    end: /[{;=]/,\n    excludeEnd: true,\n    keywords: CPP_KEYWORDS,\n    illegal: /[^\\w\\s\\*&:<>.]/,\n    contains: [\n      {\n        // to prevent it from being confused as the function title\n        begin: DECLTYPE_AUTO_RE,\n        keywords: CPP_KEYWORDS,\n        relevance: 0,\n      },\n      {\n        begin: FUNCTION_TITLE,\n        returnBegin: true,\n        contains: [TITLE_MODE],\n        relevance: 0,\n      },\n      // needed because we do not have look-behind on the below rule\n      // to prevent it from grabbing the final : in a :: pair\n      {\n        begin: /::/,\n        relevance: 0,\n      },\n      // initializers\n      {\n        begin: /:/,\n        endsWithParent: true,\n        contains: [STRINGS, NUMBERS],\n      },\n      // allow for multiple declarations, e.g.:\n      // extern void f(int), g(char);\n      {\n        relevance: 0,\n        match: /,/,\n      },\n      {\n        className: \"params\",\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        relevance: 0,\n        contains: [\n          C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          STRINGS,\n          NUMBERS,\n          CPP_PRIMITIVE_TYPES,\n          // Count matching parentheses.\n          {\n            begin: /\\(/,\n            end: /\\)/,\n            keywords: CPP_KEYWORDS,\n            relevance: 0,\n            contains: [\n              \"self\",\n              C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE,\n              STRINGS,\n              NUMBERS,\n              CPP_PRIMITIVE_TYPES,\n            ],\n          },\n        ],\n      },\n      CPP_PRIMITIVE_TYPES,\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      PREPROCESSOR,\n    ],\n  };\n\n  return {\n    name: \"C++\",\n    aliases: [\"cc\", \"cpp\", \"c++\", \"h++\", \"hpp\", \"hh\", \"hxx\", \"cxx\"],\n    keywords: CPP_KEYWORDS,\n    illegal: \"</\",\n    classNameAliases: { \"function.dispatch\": \"built_in\" },\n    contains: [].concat(\n      EXPRESSION_CONTEXT,\n      FUNCTION_DECLARATION,\n      FUNCTION_DISPATCH,\n      EXPRESSION_CONTAINS,\n      [\n        PREPROCESSOR,\n        {\n          // containers: ie, `vector <int> rooms (9);`\n          begin:\n            \"\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\s*<(?!<)\",\n          end: \">\",\n          keywords: CPP_KEYWORDS,\n          contains: [\"self\", CPP_PRIMITIVE_TYPES],\n        },\n        {\n          begin: hljs.IDENT_RE + \"::\",\n          keywords: CPP_KEYWORDS,\n        },\n        {\n          match: [\n            // extra complexity to deal with `enum class` and `enum struct`\n            /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n            /\\s+/,\n            /\\w+/,\n          ],\n          className: {\n            1: \"keyword\",\n            3: \"title.class\",\n          },\n        },\n      ]\n    ),\n  };\n}\n","/*\nLanguage: GLSL\nDescription: OpenGL Shading Language\nAuthor: Sergey Tikhomirov <sergey@tikhomirov.io>\nWebsite: https://en.wikipedia.org/wiki/OpenGL_Shading_Language\nCategory: graphics\n*/\n\nexport default function (hljs) {\n  return {\n    name: \"GLSL\",\n    aliases: [\"glsl\"],\n    keywords: {\n      keyword:\n        // Statements\n        \"break continue discard do else for if return while switch case default \" +\n        // Qualifiers\n        \"attribute binding buffer ccw centroid centroid varying coherent column_major const cw \" +\n        \"depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing \" +\n        \"flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant \" +\n        \"invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y \" +\n        \"local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left \" +\n        \"out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f \" +\n        \"r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict \" +\n        \"rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 \" +\n        \"rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 \" +\n        \"rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip \" +\n        \"triangles triangles_adjacency uniform varying vertices volatile writeonly\",\n      type:\n        \"atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 \" +\n        \"dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float iimage1D iimage1DArray \" +\n        \"iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer \" +\n        \"iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray \" +\n        \"image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray \" +\n        \"isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D \" +\n        \"isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 \" +\n        \"mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray \" +\n        \"sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow \" +\n        \"sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D \" +\n        \"samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow \" +\n        \"image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect \" +\n        \"uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray \" +\n        \"usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D \" +\n        \"samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void\",\n      built_in:\n        // Constants\n        \"gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes \" +\n        \"gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms \" +\n        \"gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers \" +\n        \"gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits \" +\n        \"gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize \" +\n        \"gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters \" +\n        \"gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors \" +\n        \"gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers \" +\n        \"gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents \" +\n        \"gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits \" +\n        \"gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents \" +\n        \"gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset \" +\n        \"gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms \" +\n        \"gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits \" +\n        \"gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents \" +\n        \"gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters \" +\n        \"gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents \" +\n        \"gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents \" +\n        \"gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits \" +\n        \"gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors \" +\n        \"gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms \" +\n        \"gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits \" +\n        \"gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset \" +\n        // Variables\n        \"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial \" +\n        \"gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color \" +\n        \"gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord \" +\n        \"gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor \" +\n        \"gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial \" +\n        \"gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel \" +\n        \"gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix \" +\n        \"gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose \" +\n        \"gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose \" +\n        \"gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 \" +\n        \"gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n        \"gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ \" +\n        \"gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord \" +\n        \"gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse \" +\n        \"gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask \" +\n        \"gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter \" +\n        \"gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose \" +\n        \"gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out \" +\n        // Functions\n        \"EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin \" +\n        \"asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement \" +\n        \"atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier \" +\n        \"bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross \" +\n        \"dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB \" +\n        \"floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan \" +\n        \"greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap \" +\n        \"imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad \" +\n        \"imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset \" +\n        \"interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log \" +\n        \"log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer \" +\n        \"memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 \" +\n        \"normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 \" +\n        \"packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod \" +\n        \"shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh \" +\n        \"smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod \" +\n        \"texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod \" +\n        \"texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod \" +\n        \"textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset \" +\n        \"textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset \" +\n        \"textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod \" +\n        \"textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 \" +\n        \"unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow\",\n      literal: \"true false\",\n    },\n    illegal: '\"',\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_NUMBER_MODE,\n      {\n        className: \"meta\",\n        begin: \"#\",\n        end: \"$\",\n      },\n      {\n        match: [\n          // extra complexity to deal with `enum class` and `enum struct`\n          /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n          /\\s+/,\n          /\\w+/,\n        ],\n        className: {\n          1: \"keyword\",\n          3: \"title.class\",\n        },\n      },\n    ],\n  };\n}\n","/*\nLanguage: HLSL\nDescription: High-level shader language\nAuthor: Stef Levesque\nWebsite: https://docs.microsoft.com/en-us/windows/win32/direct3dhlsl/dx-graphics-hlsl\nCategory: graphics\nhttps://github.com/highlightjs/highlightjs-hlsl/blob/master/src/languages/hlsl.js\n*/\n\nconst HLSL_NUMBER_RE =\n  \"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?([hHfFlL]?)|\\\\.\\\\d+)([eE][-+]?\\\\d+)?([hHfFlL]?))\"; // 0x..., 0..., decimal, float, half, double\n\nconst HLSL_NUMBER_MODE = {\n  className: \"number\",\n  begin: HLSL_NUMBER_RE,\n  relevance: 0,\n};\n\nexport default function (hljs) {\n  // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n  // not include such support nor can we be sure all the grammars depending\n  // on it would desire this behavior\n  const C_LINE_COMMENT_MODE = hljs.COMMENT(\"//\", \"$\", {\n    contains: [\n      {\n        begin: /\\\\\\n/,\n      },\n    ],\n  });\n  // https://en.cppreference.com/w/cpp/language/escape\n  // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n  const CHARACTER_ESCAPES =\n    \"\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)\";\n  const STRINGS = {\n    className: \"string\",\n    variants: [\n      {\n        begin: '(u8?|U|L)?\"',\n        end: '\"',\n        illegal: \"\\\\n\",\n        contains: [hljs.BACKSLASH_ESCAPE],\n      },\n      {\n        begin: \"(u8?|U|L)?'(\" + CHARACTER_ESCAPES + \"|.)\",\n        end: \"'\",\n        illegal: \".\",\n      },\n      hljs.END_SAME_AS_BEGIN({\n        begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n        end: /\\)([^()\\\\ ]{0,16})\"/,\n      }),\n    ],\n  };\n  const PREPROCESSOR = {\n    className: \"meta\",\n    begin: /#\\s*[a-z]+\\b/,\n    end: /$/,\n    keywords: {\n      keyword:\n        \"if else elif endif define undef warning error line \" +\n        \"pragma _Pragma ifdef ifndef include\",\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0,\n      },\n      hljs.inherit(STRINGS, {\n        className: \"string\",\n      }),\n      {\n        className: \"string\",\n        begin: /<.*?>/,\n      },\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n    ],\n  };\n\n  let matrixBases =\n    \"bool double float half int uint \" +\n    \"min16float min10float min16int min12int min16uint\";\n\n  let matrixSuffixes = [\n    \"\",\n    \"1\",\n    \"2\",\n    \"3\",\n    \"4\",\n    \"1x1\",\n    \"1x2\",\n    \"1x3\",\n    \"1x4\",\n    \"2x1\",\n    \"2x2\",\n    \"2x3\",\n    \"2x4\",\n    \"3x1\",\n    \"3x2\",\n    \"3x3\",\n    \"3x4\",\n    \"4x1\",\n    \"4x2\",\n    \"4x3\",\n    \"4x4\",\n  ];\n\n  let matrixTypes = [];\n\n  for (let base of matrixBases.split(\" \")) {\n    for (let suffix of matrixSuffixes) {\n      matrixTypes.push(base + suffix);\n    }\n  }\n\n  let semanticsSV =\n    \"SV_Coverage SV_Depth SV_DispatchThreadID SV_DomainLocation \" +\n    \"SV_GroupID SV_GroupIndex SV_GroupThreadID SV_GSInstanceID SV_InnerCoverage SV_InsideTessFactor \" +\n    \"SV_InstanceID SV_IsFrontFace SV_OutputControlPointID SV_Position SV_PrimitiveID \" +\n    \"SV_RenderTargetArrayIndex SV_SampleIndex SV_StencilRef SV_TessFactor SV_VertexID \" +\n    \"SV_ViewportArrayIndex, SV_ShadingRate\";\n\n  let semanticsNum =\n    \"BINORMAL BLENDINDICES BLENDWEIGHT COLOR NORMAL POSITION PSIZE TANGENT TEXCOORD TESSFACTOR DEPTH \" +\n    \"SV_ClipDistance SV_CullDistance SV_DepthGreaterEqual SV_DepthLessEqual SV_Target \" +\n    \"SV_CLIPDISTANCE SV_CULLDISTANCE SV_DEPTHGREATEREQUAL SV_DEPTHLESSEQUAL SV_TARGET\";\n\n  let semanticsTypes = semanticsNum.split(\" \");\n\n  for (let s of semanticsNum.split(\" \")) {\n    for (let n of Array(16).keys()) {\n      semanticsTypes.push(s + n.toString());\n    }\n  }\n\n  return {\n    name: \"HLSL\",\n    keywords: {\n      keyword:\n        \"AppendStructuredBuffer asm asm_fragment BlendState break Buffer ByteAddressBuffer case \" +\n        \"cbuffer centroid class column_major compile compile_fragment CompileShader const continue \" +\n        \"ComputeShader ConsumeStructuredBuffer default DepthStencilState DepthStencilView discard do \" +\n        \"DomainShader dword else export extern false for fxgroup GeometryShader groupshared numthreads \" +\n        \"Hullshader if in inline inout InputPatch interface line lineadj linear LineStream \" +\n        \"matrix namespace nointerpolation noperspective \" +\n        \"NULL out OutputPatch packoffset pass pixelfragment PixelShader point PointStream precise \" +\n        \"RasterizerState RenderTargetView return register row_major RWBuffer RWByteAddressBuffer \" +\n        \"RWStructuredBuffer RWTexture1D RWTexture1DArray RWTexture2D RWTexture2DArray RWTexture3D sample \" +\n        \"sampler SamplerState SamplerComparisonState shared snorm stateblock stateblock_state static string \" +\n        \"struct switch StructuredBuffer ConstantBuffer tbuffer technique technique10 technique11 texture Texture1D \" +\n        \"Texture1DArray Texture2D Texture2DArray Texture2DMS Texture2DMSArray Texture3D TextureCube \" +\n        \"TextureCubeArray true typedef triangle triangleadj TriangleStream uint uniform unorm unsigned \" +\n        \"vector vertexfragment VertexShader void volatile while RaytracingAccelerationStructure RayDesc\",\n\n      type:\n        // Data Types\n        matrixTypes.join(\" \") +\n        \" \" +\n        \"Buffer vector matrix sampler SamplerState PixelShader VertexShader \" +\n        \"texture Texture1D Texture1DArray Texture2D Texture2DArray Texture2DMS Texture2DMSArray Texture3D \" +\n        \"TextureCube TextureCubeArray struct typedef\",\n\n      built_in:\n        // Semantics\n        \"POSITIONT FOG PSIZE VFACE VPOS \" +\n        semanticsTypes.join(\" \") +\n        \" \" +\n        semanticsSV +\n        \" \" +\n        semanticsSV.toUpperCase() +\n        \" \" +\n        // Functions\n        \"abort abs acos all AllMemoryBarrier AllMemoryBarrierWithGroupSync any asdouble asfloat asin asint asuint \" +\n        \"atan atan2 ceil CheckAccessFullyMapped clamp clip cos cosh countbits cross D3DCOLORtoUBYTE4 ddx ddx_coarse \" +\n        \"ddx_fine ddy ddy_coarse ddy_fine degrees determinant DeviceMemoryBarrier DeviceMemoryBarrierWithGroupSync \" +\n        \"distance dot dst errorf EvaluateAttributeAtCentroid EvaluateAttributeAtSample EvaluateAttributeSnapped \" +\n        \"exp exp2 f16tof32 f32tof16 faceforward firstbithigh firstbitlow floor fma fmod frac frexp fwidth \" +\n        \"GetRenderTargetSampleCount GetRenderTargetSamplePosition GroupMemoryBarrier GroupMemoryBarrierWithGroupSync \" +\n        \"InterlockedAdd InterlockedAnd InterlockedCompareExchange InterlockedCompareStore InterlockedExchange \" +\n        \"InterlockedMax InterlockedMin InterlockedOr InterlockedXor isfinite isinf isnan ldexp length lerp lit log \" +\n        \"log10 log2 mad max min modf msad4 mul noise normalize pow printf Process2DQuadTessFactorsAvg \" +\n        \"Process2DQuadTessFactorsMax Process2DQuadTessFactorsMin ProcessIsolineTessFactors ProcessQuadTessFactorsAvg \" +\n        \"ProcessQuadTessFactorsMax ProcessQuadTessFactorsMin ProcessTriTessFactorsAvg ProcessTriTessFactorsMax \" +\n        \"ProcessTriTessFactorsMin radians rcp reflect refract reversebits round rsqrt saturate sign sin sincos sinh \" +\n        \"smoothstep sqrt step tan tanh tex1D tex1Dbias tex1Dgrad tex1Dlod tex1Dproj tex2D tex2Dbias tex2Dgrad \" +\n        \"tex2Dlod tex2Dproj tex3D tex3Dbias tex3Dgrad tex3Dlod tex3Dproj texCUBE texCUBEbias texCUBEgrad texCUBElod \" +\n        \"texCUBEproj transpose trunc TraceRay\",\n\n      literal: \"true false\",\n    },\n    illegal: '\"',\n    contains: [\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      HLSL_NUMBER_MODE,\n      PREPROCESSOR,\n      {\n        match: [\n          // extra complexity to deal with `enum class` and `enum struct`\n          /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n          /\\s+/,\n          /\\w+/,\n        ],\n        className: {\n          1: \"keyword\",\n          3: \"title.class\",\n        },\n      },\n    ],\n  };\n}\n","/*\nLanguage: Metal Shading Language\nCategory: common, system\nWebsite: https://isocpp.org\n*/\n\n/** @type LanguageFn */\nexport default function (hljs) {\n  const regex = hljs.regex;\n  // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does\n  // not include such support nor can we be sure all the grammars depending\n  // on it would desire this behavior\n  const C_LINE_COMMENT_MODE = hljs.COMMENT(\"//\", \"$\", {\n    contains: [{ begin: /\\\\\\n/ }],\n  });\n  const DECLTYPE_AUTO_RE = \"decltype\\\\(auto\\\\)\";\n  const NAMESPACE_RE = \"[a-zA-Z_]\\\\w*::\";\n  const TEMPLATE_ARGUMENT_RE = \"<[^<>]+>\";\n  const FUNCTION_TYPE_RE =\n    \"(?!struct)(\" +\n    DECLTYPE_AUTO_RE +\n    \"|\" +\n    regex.optional(NAMESPACE_RE) +\n    \"[a-zA-Z_]\\\\w*\" +\n    regex.optional(TEMPLATE_ARGUMENT_RE) +\n    \")\";\n\n  const CPP_PRIMITIVE_TYPES = {\n    className: \"type\",\n    begin: \"\\\\b[a-z\\\\d_]*_t\\\\b\",\n  };\n\n  // https://en.cppreference.com/w/cpp/language/escape\n  // \\\\ \\x \\xFF \\u2837 \\u00323747 \\374\n  const CHARACTER_ESCAPES =\n    \"\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)\";\n  const STRINGS = {\n    className: \"string\",\n    variants: [\n      {\n        begin: '(u8?|U|L)?\"',\n        end: '\"',\n        illegal: \"\\\\n\",\n        contains: [hljs.BACKSLASH_ESCAPE],\n      },\n      {\n        begin: \"(u8?|U|L)?'(\" + CHARACTER_ESCAPES + \"|.)\",\n        end: \"'\",\n        illegal: \".\",\n      },\n      hljs.END_SAME_AS_BEGIN({\n        begin: /(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\(/,\n        end: /\\)([^()\\\\ ]{0,16})\"/,\n      }),\n    ],\n  };\n\n  const NUMBERS = {\n    className: \"number\",\n    variants: [\n      { begin: \"\\\\b(0b[01']+)\" },\n      {\n        begin:\n          \"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)\",\n      },\n      {\n        begin:\n          \"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\",\n      },\n    ],\n    relevance: 0,\n  };\n\n  const PREPROCESSOR = {\n    className: \"meta\",\n    begin: /#\\s*[a-z]+\\b/,\n    end: /$/,\n    keywords: {\n      keyword:\n        \"if else elif endif define undef warning error line \" +\n        \"pragma _Pragma ifdef ifndef include\",\n    },\n    contains: [\n      {\n        begin: /\\\\\\n/,\n        relevance: 0,\n      },\n      hljs.inherit(STRINGS, { className: \"string\" }),\n      {\n        className: \"string\",\n        begin: /<.*?>/,\n      },\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n    ],\n  };\n\n  const TITLE_MODE = {\n    className: \"title\",\n    begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,\n    relevance: 0,\n  };\n\n  const FUNCTION_TITLE =\n    regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + \"\\\\s*\\\\(\";\n\n  // https://en.cppreference.com/w/cpp/keyword\n  const RESERVED_KEYWORDS = [\n    \"alignas\",\n    \"alignof\",\n    \"and\",\n    \"and_eq\",\n    \"asm\",\n    \"atomic_cancel\",\n    \"atomic_commit\",\n    \"atomic_noexcept\",\n    \"auto\",\n    \"bitand\",\n    \"bitor\",\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"class\",\n    \"co_await\",\n    \"co_return\",\n    \"co_yield\",\n    \"compl\",\n    \"concept\",\n    \"const_cast|10\",\n    \"consteval\",\n    \"constexpr\",\n    \"constinit\",\n    \"continue\",\n    \"decltype\",\n    \"default\",\n    \"delete\",\n    \"do\",\n    \"dynamic_cast|10\",\n    \"else\",\n    \"enum\",\n    \"explicit\",\n    \"export\",\n    \"extern\",\n    \"false\",\n    \"final\",\n    \"for\",\n    \"friend\",\n    \"goto\",\n    \"if\",\n    \"import\",\n    \"inline\",\n    \"module\",\n    \"mutable\",\n    \"namespace\",\n    \"new\",\n    \"noexcept\",\n    \"not\",\n    \"not_eq\",\n    \"nullptr\",\n    \"operator\",\n    \"or\",\n    \"or_eq\",\n    \"override\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"reflexpr\",\n    \"register\",\n    \"reinterpret_cast|10\",\n    \"requires\",\n    \"return\",\n    \"sizeof\",\n    \"static_assert\",\n    \"static_cast|10\",\n    \"struct\",\n    \"switch\",\n    \"synchronized\",\n    \"template\",\n    \"this\",\n    \"thread_local\",\n    \"throw\",\n    \"transaction_safe\",\n    \"transaction_safe_dynamic\",\n    \"true\",\n    \"try\",\n    \"typedef\",\n    \"typeid\",\n    \"typename\",\n    \"union\",\n    \"using\",\n    \"virtual\",\n    \"volatile\",\n    \"while\",\n    \"xor\",\n    \"xor_eq\",\n    \"vertex\",\n    \"fragment\",\n    \"kernel\",\n    \"attribute\",\n    \"user\",\n    \"stage_in\",\n    \"buffer\",\n    \"vertex_id\",\n    \"instance_id\",\n    \"thread_position_in_threadgroup\",\n    \"threadgroup_position_in_grid\",\n    \"thread_index_in_threadgroup\",\n    \"thread_position_in_grid\",\n    \"threads_per_grid\",\n    \"texture\",\n    \"texture2d\",\n  ];\n\n  // https://en.cppreference.com/w/cpp/keyword\n  const RESERVED_TYPES = [\n    \"bool\",\n    \"char\",\n    \"char16_t\",\n    \"char32_t\",\n    \"char8_t\",\n    \"double\",\n    \"float\",\n    \"int\",\n    \"long\",\n    \"short\",\n    \"void\",\n    \"wchar_t\",\n    \"unsigned\",\n    \"signed\",\n    \"const\",\n    \"constant\",\n    \"static\",\n    \"threadgroup\",\n  ];\n\n  // Data Types\n  RESERVED_TYPES.join(\" \") +\n    \" \" +\n    \"Buffer vector matrix sampler SamplerState PixelShader VertexShader \" +\n    \"texture Texture1D Texture1DArray Texture2D Texture2DArray Texture2DMS Texture2DMSArray Texture3D \" +\n    \"TextureCube TextureCubeArray struct typedef\";\n\n  let matrixBases =\n    \"bool double float half int uint \" +\n    \"min16float min10float min16int min12int min16uint\";\n\n  let matrixSuffixes = [\n    \"\",\n    \"1\",\n    \"2\",\n    \"3\",\n    \"4\",\n    \"1x1\",\n    \"1x2\",\n    \"1x3\",\n    \"1x4\",\n    \"2x1\",\n    \"2x2\",\n    \"2x3\",\n    \"2x4\",\n    \"3x1\",\n    \"3x2\",\n    \"3x3\",\n    \"3x4\",\n    \"4x1\",\n    \"4x2\",\n    \"4x3\",\n    \"4x4\",\n  ];\n\n  for (let base of matrixBases.split(\" \")) {\n    for (let suffix of matrixSuffixes) {\n      RESERVED_TYPES.push(base + suffix);\n    }\n  }\n\n  const TYPE_HINTS = [\n    \"any\",\n    \"auto_ptr\",\n    \"barrier\",\n    \"binary_semaphore\",\n    \"bitset\",\n    \"complex\",\n    \"condition_variable\",\n    \"condition_variable_any\",\n    \"counting_semaphore\",\n    \"deque\",\n    \"false_type\",\n    \"future\",\n    \"imaginary\",\n    \"initializer_list\",\n    \"istringstream\",\n    \"jthread\",\n    \"latch\",\n    \"lock_guard\",\n    \"multimap\",\n    \"multiset\",\n    \"mutex\",\n    \"optional\",\n    \"ostringstream\",\n    \"packaged_task\",\n    \"pair\",\n    \"promise\",\n    \"priority_queue\",\n    \"queue\",\n    \"recursive_mutex\",\n    \"recursive_timed_mutex\",\n    \"scoped_lock\",\n    \"set\",\n    \"shared_future\",\n    \"shared_lock\",\n    \"shared_mutex\",\n    \"shared_timed_mutex\",\n    \"shared_ptr\",\n    \"stack\",\n    \"string_view\",\n    \"stringstream\",\n    \"timed_mutex\",\n    \"thread\",\n    \"true_type\",\n    \"tuple\",\n    \"unique_lock\",\n    \"unique_ptr\",\n    \"unordered_map\",\n    \"unordered_multimap\",\n    \"unordered_multiset\",\n    \"unordered_set\",\n    \"variant\",\n    \"vector\",\n    \"weak_ptr\",\n    \"wstring\",\n    \"wstring_view\",\n  ];\n\n  const FUNCTION_HINTS = [\n    \"abort\",\n    \"abs\",\n    \"acos\",\n    \"apply\",\n    \"as_const\",\n    \"asin\",\n    \"atan\",\n    \"atan2\",\n    \"calloc\",\n    \"ceil\",\n    \"cerr\",\n    \"cin\",\n    \"clog\",\n    \"cos\",\n    \"cosh\",\n    \"cout\",\n    \"declval\",\n    \"endl\",\n    \"exchange\",\n    \"exit\",\n    \"exp\",\n    \"fabs\",\n    \"floor\",\n    \"fmod\",\n    \"forward\",\n    \"fprintf\",\n    \"fputs\",\n    \"free\",\n    \"frexp\",\n    \"fscanf\",\n    \"future\",\n    \"invoke\",\n    \"isalnum\",\n    \"isalpha\",\n    \"iscntrl\",\n    \"isdigit\",\n    \"isgraph\",\n    \"islower\",\n    \"isprint\",\n    \"ispunct\",\n    \"isspace\",\n    \"isupper\",\n    \"isxdigit\",\n    \"labs\",\n    \"launder\",\n    \"ldexp\",\n    \"log\",\n    \"log10\",\n    \"make_pair\",\n    \"make_shared\",\n    \"make_shared_for_overwrite\",\n    \"make_tuple\",\n    \"make_unique\",\n    \"malloc\",\n    \"memchr\",\n    \"memcmp\",\n    \"memcpy\",\n    \"memset\",\n    \"modf\",\n    \"move\",\n    \"pow\",\n    \"printf\",\n    \"putchar\",\n    \"puts\",\n    \"realloc\",\n    \"scanf\",\n    \"sin\",\n    \"sinh\",\n    \"snprintf\",\n    \"sprintf\",\n    \"sqrt\",\n    \"sscanf\",\n    \"std\",\n    \"stderr\",\n    \"stdin\",\n    \"stdout\",\n    \"strcat\",\n    \"strchr\",\n    \"strcmp\",\n    \"strcpy\",\n    \"strcspn\",\n    \"strlen\",\n    \"strncat\",\n    \"strncmp\",\n    \"strncpy\",\n    \"strpbrk\",\n    \"strrchr\",\n    \"strspn\",\n    \"strstr\",\n    \"swap\",\n    \"tan\",\n    \"tanh\",\n    \"terminate\",\n    \"to_underlying\",\n    \"tolower\",\n    \"toupper\",\n    \"vfprintf\",\n    \"visit\",\n    \"vprintf\",\n    \"vsprintf\",\n  ];\n\n  const LITERALS = [\"NULL\", \"false\", \"nullopt\", \"nullptr\", \"true\"];\n\n  // https://en.cppreference.com/w/cpp/keyword\n  const BUILT_IN = [\"_Pragma\"];\n\n  const CPP_KEYWORDS = {\n    type: RESERVED_TYPES,\n    keyword: RESERVED_KEYWORDS,\n    literal: LITERALS,\n    built_in: BUILT_IN,\n    _type_hints: TYPE_HINTS,\n  };\n\n  const FUNCTION_DISPATCH = {\n    className: \"function.dispatch\",\n    relevance: 0,\n    keywords: {\n      // Only for relevance, not highlighting.\n      _hint: FUNCTION_HINTS,\n    },\n    begin: regex.concat(\n      /\\b/,\n      /(?!decltype)/,\n      /(?!if)/,\n      /(?!for)/,\n      /(?!switch)/,\n      /(?!while)/,\n      hljs.IDENT_RE,\n      regex.lookahead(/(<[^<>]+>|)\\s*\\(/)\n    ),\n  };\n\n  const EXPRESSION_CONTAINS = [\n    FUNCTION_DISPATCH,\n    PREPROCESSOR,\n    CPP_PRIMITIVE_TYPES,\n    C_LINE_COMMENT_MODE,\n    hljs.C_BLOCK_COMMENT_MODE,\n    NUMBERS,\n    STRINGS,\n  ];\n\n  const EXPRESSION_CONTEXT = {\n    // This mode covers expression context where we can't expect a function\n    // definition and shouldn't highlight anything that looks like one:\n    // `return some()`, `else if()`, `(x*sum(1, 2))`\n    variants: [\n      {\n        begin: /=/,\n        end: /;/,\n      },\n      {\n        begin: /\\(/,\n        end: /\\)/,\n      },\n      {\n        beginKeywords: \"new throw return else\",\n        end: /;/,\n      },\n    ],\n    keywords: CPP_KEYWORDS,\n    contains: EXPRESSION_CONTAINS.concat([\n      {\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        contains: EXPRESSION_CONTAINS.concat([\"self\"]),\n        relevance: 0,\n      },\n    ]),\n    relevance: 0,\n  };\n\n  const FUNCTION_DECLARATION = {\n    className: \"function\",\n    begin: \"(\" + FUNCTION_TYPE_RE + \"[\\\\*&\\\\s]+)+\" + FUNCTION_TITLE,\n    returnBegin: true,\n    end: /[{;=]/,\n    excludeEnd: true,\n    keywords: CPP_KEYWORDS,\n    illegal: /[^\\w\\s\\*&:<>.]/,\n    contains: [\n      {\n        // to prevent it from being confused as the function title\n        begin: DECLTYPE_AUTO_RE,\n        keywords: CPP_KEYWORDS,\n        relevance: 0,\n      },\n      {\n        begin: FUNCTION_TITLE,\n        returnBegin: true,\n        contains: [TITLE_MODE],\n        relevance: 0,\n      },\n      // needed because we do not have look-behind on the below rule\n      // to prevent it from grabbing the final : in a :: pair\n      {\n        begin: /::/,\n        relevance: 0,\n      },\n      // initializers\n      {\n        begin: /:/,\n        endsWithParent: true,\n        contains: [STRINGS, NUMBERS],\n      },\n      // allow for multiple declarations, e.g.:\n      // extern void f(int), g(char);\n      {\n        relevance: 0,\n        match: /,/,\n      },\n      {\n        className: \"params\",\n        begin: /\\(/,\n        end: /\\)/,\n        keywords: CPP_KEYWORDS,\n        relevance: 0,\n        contains: [\n          C_LINE_COMMENT_MODE,\n          hljs.C_BLOCK_COMMENT_MODE,\n          STRINGS,\n          NUMBERS,\n          CPP_PRIMITIVE_TYPES,\n          // Count matching parentheses.\n          {\n            begin: /\\(/,\n            end: /\\)/,\n            keywords: CPP_KEYWORDS,\n            relevance: 0,\n            contains: [\n              \"self\",\n              C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE,\n              STRINGS,\n              NUMBERS,\n              CPP_PRIMITIVE_TYPES,\n            ],\n          },\n          {\n            begin: /\\[\\[/,\n            end: /\\]\\]/,\n            keywords: CPP_KEYWORDS,\n            relevance: 0,\n            contains: [\n              \"self\",\n              C_LINE_COMMENT_MODE,\n              hljs.C_BLOCK_COMMENT_MODE,\n              STRINGS,\n              NUMBERS,\n              CPP_PRIMITIVE_TYPES,\n            ],\n          },\n        ],\n      },\n      CPP_PRIMITIVE_TYPES,\n      C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      PREPROCESSOR,\n    ],\n  };\n\n  return {\n    name: \"MSL\",\n    aliases: [\"msl\"],\n    keywords: CPP_KEYWORDS,\n    illegal: \"</\",\n    classNameAliases: { \"function.dispatch\": \"built_in\" },\n    contains: [].concat(\n      EXPRESSION_CONTEXT,\n      FUNCTION_DECLARATION,\n      FUNCTION_DISPATCH,\n      EXPRESSION_CONTAINS,\n      [\n        PREPROCESSOR,\n        {\n          // containers: ie, `vector <int> rooms (9);`\n          begin:\n            \"\\\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function)\\\\s*<(?!<)\",\n          end: \">\",\n          keywords: CPP_KEYWORDS,\n          contains: [\"self\", CPP_PRIMITIVE_TYPES],\n        },\n        {\n          begin: hljs.IDENT_RE + \"::\",\n          keywords: CPP_KEYWORDS,\n        },\n        {\n          match: [\n            // extra complexity to deal with `enum class` and `enum struct`\n            /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union)/,\n            /\\s+/,\n            /\\w+/,\n          ],\n          className: {\n            1: \"keyword\",\n            3: \"title.class\",\n          },\n        },\n      ]\n    ),\n  };\n}\n","/*\nLanguage: WGSL\nDescription: WebGPU Shader Language\nCategory: graphics\n*/\n\nexport default function (hljs) {\n  return {\n    name: \"WGSL\",\n    keywords: {\n      keyword:\n        // Statements\n        \"break continue discard do else for if return while switch case default \" +\n        // Qualifiers\n        \"attribute binding group builtin buffer ccw centroid centroid varying coherent column_major const cw \" +\n        \"depth_any depth_greater depth_less depth_unchanged early_fragment_tests equal_spacing \" +\n        \"flat fractional_even_spacing fractional_odd_spacing highp in index inout invariant \" +\n        \"invocations isolines layout line_strip lines lines_adjacency local_size_x local_size_y \" +\n        \"local_size_z location lowp max_vertices mediump noperspective offset origin_upper_left \" +\n        \"out packed patch pixel_center_integer point_mode points precise precision quads r11f_g11f_b10f \" +\n        \"r16 r16_snorm r16f r16i r16ui r32f r32i r32ui r8 r8_snorm r8i r8ui readonly restrict \" +\n        \"rg16 rg16_snorm rg16f rg16i rg16ui rg32f rg32i rg32ui rg8 rg8_snorm rg8i rg8ui rgb10_a2 \" +\n        \"rgb10_a2ui rgba16 rgba16_snorm rgba16f rgba16i rgba16ui rgba32f rgba32i rgba32ui rgba8 \" +\n        \"rgba8_snorm rgba8i rgba8ui row_major sample shared smooth std140 std430 stream triangle_strip \" +\n        \"triangles triangles_adjacency uniform varying vertices volatile writeonly\",\n      type:\n        \"atomic_uint bool bvec2 bvec3 bvec4 dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 \" +\n        \"dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 double dvec2 dvec3 dvec4 float f32 f64 u32 u64 iimage1D iimage1DArray \" +\n        \"iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer \" +\n        \"iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray \" +\n        \"image2DRect image3D imageBuffer imageCube imageCubeArray int isampler1D isampler1DArray \" +\n        \"isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D \" +\n        \"isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 mat2 mat2x2 mat2x3 \" +\n        \"mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 sampler1D sampler1DArray \" +\n        \"sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow \" +\n        \"sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D \" +\n        \"samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow \" +\n        \"image1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect \" +\n        \"uimage3D uimageBuffer uimageCube uimageCubeArray uint usampler1D usampler1DArray \" +\n        \"usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D \" +\n        \"samplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 vec2 vec3 vec4 void var let\",\n      built_in:\n        // Constants\n        \"gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes \" +\n        \"gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms \" +\n        \"gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxComputeAtomicCounterBuffers \" +\n        \"gl_MaxComputeAtomicCounters gl_MaxComputeImageUniforms gl_MaxComputeTextureImageUnits \" +\n        \"gl_MaxComputeUniformComponents gl_MaxComputeWorkGroupCount gl_MaxComputeWorkGroupSize \" +\n        \"gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters \" +\n        \"gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentInputVectors \" +\n        \"gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers \" +\n        \"gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents \" +\n        \"gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits \" +\n        \"gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents \" +\n        \"gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset \" +\n        \"gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms \" +\n        \"gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits \" +\n        \"gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents \" +\n        \"gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters \" +\n        \"gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents \" +\n        \"gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents \" +\n        \"gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits \" +\n        \"gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors \" +\n        \"gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms \" +\n        \"gl_MaxVertexOutputComponents gl_MaxVertexOutputVectors gl_MaxVertexTextureImageUnits \" +\n        \"gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffset \" +\n        // Variables\n        \"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial \" +\n        \"gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color \" +\n        \"gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord \" +\n        \"gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor \" +\n        \"gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial \" +\n        \"gl_FrontSecondaryColor gl_GlobalInvocationID gl_InstanceID gl_InvocationID gl_Layer gl_LightModel \" +\n        \"gl_LightSource gl_LocalInvocationID gl_LocalInvocationIndex gl_ModelViewMatrix \" +\n        \"gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose \" +\n        \"gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose \" +\n        \"gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 \" +\n        \"gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n        \"gl_Normal gl_NormalMatrix gl_NormalScale gl_NumSamples gl_NumWorkGroups gl_ObjectPlaneQ \" +\n        \"gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_Point gl_PointCoord \" +\n        \"gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse \" +\n        \"gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask \" +\n        \"gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter \" +\n        \"gl_TexCoord gl_TextureEnvColor gl_TextureMatrix gl_TextureMatrixInverse gl_TextureMatrixInverseTranspose \" +\n        \"gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_WorkGroupID gl_WorkGroupSize gl_in gl_out \" +\n        // Built-in Functions\n        // https://www.w3.org/TR/WGSL/#builtin-functions\n        // Array Built-in Functions\n        \"arrayLength \" +\n        // Float Built-in Functions\n        \"EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin \" +\n        \"asinh atan atanh atomicAdd atomicAnd atomicCompSwap atomicCounter atomicCounterDecrement \" +\n        \"atomicCounterIncrement atomicExchange atomicMax atomicMin atomicOr atomicXor barrier \" +\n        \"bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross \" +\n        \"degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB \" +\n        \"floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan \" +\n        \"greaterThanEqual groupMemoryBarrier imageAtomicAdd imageAtomicAnd imageAtomicCompSwap \" +\n        \"imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad \" +\n        \"imageSize imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset \" +\n        \"interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log \" +\n        \"log2 matrixCompMult max memoryBarrier memoryBarrierAtomicCounter memoryBarrierBuffer \" +\n        \"memoryBarrierImage memoryBarrierShared min mix mod modf noise1 noise2 noise3 noise4 \" +\n        \"normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 \" +\n        \"packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod \" +\n        \"shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh \" +\n        \"smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod \" +\n        \"texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod \" +\n        \"texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod \" +\n        \"textureGatherOffset textureGatherOffsets textureGrad textureGradOffset \" +\n        \"textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset \" +\n        \"textureProjLod textureProjLodOffset textureProjOffset textureQueryLevels textureQueryLod \" +\n        \"textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 \" +\n        // Derivative Built-in Functions\n        \"dpdx dpdxCoarse dpdxFine dpdy dpdyCoarse dpdyFine fwidth fwidthCoarse fwidthFine \" +\n        // Texture Built-in Functions\n        \"textureDimensions textureGather textureGatherCompare textureLoad textureNumLayers textureNumSamples textureSample textureSampleBias textureSampleCompare textureSampleCompareLevel textureSampleGrad textureSampleLevel textureStore \" +\n        \"unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow\",\n      literal: \"true false\",\n    },\n    illegal: '\"',\n    contains: [\n      hljs.C_LINE_COMMENT_MODE,\n      hljs.C_BLOCK_COMMENT_MODE,\n      hljs.C_NUMBER_MODE,\n      {\n        className: \"meta\",\n        begin: \"#\",\n        end: \"$\",\n      },\n      {\n        match: [\n          // extra complexity to deal with `enum class` and `enum struct`\n          /\\b(?:enum(?:\\s+(?:class|struct))?|class|struct|union|fn)/,\n          /\\s+/,\n          /\\w+/,\n        ],\n        className: {\n          1: \"keyword\",\n          3: \"title.class\",\n        },\n      },\n      {\n        match: [/\\-\\>/, /\\s+/, /\\w+/],\n        className: {\n          3: \"title.class\",\n        },\n      },\n      {\n        match: [\n          // extra complexity to deal with `enum class` and `enum struct`\n          /@(location|builtin|group|binding|stage|workgroup_size)/,\n          /\\(/,\n        ],\n        className: {\n          1: \"meta-keyword\",\n        },\n      },\n      {\n        match: [\n          // extra complexity to deal with `enum class` and `enum struct`\n          /@(vertex|fragment|compute)/,\n        ],\n        className: {\n          1: \"meta-keyword\",\n        },\n      },\n    ],\n  };\n}\n","import * as Remarkable from \"remarkable\";\nconst remark: any = Remarkable as any;\nimport hljs from \"highlight.js\";\nconst {\n  getLanguage,\n  highlight,\n  highlightAuto,\n  registerLanguage,\n  registerAliases,\n} = hljs;\n\nimport cpp from \"./languages/cpp\";\nimport glsl from \"./languages/glsl\";\nimport hlsl from \"./languages/hlsl\";\nimport msl from \"./languages/msl\";\nimport wgsl from \"./languages/wgsl\";\n\nregisterLanguage(\"cpp\", cpp);\nregisterLanguage(\"glsl\", glsl);\nregisterLanguage(\"hlsl\", hlsl);\nregisterLanguage(\"msl\", msl);\nregisterLanguage(\"wgsl\", wgsl);\n\nregisterAliases([\"asm\", \"amdil\", \"ptx\"], { languageName: \"x86asm\" });\n\nconst remarkable = new remark.Remarkable({\n  html: true,\n  highlight: function (str, lang) {\n    if (lang && getLanguage(lang)) {\n      try {\n        let result = highlight(str, { language: lang });\n        if (result.errorRaised) {\n          console.error(result.errorRaised.message);\n        }\n        return result.value;\n      } catch (err) {\n        console.error(err);\n      }\n    }\n\n    try {\n      return highlightAuto(str).value;\n    } catch (err) {}\n\n    return \"\"; // use external default escaping\n  },\n});\n\nexport default (str) => remarkable.render(str);\n","import katex from \"katex\";\nconst { renderToString } = katex;\n/**\n * A Katex wrapper class.\n * A port of RocketChat's katex class.\n */\nclass Katex {\n  public delimiterMap = [\n    {\n      opener: \"\\\\[\",\n      closer: \"\\\\]\",\n      displayMode: true,\n    },\n    {\n      opener: \"\\\\(\",\n      closer: \"\\\\)\",\n      displayMode: false,\n    },\n  ];\n\n  findOpeningDelimiter = (str: string, start: number) => {\n    var m,\n      match,\n      matchIndex,\n      o,\n      pos,\n      positions: any[] = [],\n      matches: any[] = [];\n\n    // Iterate on delimiterMap\n    this.delimiterMap.map((d) =>\n      matches.push({\n        options: d,\n        pos: str.indexOf(d.opener, start),\n      })\n    );\n\n    matches.map((m) => (m.pos >= 0 ? positions.push(m.pos) : null));\n\n    if (positions.length === 0) {\n      return null;\n    }\n\n    pos = Math.min.apply(Math, positions);\n    matchIndex = (() => {\n      var i, len, results;\n      results = [];\n      for (i = 0, len = matches.length; i < len; i++) {\n        m = matches[i];\n        results.push(m.pos);\n      }\n      return results;\n    })().indexOf(pos);\n\n    match = matches[matchIndex];\n    return match;\n  };\n\n  getLatexBoundaries = (str, openingDelimiterMatch) => {\n    var closer, closerIndex, inner, outer;\n    inner = new Boundary();\n    outer = new Boundary();\n    closer = openingDelimiterMatch.options.closer;\n    outer.start = openingDelimiterMatch.pos;\n    inner.start = openingDelimiterMatch.pos + closer.length;\n    closerIndex = str.substr(inner.start).indexOf(closer);\n    if (closerIndex < 0) {\n      return null;\n    }\n    inner.end = inner.start + closerIndex;\n    outer.end = inner.end + closer.length;\n    return {\n      outer,\n      inner,\n    };\n  };\n\n  findLatex = (str) => {\n    var match, openingDelimiterMatch, start;\n    start = 0;\n    while (\n      (openingDelimiterMatch = this.findOpeningDelimiter(str, start++)) != null\n    ) {\n      match = this.getLatexBoundaries(str, openingDelimiterMatch);\n      if (match != null ? match.inner.extract(str).trim().length : void 0) {\n        match.options = openingDelimiterMatch.options;\n        return match;\n      }\n    }\n    return null;\n  };\n\n  extractLatex = (str, match) => {\n    var after, before, latex;\n    before = str.substr(0, match.outer.start);\n    after = str.substr(match.outer.end);\n    latex = match.inner.extract(str);\n    return {\n      before,\n      latex,\n      after,\n    };\n  };\n\n  renderLatex = (latex, displayMode) => {\n    var displayMode, e, error, rendered;\n    try {\n      rendered = renderToString(latex, {\n        displayMode,\n      });\n    } catch (error) {\n      e = error;\n      displayMode = displayMode ? \"block\" : \"inline\";\n      rendered = `<div class=\"katex-error katex-${displayMode}-error\">${e.message}</div>`;\n    }\n    return rendered;\n  };\n\n  render = (str) => {\n    var match, parts, rendered, result;\n    result = \"\";\n    while (true) {\n      match = this.findLatex(str);\n      if (match == null) {\n        result += str;\n        break;\n      }\n      parts = this.extractLatex(str, match);\n      rendered = this.renderLatex(parts.latex, match.options.displayMode);\n      result += parts.before + rendered;\n      str = parts.after;\n    }\n    return result;\n  };\n}\n\nclass Boundary {\n  public end: number;\n  public start: number;\n  length() {\n    return this.end - this.start;\n  }\n\n  extract(str: string) {\n    return str.substr(this.start, this.length());\n  }\n}\n\nconst katexRender = new Katex();\n\nexport default (str: string) => katexRender.render(str);\n","function addTitleIds(input: string) {\n  let nameSet = new Set();\n  let regex = /\\<(h1|h2|h3)/g;\n  return input.replace(regex, (h: string, p1, offset, string) => {\n    var innerText = input.substr(offset + 4);\n    var endXml = new RegExp(\"</\" + p1);\n    var foundEnd = endXml.exec(innerText);\n    if (foundEnd) {\n      innerText = innerText.substr(0, foundEnd.index);\n    }\n\n    var reps = 1;\n    var idText = innerText.replace(/ /g, \"-\").toLowerCase().trim();\n    while (nameSet.has(idText)) {\n      idText = innerText.replace(/ /g, \"-\").toLowerCase().trim() + reps;\n      reps++;\n    }\n    nameSet.add(idText);\n    return h + ' id=\"' + idText + '\"';\n  });\n}\n\nfunction rerouteLinks(input: string, target: (str: string) => string) {\n  let regex =\n    /(href|src)\\s*=\\s*(?:\\\"|\\')?\\s*([^\\\"\\'\\/]+)(?:[^\\\"\\']*)(?=(\\\"|\\'))?/g;\n\n  return addTitleIds(\n    input.replace(regex, (link: string) => {\n      // If there's an http(s) or ftp, don't modify\n      if (link.match(/\"(http(s?)|ftp):\\/\\//)) return link;\n\n      // otherwise spilt string where the first \" is.\n      let split = link.split('\"');\n\n      if (!split[1]) return split[0] + '\"';\n\n      return split[0] + '\"' + target(split[1]);\n    })\n  );\n}\n\nexport default rerouteLinks;\n","import * as md5 from \"md5\";\n\ntype BibJSON = {\n  [citation: string]: any;\n};\n\ntype SymbolMap = {\n  [latexSymbol: string]: {\n    type: string;\n    description: string;\n  };\n};\n\nfunction citationsRender(input: string, citations: BibJSON) {\n  // 🔍 Find all instances of [^${citename}].\n  // Check if `citename` exists in citations object.\n  // Remove from input if it doesn't exist.\n  let foundCitations: string[] = [];\n  var cleanedCitationNames: string[] = [];\n  var foundCitationsSet = new Set<string>();\n\n  input = input.replace(/\\[\\^\\w*\\]/g, (citekey) => {\n    var citename = citekey.substr(2, citekey.length - 3);\n    if (citename in citations) {\n      let curCitation = citations[citename];\n      if (curCitation === undefined) {\n        return \"\";\n      }\n      // 🧼 Get author name to replace citation with\n      // eg. [Smith et al. 2018]\n      // Default to the publisher first.\n      var authorName = curCitation?.publisher || \"\";\n      if (curCitation?.author?.length > 0) {\n        var firstAuthor: string = curCitation.author[0].name;\n        var lastNameFirst = /^([^,]*),/.exec(firstAuthor);\n        if (lastNameFirst) {\n          authorName = lastNameFirst[0].substr(lastNameFirst[0].length - 1);\n        } else {\n          var lastNameLast = / .*$/.exec(firstAuthor);\n          if (lastNameLast) {\n            authorName = lastNameLast[0].substr(1, lastNameLast[0].length - 1);\n          }\n        }\n\n        if (curCitation.author.length > 1) {\n          authorName += \" et al.\";\n        }\n      }\n      if (curCitation.year) {\n        authorName += ` ${citations[citename].year}`;\n      }\n\n      // Don't add to table if it already exists\n      let citationExists = foundCitationsSet.has(citename);\n      if (!citationExists) {\n        foundCitationsSet.add(citename);\n        foundCitations = [...foundCitations, citename];\n        cleanedCitationNames[citename] = authorName;\n      }\n\n      return `<a href=\"#ref_${citename}\">[${authorName}]</a>`;\n    }\n    return \"\";\n  });\n\n  // ❌ Don't generate citation table if there are none.\n  if (foundCitations.length == 0) {\n    return input;\n  }\n\n  // 🔲 Generate Table and append to end of input\n  let citationTable =\n    foundCitations\n      .map((citename) => {\n        let citation = citations[citename];\n        let {\n          title = \"\",\n          author = [],\n          publisher = \"\",\n          journal = \"\",\n          year = 0,\n          link = [],\n        } = citation;\n\n        let citationName = `<span class=\"markademic-citename\">[${cleanedCitationNames[citename]}]</span><br>`;\n        let tableTitle =\n          title.length > 0\n            ? `<em><strong><span class=\"markademic-title\">${title}</span></strong></em><br>`\n            : \"\";\n        let authorNames = author.reduce((prev, cur, i) => {\n          let authorHTML = \"\";\n          /*\n                        (prev, cur, i) =>\n                        prev +\n                        (cur['name'] ? (i >= 1 ? (i == author.length - 1 ? ' and ' : ', ') : '') + cur['name'] : ''),*/\n          if (cur[\"name\"]) {\n            // Ands, Commas:\n            if (i >= 1) {\n              if (i == author.length - 1) {\n                authorHTML += \" and \";\n              } else {\n                authorHTML += \", \";\n              }\n            }\n            // Author Profile\n            let authorWebsite = \"\";\n            if (cur[\"github\"]) {\n              let imgUrl = cur[\"github\"] + \".png\";\n              authorHTML += `<img class=\"markademic-profile\" src=\"${imgUrl}\"> `;\n              authorWebsite = cur[\"github\"];\n            } else if (cur[\"email\"]) {\n              let hash = md5(\n                \"MyEmailAddress@example.com \".trim().toLocaleLowerCase()\n              );\n              let imgUrl = \"https://www.gravatar.com/avatar/\" + hash;\n              authorHTML += `<img class=\"markademic-profile\" src=\"${imgUrl}\"> `;\n              authorWebsite = `mailto:${cur[\"email\"]}`;\n            }\n\n            // Author Name\n            if (cur[\"website\"]) {\n              authorWebsite = cur[\"website\"];\n            }\n            if (authorWebsite.length > 0) {\n              authorHTML += `<a href=\"${authorWebsite}\">${cur[\"name\"]}</a>`;\n            } else {\n              authorHTML += cur[\"name\"];\n            }\n\n            if (cur[\"twitter\"]) {\n              let twitterUrl = \"\";\n              let twitterHandle = \"\";\n\n              try {\n                //if its a url, extract handle\n                if (new URL(cur[\"twitter\"])) {\n                  let reg = /\\.com\\//.exec(cur[\"twitter\"]);\n                  if (reg) {\n                    twitterHandle = cur[\"twitter\"].slice(\n                      reg.index + \".com/\".length\n                    );\n                  }\n                  twitterUrl = cur[\"twitter\"];\n                }\n              } catch (e) {\n                //if its a handle, extract handle without @\n                let reg = /@/.exec(cur[\"twitter\"]);\n                if (reg) {\n                  twitterHandle = cur[\"twitter\"].slice(reg.index + \"@\".length);\n                } else if (cur[\"twitter\"].length > 0) {\n                  twitterHandle = cur[\"twitter\"];\n                }\n                twitterUrl = \"https://twitter.com/\" + twitterHandle;\n              }\n\n              authorHTML += ` (<a href=\"${twitterUrl}\">@${twitterHandle}</a>)`;\n            }\n          }\n          return prev + authorHTML;\n        }, \"\");\n        if (authorNames.length > 0) {\n          authorNames =\n            '<span class=\"markademic-authors\">' + authorNames + \"</span><br>\";\n        }\n        let publisherJournalEtc = \"\";\n        if (publisher.length > 0) {\n          publisherJournalEtc += publisher;\n        }\n        if (journal.length > 0) {\n          if (publisherJournalEtc.length > 0) {\n            publisherJournalEtc += \", \";\n          }\n          publisherJournalEtc += journal;\n        }\n        if (publisherJournalEtc.length > 0) {\n          publisherJournalEtc += \" \";\n        }\n        if (year > 0) {\n          publisherJournalEtc += year;\n        }\n        if (publisherJournalEtc.length > 0) {\n          publisherJournalEtc =\n            '<span class=\"markademic-publisher\">' +\n            publisherJournalEtc +\n            \"</span><br>\";\n        }\n\n        let citationLinks = \"\";\n        if (link.length > 0) {\n          citationLinks = link.reduce((prev, cur, i) => {\n            var cleanLink = cur[\"url\"];\n            if (!cleanLink) {\n              cleanLink = \"\";\n            }\n            let rem = /(http|ftp|https):\\/\\/(www\\.)?/.exec(cleanLink);\n            if (rem) {\n              cleanLink = cleanLink.slice(rem[0].length);\n            }\n            let nextSlash = /\\//.exec(cleanLink);\n            if (nextSlash) {\n              cleanLink = cleanLink.slice(0, nextSlash.index);\n            }\n            return (\n              prev +\n              (cur[\"url\"]\n                ? (i >= 1 ? \" \" : \"\") +\n                  `<a href=\"${cur[\"url\"]}\">${\n                    cur[\"title\"] ? cur[\"title\"] : cleanLink\n                  }</a>`\n                : \"\")\n            );\n          }, \"\");\n        }\n\n        let row = `\n<tr>\n<td id=\"ref_${citename}\">\n${citationName}\n${tableTitle}\n${authorNames}\n${publisherJournalEtc}\n${citationLinks}\n</td>\n</tr>\n`;\n\n        return row;\n      })\n      .reduce(\n        (prev, cur) => prev + cur,\n        '<table class=\"markademic-citations\">'\n      ) + \"</table>\";\n\n  return input + citationTable;\n}\n\nexport { citationsRender };\n","import remarkableRender from \"./remarkable\";\nimport katexRender from \"./katex\";\nimport rerouteLinks from \"./reroute\";\nimport { citationsRender } from \"./jsonrender\";\n\nexport type Config = {\n  input: string;\n  citations?: any;\n  rerouteLinks?: (str: string) => string;\n};\n\n/**\n * Processes Markdown with Syntax Highlighting\n * and Latex Preprocessors, and adds references.\n */\nfunction markademic(config: Config) {\n  let out = katexRender(config.input);\n  if (out !== undefined) out = remarkableRender(out);\n  else out = remarkableRender(config.input);\n\n  if (config.rerouteLinks) out = rerouteLinks(out, config.rerouteLinks);\n\n  if (config.citations) out = citationsRender(out, config.citations);\n\n  return out;\n}\n\nexport { markademic };\n"],"names":["hljs","regex","C_LINE_COMMENT_MODE","COMMENT","contains","begin","DECLTYPE_AUTO_RE","NAMESPACE_RE","TEMPLATE_ARGUMENT_RE","FUNCTION_TYPE_RE","optional","CPP_PRIMITIVE_TYPES","className","CHARACTER_ESCAPES","STRINGS","variants","end","illegal","BACKSLASH_ESCAPE","END_SAME_AS_BEGIN","NUMBERS","relevance","PREPROCESSOR","keywords","keyword","inherit","C_BLOCK_COMMENT_MODE","TITLE_MODE","IDENT_RE","FUNCTION_TITLE","RESERVED_KEYWORDS","RESERVED_TYPES","TYPE_HINTS","FUNCTION_HINTS","LITERALS","BUILT_IN","CPP_KEYWORDS","type","literal","built_in","_type_hints","FUNCTION_DISPATCH","_hint","concat","lookahead","EXPRESSION_CONTAINS","EXPRESSION_CONTEXT","beginKeywords","FUNCTION_DECLARATION","returnBegin","excludeEnd","endsWithParent","match","name","aliases","classNameAliases","C_NUMBER_MODE","HLSL_NUMBER_RE","HLSL_NUMBER_MODE","matrixBases","matrixSuffixes","matrixTypes","base","split","suffix","push","semanticsSV","semanticsNum","semanticsTypes","s","n","Array","keys","toString","join","toUpperCase","remark","Remarkable","getLanguage","highlight","highlightAuto","registerLanguage","registerAliases","cpp","glsl","hlsl","msl","wgsl","languageName","remarkable","html","str","lang","result","language","errorRaised","console","error","message","value","err","render","renderToString","katex","Katex","delimiterMap","opener","closer","displayMode","findOpeningDelimiter","start","m","matchIndex","pos","positions","matches","map","d","options","indexOf","length","Math","min","apply","i","len","results","getLatexBoundaries","openingDelimiterMatch","closerIndex","inner","outer","Boundary","substr","findLatex","extract","trim","extractLatex","after","before","latex","renderLatex","e","rendered","parts","katexRender","addTitleIds","input","nameSet","Set","replace","h","p1","offset","string","innerText","endXml","RegExp","foundEnd","exec","index","reps","idText","toLowerCase","has","add","rerouteLinks","target","link","citationsRender","citations","foundCitations","cleanedCitationNames","foundCitationsSet","citekey","citename","curCitation","undefined","authorName","publisher","author","firstAuthor","lastNameFirst","lastNameLast","year","citationExists","citationTable","citation","title","journal","citationName","tableTitle","authorNames","reduce","prev","cur","authorHTML","authorWebsite","imgUrl","hash","md5","toLocaleLowerCase","twitterUrl","twitterHandle","URL","reg","slice","publisherJournalEtc","citationLinks","cleanLink","rem","nextSlash","row","markademic","config","out","remarkableRender"],"mappings":"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"}