const lang = Object.freeze(JSON.parse("{\"displayName\":\"Cadence\",\"name\":\"cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#declarations\"},{\"include\":\"#keywords\"},{\"include\":\"#code-block\"},{\"include\":\"#expressions\"},{\"include\":\"#composite\"},{\"include\":\"#event\"}],\"repository\":{\"code-block\":{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.begin.cadence\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.scope.end.cadence\"}},\"patterns\":[{\"include\":\"$self\"}]},\"comments\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.definition.comment.cadence\"}},\"match\":\"\\\\A^(#!).*$\\\\n?\",\"name\":\"comment.line.number-sign.cadence\"},{\"begin\":\"/\\\\*\\\\*(?!/)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.cadence\"}},\"end\":\"\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.cadence\"}},\"name\":\"comment.block.documentation.cadence\",\"patterns\":[{\"include\":\"#nested\"}]},{\"begin\":\"/\\\\*:\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.cadence\"}},\"end\":\"\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.cadence\"}},\"name\":\"comment.block.documentation.playground.cadence\",\"patterns\":[{\"include\":\"#nested\"}]},{\"begin\":\"/\\\\*\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.begin.cadence\"}},\"end\":\"\\\\*/\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.end.cadence\"}},\"name\":\"comment.block.cadence\",\"patterns\":[{\"include\":\"#nested\"}]},{\"match\":\"\\\\*/\",\"name\":\"invalid.illegal.unexpected-end-of-block-comment.cadence\"},{\"begin\":\"(^[\\\\t ]+)?(?=//)\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.whitespace.comment.leading.cadence\"}},\"end\":\"(?!\\\\G)\",\"patterns\":[{\"begin\":\"///\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.cadence\"}},\"end\":\"$\",\"name\":\"comment.line.triple-slash.documentation.cadence\"},{\"begin\":\"//:\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.cadence\"}},\"end\":\"$\",\"name\":\"comment.line.double-slash.documentation.cadence\"},{\"begin\":\"//\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.comment.cadence\"}},\"end\":\"$\",\"name\":\"comment.line.double-slash.cadence\"}]}],\"repository\":{\"nested\":{\"begin\":\"/\\\\*\",\"end\":\"\\\\*/\",\"patterns\":[{\"include\":\"#nested\"}]}}},\"composite\":{\"begin\":\"\\\\b((?:struct|resource|contract|attachment)(?:\\\\s+interface)?|enum)\\\\s+([_\\\\p{L}][_\\\\p{L}\\\\p{N}\\\\p{M}]*)\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.$1.cadence\"},\"2\":{\"name\":\"entity.name.type.$1.cadence\"}},\"end\":\"(?<=})|(?=\\\\s*\\\\Z)\",\"name\":\"meta.definition.type.composite.cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#conformance-clause\"},{\"begin\":\"\\\\{\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.section.type.begin.cadence\"}},\"end\":\"}\",\"endCaptures\":{\"0\":{\"name\":\"punctuation.section.type.end.cadence\"}},\"name\":\"meta.definition.type.body.cadence\",\"patterns\":[{\"include\":\"$self\"}]}]},\"conformance-clause\":{\"begin\":\"(:)(?=\\\\s*\\\\{)|(:)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"invalid.illegal.empty-conformance-clause.cadence\"},\"2\":{\"name\":\"punctuation.separator.conformance-clause.cadence\"}},\"end\":\"(?!\\\\G)$|(?=[={}])\",\"name\":\"meta.conformance-clause.cadence\",\"patterns\":[{\"begin\":\"\\\\G\",\"end\":\"(?!\\\\G)$|(?=[={}])\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#type\"}]}]},\"declarations\":{\"patterns\":[{\"include\":\"#var-let-declaration\"},{\"include\":\"#function\"},{\"include\":\"#initializer\"},{\"include\":\"#prepare-execute\"},{\"include\":\"#execute-phase\"},{\"include\":\"#pre-post\"},{\"include\":\"#transaction\"}]},\"event\":{\"begin\":\"\\\\b(event)\\\\b\\\\s+([_\\\\p{L}][_\\\\p{L}\\\\p{N}\\\\p{M}]*)\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"storage.type.event.cadence\"},\"2\":{\"name\":\"entity.name.type.event.cadence\"}},\"end\":\"(?<=\\\\))\",\"name\":\"meta.definition.type.event.cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#parameter-clause\"}]},\"execute-phase\":{\"begin\":\"(?)(?!\\\\s*[<=>])\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.type-arguments.end.cadence\"}},\"name\":\"meta.type.arguments.cadence\",\"patterns\":[{\"include\":\"#type\"},{\"match\":\",\",\"name\":\"punctuation.separator.type-argument.cadence\"}]},{\"begin\":\"(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.begin.cadence\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.cadence\"}},\"name\":\"meta.group.cadence\",\"patterns\":[{\"include\":\"#expression-element-list\"}]},{\"begin\":\"(?<=\\\\.)([_\\\\p{L}][_\\\\p{L}\\\\p{N}\\\\p{M}]*)\\\\s*(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"entity.name.function.cadence\"},\"2\":{\"name\":\"punctuation.definition.arguments.begin.cadence\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.arguments.end.cadence\"}},\"name\":\"meta.function-call.method.cadence\",\"patterns\":[{\"include\":\"#expression-element-list\"}]},{\"match\":\"(?<=\\\\.)[_\\\\p{L}][_\\\\p{L}\\\\p{N}\\\\p{M}]*\",\"name\":\"variable.other.member.cadence\"},{\"include\":\"#function-call-expression\"},{\"match\":\"(?^|~])(:)(?![-!%\\\\&*+./<=>^|~])\\\\s*\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.function-result.cadence\"}},\"end\":\"(?\",\"name\":\"punctuation.separator.mapping.cadence\"}]},{\"captures\":{\"1\":{\"name\":\"keyword.declaration.entitlement.cadence\"},\"2\":{\"name\":\"entity.name.type.entitlement.cadence\"}},\"match\":\"(?\",\"name\":\"keyword.operator.swap.cadence\"},{\"match\":\"\\\\?\\\\.\",\"name\":\"keyword.operator.optional.chain.cadence\"},{\"begin\":\"\\\\b(as(?:\\\\?|!?))\\\\b\",\"beginCaptures\":{\"0\":{\"name\":\"keyword.operator.type.cast.cadence\"}},\"end\":\"(?=$|;|//|/\\\\\\\\*|\\\")|(?=[),}])|(?<=>)(?=\\\\s*\\\\{(?!\\\\s*[_\\\\p{L}][._\\\\p{L}\\\\p{N}\\\\p{M}]*\\\\s*:))|(?<=[])>?}\\\\p{L}\\\\p{N}])(?=\\\\s*\\\\{(?!\\\\s*[_\\\\p{L}][._\\\\p{L}\\\\p{N}\\\\p{M}]*\\\\s*:))|(?=\\\\?\\\\?)\",\"name\":\"meta.type.cast-target.cadence\",\"patterns\":[{\"begin\":\"\\\\{(?=\\\\s*[_\\\\p{L}][._\\\\p{L}\\\\p{N}\\\\p{M}]*\\\\s*:)\",\"beginCaptures\":{\"0\":{\"name\":\"punctuation.definition.type.dictionary.begin.cadence\"}},\"end\":\"(})\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.type.dictionary.end.cadence\"}},\"name\":\"meta.type.dictionary.cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#type\"},{\"match\":\":\",\"name\":\"punctuation.separator.type.dictionary.cadence\"},{\"match\":\",\",\"name\":\"punctuation.separator.type.dictionary.cadence\"}]},{\"include\":\"#type\"}]},{\"match\":\"-\",\"name\":\"keyword.operator.arithmetic.unary.cadence\"},{\"match\":\"(?<=\\\\))!\",\"name\":\"keyword.operator.force-unwrap.cadence\"},{\"match\":\"!\",\"name\":\"keyword.operator.logical.not.cadence\"},{\"match\":\"=\",\"name\":\"keyword.operator.assignment.cadence\"},{\"match\":\"<-\",\"name\":\"keyword.operator.move.cadence\"},{\"match\":\"<-!\",\"name\":\"keyword.operator.force-move.cadence\"},{\"match\":\"[-*+/]\",\"name\":\"keyword.operator.arithmetic.cadence\"},{\"match\":\"%\",\"name\":\"keyword.operator.arithmetic.remainder.cadence\"},{\"match\":\">>\",\"name\":\"keyword.operator.bitwise.shift.cadence\"},{\"match\":\"<<\",\"name\":\"keyword.operator.bitwise.shift.cadence\"},{\"match\":\"==|!=|[<>]|>=|<=\",\"name\":\"keyword.operator.comparison.cadence\"},{\"match\":\"\\\\?\\\\?\",\"name\":\"keyword.operator.coalescing.cadence\"},{\"match\":\"&&|\\\\|\\\\|\",\"name\":\"keyword.operator.logical.cadence\"},{\"match\":\"[!?]\",\"name\":\"keyword.operator.type.optional.cadence\"}]},\"parameter-clause\":{\"begin\":\"(\\\\()\",\"beginCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.begin.cadence\"}},\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.cadence\"}},\"name\":\"meta.parameter-clause.cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"include\":\"#parameter-list\"}]},\"parameter-list\":{\"patterns\":[{\"include\":\"#comments\"},{\"captures\":{\"1\":{\"name\":\"keyword.operator.unnamed-parameter.cadence\"},\"2\":{\"name\":\"variable.parameter.cadence\"}},\"match\":\"(_)\\\\s+([_\\\\p{L}][_\\\\p{L}\\\\p{N}\\\\p{M}]*)(?=\\\\s*:)\"},{\"captures\":{\"1\":{\"name\":\"entity.name.label.cadence\"},\"2\":{\"name\":\"variable.parameter.cadence\"}},\"match\":\"([_\\\\p{L}][_\\\\p{L}\\\\p{N}\\\\p{M}]*)\\\\s+([_\\\\p{L}][_\\\\p{L}\\\\p{N}\\\\p{M}]*)(?=\\\\s*:)\"},{\"captures\":{\"1\":{\"name\":\"variable.parameter.cadence\"}},\"match\":\"([_\\\\p{L}][_\\\\p{L}\\\\p{N}\\\\p{M}]*)(?=\\\\s*:)\"},{\"begin\":\":\\\\s*(?!\\\\s)\",\"end\":\"(?=[),])\",\"patterns\":[{\"include\":\"#type\"},{\"match\":\":\",\"name\":\"invalid.illegal.extra-colon-in-parameter-list.cadence\"}]}]},\"path-literals\":{\"patterns\":[{\"captures\":{\"1\":{\"name\":\"punctuation.separator.path.cadence\"},\"2\":{\"name\":\"constant.other.path.cadence\"}},\"match\":\"(/)((storage|public)(/[_\\\\p{L}][_\\\\p{L}\\\\p{N}\\\\p{M}]*)?)\"}]},\"pre-post\":{\"begin\":\"(?}]|$)\",\"name\":\"meta.type.function.cadence\",\"patterns\":[{\"include\":\"#comments\"},{\"begin\":\"\\\\G\",\"end\":\"(\\\\))\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.parameters.end.cadence\"}},\"patterns\":[{\"include\":\"#type\"},{\"match\":\",\",\"name\":\"punctuation.separator.parameter.cadence\"}]},{\"begin\":\"(:)\",\"beginCaptures\":{\"1\":{\"name\":\"keyword.operator.function-result.cadence\"}},\"end\":\"(?=[]),>}]|$)\",\"name\":\"meta.function-result.cadence\",\"patterns\":[{\"include\":\"#type\"}]}]},{\"include\":\"#comments\"},{\"begin\":\"(?)\",\"endCaptures\":{\"1\":{\"name\":\"punctuation.definition.type-arguments.end.cadence\"}},\"name\":\"meta.type.arguments.cadence\",\"patterns\":[{\"include\":\"#type\"},{\"match\":\",\",\"name\":\"punctuation.separator.type-argument.cadence\"}]},{\"begin\":\"(?