{"version":3,"file":"shared-lib.CZI8HZRY.mjs","names":["containerStyles","emptyStateStyle","useRef","useMemo","useMemo","useMemo","Icon","Component","useMemo","lowercaseIconKeyPairs","iconKeys","name","defaultEvents","useRef","useState","HouseFactory","React","defaultEvents","fonts","css","className","fonts","css","className","fonts","css","className","fonts","css","className","addPropertyOverrides","overrides","PhosphorFonts","Phosphor","enabledGestures","cycleOrder","serializationHash","variantClassNames","transition1","Transition","config","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","className","css","serializationHash","variantClassNames","transition1","Transition","config","Variants","getProps","createLayoutDependency","Component","useRef","className","Image","css","useRef","useCallback","animate","i","p","t","x","_a","global","flatten","prng","seed","j","s","browser","C","window","id","percent","animationData","addFonts","index","name","heading","values","modifiers","renderer","config","properties","loadAnimation","searchAnimations","standalone","Math","document","content","wiggle","propertyName","len","TextExpressionSelectorPropFactory","pair","variable","useRef","useCallback","lottie","addPropertyOverrides","overrides","cycleOrder","serializationHash","variantClassNames","transition1","transition2","Transition","config","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","className","css","addPropertyOverrides","overrides","FooterStatusDot","enabledGestures","serializationHash","variantClassNames","transition1","Transition","config","Variants","getProps","createLayoutDependency","Component","useRef","className","css","addPropertyOverrides","overrides","ComponentsLogo","FooterStatus","FooterSocialIcons","cycleOrder","serializationHash","variantClassNames","transition1","Transition","config","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","className","css","css","addPropertyOverrides","overrides","PhosphorFonts","Phosphor","cycleOrder","serializationHash","variantClassNames","transition1","Transition","config","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","className","css","addPropertyOverrides","overrides","Phosphor","cycleOrder","serializationHash","variantClassNames","transition1","Transition","config","Variants","humanReadableVariantMap","getProps","createLayoutDependency","Component","useRef","className","css","overrides","ComponentsPill","ComponentsButton","config","useRef","className","Image","css","i","code","values","sameArray","p","content","_a","asArray","config","defaults","string","top","number","doc","process","x","id","base","scrollIntoView","name","Range","name","x","i","code","insert","flatten","_a","content","extend","StyleModule","inputHandler","meta","re","config","number","C","COUNT","SET","top","id","StyleSet","adoptedSet","p","values","t","baseTheme$1","cache","cx","_a","p","i","nodeSet","types","id","base","pair","nodeStart","config","parser","name","cache","string","FragmentCursor","x","i","base","config","hasChild","values","i","cx","base","closing","space","decorations","config","bracket","string","inside","readToken","name","id","doc","parser","baseTheme","p","self","Parse","i","bracket","doc","content","p","name","android","insert","i","cx","p","_a","parser","base","top","nodeSet","insert","x","config","t","prec","values","name","identifier","space","dash","inside","i","spec_identifier","parser","name","_a","callee","doc","tags","identifier","name","i","slash","id","selfClosers","cx","parser","id","top","name","doc","config","autoCloseTags","elementName","cx","_a","base","insert","doc","name","i","_a","base","config","insert"],"sources":["https:/framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js","https:/framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js","https:/framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js","https:/framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js","https:/framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js","https:/framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js","https:/framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js","https:/framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js","https:/framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js","https:/framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js","https:/framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js","https:/framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js","https:/framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js","https:/framer.com/m/framer/default-utils.js@^0.45.0","https:/framer.com/m/framer/icon-nullstate.js@0.7.0","https:/framer.com/m/phosphor-icons/House.js@0.0.57","https:/framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js","https:/framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js","https:/framerusercontent.com/modules/ohxk4CIXXBkCsUGrDmX9/03Tvsm0MrDVwhKQZK7M7/axzkMpbz5.js","https:/framerusercontent.com/modules/v7NpqVyxeykrJShWuVeO/zXB3kn22shD3reEE7Fu0/kvG2C7HO0.js","https:/framerusercontent.com/modules/qf7Efrk1sFw795znLwO1/l7Tv8x8d1Pukovudshdt/mPoioPFj1.js","https:/framerusercontent.com/modules/yC0W59RJbGwLcisAP4Xw/QdQYnyru966NFiEv1qLU/wdUj53pii.js","https:/framerusercontent.com/modules/gqHy16EU1ucuADmbQScv/sDxtGj38dcrtRf7sxyDG/asWliGJ80.js","https:/framerusercontent.com/modules/c1vd63eDecX8LMNEnsml/adMukw7ccEpe1ot1PwZl/i7vrt9GEl.js","https:/framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js","https:/framer.com/m/framer/useAutoMotionValue.js@0.3.0","https:/jspm.dev/npm:lottie-web@5.7.8!cjs","https:/jspm.dev/lottie-web@5.7.8","https:/framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/RLfsHd78NBd0kbafA9hd/Lottie.js","https:/framerusercontent.com/modules/1du8qrcGsY5vKk3aqwl9/I623mFkQQYp6ffahIvHE/ZwuHxfYFO.js","https:/framerusercontent.com/modules/9elDL2TTESDPewcVFeLh/QfhVekHvY8LAMKyUNc6Y/q8ATc0hlv.js","https:/framerusercontent.com/modules/8YnNSbVHfiNONdmEPZ8v/g6LcmYZ8OlfVOrHHOJYr/AZ5eR20vR.js","https:/framerusercontent.com/modules/vYt0MyyjICyOeOFOF1Lv/Im3hytJ3qNx7PuNrfrwd/no4VIAehA.js","https:/framerusercontent.com/modules/7UEpr0otOUeCt8x6GTpg/zKEV4rrbAsiNLtjhoHum/sY7_Xl9zB.js","https:/framerusercontent.com/modules/eoR2N1bJ1dA0RLU2PyWZ/UoIJOnZCj0vP9LSkpxR4/RkwtNtYC9.js","https:/framerusercontent.com/modules/obKeAo1NLyFvZApb0VHG/wKdKJXVA9UCr1LtLkKyD/SIS8HZtvZ.js","https:/framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/772bfdCR3vXAPJJXnNsc/codemirror_state.js","https:/framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/QTymt9nRixOIrUSZrfIJ/codemirror_view.js","https:/framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/ye873rtFsAyZVFu9x2He/lezer_common.js","https:/framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/seDszB8oQDQQyH7PIqkK/lezer_highlight.js","https:/framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/O6D7zESNv8FU9mcfHZ5S/codemirror_language.js","https:/framerusercontent.com/modules/iHAg5NNDzB38uLRZmObL/Tp4ybLDPsW6vDjKld7g7/codemirror_autocomplete.js","https:/framerusercontent.com/modules/MiFWyNBz6FaRwOOEYJ4H/nqI70oaHl4AhH5rIUMv4/lezer_lr.js","https:/framerusercontent.com/modules/baxvQBtmpZ5GFXZ1GP2Q/H0MWM2nOs0wKqaypim0h/lezer_css.js","https:/framerusercontent.com/modules/Gg5hLFaRxQ2EaXSWb101/NVSL3b7ItCp8LKQ0X8xX/codemirror_lang_css.js","https:/framerusercontent.com/modules/GrkjcC7Ol5LkBvrp44De/6z7UMqAq3iGnlCYUf9GL/lezer_html.js","https:/framerusercontent.com/modules/2B1yVjX9TEUbuHzHLnih/slPptusM3aarmySLiAK2/lezer_javascript.js","https:/framerusercontent.com/modules/YrJiUSsP9WZPvnJAGTTV/lsyxtesB0g1ydwxUh1t0/codemirror_lang_javascript.js","https:/framerusercontent.com/modules/ju8TqAduufCaScL3E39X/Hdr5EfbJpb0U6GIV3I5O/codemirror_lang_html.js"],"sourcesContent":["import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n    position: \"relative\",\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(136, 85, 255, 0.3)\",\n    color: \"#85F\",\n    border: \"1px dashed #85F\",\n    flexDirection: \"column\"\n};\nexport const defaultEvents = {\n    onClick: {\n        type: ControlType.EventHandler\n    },\n    onMouseEnter: {\n        type: ControlType.EventHandler\n    },\n    onMouseLeave: {\n        type: ControlType.EventHandler\n    }\n};\nexport const fontSizeOptions = {\n    type: ControlType.Number,\n    title: \"Font Size\",\n    min: 2,\n    max: 200,\n    step: 1,\n    displayStepper: true\n};\nexport const fontControls = {\n    font: {\n        type: ControlType.Boolean,\n        title: \"Font\",\n        defaultValue: false,\n        disabledTitle: \"Default\",\n        enabledTitle: \"Custom\"\n    },\n    fontFamily: {\n        type: ControlType.String,\n        title: \"Family\",\n        placeholder: \"Inter\",\n        hidden: ({ font  })=>!font\n    },\n    fontWeight: {\n        type: ControlType.Enum,\n        title: \"Weight\",\n        options: [\n            100,\n            200,\n            300,\n            400,\n            500,\n            600,\n            700,\n            800,\n            900\n        ],\n        optionTitles: [\n            \"Thin\",\n            \"Extra-light\",\n            \"Light\",\n            \"Regular\",\n            \"Medium\",\n            \"Semi-bold\",\n            \"Bold\",\n            \"Extra-bold\",\n            \"Black\", \n        ],\n        hidden: ({ font  })=>!font\n    }\n};\n// @TODO check if we're missing anything here — there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n    af: \"Afrikaans\",\n    sq: \"Albanian\",\n    an: \"Aragonese\",\n    ar: \"Arabic (Standard)\",\n    \"ar-dz\": \"Arabic (Algeria)\",\n    \"ar-bh\": \"Arabic (Bahrain)\",\n    \"ar-eg\": \"Arabic (Egypt)\",\n    \"ar-iq\": \"Arabic (Iraq)\",\n    \"ar-jo\": \"Arabic (Jordan)\",\n    \"ar-kw\": \"Arabic (Kuwait)\",\n    \"ar-lb\": \"Arabic (Lebanon)\",\n    \"ar-ly\": \"Arabic (Libya)\",\n    \"ar-ma\": \"Arabic (Morocco)\",\n    \"ar-om\": \"Arabic (Oman)\",\n    \"ar-qa\": \"Arabic (Qatar)\",\n    \"ar-sa\": \"Arabic (Saudi Arabia)\",\n    \"ar-sy\": \"Arabic (Syria)\",\n    \"ar-tn\": \"Arabic (Tunisia)\",\n    \"ar-ae\": \"Arabic (U.A.E.)\",\n    \"ar-ye\": \"Arabic (Yemen)\",\n    hy: \"Armenian\",\n    as: \"Assamese\",\n    ast: \"Asturian\",\n    az: \"Azerbaijani\",\n    eu: \"Basque\",\n    bg: \"Bulgarian\",\n    be: \"Belarusian\",\n    bn: \"Bengali\",\n    bs: \"Bosnian\",\n    br: \"Breton\",\n    my: \"Burmese\",\n    ca: \"Catalan\",\n    ch: \"Chamorro\",\n    ce: \"Chechen\",\n    zh: \"Chinese\",\n    \"zh-hk\": \"Chinese (Hong Kong)\",\n    \"zh-cn\": \"Chinese (PRC)\",\n    \"zh-sg\": \"Chinese (Singapore)\",\n    \"zh-tw\": \"Chinese (Taiwan)\",\n    cv: \"Chuvash\",\n    co: \"Corsican\",\n    cr: \"Cree\",\n    hr: \"Croatian\",\n    cs: \"Czech\",\n    da: \"Danish\",\n    nl: \"Dutch (Standard)\",\n    \"nl-be\": \"Dutch (Belgian)\",\n    en: \"English\",\n    \"en-au\": \"English (Australia)\",\n    \"en-bz\": \"English (Belize)\",\n    \"en-ca\": \"English (Canada)\",\n    \"en-ie\": \"English (Ireland)\",\n    \"en-jm\": \"English (Jamaica)\",\n    \"en-nz\": \"English (New Zealand)\",\n    \"en-ph\": \"English (Philippines)\",\n    \"en-za\": \"English (South Africa)\",\n    \"en-tt\": \"English (Trinidad & Tobago)\",\n    \"en-gb\": \"English (United Kingdom)\",\n    \"en-us\": \"English (United States)\",\n    \"en-zw\": \"English (Zimbabwe)\",\n    eo: \"Esperanto\",\n    et: \"Estonian\",\n    fo: \"Faeroese\",\n    fa: \"Farsi\",\n    fj: \"Fijian\",\n    fi: \"Finnish\",\n    fr: \"French (Standard)\",\n    \"fr-be\": \"French (Belgium)\",\n    \"fr-ca\": \"French (Canada)\",\n    \"fr-fr\": \"French (France)\",\n    \"fr-lu\": \"French (Luxembourg)\",\n    \"fr-mc\": \"French (Monaco)\",\n    \"fr-ch\": \"French (Switzerland)\",\n    fy: \"Frisian\",\n    fur: \"Friulian\",\n    gd: \"Gaelic (Scots)\",\n    \"gd-ie\": \"Gaelic (Irish)\",\n    gl: \"Galacian\",\n    ka: \"Georgian\",\n    de: \"German (Standard)\",\n    \"de-at\": \"German (Austria)\",\n    \"de-de\": \"German (Germany)\",\n    \"de-li\": \"German (Liechtenstein)\",\n    \"de-lu\": \"German (Luxembourg)\",\n    \"de-ch\": \"German (Switzerland)\",\n    el: \"Greek\",\n    gu: \"Gujurati\",\n    ht: \"Haitian\",\n    he: \"Hebrew\",\n    hi: \"Hindi\",\n    hu: \"Hungarian\",\n    is: \"Icelandic\",\n    id: \"Indonesian\",\n    iu: \"Inuktitut\",\n    ga: \"Irish\",\n    it: \"Italian (Standard)\",\n    \"it-ch\": \"Italian (Switzerland)\",\n    ja: \"Japanese\",\n    kn: \"Kannada\",\n    ks: \"Kashmiri\",\n    kk: \"Kazakh\",\n    km: \"Khmer\",\n    ky: \"Kirghiz\",\n    tlh: \"Klingon\",\n    ko: \"Korean\",\n    \"ko-kp\": \"Korean (North Korea)\",\n    \"ko-kr\": \"Korean (South Korea)\",\n    la: \"Latin\",\n    lv: \"Latvian\",\n    lt: \"Lithuanian\",\n    lb: \"Luxembourgish\",\n    mk: \"FYRO Macedonian\",\n    ms: \"Malay\",\n    ml: \"Malayalam\",\n    mt: \"Maltese\",\n    mi: \"Maori\",\n    mr: \"Marathi\",\n    mo: \"Moldavian\",\n    nv: \"Navajo\",\n    ng: \"Ndonga\",\n    ne: \"Nepali\",\n    no: \"Norwegian\",\n    nb: \"Norwegian (Bokmal)\",\n    nn: \"Norwegian (Nynorsk)\",\n    oc: \"Occitan\",\n    or: \"Oriya\",\n    om: \"Oromo\",\n    \"fa-ir\": \"Persian/Iran\",\n    pl: \"Polish\",\n    pt: \"Portuguese\",\n    \"pt-br\": \"Portuguese (Brazil)\",\n    pa: \"Punjabi\",\n    \"pa-in\": \"Punjabi (India)\",\n    \"pa-pk\": \"Punjabi (Pakistan)\",\n    qu: \"Quechua\",\n    rm: \"Rhaeto-Romanic\",\n    ro: \"Romanian\",\n    \"ro-mo\": \"Romanian (Moldavia)\",\n    ru: \"Russian\",\n    \"ru-mo\": \"Russian (Moldavia)\",\n    sz: \"Sami (Lappish)\",\n    sg: \"Sango\",\n    sa: \"Sanskrit\",\n    sc: \"Sardinian\",\n    sd: \"Sindhi\",\n    si: \"Singhalese\",\n    sr: \"Serbian\",\n    sk: \"Slovak\",\n    sl: \"Slovenian\",\n    so: \"Somani\",\n    sb: \"Sorbian\",\n    es: \"Spanish\",\n    \"es-ar\": \"Spanish (Argentina)\",\n    \"es-bo\": \"Spanish (Bolivia)\",\n    \"es-cl\": \"Spanish (Chile)\",\n    \"es-co\": \"Spanish (Colombia)\",\n    \"es-cr\": \"Spanish (Costa Rica)\",\n    \"es-do\": \"Spanish (Dominican Republic)\",\n    \"es-ec\": \"Spanish (Ecuador)\",\n    \"es-sv\": \"Spanish (El Salvador)\",\n    \"es-gt\": \"Spanish (Guatemala)\",\n    \"es-hn\": \"Spanish (Honduras)\",\n    \"es-mx\": \"Spanish (Mexico)\",\n    \"es-ni\": \"Spanish (Nicaragua)\",\n    \"es-pa\": \"Spanish (Panama)\",\n    \"es-py\": \"Spanish (Paraguay)\",\n    \"es-pe\": \"Spanish (Peru)\",\n    \"es-pr\": \"Spanish (Puerto Rico)\",\n    \"es-es\": \"Spanish (Spain)\",\n    \"es-uy\": \"Spanish (Uruguay)\",\n    \"es-ve\": \"Spanish (Venezuela)\",\n    sx: \"Sutu\",\n    sw: \"Swahili\",\n    sv: \"Swedish\",\n    \"sv-fi\": \"Swedish (Finland)\",\n    \"sv-sv\": \"Swedish (Sweden)\",\n    ta: \"Tamil\",\n    tt: \"Tatar\",\n    te: \"Teluga\",\n    th: \"Thai\",\n    tig: \"Tigre\",\n    ts: \"Tsonga\",\n    tn: \"Tswana\",\n    tr: \"Turkish\",\n    tk: \"Turkmen\",\n    uk: \"Ukrainian\",\n    hsb: \"Upper Sorbian\",\n    ur: \"Urdu\",\n    ve: \"Venda\",\n    vi: \"Vietnamese\",\n    vo: \"Volapuk\",\n    wa: \"Walloon\",\n    cy: \"Welsh\",\n    xh: \"Xhosa\",\n    ji: \"Yiddish\",\n    zu: \"Zulu\"\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./constants.map","import { useIsInCurrentNavigationTarget } from \"framer\";\nimport { useEffect } from \"react\";\nexport function useOnEnter(onEnter, enabled) {\n    return useOnSpecificTargetChange(true, onEnter, enabled);\n}\nexport function useOnExit(onExit, enabled) {\n    return useOnSpecificTargetChange(false, onExit, enabled);\n}\nfunction useOnSpecificTargetChange(goal, callback, enabled = true) {\n    const isInTarget = useIsInCurrentNavigationTarget();\n    useEffect(()=>{\n        if (enabled && isInTarget === goal) callback();\n    }, [\n        isInTarget\n    ]);\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useOnEnter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnNavigationTargetChange.map","import { useRef } from \"react\";\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */ export function useConstant(init) {\n    const ref = useRef(null);\n    if (ref.current === null) {\n        ref.current = init();\n    }\n    return ref.current;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useConstant.map","import { Color } from \"framer\";\nexport function colorFromToken(color) {\n    if (color.startsWith(\"var(--token-\")) return \"rgb\" + color.split(\") /*\")[0].split(\", rgb\")[1];\n    return color;\n}\nexport function colorTokentoValue(color) {\n    return Color(colorFromToken(color)).toValue();\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"colorFromToken\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./colorFromToken.map","import { MotionValue } from \"framer\";\nexport const isMotionValue = (v)=>v instanceof MotionValue\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isMotionValue.map","import * as React from \"react\";\nconst letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\nconst l = ()=>letters[Math.floor(Math.random() * letters.length)]\n;\nexport const randomID = ()=>l() + l() + l() + l() + l() + l() + l() + l() + l()\n;\nfunction createUniqueClass(suffix) {\n    return `framer-${suffix}-${randomID()}`;\n}\nexport function useUniqueClassName(suffix, deps) {\n    const [className, setClassName] = React.useState(createUniqueClass(suffix));\n    React.useEffect(()=>{\n        setClassName(createUniqueClass(suffix));\n    }, [\n        suffix,\n        ...deps\n    ]);\n    return className;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useUniqueClassName\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useUniqueClassName.map","import { ControlType } from \"framer\";\n// I realize this only applies to select right now\n// but we can work on it in here\nexport function getVariantControls(Component, variant, additionalControls = {\n}) {\n    return {\n        [`${variant}TextColor`]: {\n            type: ControlType.Color,\n            title: \"Text Color\",\n            defaultValue: Component.defaultProps[`${variant}TextColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}IconColor`]: {\n            type: ControlType.Color,\n            title: \"Icon Color\",\n            defaultValue: Component.defaultProps[`${variant}IconColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BackgroundColor`]: {\n            type: ControlType.Color,\n            title: \"Bg Color\",\n            defaultValue: Component.defaultProps[`${variant}BackgroundColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderColor`]: {\n            type: ControlType.Color,\n            title: \"Border Color\",\n            defaultValue: Component.defaultProps[`${variant}BorderColor`],\n            hidden: (props)=>props.variant !== variant\n        },\n        [`${variant}BorderWidth`]: {\n            type: ControlType.Number,\n            title: \" \",\n            min: 0,\n            max: 5,\n            displayStepper: true,\n            defaultValue: Component.defaultProps[`${variant}BorderWidth`],\n            hidden: (props)=>props.variant !== variant\n        },\n        ...additionalControls\n    };\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"getVariantControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./variantUtils.map","import { useMemo } from \"react\";\nexport const isBrowserSafari = ()=>{\n    if (typeof navigator !== `undefined`) {\n        const userAgent = navigator.userAgent.toLowerCase();\n        const isSafari = (userAgent.indexOf(\"safari\") > -1 || userAgent.indexOf(\"framermobile\") > -1 || userAgent.indexOf(\"framerx\") > -1) && userAgent.indexOf(\"chrome\") < 0;\n        return isSafari;\n    } else return false;\n};\nexport const useIsBrowserSafari = ()=>useMemo(()=>isBrowserSafari()\n    , [])\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./isBrowser.map","import { useEffect } from \"react\";\n//@ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\nexport function useOnChange(value, callback) {\n    useEffect(()=>// @ts-ignore this should be detected as a MV :shrug:\n        isMotionValue(value) ? value.onChange(callback) : undefined\n    );\n}\nexport function useMultiOnChange(values, handler) {\n    useEffect(()=>{\n        const subscriptions = values.map((value)=>value.onChange(handler)\n        );\n        return ()=>subscriptions.forEach((unsubscribe)=>unsubscribe()\n            )\n        ;\n    });\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"Subscriber\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useOnChange.map","import { useCallback, useEffect, useRef } from \"react\";\nimport { motionValue, animate, RenderTarget } from \"framer\";\n// @ts-ignore\nimport { isMotionValue } from \"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";\n// @ts-ignore\nimport { useConstant } from \"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";\nexport function useAutoMotionValue(inputValue, options) {\n    var ref;\n    // Put options on a local ref\n    // Might wanna just memo instead but it works for now\n    const optionsRef = useRef(options);\n    const animation = useRef();\n    const didInitialMount = useRef(false);\n    const isOnCanvas = RenderTarget.current() === RenderTarget.canvas;\n    // in-progress - trying to figure out effect hooks\n    const onChangeDeps = (options === null || options === void 0 ? void 0 : options.onChangeDeps) ? options.onChangeDeps : [];\n    // Memoize the onChange handler\n    const onChange = useCallback(options === null || options === void 0 ? void 0 : options.onChange, [\n        ...onChangeDeps, \n    ]);\n    // Optionally scale the value from props\n    const transformer = useCallback((value)=>((ref = optionsRef.current) === null || ref === void 0 ? void 0 : ref.transform) ? optionsRef.current.transform(value) : value\n    , []);\n    // Create new MotionValue from inputValue\n    const value = useConstant(()=>isMotionValue(inputValue) ? inputValue : motionValue(transformer(inputValue))\n    );\n    // Setting value from prop change\n    useEffect(()=>{\n        if (!isMotionValue(inputValue) && didInitialMount.current) {\n            var ref1, ref2;\n            const newValue = transformer(inputValue);\n            (ref1 = animation.current) === null || ref1 === void 0 ? void 0 : ref1.stop();\n            // Call change callback\n            if (onChange) onChange(newValue, value);\n            // Trigger animation to new value\n            if (((ref2 = optionsRef.current) === null || ref2 === void 0 ? void 0 : ref2.animate) && !isOnCanvas) {\n                var ref3;\n                // @ts-ignore\n                animation.current = animate(value, newValue, (ref3 = optionsRef.current) === null || ref3 === void 0 ? void 0 : ref3.transition);\n            } else {\n                value.set(newValue);\n            }\n        }\n        didInitialMount.current = true;\n    }, [\n        inputValue,\n        ...onChangeDeps\n    ]);\n    return value;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","// @ts-ignore\nimport{fontStore}from\"framer\";import{useEffect}from\"react\";import{fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";const fontWeights={100:\"Thin\",200:\"Extra-light\",300:\"Light\",400:\"Regular\",500:\"Medium\",600:\"Semi-bold\",700:\"Bold\",800:\"Extra-bold\",900:\"Black\"};export function useFontControls(props){const{fontFamily=\"Inter\",fontSize=16,fontWeight=400,font=false}=props;const fontWeightName=fontWeights[fontWeight];const customFontStack=`\"${fontFamily} ${fontWeightName}\", \"${fontFamily}\", ${fontStack}`;const fontFamilyStyle=fontFamily?{fontSize,fontWeight,fontFamily:customFontStack}:{fontSize,fontWeight};const fetchCustomFonts=async()=>{await fontStore.loadWebFontsFromSelectors([`CUSTOM;${fontFamily}`,`CUSTOM;${fontFamily} ${fontWeightName}`,`GF;${fontFamily}-${fontWeightName.toLowerCase()}`,]).catch(e=>console.error(e));};useEffect(()=>{if(font)fetchCustomFonts();},[font,fontFamily,fontWeight]);return fontFamilyStyle;}\nexport const __FramerMetadata__ = {\"exports\":{\"useFontControls\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useFontControls.map","import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n    const currentRenderTarget = useMemo(()=>RenderTarget.current()\n    , []);\n    return currentRenderTarget;\n}\nexport function useIsInPreview() {\n    const inPreview = useMemo(()=>RenderTarget.current() === RenderTarget.preview\n    , []);\n    return inPreview;\n}\nexport function useIsOnCanvas() {\n    const onCanvas = useMemo(()=>RenderTarget.current() === RenderTarget.canvas\n    , []);\n    return onCanvas;\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useIsInPreview\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useRenderTarget.map","import * as React from \"react\";\nexport function useControlledState(value) {\n    const [controlledValue, setValue] = React.useState(value);\n    React.useEffect(()=>{\n        setValue(value);\n    }, [\n        value\n    ]);\n    return [\n        controlledValue,\n        setValue\n    ];\n}\n\nexport const __FramerMetadata__ = {\"exports\":{\"useControlledState\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./useControlledState.map","import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n    const { borderRadius , isMixedBorderRadius , topLeftRadius , topRightRadius , bottomRightRadius , bottomLeftRadius ,  } = props;\n    const radiusValue = useMemo(()=>isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`\n    , [\n        borderRadius,\n        isMixedBorderRadius,\n        topLeftRadius,\n        topRightRadius,\n        bottomRightRadius,\n        bottomLeftRadius, \n    ]);\n    return radiusValue;\n}\nexport const borderRadiusControl = {\n    borderRadius: {\n        title: \"Radius\",\n        type: ControlType.FusedNumber,\n        toggleKey: \"isMixedBorderRadius\",\n        toggleTitles: [\n            \"Radius\",\n            \"Radius per corner\"\n        ],\n        valueKeys: [\n            \"topLeftRadius\",\n            \"topRightRadius\",\n            \"bottomRightRadius\",\n            \"bottomLeftRadius\", \n        ],\n        valueLabels: [\n            \"TL\",\n            \"TR\",\n            \"BR\",\n            \"BL\"\n        ],\n        min: 0\n    }\n};\nexport function usePadding(props) {\n    const { padding , paddingPerSide , paddingTop , paddingRight , paddingBottom , paddingLeft ,  } = props;\n    const paddingValue = useMemo(()=>paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding\n    , [\n        padding,\n        paddingPerSide,\n        paddingTop,\n        paddingRight,\n        paddingBottom,\n        paddingLeft, \n    ]);\n    return paddingValue;\n}\nexport const paddingControl = {\n    padding: {\n        type: ControlType.FusedNumber,\n        toggleKey: \"paddingPerSide\",\n        toggleTitles: [\n            \"Padding\",\n            \"Padding per side\"\n        ],\n        valueKeys: [\n            \"paddingTop\",\n            \"paddingRight\",\n            \"paddingBottom\",\n            \"paddingLeft\", \n        ],\n        valueLabels: [\n            \"T\",\n            \"R\",\n            \"B\",\n            \"L\"\n        ],\n        min: 0,\n        title: \"Padding\"\n    }\n};\n\nexport const __FramerMetadata__ = {\"exports\":{\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RadiusProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"PaddingProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./propUtils.map","import{defaultEvents,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack}from\"https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js\";import{useOnEnter,useOnExit}from\"https://framerusercontent.com/modules/D4TWeLfcxT6Tysr2BlYg/iZjmqdxVx1EOiM3k1FaW/useOnNavigationTargetChange.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";import{colorTokentoValue,colorFromToken}from\"https://framerusercontent.com/modules/D2Lz5CmnNVPZFFiZXalt/QaCzPbriZBfXWZIIycFI/colorFromToken.js\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/5fbRLvOpxZC0JOXugvwm/isMotionValue.js\";import{useUniqueClassName,randomID}from\"https://framerusercontent.com/modules/xDiQsqBGXzmMsv7AlEVy/uhunpMiNsbXxzjlXsg1y/useUniqueClassName.js\";import{getVariantControls}from\"https://framerusercontent.com/modules/ETACN5BJyFTSo0VVDJfu/NHRqowOiXkF9UwOzczF7/variantUtils.js\";import{useIsBrowserSafari}from\"https://framerusercontent.com/modules/eMBrwoqQK7h6mEeGQUH8/GuplvPJVjmxpk9zqOTcb/isBrowser.js\";import{useMultiOnChange,useOnChange}from\"https://framerusercontent.com/modules/v9AWX2URmiYsHf7GbctE/XxKAZ9KlhWqf5x1JMyyF/useOnChange.js\";import{mstoMinAndSec,secondsToMinutes}from\"https://framerusercontent.com/modules/4zHZnO5JojN1PrIbu2jm/revv9QCWpkh8lPzi2jje/time.js\";import{useAutoMotionValue}from\"https://framerusercontent.com/modules/kNDwabfjDEb3vUxkQlZS/fSIr3AOAYbGlfSPgXpYu/useAutoMotionValue.js\";import{useFontControls}from\"https://framerusercontent.com/modules/cuQH4dmpDnV8YK1mSgQX/KqRXqunFjE6ufhpc7ZRu/useFontControls.js\";import{useRenderTarget,useIsInPreview,useIsOnCanvas}from\"https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js\";import{useControlledState}from\"https://framerusercontent.com/modules/zGkoP8tPDCkoBzMdt5uq/0zFSjxIYliHxrQQnryFX/useControlledState.js\";import{usePadding,useRadius,paddingControl,borderRadiusControl}from\"https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js\";import{detectAutoSizingAxis}from\"https://framerusercontent.com/modules/8CkHAZatUz1UR8jNTcfD/HwbnIAZlUmQ2oTpcLkaH/detectAutoSizingAxis.js\";export{useOnEnter,useOnExit,defaultEvents,isMotionValue,colorFromToken,colorTokentoValue,localeOptions,fontControls,fontSizeOptions,emptyStateStyle,containerStyles,fontStack,useUniqueClassName,getVariantControls,useIsBrowserSafari,randomID,useConstant,useMultiOnChange,useOnChange,usePadding,useRadius,paddingControl,borderRadiusControl,mstoMinAndSec,useFontControls,secondsToMinutes,useAutoMotionValue,useRenderTarget,useIsInPreview,useControlledState,detectAutoSizingAxis,useIsOnCanvas,};\nexport const __FramerMetadata__ = {\"exports\":{\"useConstant\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUniqueClassName\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useMultiOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnChange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsOnCanvas\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnExit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontSizeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorTokentoValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRadius\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getVariantControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"colorFromToken\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"usePadding\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fontStack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useControlledState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFontControls\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useAutoMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"emptyStateStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsInPreview\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIsBrowserSafari\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"detectAutoSizingAxis\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"borderRadiusControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"mstoMinAndSec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomID\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localeOptions\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useOnEnter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"secondsToMinutes\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useRenderTarget\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"paddingControl\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nexport const containerStyles = {\n    width: \"100%\",\n    height: \"100%\",\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nconst nullIconStyle = {\n    minWidth: \"10px\",\n    minHeight: \"10px\",\n    maxWidth: \"20px\",\n    maxHeight: \"20px\",\n    width: \"60%\",\n    height: \"60%\"\n};\nconst emptyStateStyle = {\n    ...containerStyles,\n    borderRadius: 6,\n    background: \"rgba(149, 149, 149, 0.1)\",\n    border: \"1px dashed rgba(149, 149, 149, 0.15)\",\n    color: \"#a5a5a5\",\n    flexDirection: \"column\"\n};\nexport const NullState = /*#__PURE__*/ React.forwardRef((_, ref)=>{\n    return(/*#__PURE__*/ _jsx(\"div\", {\n        style: emptyStateStyle,\n        ref: ref\n    }));\n}) /*\n\n<svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                viewBox=\"0 0 30 30\"\n                style={nullIconStyle}\n            >\n                <path\n                    d=\"M 12.857 0 C 19.958 0 25.714 5.756 25.714 12.857 C 25.714 19.958 19.958 25.714 12.857 25.714 C 5.756 25.714 0 19.958 0 12.857 C 0 5.756 5.756 0 12.857 0 Z\"\n                    fill=\"#FFFFFF\"\n                ></path>\n                <path\n                    d=\"M 20.357 20.357 L 27.857 27.857\"\n                    fill=\"transparent\"\n                    strokeWidth=\"4.28\"\n                    stroke=\"#FFFFFF\"\n                    strokeLinecap=\"round\"\n                ></path>\n                <g transform=\"translate(9.643 6.429)\">\n                    <path\n                        d=\"M 3.214 12.857 L 3.214 12.857\"\n                        fill=\"transparent\"\n                        strokeWidth=\"3.75\"\n                        stroke=\"currentColor\"\n                        strokeLinecap=\"round\"\n                    ></path>\n                    <path\n                        d=\"M 0 3.214 C 0 1.004 1.843 0 3.214 0 C 4.586 0 6.429 0.603 6.429 3.214 C 6.429 5.826 3.214 5.913 3.214 7.232 C 3.214 8.552 3.214 8.571 3.214 8.571\"\n                        fill=\"transparent\"\n                        strokeWidth=\"3.22\"\n                        stroke=\"currentColor\"\n                        strokeLinecap=\"round\"\n                        strokeLinejoin=\"round\"\n                    ></path>\n                </g>\n            </svg>\n            */ ;\n\nexport const __FramerMetadata__ = {\"exports\":{\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NullState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./nullstate.map","let Component;\nlet IconInner;\nvar Icon = (React) => {\n  if (!Component) {\n    Component = /* @__PURE__ */ new Map([\n      [\n        \"bold\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M222.14,105.85l-80-80a20,20,0,0,0-28.28,0l-80,80A19.86,19.86,0,0,0,28,120v96a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V164h24v52a12,12,0,0,0,12,12h64a12,12,0,0,0,12-12V120A19.86,19.86,0,0,0,222.14,105.85ZM204,204H164V152a12,12,0,0,0-12-12H104a12,12,0,0,0-12,12v52H52V121.65l76-76,76,76Z\" }))\n      ],\n      [\n        \"duotone\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n          \"path\",\n          {\n            d: \"M216,120v96H152V152H104v64H40V120a8,8,0,0,1,2.34-5.66l80-80a8,8,0,0,1,11.32,0l80,80A8,8,0,0,1,216,120Z\",\n            opacity: \"0.2\"\n          }\n        ), /* @__PURE__ */ React.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n      ],\n      [\n        \"fill\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M224,120v96a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V164a4,4,0,0,0-4-4H108a4,4,0,0,0-4,4v52a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V120a16,16,0,0,1,4.69-11.31l80-80a16,16,0,0,1,22.62,0l80,80A16,16,0,0,1,224,120Z\" }))\n      ],\n      [\n        \"light\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M217.9,110.1l-80-80a14,14,0,0,0-19.8,0l-80,80A13.92,13.92,0,0,0,34,120v96a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V158h36v58a6,6,0,0,0,6,6h64a6,6,0,0,0,6-6V120A13.92,13.92,0,0,0,217.9,110.1ZM210,210H158V152a6,6,0,0,0-6-6H104a6,6,0,0,0-6,6v58H46V120a2,2,0,0,1,.58-1.42l80-80a2,2,0,0,1,2.84,0l80,80A2,2,0,0,1,210,120Z\" }))\n      ],\n      [\n        \"regular\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M219.31,108.68l-80-80a16,16,0,0,0-22.62,0l-80,80A15.87,15.87,0,0,0,32,120v96a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V160h32v56a8,8,0,0,0,8,8h64a8,8,0,0,0,8-8V120A15.87,15.87,0,0,0,219.31,108.68ZM208,208H160V152a8,8,0,0,0-8-8H104a8,8,0,0,0-8,8v56H48V120l80-80,80,80Z\" }))\n      ],\n      [\n        \"thin\",\n        /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M216.49,111.51l-80-80a12,12,0,0,0-17,0l-80,80A12,12,0,0,0,36,120v96a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V156h40v60a4,4,0,0,0,4,4h64a4,4,0,0,0,4-4V120A12,12,0,0,0,216.49,111.51ZM212,212H156V152a4,4,0,0,0-4-4H104a4,4,0,0,0-4,4v60H44V120a4,4,0,0,1,1.17-2.83l80-80a4,4,0,0,1,5.66,0l80,80A4,4,0,0,1,212,120Z\" }))\n      ]\n    ]);\n    IconInner = React.forwardRef((props, ref) => /* @__PURE__ */ React.createElement(\"g\", { ref, ...props }, Component.get(props.weight)));\n  }\n  return IconInner;\n};\nconst __FramerMetadata__ = {\n  exports: {\n    default: {\n      type: \"reactComponent\",\n      slots: [],\n      annotations: { framerContractVersion: \"1\" }\n    },\n    __FramerMetadata__: { type: \"variable\" }\n  }\n};\nvar House_default = Icon;\nexport {\n  __FramerMetadata__,\n  House_default as default\n};\n","import{useMemo}from\"react\";import{ControlType}from\"framer\";/*\n ** ICON UTILS\n ** Pull as much re-usable logic into here as possible\n ** This will make it easier to replace in all icon components\n */ export const containerStyles={width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\"};export const defaultEvents={onClick:{type:ControlType.EventHandler},onMouseDown:{type:ControlType.EventHandler},onMouseUp:{type:ControlType.EventHandler},onMouseEnter:{type:ControlType.EventHandler},onMouseLeave:{type:ControlType.EventHandler}};const findByArray=(arr,search)=>arr.find(a=>a.toLowerCase().includes(search));export function getIconSelection(iconKeys,selectByList,iconSearch=\"\",iconSelection,lowercaseIconKeyPairs){// gotta get the exact match first THEN find\n// have a set and try to access ?\nif(selectByList)return iconSelection;if(iconSearch==null||(iconSearch===null||iconSearch===void 0?void 0:iconSearch.length)===0)return null;const iconSearchTerm=iconSearch.toLowerCase().replace(/-|\\s/g,\"\");var _iconSearchTerm;// check for exact match, otherwise use .find\nconst searchResult=(_iconSearchTerm=lowercaseIconKeyPairs[iconSearchTerm])!==null&&_iconSearchTerm!==void 0?_iconSearchTerm:findByArray(iconKeys,iconSearchTerm);return searchResult;}export function useIconSelection(iconKeys,selectByList,iconSearch=\"\",iconSelection,lowercaseIconKeyPairs){// Clean search term\nconst iconSearchResult=useMemo(()=>{if(iconSearch==null||(iconSearch===null||iconSearch===void 0?void 0:iconSearch.length)===0)return null;const iconSearchTerm=iconSearch.toLowerCase().replace(/-|\\s/g,\"\");var _iconSearchTerm;// check for exact match, otherwise use .find\nconst searchResult=(_iconSearchTerm=lowercaseIconKeyPairs[iconSearchTerm])!==null&&_iconSearchTerm!==void 0?_iconSearchTerm:findByArray(iconKeys,iconSearchTerm);return searchResult;},[iconSelection,iconSearch]);const name=selectByList?iconSelection:iconSearchResult;return name;}\nexport const __FramerMetadata__ = {\"exports\":{\"getIconSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useIconSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultEvents\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./utils.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{NullState}from\"https://framer.com/m/framer/icon-nullstate.js@0.7.0\";import HouseFactory from\"https://framer.com/m/phosphor-icons/House.js@0.0.57\";import{defaultEvents,useIconSelection}from\"https://framerusercontent.com/modules/Ma20hU0GGRxLxZphbywl/OSpwWF91FHPVFyQJjMHt/utils.js\";const iconKeys=[\"Acorn\",\"AddressBook\",\"AddressBookTabs\",\"AirTrafficControl\",\"Airplane\",\"AirplaneInFlight\",\"AirplaneLanding\",\"AirplaneTakeoff\",\"AirplaneTaxiing\",\"AirplaneTilt\",\"Airplay\",\"Alarm\",\"Alien\",\"AlignBottom\",\"AlignBottomSimple\",\"AlignCenterVertical\",\"AlignLeft\",\"AlignLeftSimple\",\"AlignRight\",\"AlignRightSimple\",\"AlignTop\",\"AlignTopSimple\",\"AmazonLogo\",\"Ambulance\",\"Anchor\",\"AnchorSimple\",\"AndroidLogo\",\"Angle\",\"AngularLogo\",\"Aperture\",\"AppStoreLogo\",\"AppWindow\",\"AppleLogo\",\"ApplePodcastsLogo\",\"ApproximateEquals\",\"Archive\",\"ArchiveBox\",\"ArchiveTray\",\"Armchair\",\"ArrowArcLeft\",\"ArrowArcRight\",\"ArrowBendDownLeft\",\"ArrowBendDownRight\",\"ArrowBendLeftDown\",\"ArrowBendLeftUp\",\"ArrowBendRightDown\",\"ArrowBendRightUp\",\"ArrowBendUpLeft\",\"ArrowBendUpRight\",\"ArrowCircleDown\",\"ArrowCircleDownLeft\",\"ArrowCircleDownRight\",\"ArrowCircleLeft\",\"ArrowCircleRight\",\"ArrowCircleUp\",\"ArrowCircleUpLeft\",\"ArrowCircleUpRight\",\"ArrowClockwise\",\"ArrowDown\",\"ArrowDownLeft\",\"ArrowDownRight\",\"ArrowElbowDownLeft\",\"ArrowElbowDownRight\",\"ArrowElbowLeft\",\"ArrowElbowLeftDown\",\"ArrowElbowLeftUp\",\"ArrowElbowRight\",\"ArrowElbowRightDown\",\"ArrowElbowRightUp\",\"ArrowElbowUpLeft\",\"ArrowElbowUpRight\",\"ArrowFatDown\",\"ArrowFatLeft\",\"ArrowFatLineDown\",\"ArrowFatLineLeft\",\"ArrowFatLineRight\",\"ArrowFatLineUp\",\"ArrowFatLinesDown\",\"ArrowFatLinesLeft\",\"ArrowFatLinesRight\",\"ArrowFatLinesUp\",\"ArrowFatRight\",\"ArrowFatUp\",\"ArrowLeft\",\"ArrowLineDown\",\"ArrowLineDownLeft\",\"ArrowLineDownRight\",\"ArrowLineLeft\",\"ArrowLineRight\",\"ArrowLineUp\",\"ArrowLineUpLeft\",\"ArrowLineUpRight\",\"ArrowRight\",\"ArrowSquareDown\",\"ArrowSquareDownLeft\",\"ArrowSquareDownRight\",\"ArrowSquareIn\",\"ArrowSquareLeft\",\"ArrowSquareOut\",\"ArrowSquareRight\",\"ArrowSquareUp\",\"ArrowSquareUpLeft\",\"ArrowSquareUpRight\",\"ArrowUDownLeft\",\"ArrowUDownRight\",\"ArrowULeftDown\",\"ArrowULeftUp\",\"ArrowURightDown\",\"ArrowURightUp\",\"ArrowUUpLeft\",\"ArrowUUpRight\",\"ArrowUp\",\"ArrowUpLeft\",\"ArrowUpRight\",\"ArrowsClockwise\",\"ArrowsDownUp\",\"ArrowsHorizontal\",\"ArrowsIn\",\"ArrowsInCardinal\",\"ArrowsInLineVertical\",\"ArrowsInSimple\",\"ArrowsLeftRight\",\"ArrowsMerge\",\"ArrowsOut\",\"ArrowsOutCardinal\",\"ArrowsOutSimple\",\"ArrowsSplit\",\"ArrowsVertical\",\"Article\",\"ArticleMedium\",\"ArticleNyTimes\",\"Asclepius\",\"Asterisk\",\"AsteriskSimple\",\"At\",\"Atom\",\"Avocado\",\"Axe\",\"Baby\",\"BabyCarriage\",\"Backpack\",\"Backspace\",\"Bag\",\"BagSimple\",\"Balloon\",\"Bandaids\",\"Bank\",\"Barbell\",\"Barcode\",\"Barn\",\"Barricade\",\"Baseball\",\"BaseballCap\",\"BaseballHelmet\",\"Basket\",\"Basketball\",\"Bathtub\",\"BatteryCharging\",\"BatteryEmpty\",\"BatteryFull\",\"BatteryHigh\",\"BatteryLow\",\"BatteryMedium\",\"BatteryPlus\",\"BatteryPlusVertical\",\"BatteryVerticalEmpty\",\"BatteryVerticalFull\",\"BatteryVerticalHigh\",\"BatteryVerticalLow\",\"BatteryWarning\",\"BeachBall\",\"Beanie\",\"Bed\",\"BeerBottle\",\"BeerStein\",\"BehanceLogo\",\"Bell\",\"BellRinging\",\"BellSimple\",\"BellSimpleRinging\",\"BellSimpleSlash\",\"BellSimpleZ\",\"BellSlash\",\"BellZ\",\"Belt\",\"BezierCurve\",\"Bicycle\",\"Binary\",\"Binoculars\",\"Biohazard\",\"Bird\",\"Blueprint\",\"Bluetooth\",\"BluetoothConnected\",\"BluetoothSlash\",\"BluetoothX\",\"Boat\",\"Bomb\",\"Bone\",\"Book\",\"BookBookmark\",\"BookOpen\",\"BookOpenText\",\"BookOpenUser\",\"BookUser\",\"Bookmark\",\"BookmarkSimple\",\"Bookmarks\",\"BookmarksSimple\",\"Books\",\"Boot\",\"Boules\",\"BoundingBox\",\"BowlFood\",\"BowlSteam\",\"BowlingBall\",\"BoxArrowDown\",\"BoxArrowUp\",\"BoxingGlove\",\"BracketsAngle\",\"BracketsCurly\",\"BracketsRound\",\"BracketsSquare\",\"Brain\",\"Brandy\",\"Bread\",\"Bridge\",\"Briefcase\",\"BriefcaseMetal\",\"Broadcast\",\"Broom\",\"Browser\",\"Browsers\",\"Bug\",\"BugBeetle\",\"BugDroid\",\"Building\",\"BuildingApartment\",\"BuildingOffice\",\"Buildings\",\"Bulldozer\",\"Bus\",\"Butterfly\",\"CableCar\",\"Cactus\",\"Cake\",\"Calculator\",\"Calendar\",\"CalendarBlank\",\"CalendarCheck\",\"CalendarDot\",\"CalendarDots\",\"CalendarHeart\",\"CalendarMinus\",\"CalendarPlus\",\"CalendarSlash\",\"CalendarStar\",\"CalendarX\",\"CallBell\",\"Camera\",\"CameraPlus\",\"CameraRotate\",\"CameraSlash\",\"Campfire\",\"Car\",\"CarBattery\",\"CarProfile\",\"CarSimple\",\"Cardholder\",\"Cards\",\"CardsThree\",\"CaretCircleDoubleUp\",\"CaretCircleDown\",\"CaretCircleLeft\",\"CaretCircleRight\",\"CaretCircleUp\",\"CaretCircleUpDown\",\"CaretDoubleDown\",\"CaretDoubleLeft\",\"CaretDoubleRight\",\"CaretDoubleUp\",\"CaretDown\",\"CaretLeft\",\"CaretLineDown\",\"CaretLineLeft\",\"CaretLineRight\",\"CaretLineUp\",\"CaretRight\",\"CaretUp\",\"CaretUpDown\",\"Carrot\",\"CashRegister\",\"CassetteTape\",\"CastleTurret\",\"Cat\",\"CellSignalFull\",\"CellSignalHigh\",\"CellSignalLow\",\"CellSignalMedium\",\"CellSignalNone\",\"CellSignalSlash\",\"CellSignalX\",\"CellTower\",\"Certificate\",\"Chair\",\"Chalkboard\",\"ChalkboardSimple\",\"ChalkboardTeacher\",\"Champagne\",\"ChargingStation\",\"ChartBar\",\"ChartBarHorizontal\",\"ChartDonut\",\"ChartLine\",\"ChartLineDown\",\"ChartLineUp\",\"ChartPie\",\"ChartPieSlice\",\"ChartPolar\",\"ChartScatter\",\"Chat\",\"ChatCentered\",\"ChatCenteredDots\",\"ChatCenteredSlash\",\"ChatCenteredText\",\"ChatCircle\",\"ChatCircleDots\",\"ChatCircleSlash\",\"ChatCircleText\",\"ChatDots\",\"ChatSlash\",\"ChatTeardrop\",\"ChatTeardropDots\",\"ChatTeardropSlash\",\"ChatTeardropText\",\"ChatText\",\"Chats\",\"ChatsCircle\",\"ChatsTeardrop\",\"Check\",\"CheckCircle\",\"CheckFat\",\"CheckSquare\",\"CheckSquareOffset\",\"Checkerboard\",\"Checks\",\"Cheers\",\"Cheese\",\"ChefHat\",\"Cherries\",\"Church\",\"Cigarette\",\"CigaretteSlash\",\"Circle\",\"CircleDashed\",\"CircleHalf\",\"CircleHalfTilt\",\"CircleNotch\",\"CirclesFour\",\"CirclesThree\",\"CirclesThreePlus\",\"Circuitry\",\"City\",\"Clipboard\",\"ClipboardText\",\"Clock\",\"ClockAfternoon\",\"ClockClockwise\",\"ClockCountdown\",\"ClockUser\",\"ClosedCaptioning\",\"Cloud\",\"CloudArrowDown\",\"CloudArrowUp\",\"CloudCheck\",\"CloudFog\",\"CloudLightning\",\"CloudMoon\",\"CloudRain\",\"CloudSlash\",\"CloudSnow\",\"CloudSun\",\"CloudWarning\",\"CloudX\",\"Clover\",\"Club\",\"CoatHanger\",\"CodaLogo\",\"Code\",\"CodeBlock\",\"CodeSimple\",\"CodepenLogo\",\"CodesandboxLogo\",\"Coffee\",\"CoffeeBean\",\"Coin\",\"CoinVertical\",\"Coins\",\"Columns\",\"ColumnsPlusLeft\",\"ColumnsPlusRight\",\"Command\",\"Compass\",\"CompassRose\",\"CompassTool\",\"ComputerTower\",\"Confetti\",\"ContactlessPayment\",\"Control\",\"Cookie\",\"CookingPot\",\"Copy\",\"CopySimple\",\"Copyleft\",\"Copyright\",\"CornersIn\",\"CornersOut\",\"Couch\",\"CourtBasketball\",\"Cow\",\"CowboyHat\",\"Cpu\",\"Crane\",\"CraneTower\",\"CreditCard\",\"Cricket\",\"Crop\",\"Cross\",\"Crosshair\",\"CrosshairSimple\",\"Crown\",\"CrownCross\",\"CrownSimple\",\"Cube\",\"CubeFocus\",\"CubeTransparent\",\"CurrencyBtc\",\"CurrencyCircleDollar\",\"CurrencyCny\",\"CurrencyDollar\",\"CurrencyDollarSimple\",\"CurrencyEth\",\"CurrencyEur\",\"CurrencyGbp\",\"CurrencyInr\",\"CurrencyJpy\",\"CurrencyKrw\",\"CurrencyKzt\",\"CurrencyNgn\",\"CurrencyRub\",\"Cursor\",\"CursorClick\",\"CursorText\",\"Cylinder\",\"Database\",\"Desk\",\"Desktop\",\"DesktopTower\",\"Detective\",\"DevToLogo\",\"DeviceMobile\",\"DeviceMobileCamera\",\"DeviceMobileSlash\",\"DeviceMobileSpeaker\",\"DeviceRotate\",\"DeviceTablet\",\"DeviceTabletCamera\",\"DeviceTabletSpeaker\",\"Devices\",\"Diamond\",\"DiamondsFour\",\"DiceFive\",\"DiceFour\",\"DiceOne\",\"DiceSix\",\"DiceThree\",\"DiceTwo\",\"Disc\",\"DiscoBall\",\"DiscordLogo\",\"Divide\",\"Dna\",\"Dog\",\"Door\",\"DoorOpen\",\"Dot\",\"DotOutline\",\"DotsNine\",\"DotsSix\",\"DotsSixVertical\",\"DotsThree\",\"DotsThreeCircle\",\"DotsThreeOutline\",\"DotsThreeVertical\",\"Download\",\"DownloadSimple\",\"Dress\",\"Dresser\",\"DribbbleLogo\",\"Drone\",\"Drop\",\"DropHalf\",\"DropHalfBottom\",\"DropSimple\",\"DropSlash\",\"DropboxLogo\",\"Ear\",\"EarSlash\",\"Egg\",\"EggCrack\",\"Eject\",\"EjectSimple\",\"Elevator\",\"Empty\",\"Engine\",\"Envelope\",\"EnvelopeOpen\",\"EnvelopeSimple\",\"EnvelopeSimpleOpen\",\"Equalizer\",\"Equals\",\"Eraser\",\"EscalatorDown\",\"EscalatorUp\",\"Exam\",\"ExclamationMark\",\"Exclude\",\"ExcludeSquare\",\"Export\",\"Eye\",\"EyeClosed\",\"EyeSlash\",\"Eyedropper\",\"EyedropperSample\",\"Eyeglasses\",\"Eyes\",\"FaceMask\",\"FacebookLogo\",\"Factory\",\"Faders\",\"FadersHorizontal\",\"FalloutShelter\",\"Fan\",\"Farm\",\"FastForward\",\"FastForwardCircle\",\"Feather\",\"FediverseLogo\",\"FigmaLogo\",\"File\",\"FileArchive\",\"FileArrowDown\",\"FileArrowUp\",\"FileAudio\",\"FileC\",\"FileCloud\",\"FileCode\",\"FileCpp\",\"FileCss\",\"FileCsv\",\"FileDashed\",\"FileDoc\",\"FileHtml\",\"FileImage\",\"FileIni\",\"FileJpg\",\"FileJs\",\"FileJsx\",\"FileLock\",\"FileMagnifyingGlass\",\"FileMd\",\"FileMinus\",\"FilePdf\",\"FilePlus\",\"FilePng\",\"FilePpt\",\"FilePy\",\"FileRs\",\"FileSql\",\"FileSvg\",\"FileText\",\"FileTs\",\"FileTsx\",\"FileTxt\",\"FileVideo\",\"FileVue\",\"FileX\",\"FileXls\",\"FileZip\",\"Files\",\"FilmReel\",\"FilmScript\",\"FilmSlate\",\"FilmStrip\",\"Fingerprint\",\"FingerprintSimple\",\"FinnTheHuman\",\"Fire\",\"FireExtinguisher\",\"FireSimple\",\"FireTruck\",\"FirstAid\",\"FirstAidKit\",\"Fish\",\"FishSimple\",\"Flag\",\"FlagBanner\",\"FlagBannerFold\",\"FlagCheckered\",\"FlagPennant\",\"Flame\",\"Flashlight\",\"Flask\",\"FlipHorizontal\",\"FlipVertical\",\"FloppyDisk\",\"FloppyDiskBack\",\"FlowArrow\",\"Flower\",\"FlowerLotus\",\"FlowerTulip\",\"FlyingSaucer\",\"Folder\",\"FolderDashed\",\"FolderLock\",\"FolderMinus\",\"FolderNotch\",\"FolderNotchMinus\",\"FolderNotchOpen\",\"FolderNotchPlus\",\"FolderOpen\",\"FolderPlus\",\"FolderSimple\",\"FolderSimpleDashed\",\"FolderSimpleLock\",\"FolderSimpleMinus\",\"FolderSimplePlus\",\"FolderSimpleStar\",\"FolderSimpleUser\",\"FolderStar\",\"FolderUser\",\"Folders\",\"Football\",\"FootballHelmet\",\"Footprints\",\"ForkKnife\",\"FourK\",\"FrameCorners\",\"FramerLogo\",\"Function\",\"Funnel\",\"FunnelSimple\",\"FunnelSimpleX\",\"FunnelX\",\"GameController\",\"Garage\",\"GasCan\",\"GasPump\",\"Gauge\",\"Gavel\",\"Gear\",\"GearFine\",\"GearSix\",\"GenderFemale\",\"GenderIntersex\",\"GenderMale\",\"GenderNeuter\",\"GenderNonbinary\",\"GenderTransgender\",\"Ghost\",\"Gif\",\"Gift\",\"GitBranch\",\"GitCommit\",\"GitDiff\",\"GitFork\",\"GitMerge\",\"GitPullRequest\",\"GithubLogo\",\"GitlabLogo\",\"GitlabLogoSimple\",\"Globe\",\"GlobeHemisphereEast\",\"GlobeHemisphereWest\",\"GlobeSimple\",\"GlobeSimpleX\",\"GlobeStand\",\"GlobeX\",\"Goggles\",\"Golf\",\"GoodreadsLogo\",\"GoogleCardboardLogo\",\"GoogleChromeLogo\",\"GoogleDriveLogo\",\"GoogleLogo\",\"GooglePhotosLogo\",\"GooglePlayLogo\",\"GooglePodcastsLogo\",\"Gps\",\"GpsFix\",\"GpsSlash\",\"Gradient\",\"GraduationCap\",\"Grains\",\"GrainsSlash\",\"Graph\",\"GraphicsCard\",\"GreaterThan\",\"GreaterThanOrEqual\",\"GridFour\",\"GridNine\",\"Guitar\",\"HairDryer\",\"Hamburger\",\"Hammer\",\"Hand\",\"HandArrowDown\",\"HandArrowUp\",\"HandCoins\",\"HandDeposit\",\"HandEye\",\"HandFist\",\"HandGrabbing\",\"HandHeart\",\"HandPalm\",\"HandPeace\",\"HandPointing\",\"HandSoap\",\"HandSwipeLeft\",\"HandSwipeRight\",\"HandTap\",\"HandWaving\",\"HandWithdraw\",\"Handbag\",\"HandbagSimple\",\"HandsClapping\",\"HandsPraying\",\"Handshake\",\"HardDrive\",\"HardDrives\",\"HardHat\",\"Hash\",\"HashStraight\",\"HeadCircuit\",\"Headlights\",\"Headphones\",\"Headset\",\"Heart\",\"HeartBreak\",\"HeartHalf\",\"HeartStraight\",\"HeartStraightBreak\",\"Heartbeat\",\"Hexagon\",\"HighDefinition\",\"HighHeel\",\"Highlighter\",\"HighlighterCircle\",\"Hockey\",\"Hoodie\",\"Horse\",\"Hospital\",\"Hourglass\",\"HourglassHigh\",\"HourglassLow\",\"HourglassMedium\",\"HourglassSimple\",\"HourglassSimpleHigh\",\"HourglassSimpleLow\",\"House\",\"HouseLine\",\"HouseSimple\",\"Hurricane\",\"IceCream\",\"IdentificationBadge\",\"IdentificationCard\",\"Image\",\"ImageBroken\",\"ImageSquare\",\"Images\",\"ImagesSquare\",\"Infinity\",\"Info\",\"InstagramLogo\",\"Intersect\",\"IntersectSquare\",\"IntersectThree\",\"Intersection\",\"Invoice\",\"Island\",\"Jar\",\"JarLabel\",\"Jeep\",\"Joystick\",\"Kanban\",\"Key\",\"KeyReturn\",\"Keyboard\",\"Keyhole\",\"Knife\",\"Ladder\",\"LadderSimple\",\"Lamp\",\"LampPendant\",\"Laptop\",\"Lasso\",\"LastfmLogo\",\"Layout\",\"Leaf\",\"Lectern\",\"Lego\",\"LegoSmiley\",\"LessThan\",\"LessThanOrEqual\",\"LetterCircleH\",\"LetterCircleP\",\"LetterCircleV\",\"Lifebuoy\",\"Lightbulb\",\"LightbulbFilament\",\"Lighthouse\",\"Lightning\",\"LightningA\",\"LightningSlash\",\"LineSegment\",\"LineSegments\",\"LineVertical\",\"Link\",\"LinkBreak\",\"LinkSimple\",\"LinkSimpleBreak\",\"LinkSimpleHorizontal\",\"LinkedinLogo\",\"LinktreeLogo\",\"LinuxLogo\",\"List\",\"ListBullets\",\"ListChecks\",\"ListDashes\",\"ListHeart\",\"ListMagnifyingGlass\",\"ListNumbers\",\"ListPlus\",\"ListStar\",\"Lock\",\"LockKey\",\"LockKeyOpen\",\"LockLaminated\",\"LockLaminatedOpen\",\"LockOpen\",\"LockSimple\",\"LockSimpleOpen\",\"Lockers\",\"Log\",\"MagicWand\",\"Magnet\",\"MagnetStraight\",\"MagnifyingGlass\",\"MagnifyingGlassMinus\",\"MagnifyingGlassPlus\",\"Mailbox\",\"MapPin\",\"MapPinArea\",\"MapPinLine\",\"MapPinPlus\",\"MapPinSimple\",\"MapPinSimpleArea\",\"MapPinSimpleLine\",\"MapTrifold\",\"MarkdownLogo\",\"MarkerCircle\",\"Martini\",\"MaskHappy\",\"MaskSad\",\"MastodonLogo\",\"MathOperations\",\"MatrixLogo\",\"Medal\",\"MedalMilitary\",\"MediumLogo\",\"Megaphone\",\"MegaphoneSimple\",\"MemberOf\",\"Memory\",\"MessengerLogo\",\"MetaLogo\",\"Meteor\",\"Metronome\",\"Microphone\",\"MicrophoneSlash\",\"MicrophoneStage\",\"Microscope\",\"MicrosoftExcelLogo\",\"MicrosoftOutlookLogo\",\"MicrosoftTeamsLogo\",\"MicrosoftWordLogo\",\"Minus\",\"MinusCircle\",\"MinusSquare\",\"Money\",\"MoneyWavy\",\"Monitor\",\"MonitorArrowUp\",\"MonitorPlay\",\"Moon\",\"MoonStars\",\"Moped\",\"MopedFront\",\"Mosque\",\"Motorcycle\",\"Mountains\",\"Mouse\",\"MouseLeftClick\",\"MouseMiddleClick\",\"MouseRightClick\",\"MouseScroll\",\"MouseSimple\",\"MusicNote\",\"MusicNoteSimple\",\"MusicNotes\",\"MusicNotesMinus\",\"MusicNotesPlus\",\"MusicNotesSimple\",\"NavigationArrow\",\"Needle\",\"Network\",\"NetworkSlash\",\"NetworkX\",\"Newspaper\",\"NewspaperClipping\",\"NotEquals\",\"NotMemberOf\",\"NotSubsetOf\",\"NotSupersetOf\",\"Notches\",\"Note\",\"NoteBlank\",\"NotePencil\",\"Notebook\",\"Notepad\",\"Notification\",\"NotionLogo\",\"NuclearPlant\",\"NumberCircleEight\",\"NumberCircleFive\",\"NumberCircleFour\",\"NumberCircleNine\",\"NumberCircleOne\",\"NumberCircleSeven\",\"NumberCircleSix\",\"NumberCircleThree\",\"NumberCircleTwo\",\"NumberCircleZero\",\"NumberEight\",\"NumberFive\",\"NumberFour\",\"NumberNine\",\"NumberOne\",\"NumberSeven\",\"NumberSix\",\"NumberSquareEight\",\"NumberSquareFive\",\"NumberSquareFour\",\"NumberSquareNine\",\"NumberSquareOne\",\"NumberSquareSeven\",\"NumberSquareSix\",\"NumberSquareThree\",\"NumberSquareTwo\",\"NumberSquareZero\",\"NumberThree\",\"NumberTwo\",\"NumberZero\",\"Numpad\",\"Nut\",\"NyTimesLogo\",\"Octagon\",\"OfficeChair\",\"Onigiri\",\"OpenAiLogo\",\"Option\",\"Orange\",\"OrangeSlice\",\"Oven\",\"Package\",\"PaintBrush\",\"PaintBrushBroad\",\"PaintBrushHousehold\",\"PaintBucket\",\"PaintRoller\",\"Palette\",\"Panorama\",\"Pants\",\"PaperPlane\",\"PaperPlaneRight\",\"PaperPlaneTilt\",\"Paperclip\",\"PaperclipHorizontal\",\"Parachute\",\"Paragraph\",\"Parallelogram\",\"Park\",\"Password\",\"Path\",\"PatreonLogo\",\"Pause\",\"PauseCircle\",\"PawPrint\",\"PaypalLogo\",\"Peace\",\"Pen\",\"PenNib\",\"PenNibStraight\",\"Pencil\",\"PencilCircle\",\"PencilLine\",\"PencilRuler\",\"PencilSimple\",\"PencilSimpleLine\",\"PencilSimpleSlash\",\"PencilSlash\",\"Pentagon\",\"Pentagram\",\"Pepper\",\"Percent\",\"Person\",\"PersonArmsSpread\",\"PersonSimple\",\"PersonSimpleBike\",\"PersonSimpleCircle\",\"PersonSimpleHike\",\"PersonSimpleRun\",\"PersonSimpleSki\",\"PersonSimpleSwim\",\"PersonSimpleTaiChi\",\"PersonSimpleThrow\",\"PersonSimpleWalk\",\"Perspective\",\"Phone\",\"PhoneCall\",\"PhoneDisconnect\",\"PhoneIncoming\",\"PhoneList\",\"PhoneOutgoing\",\"PhonePause\",\"PhonePlus\",\"PhoneSlash\",\"PhoneTransfer\",\"PhoneX\",\"PhosphorLogo\",\"Pi\",\"PianoKeys\",\"PicnicTable\",\"PictureInPicture\",\"PiggyBank\",\"Pill\",\"PingPong\",\"PintGlass\",\"PinterestLogo\",\"Pinwheel\",\"Pipe\",\"PipeWrench\",\"PixLogo\",\"Pizza\",\"Placeholder\",\"Planet\",\"Plant\",\"Play\",\"PlayCircle\",\"PlayPause\",\"Playlist\",\"Plug\",\"PlugCharging\",\"Plugs\",\"PlugsConnected\",\"Plus\",\"PlusCircle\",\"PlusMinus\",\"PlusSquare\",\"PokerChip\",\"PoliceCar\",\"Polygon\",\"Popcorn\",\"Popsicle\",\"PottedPlant\",\"Power\",\"Prescription\",\"Presentation\",\"PresentationChart\",\"Printer\",\"Prohibit\",\"ProhibitInset\",\"ProjectorScreen\",\"ProjectorScreenChart\",\"Pulse\",\"PushPin\",\"PushPinSimple\",\"PushPinSimpleSlash\",\"PushPinSlash\",\"PuzzlePiece\",\"QrCode\",\"Question\",\"QuestionMark\",\"Queue\",\"Quotes\",\"Rabbit\",\"Racquet\",\"Radical\",\"Radio\",\"RadioButton\",\"Radioactive\",\"Rainbow\",\"RainbowCloud\",\"Ranking\",\"ReadCvLogo\",\"Receipt\",\"ReceiptX\",\"Record\",\"Rectangle\",\"RectangleDashed\",\"Recycle\",\"RedditLogo\",\"Repeat\",\"RepeatOnce\",\"ReplitLogo\",\"Resize\",\"Rewind\",\"RewindCircle\",\"RoadHorizon\",\"Robot\",\"Rocket\",\"RocketLaunch\",\"Rows\",\"RowsPlusBottom\",\"RowsPlusTop\",\"Rss\",\"RssSimple\",\"Rug\",\"Ruler\",\"Sailboat\",\"Scales\",\"Scan\",\"ScanSmiley\",\"Scissors\",\"Scooter\",\"Screencast\",\"Screwdriver\",\"Scribble\",\"ScribbleLoop\",\"Scroll\",\"Seal\",\"SealCheck\",\"SealPercent\",\"SealQuestion\",\"SealWarning\",\"Seat\",\"Seatbelt\",\"SecurityCamera\",\"Selection\",\"SelectionAll\",\"SelectionBackground\",\"SelectionForeground\",\"SelectionInverse\",\"SelectionPlus\",\"SelectionSlash\",\"Shapes\",\"Share\",\"ShareFat\",\"ShareNetwork\",\"Shield\",\"ShieldCheck\",\"ShieldCheckered\",\"ShieldChevron\",\"ShieldPlus\",\"ShieldSlash\",\"ShieldStar\",\"ShieldWarning\",\"ShippingContainer\",\"ShirtFolded\",\"ShootingStar\",\"ShoppingBag\",\"ShoppingBagOpen\",\"ShoppingCart\",\"ShoppingCartSimple\",\"Shovel\",\"Shower\",\"Shrimp\",\"Shuffle\",\"ShuffleAngular\",\"ShuffleSimple\",\"Sidebar\",\"SidebarSimple\",\"Sigma\",\"SignIn\",\"SignOut\",\"Signature\",\"Signpost\",\"SimCard\",\"Siren\",\"SketchLogo\",\"SkipBack\",\"SkipBackCircle\",\"SkipForward\",\"SkipForwardCircle\",\"Skull\",\"SkypeLogo\",\"SlackLogo\",\"Sliders\",\"SlidersHorizontal\",\"Slideshow\",\"Smiley\",\"SmileyAngry\",\"SmileyBlank\",\"SmileyMeh\",\"SmileyMelting\",\"SmileyNervous\",\"SmileySad\",\"SmileySticker\",\"SmileyWink\",\"SmileyXEyes\",\"SnapchatLogo\",\"Sneaker\",\"SneakerMove\",\"Snowflake\",\"SoccerBall\",\"Sock\",\"SolarPanel\",\"SolarRoof\",\"SortAscending\",\"SortDescending\",\"SoundcloudLogo\",\"Spade\",\"Sparkle\",\"SpeakerHifi\",\"SpeakerHigh\",\"SpeakerLow\",\"SpeakerNone\",\"SpeakerSimpleHigh\",\"SpeakerSimpleLow\",\"SpeakerSimpleNone\",\"SpeakerSimpleSlash\",\"SpeakerSimpleX\",\"SpeakerSlash\",\"SpeakerX\",\"Speedometer\",\"Sphere\",\"Spinner\",\"SpinnerBall\",\"SpinnerGap\",\"Spiral\",\"SplitHorizontal\",\"SplitVertical\",\"SpotifyLogo\",\"SprayBottle\",\"Square\",\"SquareHalf\",\"SquareHalfBottom\",\"SquareLogo\",\"SquareSplitVertical\",\"SquaresFour\",\"Stack\",\"StackMinus\",\"StackOverflowLogo\",\"StackPlus\",\"StackSimple\",\"Stairs\",\"Stamp\",\"StandardDefinition\",\"Star\",\"StarAndCrescent\",\"StarFour\",\"StarHalf\",\"StarOfDavid\",\"SteamLogo\",\"SteeringWheel\",\"Steps\",\"Stethoscope\",\"Sticker\",\"Stool\",\"Stop\",\"StopCircle\",\"Storefront\",\"Strategy\",\"StripeLogo\",\"Student\",\"SubsetOf\",\"SubsetProperOf\",\"Subtitles\",\"SubtitlesSlash\",\"Subtract\",\"SubtractSquare\",\"Subway\",\"Suitcase\",\"SuitcaseRolling\",\"SuitcaseSimple\",\"Sun\",\"SunDim\",\"SunHorizon\",\"Sunglasses\",\"SupersetOf\",\"SupersetProperOf\",\"Swap\",\"Swatches\",\"SwimmingPool\",\"Sword\",\"Synagogue\",\"Syringe\",\"TShirt\",\"Table\",\"Tabs\",\"Tag\",\"TagChevron\",\"TagSimple\",\"Target\",\"Taxi\",\"TeaBag\",\"TelegramLogo\",\"Television\",\"TelevisionSimple\",\"TennisBall\",\"Tent\",\"Terminal\",\"TerminalWindow\",\"TestTube\",\"TextAUnderline\",\"TextAa\",\"TextAlignCenter\",\"TextAlignJustify\",\"TextAlignLeft\",\"TextAlignRight\",\"TextB\",\"TextColumns\",\"TextH\",\"TextHFive\",\"TextHFour\",\"TextHOne\",\"TextHSix\",\"TextHThree\",\"TextHTwo\",\"TextIndent\",\"TextItalic\",\"TextOutdent\",\"TextStrikethrough\",\"TextSubscript\",\"TextSuperscript\",\"TextT\",\"TextTSlash\",\"TextUnderline\",\"Textbox\",\"Thermometer\",\"ThermometerCold\",\"ThermometerHot\",\"ThermometerSimple\",\"ThreadsLogo\",\"ThreeD\",\"ThumbsDown\",\"ThumbsUp\",\"Ticket\",\"TidalLogo\",\"TiktokLogo\",\"Tilde\",\"Timer\",\"TipJar\",\"Tipi\",\"Tire\",\"ToggleLeft\",\"ToggleRight\",\"Toilet\",\"ToiletPaper\",\"Toolbox\",\"Tooth\",\"Tornado\",\"Tote\",\"ToteSimple\",\"Towel\",\"Tractor\",\"Trademark\",\"TrademarkRegistered\",\"TrafficCone\",\"TrafficSign\",\"TrafficSignal\",\"Train\",\"TrainRegional\",\"TrainSimple\",\"Tram\",\"Translate\",\"Trash\",\"TrashSimple\",\"Tray\",\"TrayArrowDown\",\"TrayArrowUp\",\"TreasureChest\",\"Tree\",\"TreeEvergreen\",\"TreePalm\",\"TreeStructure\",\"TreeView\",\"TrendDown\",\"TrendUp\",\"Triangle\",\"TriangleDashed\",\"Trolley\",\"TrolleySuitcase\",\"Trophy\",\"Truck\",\"TruckTrailer\",\"TumblrLogo\",\"TwitchLogo\",\"TwitterLogo\",\"Umbrella\",\"UmbrellaSimple\",\"Union\",\"Unite\",\"UniteSquare\",\"Upload\",\"UploadSimple\",\"Usb\",\"User\",\"UserCheck\",\"UserCircle\",\"UserCircleCheck\",\"UserCircleDashed\",\"UserCircleGear\",\"UserCircleMinus\",\"UserCirclePlus\",\"UserFocus\",\"UserGear\",\"UserList\",\"UserMinus\",\"UserPlus\",\"UserRectangle\",\"UserSound\",\"UserSquare\",\"UserSwitch\",\"Users\",\"UsersFour\",\"UsersThree\",\"Van\",\"Vault\",\"VectorThree\",\"VectorTwo\",\"Vibrate\",\"Video\",\"VideoCamera\",\"VideoCameraSlash\",\"VideoConference\",\"Vignette\",\"VinylRecord\",\"VirtualReality\",\"Virus\",\"Visor\",\"Voicemail\",\"Volleyball\",\"Wall\",\"Wallet\",\"Warehouse\",\"Warning\",\"WarningCircle\",\"WarningDiamond\",\"WarningOctagon\",\"WashingMachine\",\"Watch\",\"WaveSawtooth\",\"WaveSine\",\"WaveSquare\",\"WaveTriangle\",\"Waveform\",\"WaveformSlash\",\"Waves\",\"Webcam\",\"WebcamSlash\",\"WebhooksLogo\",\"WechatLogo\",\"WhatsappLogo\",\"Wheelchair\",\"WheelchairMotion\",\"WifiHigh\",\"WifiLow\",\"WifiMedium\",\"WifiNone\",\"WifiSlash\",\"WifiX\",\"Wind\",\"Windmill\",\"WindowsLogo\",\"Wine\",\"Wrench\",\"X\",\"XCircle\",\"XLogo\",\"XSquare\",\"Yarn\",\"YinYang\",\"YoutubeLogo\"];const moduleBaseUrl=\"https://framer.com/m/phosphor-icons/\";const weightOptions=[\"thin\",\"light\",\"regular\",\"bold\",\"fill\",\"duotone\"];const lowercaseIconKeyPairs=iconKeys.reduce((res,key)=>{res[key.toLowerCase()]=key;return res;},{});/**\n * PHOSPHOR\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n *\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n */export function Icon(props){const{color,selectByList,iconSearch,iconSelection,onClick,onMouseDown,onMouseUp,onMouseEnter,onMouseLeave,weight,mirrored}=props;const isMounted=useRef(false);const iconKey=useIconSelection(iconKeys,selectByList,iconSearch,iconSelection,lowercaseIconKeyPairs);const[SelectedIcon,setSelectedIcon]=useState(iconKey===\"Home\"?HouseFactory(React):null);async function importModule(){// Get the selected module\ntry{const version=\"0.0.57\";const iconModuleUrl=`${moduleBaseUrl}${iconKey}.js@${version}`;const module=await import(/* webpackIgnore: true */iconModuleUrl);if(isMounted.current)setSelectedIcon(module.default(React));}catch(err){if(isMounted.current)setSelectedIcon(null);}}useEffect(()=>{isMounted.current=true;importModule();return()=>{isMounted.current=false;};},[iconKey]);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const emptyState=isOnCanvas?/*#__PURE__*/_jsx(NullState,{}):null;return /*#__PURE__*/_jsx(motion.div,{style:{display:\"contents\"},onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,children:SelectedIcon?/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",viewBox:\"0 0 256 256\",style:{userSelect:\"none\",width:\"100%\",height:\"100%\",display:\"inline-block\",fill:color,color,flexShrink:0,transform:mirrored?\"scale(-1, 1)\":undefined},focusable:\"false\",color:color,children:/*#__PURE__*/_jsx(SelectedIcon,{color:color,weight:weight})}):emptyState});}Icon.displayName=\"Phosphor\";Icon.defaultProps={width:24,height:24,iconSelection:\"House\",iconSearch:\"House\",color:\"#66F\",selectByList:true,weight:\"regular\",mirrored:false};addPropertyControls(Icon,{selectByList:{type:ControlType.Boolean,title:\"Select\",enabledTitle:\"List\",disabledTitle:\"Search\",defaultValue:Icon.defaultProps.selectByList},iconSelection:{type:ControlType.Enum,options:iconKeys,defaultValue:Icon.defaultProps.iconSelection,title:\"Name\",hidden:({selectByList})=>!selectByList,description:\"Find every icon name on the [Phosphor site](https://phosphoricons.com/)\"},iconSearch:{type:ControlType.String,title:\"Name\",placeholder:\"Menu, Wifi, Box…\",hidden:({selectByList})=>selectByList},color:{type:ControlType.Color,title:\"Color\",defaultValue:Icon.defaultProps.color},weight:{type:ControlType.Enum,title:\"Weight\",optionTitles:weightOptions.map(piece=>piece.charAt(0).toUpperCase()+piece.slice(1)),options:weightOptions,defaultValue:Icon.defaultProps.weight},mirrored:{type:ControlType.Boolean,enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:Icon.defaultProps.mirrored},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"IconProps\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Icon\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Phosphor.map","// Generated by Framer (f030ee3)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=['.framer-z1pDy .framer-styles-preset-13c1xpw:not(.rich-text-wrapper), .framer-z1pDy .framer-styles-preset-13c1xpw.rich-text-wrapper a { --framer-link-current-text-decoration: none; --framer-link-hover-text-color: var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, #2b2f30) /* {\"name\":\"Base / White [50]\"} */; --framer-link-hover-text-decoration: none; --framer-link-text-color: var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, #4e4d51); --framer-link-text-decoration: none; }'];export const className=\"framer-z1pDy\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f030ee3)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;DM Sans-regular\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"DM Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmsans/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxhS2f3ZGMZpg.woff2\",weight:\"400\"}]}];export const css=['.framer-N7gbx .framer-styles-preset-1mmahvz:not(.rich-text-wrapper), .framer-N7gbx .framer-styles-preset-1mmahvz.rich-text-wrapper p { --framer-font-family: \"DM Sans\", \"DM Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 20px; --framer-text-alignment: left; --framer-text-color: var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, #4e4d51); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-N7gbx\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f030ee3)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;DM Sans-regular\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"DM Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmsans/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAopxhS2f3ZGMZpg.woff2\",weight:\"400\"}]}];export const css=['.framer-saRZx .framer-styles-preset-1i3pa01:not(.rich-text-wrapper), .framer-saRZx .framer-styles-preset-1i3pa01.rich-text-wrapper p { --framer-font-family: \"DM Sans\", \"DM Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, #656469); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-saRZx\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{fontStore as r}from\"framer\";r.loadWebFontsFromSelectors([\"GF;DM Sans-600\"]);export const fonts=[{family:\"DM Sans\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmsans/v14/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAfJthS2f3ZGMZpg.woff2\",weight:\"600\"}];export const css=['.framer-xlD2s .framer-styles-preset-1mhvxkc:not(.rich-text-wrapper), .framer-xlD2s .framer-styles-preset-1mhvxkc.rich-text-wrapper h6 { --framer-font-family: \"DM Sans\", \"DM Sans Placeholder\", sans-serif; --framer-font-size: 16px; --framer-font-style: normal; --framer-font-weight: 600; --framer-letter-spacing: 0em; --framer-line-height: 1.4em; --framer-paragraph-spacing: 40px; --framer-text-alignment: start; --framer-text-color: #fbfbfb; --framer-text-decoration: none; --framer-text-transform: none; }'];export const className=\"framer-xlD2s\";\nexport const __FramerMetadata__ = {\"exports\":{\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (47ebf4a)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Link,SmartComponentScopedContainer,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";const PhosphorFonts=getFonts(Phosphor);const enabledGestures={aTvc8coRH:{hover:true},BfO2wLi29:{hover:true},icJxih2Pt:{hover:true},nPLJQBF2j:{hover:true},pQjSSEhhg:{hover:true},udKBJqriu:{hover:true}};const cycleOrder=[\"icJxih2Pt\",\"pQjSSEhhg\",\"nPLJQBF2j\",\"udKBJqriu\",\"BfO2wLi29\",\"aTvc8coRH\"];const serializationHash=\"framer-W6Fyt\";const variantClassNames={aTvc8coRH:\"framer-v-1pwkojd\",BfO2wLi29:\"framer-v-xgnsoj\",icJxih2Pt:\"framer-v-viyi2s\",nPLJQBF2j:\"framer-v-88f1c6\",pQjSSEhhg:\"framer-v-163huue\",udKBJqriu:\"framer-v-1cyacm9\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Copy Link\":\"aTvc8coRH\",Discord:\"nPLJQBF2j\",Facebook:\"BfO2wLi29\",Github:\"icJxih2Pt\",Linkedin:\"udKBJqriu\",X:\"pQjSSEhhg\"};const getProps=({height,id,link,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"icJxih2Pt\",vPbP3u8UG:link??props.vPbP3u8UG};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,vPbP3u8UG,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"icJxih2Pt\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"pQjSSEhhg-hover\",\"nPLJQBF2j-hover\",\"udKBJqriu-hover\",\"BfO2wLi29-hover\",\"aTvc8coRH-hover\"].includes(gestureVariant))return false;if([\"pQjSSEhhg\",\"nPLJQBF2j\",\"udKBJqriu\",\"BfO2wLi29\",\"aTvc8coRH\"].includes(baseVariant))return false;return true;};const isDisplayed1=()=>{if(gestureVariant===\"BfO2wLi29-hover\")return true;return false;};const isDisplayed2=()=>{if(gestureVariant===\"BfO2wLi29-hover\")return false;if(baseVariant===\"BfO2wLi29\")return true;return false;};const isDisplayed3=()=>{if(gestureVariant===\"pQjSSEhhg-hover\")return true;return false;};const isDisplayed4=()=>{if(gestureVariant===\"pQjSSEhhg-hover\")return false;if(baseVariant===\"pQjSSEhhg\")return true;return false;};const isDisplayed5=()=>{if(gestureVariant===\"nPLJQBF2j-hover\")return true;return false;};const isDisplayed6=()=>{if(gestureVariant===\"nPLJQBF2j-hover\")return false;if(baseVariant===\"nPLJQBF2j\")return true;return false;};const isDisplayed7=()=>{if(gestureVariant===\"udKBJqriu-hover\")return true;return false;};const isDisplayed8=()=>{if(gestureVariant===\"udKBJqriu-hover\")return false;if(baseVariant===\"udKBJqriu\")return true;return false;};const isDisplayed9=()=>{if(gestureVariant===\"aTvc8coRH-hover\")return true;if(baseVariant===\"aTvc8coRH\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:vPbP3u8UG,motionChild:true,nodeId:\"icJxih2Pt\",openInNewTab:true,scopeId:\"asWliGJ80\",children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-viyi2s\",className,classNames)} framer-1hteovt`,\"data-framer-name\":\"Github\",layoutDependency:layoutDependency,layoutId:\"icJxih2Pt\",ref:refBinding,style:{...style},...addPropertyOverrides({\"aTvc8coRH-hover\":{\"data-framer-name\":undefined},\"BfO2wLi29-hover\":{\"data-framer-name\":undefined},\"icJxih2Pt-hover\":{\"data-framer-name\":undefined},\"nPLJQBF2j-hover\":{\"data-framer-name\":undefined},\"pQjSSEhhg-hover\":{\"data-framer-name\":undefined},\"udKBJqriu-hover\":{\"data-framer-name\":undefined},aTvc8coRH:{\"data-framer-name\":\"Copy Link\"},BfO2wLi29:{\"data-framer-name\":\"Facebook\"},nPLJQBF2j:{\"data-framer-name\":\"Discord\"},pQjSSEhhg:{\"data-framer-name\":\"X\"},udKBJqriu:{\"data-framer-name\":\"Linkedin\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1tkvwqb\",\"data-framer-name\":\"github_icon\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"sZAlq9bpd\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 12.512 2.962 C 11.452 2.324 10.237 1.991 9 2 C 7.763 1.991 6.547 2.324 5.487 2.962 C 4.424 3.595 3.546 4.495 2.941 5.573 C 2.311 6.674 2 7.874 2 9.176 C 2 10.738 2.445 12.145 3.335 13.393 C 4.225 14.64 5.374 15.506 6.784 15.984 C 6.949 16.016 7.071 15.994 7.148 15.919 C 7.226 15.847 7.27 15.745 7.267 15.639 L 7.263 15.134 C 7.26 14.816 7.258 14.539 7.258 14.302 L 7.049 14.339 C 6.882 14.366 6.712 14.377 6.543 14.371 C 6.33 14.368 6.118 14.346 5.909 14.306 C 5.687 14.263 5.478 14.167 5.301 14.026 C 5.113 13.879 4.973 13.679 4.9 13.452 L 4.809 13.236 C 4.732 13.066 4.636 12.907 4.522 12.761 C 4.39 12.586 4.259 12.467 4.125 12.404 L 4.061 12.358 C 4.018 12.325 3.978 12.288 3.942 12.247 C 3.909 12.208 3.882 12.163 3.862 12.116 C 3.844 12.071 3.858 12.036 3.906 12.008 C 3.955 11.978 4.043 11.966 4.17 11.966 L 4.354 11.994 C 4.474 12.019 4.625 12.093 4.804 12.217 C 4.984 12.342 5.131 12.504 5.245 12.704 C 5.385 12.958 5.554 13.153 5.752 13.287 C 5.949 13.421 6.148 13.489 6.35 13.489 C 6.548 13.489 6.722 13.472 6.868 13.441 C 7.014 13.411 7.151 13.363 7.278 13.301 C 7.334 12.884 7.482 12.563 7.724 12.339 C 7.409 12.307 7.098 12.25 6.791 12.17 C 6.491 12.086 6.203 11.963 5.935 11.805 C 5.651 11.648 5.401 11.435 5.201 11.179 C 5.007 10.932 4.847 10.604 4.723 10.201 C 4.592 9.745 4.53 9.273 4.537 8.799 C 4.537 8.046 4.776 7.404 5.257 6.874 C 5.032 6.307 5.052 5.672 5.321 4.967 C 5.496 4.912 5.757 4.953 6.104 5.093 C 6.45 5.233 6.703 5.353 6.865 5.452 C 7.026 5.552 7.155 5.636 7.252 5.706 C 7.821 5.545 8.409 5.464 9 5.465 C 9.602 5.465 10.185 5.546 10.75 5.708 L 11.096 5.483 C 11.333 5.335 11.613 5.198 11.935 5.072 C 12.258 4.948 12.504 4.915 12.675 4.97 C 12.948 5.674 12.972 6.308 12.747 6.877 C 13.227 7.406 13.467 8.047 13.467 8.8 C 13.467 9.33 13.405 9.798 13.28 10.206 C 13.156 10.615 12.995 10.943 12.796 11.189 C 12.592 11.441 12.342 11.652 12.059 11.81 C 11.765 11.978 11.478 12.099 11.203 12.174 C 10.926 12.249 10.616 12.306 10.268 12.341 C 10.584 12.621 10.742 13.063 10.742 13.668 L 10.742 15.64 C 10.739 15.745 10.78 15.847 10.856 15.92 C 10.932 15.995 11.052 16.016 11.216 15.985 C 12.627 15.504 13.776 14.641 14.665 13.391 C 15.554 12.145 16 10.738 16 9.175 C 16.01 7.913 15.686 6.671 15.061 5.574 C 14.455 4.496 13.577 3.596 12.515 2.963 L 12.513 2.963 Z\" fill=\"rgb(155,156,161)\"></path></svg>',svgContentId:9542691534,withExternalLayout:true,...addPropertyOverrides({\"icJxih2Pt-hover\":{svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 12.512 2.962 C 11.452 2.324 10.237 1.991 9 2 C 7.763 1.991 6.547 2.324 5.487 2.962 C 4.424 3.595 3.546 4.495 2.941 5.573 C 2.311 6.674 2 7.874 2 9.176 C 2 10.738 2.445 12.145 3.335 13.393 C 4.225 14.64 5.374 15.506 6.784 15.984 C 6.949 16.016 7.071 15.994 7.148 15.919 C 7.226 15.847 7.27 15.745 7.267 15.639 L 7.263 15.134 C 7.26 14.816 7.258 14.539 7.258 14.302 L 7.049 14.339 C 6.882 14.366 6.712 14.377 6.543 14.371 C 6.33 14.368 6.118 14.346 5.909 14.306 C 5.687 14.263 5.478 14.167 5.301 14.026 C 5.113 13.879 4.973 13.679 4.9 13.452 L 4.809 13.236 C 4.732 13.066 4.636 12.907 4.522 12.761 C 4.39 12.586 4.259 12.467 4.125 12.404 L 4.061 12.358 C 4.018 12.325 3.978 12.288 3.942 12.247 C 3.909 12.208 3.882 12.163 3.862 12.116 C 3.844 12.071 3.858 12.036 3.906 12.008 C 3.955 11.978 4.043 11.966 4.17 11.966 L 4.354 11.994 C 4.474 12.019 4.625 12.093 4.804 12.217 C 4.984 12.342 5.131 12.504 5.245 12.704 C 5.385 12.958 5.554 13.153 5.752 13.287 C 5.949 13.421 6.148 13.489 6.35 13.489 C 6.548 13.489 6.722 13.472 6.868 13.441 C 7.014 13.411 7.151 13.363 7.278 13.301 C 7.334 12.884 7.482 12.563 7.724 12.339 C 7.409 12.307 7.098 12.25 6.791 12.17 C 6.491 12.086 6.203 11.963 5.935 11.805 C 5.651 11.648 5.401 11.435 5.201 11.179 C 5.007 10.932 4.847 10.604 4.723 10.201 C 4.592 9.745 4.53 9.273 4.537 8.799 C 4.537 8.046 4.776 7.404 5.257 6.874 C 5.032 6.307 5.052 5.672 5.321 4.967 C 5.496 4.912 5.757 4.953 6.104 5.093 C 6.45 5.233 6.703 5.353 6.865 5.452 C 7.026 5.552 7.155 5.636 7.252 5.706 C 7.821 5.545 8.409 5.464 9 5.465 C 9.602 5.465 10.185 5.546 10.75 5.708 L 11.096 5.483 C 11.333 5.335 11.613 5.198 11.935 5.072 C 12.258 4.948 12.504 4.915 12.675 4.97 C 12.948 5.674 12.972 6.308 12.747 6.877 C 13.227 7.406 13.467 8.047 13.467 8.8 C 13.467 9.33 13.405 9.798 13.28 10.206 C 13.156 10.615 12.995 10.943 12.796 11.189 C 12.592 11.441 12.342 11.652 12.059 11.81 C 11.765 11.978 11.478 12.099 11.203 12.174 C 10.926 12.249 10.616 12.306 10.268 12.341 C 10.584 12.621 10.742 13.063 10.742 13.668 L 10.742 15.64 C 10.739 15.745 10.78 15.847 10.856 15.92 C 10.932 15.995 11.052 16.016 11.216 15.985 C 12.627 15.504 13.776 14.641 14.665 13.391 C 15.554 12.145 16 10.738 16 9.175 C 16.01 7.913 15.686 6.671 15.061 5.574 C 14.455 4.496 13.577 3.596 12.515 2.963 L 12.513 2.963 Z\" fill=\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48)) /* {&quot;name&quot;:&quot;Base / White [50]&quot;} */\"></path></svg>',svgContentId:9407446764}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-stsago\",\"data-framer-name\":\"facebook_icon\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"zQ5eI_CuF\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 12.889 2 L 5.11 2 C 3.392 2.001 2 3.393 2 5.111 L 2 12.889 C 2 14.607 3.393 16 5.111 16 L 9.483 16 L 9.483 10.586 L 7.661 10.586 L 7.661 8.466 L 9.483 8.466 L 9.483 6.907 C 9.483 5.099 10.588 4.114 12.201 4.114 C 12.744 4.112 13.288 4.14 13.828 4.196 L 13.828 6.086 L 12.718 6.086 C 11.838 6.086 11.668 6.501 11.668 7.114 L 11.668 8.464 L 13.768 8.464 L 13.495 10.583 L 11.655 10.583 L 11.655 16 L 12.889 16 C 14.607 16 16 14.607 16 12.889 L 16 5.11 C 15.999 3.392 14.607 2 12.889 2 Z\" fill=\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48)) /* {&quot;name&quot;:&quot;Base / White [50]&quot;} */\"></path></svg>',svgContentId:11178405318,withExternalLayout:true,...addPropertyOverrides({\"BfO2wLi29-hover\":{svgContentId:12470468273}},baseVariant,gestureVariant)}),isDisplayed2()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1omgf7f\",\"data-framer-name\":\"facebook_icon\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"hpSrzKymm\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 12.889 2 L 5.11 2 C 3.392 2.001 2 3.393 2 5.111 L 2 12.889 C 2 14.607 3.393 16 5.111 16 L 9.483 16 L 9.483 10.586 L 7.661 10.586 L 7.661 8.466 L 9.483 8.466 L 9.483 6.907 C 9.483 5.099 10.588 4.114 12.201 4.114 C 12.744 4.112 13.288 4.14 13.828 4.196 L 13.828 6.086 L 12.718 6.086 C 11.838 6.086 11.668 6.501 11.668 7.114 L 11.668 8.464 L 13.768 8.464 L 13.495 10.583 L 11.655 10.583 L 11.655 16 L 12.889 16 C 14.607 16 16 14.607 16 12.889 L 16 5.11 C 15.999 3.392 14.607 2 12.889 2 Z\" fill=\"#9B9CA1\"></path></svg>',svgContentId:11387270655,withExternalLayout:true,...addPropertyOverrides({BfO2wLi29:{svgContentId:10716498291}},baseVariant,gestureVariant)}),isDisplayed3()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-jozc12\",\"data-framer-name\":\"x_icon\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"ajkxdLvDy\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 3.273 2 C 2.57 2 2 2.57 2 3.273 L 2 14.727 C 2 15.431 2.57 16 3.273 16 L 14.727 16 C 15.431 16 16 15.43 16 14.727 L 16 3.273 C 16 2.57 15.43 2 14.727 2 Z M 4.958 5.182 L 7.893 5.182 L 9.605 7.63 L 11.725 5.182 L 12.648 5.182 L 10.02 8.224 L 13.235 12.818 L 10.3 12.818 L 8.4 10.101 L 6.053 12.818 L 5.115 12.818 L 7.982 9.506 Z M 6.378 5.935 L 10.675 12.061 L 11.814 12.061 L 7.514 5.935 Z\" fill=\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48)) /* {&quot;name&quot;:&quot;Base / White [50]&quot;} */\"></path></svg>',svgContentId:8997795979,withExternalLayout:true,...addPropertyOverrides({\"pQjSSEhhg-hover\":{svgContentId:11446860919}},baseVariant,gestureVariant)}),isDisplayed4()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1wbhob9\",\"data-framer-name\":\"x_icon\",fill:\"black\",intrinsicHeight:18,intrinsicWidth:18,layoutDependency:layoutDependency,layoutId:\"CG03v1vBa\",svg:'<svg width=\"18\" height=\"18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.273 2C2.57 2 2 2.57 2 3.273v11.454C2 15.431 2.57 16 3.273 16h11.454c.704 0 1.273-.57 1.273-1.273V3.273C16 2.57 15.43 2 14.727 2H3.273Zm1.685 3.182h2.935L9.605 7.63l2.12-2.448h.923L10.02 8.224l3.215 4.594H10.3l-1.9-2.717-2.347 2.717h-.938l2.867-3.312-3.024-4.324Zm1.42.753 4.297 6.126h1.139l-4.3-6.126H6.378Z\" fill=\"#9B9CA1\"/></svg>',withExternalLayout:true}),isDisplayed5()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-u83bej\",\"data-framer-name\":\"discord_icon\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"eaHtnyoAc\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 14.544 3.995 C 13.506 3.526 12.411 3.191 11.288 3 C 11.267 2.996 11.246 3.005 11.235 3.024 C 11.086 3.29 10.951 3.564 10.83 3.844 C 9.617 3.663 8.385 3.663 7.172 3.844 C 7.05 3.563 6.912 3.289 6.76 3.024 C 6.749 3.006 6.729 2.997 6.708 3 C 5.583 3.19 4.488 3.525 3.451 3.994 C 3.442 3.998 3.435 4.004 3.43 4.012 C 1.355 7.062 0.787 10.036 1.066 12.973 C 1.067 12.988 1.075 13.001 1.086 13.01 C 2.297 13.892 3.648 14.563 5.082 14.997 C 5.103 15.003 5.125 14.996 5.138 14.979 C 5.447 14.567 5.72 14.129 5.955 13.671 C 5.965 13.652 5.961 13.628 5.945 13.613 C 5.94 13.608 5.934 13.604 5.928 13.601 C 5.497 13.439 5.08 13.243 4.68 13.016 C 4.665 13.008 4.656 12.992 4.655 12.975 C 4.654 12.958 4.661 12.942 4.675 12.932 C 4.758 12.87 4.842 12.806 4.922 12.742 C 4.936 12.73 4.957 12.727 4.974 12.734 C 7.593 13.911 10.427 13.911 13.015 12.734 C 13.023 12.73 13.033 12.729 13.042 12.73 C 13.051 12.731 13.06 12.734 13.067 12.74 C 13.147 12.805 13.231 12.87 13.316 12.932 C 13.329 12.942 13.337 12.958 13.336 12.975 C 13.335 12.992 13.326 13.007 13.311 13.016 C 12.913 13.246 12.495 13.441 12.063 13.601 C 12.049 13.606 12.038 13.616 12.033 13.63 C 12.028 13.643 12.029 13.658 12.036 13.67 C 12.276 14.126 12.548 14.563 12.852 14.978 C 12.864 14.996 12.887 15.004 12.908 14.998 C 14.344 14.565 15.697 13.893 16.91 13.01 C 16.922 13.001 16.93 12.988 16.931 12.973 C 17.265 9.578 16.372 6.628 14.565 4.013 C 14.561 4.004 14.554 3.997 14.545 3.993 Z M 6.346 11.185 C 5.558 11.185 4.909 10.473 4.909 9.599 C 4.909 8.724 5.546 8.012 6.346 8.012 C 7.154 8.012 7.797 8.731 7.785 9.599 C 7.785 10.473 7.147 11.185 6.346 11.185 Z M 11.663 11.185 C 10.875 11.185 10.225 10.473 10.225 9.599 C 10.225 8.724 10.862 8.012 11.663 8.012 C 12.47 8.012 13.113 8.731 13.101 9.599 C 13.101 10.473 12.47 11.185 11.663 11.185 Z\" fill=\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"></path></svg>',svgContentId:9564073633,withExternalLayout:true,...addPropertyOverrides({\"nPLJQBF2j-hover\":{svgContentId:10661266366}},baseVariant,gestureVariant)}),isDisplayed6()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1nmfkbx\",\"data-framer-name\":\"discord_icon\",fill:\"black\",intrinsicHeight:18,intrinsicWidth:18,layoutDependency:layoutDependency,layoutId:\"ZYBEVOYEY\",svg:'<svg width=\"18\" height=\"18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.544 3.995A13.351 13.351 0 0 0 11.288 3a.05.05 0 0 0-.053.024 9.04 9.04 0 0 0-.405.82 12.377 12.377 0 0 0-3.658 0 8.238 8.238 0 0 0-.412-.82A.051.051 0 0 0 6.708 3c-1.125.19-2.22.525-3.257.994a.046.046 0 0 0-.021.018c-2.075 3.05-2.643 6.024-2.364 8.961a.053.053 0 0 0 .02.037 13.356 13.356 0 0 0 3.996 1.987.052.052 0 0 0 .056-.018 9.17 9.17 0 0 0 .817-1.308.049.049 0 0 0-.01-.058.05.05 0 0 0-.017-.012 8.793 8.793 0 0 1-1.248-.585.05.05 0 0 1-.005-.084c.083-.062.167-.126.247-.19a.05.05 0 0 1 .052-.008c2.619 1.177 5.453 1.177 8.041 0a.05.05 0 0 1 .027-.004.05.05 0 0 1 .025.01c.08.065.164.13.249.192a.05.05 0 0 1 .02.043.05.05 0 0 1-.025.041c-.398.23-.816.425-1.248.585a.05.05 0 0 0-.03.029.05.05 0 0 0 .003.04c.24.456.512.893.816 1.308a.051.051 0 0 0 .056.02 13.326 13.326 0 0 0 4.002-1.988.05.05 0 0 0 .021-.037c.334-3.395-.559-6.345-2.366-8.96a.04.04 0 0 0-.02-.02Zm-8.198 7.19c-.788 0-1.437-.712-1.437-1.586 0-.875.637-1.587 1.437-1.587.808 0 1.451.719 1.439 1.587 0 .874-.638 1.586-1.439 1.586Zm5.317 0c-.788 0-1.438-.712-1.438-1.586 0-.875.637-1.587 1.438-1.587.807 0 1.45.719 1.438 1.587 0 .874-.631 1.586-1.438 1.586Z\" fill=\"#9B9CA1\"/></svg>',withExternalLayout:true}),isDisplayed7()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-27vdpi\",\"data-framer-name\":\"linkedin_icon\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"vIEMTAZdL\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 18\"><path d=\"M 11.88 2 C 15.7 2 16 2.3 16 6.12 L 16 11.88 C 16 15.7 15.7 16 11.88 16 L 6.12 16 C 2.3 16 2 15.7 2 11.88 L 2 6.12 C 2 2.3 2.3 2 6.12 2 Z M 6.56 12.85 L 6.56 7.155 L 4.79 7.155 L 4.79 12.85 Z M 5.675 6.34 C 6.052 6.351 6.404 6.157 6.596 5.832 C 6.787 5.508 6.787 5.105 6.595 4.781 C 6.403 4.457 6.05 4.263 5.673 4.275 C 5.102 4.276 4.64 4.738 4.641 5.309 C 4.642 5.88 5.104 6.342 5.675 6.341 Z M 13.2 12.85 L 13.2 9.726 C 13.2 8.193 12.869 7.013 11.076 7.013 C 10.216 7.013 9.638 7.485 9.402 7.933 L 9.378 7.933 L 9.378 7.155 L 7.68 7.155 L 7.68 12.85 L 9.449 12.85 L 9.449 10.033 C 9.449 9.29 9.591 8.57 10.512 8.57 C 11.419 8.57 11.432 9.42 11.432 10.08 L 11.432 12.85 Z\" fill=\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"></path></svg>',svgContentId:11496271504,withExternalLayout:true,...addPropertyOverrides({\"udKBJqriu-hover\":{svgContentId:9207442388}},baseVariant,gestureVariant)}),isDisplayed8()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-eqtci9\",\"data-framer-name\":\"linkedin_icon\",fill:\"black\",intrinsicHeight:18,intrinsicWidth:18,layoutDependency:layoutDependency,layoutId:\"c1XK1WAaf\",svg:'<svg width=\"18\" height=\"18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.88 2C15.7 2 16 2.3 16 6.12v5.76c0 3.82-.3 4.12-4.12 4.12H6.12C2.3 16 2 15.7 2 11.88V6.12C2 2.3 2.3 2 6.12 2h5.76ZM6.56 12.85V7.155H4.79v5.695h1.77Zm-.885-6.51a1.033 1.033 0 1 0-.002-2.065 1.033 1.033 0 0 0 .002 2.066Zm7.525 6.51V9.726c0-1.533-.331-2.713-2.124-2.713-.86 0-1.438.472-1.674.92h-.024v-.778H7.68v5.695h1.769v-2.817c0-.743.142-1.463 1.063-1.463.907 0 .92.85.92 1.51v2.77H13.2Z\" fill=\"#9B9CA1\"/></svg>',withExternalLayout:true}),isDisplayed9()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1lvavip-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"RAwn4hDfc-container\",nodeId:\"RAwn4hDfc\",rendersWithMotion:true,scopeId:\"asWliGJ80\",children:/*#__PURE__*/_jsx(Phosphor,{color:\"rgb(155, 156, 161)\",height:\"100%\",iconSearch:\"House\",iconSelection:\"GoogleLogo\",id:\"RAwn4hDfc\",layoutId:\"RAwn4hDfc\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"bold\",width:\"100%\",...addPropertyOverrides({\"aTvc8coRH-hover\":{color:\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"}},baseVariant,gestureVariant)})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-W6Fyt.framer-1hteovt, .framer-W6Fyt .framer-1hteovt { display: block; }\",\".framer-W6Fyt.framer-viyi2s { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 18px; justify-content: center; overflow: visible; padding: 0px; position: relative; text-decoration: none; width: 18px; }\",\".framer-W6Fyt .framer-1tkvwqb, .framer-W6Fyt .framer-stsago, .framer-W6Fyt .framer-1omgf7f, .framer-W6Fyt .framer-jozc12, .framer-W6Fyt .framer-u83bej, .framer-W6Fyt .framer-27vdpi { flex: none; height: 18px; position: relative; width: 18px; }\",\".framer-W6Fyt .framer-1wbhob9, .framer-W6Fyt .framer-1nmfkbx, .framer-W6Fyt .framer-eqtci9 { aspect-ratio: 1 / 1; flex: none; height: var(--framer-aspect-ratio-supported, 18px); position: relative; width: 18px; }\",\".framer-W6Fyt .framer-1lvavip-container { flex: none; height: 16px; position: relative; width: 16px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-W6Fyt.framer-viyi2s { gap: 0px; } .framer-W6Fyt.framer-viyi2s > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-W6Fyt.framer-viyi2s > :first-child { margin-left: 0px; } .framer-W6Fyt.framer-viyi2s > :last-child { margin-right: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 18\n * @framerIntrinsicWidth 18\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"pQjSSEhhg\":{\"layout\":[\"fixed\",\"fixed\"]},\"nPLJQBF2j\":{\"layout\":[\"fixed\",\"fixed\"]},\"udKBJqriu\":{\"layout\":[\"fixed\",\"fixed\"]},\"BfO2wLi29\":{\"layout\":[\"fixed\",\"fixed\"]},\"aTvc8coRH\":{\"layout\":[\"fixed\",\"fixed\"]},\"bsAOB_NCz\":{\"layout\":[\"fixed\",\"fixed\"]},\"ifGpQMtVy\":{\"layout\":[\"fixed\",\"fixed\"]},\"tAOABuK02\":{\"layout\":[\"fixed\",\"fixed\"]},\"lDLm3q4BX\":{\"layout\":[\"fixed\",\"fixed\"]},\"V_Spc6F1k\":{\"layout\":[\"fixed\",\"fixed\"]},\"YXZo9MHba\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"vPbP3u8UG\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerasWliGJ80=withCSS(Component,css,\"framer-W6Fyt\");export default FramerasWliGJ80;FramerasWliGJ80.displayName=\"Footer / Social Icons\";FramerasWliGJ80.defaultProps={height:18,width:18};addPropertyControls(FramerasWliGJ80,{variant:{options:[\"icJxih2Pt\",\"pQjSSEhhg\",\"nPLJQBF2j\",\"udKBJqriu\",\"BfO2wLi29\",\"aTvc8coRH\"],optionTitles:[\"Github\",\"X\",\"Discord\",\"Linkedin\",\"Facebook\",\"Copy Link\"],title:\"Variant\",type:ControlType.Enum},vPbP3u8UG:{title:\"Link\",type:ControlType.Link}});addFonts(FramerasWliGJ80,[{explicitInter:true,fonts:[]},...PhosphorFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerasWliGJ80\",\"slots\":[],\"annotations\":{\"framerVariables\":\"{\\\"vPbP3u8UG\\\":\\\"link\\\"}\",\"framerIntrinsicWidth\":\"18\",\"framerIntrinsicHeight\":\"18\",\"framerDisplayContentsDiv\":\"false\",\"framerComponentViewportWidth\":\"true\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"pQjSSEhhg\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"nPLJQBF2j\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"udKBJqriu\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"BfO2wLi29\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"aTvc8coRH\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"bsAOB_NCz\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"ifGpQMtVy\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"tAOABuK02\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"lDLm3q4BX\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"V_Spc6F1k\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"YXZo9MHba\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./asWliGJ80.map","// Generated by Framer (e22b717)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,cx,getLoadingLazyAtYPosition,Image,Link,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const serializationHash=\"framer-Y29QC\";const variantClassNames={ah7zdlK14:\"framer-v-1n5qlsi\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"ah7zdlK14\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTap1l07qmn=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});setVariant(\"ah7zdlK14\");});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"ah7zdlK14\",scopeId:\"i7vrt9GEl\",children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-1n5qlsi\",className,classNames)} framer-1u8yl0t`,\"data-framer-name\":\"Logo\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"ah7zdlK14\",onTap:onTap1l07qmn,ref:refBinding,style:{...style},children:/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+(0+((componentViewport?.height||48)-0-48)/2)),pixelHeight:72,pixelWidth:178,src:\"https://framerusercontent.com/images/oxNdudaTikUrwK5cr5CjmYYPojA.svg\"},className:\"framer-1wuw370\",layoutDependency:layoutDependency,layoutId:\"l0a0hinwU\"})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-Y29QC.framer-1u8yl0t, .framer-Y29QC .framer-1u8yl0t { display: block; }\",\".framer-Y29QC.framer-1n5qlsi { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; text-decoration: none; width: min-content; }\",\".framer-Y29QC .framer-1wuw370 { flex: none; height: 48px; position: relative; width: 164px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-Y29QC.framer-1n5qlsi { gap: 0px; } .framer-Y29QC.framer-1n5qlsi > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } .framer-Y29QC.framer-1n5qlsi > :first-child { margin-left: 0px; } .framer-Y29QC.framer-1n5qlsi > :last-child { margin-right: 0px; } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 48\n * @framerIntrinsicWidth 164\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const Frameri7vrt9GEl=withCSS(Component,css,\"framer-Y29QC\");export default Frameri7vrt9GEl;Frameri7vrt9GEl.displayName=\"Components / Logo\";Frameri7vrt9GEl.defaultProps={height:48,width:164};addFonts(Frameri7vrt9GEl,[{explicitInter:true,fonts:[]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Frameri7vrt9GEl\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"48\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"164\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./i7vrt9GEl.map","import{MotionValue}from\"framer\";// Basic MotionValue check\nexport const isMotionValue=v=>v instanceof MotionValue;\nexport const __FramerMetadata__ = {\"exports\":{\"isMotionValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./isMotionValue.map","import{useCallback,useEffect,useRef}from\"react\";import{motionValue,animate,RenderTarget}from\"framer\";import{isMotionValue}from\"https://framerusercontent.com/modules/3mKFSGQqKHV82uOV1eBc/TbXI1XaZFNevVKcgIt7G/isMotionValue.js\";import{useConstant}from\"https://framerusercontent.com/modules/ExNgrA7EJTKUPpH6vIlN/eiOrSJ2Ab5M9jPCvVwUz/useConstant.js\";export function useAutoMotionValue(inputValue,options){// Put options on a local ref\n// Might wanna just memo instead but it works for now\nconst optionsRef=useRef(options);const animation=useRef();const didInitialMount=useRef(false);const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;// in-progress - trying to figure out effect hooks\nconst onChangeDeps=(options===null||options===void 0?void 0:options.onChangeDeps)?options.onChangeDeps:[];// Memoize the onChange handler\nconst onChange=useCallback(options===null||options===void 0?void 0:options.onChange,[...onChangeDeps,]);// Optionally scale the value from props\nconst transformer=useCallback(value=>{var ref;return((ref=optionsRef.current)===null||ref===void 0?void 0:ref.transform)?optionsRef.current.transform(value):value;},[]);// Create new MotionValue from inputValue\nconst value1=useConstant(()=>isMotionValue(inputValue)?inputValue:motionValue(transformer(inputValue)));// Setting value from prop change\nuseEffect(()=>{if(!isMotionValue(inputValue)&&didInitialMount.current){var ref,ref1;const newValue=transformer(inputValue);(ref=animation.current)===null||ref===void 0?void 0:ref.stop();// Call change callback\nif(onChange)onChange(newValue,value1);// Trigger animation to new value\nif(((ref1=optionsRef.current)===null||ref1===void 0?void 0:ref1.animate)&&!isOnCanvas){var ref2;// @ts-ignore\nanimation.current=animate(value1,newValue,(ref2=optionsRef.current)===null||ref2===void 0?void 0:ref2.transition);}else{value1.set(newValue);}}didInitialMount.current=true;},[inputValue,...onChangeDeps]);return value1;}\nexport const __FramerMetadata__ = {\"exports\":{\"useAutoMotionValue\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./useAutoMotionValue.map","var _global = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : global;\n\nvar exports = {};\ntypeof navigator !== \"undefined\" && function (root, factory) {\n  if (exports) {\n    exports = factory(root);\n  } else {\n    root.lottie = factory(root);\n    root.bodymovin = root.lottie;\n  }\n}(window || {}, function (window) {\n  /* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\n  expressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix */\n\n  /* exported locationHref, subframeEnabled, expressionsPlugin */\n  'use strict';\n  /* exported svgNS, locationHref, initialDefaultFrame */\n\n  var svgNS = \"http://www.w3.org/2000/svg\";\n  var locationHref = \"\";\n  var initialDefaultFrame = -999999;\n  /* global createSizedArray */\n\n  /* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\n  defaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\n  BMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\n  addSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\n\n  var subframeEnabled = true;\n  var expressionsPlugin;\n  var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n  var cachedColors = {};\n  var bmRnd;\n  var bmPow = Math.pow;\n  var bmSqrt = Math.sqrt;\n  var bmFloor = Math.floor;\n  var bmMax = Math.max;\n  var bmMin = Math.min;\n  var BMMath = {};\n\n  (function () {\n    var propertyNames = [\"abs\", \"acos\", \"acosh\", \"asin\", \"asinh\", \"atan\", \"atanh\", \"atan2\", \"ceil\", \"cbrt\", \"expm1\", \"clz32\", \"cos\", \"cosh\", \"exp\", \"floor\", \"fround\", \"hypot\", \"imul\", \"log\", \"log1p\", \"log2\", \"log10\", \"max\", \"min\", \"pow\", \"random\", \"round\", \"sign\", \"sin\", \"sinh\", \"sqrt\", \"tan\", \"tanh\", \"trunc\", \"E\", \"LN10\", \"LN2\", \"LOG10E\", \"LOG2E\", \"PI\", \"SQRT1_2\", \"SQRT2\"];\n    var i;\n    var len = propertyNames.length;\n\n    for (i = 0; i < len; i += 1) {\n      BMMath[propertyNames[i]] = Math[propertyNames[i]];\n    }\n  })();\n\n  function ProjectInterface() {\n    return {};\n  }\n\n  BMMath.random = Math.random;\n\n  BMMath.abs = function (val) {\n    var tOfVal = typeof val;\n\n    if (tOfVal === \"object\" && val.length) {\n      var absArr = createSizedArray(val.length);\n      var i;\n      var len = val.length;\n\n      for (i = 0; i < len; i += 1) {\n        absArr[i] = Math.abs(val[i]);\n      }\n\n      return absArr;\n    }\n\n    return Math.abs(val);\n  };\n\n  var defaultCurveSegments = 150;\n  var degToRads = Math.PI / 180;\n  var roundCorner = 0.5519;\n\n  function roundValues(flag) {\n    if (flag) {\n      bmRnd = Math.round;\n    } else {\n      bmRnd = function (val) {\n        return val;\n      };\n    }\n  }\n\n  roundValues(false);\n\n  function styleDiv(element) {\n    element.style.position = \"absolute\";\n    element.style.top = 0;\n    element.style.left = 0;\n    element.style.display = \"block\";\n    element.style.transformOrigin = \"0 0\";\n    element.style.webkitTransformOrigin = \"0 0\";\n    element.style.backfaceVisibility = \"visible\";\n    element.style.webkitBackfaceVisibility = \"visible\";\n    element.style.transformStyle = \"preserve-3d\";\n    element.style.webkitTransformStyle = \"preserve-3d\";\n    element.style.mozTransformStyle = \"preserve-3d\";\n  }\n\n  function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).currentTime = currentTime;\n    (this || _global).totalTime = totalTime;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteEvent(type, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n    (this || _global).type = type;\n    (this || _global).currentLoop = currentLoop;\n    (this || _global).totalLoops = totalLoops;\n    (this || _global).direction = frameMultiplier < 0 ? -1 : 1;\n  }\n\n  function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n    (this || _global).type = type;\n    (this || _global).firstFrame = firstFrame;\n    (this || _global).totalFrames = totalFrames;\n  }\n\n  function BMDestroyEvent(type, target) {\n    (this || _global).type = type;\n    (this || _global).target = target;\n  }\n\n  function BMRenderFrameErrorEvent(nativeError, currentTime) {\n    (this || _global).type = \"renderFrameError\";\n    (this || _global).nativeError = nativeError;\n    (this || _global).currentTime = currentTime;\n  }\n\n  function BMConfigErrorEvent(nativeError) {\n    (this || _global).type = \"configError\";\n    (this || _global).nativeError = nativeError;\n  }\n\n  function BMAnimationConfigErrorEvent(type, nativeError) {\n    (this || _global).type = type;\n    (this || _global).nativeError = nativeError;\n  }\n\n  var createElementID = function () {\n    var _count = 0;\n    return function createID() {\n      _count += 1;\n      return \"__lottie_element_\" + _count;\n    };\n  }();\n\n  function HSVtoRGB(h, s, v) {\n    var r;\n    var g;\n    var b;\n    var i;\n    var f;\n    var p;\n    var q;\n    var t;\n    i = Math.floor(h * 6);\n    f = h * 6 - i;\n    p = v * (1 - s);\n    q = v * (1 - f * s);\n    t = v * (1 - (1 - f) * s);\n\n    switch (i % 6) {\n      case 0:\n        r = v;\n        g = t;\n        b = p;\n        break;\n\n      case 1:\n        r = q;\n        g = v;\n        b = p;\n        break;\n\n      case 2:\n        r = p;\n        g = v;\n        b = t;\n        break;\n\n      case 3:\n        r = p;\n        g = q;\n        b = v;\n        break;\n\n      case 4:\n        r = t;\n        g = p;\n        b = v;\n        break;\n\n      case 5:\n        r = v;\n        g = p;\n        b = q;\n        break;\n\n      default:\n        break;\n    }\n\n    return [r, g, b];\n  }\n\n  function RGBtoHSV(r, g, b) {\n    var max = Math.max(r, g, b);\n    var min = Math.min(r, g, b);\n    var d = max - min;\n    var h;\n    var s = max === 0 ? 0 : d / max;\n    var v = max / 255;\n\n    switch (max) {\n      case min:\n        h = 0;\n        break;\n\n      case r:\n        h = g - b + d * (g < b ? 6 : 0);\n        h /= 6 * d;\n        break;\n\n      case g:\n        h = b - r + d * 2;\n        h /= 6 * d;\n        break;\n\n      case b:\n        h = r - g + d * 4;\n        h /= 6 * d;\n        break;\n\n      default:\n        break;\n    }\n\n    return [h, s, v];\n  }\n\n  function addSaturationToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[1] += offset;\n\n    if (hsv[1] > 1) {\n      hsv[1] = 1;\n    } else if (hsv[1] <= 0) {\n      hsv[1] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addBrightnessToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[2] += offset;\n\n    if (hsv[2] > 1) {\n      hsv[2] = 1;\n    } else if (hsv[2] < 0) {\n      hsv[2] = 0;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  function addHueToRGB(color, offset) {\n    var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n    hsv[0] += offset / 360;\n\n    if (hsv[0] > 1) {\n      hsv[0] -= 1;\n    } else if (hsv[0] < 0) {\n      hsv[0] += 1;\n    }\n\n    return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n  }\n\n  var rgbToHex = function () {\n    var colorMap = [];\n    var i;\n    var hex;\n\n    for (i = 0; i < 256; i += 1) {\n      hex = i.toString(16);\n      colorMap[i] = hex.length === 1 ? \"0\" + hex : hex;\n    }\n\n    return function (r, g, b) {\n      if (r < 0) {\n        r = 0;\n      }\n\n      if (g < 0) {\n        g = 0;\n      }\n\n      if (b < 0) {\n        b = 0;\n      }\n\n      return \"#\" + colorMap[r] + colorMap[g] + colorMap[b];\n    };\n  }();\n\n  function BaseEvent() {}\n\n  BaseEvent.prototype = {\n    triggerEvent: function (eventName, args) {\n      if ((this || _global)._cbs[eventName]) {\n        var len = (this || _global)._cbs[eventName].length;\n\n        for (var i = 0; i < len; i += 1) {\n          (this || _global)._cbs[eventName][i](args);\n        }\n      }\n    },\n    addEventListener: function (eventName, callback) {\n      if (!(this || _global)._cbs[eventName]) {\n        (this || _global)._cbs[eventName] = [];\n      }\n\n      (this || _global)._cbs[eventName].push(callback);\n\n      return function () {\n        this.removeEventListener(eventName, callback);\n      }.bind(this || _global);\n    },\n    removeEventListener: function (eventName, callback) {\n      if (!callback) {\n        (this || _global)._cbs[eventName] = null;\n      } else if ((this || _global)._cbs[eventName]) {\n        var i = 0;\n        var len = (this || _global)._cbs[eventName].length;\n\n        while (i < len) {\n          if ((this || _global)._cbs[eventName][i] === callback) {\n            (this || _global)._cbs[eventName].splice(i, 1);\n\n            i -= 1;\n            len -= 1;\n          }\n\n          i += 1;\n        }\n\n        if (!(this || _global)._cbs[eventName].length) {\n          (this || _global)._cbs[eventName] = null;\n        }\n      }\n    }\n  };\n  /* exported createTypedArray, createSizedArray */\n\n  var createTypedArray = function () {\n    function createRegularArray(type, len) {\n      var i = 0;\n      var arr = [];\n      var value;\n\n      switch (type) {\n        case \"int16\":\n        case \"uint8c\":\n          value = 1;\n          break;\n\n        default:\n          value = 1.1;\n          break;\n      }\n\n      for (i = 0; i < len; i += 1) {\n        arr.push(value);\n      }\n\n      return arr;\n    }\n\n    function createTypedArrayFactory(type, len) {\n      if (type === \"float32\") {\n        return new Float32Array(len);\n      }\n\n      if (type === \"int16\") {\n        return new Int16Array(len);\n      }\n\n      if (type === \"uint8c\") {\n        return new Uint8ClampedArray(len);\n      }\n\n      return createRegularArray(type, len);\n    }\n\n    if (typeof Uint8ClampedArray === \"function\" && typeof Float32Array === \"function\") {\n      return createTypedArrayFactory;\n    }\n\n    return createRegularArray;\n  }();\n\n  function createSizedArray(len) {\n    return Array.apply(null, {\n      length: len\n    });\n  }\n  /* global svgNS */\n\n  /* exported createNS */\n\n\n  function createNS(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElementNS(svgNS, type);\n  }\n  /* exported createTag */\n\n\n  function createTag(type) {\n    // return {appendChild:function(){},setAttribute:function(){},style:{}}\n    return document.createElement(type);\n  }\n\n  function DynamicPropertyContainer() {}\n\n  DynamicPropertyContainer.prototype = {\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n\n        (this || _global).container.addDynamicProperty(this || _global);\n\n        (this || _global)._isAnimated = true;\n      }\n    },\n    iterateDynamicProperties: function () {\n      (this || _global)._mdf = false;\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).dynamicProperties[i].getValue();\n\n        if ((this || _global).dynamicProperties[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    },\n    initDynamicPropertyContainer: function (container) {\n      (this || _global).container = container;\n      (this || _global).dynamicProperties = [];\n      (this || _global)._mdf = false;\n      (this || _global)._isAnimated = false;\n    }\n  };\n  /* exported getBlendMode */\n\n  var getBlendMode = function () {\n    var blendModeEnums = {\n      0: \"source-over\",\n      1: \"multiply\",\n      2: \"screen\",\n      3: \"overlay\",\n      4: \"darken\",\n      5: \"lighten\",\n      6: \"color-dodge\",\n      7: \"color-burn\",\n      8: \"hard-light\",\n      9: \"soft-light\",\n      10: \"difference\",\n      11: \"exclusion\",\n      12: \"hue\",\n      13: \"saturation\",\n      14: \"color\",\n      15: \"luminosity\"\n    };\n    return function (mode) {\n      return blendModeEnums[mode] || \"\";\n    };\n  }();\n  /* global createTypedArray */\n\n  /*!\r\n   Transformation Matrix v2.0\r\n   (c) Epistemex 2014-2015\r\n   www.epistemex.com\r\n   By Ken Fyrstenberg\r\n   Contributions by leeoniya.\r\n   License: MIT, header required.\r\n   */\n\n  /**\r\n   * 2D transformation matrix object initialized with identity matrix.\r\n   *\r\n   * The matrix can synchronize a canvas context by supplying the context\r\n   * as an argument, or later apply current absolute transform to an\r\n   * existing context.\r\n   *\r\n   * All values are handled as floating point values.\r\n   *\r\n   * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n   * @prop {number} a - scale x\r\n   * @prop {number} b - shear y\r\n   * @prop {number} c - shear x\r\n   * @prop {number} d - scale y\r\n   * @prop {number} e - translate x\r\n   * @prop {number} f - translate y\r\n   * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n   * @constructor\r\n   */\n\n\n  var Matrix = function () {\n    var _cos = Math.cos;\n    var _sin = Math.sin;\n    var _tan = Math.tan;\n    var _rnd = Math.round;\n\n    function reset() {\n      (this || _global).props[0] = 1;\n      (this || _global).props[1] = 0;\n      (this || _global).props[2] = 0;\n      (this || _global).props[3] = 0;\n      (this || _global).props[4] = 0;\n      (this || _global).props[5] = 1;\n      (this || _global).props[6] = 0;\n      (this || _global).props[7] = 0;\n      (this || _global).props[8] = 0;\n      (this || _global).props[9] = 0;\n      (this || _global).props[10] = 1;\n      (this || _global).props[11] = 0;\n      (this || _global).props[12] = 0;\n      (this || _global).props[13] = 0;\n      (this || _global).props[14] = 0;\n      (this || _global).props[15] = 1;\n      return this || _global;\n    }\n\n    function rotate(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function rotateX(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateY(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n    }\n\n    function rotateZ(angle) {\n      if (angle === 0) {\n        return this || _global;\n      }\n\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n    }\n\n    function shear(sx, sy) {\n      return this._t(1, sy, sx, 1, 0, 0);\n    }\n\n    function skew(ax, ay) {\n      return this.shear(_tan(ax), _tan(ay));\n    }\n\n    function skewFromAxis(ax, angle) {\n      var mCos = _cos(angle);\n\n      var mSin = _sin(angle);\n\n      return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n    }\n\n    function scale(sx, sy, sz) {\n      if (!sz && sz !== 0) {\n        sz = 1;\n      }\n\n      if (sx === 1 && sy === 1 && sz === 1) {\n        return this || _global;\n      }\n\n      return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n    }\n\n    function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n      (this || _global).props[0] = a;\n      (this || _global).props[1] = b;\n      (this || _global).props[2] = c;\n      (this || _global).props[3] = d;\n      (this || _global).props[4] = e;\n      (this || _global).props[5] = f;\n      (this || _global).props[6] = g;\n      (this || _global).props[7] = h;\n      (this || _global).props[8] = i;\n      (this || _global).props[9] = j;\n      (this || _global).props[10] = k;\n      (this || _global).props[11] = l;\n      (this || _global).props[12] = m;\n      (this || _global).props[13] = n;\n      (this || _global).props[14] = o;\n      (this || _global).props[15] = p;\n      return this || _global;\n    }\n\n    function translate(tx, ty, tz) {\n      tz = tz || 0;\n\n      if (tx !== 0 || ty !== 0 || tz !== 0) {\n        return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n      }\n\n      return this || _global;\n    }\n\n    function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n      var _p = (this || _global).props;\n\n      if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n        // NOTE: commenting this condition because TurboFan deoptimizes code when present\n        // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n        _p[12] = _p[12] * a2 + _p[15] * m2;\n        _p[13] = _p[13] * f2 + _p[15] * n2;\n        _p[14] = _p[14] * k2 + _p[15] * o2;\n        _p[15] *= p2; // }\n\n        (this || _global)._identityCalculated = false;\n        return this || _global;\n      }\n\n      var a1 = _p[0];\n      var b1 = _p[1];\n      var c1 = _p[2];\n      var d1 = _p[3];\n      var e1 = _p[4];\n      var f1 = _p[5];\n      var g1 = _p[6];\n      var h1 = _p[7];\n      var i1 = _p[8];\n      var j1 = _p[9];\n      var k1 = _p[10];\n      var l1 = _p[11];\n      var m1 = _p[12];\n      var n1 = _p[13];\n      var o1 = _p[14];\n      var p1 = _p[15];\n      /* matrix order (canvas compatible):\r\n           * ace\r\n           * bdf\r\n           * 001\r\n           */\n\n      _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n      _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n      _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n      _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n      _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n      _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n      _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n      _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n      _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n      _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n      _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n      _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n      _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n      _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n      _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n      _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n      (this || _global)._identityCalculated = false;\n      return this || _global;\n    }\n\n    function isIdentity() {\n      if (!(this || _global)._identityCalculated) {\n        (this || _global)._identity = !((this || _global).props[0] !== 1 || (this || _global).props[1] !== 0 || (this || _global).props[2] !== 0 || (this || _global).props[3] !== 0 || (this || _global).props[4] !== 0 || (this || _global).props[5] !== 1 || (this || _global).props[6] !== 0 || (this || _global).props[7] !== 0 || (this || _global).props[8] !== 0 || (this || _global).props[9] !== 0 || (this || _global).props[10] !== 1 || (this || _global).props[11] !== 0 || (this || _global).props[12] !== 0 || (this || _global).props[13] !== 0 || (this || _global).props[14] !== 0 || (this || _global).props[15] !== 1);\n        (this || _global)._identityCalculated = true;\n      }\n\n      return (this || _global)._identity;\n    }\n\n    function equals(matr) {\n      var i = 0;\n\n      while (i < 16) {\n        if (matr.props[i] !== (this || _global).props[i]) {\n          return false;\n        }\n\n        i += 1;\n      }\n\n      return true;\n    }\n\n    function clone(matr) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        matr.props[i] = (this || _global).props[i];\n      }\n\n      return matr;\n    }\n\n    function cloneFromProps(props) {\n      var i;\n\n      for (i = 0; i < 16; i += 1) {\n        (this || _global).props[i] = props[i];\n      }\n    }\n\n    function applyToPoint(x, y, z) {\n      return {\n        x: x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12],\n        y: x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13],\n        z: x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14]\n      };\n      /* return {\r\n           x: x * me.a + y * me.c + me.e,\r\n           y: x * me.b + y * me.d + me.f\r\n           }; */\n    }\n\n    function applyToX(x, y, z) {\n      return x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12];\n    }\n\n    function applyToY(x, y, z) {\n      return x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13];\n    }\n\n    function applyToZ(x, y, z) {\n      return x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14];\n    }\n\n    function getInverseMatrix() {\n      var determinant = (this || _global).props[0] * (this || _global).props[5] - (this || _global).props[1] * (this || _global).props[4];\n      var a = (this || _global).props[5] / determinant;\n      var b = -(this || _global).props[1] / determinant;\n      var c = -(this || _global).props[4] / determinant;\n      var d = (this || _global).props[0] / determinant;\n      var e = ((this || _global).props[4] * (this || _global).props[13] - (this || _global).props[5] * (this || _global).props[12]) / determinant;\n      var f = -((this || _global).props[0] * (this || _global).props[13] - (this || _global).props[1] * (this || _global).props[12]) / determinant;\n      var inverseMatrix = new Matrix();\n      inverseMatrix.props[0] = a;\n      inverseMatrix.props[1] = b;\n      inverseMatrix.props[4] = c;\n      inverseMatrix.props[5] = d;\n      inverseMatrix.props[12] = e;\n      inverseMatrix.props[13] = f;\n      return inverseMatrix;\n    }\n\n    function inversePoint(pt) {\n      var inverseMatrix = this.getInverseMatrix();\n      return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n    }\n\n    function inversePoints(pts) {\n      var i;\n      var len = pts.length;\n      var retPts = [];\n\n      for (i = 0; i < len; i += 1) {\n        retPts[i] = inversePoint(pts[i]);\n      }\n\n      return retPts;\n    }\n\n    function applyToTriplePoints(pt1, pt2, pt3) {\n      var arr = createTypedArray(\"float32\", 6);\n\n      if (this.isIdentity()) {\n        arr[0] = pt1[0];\n        arr[1] = pt1[1];\n        arr[2] = pt2[0];\n        arr[3] = pt2[1];\n        arr[4] = pt3[0];\n        arr[5] = pt3[1];\n      } else {\n        var p0 = (this || _global).props[0];\n        var p1 = (this || _global).props[1];\n        var p4 = (this || _global).props[4];\n        var p5 = (this || _global).props[5];\n        var p12 = (this || _global).props[12];\n        var p13 = (this || _global).props[13];\n        arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n        arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n        arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n        arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n        arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n        arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n      }\n\n      return arr;\n    }\n\n    function applyToPointArray(x, y, z) {\n      var arr;\n\n      if (this.isIdentity()) {\n        arr = [x, y, z];\n      } else {\n        arr = [x * (this || _global).props[0] + y * (this || _global).props[4] + z * (this || _global).props[8] + (this || _global).props[12], x * (this || _global).props[1] + y * (this || _global).props[5] + z * (this || _global).props[9] + (this || _global).props[13], x * (this || _global).props[2] + y * (this || _global).props[6] + z * (this || _global).props[10] + (this || _global).props[14]];\n      }\n\n      return arr;\n    }\n\n    function applyToPointStringified(x, y) {\n      if (this.isIdentity()) {\n        return x + \",\" + y;\n      }\n\n      var _p = (this || _global).props;\n      return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + \",\" + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n    }\n\n    function toCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var i = 0;\n      var props = (this || _global).props;\n      var cssValue = \"matrix3d(\";\n      var v = 10000;\n\n      while (i < 16) {\n        cssValue += _rnd(props[i] * v) / v;\n        cssValue += i === 15 ? \")\" : \",\";\n        i += 1;\n      }\n\n      return cssValue;\n    }\n\n    function roundMatrixProperty(val) {\n      var v = 10000;\n\n      if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n        return _rnd(val * v) / v;\n      }\n\n      return val;\n    }\n\n    function to2dCSS() {\n      // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n      /* if(this.isIdentity()) {\r\n              return '';\r\n          } */\n      var props = (this || _global).props;\n\n      var _a = roundMatrixProperty(props[0]);\n\n      var _b = roundMatrixProperty(props[1]);\n\n      var _c = roundMatrixProperty(props[4]);\n\n      var _d = roundMatrixProperty(props[5]);\n\n      var _e = roundMatrixProperty(props[12]);\n\n      var _f = roundMatrixProperty(props[13]);\n\n      return \"matrix(\" + _a + \",\" + _b + \",\" + _c + \",\" + _d + \",\" + _e + \",\" + _f + \")\";\n    }\n\n    return function () {\n      (this || _global).reset = reset;\n      (this || _global).rotate = rotate;\n      (this || _global).rotateX = rotateX;\n      (this || _global).rotateY = rotateY;\n      (this || _global).rotateZ = rotateZ;\n      (this || _global).skew = skew;\n      (this || _global).skewFromAxis = skewFromAxis;\n      (this || _global).shear = shear;\n      (this || _global).scale = scale;\n      (this || _global).setTransform = setTransform;\n      (this || _global).translate = translate;\n      (this || _global).transform = transform;\n      (this || _global).applyToPoint = applyToPoint;\n      (this || _global).applyToX = applyToX;\n      (this || _global).applyToY = applyToY;\n      (this || _global).applyToZ = applyToZ;\n      (this || _global).applyToPointArray = applyToPointArray;\n      (this || _global).applyToTriplePoints = applyToTriplePoints;\n      (this || _global).applyToPointStringified = applyToPointStringified;\n      (this || _global).toCSS = toCSS;\n      (this || _global).to2dCSS = to2dCSS;\n      (this || _global).clone = clone;\n      (this || _global).cloneFromProps = cloneFromProps;\n      (this || _global).equals = equals;\n      (this || _global).inversePoints = inversePoints;\n      (this || _global).inversePoint = inversePoint;\n      (this || _global).getInverseMatrix = getInverseMatrix;\n      (this || _global)._t = (this || _global).transform;\n      (this || _global).isIdentity = isIdentity;\n      (this || _global)._identity = true;\n      (this || _global)._identityCalculated = false;\n      (this || _global).props = createTypedArray(\"float32\", 16);\n      this.reset();\n    };\n  }();\n  /* eslint-disable */\n\n  /*\r\n   Copyright 2014 David Bau.\r\n  \r\n   Permission is hereby granted, free of charge, to any person obtaining\r\n   a copy of this software and associated documentation files (the\r\n   \"Software\"), to deal in the Software without restriction, including\r\n   without limitation the rights to use, copy, modify, merge, publish,\r\n   distribute, sublicense, and/or sell copies of the Software, and to\r\n   permit persons to whom the Software is furnished to do so, subject to\r\n   the following conditions:\r\n  \r\n   The above copyright notice and this permission notice shall be\r\n   included in all copies or substantial portions of the Software.\r\n  \r\n   THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n   IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n   CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n   TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n   SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n  \r\n   */\n\n\n  (function (pool, math) {\n    //\n    // The following constants are related to IEEE 754 limits.\n    //\n    var global = this || _global,\n        width = 256,\n        // each RC4 output is 0 <= x < 256\n    chunks = 6,\n        // at least six RC4 outputs for each double\n    digits = 52,\n        // there are 52 significant digits in a double\n    rngname = \"random\",\n        // rngname: name for Math.random and Math.seedrandom\n    startdenom = math.pow(width, chunks),\n        significance = math.pow(2, digits),\n        overflow = significance * 2,\n        mask = width - 1,\n        nodecrypto; // node.js crypto module, initialized at the bottom.\n    //\n    // seedrandom()\n    // This is the seedrandom function described above.\n    //\n\n    function seedrandom(seed, options, callback) {\n      var key = [];\n      options = options === true ? {\n        entropy: true\n      } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n      var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n      var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n      // randomness in every bit of the mantissa of the IEEE 754 value.\n\n      var prng = function () {\n        var n = arc4.g(chunks),\n            // Start with a numerator n < 2 ^ 48\n        d = startdenom,\n            //   and denominator d = 2 ^ 48.\n        x = 0; //   and no 'extra last byte'.\n\n        while (n < significance) {\n          // Fill up all significant digits by\n          n = (n + x) * width; //   shifting numerator and\n\n          d *= width; //   denominator and generating a\n\n          x = arc4.g(1); //   new least-significant-byte.\n        }\n\n        while (n >= overflow) {\n          // To avoid rounding up, before adding\n          n /= 2; //   last byte, shift everything\n\n          d /= 2; //   right using integer math until\n\n          x >>>= 1; //   we have exactly the desired bits.\n        }\n\n        return (n + x) / d; // Form the number within [0, 1).\n      };\n\n      prng.int32 = function () {\n        return arc4.g(4) | 0;\n      };\n\n      prng.quick = function () {\n        return arc4.g(4) / 4294967296;\n      };\n\n      prng.double = prng; // Mix the randomness into accumulated entropy.\n\n      mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n      return (options.pass || callback || function (prng, seed, is_math_call, state) {\n        if (state) {\n          // Load the arc4 state from the given state if it has an S array.\n          if (state.S) {\n            copy(state, arc4);\n          } // Only provide the .state method if requested via options.state.\n\n\n          prng.state = function () {\n            return copy(arc4, {});\n          };\n        } // If called as a method of Math (Math.seedrandom()), mutate\n        // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n        if (is_math_call) {\n          math[rngname] = prng;\n          return seed;\n        } // Otherwise, it is a newer calling convention, so return the\n        // prng directly.\n        else return prng;\n      })(prng, shortseed, \"global\" in options ? options.global : (this || _global) == math, options.state);\n    }\n\n    math[\"seed\" + rngname] = seedrandom; //\n    // ARC4\n    //\n    // An ARC4 implementation.  The constructor takes a key in the form of\n    // an array of at most (width) integers that should be 0 <= x < (width).\n    //\n    // The g(count) method returns a pseudorandom integer that concatenates\n    // the next (count) outputs from ARC4.  Its return value is a number x\n    // that is in the range 0 <= x < (width ^ count).\n    //\n\n    function ARC4(key) {\n      var t,\n          keylen = key.length,\n          me = this || _global,\n          i = 0,\n          j = me.i = me.j = 0,\n          s = me.S = []; // The empty key [] is treated as [0].\n\n      if (!keylen) {\n        key = [keylen++];\n      } // Set up S using the standard key scheduling algorithm.\n\n\n      while (i < width) {\n        s[i] = i++;\n      }\n\n      for (i = 0; i < width; i++) {\n        s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n        s[j] = t;\n      } // The \"g\" method returns the next (count) outputs as one number.\n\n\n      me.g = function (count) {\n        // Using instance members instead of closure state nearly doubles speed.\n        var t,\n            r = 0,\n            i = me.i,\n            j = me.j,\n            s = me.S;\n\n        while (count--) {\n          t = s[i = mask & i + 1];\n          r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n        }\n\n        me.i = i;\n        me.j = j;\n        return r; // For robust unpredictability, the function call below automatically\n        // discards an initial batch of values.  This is called RC4-drop[256].\n        // See http://google.com/search?q=rsa+fluhrer+response&btnI\n      };\n    } //\n    // copy()\n    // Copies internal state of ARC4 to or from a plain object.\n    //\n\n\n    function copy(f, t) {\n      t.i = f.i;\n      t.j = f.j;\n      t.S = f.S.slice();\n      return t;\n    } //\n    // flatten()\n    // Converts an object tree to nested arrays of strings.\n    //\n\n\n    function flatten(obj, depth) {\n      var result = [],\n          typ = typeof obj,\n          prop;\n\n      if (depth && typ == \"object\") {\n        for (prop in obj) {\n          try {\n            result.push(flatten(obj[prop], depth - 1));\n          } catch (e) {}\n        }\n      }\n\n      return result.length ? result : typ == \"string\" ? obj : obj + \"\\0\";\n    } //\n    // mixkey()\n    // Mixes a string seed into a key that is an array of integers, and\n    // returns a shortened string seed that is equivalent to the result key.\n    //\n\n\n    function mixkey(seed, key) {\n      var stringseed = seed + \"\",\n          smear,\n          j = 0;\n\n      while (j < stringseed.length) {\n        key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n      }\n\n      return tostring(key);\n    } //\n    // autoseed()\n    // Returns an object for autoseeding, using window.crypto and Node crypto\n    // module if available.\n    //\n\n\n    function autoseed() {\n      try {\n        if (nodecrypto) {\n          return tostring(nodecrypto.randomBytes(width));\n        }\n\n        var out = new Uint8Array(width);\n        (global.crypto || global.msCrypto).getRandomValues(out);\n        return tostring(out);\n      } catch (e) {\n        var browser = global.navigator,\n            plugins = browser && browser.plugins;\n        return [+new Date(), global, plugins, global.screen, tostring(pool)];\n      }\n    } //\n    // tostring()\n    // Converts an array of charcodes to a string\n    //\n\n\n    function tostring(a) {\n      return String.fromCharCode.apply(0, a);\n    } //\n    // When seedrandom.js is loaded, we immediately mix a few bits\n    // from the built-in RNG into the entropy pool.  Because we do\n    // not want to interfere with deterministic PRNG state later,\n    // seedrandom will not call math.random on its own again after\n    // initialization.\n    //\n\n\n    mixkey(math.random(), pool); //\n    // Nodejs and AMD support: export the implementation as a module using\n    // either convention.\n    //\n    // End anonymous scope, and pass initial values.\n  })([], // pool: entropy pool starts empty\n  BMMath // math: package containing random, pow, and seedrandom\n  );\n  /* eslint-disable */\n\n\n  var BezierFactory = function () {\n    /**\r\n       * BezierEasing - use bezier curve for transition easing function\r\n       * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n       *\r\n       * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n       * Usage:\r\n       * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n       * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n       *\r\n       */\n    var ob = {};\n    ob.getBezierEasing = getBezierEasing;\n    var beziers = {};\n\n    function getBezierEasing(a, b, c, d, nm) {\n      var str = nm || (\"bez_\" + a + \"_\" + b + \"_\" + c + \"_\" + d).replace(/\\./g, \"p\");\n\n      if (beziers[str]) {\n        return beziers[str];\n      }\n\n      var bezEasing = new BezierEasing([a, b, c, d]);\n      beziers[str] = bezEasing;\n      return bezEasing;\n    } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n    var NEWTON_ITERATIONS = 4;\n    var NEWTON_MIN_SLOPE = 0.001;\n    var SUBDIVISION_PRECISION = 1e-7;\n    var SUBDIVISION_MAX_ITERATIONS = 10;\n    var kSplineTableSize = 11;\n    var kSampleStepSize = 1 / (kSplineTableSize - 1);\n    var float32ArraySupported = typeof Float32Array === \"function\";\n\n    function A(aA1, aA2) {\n      return 1 - 3 * aA2 + 3 * aA1;\n    }\n\n    function B(aA1, aA2) {\n      return 3 * aA2 - 6 * aA1;\n    }\n\n    function C(aA1) {\n      return 3 * aA1;\n    } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n    function calcBezier(aT, aA1, aA2) {\n      return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n    } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n    function getSlope(aT, aA1, aA2) {\n      return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);\n    }\n\n    function binarySubdivide(aX, aA, aB, mX1, mX2) {\n      var currentX,\n          currentT,\n          i = 0;\n\n      do {\n        currentT = aA + (aB - aA) / 2;\n        currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n        if (currentX > 0) {\n          aB = currentT;\n        } else {\n          aA = currentT;\n        }\n      } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n      return currentT;\n    }\n\n    function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n      for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n        var currentSlope = getSlope(aGuessT, mX1, mX2);\n        if (currentSlope === 0) return aGuessT;\n        var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n        aGuessT -= currentX / currentSlope;\n      }\n\n      return aGuessT;\n    }\n    /**\r\n       * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n       */\n\n\n    function BezierEasing(points) {\n      (this || _global)._p = points;\n      (this || _global)._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n      (this || _global)._precomputed = false;\n      (this || _global).get = (this || _global).get.bind(this || _global);\n    }\n\n    BezierEasing.prototype = {\n      get: function (x) {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        if (!(this || _global)._precomputed) this._precompute();\n        if (mX1 === mY1 && mX2 === mY2) return x; // linear\n        // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n        if (x === 0) return 0;\n        if (x === 1) return 1;\n        return calcBezier(this._getTForX(x), mY1, mY2);\n      },\n      // Private part\n      _precompute: function () {\n        var mX1 = (this || _global)._p[0],\n            mY1 = (this || _global)._p[1],\n            mX2 = (this || _global)._p[2],\n            mY2 = (this || _global)._p[3];\n        (this || _global)._precomputed = true;\n\n        if (mX1 !== mY1 || mX2 !== mY2) {\n          this._calcSampleValues();\n        }\n      },\n      _calcSampleValues: function () {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2];\n\n        for (var i = 0; i < kSplineTableSize; ++i) {\n          (this || _global)._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n        }\n      },\n\n      /**\r\n           * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n           */\n      _getTForX: function (aX) {\n        var mX1 = (this || _global)._p[0],\n            mX2 = (this || _global)._p[2],\n            mSampleValues = (this || _global)._mSampleValues;\n        var intervalStart = 0;\n        var currentSample = 1;\n        var lastSample = kSplineTableSize - 1;\n\n        for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n          intervalStart += kSampleStepSize;\n        }\n\n        --currentSample; // Interpolate to provide an initial guess for t\n\n        var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n        var guessForT = intervalStart + dist * kSampleStepSize;\n        var initialSlope = getSlope(guessForT, mX1, mX2);\n\n        if (initialSlope >= NEWTON_MIN_SLOPE) {\n          return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n        }\n\n        if (initialSlope === 0) {\n          return guessForT;\n        }\n\n        return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n      }\n    };\n    return ob;\n  }();\n\n  (function () {\n    var lastTime = 0;\n    var vendors = [\"ms\", \"moz\", \"webkit\", \"o\"];\n\n    for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n      // eslint-disable-line no-plusplus\n      window.requestAnimationFrame = window[vendors[x] + \"RequestAnimationFrame\"];\n      window.cancelAnimationFrame = window[vendors[x] + \"CancelAnimationFrame\"] || window[vendors[x] + \"CancelRequestAnimationFrame\"];\n    }\n\n    if (!window.requestAnimationFrame) {\n      window.requestAnimationFrame = function (callback) {\n        var currTime = new Date().getTime();\n        var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n        var id = setTimeout(function () {\n          callback(currTime + timeToCall);\n        }, timeToCall);\n        lastTime = currTime + timeToCall;\n        return id;\n      };\n    }\n\n    if (!window.cancelAnimationFrame) {\n      window.cancelAnimationFrame = function (id) {\n        clearTimeout(id);\n      };\n    }\n  })();\n  /* exported extendPrototype, getDescriptor, createProxyFunction */\n\n\n  function extendPrototype(sources, destination) {\n    var i;\n    var len = sources.length;\n    var sourcePrototype;\n\n    for (i = 0; i < len; i += 1) {\n      sourcePrototype = sources[i].prototype;\n\n      for (var attr in sourcePrototype) {\n        if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n      }\n    }\n  }\n\n  function getDescriptor(object, prop) {\n    return Object.getOwnPropertyDescriptor(object, prop);\n  }\n\n  function createProxyFunction(prototype) {\n    function ProxyFunction() {}\n\n    ProxyFunction.prototype = prototype;\n    return ProxyFunction;\n  }\n  /* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\n\n  /* exported bez */\n\n\n  function bezFunction() {\n    var math = Math;\n\n    function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n      var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n      return det1 > -0.001 && det1 < 0.001;\n    }\n\n    function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n      if (z1 === 0 && z2 === 0 && z3 === 0) {\n        return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n      }\n\n      var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n      var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n      var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n      var diffDist;\n\n      if (dist1 > dist2) {\n        if (dist1 > dist3) {\n          diffDist = dist1 - dist2 - dist3;\n        } else {\n          diffDist = dist3 - dist2 - dist1;\n        }\n      } else if (dist3 > dist2) {\n        diffDist = dist3 - dist2 - dist1;\n      } else {\n        diffDist = dist2 - dist1 - dist3;\n      }\n\n      return diffDist > -0.0001 && diffDist < 0.0001;\n    }\n\n    var getBezierLength = function () {\n      return function (pt1, pt2, pt3, pt4) {\n        var curveSegments = defaultCurveSegments;\n        var k;\n        var i;\n        var len;\n        var ptCoord;\n        var perc;\n        var addedLength = 0;\n        var ptDistance;\n        var point = [];\n        var lastPoint = [];\n        var lengthData = bezierLengthPool.newElement();\n        len = pt3.length;\n\n        for (k = 0; k < curveSegments; k += 1) {\n          perc = k / (curveSegments - 1);\n          ptDistance = 0;\n\n          for (i = 0; i < len; i += 1) {\n            ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n            point[i] = ptCoord;\n\n            if (lastPoint[i] !== null) {\n              ptDistance += bmPow(point[i] - lastPoint[i], 2);\n            }\n\n            lastPoint[i] = point[i];\n          }\n\n          if (ptDistance) {\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n          }\n\n          lengthData.percents[k] = perc;\n          lengthData.lengths[k] = addedLength;\n        }\n\n        lengthData.addedLength = addedLength;\n        return lengthData;\n      };\n    }();\n\n    function getSegmentsLength(shapeData) {\n      var segmentsLength = segmentsLengthPool.newElement();\n      var closed = shapeData.c;\n      var pathV = shapeData.v;\n      var pathO = shapeData.o;\n      var pathI = shapeData.i;\n      var i;\n      var len = shapeData._length;\n      var lengths = segmentsLength.lengths;\n      var totalLength = 0;\n\n      for (i = 0; i < len - 1; i += 1) {\n        lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      if (closed && len) {\n        lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n        totalLength += lengths[i].addedLength;\n      }\n\n      segmentsLength.totalLength = totalLength;\n      return segmentsLength;\n    }\n\n    function BezierData(length) {\n      (this || _global).segmentLength = 0;\n      (this || _global).points = new Array(length);\n    }\n\n    function PointData(partial, point) {\n      (this || _global).partialLength = partial;\n      (this || _global).point = point;\n    }\n\n    var buildBezierData = function () {\n      var storedData = {};\n      return function (pt1, pt2, pt3, pt4) {\n        var bezierName = (pt1[0] + \"_\" + pt1[1] + \"_\" + pt2[0] + \"_\" + pt2[1] + \"_\" + pt3[0] + \"_\" + pt3[1] + \"_\" + pt4[0] + \"_\" + pt4[1]).replace(/\\./g, \"p\");\n\n        if (!storedData[bezierName]) {\n          var curveSegments = defaultCurveSegments;\n          var k;\n          var i;\n          var len;\n          var ptCoord;\n          var perc;\n          var addedLength = 0;\n          var ptDistance;\n          var point;\n          var lastPoint = null;\n\n          if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n            curveSegments = 2;\n          }\n\n          var bezierData = new BezierData(curveSegments);\n          len = pt3.length;\n\n          for (k = 0; k < curveSegments; k += 1) {\n            point = createSizedArray(len);\n            perc = k / (curveSegments - 1);\n            ptDistance = 0;\n\n            for (i = 0; i < len; i += 1) {\n              ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n              point[i] = ptCoord;\n\n              if (lastPoint !== null) {\n                ptDistance += bmPow(point[i] - lastPoint[i], 2);\n              }\n            }\n\n            ptDistance = bmSqrt(ptDistance);\n            addedLength += ptDistance;\n            bezierData.points[k] = new PointData(ptDistance, point);\n            lastPoint = point;\n          }\n\n          bezierData.segmentLength = addedLength;\n          storedData[bezierName] = bezierData;\n        }\n\n        return storedData[bezierName];\n      };\n    }();\n\n    function getDistancePerc(perc, bezierData) {\n      var percents = bezierData.percents;\n      var lengths = bezierData.lengths;\n      var len = percents.length;\n      var initPos = bmFloor((len - 1) * perc);\n      var lengthPos = perc * bezierData.addedLength;\n      var lPerc = 0;\n\n      if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n        return percents[initPos];\n      }\n\n      var dir = lengths[initPos] > lengthPos ? -1 : 1;\n      var flag = true;\n\n      while (flag) {\n        if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n          lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n          flag = false;\n        } else {\n          initPos += dir;\n        }\n\n        if (initPos < 0 || initPos >= len - 1) {\n          // FIX for TypedArrays that don't store floating point values with enough accuracy\n          if (initPos === len - 1) {\n            return percents[initPos];\n          }\n\n          flag = false;\n        }\n      }\n\n      return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n    }\n\n    function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n      var t1 = getDistancePerc(percent, bezierData);\n      var u1 = 1 - t1;\n      var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n      var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n      return [ptX, ptY];\n    }\n\n    var bezierSegmentPoints = createTypedArray(\"float32\", 8);\n\n    function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n      if (startPerc < 0) {\n        startPerc = 0;\n      } else if (startPerc > 1) {\n        startPerc = 1;\n      }\n\n      var t0 = getDistancePerc(startPerc, bezierData);\n      endPerc = endPerc > 1 ? 1 : endPerc;\n      var t1 = getDistancePerc(endPerc, bezierData);\n      var i;\n      var len = pt1.length;\n      var u0 = 1 - t0;\n      var u1 = 1 - t1;\n      var u0u0u0 = u0 * u0 * u0;\n      var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n      var t0t0t0 = t0 * t0 * t0; //\n\n      var u0u0u1 = u0 * u0 * u1;\n      var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n      var t0t0t1 = t0 * t0 * t1; //\n\n      var u0u1u1 = u0 * u1 * u1;\n      var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n      var t0t1t1 = t0 * t1 * t1; //\n\n      var u1u1u1 = u1 * u1 * u1;\n      var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n      var t1t1t1 = t1 * t1 * t1;\n\n      for (i = 0; i < len; i += 1) {\n        bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n        bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n      }\n\n      return bezierSegmentPoints;\n    }\n\n    return {\n      getSegmentsLength: getSegmentsLength,\n      getNewSegment: getNewSegment,\n      getPointInSegment: getPointInSegment,\n      buildBezierData: buildBezierData,\n      pointOnLine2D: pointOnLine2D,\n      pointOnLine3D: pointOnLine3D\n    };\n  }\n\n  var bez = bezFunction();\n  /* exported dataManager */\n\n  function dataFunctionManager() {\n    // var tCanvasHelper = createTag('canvas').getContext('2d');\n    function completeLayers(layers, comps, fontManager) {\n      var layerData;\n      var i;\n      var len = layers.length;\n      var j;\n      var jLen;\n      var k;\n      var kLen;\n\n      for (i = 0; i < len; i += 1) {\n        layerData = layers[i];\n\n        if (\"ks\" in layerData && !layerData.completed) {\n          layerData.completed = true;\n\n          if (layerData.tt) {\n            layers[i - 1].td = layerData.tt;\n          }\n\n          if (layerData.hasMask) {\n            var maskProps = layerData.masksProperties;\n            jLen = maskProps.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (maskProps[j].pt.k.i) {\n                convertPathsToAbsoluteValues(maskProps[j].pt.k);\n              } else {\n                kLen = maskProps[j].pt.k.length;\n\n                for (k = 0; k < kLen; k += 1) {\n                  if (maskProps[j].pt.k[k].s) {\n                    convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n                  }\n\n                  if (maskProps[j].pt.k[k].e) {\n                    convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n                  }\n                }\n              }\n            }\n          }\n\n          if (layerData.ty === 0) {\n            layerData.layers = findCompLayers(layerData.refId, comps);\n            completeLayers(layerData.layers, comps, fontManager);\n          } else if (layerData.ty === 4) {\n            completeShapes(layerData.shapes);\n          } else if (layerData.ty === 5) {\n            completeText(layerData, fontManager);\n          }\n        }\n      }\n    }\n\n    function findCompLayers(id, comps) {\n      var i = 0;\n      var len = comps.length;\n\n      while (i < len) {\n        if (comps[i].id === id) {\n          if (!comps[i].layers.__used) {\n            comps[i].layers.__used = true;\n            return comps[i].layers;\n          }\n\n          return JSON.parse(JSON.stringify(comps[i].layers));\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function completeShapes(arr) {\n      var i;\n      var len = arr.length;\n      var j;\n      var jLen;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if (arr[i].ty === \"sh\") {\n          if (arr[i].ks.k.i) {\n            convertPathsToAbsoluteValues(arr[i].ks.k);\n          } else {\n            jLen = arr[i].ks.k.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (arr[i].ks.k[j].s) {\n                convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n              }\n\n              if (arr[i].ks.k[j].e) {\n                convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n              }\n            }\n          }\n        } else if (arr[i].ty === \"gr\") {\n          completeShapes(arr[i].it);\n        }\n      }\n    }\n\n    function convertPathsToAbsoluteValues(path) {\n      var i;\n      var len = path.i.length;\n\n      for (i = 0; i < len; i += 1) {\n        path.i[i][0] += path.v[i][0];\n        path.i[i][1] += path.v[i][1];\n        path.o[i][0] += path.v[i][0];\n        path.o[i][1] += path.v[i][1];\n      }\n    }\n\n    function checkVersion(minimum, animVersionString) {\n      var animVersion = animVersionString ? animVersionString.split(\".\") : [100, 100, 100];\n\n      if (minimum[0] > animVersion[0]) {\n        return true;\n      }\n\n      if (animVersion[0] > minimum[0]) {\n        return false;\n      }\n\n      if (minimum[1] > animVersion[1]) {\n        return true;\n      }\n\n      if (animVersion[1] > minimum[1]) {\n        return false;\n      }\n\n      if (minimum[2] > animVersion[2]) {\n        return true;\n      }\n\n      if (animVersion[2] > minimum[2]) {\n        return false;\n      }\n\n      return null;\n    }\n\n    var checkText = function () {\n      var minimumVersion = [4, 4, 14];\n\n      function updateTextLayer(textLayer) {\n        var documentData = textLayer.t.d;\n        textLayer.t.d = {\n          k: [{\n            s: documentData,\n            t: 0\n          }]\n        };\n      }\n\n      function iterateLayers(layers) {\n        var i;\n        var len = layers.length;\n\n        for (i = 0; i < len; i += 1) {\n          if (layers[i].ty === 5) {\n            updateTextLayer(layers[i]);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkChars = function () {\n      var minimumVersion = [4, 7, 99];\n      return function (animationData) {\n        if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n          var i;\n          var len = animationData.chars.length;\n          var j;\n          var jLen;\n          var pathData;\n          var paths;\n\n          for (i = 0; i < len; i += 1) {\n            if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\n              paths = animationData.chars[i].data.shapes[0].it;\n              jLen = paths.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                pathData = paths[j].ks.k;\n\n                if (!pathData.__converted) {\n                  convertPathsToAbsoluteValues(paths[j].ks.k);\n                  pathData.__converted = true;\n                }\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkColors = function () {\n      var minimumVersion = [4, 1, 9];\n\n      function iterateShapes(shapes) {\n        var i;\n        var len = shapes.length;\n        var j;\n        var jLen;\n\n        for (i = 0; i < len; i += 1) {\n          if (shapes[i].ty === \"gr\") {\n            iterateShapes(shapes[i].it);\n          } else if (shapes[i].ty === \"fl\" || shapes[i].ty === \"st\") {\n            if (shapes[i].c.k && shapes[i].c.k[0].i) {\n              jLen = shapes[i].c.k.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                if (shapes[i].c.k[j].s) {\n                  shapes[i].c.k[j].s[0] /= 255;\n                  shapes[i].c.k[j].s[1] /= 255;\n                  shapes[i].c.k[j].s[2] /= 255;\n                  shapes[i].c.k[j].s[3] /= 255;\n                }\n\n                if (shapes[i].c.k[j].e) {\n                  shapes[i].c.k[j].e[0] /= 255;\n                  shapes[i].c.k[j].e[1] /= 255;\n                  shapes[i].c.k[j].e[2] /= 255;\n                  shapes[i].c.k[j].e[3] /= 255;\n                }\n              }\n            } else {\n              shapes[i].c.k[0] /= 255;\n              shapes[i].c.k[1] /= 255;\n              shapes[i].c.k[2] /= 255;\n              shapes[i].c.k[3] /= 255;\n            }\n          }\n        }\n      }\n\n      function iterateLayers(layers) {\n        var i;\n        var len = layers.length;\n\n        for (i = 0; i < len; i += 1) {\n          if (layers[i].ty === 4) {\n            iterateShapes(layers[i].shapes);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    var checkShapes = function () {\n      var minimumVersion = [4, 4, 18];\n\n      function completeClosingShapes(arr) {\n        var i;\n        var len = arr.length;\n        var j;\n        var jLen;\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          if (arr[i].ty === \"sh\") {\n            if (arr[i].ks.k.i) {\n              arr[i].ks.k.c = arr[i].closed;\n            } else {\n              jLen = arr[i].ks.k.length;\n\n              for (j = 0; j < jLen; j += 1) {\n                if (arr[i].ks.k[j].s) {\n                  arr[i].ks.k[j].s[0].c = arr[i].closed;\n                }\n\n                if (arr[i].ks.k[j].e) {\n                  arr[i].ks.k[j].e[0].c = arr[i].closed;\n                }\n              }\n            }\n          } else if (arr[i].ty === \"gr\") {\n            completeClosingShapes(arr[i].it);\n          }\n        }\n      }\n\n      function iterateLayers(layers) {\n        var layerData;\n        var i;\n        var len = layers.length;\n        var j;\n        var jLen;\n        var k;\n        var kLen;\n\n        for (i = 0; i < len; i += 1) {\n          layerData = layers[i];\n\n          if (layerData.hasMask) {\n            var maskProps = layerData.masksProperties;\n            jLen = maskProps.length;\n\n            for (j = 0; j < jLen; j += 1) {\n              if (maskProps[j].pt.k.i) {\n                maskProps[j].pt.k.c = maskProps[j].cl;\n              } else {\n                kLen = maskProps[j].pt.k.length;\n\n                for (k = 0; k < kLen; k += 1) {\n                  if (maskProps[j].pt.k[k].s) {\n                    maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n                  }\n\n                  if (maskProps[j].pt.k[k].e) {\n                    maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n                  }\n                }\n              }\n            }\n          }\n\n          if (layerData.ty === 4) {\n            completeClosingShapes(layerData.shapes);\n          }\n        }\n      }\n\n      return function (animationData) {\n        if (checkVersion(minimumVersion, animationData.v)) {\n          iterateLayers(animationData.layers);\n\n          if (animationData.assets) {\n            var i;\n            var len = animationData.assets.length;\n\n            for (i = 0; i < len; i += 1) {\n              if (animationData.assets[i].layers) {\n                iterateLayers(animationData.assets[i].layers);\n              }\n            }\n          }\n        }\n      };\n    }();\n\n    function completeData(animationData, fontManager) {\n      if (animationData.__complete) {\n        return;\n      }\n\n      checkColors(animationData);\n      checkText(animationData);\n      checkChars(animationData);\n      checkShapes(animationData);\n      completeLayers(animationData.layers, animationData.assets, fontManager);\n      animationData.__complete = true;\n    }\n\n    function completeText(data) {\n      if (data.t.a.length === 0 && !(\"m\" in data.t.p)) {\n        data.singleShape = true;\n      }\n    }\n\n    var moduleOb = {};\n    moduleOb.completeData = completeData;\n    moduleOb.checkColors = checkColors;\n    moduleOb.checkChars = checkChars;\n    moduleOb.checkShapes = checkShapes;\n    moduleOb.completeLayers = completeLayers;\n    return moduleOb;\n  }\n\n  var dataManager = dataFunctionManager();\n  /* exported getFontProperties */\n\n  function getFontProperties(fontData) {\n    var styles = fontData.fStyle ? fontData.fStyle.split(\" \") : [];\n    var fWeight = \"normal\";\n    var fStyle = \"normal\";\n    var len = styles.length;\n    var styleName;\n\n    for (var i = 0; i < len; i += 1) {\n      styleName = styles[i].toLowerCase();\n\n      switch (styleName) {\n        case \"italic\":\n          fStyle = \"italic\";\n          break;\n\n        case \"bold\":\n          fWeight = \"700\";\n          break;\n\n        case \"black\":\n          fWeight = \"900\";\n          break;\n\n        case \"medium\":\n          fWeight = \"500\";\n          break;\n\n        case \"regular\":\n        case \"normal\":\n          fWeight = \"400\";\n          break;\n\n        case \"light\":\n        case \"thin\":\n          fWeight = \"200\";\n          break;\n\n        default:\n          break;\n      }\n    }\n\n    return {\n      style: fStyle,\n      weight: fontData.fWeight || fWeight\n    };\n  }\n  /* global createNS, createTag, getFontProperties */\n\n  /* exported FontManager */\n\n\n  var FontManager = function () {\n    var maxWaitingTime = 5000;\n    var emptyChar = {\n      w: 0,\n      size: 0,\n      shapes: []\n    };\n    var combinedCharacters = []; // Hindi characters\n\n    combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n\n    function trimFontOptions(font) {\n      var familyArray = font.split(\",\");\n      var i;\n      var len = familyArray.length;\n      var enabledFamilies = [];\n\n      for (i = 0; i < len; i += 1) {\n        if (familyArray[i] !== \"sans-serif\" && familyArray[i] !== \"monospace\") {\n          enabledFamilies.push(familyArray[i]);\n        }\n      }\n\n      return enabledFamilies.join(\",\");\n    }\n\n    function setUpNode(font, family) {\n      var parentNode = createTag(\"span\"); // Node is invisible to screen readers.\n\n      parentNode.setAttribute(\"aria-hidden\", true);\n      parentNode.style.fontFamily = family;\n      var node = createTag(\"span\"); // Characters that vary significantly among different fonts\n\n      node.innerText = \"giItT1WQy@!-/#\"; // Visible - so we can measure it - but not on the screen\n\n      parentNode.style.position = \"absolute\";\n      parentNode.style.left = \"-10000px\";\n      parentNode.style.top = \"-10000px\"; // Large font size makes even subtle changes obvious\n\n      parentNode.style.fontSize = \"300px\"; // Reset any font properties\n\n      parentNode.style.fontVariant = \"normal\";\n      parentNode.style.fontStyle = \"normal\";\n      parentNode.style.fontWeight = \"normal\";\n      parentNode.style.letterSpacing = \"0\";\n      parentNode.appendChild(node);\n      document.body.appendChild(parentNode); // Remember width with no applied web font\n\n      var width = node.offsetWidth;\n      node.style.fontFamily = trimFontOptions(font) + \", \" + family;\n      return {\n        node: node,\n        w: width,\n        parent: parentNode\n      };\n    }\n\n    function checkLoadedFonts() {\n      var i;\n      var len = (this || _global).fonts.length;\n      var node;\n      var w;\n      var loadedCount = len;\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).fonts[i].loaded) {\n          loadedCount -= 1;\n        } else if ((this || _global).fonts[i].fOrigin === \"n\" || (this || _global).fonts[i].origin === 0) {\n          (this || _global).fonts[i].loaded = true;\n        } else {\n          node = (this || _global).fonts[i].monoCase.node;\n          w = (this || _global).fonts[i].monoCase.w;\n\n          if (node.offsetWidth !== w) {\n            loadedCount -= 1;\n            (this || _global).fonts[i].loaded = true;\n          } else {\n            node = (this || _global).fonts[i].sansCase.node;\n            w = (this || _global).fonts[i].sansCase.w;\n\n            if (node.offsetWidth !== w) {\n              loadedCount -= 1;\n              (this || _global).fonts[i].loaded = true;\n            }\n          }\n\n          if ((this || _global).fonts[i].loaded) {\n            (this || _global).fonts[i].sansCase.parent.parentNode.removeChild((this || _global).fonts[i].sansCase.parent);\n\n            (this || _global).fonts[i].monoCase.parent.parentNode.removeChild((this || _global).fonts[i].monoCase.parent);\n          }\n        }\n      }\n\n      if (loadedCount !== 0 && Date.now() - (this || _global).initTime < maxWaitingTime) {\n        setTimeout((this || _global).checkLoadedFontsBinded, 20);\n      } else {\n        setTimeout((this || _global).setIsLoadedBinded, 10);\n      }\n    }\n\n    function createHelper(def, fontData) {\n      var tHelper = createNS(\"text\");\n      tHelper.style.fontSize = \"100px\"; // tHelper.style.fontFamily = fontData.fFamily;\n\n      var fontProps = getFontProperties(fontData);\n      tHelper.setAttribute(\"font-family\", fontData.fFamily);\n      tHelper.setAttribute(\"font-style\", fontProps.style);\n      tHelper.setAttribute(\"font-weight\", fontProps.weight);\n      tHelper.textContent = \"1\";\n\n      if (fontData.fClass) {\n        tHelper.style.fontFamily = \"inherit\";\n        tHelper.setAttribute(\"class\", fontData.fClass);\n      } else {\n        tHelper.style.fontFamily = fontData.fFamily;\n      }\n\n      def.appendChild(tHelper);\n      var tCanvasHelper = createTag(\"canvas\").getContext(\"2d\");\n      tCanvasHelper.font = fontData.fWeight + \" \" + fontData.fStyle + \" 100px \" + fontData.fFamily; // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\n\n      return tHelper;\n    }\n\n    function addFonts(fontData, defs) {\n      if (!fontData) {\n        (this || _global).isLoaded = true;\n        return;\n      }\n\n      if ((this || _global).chars) {\n        (this || _global).isLoaded = true;\n        (this || _global).fonts = fontData.list;\n        return;\n      }\n\n      var fontArr = fontData.list;\n      var i;\n      var len = fontArr.length;\n      var _pendingFonts = len;\n\n      for (i = 0; i < len; i += 1) {\n        var shouldLoadFont = true;\n        var loadedSelector;\n        var j;\n        fontArr[i].loaded = false;\n        fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, \"monospace\");\n        fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, \"sans-serif\");\n\n        if (!fontArr[i].fPath) {\n          fontArr[i].loaded = true;\n          _pendingFonts -= 1;\n        } else if (fontArr[i].fOrigin === \"p\" || fontArr[i].origin === 3) {\n          loadedSelector = document.querySelectorAll(\"style[f-forigin=\\\"p\\\"][f-family=\\\"\" + fontArr[i].fFamily + \"\\\"], style[f-origin=\\\"3\\\"][f-family=\\\"\" + fontArr[i].fFamily + \"\\\"]\");\n\n          if (loadedSelector.length > 0) {\n            shouldLoadFont = false;\n          }\n\n          if (shouldLoadFont) {\n            var s = createTag(\"style\");\n            s.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            s.setAttribute(\"f-origin\", fontArr[i].origin);\n            s.setAttribute(\"f-family\", fontArr[i].fFamily);\n            s.type = \"text/css\";\n            s.innerText = \"@font-face {font-family: \" + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n            defs.appendChild(s);\n          }\n        } else if (fontArr[i].fOrigin === \"g\" || fontArr[i].origin === 1) {\n          loadedSelector = document.querySelectorAll(\"link[f-forigin=\\\"g\\\"], link[f-origin=\\\"1\\\"]\");\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var l = createTag(\"link\");\n            l.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            l.setAttribute(\"f-origin\", fontArr[i].origin);\n            l.type = \"text/css\";\n            l.rel = \"stylesheet\";\n            l.href = fontArr[i].fPath;\n            document.body.appendChild(l);\n          }\n        } else if (fontArr[i].fOrigin === \"t\" || fontArr[i].origin === 2) {\n          loadedSelector = document.querySelectorAll(\"script[f-forigin=\\\"t\\\"], script[f-origin=\\\"2\\\"]\");\n\n          for (j = 0; j < loadedSelector.length; j += 1) {\n            if (fontArr[i].fPath === loadedSelector[j].src) {\n              // Font is already loaded\n              shouldLoadFont = false;\n            }\n          }\n\n          if (shouldLoadFont) {\n            var sc = createTag(\"link\");\n            sc.setAttribute(\"f-forigin\", fontArr[i].fOrigin);\n            sc.setAttribute(\"f-origin\", fontArr[i].origin);\n            sc.setAttribute(\"rel\", \"stylesheet\");\n            sc.setAttribute(\"href\", fontArr[i].fPath);\n            defs.appendChild(sc);\n          }\n        }\n\n        fontArr[i].helper = createHelper(defs, fontArr[i]);\n        fontArr[i].cache = {};\n\n        (this || _global).fonts.push(fontArr[i]);\n      }\n\n      if (_pendingFonts === 0) {\n        (this || _global).isLoaded = true;\n      } else {\n        // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n        // Adding this timeout seems to fix it\n        setTimeout((this || _global).checkLoadedFonts.bind(this || _global), 100);\n      }\n    }\n\n    function addChars(chars) {\n      if (!chars) {\n        return;\n      }\n\n      if (!(this || _global).chars) {\n        (this || _global).chars = [];\n      }\n\n      var i;\n      var len = chars.length;\n      var j;\n      var jLen = (this || _global).chars.length;\n      var found;\n\n      for (i = 0; i < len; i += 1) {\n        j = 0;\n        found = false;\n\n        while (j < jLen) {\n          if ((this || _global).chars[j].style === chars[i].style && (this || _global).chars[j].fFamily === chars[i].fFamily && (this || _global).chars[j].ch === chars[i].ch) {\n            found = true;\n          }\n\n          j += 1;\n        }\n\n        if (!found) {\n          (this || _global).chars.push(chars[i]);\n\n          jLen += 1;\n        }\n      }\n    }\n\n    function getCharData(char, style, font) {\n      var i = 0;\n      var len = (this || _global).chars.length;\n\n      while (i < len) {\n        if ((this || _global).chars[i].ch === char && (this || _global).chars[i].style === style && (this || _global).chars[i].fFamily === font) {\n          return (this || _global).chars[i];\n        }\n\n        i += 1;\n      }\n\n      if ((typeof char === \"string\" && char.charCodeAt(0) !== 13 || !char) && console && console.warn // eslint-disable-line no-console\n      && !(this || _global)._warned) {\n        (this || _global)._warned = true;\n        console.warn(\"Missing character from exported characters list: \", char, style, font); // eslint-disable-line no-console\n      }\n\n      return emptyChar;\n    }\n\n    function measureText(char, fontName, size) {\n      var fontData = this.getFontByName(fontName);\n      var index = char.charCodeAt(0);\n\n      if (!fontData.cache[index + 1]) {\n        var tHelper = fontData.helper; // Canvas version\n        // fontData.cache[index] = tHelper.measureText(char).width / 100;\n        // SVG version\n        // console.log(tHelper.getBBox().width)\n\n        if (char === \" \") {\n          tHelper.textContent = \"|\" + char + \"|\";\n          var doubleSize = tHelper.getComputedTextLength();\n          tHelper.textContent = \"||\";\n          var singleSize = tHelper.getComputedTextLength();\n          fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n        } else {\n          tHelper.textContent = char;\n          fontData.cache[index + 1] = tHelper.getComputedTextLength() / 100;\n        }\n      }\n\n      return fontData.cache[index + 1] * size;\n    }\n\n    function getFontByName(name) {\n      var i = 0;\n      var len = (this || _global).fonts.length;\n\n      while (i < len) {\n        if ((this || _global).fonts[i].fName === name) {\n          return (this || _global).fonts[i];\n        }\n\n        i += 1;\n      }\n\n      return (this || _global).fonts[0];\n    }\n\n    function getCombinedCharacterCodes() {\n      return combinedCharacters;\n    }\n\n    function setIsLoaded() {\n      (this || _global).isLoaded = true;\n    }\n\n    var Font = function () {\n      (this || _global).fonts = [];\n      (this || _global).chars = null;\n      (this || _global).typekitLoaded = 0;\n      (this || _global).isLoaded = false;\n      (this || _global)._warned = false;\n      (this || _global).initTime = Date.now();\n      (this || _global).setIsLoadedBinded = (this || _global).setIsLoaded.bind(this || _global);\n      (this || _global).checkLoadedFontsBinded = (this || _global).checkLoadedFonts.bind(this || _global);\n    }; // TODO: for now I'm adding these methods to the Class and not the prototype. Think of a better way to implement it.\n\n\n    Font.getCombinedCharacterCodes = getCombinedCharacterCodes;\n    var fontPrototype = {\n      addChars: addChars,\n      addFonts: addFonts,\n      getCharData: getCharData,\n      getFontByName: getFontByName,\n      measureText: measureText,\n      checkLoadedFonts: checkLoadedFonts,\n      setIsLoaded: setIsLoaded\n    };\n    Font.prototype = fontPrototype;\n    return Font;\n  }();\n  /* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\n\n  /* exported PropertyFactory */\n\n\n  var PropertyFactory = function () {\n    var initFrame = initialDefaultFrame;\n    var mathAbs = Math.abs;\n\n    function interpolateValue(frameNum, caching) {\n      var offsetTime = (this || _global).offsetTime;\n      var newValue;\n\n      if ((this || _global).propType === \"multidimensional\") {\n        newValue = createTypedArray(\"float32\", (this || _global).pv.length);\n      }\n\n      var iterationIndex = caching.lastIndex;\n      var i = iterationIndex;\n      var len = (this || _global).keyframes.length - 1;\n      var flag = true;\n      var keyData;\n      var nextKeyData;\n\n      while (flag) {\n        keyData = (this || _global).keyframes[i];\n        nextKeyData = (this || _global).keyframes[i + 1];\n\n        if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n          if (keyData.h) {\n            keyData = nextKeyData;\n          }\n\n          iterationIndex = 0;\n          break;\n        }\n\n        if (nextKeyData.t - offsetTime > frameNum) {\n          iterationIndex = i;\n          break;\n        }\n\n        if (i < len - 1) {\n          i += 1;\n        } else {\n          iterationIndex = 0;\n          flag = false;\n        }\n      }\n\n      var k;\n      var kLen;\n      var perc;\n      var jLen;\n      var j;\n      var fnc;\n      var nextKeyTime = nextKeyData.t - offsetTime;\n      var keyTime = keyData.t - offsetTime;\n      var endValue;\n\n      if (keyData.to) {\n        if (!keyData.bezierData) {\n          keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n        }\n\n        var bezierData = keyData.bezierData;\n\n        if (frameNum >= nextKeyTime || frameNum < keyTime) {\n          var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n          kLen = bezierData.points[ind].point.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            newValue[k] = bezierData.points[ind].point[k];\n          } // caching._lastKeyframeIndex = -1;\n\n        } else {\n          if (keyData.__fnct) {\n            fnc = keyData.__fnct;\n          } else {\n            fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n            keyData.__fnct = fnc;\n          }\n\n          perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n          var distanceInLine = bezierData.segmentLength * perc;\n          var segmentPerc;\n          var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n          j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n          flag = true;\n          jLen = bezierData.points.length;\n\n          while (flag) {\n            addedLength += bezierData.points[j].partialLength;\n\n            if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k];\n              }\n\n              break;\n            } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n              segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n              kLen = bezierData.points[j].point.length;\n\n              for (k = 0; k < kLen; k += 1) {\n                newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n              }\n\n              break;\n            }\n\n            if (j < jLen - 1) {\n              j += 1;\n            } else {\n              flag = false;\n            }\n          }\n\n          caching._lastPoint = j;\n          caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n          caching._lastKeyframeIndex = i;\n        }\n      } else {\n        var outX;\n        var outY;\n        var inX;\n        var inY;\n        var keyValue;\n        len = keyData.s.length;\n        endValue = nextKeyData.s || keyData.e;\n\n        if ((this || _global).sh && keyData.h !== 1) {\n          if (frameNum >= nextKeyTime) {\n            newValue[0] = endValue[0];\n            newValue[1] = endValue[1];\n            newValue[2] = endValue[2];\n          } else if (frameNum <= keyTime) {\n            newValue[0] = keyData.s[0];\n            newValue[1] = keyData.s[1];\n            newValue[2] = keyData.s[2];\n          } else {\n            var quatStart = createQuaternion(keyData.s);\n            var quatEnd = createQuaternion(endValue);\n            var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n            quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n          }\n        } else {\n          for (i = 0; i < len; i += 1) {\n            if (keyData.h !== 1) {\n              if (frameNum >= nextKeyTime) {\n                perc = 1;\n              } else if (frameNum < keyTime) {\n                perc = 0;\n              } else {\n                if (keyData.o.x.constructor === Array) {\n                  if (!keyData.__fnct) {\n                    keyData.__fnct = [];\n                  }\n\n                  if (!keyData.__fnct[i]) {\n                    outX = typeof keyData.o.x[i] === \"undefined\" ? keyData.o.x[0] : keyData.o.x[i];\n                    outY = typeof keyData.o.y[i] === \"undefined\" ? keyData.o.y[0] : keyData.o.y[i];\n                    inX = typeof keyData.i.x[i] === \"undefined\" ? keyData.i.x[0] : keyData.i.x[i];\n                    inY = typeof keyData.i.y[i] === \"undefined\" ? keyData.i.y[0] : keyData.i.y[i];\n                    fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                    keyData.__fnct[i] = fnc;\n                  } else {\n                    fnc = keyData.__fnct[i];\n                  }\n                } else if (!keyData.__fnct) {\n                  outX = keyData.o.x;\n                  outY = keyData.o.y;\n                  inX = keyData.i.x;\n                  inY = keyData.i.y;\n                  fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n                  keyData.__fnct = fnc;\n                } else {\n                  fnc = keyData.__fnct;\n                }\n\n                perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n              }\n            }\n\n            endValue = nextKeyData.s || keyData.e;\n            keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n            if ((this || _global).propType === \"multidimensional\") {\n              newValue[i] = keyValue;\n            } else {\n              newValue = keyValue;\n            }\n          }\n        }\n      }\n\n      caching.lastIndex = iterationIndex;\n      return newValue;\n    } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n    function slerp(a, b, t) {\n      var out = [];\n      var ax = a[0];\n      var ay = a[1];\n      var az = a[2];\n      var aw = a[3];\n      var bx = b[0];\n      var by = b[1];\n      var bz = b[2];\n      var bw = b[3];\n      var omega;\n      var cosom;\n      var sinom;\n      var scale0;\n      var scale1;\n      cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n      if (cosom < 0) {\n        cosom = -cosom;\n        bx = -bx;\n        by = -by;\n        bz = -bz;\n        bw = -bw;\n      }\n\n      if (1 - cosom > 0.000001) {\n        omega = Math.acos(cosom);\n        sinom = Math.sin(omega);\n        scale0 = Math.sin((1 - t) * omega) / sinom;\n        scale1 = Math.sin(t * omega) / sinom;\n      } else {\n        scale0 = 1 - t;\n        scale1 = t;\n      }\n\n      out[0] = scale0 * ax + scale1 * bx;\n      out[1] = scale0 * ay + scale1 * by;\n      out[2] = scale0 * az + scale1 * bz;\n      out[3] = scale0 * aw + scale1 * bw;\n      return out;\n    }\n\n    function quaternionToEuler(out, quat) {\n      var qx = quat[0];\n      var qy = quat[1];\n      var qz = quat[2];\n      var qw = quat[3];\n      var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n      var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n      var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n      out[0] = heading / degToRads;\n      out[1] = attitude / degToRads;\n      out[2] = bank / degToRads;\n    }\n\n    function createQuaternion(values) {\n      var heading = values[0] * degToRads;\n      var attitude = values[1] * degToRads;\n      var bank = values[2] * degToRads;\n      var c1 = Math.cos(heading / 2);\n      var c2 = Math.cos(attitude / 2);\n      var c3 = Math.cos(bank / 2);\n      var s1 = Math.sin(heading / 2);\n      var s2 = Math.sin(attitude / 2);\n      var s3 = Math.sin(bank / 2);\n      var w = c1 * c2 * c3 - s1 * s2 * s3;\n      var x = s1 * s2 * c3 + c1 * c2 * s3;\n      var y = s1 * c2 * c3 + c1 * s2 * s3;\n      var z = c1 * s2 * c3 - s1 * c2 * s3;\n      return [x, y, z, w];\n    }\n\n    function getValueAtCurrentTime() {\n      var frameNum = (this || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n\n      if (!(frameNum === (this || _global)._caching.lastFrame || (this || _global)._caching.lastFrame !== initFrame && ((this || _global)._caching.lastFrame >= endTime && frameNum >= endTime || (this || _global)._caching.lastFrame < initTime && frameNum < initTime))) {\n        if ((this || _global)._caching.lastFrame >= frameNum) {\n          (this || _global)._caching._lastKeyframeIndex = -1;\n          (this || _global)._caching.lastIndex = 0;\n        }\n\n        var renderResult = this.interpolateValue(frameNum, (this || _global)._caching);\n        (this || _global).pv = renderResult;\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function setVValue(val) {\n      var multipliedValue;\n\n      if ((this || _global).propType === \"unidimensional\") {\n        multipliedValue = val * (this || _global).mult;\n\n        if (mathAbs((this || _global).v - multipliedValue) > 0.00001) {\n          (this || _global).v = multipliedValue;\n          (this || _global)._mdf = true;\n        }\n      } else {\n        var i = 0;\n        var len = (this || _global).v.length;\n\n        while (i < len) {\n          multipliedValue = val[i] * (this || _global).mult;\n\n          if (mathAbs((this || _global).v[i] - multipliedValue) > 0.00001) {\n            (this || _global).v[i] = multipliedValue;\n            (this || _global)._mdf = true;\n          }\n\n          i += 1;\n        }\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) {\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = (this || _global)._isFirstFrame;\n      var i;\n      var len = (this || _global).effectsSequence.length;\n      var finalValue = (this || _global).kf ? (this || _global).pv : (this || _global).data.k;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global)._isFirstFrame = false;\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\n    }\n\n    function ValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global).v = mult ? data.k * mult : data.k;\n      (this || _global).pv = data.k;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).vel = 0;\n      (this || _global).effectsSequence = [];\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function MultiDimensionalProperty(elem, data, mult, container) {\n      (this || _global).propType = \"multidimensional\";\n      (this || _global).mult = mult || 1;\n      (this || _global).data = data;\n      (this || _global)._mdf = false;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global).frameId = -1;\n      var i;\n      var len = data.k.length;\n      (this || _global).v = createTypedArray(\"float32\", len);\n      (this || _global).pv = createTypedArray(\"float32\", len);\n      (this || _global).vel = createTypedArray(\"float32\", len);\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).v[i] = data.k[i] * (this || _global).mult;\n        (this || _global).pv[i] = data.k[i];\n      }\n\n      (this || _global)._isFirstFrame = true;\n      (this || _global).effectsSequence = [];\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedValueProperty(elem, data, mult, container) {\n      (this || _global).propType = \"unidimensional\";\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).frameId = -1;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: 0,\n        _lastKeyframeIndex: -1\n      };\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global).data = data;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).v = initFrame;\n      (this || _global).pv = initFrame;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).addEffect = addEffect;\n    }\n\n    function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n      (this || _global).propType = \"multidimensional\";\n      var i;\n      var len = data.k.length;\n      var s;\n      var e;\n      var to;\n      var ti;\n\n      for (i = 0; i < len - 1; i += 1) {\n        if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n          s = data.k[i].s;\n          e = data.k[i + 1].s;\n          to = data.k[i].to;\n          ti = data.k[i].ti;\n\n          if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n            data.k[i].to = null;\n            data.k[i].ti = null;\n          }\n\n          if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n            if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n              data.k[i].to = null;\n              data.k[i].ti = null;\n            }\n          }\n        }\n      }\n\n      (this || _global).effectsSequence = [getValueAtCurrentTime.bind(this || _global)];\n      (this || _global).data = data;\n      (this || _global).keyframes = data.k;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      (this || _global)._isFirstFrame = true;\n      (this || _global).mult = mult || 1;\n      (this || _global).elem = elem;\n      (this || _global).container = container;\n      (this || _global).comp = elem.comp;\n      (this || _global).getValue = processEffectsSequence;\n      (this || _global).setVValue = setVValue;\n      (this || _global).interpolateValue = interpolateValue;\n      (this || _global).frameId = -1;\n      var arrLen = data.k[0].s.length;\n      (this || _global).v = createTypedArray(\"float32\", arrLen);\n      (this || _global).pv = createTypedArray(\"float32\", arrLen);\n\n      for (i = 0; i < arrLen; i += 1) {\n        (this || _global).v[i] = initFrame;\n        (this || _global).pv[i] = initFrame;\n      }\n\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0,\n        value: createTypedArray(\"float32\", arrLen)\n      };\n      (this || _global).addEffect = addEffect;\n    }\n\n    function getProp(elem, data, type, mult, container) {\n      var p;\n\n      if (!data.k.length) {\n        p = new ValueProperty(elem, data, mult, container);\n      } else if (typeof data.k[0] === \"number\") {\n        p = new MultiDimensionalProperty(elem, data, mult, container);\n      } else {\n        switch (type) {\n          case 0:\n            p = new KeyframedValueProperty(elem, data, mult, container);\n            break;\n\n          case 1:\n            p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n            break;\n\n          default:\n            break;\n        }\n      }\n\n      if (p.effectsSequence.length) {\n        container.addDynamicProperty(p);\n      }\n\n      return p;\n    }\n\n    var ob = {\n      getProp: getProp\n    };\n    return ob;\n  }();\n  /* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  /* exported TransformPropertyFactory */\n\n\n  var TransformPropertyFactory = function () {\n    var defaultVector = [0, 0];\n\n    function applyToMatrix(mat) {\n      var _mdf = (this || _global)._mdf;\n      this.iterateDynamicProperties();\n      (this || _global)._mdf = (this || _global)._mdf || _mdf;\n\n      if ((this || _global).a) {\n        mat.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n      }\n\n      if ((this || _global).s) {\n        mat.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n      }\n\n      if ((this || _global).sk) {\n        mat.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n      }\n\n      if ((this || _global).r) {\n        mat.rotate(-(this || _global).r.v);\n      } else {\n        mat.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n      }\n\n      if ((this || _global).data.p.s) {\n        if ((this || _global).data.p.z) {\n          mat.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n        } else {\n          mat.translate((this || _global).px.v, (this || _global).py.v, 0);\n        }\n      } else {\n        mat.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n      }\n    }\n\n    function processKeys(forceRender) {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if ((this || _global)._isDirty) {\n        this.precalculateMatrix();\n        (this || _global)._isDirty = false;\n      }\n\n      this.iterateDynamicProperties();\n\n      if ((this || _global)._mdf || forceRender) {\n        var frameRate;\n\n        (this || _global).v.cloneFromProps((this || _global).pre.props);\n\n        if ((this || _global).appliedTransformations < 1) {\n          (this || _global).v.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n        }\n\n        if ((this || _global).appliedTransformations < 2) {\n          (this || _global).v.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n        }\n\n        if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n          (this || _global).v.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n        }\n\n        if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotate(-(this || _global).r.v);\n        } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n          (this || _global).v.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n        }\n\n        if ((this || _global).autoOriented) {\n          var v1;\n          var v2;\n          frameRate = (this || _global).elem.globalData.frameRate;\n\n          if ((this || _global).p && (this || _global).p.keyframes && (this || _global).p.getValueAtTime) {\n            if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime <= (this || _global).p.keyframes[0].t) {\n              v1 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[0].t + 0.01) / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[0].t / frameRate, 0);\n            } else if ((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime >= (this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t) {\n              v1 = (this || _global).p.getValueAtTime((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t / frameRate, 0);\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p.keyframes[(this || _global).p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n            } else {\n              v1 = (this || _global).p.pv;\n              v2 = (this || _global).p.getValueAtTime(((this || _global).p._caching.lastFrame + (this || _global).p.offsetTime - 0.01) / frameRate, (this || _global).p.offsetTime);\n            }\n          } else if ((this || _global).px && (this || _global).px.keyframes && (this || _global).py.keyframes && (this || _global).px.getValueAtTime && (this || _global).py.getValueAtTime) {\n            v1 = [];\n            v2 = [];\n            var px = (this || _global).px;\n            var py = (this || _global).py;\n\n            if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n              v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n              v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n              v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n              v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n            } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n              v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n              v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n              v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n              v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n            } else {\n              v1 = [px.pv, py.pv];\n              v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n              v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n            }\n          } else {\n            v2 = defaultVector;\n            v1 = v2;\n          }\n\n          (this || _global).v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n        }\n\n        if ((this || _global).data.p && (this || _global).data.p.s) {\n          if ((this || _global).data.p.z) {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, -(this || _global).pz.v);\n          } else {\n            (this || _global).v.translate((this || _global).px.v, (this || _global).py.v, 0);\n          }\n        } else {\n          (this || _global).v.translate((this || _global).p.v[0], (this || _global).p.v[1], -(this || _global).p.v[2]);\n        }\n      }\n\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function precalculateMatrix() {\n      if (!(this || _global).a.k) {\n        (this || _global).pre.translate(-(this || _global).a.v[0], -(this || _global).a.v[1], (this || _global).a.v[2]);\n\n        (this || _global).appliedTransformations = 1;\n      } else {\n        return;\n      }\n\n      if (!(this || _global).s.effectsSequence.length) {\n        (this || _global).pre.scale((this || _global).s.v[0], (this || _global).s.v[1], (this || _global).s.v[2]);\n\n        (this || _global).appliedTransformations = 2;\n      } else {\n        return;\n      }\n\n      if ((this || _global).sk) {\n        if (!(this || _global).sk.effectsSequence.length && !(this || _global).sa.effectsSequence.length) {\n          (this || _global).pre.skewFromAxis(-(this || _global).sk.v, (this || _global).sa.v);\n\n          (this || _global).appliedTransformations = 3;\n        } else {\n          return;\n        }\n      }\n\n      if ((this || _global).r) {\n        if (!(this || _global).r.effectsSequence.length) {\n          (this || _global).pre.rotate(-(this || _global).r.v);\n\n          (this || _global).appliedTransformations = 4;\n        }\n      } else if (!(this || _global).rz.effectsSequence.length && !(this || _global).ry.effectsSequence.length && !(this || _global).rx.effectsSequence.length && !(this || _global).or.effectsSequence.length) {\n        (this || _global).pre.rotateZ(-(this || _global).rz.v).rotateY((this || _global).ry.v).rotateX((this || _global).rx.v).rotateZ(-(this || _global).or.v[2]).rotateY((this || _global).or.v[1]).rotateX((this || _global).or.v[0]);\n\n        (this || _global).appliedTransformations = 4;\n      }\n    }\n\n    function autoOrient() {//\n      // var prevP = this.getValueAtTime();\n    }\n\n    function addDynamicProperty(prop) {\n      this._addDynamicProperty(prop);\n\n      (this || _global).elem.addDynamicProperty(prop);\n\n      (this || _global)._isDirty = true;\n    }\n\n    function TransformProperty(elem, data, container) {\n      (this || _global).elem = elem;\n      (this || _global).frameId = -1;\n      (this || _global).propType = \"transform\";\n      (this || _global).data = data;\n      (this || _global).v = new Matrix(); // Precalculated matrix with non animated properties\n\n      (this || _global).pre = new Matrix();\n      (this || _global).appliedTransformations = 0;\n      this.initDynamicPropertyContainer(container || elem);\n\n      if (data.p && data.p.s) {\n        (this || _global).px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this || _global);\n        (this || _global).py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this || _global);\n\n        if (data.p.z) {\n          (this || _global).pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this || _global);\n        }\n      } else {\n        (this || _global).p = PropertyFactory.getProp(elem, data.p || {\n          k: [0, 0, 0]\n        }, 1, 0, this || _global);\n      }\n\n      if (data.rx) {\n        (this || _global).rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this || _global);\n        (this || _global).ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this || _global);\n        (this || _global).rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this || _global);\n\n        if (data.or.k[0].ti) {\n          var i;\n          var len = data.or.k.length;\n\n          for (i = 0; i < len; i += 1) {\n            data.or.k[i].to = null;\n            data.or.k[i].ti = null;\n          }\n        }\n\n        (this || _global).or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this || _global); // sh Indicates it needs to be capped between -180 and 180\n\n        (this || _global).or.sh = true;\n      } else {\n        (this || _global).r = PropertyFactory.getProp(elem, data.r || {\n          k: 0\n        }, 0, degToRads, this || _global);\n      }\n\n      if (data.sk) {\n        (this || _global).sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this || _global);\n        (this || _global).sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this || _global);\n      }\n\n      (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n        k: [0, 0, 0]\n      }, 1, 0, this || _global);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: [100, 100, 100]\n      }, 1, 0.01, this || _global); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n      if (data.o) {\n        (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n      } else {\n        (this || _global).o = {\n          _mdf: false,\n          v: 1\n        };\n      }\n\n      (this || _global)._isDirty = true;\n\n      if (!(this || _global).dynamicProperties.length) {\n        this.getValue(true);\n      }\n    }\n\n    TransformProperty.prototype = {\n      applyToMatrix: applyToMatrix,\n      getValue: processKeys,\n      precalculateMatrix: precalculateMatrix,\n      autoOrient: autoOrient\n    };\n    extendPrototype([DynamicPropertyContainer], TransformProperty);\n    TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n    TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n    function getTransformProperty(elem, data, container) {\n      return new TransformProperty(elem, data, container);\n    }\n\n    return {\n      getTransformProperty: getTransformProperty\n    };\n  }();\n  /* global createSizedArray, createSizedArray, pointPool */\n\n\n  function ShapePath() {\n    (this || _global).c = false;\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 8;\n    (this || _global).v = createSizedArray((this || _global)._maxLength);\n    (this || _global).o = createSizedArray((this || _global)._maxLength);\n    (this || _global).i = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapePath.prototype.setPathData = function (closed, len) {\n    (this || _global).c = closed;\n    this.setLength(len);\n    var i = 0;\n\n    while (i < len) {\n      (this || _global).v[i] = pointPool.newElement();\n      (this || _global).o[i] = pointPool.newElement();\n      (this || _global).i[i] = pointPool.newElement();\n      i += 1;\n    }\n  };\n\n  ShapePath.prototype.setLength = function (len) {\n    while ((this || _global)._maxLength < len) {\n      this.doubleArrayLength();\n    }\n\n    (this || _global)._length = len;\n  };\n\n  ShapePath.prototype.doubleArrayLength = function () {\n    (this || _global).v = (this || _global).v.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).i = (this || _global).i.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global).o = (this || _global).o.concat(createSizedArray((this || _global)._maxLength));\n    (this || _global)._maxLength *= 2;\n  };\n\n  ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n    var arr;\n    (this || _global)._length = Math.max((this || _global)._length, pos + 1);\n\n    if ((this || _global)._length >= (this || _global)._maxLength) {\n      this.doubleArrayLength();\n    }\n\n    switch (type) {\n      case \"v\":\n        arr = (this || _global).v;\n        break;\n\n      case \"i\":\n        arr = (this || _global).i;\n        break;\n\n      case \"o\":\n        arr = (this || _global).o;\n        break;\n\n      default:\n        arr = [];\n        break;\n    }\n\n    if (!arr[pos] || arr[pos] && !replace) {\n      arr[pos] = pointPool.newElement();\n    }\n\n    arr[pos][0] = x;\n    arr[pos][1] = y;\n  };\n\n  ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n    this.setXYAt(vX, vY, \"v\", pos, replace);\n    this.setXYAt(oX, oY, \"o\", pos, replace);\n    this.setXYAt(iX, iY, \"i\", pos, replace);\n  };\n\n  ShapePath.prototype.reverse = function () {\n    var newPath = new ShapePath();\n    newPath.setPathData((this || _global).c, (this || _global)._length);\n    var vertices = (this || _global).v;\n    var outPoints = (this || _global).o;\n    var inPoints = (this || _global).i;\n    var init = 0;\n\n    if ((this || _global).c) {\n      newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n      init = 1;\n    }\n\n    var cnt = (this || _global)._length - 1;\n    var len = (this || _global)._length;\n    var i;\n\n    for (i = init; i < len; i += 1) {\n      newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n      cnt -= 1;\n    }\n\n    return newPath;\n  };\n  /* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n    shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\n\n  /* exported ShapePropertyFactory */\n\n\n  var ShapePropertyFactory = function () {\n    var initFrame = -999999;\n\n    function interpolateShape(frameNum, previousValue, caching) {\n      var iterationIndex = caching.lastIndex;\n      var keyPropS;\n      var keyPropE;\n      var isHold;\n      var j;\n      var k;\n      var jLen;\n      var kLen;\n      var perc;\n      var vertexValue;\n      var kf = (this || _global).keyframes;\n\n      if (frameNum < kf[0].t - (this || _global).offsetTime) {\n        keyPropS = kf[0].s[0];\n        isHold = true;\n        iterationIndex = 0;\n      } else if (frameNum >= kf[kf.length - 1].t - (this || _global).offsetTime) {\n        keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n        /* if(kf[kf.length - 1].s){\r\n                  keyPropS = kf[kf.length - 1].s[0];\r\n              }else{\r\n                  keyPropS = kf[kf.length - 2].e[0];\r\n              } */\n\n        isHold = true;\n      } else {\n        var i = iterationIndex;\n        var len = kf.length - 1;\n        var flag = true;\n        var keyData;\n        var nextKeyData;\n\n        while (flag) {\n          keyData = kf[i];\n          nextKeyData = kf[i + 1];\n\n          if (nextKeyData.t - (this || _global).offsetTime > frameNum) {\n            break;\n          }\n\n          if (i < len - 1) {\n            i += 1;\n          } else {\n            flag = false;\n          }\n        }\n\n        isHold = keyData.h === 1;\n        iterationIndex = i;\n\n        if (!isHold) {\n          if (frameNum >= nextKeyData.t - (this || _global).offsetTime) {\n            perc = 1;\n          } else if (frameNum < keyData.t - (this || _global).offsetTime) {\n            perc = 0;\n          } else {\n            var fnc;\n\n            if (keyData.__fnct) {\n              fnc = keyData.__fnct;\n            } else {\n              fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n              keyData.__fnct = fnc;\n            }\n\n            perc = fnc((frameNum - (keyData.t - (this || _global).offsetTime)) / (nextKeyData.t - (this || _global).offsetTime - (keyData.t - (this || _global).offsetTime)));\n          }\n\n          keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n        }\n\n        keyPropS = keyData.s[0];\n      }\n\n      jLen = previousValue._length;\n      kLen = keyPropS.i[0].length;\n      caching.lastIndex = iterationIndex;\n\n      for (j = 0; j < jLen; j += 1) {\n        for (k = 0; k < kLen; k += 1) {\n          vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n          previousValue.i[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n          previousValue.o[j][k] = vertexValue;\n          vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n          previousValue.v[j][k] = vertexValue;\n        }\n      }\n    }\n\n    function interpolateShapeCurrentTime() {\n      var frameNum = (this || _global).comp.renderedFrame - (this || _global).offsetTime;\n      var initTime = (this || _global).keyframes[0].t - (this || _global).offsetTime;\n      var endTime = (this || _global).keyframes[(this || _global).keyframes.length - 1].t - (this || _global).offsetTime;\n      var lastFrame = (this || _global)._caching.lastFrame;\n\n      if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n        /// /\n        (this || _global)._caching.lastIndex = lastFrame < frameNum ? (this || _global)._caching.lastIndex : 0;\n        this.interpolateShape(frameNum, (this || _global).pv, (this || _global)._caching); /// /\n      }\n\n      (this || _global)._caching.lastFrame = frameNum;\n      return (this || _global).pv;\n    }\n\n    function resetShape() {\n      (this || _global).paths = (this || _global).localShapeCollection;\n    }\n\n    function shapesEqual(shape1, shape2) {\n      if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n        return false;\n      }\n\n      var i;\n      var len = shape1._length;\n\n      for (i = 0; i < len; i += 1) {\n        if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n\n    function setVValue(newPath) {\n      if (!shapesEqual((this || _global).v, newPath)) {\n        (this || _global).v = shapePool.clone(newPath);\n\n        (this || _global).localShapeCollection.releaseShapes();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global)._mdf = true;\n        (this || _global).paths = (this || _global).localShapeCollection;\n      }\n    }\n\n    function processEffectsSequence() {\n      if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n        return;\n      }\n\n      if (!(this || _global).effectsSequence.length) {\n        (this || _global)._mdf = false;\n        return;\n      }\n\n      if ((this || _global).lock) {\n        this.setVValue((this || _global).pv);\n        return;\n      }\n\n      (this || _global).lock = true;\n      (this || _global)._mdf = false;\n      var finalValue;\n\n      if ((this || _global).kf) {\n        finalValue = (this || _global).pv;\n      } else if ((this || _global).data.ks) {\n        finalValue = (this || _global).data.ks.k;\n      } else {\n        finalValue = (this || _global).data.pt.k;\n      }\n\n      var i;\n      var len = (this || _global).effectsSequence.length;\n\n      for (i = 0; i < len; i += 1) {\n        finalValue = (this || _global).effectsSequence[i](finalValue);\n      }\n\n      this.setVValue(finalValue);\n      (this || _global).lock = false;\n      (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    }\n\n    function ShapeProperty(elem, data, type) {\n      (this || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).container = elem;\n      (this || _global).elem = elem;\n      (this || _global).data = data;\n      (this || _global).k = false;\n      (this || _global).kf = false;\n      (this || _global)._mdf = false;\n      var pathData = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).v = shapePool.clone(pathData);\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).reset = resetShape;\n      (this || _global).effectsSequence = [];\n    }\n\n    function addEffect(effectFunction) {\n      (this || _global).effectsSequence.push(effectFunction);\n\n      (this || _global).container.addDynamicProperty(this || _global);\n    }\n\n    ShapeProperty.prototype.interpolateShape = interpolateShape;\n    ShapeProperty.prototype.getValue = processEffectsSequence;\n    ShapeProperty.prototype.setVValue = setVValue;\n    ShapeProperty.prototype.addEffect = addEffect;\n\n    function KeyframedShapeProperty(elem, data, type) {\n      (this || _global).propType = \"shape\";\n      (this || _global).comp = elem.comp;\n      (this || _global).elem = elem;\n      (this || _global).container = elem;\n      (this || _global).offsetTime = elem.data.st;\n      (this || _global).keyframes = type === 3 ? data.pt.k : data.ks.k;\n      (this || _global).k = true;\n      (this || _global).kf = true;\n      var len = (this || _global).keyframes[0].s[0].i.length;\n      (this || _global).v = shapePool.newElement();\n\n      (this || _global).v.setPathData((this || _global).keyframes[0].s[0].c, len);\n\n      (this || _global).pv = shapePool.clone((this || _global).v);\n      (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n      (this || _global).paths = (this || _global).localShapeCollection;\n\n      (this || _global).paths.addShape((this || _global).v);\n\n      (this || _global).lastFrame = initFrame;\n      (this || _global).reset = resetShape;\n      (this || _global)._caching = {\n        lastFrame: initFrame,\n        lastIndex: 0\n      };\n      (this || _global).effectsSequence = [interpolateShapeCurrentTime.bind(this || _global)];\n    }\n\n    KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n    KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n    KeyframedShapeProperty.prototype.setVValue = setVValue;\n    KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n    var EllShapeProperty = function () {\n      var cPoint = roundCorner;\n\n      function EllShapePropertyFactory(elem, data) {\n        /* this.v = {\r\n                  v: createSizedArray(4),\r\n                  i: createSizedArray(4),\r\n                  o: createSizedArray(4),\r\n                  c: true\r\n              }; */\n        (this || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 4);\n\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).d = data.d;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertEllToPath();\n        }\n      }\n\n      EllShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertEllToPath();\n          }\n        },\n        convertEllToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var s0 = (this || _global).s.v[0] / 2;\n          var s1 = (this || _global).s.v[1] / 2;\n\n          var _cw = (this || _global).d !== 3;\n\n          var _v = (this || _global).v;\n          _v.v[0][0] = p0;\n          _v.v[0][1] = p1 - s1;\n          _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.v[1][1] = p1;\n          _v.v[2][0] = p0;\n          _v.v[2][1] = p1 + s1;\n          _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.v[3][1] = p1;\n          _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.i[0][1] = p1 - s1;\n          _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.i[1][1] = p1 - s1 * cPoint;\n          _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.i[2][1] = p1 + s1;\n          _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.i[3][1] = p1 + s1 * cPoint;\n          _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n          _v.o[0][1] = p1 - s1;\n          _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n          _v.o[1][1] = p1 + s1 * cPoint;\n          _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n          _v.o[2][1] = p1 + s1;\n          _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n          _v.o[3][1] = p1 - s1 * cPoint;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n      return EllShapePropertyFactory;\n    }();\n\n    var StarShapeProperty = function () {\n      function StarShapePropertyFactory(elem, data) {\n        (this || _global).v = shapePool.newElement();\n\n        (this || _global).v.setPathData(true, 0);\n\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).data = data;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n\n        if (data.sy === 1) {\n          (this || _global).ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this || _global);\n          (this || _global).is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this || _global);\n          (this || _global).convertToPath = (this || _global).convertStarToPath;\n        } else {\n          (this || _global).convertToPath = (this || _global).convertPolygonToPath;\n        }\n\n        (this || _global).pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this || _global);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this || _global);\n        (this || _global).or = PropertyFactory.getProp(elem, data.or, 0, 0, this || _global);\n        (this || _global).os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this || _global);\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertToPath();\n        }\n      }\n\n      StarShapePropertyFactory.prototype = {\n        reset: resetShape,\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertToPath();\n          }\n        },\n        convertStarToPath: function () {\n          var numPts = Math.floor((this || _global).pt.v) * 2;\n          var angle = Math.PI * 2 / numPts;\n          /* this.v.v.length = numPts;\r\n                  this.v.i.length = numPts;\r\n                  this.v.o.length = numPts; */\n\n          var longFlag = true;\n          var longRad = (this || _global).or.v;\n          var shortRad = (this || _global).ir.v;\n          var longRound = (this || _global).os.v;\n          var shortRound = (this || _global).is.v;\n          var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n          var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n          var i;\n          var rad;\n          var roundness;\n          var perimSegment;\n          var currentAng = -Math.PI / 2;\n          currentAng += (this || _global).r.v;\n          var dir = (this || _global).data.d === 3 ? -1 : 1;\n          (this || _global).v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            rad = longFlag ? longRad : shortRad;\n            roundness = longFlag ? longRound : shortRound;\n            perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +(this || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n            /* this.v.v[i] = [x,y];\r\n                      this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n                      this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n                      this.v._length = numPts; */\n\n\n            longFlag = !longFlag;\n            currentAng += angle * dir;\n          }\n        },\n        convertPolygonToPath: function () {\n          var numPts = Math.floor((this || _global).pt.v);\n          var angle = Math.PI * 2 / numPts;\n          var rad = (this || _global).or.v;\n          var roundness = (this || _global).os.v;\n          var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n          var i;\n          var currentAng = -Math.PI * 0.5;\n          var dir = (this || _global).data.d === 3 ? -1 : 1;\n          currentAng += (this || _global).r.v;\n          (this || _global).v._length = 0;\n\n          for (i = 0; i < numPts; i += 1) {\n            var x = rad * Math.cos(currentAng);\n            var y = rad * Math.sin(currentAng);\n            var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n            var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n            x += +(this || _global).p.v[0];\n            y += +(this || _global).p.v[1];\n\n            (this || _global).v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n\n            currentAng += angle * dir;\n          }\n\n          (this || _global).paths.length = 0;\n          (this || _global).paths[0] = (this || _global).v;\n        }\n      };\n      extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n      return StarShapePropertyFactory;\n    }();\n\n    var RectShapeProperty = function () {\n      function RectShapePropertyFactory(elem, data) {\n        (this || _global).v = shapePool.newElement();\n        (this || _global).v.c = true;\n        (this || _global).localShapeCollection = shapeCollectionPool.newShapeCollection();\n\n        (this || _global).localShapeCollection.addShape((this || _global).v);\n\n        (this || _global).paths = (this || _global).localShapeCollection;\n        (this || _global).elem = elem;\n        (this || _global).comp = elem.comp;\n        (this || _global).frameId = -1;\n        (this || _global).d = data.d;\n        this.initDynamicPropertyContainer(elem);\n        (this || _global).p = PropertyFactory.getProp(elem, data.p, 1, 0, this || _global);\n        (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, 0, this || _global);\n        (this || _global).r = PropertyFactory.getProp(elem, data.r, 0, 0, this || _global);\n\n        if ((this || _global).dynamicProperties.length) {\n          (this || _global).k = true;\n        } else {\n          (this || _global).k = false;\n          this.convertRectToPath();\n        }\n      }\n\n      RectShapePropertyFactory.prototype = {\n        convertRectToPath: function () {\n          var p0 = (this || _global).p.v[0];\n          var p1 = (this || _global).p.v[1];\n          var v0 = (this || _global).s.v[0] / 2;\n          var v1 = (this || _global).s.v[1] / 2;\n          var round = bmMin(v0, v1, (this || _global).r.v);\n          var cPoint = round * (1 - roundCorner);\n          (this || _global).v._length = 0;\n\n          if ((this || _global).d === 2 || (this || _global).d === 1) {\n            (this || _global).v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n\n            (this || _global).v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n            if (round !== 0) {\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n            }\n          } else {\n            (this || _global).v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n            if (round !== 0) {\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n\n              (this || _global).v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n\n              (this || _global).v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n            } else {\n              (this || _global).v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n\n              (this || _global).v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n\n              (this || _global).v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n            }\n          }\n        },\n        getValue: function () {\n          if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n            return;\n          }\n\n          (this || _global).frameId = (this || _global).elem.globalData.frameId;\n          this.iterateDynamicProperties();\n\n          if ((this || _global)._mdf) {\n            this.convertRectToPath();\n          }\n        },\n        reset: resetShape\n      };\n      extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n      return RectShapePropertyFactory;\n    }();\n\n    function getShapeProp(elem, data, type) {\n      var prop;\n\n      if (type === 3 || type === 4) {\n        var dataProp = type === 3 ? data.pt : data.ks;\n        var keys = dataProp.k;\n\n        if (keys.length) {\n          prop = new KeyframedShapeProperty(elem, data, type);\n        } else {\n          prop = new ShapeProperty(elem, data, type);\n        }\n      } else if (type === 5) {\n        prop = new RectShapeProperty(elem, data);\n      } else if (type === 6) {\n        prop = new EllShapeProperty(elem, data);\n      } else if (type === 7) {\n        prop = new StarShapeProperty(elem, data);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    }\n\n    function getConstructorFunction() {\n      return ShapeProperty;\n    }\n\n    function getKeyframedConstructorFunction() {\n      return KeyframedShapeProperty;\n    }\n\n    var ob = {};\n    ob.getShapeProp = getShapeProp;\n    ob.getConstructorFunction = getConstructorFunction;\n    ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n    return ob;\n  }();\n  /* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\n\n  /* exported ShapeModifiers */\n\n\n  var ShapeModifiers = function () {\n    var ob = {};\n    var modifiers = {};\n    ob.registerModifier = registerModifier;\n    ob.getModifier = getModifier;\n\n    function registerModifier(nm, factory) {\n      if (!modifiers[nm]) {\n        modifiers[nm] = factory;\n      }\n    }\n\n    function getModifier(nm, elem, data) {\n      return new modifiers[nm](elem, data);\n    }\n\n    return ob;\n  }();\n\n  function ShapeModifier() {}\n\n  ShapeModifier.prototype.initModifierProperties = function () {};\n\n  ShapeModifier.prototype.addShapeToModifier = function () {};\n\n  ShapeModifier.prototype.addShape = function (data) {\n    if (!(this || _global).closed) {\n      // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n      data.sh.container.addDynamicProperty(data.sh);\n      var shapeData = {\n        shape: data.sh,\n        data: data,\n        localShapeCollection: shapeCollectionPool.newShapeCollection()\n      };\n\n      (this || _global).shapes.push(shapeData);\n\n      this.addShapeToModifier(shapeData);\n\n      if ((this || _global)._isAnimated) {\n        data.setAsAnimated();\n      }\n    }\n  };\n\n  ShapeModifier.prototype.init = function (elem, data) {\n    (this || _global).shapes = [];\n    (this || _global).elem = elem;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, data);\n    (this || _global).frameId = initialDefaultFrame;\n    (this || _global).closed = false;\n    (this || _global).k = false;\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  ShapeModifier.prototype.processKeys = function () {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  extendPrototype([DynamicPropertyContainer], ShapeModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\n\n  function TrimModifier() {}\n\n  extendPrototype([ShapeModifier], TrimModifier);\n\n  TrimModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0, this || _global);\n    (this || _global).sValue = 0;\n    (this || _global).eValue = 0;\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).m = data.m;\n    (this || _global)._isAnimated = !!(this || _global).s.effectsSequence.length || !!(this || _global).e.effectsSequence.length || !!(this || _global).o.effectsSequence.length;\n  };\n\n  TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n    shapeData.pathsData = [];\n  };\n\n  TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n    var segments = [];\n\n    if (e <= 1) {\n      segments.push({\n        s: s,\n        e: e\n      });\n    } else if (s >= 1) {\n      segments.push({\n        s: s - 1,\n        e: e - 1\n      });\n    } else {\n      segments.push({\n        s: s,\n        e: 1\n      });\n      segments.push({\n        s: 0,\n        e: e - 1\n      });\n    }\n\n    var shapeSegments = [];\n    var i;\n    var len = segments.length;\n    var segmentOb;\n\n    for (i = 0; i < len; i += 1) {\n      segmentOb = segments[i];\n\n      if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n        var shapeS;\n        var shapeE;\n\n        if (segmentOb.s * totalModifierLength <= addedLength) {\n          shapeS = 0;\n        } else {\n          shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n          shapeE = 1;\n        } else {\n          shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n        }\n\n        shapeSegments.push([shapeS, shapeE]);\n      }\n    }\n\n    if (!shapeSegments.length) {\n      shapeSegments.push([0, 0]);\n    }\n\n    return shapeSegments;\n  };\n\n  TrimModifier.prototype.releasePathsData = function (pathsData) {\n    var i;\n    var len = pathsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      segmentsLengthPool.release(pathsData[i]);\n    }\n\n    pathsData.length = 0;\n    return pathsData;\n  };\n\n  TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n    var s;\n    var e;\n\n    if ((this || _global)._mdf || _isFirstFrame) {\n      var o = (this || _global).o.v % 360 / 360;\n\n      if (o < 0) {\n        o += 1;\n      }\n\n      if ((this || _global).s.v > 1) {\n        s = 1 + o;\n      } else if ((this || _global).s.v < 0) {\n        s = 0 + o;\n      } else {\n        s = (this || _global).s.v + o;\n      }\n\n      if ((this || _global).e.v > 1) {\n        e = 1 + o;\n      } else if ((this || _global).e.v < 0) {\n        e = 0 + o;\n      } else {\n        e = (this || _global).e.v + o;\n      }\n\n      if (s > e) {\n        var _s = s;\n        s = e;\n        e = _s;\n      }\n\n      s = Math.round(s * 10000) * 0.0001;\n      e = Math.round(e * 10000) * 0.0001;\n      (this || _global).sValue = s;\n      (this || _global).eValue = e;\n    } else {\n      s = (this || _global).sValue;\n      e = (this || _global).eValue;\n    }\n\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var pathsData;\n    var pathData;\n    var totalShapeLength;\n    var totalModifierLength = 0;\n\n    if (e === s) {\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapes[i].localShapeCollection.releaseShapes();\n\n        (this || _global).shapes[i].shape._mdf = true;\n        (this || _global).shapes[i].shape.paths = (this || _global).shapes[i].localShapeCollection;\n\n        if ((this || _global)._mdf) {\n          (this || _global).shapes[i].pathsData.length = 0;\n        }\n      }\n    } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n      var segments = [];\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n        if (!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame && (this || _global).m !== 2) {\n          shapeData.shape.paths = shapeData.localShapeCollection;\n        } else {\n          shapePaths = shapeData.shape.paths;\n          jLen = shapePaths._length;\n          totalShapeLength = 0;\n\n          if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n            totalShapeLength = shapeData.totalShapeLength;\n          } else {\n            pathsData = this.releasePathsData(shapeData.pathsData);\n\n            for (j = 0; j < jLen; j += 1) {\n              pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n              pathsData.push(pathData);\n              totalShapeLength += pathData.totalLength;\n            }\n\n            shapeData.totalShapeLength = totalShapeLength;\n            shapeData.pathsData = pathsData;\n          }\n\n          totalModifierLength += totalShapeLength;\n          shapeData.shape._mdf = true;\n        }\n      }\n\n      var shapeS = s;\n      var shapeE = e;\n      var addedLength = 0;\n      var edges;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shapeData = (this || _global).shapes[i];\n\n        if (shapeData.shape._mdf) {\n          localShapeCollection = shapeData.localShapeCollection;\n          localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n          if ((this || _global).m === 2 && len > 1) {\n            edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n            addedLength += shapeData.totalShapeLength;\n          } else {\n            edges = [[shapeS, shapeE]];\n          }\n\n          jLen = edges.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            shapeS = edges[j][0];\n            shapeE = edges[j][1];\n            segments.length = 0;\n\n            if (shapeE <= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength * shapeE\n              });\n            } else if (shapeS >= 1) {\n              segments.push({\n                s: shapeData.totalShapeLength * (shapeS - 1),\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            } else {\n              segments.push({\n                s: shapeData.totalShapeLength * shapeS,\n                e: shapeData.totalShapeLength\n              });\n              segments.push({\n                s: 0,\n                e: shapeData.totalShapeLength * (shapeE - 1)\n              });\n            }\n\n            var newShapesData = this.addShapes(shapeData, segments[0]);\n\n            if (segments[0].s !== segments[0].e) {\n              if (segments.length > 1) {\n                var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n                if (lastShapeInCollection.c) {\n                  var lastShape = newShapesData.pop();\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n                } else {\n                  this.addPaths(newShapesData, localShapeCollection);\n                  newShapesData = this.addShapes(shapeData, segments[1]);\n                }\n              }\n\n              this.addPaths(newShapesData, localShapeCollection);\n            }\n          }\n\n          shapeData.shape.paths = localShapeCollection;\n        }\n      }\n    } else if ((this || _global)._mdf) {\n      for (i = 0; i < len; i += 1) {\n        // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n        // Don't remove this even if it's losing cached info.\n        (this || _global).shapes[i].pathsData.length = 0;\n        (this || _global).shapes[i].shape._mdf = true;\n      }\n    }\n  };\n\n  TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n    var i;\n    var len = newPaths.length;\n\n    for (i = 0; i < len; i += 1) {\n      localShapeCollection.addShape(newPaths[i]);\n    }\n  };\n\n  TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n    shapePath.setXYAt(pt2[0], pt2[1], \"o\", pos);\n    shapePath.setXYAt(pt3[0], pt3[1], \"i\", pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(pt1[0], pt1[1], \"v\", pos);\n    }\n\n    shapePath.setXYAt(pt4[0], pt4[1], \"v\", pos + 1);\n  };\n\n  TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n    shapePath.setXYAt(points[1], points[5], \"o\", pos);\n    shapePath.setXYAt(points[2], points[6], \"i\", pos + 1);\n\n    if (newShape) {\n      shapePath.setXYAt(points[0], points[4], \"v\", pos);\n    }\n\n    shapePath.setXYAt(points[3], points[7], \"v\", pos + 1);\n  };\n\n  TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n    var pathsData = shapeData.pathsData;\n    var shapePaths = shapeData.shape.paths.shapes;\n    var i;\n    var len = shapeData.shape.paths._length;\n    var j;\n    var jLen;\n    var addedLength = 0;\n    var currentLengthData;\n    var segmentCount;\n    var lengths;\n    var segment;\n    var shapes = [];\n    var initPos;\n    var newShape = true;\n\n    if (!shapePath) {\n      shapePath = shapePool.newElement();\n      segmentCount = 0;\n      initPos = 0;\n    } else {\n      segmentCount = shapePath._length;\n      initPos = shapePath._length;\n    }\n\n    shapes.push(shapePath);\n\n    for (i = 0; i < len; i += 1) {\n      lengths = pathsData[i].lengths;\n      shapePath.c = shapePaths[i].c;\n      jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n      for (j = 1; j < jLen; j += 1) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n          addedLength += currentLengthData.addedLength;\n          shapePath.c = false;\n        } else if (addedLength > shapeSegment.e) {\n          shapePath.c = false;\n          break;\n        } else {\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n\n          addedLength += currentLengthData.addedLength;\n          segmentCount += 1;\n        }\n      }\n\n      if (shapePaths[i].c && lengths.length) {\n        currentLengthData = lengths[j - 1];\n\n        if (addedLength <= shapeSegment.e) {\n          var segmentLength = lengths[j - 1].addedLength;\n\n          if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n            this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n            newShape = false;\n          } else {\n            segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n            this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n            newShape = false;\n            shapePath.c = false;\n          }\n        } else {\n          shapePath.c = false;\n        }\n\n        addedLength += currentLengthData.addedLength;\n        segmentCount += 1;\n      }\n\n      if (shapePath._length) {\n        shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], \"i\", initPos);\n        shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], \"o\", shapePath._length - 1);\n      }\n\n      if (addedLength > shapeSegment.e) {\n        break;\n      }\n\n      if (i < len - 1) {\n        shapePath = shapePool.newElement();\n        newShape = true;\n        shapes.push(shapePath);\n        segmentCount = 0;\n      }\n    }\n\n    return shapes;\n  };\n\n  ShapeModifiers.registerModifier(\"tm\", TrimModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\n\n  function RoundCornersModifier() {}\n\n  extendPrototype([ShapeModifier], RoundCornersModifier);\n\n  RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).rd = PropertyFactory.getProp(elem, data.r, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).rd.effectsSequence.length;\n  };\n\n  RoundCornersModifier.prototype.processPath = function (path, round) {\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var i;\n    var len = path._length;\n    var currentV;\n    var currentI;\n    var currentO;\n    var closerV;\n    var distance;\n    var newPosPerc;\n    var index = 0;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < len; i += 1) {\n      currentV = path.v[i];\n      currentO = path.o[i];\n      currentI = path.i[i];\n\n      if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n        if ((i === 0 || i === len - 1) && !path.c) {\n          clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n          /* clonedPath.v[index] = currentV;\r\n                  clonedPath.o[index] = currentO;\r\n                  clonedPath.i[index] = currentI; */\n\n          index += 1;\n        } else {\n          if (i === 0) {\n            closerV = path.v[len - 1];\n          } else {\n            closerV = path.v[i - 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = iX;\n          iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n          vY = iY;\n          oX = vX - (vX - currentV[0]) * roundCorner;\n          oY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n\n          if (i === len - 1) {\n            closerV = path.v[0];\n          } else {\n            closerV = path.v[i + 1];\n          }\n\n          distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n          newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n          oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n          vX = oX;\n          oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n          vY = oY;\n          iX = vX - (vX - currentV[0]) * roundCorner;\n          iY = vY - (vY - currentV[1]) * roundCorner;\n          clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n          index += 1;\n        }\n      } else {\n        clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n        index += 1;\n      }\n    }\n\n    return clonedPath;\n  };\n\n  RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var rd = (this || _global).rd.v;\n\n    if (rd !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!(this || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"rd\", RoundCornersModifier);\n  /* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\n\n  function PuckerAndBloatModifier() {}\n\n  extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n  PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).amount = PropertyFactory.getProp(elem, data.a, 0, null, this || _global);\n    (this || _global)._isAnimated = !!(this || _global).amount.effectsSequence.length;\n  };\n\n  PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n    var percent = amount / 100;\n    var centerPoint = [0, 0];\n    var pathLength = path._length;\n    var i = 0;\n\n    for (i = 0; i < pathLength; i += 1) {\n      centerPoint[0] += path.v[i][0];\n      centerPoint[1] += path.v[i][1];\n    }\n\n    centerPoint[0] /= pathLength;\n    centerPoint[1] /= pathLength;\n    var clonedPath = shapePool.newElement();\n    clonedPath.c = path.c;\n    var vX;\n    var vY;\n    var oX;\n    var oY;\n    var iX;\n    var iY;\n\n    for (i = 0; i < pathLength; i += 1) {\n      vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n      vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n      oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n      oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n      iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n      iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n      clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n    }\n\n    return clonedPath;\n  };\n\n  PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n    var shapePaths;\n    var i;\n    var len = (this || _global).shapes.length;\n    var j;\n    var jLen;\n    var amount = (this || _global).amount.v;\n\n    if (amount !== 0) {\n      var shapeData;\n      var localShapeCollection;\n\n      for (i = 0; i < len; i += 1) {\n        shapeData = (this || _global).shapes[i];\n        localShapeCollection = shapeData.localShapeCollection;\n\n        if (!(!shapeData.shape._mdf && !(this || _global)._mdf && !_isFirstFrame)) {\n          localShapeCollection.releaseShapes();\n          shapeData.shape._mdf = true;\n          shapePaths = shapeData.shape.paths.shapes;\n          jLen = shapeData.shape.paths._length;\n\n          for (j = 0; j < jLen; j += 1) {\n            localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n          }\n        }\n\n        shapeData.shape.paths = shapeData.localShapeCollection;\n      }\n    }\n\n    if (!(this || _global).dynamicProperties.length) {\n      (this || _global)._mdf = false;\n    }\n  };\n\n  ShapeModifiers.registerModifier(\"pb\", PuckerAndBloatModifier);\n  /* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\n\n  function RepeaterModifier() {}\n\n  extendPrototype([ShapeModifier], RepeaterModifier);\n\n  RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n    (this || _global).getValue = (this || _global).processKeys;\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 0, null, this || _global);\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, null, this || _global);\n    (this || _global).tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this || _global);\n    (this || _global).so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this || _global);\n    (this || _global).eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this || _global);\n    (this || _global).data = data;\n\n    if (!(this || _global).dynamicProperties.length) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = !!(this || _global).dynamicProperties.length;\n    (this || _global).pMatrix = new Matrix();\n    (this || _global).rMatrix = new Matrix();\n    (this || _global).sMatrix = new Matrix();\n    (this || _global).tMatrix = new Matrix();\n    (this || _global).matrix = new Matrix();\n  };\n\n  RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n    var dir = inv ? -1 : 1;\n    var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n    var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n    pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n    rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    rMatrix.rotate(-transform.r.v * dir * perc);\n    rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n    sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n    sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n    sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n  };\n\n  RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n    (this || _global).elem = elem;\n    (this || _global).arr = arr;\n    (this || _global).pos = pos;\n    (this || _global).elemsData = elemsData;\n    (this || _global)._currentCopies = 0;\n    (this || _global)._elements = [];\n    (this || _global)._groups = [];\n    (this || _global).frameId = -1;\n    this.initDynamicPropertyContainer(elem);\n    this.initModifierProperties(elem, arr[pos]);\n\n    while (pos > 0) {\n      pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n      (this || _global)._elements.unshift(arr[pos]);\n    }\n\n    if ((this || _global).dynamicProperties.length) {\n      (this || _global).k = true;\n    } else {\n      this.getValue(true);\n    }\n  };\n\n  RepeaterModifier.prototype.resetElements = function (elements) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._processed = false;\n\n      if (elements[i].ty === \"gr\") {\n        this.resetElements(elements[i].it);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.cloneElements = function (elements) {\n    var newElements = JSON.parse(JSON.stringify(elements));\n    this.resetElements(newElements);\n    return newElements;\n  };\n\n  RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n    var i;\n    var len = elements.length;\n\n    for (i = 0; i < len; i += 1) {\n      elements[i]._render = renderFlag;\n\n      if (elements[i].ty === \"gr\") {\n        this.changeGroupRender(elements[i].it, renderFlag);\n      }\n    }\n  };\n\n  RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n    var items;\n    var itemsTransform;\n    var i;\n    var dir;\n    var cont;\n    var hasReloaded = false;\n\n    if ((this || _global)._mdf || _isFirstFrame) {\n      var copies = Math.ceil((this || _global).c.v);\n\n      if ((this || _global)._groups.length < copies) {\n        while ((this || _global)._groups.length < copies) {\n          var group = {\n            it: this.cloneElements((this || _global)._elements),\n            ty: \"gr\"\n          };\n          group.it.push({\n            a: {\n              a: 0,\n              ix: 1,\n              k: [0, 0]\n            },\n            nm: \"Transform\",\n            o: {\n              a: 0,\n              ix: 7,\n              k: 100\n            },\n            p: {\n              a: 0,\n              ix: 2,\n              k: [0, 0]\n            },\n            r: {\n              a: 1,\n              ix: 6,\n              k: [{\n                s: 0,\n                e: 0,\n                t: 0\n              }, {\n                s: 0,\n                e: 0,\n                t: 1\n              }]\n            },\n            s: {\n              a: 0,\n              ix: 3,\n              k: [100, 100]\n            },\n            sa: {\n              a: 0,\n              ix: 5,\n              k: 0\n            },\n            sk: {\n              a: 0,\n              ix: 4,\n              k: 0\n            },\n            ty: \"tr\"\n          });\n\n          (this || _global).arr.splice(0, 0, group);\n\n          (this || _global)._groups.splice(0, 0, group);\n\n          (this || _global)._currentCopies += 1;\n        }\n\n        (this || _global).elem.reloadShapes();\n\n        hasReloaded = true;\n      }\n\n      cont = 0;\n      var renderFlag;\n\n      for (i = 0; i <= (this || _global)._groups.length - 1; i += 1) {\n        renderFlag = cont < copies;\n        (this || _global)._groups[i]._render = renderFlag;\n        this.changeGroupRender((this || _global)._groups[i].it, renderFlag);\n\n        if (!renderFlag) {\n          var elems = (this || _global).elemsData[i].it;\n          var transformData = elems[elems.length - 1];\n\n          if (transformData.transform.op.v !== 0) {\n            transformData.transform.op._mdf = true;\n            transformData.transform.op.v = 0;\n          } else {\n            transformData.transform.op._mdf = false;\n          }\n        }\n\n        cont += 1;\n      }\n\n      (this || _global)._currentCopies = copies; /// /\n\n      var offset = (this || _global).o.v;\n      var offsetModulo = offset % 1;\n      var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n      var pProps = (this || _global).pMatrix.props;\n      var rProps = (this || _global).rMatrix.props;\n      var sProps = (this || _global).sMatrix.props;\n\n      (this || _global).pMatrix.reset();\n\n      (this || _global).rMatrix.reset();\n\n      (this || _global).sMatrix.reset();\n\n      (this || _global).tMatrix.reset();\n\n      (this || _global).matrix.reset();\n\n      var iteration = 0;\n\n      if (offset > 0) {\n        while (iteration < roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          iteration += 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, offsetModulo, false);\n          iteration += offsetModulo;\n        }\n      } else if (offset < 0) {\n        while (iteration > roundOffset) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, true);\n          iteration -= 1;\n        }\n\n        if (offsetModulo) {\n          this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, -offsetModulo, true);\n          iteration -= offsetModulo;\n        }\n      }\n\n      i = (this || _global).data.m === 1 ? 0 : (this || _global)._currentCopies - 1;\n      dir = (this || _global).data.m === 1 ? 1 : -1;\n      cont = (this || _global)._currentCopies;\n      var j;\n      var jLen;\n\n      while (cont) {\n        items = (this || _global).elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        jLen = itemsTransform.length;\n        items[items.length - 1].transform.mProps._mdf = true;\n        items[items.length - 1].transform.op._mdf = true;\n        items[items.length - 1].transform.op.v = (this || _global)._currentCopies === 1 ? (this || _global).so.v : (this || _global).so.v + ((this || _global).eo.v - (this || _global).so.v) * (i / ((this || _global)._currentCopies - 1));\n\n        if (iteration !== 0) {\n          if (i !== 0 && dir === 1 || i !== (this || _global)._currentCopies - 1 && dir === -1) {\n            this.applyTransforms((this || _global).pMatrix, (this || _global).rMatrix, (this || _global).sMatrix, (this || _global).tr, 1, false);\n          }\n\n          (this || _global).matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n\n          (this || _global).matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n\n          (this || _global).matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = (this || _global).matrix.props[j];\n          }\n\n          (this || _global).matrix.reset();\n        } else {\n          (this || _global).matrix.reset();\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsTransform[j] = (this || _global).matrix.props[j];\n          }\n        }\n\n        iteration += 1;\n        cont -= 1;\n        i += dir;\n      }\n    } else {\n      cont = (this || _global)._currentCopies;\n      i = 0;\n      dir = 1;\n\n      while (cont) {\n        items = (this || _global).elemsData[i].it;\n        itemsTransform = items[items.length - 1].transform.mProps.v.props;\n        items[items.length - 1].transform.mProps._mdf = false;\n        items[items.length - 1].transform.op._mdf = false;\n        cont -= 1;\n        i += dir;\n      }\n    }\n\n    return hasReloaded;\n  };\n\n  RepeaterModifier.prototype.addShape = function () {};\n\n  ShapeModifiers.registerModifier(\"rp\", RepeaterModifier);\n  /* global createSizedArray, shapePool */\n\n  function ShapeCollection() {\n    (this || _global)._length = 0;\n    (this || _global)._maxLength = 4;\n    (this || _global).shapes = createSizedArray((this || _global)._maxLength);\n  }\n\n  ShapeCollection.prototype.addShape = function (shapeData) {\n    if ((this || _global)._length === (this || _global)._maxLength) {\n      (this || _global).shapes = (this || _global).shapes.concat(createSizedArray((this || _global)._maxLength));\n      (this || _global)._maxLength *= 2;\n    }\n\n    (this || _global).shapes[(this || _global)._length] = shapeData;\n    (this || _global)._length += 1;\n  };\n\n  ShapeCollection.prototype.releaseShapes = function () {\n    var i;\n\n    for (i = 0; i < (this || _global)._length; i += 1) {\n      shapePool.release((this || _global).shapes[i]);\n    }\n\n    (this || _global)._length = 0;\n  };\n  /* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function DashProperty(elem, data, renderer, container) {\n    (this || _global).elem = elem;\n    (this || _global).frameId = -1;\n    (this || _global).dataProps = createSizedArray(data.length);\n    (this || _global).renderer = renderer;\n    (this || _global).k = false;\n    (this || _global).dashStr = \"\";\n    (this || _global).dashArray = createTypedArray(\"float32\", data.length ? data.length - 1 : 0);\n    (this || _global).dashoffset = createTypedArray(\"float32\", 1);\n    this.initDynamicPropertyContainer(container);\n    var i;\n    var len = data.length || 0;\n    var prop;\n\n    for (i = 0; i < len; i += 1) {\n      prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this || _global);\n      (this || _global).k = prop.k || (this || _global).k;\n      (this || _global).dataProps[i] = {\n        n: data[i].n,\n        p: prop\n      };\n    }\n\n    if (!(this || _global).k) {\n      this.getValue(true);\n    }\n\n    (this || _global)._isAnimated = (this || _global).k;\n  }\n\n  DashProperty.prototype.getValue = function (forceRender) {\n    if ((this || _global).elem.globalData.frameId === (this || _global).frameId && !forceRender) {\n      return;\n    }\n\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n    this.iterateDynamicProperties();\n    (this || _global)._mdf = (this || _global)._mdf || forceRender;\n\n    if ((this || _global)._mdf) {\n      var i = 0;\n      var len = (this || _global).dataProps.length;\n\n      if ((this || _global).renderer === \"svg\") {\n        (this || _global).dashStr = \"\";\n      }\n\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).dataProps[i].n !== \"o\") {\n          if ((this || _global).renderer === \"svg\") {\n            (this || _global).dashStr += \" \" + (this || _global).dataProps[i].p.v;\n          } else {\n            (this || _global).dashArray[i] = (this || _global).dataProps[i].p.v;\n          }\n        } else {\n          (this || _global).dashoffset[0] = (this || _global).dataProps[i].p.v;\n        }\n      }\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], DashProperty);\n  /* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function GradientProperty(elem, data, container) {\n    (this || _global).data = data;\n    (this || _global).c = createTypedArray(\"uint8c\", data.p * 4);\n    var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n    (this || _global).o = createTypedArray(\"float32\", cLength);\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n    (this || _global)._collapsable = this.checkCollapsable();\n    (this || _global)._hasOpacity = cLength;\n    this.initDynamicPropertyContainer(container);\n    (this || _global).prop = PropertyFactory.getProp(elem, data.k, 1, null, this || _global);\n    (this || _global).k = (this || _global).prop.k;\n    this.getValue(true);\n  }\n\n  GradientProperty.prototype.comparePoints = function (values, points) {\n    var i = 0;\n    var len = (this || _global).o.length / 2;\n    var diff;\n\n    while (i < len) {\n      diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n      if (diff > 0.01) {\n        return false;\n      }\n\n      i += 1;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.checkCollapsable = function () {\n    if ((this || _global).o.length / 2 !== (this || _global).c.length / 4) {\n      return false;\n    }\n\n    if ((this || _global).data.k.k[0].s) {\n      var i = 0;\n      var len = (this || _global).data.k.k.length;\n\n      while (i < len) {\n        if (!this.comparePoints((this || _global).data.k.k[i].s, (this || _global).data.p)) {\n          return false;\n        }\n\n        i += 1;\n      }\n    } else if (!this.comparePoints((this || _global).data.k.k, (this || _global).data.p)) {\n      return false;\n    }\n\n    return true;\n  };\n\n  GradientProperty.prototype.getValue = function (forceRender) {\n    (this || _global).prop.getValue();\n\n    (this || _global)._mdf = false;\n    (this || _global)._cmdf = false;\n    (this || _global)._omdf = false;\n\n    if ((this || _global).prop._mdf || forceRender) {\n      var i;\n      var len = (this || _global).data.p * 4;\n      var mult;\n      var val;\n\n      for (i = 0; i < len; i += 1) {\n        mult = i % 4 === 0 ? 100 : 255;\n        val = Math.round((this || _global).prop.v[i] * mult);\n\n        if ((this || _global).c[i] !== val) {\n          (this || _global).c[i] = val;\n          (this || _global)._cmdf = !forceRender;\n        }\n      }\n\n      if ((this || _global).o.length) {\n        len = (this || _global).prop.v.length;\n\n        for (i = (this || _global).data.p * 4; i < len; i += 1) {\n          mult = i % 2 === 0 ? 100 : 1;\n          val = i % 2 === 0 ? Math.round((this || _global).prop.v[i] * 100) : (this || _global).prop.v[i];\n\n          if ((this || _global).o[i - (this || _global).data.p * 4] !== val) {\n            (this || _global).o[i - (this || _global).data.p * 4] = val;\n            (this || _global)._omdf = !forceRender;\n          }\n        }\n      }\n\n      (this || _global)._mdf = !forceRender;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], GradientProperty);\n  /* exported buildShapeString */\n\n  var buildShapeString = function (pathNodes, length, closed, mat) {\n    if (length === 0) {\n      return \"\";\n    }\n\n    var _o = pathNodes.o;\n    var _i = pathNodes.i;\n    var _v = pathNodes.v;\n    var i;\n    var shapeString = \" M\" + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n    for (i = 1; i < length; i += 1) {\n      shapeString += \" C\" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + \" \" + mat.applyToPointStringified(_i[i][0], _i[i][1]) + \" \" + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n    }\n\n    if (closed && length) {\n      shapeString += \" C\" + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + \" \" + mat.applyToPointStringified(_i[0][0], _i[0][1]) + \" \" + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n      shapeString += \"z\";\n    }\n\n    return shapeString;\n  };\n  /* global Howl */\n\n  /* exported audioControllerFactory */\n\n\n  var audioControllerFactory = function () {\n    function AudioController(audioFactory) {\n      (this || _global).audios = [];\n      (this || _global).audioFactory = audioFactory;\n      (this || _global)._volume = 1;\n      (this || _global)._isMuted = false;\n    }\n\n    AudioController.prototype = {\n      addAudio: function (audio) {\n        (this || _global).audios.push(audio);\n      },\n      pause: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].pause();\n        }\n      },\n      resume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].resume();\n        }\n      },\n      setRate: function (rateValue) {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].setRate(rateValue);\n        }\n      },\n      createAudio: function (assetPath) {\n        if ((this || _global).audioFactory) {\n          return this.audioFactory(assetPath);\n        }\n\n        if (Howl) {\n          return new Howl({\n            src: [assetPath]\n          });\n        }\n\n        return {\n          isPlaying: false,\n          play: function () {\n            (this || _global).isPlaying = true;\n          },\n          seek: function () {\n            (this || _global).isPlaying = false;\n          },\n          playing: function () {},\n          rate: function () {},\n          setVolume: function () {}\n        };\n      },\n      setAudioFactory: function (audioFactory) {\n        (this || _global).audioFactory = audioFactory;\n      },\n      setVolume: function (value) {\n        (this || _global)._volume = value;\n\n        this._updateVolume();\n      },\n      mute: function () {\n        (this || _global)._isMuted = true;\n\n        this._updateVolume();\n      },\n      unmute: function () {\n        (this || _global)._isMuted = false;\n\n        this._updateVolume();\n      },\n      getVolume: function () {\n        return (this || _global)._volume;\n      },\n      _updateVolume: function () {\n        var i;\n        var len = (this || _global).audios.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global).audios[i].volume((this || _global)._volume * ((this || _global)._isMuted ? 0 : 1));\n        }\n      }\n    };\n    return function () {\n      return new AudioController();\n    };\n  }();\n  /* global createTag, createNS, isSafari, assetLoader */\n\n  /* exported ImagePreloader */\n\n\n  var ImagePreloader = function () {\n    var proxyImage = function () {\n      var canvas = createTag(\"canvas\");\n      canvas.width = 1;\n      canvas.height = 1;\n      var ctx = canvas.getContext(\"2d\");\n      ctx.fillStyle = \"rgba(0,0,0,0)\";\n      ctx.fillRect(0, 0, 1, 1);\n      return canvas;\n    }();\n\n    function imageLoaded() {\n      (this || _global).loadedAssets += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function footageLoaded() {\n      (this || _global).loadedFootagesCount += 1;\n\n      if ((this || _global).loadedAssets === (this || _global).totalImages && (this || _global).loadedFootagesCount === (this || _global).totalFootages) {\n        if ((this || _global).imagesLoadedCb) {\n          this.imagesLoadedCb(null);\n        }\n      }\n    }\n\n    function getAssetsPath(assetData, assetsPath, originalPath) {\n      var path = \"\";\n\n      if (assetData.e) {\n        path = assetData.p;\n      } else if (assetsPath) {\n        var imagePath = assetData.p;\n\n        if (imagePath.indexOf(\"images/\") !== -1) {\n          imagePath = imagePath.split(\"/\")[1];\n        }\n\n        path = assetsPath + imagePath;\n      } else {\n        path = originalPath;\n        path += assetData.u ? assetData.u : \"\";\n        path += assetData.p;\n      }\n\n      return path;\n    }\n\n    function testImageLoaded(img) {\n      var _count = 0;\n      var intervalId = setInterval(function () {\n        var box = img.getBBox();\n\n        if (box.width || _count > 500) {\n          this._imageLoaded();\n\n          clearInterval(intervalId);\n        }\n\n        _count += 1;\n      }.bind(this || _global), 50);\n    }\n\n    function createImageData(assetData) {\n      var path = getAssetsPath(assetData, (this || _global).assetsPath, (this || _global).path);\n      var img = createNS(\"image\");\n\n      if (isSafari) {\n        this.testImageLoaded(img);\n      } else {\n        img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      }\n\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), false);\n      img.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", path);\n\n      if ((this || _global)._elementHelper.append) {\n        (this || _global)._elementHelper.append(img);\n      } else {\n        (this || _global)._elementHelper.appendChild(img);\n      }\n\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createImgData(assetData) {\n      var path = getAssetsPath(assetData, (this || _global).assetsPath, (this || _global).path);\n      var img = createTag(\"img\");\n      img.crossOrigin = \"anonymous\";\n      img.addEventListener(\"load\", (this || _global)._imageLoaded, false);\n      img.addEventListener(\"error\", function () {\n        ob.img = proxyImage;\n\n        this._imageLoaded();\n      }.bind(this || _global), false);\n      img.src = path;\n      var ob = {\n        img: img,\n        assetData: assetData\n      };\n      return ob;\n    }\n\n    function createFootageData(data) {\n      var ob = {\n        assetData: data\n      };\n      var path = getAssetsPath(data, (this || _global).assetsPath, (this || _global).path);\n      assetLoader.load(path, function (footageData) {\n        ob.img = footageData;\n\n        this._footageLoaded();\n      }.bind(this || _global), function () {\n        ob.img = {};\n\n        this._footageLoaded();\n      }.bind(this || _global));\n      return ob;\n    }\n\n    function loadAssets(assets, cb) {\n      (this || _global).imagesLoadedCb = cb;\n      var i;\n      var len = assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (!assets[i].layers) {\n          if (!assets[i].t) {\n            (this || _global).totalImages += 1;\n\n            (this || _global).images.push(this._createImageData(assets[i]));\n          } else if (assets[i].t === 3) {\n            (this || _global).totalFootages += 1;\n\n            (this || _global).images.push(this.createFootageData(assets[i]));\n          }\n        }\n      }\n    }\n\n    function setPath(path) {\n      (this || _global).path = path || \"\";\n    }\n\n    function setAssetsPath(path) {\n      (this || _global).assetsPath = path || \"\";\n    }\n\n    function getAsset(assetData) {\n      var i = 0;\n      var len = (this || _global).images.length;\n\n      while (i < len) {\n        if ((this || _global).images[i].assetData === assetData) {\n          return (this || _global).images[i].img;\n        }\n\n        i += 1;\n      }\n\n      return null;\n    }\n\n    function destroy() {\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).images.length = 0;\n    }\n\n    function loadedImages() {\n      return (this || _global).totalImages === (this || _global).loadedAssets;\n    }\n\n    function loadedFootages() {\n      return (this || _global).totalFootages === (this || _global).loadedFootagesCount;\n    }\n\n    function setCacheType(type, elementHelper) {\n      if (type === \"svg\") {\n        (this || _global)._elementHelper = elementHelper;\n        (this || _global)._createImageData = (this || _global).createImageData.bind(this || _global);\n      } else {\n        (this || _global)._createImageData = (this || _global).createImgData.bind(this || _global);\n      }\n    }\n\n    function ImagePreloaderFactory() {\n      (this || _global)._imageLoaded = imageLoaded.bind(this || _global);\n      (this || _global)._footageLoaded = footageLoaded.bind(this || _global);\n      (this || _global).testImageLoaded = testImageLoaded.bind(this || _global);\n      (this || _global).createFootageData = createFootageData.bind(this || _global);\n      (this || _global).assetsPath = \"\";\n      (this || _global).path = \"\";\n      (this || _global).totalImages = 0;\n      (this || _global).totalFootages = 0;\n      (this || _global).loadedAssets = 0;\n      (this || _global).loadedFootagesCount = 0;\n      (this || _global).imagesLoadedCb = null;\n      (this || _global).images = [];\n    }\n\n    ImagePreloaderFactory.prototype = {\n      loadAssets: loadAssets,\n      setAssetsPath: setAssetsPath,\n      setPath: setPath,\n      loadedImages: loadedImages,\n      loadedFootages: loadedFootages,\n      destroy: destroy,\n      getAsset: getAsset,\n      createImgData: createImgData,\n      createImageData: createImageData,\n      imageLoaded: imageLoaded,\n      footageLoaded: footageLoaded,\n      setCacheType: setCacheType\n    };\n    return ImagePreloaderFactory;\n  }();\n  /* exported featureSupport */\n\n\n  var featureSupport = function () {\n    var ob = {\n      maskType: true\n    };\n\n    if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n      ob.maskType = false;\n    }\n\n    return ob;\n  }();\n  /* global createNS */\n\n  /* exported filtersFactory */\n\n\n  var filtersFactory = function () {\n    var ob = {};\n    ob.createFilter = createFilter;\n    ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n    function createFilter(filId, skipCoordinates) {\n      var fil = createNS(\"filter\");\n      fil.setAttribute(\"id\", filId);\n\n      if (skipCoordinates !== true) {\n        fil.setAttribute(\"filterUnits\", \"objectBoundingBox\");\n        fil.setAttribute(\"x\", \"0%\");\n        fil.setAttribute(\"y\", \"0%\");\n        fil.setAttribute(\"width\", \"100%\");\n        fil.setAttribute(\"height\", \"100%\");\n      }\n\n      return fil;\n    }\n\n    function createAlphaToLuminanceFilter() {\n      var feColorMatrix = createNS(\"feColorMatrix\");\n      feColorMatrix.setAttribute(\"type\", \"matrix\");\n      feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      feColorMatrix.setAttribute(\"values\", \"0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1\");\n      return feColorMatrix;\n    }\n\n    return ob;\n  }();\n  /* exported assetLoader */\n\n\n  var assetLoader = function () {\n    function formatResponse(xhr) {\n      if (xhr.response && typeof xhr.response === \"object\") {\n        return xhr.response;\n      }\n\n      if (xhr.response && typeof xhr.response === \"string\") {\n        return JSON.parse(xhr.response);\n      }\n\n      if (xhr.responseText) {\n        return JSON.parse(xhr.responseText);\n      }\n\n      return null;\n    }\n\n    function loadAsset(path, callback, errorCallback) {\n      var response;\n      var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n      try {\n        // This crashes on Android WebView prior to KitKat\n        xhr.responseType = \"json\";\n      } catch (err) {} // eslint-disable-line no-empty\n\n\n      xhr.onreadystatechange = function () {\n        if (xhr.readyState === 4) {\n          if (xhr.status === 200) {\n            response = formatResponse(xhr);\n            callback(response);\n          } else {\n            try {\n              response = formatResponse(xhr);\n              callback(response);\n            } catch (err) {\n              if (errorCallback) {\n                errorCallback(err);\n              }\n            }\n          }\n        }\n      };\n\n      xhr.open(\"GET\", path, true);\n      xhr.send();\n    }\n\n    return {\n      load: loadAsset\n    };\n  }();\n  /* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n    addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\n\n\n  function TextAnimatorProperty(textData, renderType, elem) {\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._hasMaskedPath = false;\n    (this || _global)._frameId = -1;\n    (this || _global)._textData = textData;\n    (this || _global)._renderType = renderType;\n    (this || _global)._elem = elem;\n    (this || _global)._animatorsData = createSizedArray((this || _global)._textData.a.length);\n    (this || _global)._pathData = {};\n    (this || _global)._moreOptions = {\n      alignment: {}\n    };\n    (this || _global).renderedLetters = [];\n    (this || _global).lettersChangedFlag = false;\n    this.initDynamicPropertyContainer(elem);\n  }\n\n  TextAnimatorProperty.prototype.searchProperties = function () {\n    var i;\n    var len = (this || _global)._textData.a.length;\n    var animatorProps;\n    var getProp = PropertyFactory.getProp;\n\n    for (i = 0; i < len; i += 1) {\n      animatorProps = (this || _global)._textData.a[i];\n      (this || _global)._animatorsData[i] = new TextAnimatorDataProperty((this || _global)._elem, animatorProps, this || _global);\n    }\n\n    if ((this || _global)._textData.p && \"m\" in (this || _global)._textData.p) {\n      (this || _global)._pathData = {\n        f: getProp((this || _global)._elem, (this || _global)._textData.p.f, 0, 0, this || _global),\n        l: getProp((this || _global)._elem, (this || _global)._textData.p.l, 0, 0, this || _global),\n        r: (this || _global)._textData.p.r,\n        m: (this || _global)._elem.maskManager.getMaskProperty((this || _global)._textData.p.m)\n      };\n      (this || _global)._hasMaskedPath = true;\n    } else {\n      (this || _global)._hasMaskedPath = false;\n    }\n\n    (this || _global)._moreOptions.alignment = getProp((this || _global)._elem, (this || _global)._textData.m.a, 1, 0, this || _global);\n  };\n\n  TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n    (this || _global).lettersChangedFlag = lettersChangedFlag;\n\n    if (!(this || _global)._mdf && !(this || _global)._isFirstFrame && !lettersChangedFlag && (!(this || _global)._hasMaskedPath || !(this || _global)._pathData.m._mdf)) {\n      return;\n    }\n\n    (this || _global)._isFirstFrame = false;\n    var alignment = (this || _global)._moreOptions.alignment.v;\n    var animators = (this || _global)._animatorsData;\n    var textData = (this || _global)._textData;\n    var matrixHelper = (this || _global).mHelper;\n    var renderType = (this || _global)._renderType;\n    var renderedLettersCount = (this || _global).renderedLetters.length;\n    var xPos;\n    var yPos;\n    var i;\n    var len;\n    var letters = documentData.l;\n    var pathInfo;\n    var currentLength;\n    var currentPoint;\n    var segmentLength;\n    var flag;\n    var pointInd;\n    var segmentInd;\n    var prevPoint;\n    var points;\n    var segments;\n    var partialLength;\n    var totalLength;\n    var perc;\n    var tanAngle;\n    var mask;\n\n    if ((this || _global)._hasMaskedPath) {\n      mask = (this || _global)._pathData.m;\n\n      if (!(this || _global)._pathData.n || (this || _global)._pathData._mdf) {\n        var paths = mask.v;\n\n        if ((this || _global)._pathData.r) {\n          paths = paths.reverse();\n        } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n        pathInfo = {\n          tLength: 0,\n          segments: []\n        };\n        len = paths._length - 1;\n        var bezierData;\n        totalLength = 0;\n\n        for (i = 0; i < len; i += 1) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        i = len;\n\n        if (mask.v.c) {\n          bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n          pathInfo.tLength += bezierData.segmentLength;\n          pathInfo.segments.push(bezierData);\n          totalLength += bezierData.segmentLength;\n        }\n\n        (this || _global)._pathData.pi = pathInfo;\n      }\n\n      pathInfo = (this || _global)._pathData.pi;\n      currentLength = (this || _global)._pathData.f.v;\n      segmentInd = 0;\n      pointInd = 1;\n      segmentLength = 0;\n      flag = true;\n      segments = pathInfo.segments;\n\n      if (currentLength < 0 && mask.v.c) {\n        if (pathInfo.tLength < Math.abs(currentLength)) {\n          currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n        }\n\n        segmentInd = segments.length - 1;\n        points = segments[segmentInd].points;\n        pointInd = points.length - 1;\n\n        while (currentLength < 0) {\n          currentLength += points[pointInd].partialLength;\n          pointInd -= 1;\n\n          if (pointInd < 0) {\n            segmentInd -= 1;\n            points = segments[segmentInd].points;\n            pointInd = points.length - 1;\n          }\n        }\n      }\n\n      points = segments[segmentInd].points;\n      prevPoint = points[pointInd - 1];\n      currentPoint = points[pointInd];\n      partialLength = currentPoint.partialLength;\n    }\n\n    len = letters.length;\n    xPos = 0;\n    yPos = 0;\n    var yOff = documentData.finalSize * 1.2 * 0.714;\n    var firstLine = true;\n    var animatorProps;\n    var animatorSelector;\n    var j;\n    var jLen;\n    var letterValue;\n    jLen = animators.length;\n    var mult;\n    var ind = -1;\n    var offf;\n    var xPathPos;\n    var yPathPos;\n    var initPathPos = currentLength;\n    var initSegmentInd = segmentInd;\n    var initPointInd = pointInd;\n    var currentLine = -1;\n    var elemOpacity;\n    var sc;\n    var sw;\n    var fc;\n    var k;\n    var letterSw;\n    var letterSc;\n    var letterFc;\n    var letterM = \"\";\n    var letterP = (this || _global).defaultPropsArray;\n    var letterO; //\n\n    if (documentData.j === 2 || documentData.j === 1) {\n      var animatorJustifyOffset = 0;\n      var animatorFirstCharOffset = 0;\n      var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n      var lastIndex = 0;\n      var isNewLine = true;\n\n      for (i = 0; i < len; i += 1) {\n        if (letters[i].n) {\n          if (animatorJustifyOffset) {\n            animatorJustifyOffset += animatorFirstCharOffset;\n          }\n\n          while (lastIndex < i) {\n            letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n            lastIndex += 1;\n          }\n\n          animatorJustifyOffset = 0;\n          isNewLine = true;\n        } else {\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.t.propType) {\n              if (isNewLine && documentData.j === 2) {\n                animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n              }\n\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n              } else {\n                animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n              }\n            }\n          }\n\n          isNewLine = false;\n        }\n      }\n\n      if (animatorJustifyOffset) {\n        animatorJustifyOffset += animatorFirstCharOffset;\n      }\n\n      while (lastIndex < i) {\n        letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n        lastIndex += 1;\n      }\n    } //\n\n\n    for (i = 0; i < len; i += 1) {\n      matrixHelper.reset();\n      elemOpacity = 1;\n\n      if (letters[i].n) {\n        xPos = 0;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        currentLength = initPathPos;\n        firstLine = false;\n\n        if ((this || _global)._hasMaskedPath) {\n          segmentInd = initSegmentInd;\n          pointInd = initPointInd;\n          points = segments[segmentInd].points;\n          prevPoint = points[pointInd - 1];\n          currentPoint = points[pointInd];\n          partialLength = currentPoint.partialLength;\n          segmentLength = 0;\n        }\n\n        letterM = \"\";\n        letterFc = \"\";\n        letterSw = \"\";\n        letterO = \"\";\n        letterP = (this || _global).defaultPropsArray;\n      } else {\n        if ((this || _global)._hasMaskedPath) {\n          if (currentLine !== letters[i].line) {\n            switch (documentData.j) {\n              case 1:\n                currentLength += totalLength - documentData.lineWidths[letters[i].line];\n                break;\n\n              case 2:\n                currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n                break;\n\n              default:\n                break;\n            }\n\n            currentLine = letters[i].line;\n          }\n\n          if (ind !== letters[i].ind) {\n            if (letters[ind]) {\n              currentLength += letters[ind].extra;\n            }\n\n            currentLength += letters[i].an / 2;\n            ind = letters[i].ind;\n          }\n\n          currentLength += alignment[0] * letters[i].an * 0.005;\n          var animatorOffset = 0;\n\n          for (j = 0; j < jLen; j += 1) {\n            animatorProps = animators[j].a;\n\n            if (animatorProps.p.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.p.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.p.v[0] * mult;\n              }\n            }\n\n            if (animatorProps.a.propType) {\n              animatorSelector = animators[j].s;\n              mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n              if (mult.length) {\n                animatorOffset += animatorProps.a.v[0] * mult[0];\n              } else {\n                animatorOffset += animatorProps.a.v[0] * mult;\n              }\n            }\n          }\n\n          flag = true;\n\n          while (flag) {\n            if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n              perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n              xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n              yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n              matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n              flag = false;\n            } else if (points) {\n              segmentLength += currentPoint.partialLength;\n              pointInd += 1;\n\n              if (pointInd >= points.length) {\n                pointInd = 0;\n                segmentInd += 1;\n\n                if (!segments[segmentInd]) {\n                  if (mask.v.c) {\n                    pointInd = 0;\n                    segmentInd = 0;\n                    points = segments[segmentInd].points;\n                  } else {\n                    segmentLength -= currentPoint.partialLength;\n                    points = null;\n                  }\n                } else {\n                  points = segments[segmentInd].points;\n                }\n              }\n\n              if (points) {\n                prevPoint = currentPoint;\n                currentPoint = points[pointInd];\n                partialLength = currentPoint.partialLength;\n              }\n            }\n          }\n\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0);\n        } else {\n          offf = letters[i].an / 2 - letters[i].add;\n          matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n          matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.t.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n            if (xPos !== 0 || documentData.j !== 0) {\n              if ((this || _global)._hasMaskedPath) {\n                if (mult.length) {\n                  currentLength += animatorProps.t.v * mult[0];\n                } else {\n                  currentLength += animatorProps.t.v * mult;\n                }\n              } else if (mult.length) {\n                xPos += animatorProps.t.v * mult[0];\n              } else {\n                xPos += animatorProps.t.v * mult;\n              }\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          sw = documentData.sw || 0;\n        }\n\n        if (documentData.strokeColorAnim) {\n          if (documentData.sc) {\n            sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n          } else {\n            sc = [0, 0, 0];\n          }\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.a.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.s.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if (mult.length) {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n            } else {\n              matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n          animatorSelector = animators[j].s;\n          mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n          if (animatorProps.sk.propType) {\n            if (mult.length) {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n            } else {\n              matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n            }\n          }\n\n          if (animatorProps.r.propType) {\n            if (mult.length) {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n            } else {\n              matrixHelper.rotateZ(-animatorProps.r.v * mult);\n            }\n          }\n\n          if (animatorProps.ry.propType) {\n            if (mult.length) {\n              matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n            } else {\n              matrixHelper.rotateY(animatorProps.ry.v * mult);\n            }\n          }\n\n          if (animatorProps.rx.propType) {\n            if (mult.length) {\n              matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n            } else {\n              matrixHelper.rotateX(animatorProps.rx.v * mult);\n            }\n          }\n\n          if (animatorProps.o.propType) {\n            if (mult.length) {\n              elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n            } else {\n              elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n            }\n          }\n\n          if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n            if (mult.length) {\n              sw += animatorProps.sw.v * mult[0];\n            } else {\n              sw += animatorProps.sw.v * mult;\n            }\n          }\n\n          if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n            for (k = 0; k < 3; k += 1) {\n              if (mult.length) {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n              } else {\n                sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n              }\n            }\n          }\n\n          if (documentData.fillColorAnim && documentData.fc) {\n            if (animatorProps.fc.propType) {\n              for (k = 0; k < 3; k += 1) {\n                if (mult.length) {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n                } else {\n                  fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n                }\n              }\n            }\n\n            if (animatorProps.fh.propType) {\n              if (mult.length) {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n              } else {\n                fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n              }\n            }\n\n            if (animatorProps.fs.propType) {\n              if (mult.length) {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n              } else {\n                fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n              }\n            }\n\n            if (animatorProps.fb.propType) {\n              if (mult.length) {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n              } else {\n                fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n              }\n            }\n          }\n        }\n\n        for (j = 0; j < jLen; j += 1) {\n          animatorProps = animators[j].a;\n\n          if (animatorProps.p.propType) {\n            animatorSelector = animators[j].s;\n            mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n            if ((this || _global)._hasMaskedPath) {\n              if (mult.length) {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n              } else {\n                matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n              }\n            } else if (mult.length) {\n              matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n            } else {\n              matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n            }\n          }\n        }\n\n        if (documentData.strokeWidthAnim) {\n          letterSw = sw < 0 ? 0 : sw;\n        }\n\n        if (documentData.strokeColorAnim) {\n          letterSc = \"rgb(\" + Math.round(sc[0] * 255) + \",\" + Math.round(sc[1] * 255) + \",\" + Math.round(sc[2] * 255) + \")\";\n        }\n\n        if (documentData.fillColorAnim && documentData.fc) {\n          letterFc = \"rgb(\" + Math.round(fc[0] * 255) + \",\" + Math.round(fc[1] * 255) + \",\" + Math.round(fc[2] * 255) + \")\";\n        }\n\n        if ((this || _global)._hasMaskedPath) {\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n          if (textData.p.p) {\n            tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n            var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n            if (currentPoint.point[0] < prevPoint.point[0]) {\n              rot += 180;\n            }\n\n            matrixHelper.rotate(-rot * Math.PI / 180);\n          }\n\n          matrixHelper.translate(xPathPos, yPathPos, 0);\n          currentLength -= alignment[0] * letters[i].an * 0.005;\n\n          if (letters[i + 1] && ind !== letters[i + 1].ind) {\n            currentLength += letters[i].an / 2;\n            currentLength += documentData.tr * 0.001 * documentData.finalSize;\n          }\n        } else {\n          matrixHelper.translate(xPos, yPos, 0);\n\n          if (documentData.ps) {\n            // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n            matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n          }\n\n          switch (documentData.j) {\n            case 1:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n              break;\n\n            case 2:\n              matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n              break;\n\n            default:\n              break;\n          }\n\n          matrixHelper.translate(0, -documentData.ls);\n          matrixHelper.translate(offf, 0, 0);\n          matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n          xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n        }\n\n        if (renderType === \"html\") {\n          letterM = matrixHelper.toCSS();\n        } else if (renderType === \"svg\") {\n          letterM = matrixHelper.to2dCSS();\n        } else {\n          letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n        }\n\n        letterO = elemOpacity;\n      }\n\n      if (renderedLettersCount <= i) {\n        letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n\n        (this || _global).renderedLetters.push(letterValue);\n\n        renderedLettersCount += 1;\n        (this || _global).lettersChangedFlag = true;\n      } else {\n        letterValue = (this || _global).renderedLetters[i];\n        (this || _global).lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || (this || _global).lettersChangedFlag;\n      }\n    }\n  };\n\n  TextAnimatorProperty.prototype.getValue = function () {\n    if ((this || _global)._elem.globalData.frameId === (this || _global)._frameId) {\n      return;\n    }\n\n    (this || _global)._frameId = (this || _global)._elem.globalData.frameId;\n    this.iterateDynamicProperties();\n  };\n\n  TextAnimatorProperty.prototype.mHelper = new Matrix();\n  TextAnimatorProperty.prototype.defaultPropsArray = [];\n  extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n  /* global PropertyFactory, degToRads, TextSelectorProp */\n\n  /* exported TextAnimatorDataProperty */\n\n  function TextAnimatorDataProperty(elem, animatorProps, container) {\n    var defaultData = {\n      propType: false\n    };\n    var getProp = PropertyFactory.getProp;\n    var textAnimatorAnimatables = animatorProps.a;\n    (this || _global).a = {\n      r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n      rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n      ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n      sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n      sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n      s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n      a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n      o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n      p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n      sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n      sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n      fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n      fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n      fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n      fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n      t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n    };\n    (this || _global).s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n    (this || _global).s.t = animatorProps.s.t;\n  }\n\n  function LetterProps(o, sw, sc, fc, m, p) {\n    (this || _global).o = o;\n    (this || _global).sw = sw;\n    (this || _global).sc = sc;\n    (this || _global).fc = fc;\n    (this || _global).m = m;\n    (this || _global).p = p;\n    (this || _global)._mdf = {\n      o: true,\n      sw: !!sw,\n      sc: !!sc,\n      fc: !!fc,\n      m: true,\n      p: true\n    };\n  }\n\n  LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n    (this || _global)._mdf.o = false;\n    (this || _global)._mdf.sw = false;\n    (this || _global)._mdf.sc = false;\n    (this || _global)._mdf.fc = false;\n    (this || _global)._mdf.m = false;\n    (this || _global)._mdf.p = false;\n    var updated = false;\n\n    if ((this || _global).o !== o) {\n      (this || _global).o = o;\n      (this || _global)._mdf.o = true;\n      updated = true;\n    }\n\n    if ((this || _global).sw !== sw) {\n      (this || _global).sw = sw;\n      (this || _global)._mdf.sw = true;\n      updated = true;\n    }\n\n    if ((this || _global).sc !== sc) {\n      (this || _global).sc = sc;\n      (this || _global)._mdf.sc = true;\n      updated = true;\n    }\n\n    if ((this || _global).fc !== fc) {\n      (this || _global).fc = fc;\n      (this || _global)._mdf.fc = true;\n      updated = true;\n    }\n\n    if ((this || _global).m !== m) {\n      (this || _global).m = m;\n      (this || _global)._mdf.m = true;\n      updated = true;\n    }\n\n    if (p.length && ((this || _global).p[0] !== p[0] || (this || _global).p[1] !== p[1] || (this || _global).p[4] !== p[4] || (this || _global).p[5] !== p[5] || (this || _global).p[12] !== p[12] || (this || _global).p[13] !== p[13])) {\n      (this || _global).p = p;\n      (this || _global)._mdf.p = true;\n      updated = true;\n    }\n\n    return updated;\n  };\n  /* global FontManager, initialDefaultFrame, getFontProperties */\n\n  /* exported TextProperty */\n\n\n  function TextProperty(elem, data) {\n    (this || _global)._frameId = initialDefaultFrame;\n    (this || _global).pv = \"\";\n    (this || _global).v = \"\";\n    (this || _global).kf = false;\n    (this || _global)._isFirstFrame = true;\n    (this || _global)._mdf = false;\n    (this || _global).data = data;\n    (this || _global).elem = elem;\n    (this || _global).comp = (this || _global).elem.comp;\n    (this || _global).keysIndex = 0;\n    (this || _global).canResize = false;\n    (this || _global).minimumFontSize = 1;\n    (this || _global).effectsSequence = [];\n    (this || _global).currentData = {\n      ascent: 0,\n      boxWidth: (this || _global).defaultBoxWidth,\n      f: \"\",\n      fStyle: \"\",\n      fWeight: \"\",\n      fc: \"\",\n      j: \"\",\n      justifyOffset: \"\",\n      l: [],\n      lh: 0,\n      lineWidths: [],\n      ls: \"\",\n      of: \"\",\n      s: \"\",\n      sc: \"\",\n      sw: 0,\n      t: 0,\n      tr: 0,\n      sz: 0,\n      ps: null,\n      fillColorAnim: false,\n      strokeColorAnim: false,\n      strokeWidthAnim: false,\n      yOffset: 0,\n      finalSize: 0,\n      finalText: [],\n      finalLineHeight: 0,\n      __complete: false\n    };\n    this.copyData((this || _global).currentData, (this || _global).data.d.k[0].s);\n\n    if (!this.searchProperty()) {\n      this.completeTextData((this || _global).currentData);\n    }\n  }\n\n  TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n  TextProperty.prototype.copyData = function (obj, data) {\n    for (var s in data) {\n      if (Object.prototype.hasOwnProperty.call(data, s)) {\n        obj[s] = data[s];\n      }\n    }\n\n    return obj;\n  };\n\n  TextProperty.prototype.setCurrentData = function (data) {\n    if (!data.__complete) {\n      this.completeTextData(data);\n    }\n\n    (this || _global).currentData = data;\n    (this || _global).currentData.boxWidth = (this || _global).currentData.boxWidth || (this || _global).defaultBoxWidth;\n    (this || _global)._mdf = true;\n  };\n\n  TextProperty.prototype.searchProperty = function () {\n    return this.searchKeyframes();\n  };\n\n  TextProperty.prototype.searchKeyframes = function () {\n    (this || _global).kf = (this || _global).data.d.k.length > 1;\n\n    if ((this || _global).kf) {\n      this.addEffect((this || _global).getKeyframeValue.bind(this || _global));\n    }\n\n    return (this || _global).kf;\n  };\n\n  TextProperty.prototype.addEffect = function (effectFunction) {\n    (this || _global).effectsSequence.push(effectFunction);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.getValue = function (_finalValue) {\n    if (((this || _global).elem.globalData.frameId === (this || _global).frameId || !(this || _global).effectsSequence.length) && !_finalValue) {\n      return;\n    }\n\n    (this || _global).currentData.t = (this || _global).data.d.k[(this || _global).keysIndex].s.t;\n    var currentValue = (this || _global).currentData;\n    var currentIndex = (this || _global).keysIndex;\n\n    if ((this || _global).lock) {\n      this.setCurrentData((this || _global).currentData);\n      return;\n    }\n\n    (this || _global).lock = true;\n    (this || _global)._mdf = false;\n    var i;\n    var len = (this || _global).effectsSequence.length;\n    var finalValue = _finalValue || (this || _global).data.d.k[(this || _global).keysIndex].s;\n\n    for (i = 0; i < len; i += 1) {\n      // Checking if index changed to prevent creating a new object every time the expression updates.\n      if (currentIndex !== (this || _global).keysIndex) {\n        finalValue = (this || _global).effectsSequence[i](finalValue, finalValue.t);\n      } else {\n        finalValue = (this || _global).effectsSequence[i]((this || _global).currentData, finalValue.t);\n      }\n    }\n\n    if (currentValue !== finalValue) {\n      this.setCurrentData(finalValue);\n    }\n\n    (this || _global).v = (this || _global).currentData;\n    (this || _global).pv = (this || _global).v;\n    (this || _global).lock = false;\n    (this || _global).frameId = (this || _global).elem.globalData.frameId;\n  };\n\n  TextProperty.prototype.getKeyframeValue = function () {\n    var textKeys = (this || _global).data.d.k;\n    var frameNum = (this || _global).elem.comp.renderedFrame;\n    var i = 0;\n    var len = textKeys.length;\n\n    while (i <= len - 1) {\n      if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    if ((this || _global).keysIndex !== i) {\n      (this || _global).keysIndex = i;\n    }\n\n    return (this || _global).data.d.k[(this || _global).keysIndex].s;\n  };\n\n  TextProperty.prototype.buildFinalText = function (text) {\n    var combinedCharacters = FontManager.getCombinedCharacterCodes();\n    var charactersArray = [];\n    var i = 0;\n    var len = text.length;\n    var charCode;\n\n    while (i < len) {\n      charCode = text.charCodeAt(i);\n\n      if (combinedCharacters.indexOf(charCode) !== -1) {\n        charactersArray[charactersArray.length - 1] += text.charAt(i);\n      } else if (charCode >= 55296 && charCode <= 56319) {\n        charCode = text.charCodeAt(i + 1);\n\n        if (charCode >= 56320 && charCode <= 57343) {\n          charactersArray.push(text.substr(i, 2));\n          i += 1;\n        } else {\n          charactersArray.push(text.charAt(i));\n        }\n      } else {\n        charactersArray.push(text.charAt(i));\n      }\n\n      i += 1;\n    }\n\n    return charactersArray;\n  };\n\n  TextProperty.prototype.completeTextData = function (documentData) {\n    documentData.__complete = true;\n    var fontManager = (this || _global).elem.globalData.fontManager;\n    var data = (this || _global).data;\n    var letters = [];\n    var i;\n    var len;\n    var newLineFlag;\n    var index = 0;\n    var val;\n    var anchorGrouping = data.m.g;\n    var currentSize = 0;\n    var currentPos = 0;\n    var currentLine = 0;\n    var lineWidths = [];\n    var lineWidth = 0;\n    var maxLineWidth = 0;\n    var j;\n    var jLen;\n    var fontData = fontManager.getFontByName(documentData.f);\n    var charData;\n    var cLength = 0;\n    var fontProps = getFontProperties(fontData);\n    documentData.fWeight = fontProps.weight;\n    documentData.fStyle = fontProps.style;\n    documentData.finalSize = documentData.s;\n    documentData.finalText = this.buildFinalText(documentData.t);\n    len = documentData.finalText.length;\n    documentData.finalLineHeight = documentData.lh;\n    var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n    var charCode;\n\n    if (documentData.sz) {\n      var flag = true;\n      var boxWidth = documentData.sz[0];\n      var boxHeight = documentData.sz[1];\n      var currentHeight;\n      var finalText;\n\n      while (flag) {\n        finalText = this.buildFinalText(documentData.t);\n        currentHeight = 0;\n        lineWidth = 0;\n        len = finalText.length;\n        trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n        var lastSpaceIndex = -1;\n\n        for (i = 0; i < len; i += 1) {\n          charCode = finalText[i].charCodeAt(0);\n          newLineFlag = false;\n\n          if (finalText[i] === \" \") {\n            lastSpaceIndex = i;\n          } else if (charCode === 13 || charCode === 3) {\n            lineWidth = 0;\n            newLineFlag = true;\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n          }\n\n          if (fontManager.chars) {\n            charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n            cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n          } else {\n            // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n            cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n          }\n\n          if (lineWidth + cLength > boxWidth && finalText[i] !== \" \") {\n            if (lastSpaceIndex === -1) {\n              len += 1;\n            } else {\n              i = lastSpaceIndex;\n            }\n\n            currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n            finalText.splice(i, lastSpaceIndex === i ? 1 : 0, \"\\r\"); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n            lastSpaceIndex = -1;\n            lineWidth = 0;\n          } else {\n            lineWidth += cLength;\n            lineWidth += trackingOffset;\n          }\n        }\n\n        currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n        if ((this || _global).canResize && documentData.finalSize > (this || _global).minimumFontSize && boxHeight < currentHeight) {\n          documentData.finalSize -= 1;\n          documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n        } else {\n          documentData.finalText = finalText;\n          len = documentData.finalText.length;\n          flag = false;\n        }\n      }\n    }\n\n    lineWidth = -trackingOffset;\n    cLength = 0;\n    var uncollapsedSpaces = 0;\n    var currentChar;\n\n    for (i = 0; i < len; i += 1) {\n      newLineFlag = false;\n      currentChar = documentData.finalText[i];\n      charCode = currentChar.charCodeAt(0);\n\n      if (charCode === 13 || charCode === 3) {\n        uncollapsedSpaces = 0;\n        lineWidths.push(lineWidth);\n        maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n        lineWidth = -2 * trackingOffset;\n        val = \"\";\n        newLineFlag = true;\n        currentLine += 1;\n      } else {\n        val = currentChar;\n      }\n\n      if (fontManager.chars) {\n        charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n        cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n      } else {\n        // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n        // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n        cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n      } //\n\n\n      if (currentChar === \" \") {\n        uncollapsedSpaces += cLength + trackingOffset;\n      } else {\n        lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n        uncollapsedSpaces = 0;\n      }\n\n      letters.push({\n        l: cLength,\n        an: cLength,\n        add: currentSize,\n        n: newLineFlag,\n        anIndexes: [],\n        val: val,\n        line: currentLine,\n        animatorJustifyOffset: 0\n      });\n\n      if (anchorGrouping == 2) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === \"\" || val === \" \" || i === len - 1) {\n          if (val === \"\" || val === \" \") {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          index += 1;\n          currentSize = 0;\n        }\n      } else if (anchorGrouping == 3) {\n        // eslint-disable-line eqeqeq\n        currentSize += cLength;\n\n        if (val === \"\" || i === len - 1) {\n          if (val === \"\") {\n            currentSize -= cLength;\n          }\n\n          while (currentPos <= i) {\n            letters[currentPos].an = currentSize;\n            letters[currentPos].ind = index;\n            letters[currentPos].extra = cLength;\n            currentPos += 1;\n          }\n\n          currentSize = 0;\n          index += 1;\n        }\n      } else {\n        letters[index].ind = index;\n        letters[index].extra = 0;\n        index += 1;\n      }\n    }\n\n    documentData.l = letters;\n    maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n    lineWidths.push(lineWidth);\n\n    if (documentData.sz) {\n      documentData.boxWidth = documentData.sz[0];\n      documentData.justifyOffset = 0;\n    } else {\n      documentData.boxWidth = maxLineWidth;\n\n      switch (documentData.j) {\n        case 1:\n          documentData.justifyOffset = -documentData.boxWidth;\n          break;\n\n        case 2:\n          documentData.justifyOffset = -documentData.boxWidth / 2;\n          break;\n\n        default:\n          documentData.justifyOffset = 0;\n      }\n    }\n\n    documentData.lineWidths = lineWidths;\n    var animators = data.a;\n    var animatorData;\n    var letterData;\n    jLen = animators.length;\n    var based;\n    var ind;\n    var indexes = [];\n\n    for (j = 0; j < jLen; j += 1) {\n      animatorData = animators[j];\n\n      if (animatorData.a.sc) {\n        documentData.strokeColorAnim = true;\n      }\n\n      if (animatorData.a.sw) {\n        documentData.strokeWidthAnim = true;\n      }\n\n      if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n        documentData.fillColorAnim = true;\n      }\n\n      ind = 0;\n      based = animatorData.s.b;\n\n      for (i = 0; i < len; i += 1) {\n        letterData = letters[i];\n        letterData.anIndexes[j] = ind;\n\n        if (based == 1 && letterData.val !== \"\" || based == 2 && letterData.val !== \"\" && letterData.val !== \" \" || based == 3 && (letterData.n || letterData.val == \" \" || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n          // eslint-disable-line eqeqeq\n          if (animatorData.s.rn === 1) {\n            indexes.push(ind);\n          }\n\n          ind += 1;\n        }\n      }\n\n      data.a[j].s.totalChars = ind;\n      var currentInd = -1;\n      var newInd;\n\n      if (animatorData.s.rn === 1) {\n        for (i = 0; i < len; i += 1) {\n          letterData = letters[i];\n\n          if (currentInd != letterData.anIndexes[j]) {\n            // eslint-disable-line eqeqeq\n            currentInd = letterData.anIndexes[j];\n            newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n          }\n\n          letterData.anIndexes[j] = newInd;\n        }\n      }\n    }\n\n    documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n    documentData.ls = documentData.ls || 0;\n    documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n  };\n\n  TextProperty.prototype.updateDocumentData = function (newData, index) {\n    index = index === undefined ? (this || _global).keysIndex : index;\n    var dData = this.copyData({}, (this || _global).data.d.k[index].s);\n    dData = this.copyData(dData, newData);\n    (this || _global).data.d.k[index].s = dData;\n    this.recalculate(index);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.recalculate = function (index) {\n    var dData = (this || _global).data.d.k[index].s;\n    dData.__complete = false;\n    (this || _global).keysIndex = 0;\n    (this || _global)._isFirstFrame = true;\n    this.getValue(dData);\n  };\n\n  TextProperty.prototype.canResizeFont = function (_canResize) {\n    (this || _global).canResize = _canResize;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n\n  TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n    (this || _global).minimumFontSize = Math.floor(_fontValue) || 1;\n    this.recalculate((this || _global).keysIndex);\n\n    (this || _global).elem.addDynamicProperty(this || _global);\n  };\n  /* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\n\n  /* exported TextSelectorProp */\n\n\n  var TextSelectorProp = function () {\n    var max = Math.max;\n    var min = Math.min;\n    var floor = Math.floor;\n\n    function TextSelectorPropFactory(elem, data) {\n      (this || _global)._currentTextLength = -1;\n      (this || _global).k = false;\n      (this || _global).data = data;\n      (this || _global).elem = elem;\n      (this || _global).comp = elem.comp;\n      (this || _global).finalS = 0;\n      (this || _global).finalE = 0;\n      this.initDynamicPropertyContainer(elem);\n      (this || _global).s = PropertyFactory.getProp(elem, data.s || {\n        k: 0\n      }, 0, 0, this || _global);\n\n      if (\"e\" in data) {\n        (this || _global).e = PropertyFactory.getProp(elem, data.e, 0, 0, this || _global);\n      } else {\n        (this || _global).e = {\n          v: 100\n        };\n      }\n\n      (this || _global).o = PropertyFactory.getProp(elem, data.o || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).xe = PropertyFactory.getProp(elem, data.xe || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).ne = PropertyFactory.getProp(elem, data.ne || {\n        k: 0\n      }, 0, 0, this || _global);\n      (this || _global).a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this || _global);\n\n      if (!(this || _global).dynamicProperties.length) {\n        this.getValue();\n      }\n    }\n\n    TextSelectorPropFactory.prototype = {\n      getMult: function (ind) {\n        if ((this || _global)._currentTextLength !== (this || _global).elem.textProperty.currentData.l.length) {\n          this.getValue();\n        } // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\n\n\n        var x1 = 0;\n        var y1 = 0;\n        var x2 = 1;\n        var y2 = 1;\n\n        if ((this || _global).ne.v > 0) {\n          x1 = (this || _global).ne.v / 100;\n        } else {\n          y1 = -(this || _global).ne.v / 100;\n        }\n\n        if ((this || _global).xe.v > 0) {\n          x2 = 1 - (this || _global).xe.v / 100;\n        } else {\n          y2 = 1 + (this || _global).xe.v / 100;\n        }\n\n        var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n        var mult = 0;\n        var s = (this || _global).finalS;\n        var e = (this || _global).finalE;\n        var type = (this || _global).data.sh;\n\n        if (type === 2) {\n          if (e === s) {\n            mult = ind >= e ? 1 : 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 3) {\n          if (e === s) {\n            mult = ind >= e ? 0 : 1;\n          } else {\n            mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n          }\n\n          mult = easer(mult);\n        } else if (type === 4) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n            if (mult < 0.5) {\n              mult *= 2;\n            } else {\n              mult = 1 - 2 * (mult - 0.5);\n            }\n          }\n\n          mult = easer(mult);\n        } else if (type === 5) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            var tot = e - s;\n            /* ind += 0.5;\r\n                      mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            var x = -tot / 2 + ind;\n            var a = tot / 2;\n            mult = Math.sqrt(1 - x * x / (a * a));\n          }\n\n          mult = easer(mult);\n        } else if (type === 6) {\n          if (e === s) {\n            mult = 0;\n          } else {\n            ind = min(max(0, ind + 0.5 - s), e - s);\n            mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n          }\n\n          mult = easer(mult);\n        } else {\n          if (ind >= floor(s)) {\n            if (ind - s < 0) {\n              mult = max(0, min(min(e, 1) - (s - ind), 1));\n            } else {\n              mult = max(0, min(e - ind, 1));\n            }\n          }\n\n          mult = easer(mult);\n        }\n\n        return mult * (this || _global).a.v;\n      },\n      getValue: function (newCharsFlag) {\n        this.iterateDynamicProperties();\n        (this || _global)._mdf = newCharsFlag || (this || _global)._mdf;\n        (this || _global)._currentTextLength = (this || _global).elem.textProperty.currentData.l.length || 0;\n\n        if (newCharsFlag && (this || _global).data.r === 2) {\n          (this || _global).e.v = (this || _global)._currentTextLength;\n        }\n\n        var divisor = (this || _global).data.r === 2 ? 1 : 100 / (this || _global).data.totalChars;\n        var o = (this || _global).o.v / divisor;\n        var s = (this || _global).s.v / divisor + o;\n        var e = (this || _global).e.v / divisor + o;\n\n        if (s > e) {\n          var _s = s;\n          s = e;\n          e = _s;\n        }\n\n        (this || _global).finalS = s;\n        (this || _global).finalE = e;\n      }\n    };\n    extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n    function getTextSelectorProp(elem, data, arr) {\n      return new TextSelectorPropFactory(elem, data, arr);\n    }\n\n    return {\n      getTextSelectorProp: getTextSelectorProp\n    };\n  }();\n  /* global createSizedArray, pooling */\n\n  /* exported poolFactory */\n\n\n  var poolFactory = function () {\n    return function (initialLength, _create, _release) {\n      var _length = 0;\n      var _maxLength = initialLength;\n      var pool = createSizedArray(_maxLength);\n      var ob = {\n        newElement: newElement,\n        release: release\n      };\n\n      function newElement() {\n        var element;\n\n        if (_length) {\n          _length -= 1;\n          element = pool[_length];\n        } else {\n          element = _create();\n        }\n\n        return element;\n      }\n\n      function release(element) {\n        if (_length === _maxLength) {\n          pool = pooling.double(pool);\n          _maxLength *= 2;\n        }\n\n        if (_release) {\n          _release(element);\n        }\n\n        pool[_length] = element;\n        _length += 1;\n      }\n\n      return ob;\n    };\n  }();\n  /* global createSizedArray */\n\n  /* exported pooling */\n\n\n  var pooling = function () {\n    function double(arr) {\n      return arr.concat(createSizedArray(arr.length));\n    }\n\n    return {\n      double: double\n    };\n  }();\n  /* global createTypedArray, poolFactory */\n\n  /* exported pointPool */\n\n\n  var pointPool = function () {\n    function create() {\n      return createTypedArray(\"float32\", 2);\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* global ShapePath, pointPool, poolFactory */\n\n  /* exported shapePool */\n\n\n  var shapePool = function () {\n    function create() {\n      return new ShapePath();\n    }\n\n    function release(shapePath) {\n      var len = shapePath._length;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        pointPool.release(shapePath.v[i]);\n        pointPool.release(shapePath.i[i]);\n        pointPool.release(shapePath.o[i]);\n        shapePath.v[i] = null;\n        shapePath.i[i] = null;\n        shapePath.o[i] = null;\n      }\n\n      shapePath._length = 0;\n      shapePath.c = false;\n    }\n\n    function clone(shape) {\n      var cloned = factory.newElement();\n      var i;\n      var len = shape._length === undefined ? shape.v.length : shape._length;\n      cloned.setLength(len);\n      cloned.c = shape.c;\n\n      for (i = 0; i < len; i += 1) {\n        cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n      }\n\n      return cloned;\n    }\n\n    var factory = poolFactory(4, create, release);\n    factory.clone = clone;\n    return factory;\n  }();\n  /* global createSizedArray, ShapeCollection, shapePool, pooling */\n\n  /* exported shapeCollectionPool */\n\n\n  var shapeCollectionPool = function () {\n    var ob = {\n      newShapeCollection: newShapeCollection,\n      release: release\n    };\n    var _length = 0;\n    var _maxLength = 4;\n    var pool = createSizedArray(_maxLength);\n\n    function newShapeCollection() {\n      var shapeCollection;\n\n      if (_length) {\n        _length -= 1;\n        shapeCollection = pool[_length];\n      } else {\n        shapeCollection = new ShapeCollection();\n      }\n\n      return shapeCollection;\n    }\n\n    function release(shapeCollection) {\n      var i;\n      var len = shapeCollection._length;\n\n      for (i = 0; i < len; i += 1) {\n        shapePool.release(shapeCollection.shapes[i]);\n      }\n\n      shapeCollection._length = 0;\n\n      if (_length === _maxLength) {\n        pool = pooling.double(pool);\n        _maxLength *= 2;\n      }\n\n      pool[_length] = shapeCollection;\n      _length += 1;\n    }\n\n    return ob;\n  }();\n  /* global poolFactory, bezierLengthPool */\n\n  /* exported segmentsLengthPool */\n\n\n  var segmentsLengthPool = function () {\n    function create() {\n      return {\n        lengths: [],\n        totalLength: 0\n      };\n    }\n\n    function release(element) {\n      var i;\n      var len = element.lengths.length;\n\n      for (i = 0; i < len; i += 1) {\n        bezierLengthPool.release(element.lengths[i]);\n      }\n\n      element.lengths.length = 0;\n    }\n\n    return poolFactory(8, create, release);\n  }();\n  /* global createTypedArray, defaultCurveSegments, poolFactory */\n\n  /* exported bezierLengthPool */\n\n\n  var bezierLengthPool = function () {\n    function create() {\n      return {\n        addedLength: 0,\n        percents: createTypedArray(\"float32\", defaultCurveSegments),\n        lengths: createTypedArray(\"float32\", defaultCurveSegments)\n      };\n    }\n\n    return poolFactory(8, create);\n  }();\n  /* exported markerParser */\n\n\n  var markerParser = function () {\n    function parsePayloadLines(payload) {\n      var lines = payload.split(\"\\r\\n\");\n      var keys = {};\n      var line;\n      var keysCount = 0;\n\n      for (var i = 0; i < lines.length; i += 1) {\n        line = lines[i].split(\":\");\n\n        if (line.length === 2) {\n          keys[line[0]] = line[1].trim();\n          keysCount += 1;\n        }\n      }\n\n      if (keysCount === 0) {\n        throw new Error();\n      }\n\n      return keys;\n    }\n\n    return function (_markers) {\n      var markers = [];\n\n      for (var i = 0; i < _markers.length; i += 1) {\n        var _marker = _markers[i];\n        var markerData = {\n          time: _marker.tm,\n          duration: _marker.dr\n        };\n\n        try {\n          markerData.payload = JSON.parse(_markers[i].cm);\n        } catch (_) {\n          try {\n            markerData.payload = parsePayloadLines(_markers[i].cm);\n          } catch (__) {\n            markerData.payload = {\n              name: _markers[i]\n            };\n          }\n        }\n\n        markers.push(markerData);\n      }\n\n      return markers;\n    };\n  }();\n  /* global AudioElement, FootageElement, FontManager */\n\n\n  function BaseRenderer() {}\n\n  BaseRenderer.prototype.checkLayers = function (num) {\n    var i;\n    var len = (this || _global).layers.length;\n    var data;\n    (this || _global).completeLayers = true;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if (!(this || _global).elements[i]) {\n        data = (this || _global).layers[i];\n\n        if (data.ip - data.st <= num - (this || _global).layers[i].st && data.op - data.st > num - (this || _global).layers[i].st) {\n          this.buildItem(i);\n        }\n      }\n\n      (this || _global).completeLayers = (this || _global).elements[i] ? (this || _global).completeLayers : false;\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.createItem = function (layer) {\n    switch (layer.ty) {\n      case 2:\n        return this.createImage(layer);\n\n      case 0:\n        return this.createComp(layer);\n\n      case 1:\n        return this.createSolid(layer);\n\n      case 3:\n        return this.createNull(layer);\n\n      case 4:\n        return this.createShape(layer);\n\n      case 5:\n        return this.createText(layer);\n\n      case 6:\n        return this.createAudio(layer);\n\n      case 13:\n        return this.createCamera(layer);\n\n      case 15:\n        return this.createFootage(layer);\n\n      default:\n        return this.createNull(layer);\n    }\n  };\n\n  BaseRenderer.prototype.createCamera = function () {\n    throw new Error(\"You're using a 3d camera. Try the html renderer.\");\n  };\n\n  BaseRenderer.prototype.createAudio = function (data) {\n    return new AudioElement(data, (this || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.createFootage = function (data) {\n    return new FootageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  BaseRenderer.prototype.buildAllItems = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      this.buildItem(i);\n    }\n\n    this.checkPendingElements();\n  };\n\n  BaseRenderer.prototype.includeLayers = function (newLayers) {\n    (this || _global).completeLayers = false;\n    var i;\n    var len = newLayers.length;\n    var j;\n    var jLen = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      j = 0;\n\n      while (j < jLen) {\n        if ((this || _global).layers[j].id === newLayers[i].id) {\n          (this || _global).layers[j] = newLayers[i];\n          break;\n        }\n\n        j += 1;\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n    (this || _global).globalData.projectInterface = pInterface;\n  };\n\n  BaseRenderer.prototype.initItems = function () {\n    if (!(this || _global).globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n  };\n\n  BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n    var elements = (this || _global).elements;\n    var layers = (this || _global).layers;\n    var i = 0;\n    var len = layers.length;\n\n    while (i < len) {\n      if (layers[i].ind == parentName) {\n        // eslint-disable-line eqeqeq\n        if (!elements[i] || elements[i] === true) {\n          this.buildItem(i);\n          this.addPendingElement(element);\n        } else {\n          hierarchy.push(elements[i]);\n          elements[i].setAsParent();\n\n          if (layers[i].parent !== undefined) {\n            this.buildElementParenting(element, layers[i].parent, hierarchy);\n          } else {\n            element.setHierarchy(hierarchy);\n          }\n        }\n      }\n\n      i += 1;\n    }\n  };\n\n  BaseRenderer.prototype.addPendingElement = function (element) {\n    (this || _global).pendingElements.push(element);\n  };\n\n  BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i]);\n        comp.initExpressions();\n\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n\n  BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n    (this || _global).globalData.fontManager = new FontManager();\n\n    (this || _global).globalData.fontManager.addChars(animData.chars);\n\n    (this || _global).globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n\n    (this || _global).globalData.getAssetData = (this || _global).animationItem.getAssetData.bind((this || _global).animationItem);\n    (this || _global).globalData.getAssetsPath = (this || _global).animationItem.getAssetsPath.bind((this || _global).animationItem);\n    (this || _global).globalData.imageLoader = (this || _global).animationItem.imagePreloader;\n    (this || _global).globalData.audioController = (this || _global).animationItem.audioController;\n    (this || _global).globalData.frameId = 0;\n    (this || _global).globalData.frameRate = animData.fr;\n    (this || _global).globalData.nm = animData.nm;\n    (this || _global).globalData.compSize = {\n      w: animData.w,\n      h: animData.h\n    };\n  };\n  /* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\n  IImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\n\n\n  function SVGRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).svgElement = createNS(\"svg\");\n    var ariaLabel = \"\";\n\n    if (config && config.title) {\n      var titleElement = createNS(\"title\");\n      var titleId = createElementID();\n      titleElement.setAttribute(\"id\", titleId);\n      titleElement.textContent = config.title;\n\n      (this || _global).svgElement.appendChild(titleElement);\n\n      ariaLabel += titleId;\n    }\n\n    if (config && config.description) {\n      var descElement = createNS(\"desc\");\n      var descId = createElementID();\n      descElement.setAttribute(\"id\", descId);\n      descElement.textContent = config.description;\n\n      (this || _global).svgElement.appendChild(descElement);\n\n      ariaLabel += \" \" + descId;\n    }\n\n    if (ariaLabel) {\n      (this || _global).svgElement.setAttribute(\"aria-labelledby\", ariaLabel);\n    }\n\n    var defs = createNS(\"defs\");\n\n    (this || _global).svgElement.appendChild(defs);\n\n    var maskElement = createNS(\"g\");\n\n    (this || _global).svgElement.appendChild(maskElement);\n\n    (this || _global).layerElement = maskElement;\n    (this || _global).renderConfig = {\n      preserveAspectRatio: config && config.preserveAspectRatio || \"xMidYMid meet\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      progressiveLoad: config && config.progressiveLoad || false,\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      viewBoxOnly: config && config.viewBoxOnly || false,\n      viewBoxSize: config && config.viewBoxSize || false,\n      className: config && config.className || \"\",\n      id: config && config.id || \"\",\n      focusable: config && config.focusable,\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || \"100%\",\n        height: config && config.filterSize && config.filterSize.height || \"100%\",\n        x: config && config.filterSize && config.filterSize.x || \"0%\",\n        y: config && config.filterSize && config.filterSize.y || \"0%\"\n      }\n    };\n    (this || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      defs: defs,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).rendererType = \"svg\";\n  }\n\n  extendPrototype([BaseRenderer], SVGRenderer);\n\n  SVGRenderer.prototype.createNull = function (data) {\n    return new NullElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createShape = function (data) {\n    return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createText = function (data) {\n    return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createImage = function (data) {\n    return new IImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createComp = function (data) {\n    return new SVGCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.createSolid = function (data) {\n    return new ISolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  SVGRenderer.prototype.configAnimation = function (animData) {\n    (this || _global).svgElement.setAttribute(\"xmlns\", \"http://www.w3.org/2000/svg\");\n\n    if ((this || _global).renderConfig.viewBoxSize) {\n      (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).renderConfig.viewBoxSize);\n    } else {\n      (this || _global).svgElement.setAttribute(\"viewBox\", \"0 0 \" + animData.w + \" \" + animData.h);\n    }\n\n    if (!(this || _global).renderConfig.viewBoxOnly) {\n      (this || _global).svgElement.setAttribute(\"width\", animData.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", animData.h);\n\n      (this || _global).svgElement.style.width = \"100%\";\n      (this || _global).svgElement.style.height = \"100%\";\n      (this || _global).svgElement.style.transform = \"translate3d(0,0,0)\";\n    }\n\n    if ((this || _global).renderConfig.className) {\n      (this || _global).svgElement.setAttribute(\"class\", (this || _global).renderConfig.className);\n    }\n\n    if ((this || _global).renderConfig.id) {\n      (this || _global).svgElement.setAttribute(\"id\", (this || _global).renderConfig.id);\n    }\n\n    if ((this || _global).renderConfig.focusable !== undefined) {\n      (this || _global).svgElement.setAttribute(\"focusable\", (this || _global).renderConfig.focusable);\n    }\n\n    (this || _global).svgElement.setAttribute(\"preserveAspectRatio\", (this || _global).renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n    // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n\n    (this || _global).animationItem.wrapper.appendChild((this || _global).svgElement); // Mask animation\n\n\n    var defs = (this || _global).globalData.defs;\n    this.setupGlobalData(animData, defs);\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).data = animData;\n    var maskElement = createNS(\"clipPath\");\n    var rect = createNS(\"rect\");\n    rect.setAttribute(\"width\", animData.w);\n    rect.setAttribute(\"height\", animData.h);\n    rect.setAttribute(\"x\", 0);\n    rect.setAttribute(\"y\", 0);\n    var maskId = createElementID();\n    maskElement.setAttribute(\"id\", maskId);\n    maskElement.appendChild(rect);\n\n    (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + maskId + \")\");\n\n    defs.appendChild(maskElement);\n    (this || _global).layers = animData.layers;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n  };\n\n  SVGRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).layerElement = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  SVGRenderer.prototype.updateContainerSize = function () {};\n\n  SVGRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    elements[pos] = true;\n    var element = this.createItem((this || _global).layers[pos]);\n    elements[pos] = element;\n\n    if (expressionsPlugin) {\n      if ((this || _global).layers[pos].ty === 0) {\n        (this || _global).globalData.projectInterface.registerComposition(element);\n      }\n\n      element.initExpressions();\n    }\n\n    this.appendElementInPos(element, pos);\n\n    if ((this || _global).layers[pos].tt) {\n      if (!(this || _global).elements[pos - 1] || (this || _global).elements[pos - 1] === true) {\n        this.buildItem(pos - 1);\n        this.addPendingElement(element);\n      } else {\n        element.setMatte(elements[pos - 1].layerId);\n      }\n    }\n  };\n\n  SVGRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n\n      if (element.data.tt) {\n        var i = 0;\n        var len = (this || _global).elements.length;\n\n        while (i < len) {\n          if ((this || _global).elements[i] === element) {\n            element.setMatte((this || _global).elements[i - 1].layerId);\n            break;\n          }\n\n          i += 1;\n        }\n      }\n    }\n  };\n\n  SVGRenderer.prototype.renderFrame = function (num) {\n    if ((this || _global).renderedFrame === num || (this || _global).destroyed) {\n      return;\n    }\n\n    if (num === null) {\n      num = (this || _global).renderedFrame;\n    } else {\n      (this || _global).renderedFrame = num;\n    } // console.log('-------');\n    // console.log('FRAME ',num);\n\n\n    (this || _global).globalData.frameNum = num;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData.projectInterface.currentFrame = num;\n    (this || _global).globalData._mdf = false;\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      for (i = 0; i < len; i += 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n    }\n  };\n\n  SVGRenderer.prototype.appendElementInPos = function (element, pos) {\n    var newElement = element.getBaseElement();\n\n    if (!newElement) {\n      return;\n    }\n\n    var i = 0;\n    var nextElement;\n\n    while (i < pos) {\n      if ((this || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement()) {\n        nextElement = (this || _global).elements[i].getBaseElement();\n      }\n\n      i += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(newElement, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(newElement);\n    }\n  };\n\n  SVGRenderer.prototype.hide = function () {\n    (this || _global).layerElement.style.display = \"none\";\n  };\n\n  SVGRenderer.prototype.show = function () {\n    (this || _global).layerElement.style.display = \"block\";\n  };\n  /* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\n  CVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\n\n\n  function CanvasRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).renderConfig = {\n      clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n      context: config && config.context || null,\n      progressiveLoad: config && config.progressiveLoad || false,\n      preserveAspectRatio: config && config.preserveAspectRatio || \"xMidYMid meet\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      className: config && config.className || \"\",\n      id: config && config.id || \"\"\n    };\n    (this || _global).renderConfig.dpr = config && config.dpr || 1;\n\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n    }\n\n    (this || _global).renderedFrame = -1;\n    (this || _global).globalData = {\n      frameNum: -1,\n      _mdf: false,\n      renderConfig: (this || _global).renderConfig,\n      currentGlobalAlpha: -1\n    };\n    (this || _global).contextData = new CVContextData();\n    (this || _global).elements = [];\n    (this || _global).pendingElements = [];\n    (this || _global).transformMat = new Matrix();\n    (this || _global).completeLayers = false;\n    (this || _global).rendererType = \"canvas\";\n  }\n\n  extendPrototype([BaseRenderer], CanvasRenderer);\n\n  CanvasRenderer.prototype.createShape = function (data) {\n    return new CVShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createText = function (data) {\n    return new CVTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createImage = function (data) {\n    return new CVImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createComp = function (data) {\n    return new CVCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createSolid = function (data) {\n    return new CVSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  CanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  CanvasRenderer.prototype.ctxTransform = function (props) {\n    if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n      return;\n    }\n\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n\n      return;\n    }\n\n    (this || _global).transformMat.cloneFromProps(props);\n\n    var cProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n\n    (this || _global).contextData.cTr.cloneFromProps((this || _global).transformMat.props);\n\n    var trProps = (this || _global).contextData.cTr.props;\n\n    (this || _global).canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n  };\n\n  CanvasRenderer.prototype.ctxOpacity = function (op) {\n    /* if(op === 1){\r\n          return;\r\n      } */\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.globalAlpha *= op < 0 ? 0 : op;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n      return;\n    }\n\n    (this || _global).contextData.cO *= op < 0 ? 0 : op;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== (this || _global).contextData.cO) {\n      (this || _global).canvasContext.globalAlpha = (this || _global).contextData.cO;\n      (this || _global).globalData.currentGlobalAlpha = (this || _global).contextData.cO;\n    }\n  };\n\n  CanvasRenderer.prototype.reset = function () {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    (this || _global).contextData.reset();\n  };\n\n  CanvasRenderer.prototype.save = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.save();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.save();\n    }\n\n    var props = (this || _global).contextData.cTr.props;\n\n    if ((this || _global).contextData._length <= (this || _global).contextData.cArrPos) {\n      (this || _global).contextData.duplicate();\n    }\n\n    var i;\n    var arr = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = props[i];\n    }\n\n    (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos] = (this || _global).contextData.cO;\n    (this || _global).contextData.cArrPos += 1;\n  };\n\n  CanvasRenderer.prototype.restore = function (actionFlag) {\n    if (!(this || _global).renderConfig.clearCanvas) {\n      (this || _global).canvasContext.restore();\n\n      return;\n    }\n\n    if (actionFlag) {\n      (this || _global).canvasContext.restore();\n\n      (this || _global).globalData.blendMode = \"source-over\";\n    }\n\n    (this || _global).contextData.cArrPos -= 1;\n    var popped = (this || _global).contextData.saved[(this || _global).contextData.cArrPos];\n    var i;\n    var arr = (this || _global).contextData.cTr.props;\n\n    for (i = 0; i < 16; i += 1) {\n      arr[i] = popped[i];\n    }\n\n    (this || _global).canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n\n    popped = (this || _global).contextData.savedOp[(this || _global).contextData.cArrPos];\n    (this || _global).contextData.cO = popped;\n\n    if ((this || _global).globalData.currentGlobalAlpha !== popped) {\n      (this || _global).canvasContext.globalAlpha = popped;\n      (this || _global).globalData.currentGlobalAlpha = popped;\n    }\n  };\n\n  CanvasRenderer.prototype.configAnimation = function (animData) {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.container = createTag(\"canvas\");\n      var containerStyle = (this || _global).animationItem.container.style;\n      containerStyle.width = \"100%\";\n      containerStyle.height = \"100%\";\n      var origin = \"0px 0px 0px\";\n      containerStyle.transformOrigin = origin;\n      containerStyle.mozTransformOrigin = origin;\n      containerStyle.webkitTransformOrigin = origin;\n      containerStyle[\"-webkit-transform\"] = origin;\n\n      (this || _global).animationItem.wrapper.appendChild((this || _global).animationItem.container);\n\n      (this || _global).canvasContext = (this || _global).animationItem.container.getContext(\"2d\");\n\n      if ((this || _global).renderConfig.className) {\n        (this || _global).animationItem.container.setAttribute(\"class\", (this || _global).renderConfig.className);\n      }\n\n      if ((this || _global).renderConfig.id) {\n        (this || _global).animationItem.container.setAttribute(\"id\", (this || _global).renderConfig.id);\n      }\n    } else {\n      (this || _global).canvasContext = (this || _global).renderConfig.context;\n    }\n\n    (this || _global).data = animData;\n    (this || _global).layers = animData.layers;\n    (this || _global).transformCanvas = {\n      w: animData.w,\n      h: animData.h,\n      sx: 0,\n      sy: 0,\n      tx: 0,\n      ty: 0\n    };\n    this.setupGlobalData(animData, document.body);\n    (this || _global).globalData.canvasContext = (this || _global).canvasContext;\n    (this || _global).globalData.renderer = this || _global;\n    (this || _global).globalData.isDashed = false;\n    (this || _global).globalData.progressiveLoad = (this || _global).renderConfig.progressiveLoad;\n    (this || _global).globalData.transformCanvas = (this || _global).transformCanvas;\n    (this || _global).elements = createSizedArray(animData.layers.length);\n    this.updateContainerSize();\n  };\n\n  CanvasRenderer.prototype.updateContainerSize = function () {\n    this.reset();\n    var elementWidth;\n    var elementHeight;\n\n    if ((this || _global).animationItem.wrapper && (this || _global).animationItem.container) {\n      elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n      elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n\n      (this || _global).animationItem.container.setAttribute(\"width\", elementWidth * (this || _global).renderConfig.dpr);\n\n      (this || _global).animationItem.container.setAttribute(\"height\", elementHeight * (this || _global).renderConfig.dpr);\n    } else {\n      elementWidth = (this || _global).canvasContext.canvas.width * (this || _global).renderConfig.dpr;\n      elementHeight = (this || _global).canvasContext.canvas.height * (this || _global).renderConfig.dpr;\n    }\n\n    var elementRel;\n    var animationRel;\n\n    if ((this || _global).renderConfig.preserveAspectRatio.indexOf(\"meet\") !== -1 || (this || _global).renderConfig.preserveAspectRatio.indexOf(\"slice\") !== -1) {\n      var par = (this || _global).renderConfig.preserveAspectRatio.split(\" \");\n\n      var fillType = par[1] || \"meet\";\n      var pos = par[0] || \"xMidYMid\";\n      var xPos = pos.substr(0, 4);\n      var yPos = pos.substr(4);\n      elementRel = elementWidth / elementHeight;\n      animationRel = (this || _global).transformCanvas.w / (this || _global).transformCanvas.h;\n\n      if (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\") {\n        (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      } else {\n        (this || _global).transformCanvas.sx = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n        (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      }\n\n      if (xPos === \"xMid\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (xPos === \"xMax\" && (animationRel < elementRel && fillType === \"meet\" || animationRel > elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.tx = (elementWidth - (this || _global).transformCanvas.w * (elementHeight / (this || _global).transformCanvas.h)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.tx = 0;\n      }\n\n      if (yPos === \"YMid\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) / 2 * (this || _global).renderConfig.dpr;\n      } else if (yPos === \"YMax\" && (animationRel > elementRel && fillType === \"meet\" || animationRel < elementRel && fillType === \"slice\")) {\n        (this || _global).transformCanvas.ty = (elementHeight - (this || _global).transformCanvas.h * (elementWidth / (this || _global).transformCanvas.w)) * (this || _global).renderConfig.dpr;\n      } else {\n        (this || _global).transformCanvas.ty = 0;\n      }\n    } else if ((this || _global).renderConfig.preserveAspectRatio === \"none\") {\n      (this || _global).transformCanvas.sx = elementWidth / ((this || _global).transformCanvas.w / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.sy = elementHeight / ((this || _global).transformCanvas.h / (this || _global).renderConfig.dpr);\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    } else {\n      (this || _global).transformCanvas.sx = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.sy = (this || _global).renderConfig.dpr;\n      (this || _global).transformCanvas.tx = 0;\n      (this || _global).transformCanvas.ty = 0;\n    }\n\n    (this || _global).transformCanvas.props = [(this || _global).transformCanvas.sx, 0, 0, 0, 0, (this || _global).transformCanvas.sy, 0, 0, 0, 0, 1, 0, (this || _global).transformCanvas.tx, (this || _global).transformCanvas.ty, 0, 1];\n    /* var i, len = this.elements.length;\r\n      for(i=0;i<len;i+=1){\r\n          if(this.elements[i] && this.elements[i].data.ty === 0){\r\n              this.elements[i].resize(this.globalData.transformCanvas);\r\n          }\r\n      } */\n\n    this.ctxTransform((this || _global).transformCanvas.props);\n\n    (this || _global).canvasContext.beginPath();\n\n    (this || _global).canvasContext.rect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n\n    (this || _global).canvasContext.closePath();\n\n    (this || _global).canvasContext.clip();\n\n    this.renderFrame((this || _global).renderedFrame, true);\n  };\n\n  CanvasRenderer.prototype.destroy = function () {\n    if ((this || _global).renderConfig.clearCanvas && (this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).globalData.canvasContext = null;\n    (this || _global).animationItem.container = null;\n    (this || _global).destroyed = true;\n  };\n\n  CanvasRenderer.prototype.renderFrame = function (num, forceRender) {\n    if ((this || _global).renderedFrame === num && (this || _global).renderConfig.clearCanvas === true && !forceRender || (this || _global).destroyed || num === -1) {\n      return;\n    }\n\n    (this || _global).renderedFrame = num;\n    (this || _global).globalData.frameNum = num - (this || _global).animationItem._isFirstFrame;\n    (this || _global).globalData.frameId += 1;\n    (this || _global).globalData._mdf = !(this || _global).renderConfig.clearCanvas || forceRender;\n    (this || _global).globalData.projectInterface.currentFrame = num; // console.log('--------');\n    // console.log('NEW: ',num);\n\n    var i;\n    var len = (this || _global).layers.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers(num);\n    }\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame(num - (this || _global).layers[i].st);\n      }\n    }\n\n    if ((this || _global).globalData._mdf) {\n      if ((this || _global).renderConfig.clearCanvas === true) {\n        (this || _global).canvasContext.clearRect(0, 0, (this || _global).transformCanvas.w, (this || _global).transformCanvas.h);\n      } else {\n        this.save();\n      }\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        if ((this || _global).completeLayers || (this || _global).elements[i]) {\n          (this || _global).elements[i].renderFrame();\n        }\n      }\n\n      if ((this || _global).renderConfig.clearCanvas !== true) {\n        this.restore();\n      }\n    }\n  };\n\n  CanvasRenderer.prototype.buildItem = function (pos) {\n    var elements = (this || _global).elements;\n\n    if (elements[pos] || (this || _global).layers[pos].ty === 99) {\n      return;\n    }\n\n    var element = this.createItem((this || _global).layers[pos], this || _global, (this || _global).globalData);\n    elements[pos] = element;\n    element.initExpressions();\n    /* if(this.layers[pos].ty === 0){\r\n          element.resize(this.globalData.transformCanvas);\r\n      } */\n  };\n\n  CanvasRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  CanvasRenderer.prototype.hide = function () {\n    (this || _global).animationItem.container.style.display = \"none\";\n  };\n\n  CanvasRenderer.prototype.show = function () {\n    (this || _global).animationItem.container.style.display = \"block\";\n  };\n  /* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\n  HTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\n  HSolidElement, styleDiv, createTag, createNS */\n\n\n  function HybridRenderer(animationItem, config) {\n    (this || _global).animationItem = animationItem;\n    (this || _global).layers = null;\n    (this || _global).renderedFrame = -1;\n    (this || _global).renderConfig = {\n      className: config && config.className || \"\",\n      imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || \"xMidYMid slice\",\n      hideOnTransparent: !(config && config.hideOnTransparent === false),\n      filterSize: {\n        width: config && config.filterSize && config.filterSize.width || \"400%\",\n        height: config && config.filterSize && config.filterSize.height || \"400%\",\n        x: config && config.filterSize && config.filterSize.x || \"-100%\",\n        y: config && config.filterSize && config.filterSize.y || \"-100%\"\n      }\n    };\n    (this || _global).globalData = {\n      _mdf: false,\n      frameNum: -1,\n      renderConfig: (this || _global).renderConfig\n    };\n    (this || _global).pendingElements = [];\n    (this || _global).elements = [];\n    (this || _global).threeDElements = [];\n    (this || _global).destroyed = false;\n    (this || _global).camera = null;\n    (this || _global).supports3d = true;\n    (this || _global).rendererType = \"html\";\n  }\n\n  extendPrototype([BaseRenderer], HybridRenderer);\n  HybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n  HybridRenderer.prototype.checkPendingElements = function () {\n    while ((this || _global).pendingElements.length) {\n      var element = (this || _global).pendingElements.pop();\n\n      element.checkParenting();\n    }\n  };\n\n  HybridRenderer.prototype.appendElementInPos = function (element, pos) {\n    var newDOMElement = element.getBaseElement();\n\n    if (!newDOMElement) {\n      return;\n    }\n\n    var layer = (this || _global).layers[pos];\n\n    if (!layer.ddd || !(this || _global).supports3d) {\n      if ((this || _global).threeDElements) {\n        this.addTo3dContainer(newDOMElement, pos);\n      } else {\n        var i = 0;\n        var nextDOMElement;\n        var nextLayer;\n        var tmpDOMElement;\n\n        while (i < pos) {\n          if ((this || _global).elements[i] && (this || _global).elements[i] !== true && (this || _global).elements[i].getBaseElement) {\n            nextLayer = (this || _global).elements[i];\n            tmpDOMElement = (this || _global).layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n            nextDOMElement = tmpDOMElement || nextDOMElement;\n          }\n\n          i += 1;\n        }\n\n        if (nextDOMElement) {\n          if (!layer.ddd || !(this || _global).supports3d) {\n            (this || _global).layerElement.insertBefore(newDOMElement, nextDOMElement);\n          }\n        } else if (!layer.ddd || !(this || _global).supports3d) {\n          (this || _global).layerElement.appendChild(newDOMElement);\n        }\n      }\n    } else {\n      this.addTo3dContainer(newDOMElement, pos);\n    }\n  };\n\n  HybridRenderer.prototype.createShape = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGShapeElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HShapeElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createText = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGTextLottieElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HTextElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createCamera = function (data) {\n    (this || _global).camera = new HCameraElement(data, (this || _global).globalData, this || _global);\n    return (this || _global).camera;\n  };\n\n  HybridRenderer.prototype.createImage = function (data) {\n    if (!(this || _global).supports3d) {\n      return new IImageElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HImageElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createComp = function (data) {\n    if (!(this || _global).supports3d) {\n      return new SVGCompElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HCompElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createSolid = function (data) {\n    if (!(this || _global).supports3d) {\n      return new ISolidElement(data, (this || _global).globalData, this || _global);\n    }\n\n    return new HSolidElement(data, (this || _global).globalData, this || _global);\n  };\n\n  HybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\n\n  HybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if ((this || _global).threeDElements[i].startPos <= pos && (this || _global).threeDElements[i].endPos >= pos) {\n        return (this || _global).threeDElements[i].perspectiveElem;\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  HybridRenderer.prototype.createThreeDContainer = function (pos, type) {\n    var perspectiveElem = createTag(\"div\");\n    var style;\n    var containerStyle;\n    styleDiv(perspectiveElem);\n    var container = createTag(\"div\");\n    styleDiv(container);\n\n    if (type === \"3d\") {\n      style = perspectiveElem.style;\n      style.width = (this || _global).globalData.compSize.w + \"px\";\n      style.height = (this || _global).globalData.compSize.h + \"px\";\n      var center = \"50% 50%\";\n      style.webkitTransformOrigin = center;\n      style.mozTransformOrigin = center;\n      style.transformOrigin = center;\n      containerStyle = container.style;\n      var matrix = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n      containerStyle.transform = matrix;\n      containerStyle.webkitTransform = matrix;\n    }\n\n    perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n    var threeDContainerData = {\n      container: container,\n      perspectiveElem: perspectiveElem,\n      startPos: pos,\n      endPos: pos,\n      type: type\n    };\n\n    (this || _global).threeDElements.push(threeDContainerData);\n\n    return threeDContainerData;\n  };\n\n  HybridRenderer.prototype.build3dContainers = function () {\n    var i;\n    var len = (this || _global).layers.length;\n    var lastThreeDContainerData;\n    var currentContainer = \"\";\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).layers[i].ddd && (this || _global).layers[i].ty !== 3) {\n        if (currentContainer !== \"3d\") {\n          currentContainer = \"3d\";\n          lastThreeDContainerData = this.createThreeDContainer(i, \"3d\");\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      } else {\n        if (currentContainer !== \"2d\") {\n          currentContainer = \"2d\";\n          lastThreeDContainerData = this.createThreeDContainer(i, \"2d\");\n        }\n\n        lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n      }\n    }\n\n    len = (this || _global).threeDElements.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      (this || _global).resizerElem.appendChild((this || _global).threeDElements[i].perspectiveElem);\n    }\n  };\n\n  HybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\n    var i = 0;\n    var len = (this || _global).threeDElements.length;\n\n    while (i < len) {\n      if (pos <= (this || _global).threeDElements[i].endPos) {\n        var j = (this || _global).threeDElements[i].startPos;\n        var nextElement;\n\n        while (j < pos) {\n          if ((this || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n            nextElement = (this || _global).elements[j].getBaseElement();\n          }\n\n          j += 1;\n        }\n\n        if (nextElement) {\n          (this || _global).threeDElements[i].container.insertBefore(elem, nextElement);\n        } else {\n          (this || _global).threeDElements[i].container.appendChild(elem);\n        }\n\n        break;\n      }\n\n      i += 1;\n    }\n  };\n\n  HybridRenderer.prototype.configAnimation = function (animData) {\n    var resizerElem = createTag(\"div\");\n    var wrapper = (this || _global).animationItem.wrapper;\n    var style = resizerElem.style;\n    style.width = animData.w + \"px\";\n    style.height = animData.h + \"px\";\n    (this || _global).resizerElem = resizerElem;\n    styleDiv(resizerElem);\n    style.transformStyle = \"flat\";\n    style.mozTransformStyle = \"flat\";\n    style.webkitTransformStyle = \"flat\";\n\n    if ((this || _global).renderConfig.className) {\n      resizerElem.setAttribute(\"class\", (this || _global).renderConfig.className);\n    }\n\n    wrapper.appendChild(resizerElem);\n    style.overflow = \"hidden\";\n    var svg = createNS(\"svg\");\n    svg.setAttribute(\"width\", \"1\");\n    svg.setAttribute(\"height\", \"1\");\n    styleDiv(svg);\n\n    (this || _global).resizerElem.appendChild(svg);\n\n    var defs = createNS(\"defs\");\n    svg.appendChild(defs);\n    (this || _global).data = animData; // Mask animation\n\n    this.setupGlobalData(animData, svg);\n    (this || _global).globalData.defs = defs;\n    (this || _global).layers = animData.layers;\n    (this || _global).layerElement = (this || _global).resizerElem;\n    this.build3dContainers();\n    this.updateContainerSize();\n  };\n\n  HybridRenderer.prototype.destroy = function () {\n    if ((this || _global).animationItem.wrapper) {\n      (this || _global).animationItem.wrapper.innerText = \"\";\n    }\n\n    (this || _global).animationItem.container = null;\n    (this || _global).globalData.defs = null;\n    var i;\n    var len = (this || _global).layers ? (this || _global).layers.length : 0;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).elements[i].destroy();\n    }\n\n    (this || _global).elements.length = 0;\n    (this || _global).destroyed = true;\n    (this || _global).animationItem = null;\n  };\n\n  HybridRenderer.prototype.updateContainerSize = function () {\n    var elementWidth = (this || _global).animationItem.wrapper.offsetWidth;\n    var elementHeight = (this || _global).animationItem.wrapper.offsetHeight;\n    var elementRel = elementWidth / elementHeight;\n    var animationRel = (this || _global).globalData.compSize.w / (this || _global).globalData.compSize.h;\n    var sx;\n    var sy;\n    var tx;\n    var ty;\n\n    if (animationRel > elementRel) {\n      sx = elementWidth / (this || _global).globalData.compSize.w;\n      sy = elementWidth / (this || _global).globalData.compSize.w;\n      tx = 0;\n      ty = (elementHeight - (this || _global).globalData.compSize.h * (elementWidth / (this || _global).globalData.compSize.w)) / 2;\n    } else {\n      sx = elementHeight / (this || _global).globalData.compSize.h;\n      sy = elementHeight / (this || _global).globalData.compSize.h;\n      tx = (elementWidth - (this || _global).globalData.compSize.w * (elementHeight / (this || _global).globalData.compSize.h)) / 2;\n      ty = 0;\n    }\n\n    var style = (this || _global).resizerElem.style;\n    style.webkitTransform = \"matrix3d(\" + sx + \",0,0,0,0,\" + sy + \",0,0,0,0,1,0,\" + tx + \",\" + ty + \",0,1)\";\n    style.transform = style.webkitTransform;\n  };\n\n  HybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n  HybridRenderer.prototype.hide = function () {\n    (this || _global).resizerElem.style.display = \"none\";\n  };\n\n  HybridRenderer.prototype.show = function () {\n    (this || _global).resizerElem.style.display = \"block\";\n  };\n\n  HybridRenderer.prototype.initItems = function () {\n    this.buildAllItems();\n\n    if ((this || _global).camera) {\n      (this || _global).camera.setup();\n    } else {\n      var cWidth = (this || _global).globalData.compSize.w;\n      var cHeight = (this || _global).globalData.compSize.h;\n      var i;\n      var len = (this || _global).threeDElements.length;\n\n      for (i = 0; i < len; i += 1) {\n        var style = (this || _global).threeDElements[i].perspectiveElem.style;\n        style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + \"px\";\n        style.perspective = style.webkitPerspective;\n      }\n    }\n  };\n\n  HybridRenderer.prototype.searchExtraCompositions = function (assets) {\n    var i;\n    var len = assets.length;\n    var floatingContainer = createTag(\"div\");\n\n    for (i = 0; i < len; i += 1) {\n      if (assets[i].xt) {\n        var comp = this.createComp(assets[i], floatingContainer, (this || _global).globalData.comp, null);\n        comp.initExpressions();\n\n        (this || _global).globalData.projectInterface.registerComposition(comp);\n      }\n    }\n  };\n  /* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\n\n\n  function MaskElement(data, element, globalData) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).globalData = globalData;\n    (this || _global).storedData = [];\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).maskElement = null;\n    var defs = (this || _global).globalData.defs;\n    var i;\n    var len = (this || _global).masksProperties ? (this || _global).masksProperties.length : 0;\n    (this || _global).viewData = createSizedArray(len);\n    (this || _global).solidPath = \"\";\n    var path;\n    var properties = (this || _global).masksProperties;\n    var count = 0;\n    var currentMasks = [];\n    var j;\n    var jLen;\n    var layerId = createElementID();\n    var rect;\n    var expansor;\n    var feMorph;\n    var x;\n    var maskType = \"clipPath\";\n    var maskRef = \"clip-path\";\n\n    for (i = 0; i < len; i += 1) {\n      if (properties[i].mode !== \"a\" && properties[i].mode !== \"n\" || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n        maskType = \"mask\";\n        maskRef = \"mask\";\n      }\n\n      if ((properties[i].mode === \"s\" || properties[i].mode === \"i\") && count === 0) {\n        rect = createNS(\"rect\");\n        rect.setAttribute(\"fill\", \"#ffffff\");\n        rect.setAttribute(\"width\", (this || _global).element.comp.data.w || 0);\n        rect.setAttribute(\"height\", (this || _global).element.comp.data.h || 0);\n        currentMasks.push(rect);\n      } else {\n        rect = null;\n      }\n\n      path = createNS(\"path\");\n\n      if (properties[i].mode === \"n\") {\n        // TODO move this to a factory or to a constructor\n        (this || _global).viewData[i] = {\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).element, properties[i], 3),\n          elem: path,\n          lastPath: \"\"\n        };\n        defs.appendChild(path);\n      } else {\n        count += 1;\n        path.setAttribute(\"fill\", properties[i].mode === \"s\" ? \"#000000\" : \"#ffffff\");\n        path.setAttribute(\"clip-rule\", \"nonzero\");\n        var filterID;\n\n        if (properties[i].x.k !== 0) {\n          maskType = \"mask\";\n          maskRef = \"mask\";\n          x = PropertyFactory.getProp((this || _global).element, properties[i].x, 0, null, (this || _global).element);\n          filterID = createElementID();\n          expansor = createNS(\"filter\");\n          expansor.setAttribute(\"id\", filterID);\n          feMorph = createNS(\"feMorphology\");\n          feMorph.setAttribute(\"operator\", \"erode\");\n          feMorph.setAttribute(\"in\", \"SourceGraphic\");\n          feMorph.setAttribute(\"radius\", \"0\");\n          expansor.appendChild(feMorph);\n          defs.appendChild(expansor);\n          path.setAttribute(\"stroke\", properties[i].mode === \"s\" ? \"#000000\" : \"#ffffff\");\n        } else {\n          feMorph = null;\n          x = null;\n        } // TODO move this to a factory or to a constructor\n\n\n        (this || _global).storedData[i] = {\n          elem: path,\n          x: x,\n          expan: feMorph,\n          lastPath: \"\",\n          lastOperator: \"\",\n          filterId: filterID,\n          lastRadius: 0\n        };\n\n        if (properties[i].mode === \"i\") {\n          jLen = currentMasks.length;\n          var g = createNS(\"g\");\n\n          for (j = 0; j < jLen; j += 1) {\n            g.appendChild(currentMasks[j]);\n          }\n\n          var mask = createNS(\"mask\");\n          mask.setAttribute(\"mask-type\", \"alpha\");\n          mask.setAttribute(\"id\", layerId + \"_\" + count);\n          mask.appendChild(path);\n          defs.appendChild(mask);\n          g.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + layerId + \"_\" + count + \")\");\n          currentMasks.length = 0;\n          currentMasks.push(g);\n        } else {\n          currentMasks.push(path);\n        }\n\n        if (properties[i].inv && !(this || _global).solidPath) {\n          (this || _global).solidPath = this.createLayerSolidPath();\n        } // TODO move this to a factory or to a constructor\n\n\n        (this || _global).viewData[i] = {\n          elem: path,\n          lastPath: \"\",\n          op: PropertyFactory.getProp((this || _global).element, properties[i].o, 0, 0.01, (this || _global).element),\n          prop: ShapePropertyFactory.getShapeProp((this || _global).element, properties[i], 3),\n          invRect: rect\n        };\n\n        if (!(this || _global).viewData[i].prop.k) {\n          this.drawPath(properties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n        }\n      }\n    }\n\n    (this || _global).maskElement = createNS(maskType);\n    len = currentMasks.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).maskElement.appendChild(currentMasks[i]);\n    }\n\n    if (count > 0) {\n      (this || _global).maskElement.setAttribute(\"id\", layerId);\n\n      (this || _global).element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\n\n      defs.appendChild((this || _global).maskElement);\n    }\n\n    if ((this || _global).viewData.length) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  MaskElement.prototype.getMaskProperty = function (pos) {\n    return (this || _global).viewData[pos].prop;\n  };\n\n  MaskElement.prototype.renderFrame = function (isFirstFrame) {\n    var finalMat = (this || _global).element.finalTransform.mat;\n    var i;\n    var len = (this || _global).masksProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).viewData[i].prop._mdf || isFirstFrame) {\n        this.drawPath((this || _global).masksProperties[i], (this || _global).viewData[i].prop.v, (this || _global).viewData[i]);\n      }\n\n      if ((this || _global).viewData[i].op._mdf || isFirstFrame) {\n        (this || _global).viewData[i].elem.setAttribute(\"fill-opacity\", (this || _global).viewData[i].op.v);\n      }\n\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).viewData[i].invRect && ((this || _global).element.finalTransform.mProp._mdf || isFirstFrame)) {\n          (this || _global).viewData[i].invRect.setAttribute(\"transform\", finalMat.getInverseMatrix().to2dCSS());\n        }\n\n        if ((this || _global).storedData[i].x && ((this || _global).storedData[i].x._mdf || isFirstFrame)) {\n          var feMorph = (this || _global).storedData[i].expan;\n\n          if ((this || _global).storedData[i].x.v < 0) {\n            if ((this || _global).storedData[i].lastOperator !== \"erode\") {\n              (this || _global).storedData[i].lastOperator = \"erode\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + (this || _global).storedData[i].filterId + \")\");\n            }\n\n            feMorph.setAttribute(\"radius\", -(this || _global).storedData[i].x.v);\n          } else {\n            if ((this || _global).storedData[i].lastOperator !== \"dilate\") {\n              (this || _global).storedData[i].lastOperator = \"dilate\";\n\n              (this || _global).storedData[i].elem.setAttribute(\"filter\", null);\n            }\n\n            (this || _global).storedData[i].elem.setAttribute(\"stroke-width\", (this || _global).storedData[i].x.v * 2);\n          }\n        }\n      }\n    }\n  };\n\n  MaskElement.prototype.getMaskelement = function () {\n    return (this || _global).maskElement;\n  };\n\n  MaskElement.prototype.createLayerSolidPath = function () {\n    var path = \"M0,0 \";\n    path += \" h\" + (this || _global).globalData.compSize.w;\n    path += \" v\" + (this || _global).globalData.compSize.h;\n    path += \" h-\" + (this || _global).globalData.compSize.w;\n    path += \" v-\" + (this || _global).globalData.compSize.h + \" \";\n    return path;\n  };\n\n  MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n    var pathString = \" M\" + pathNodes.v[0][0] + \",\" + pathNodes.v[0][1];\n    var i;\n    var len;\n    len = pathNodes._length;\n\n    for (i = 1; i < len; i += 1) {\n      // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n      pathString += \" C\" + pathNodes.o[i - 1][0] + \",\" + pathNodes.o[i - 1][1] + \" \" + pathNodes.i[i][0] + \",\" + pathNodes.i[i][1] + \" \" + pathNodes.v[i][0] + \",\" + pathNodes.v[i][1];\n    } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n    if (pathNodes.c && len > 1) {\n      pathString += \" C\" + pathNodes.o[i - 1][0] + \",\" + pathNodes.o[i - 1][1] + \" \" + pathNodes.i[0][0] + \",\" + pathNodes.i[0][1] + \" \" + pathNodes.v[0][0] + \",\" + pathNodes.v[0][1];\n    } // pathNodes.__renderedString = pathString;\n\n\n    if (viewData.lastPath !== pathString) {\n      var pathShapeValue = \"\";\n\n      if (viewData.elem) {\n        if (pathNodes.c) {\n          pathShapeValue = pathData.inv ? (this || _global).solidPath + pathString : pathString;\n        }\n\n        viewData.elem.setAttribute(\"d\", pathShapeValue);\n      }\n\n      viewData.lastPath = pathString;\n    }\n  };\n\n  MaskElement.prototype.destroy = function () {\n    (this || _global).element = null;\n    (this || _global).globalData = null;\n    (this || _global).maskElement = null;\n    (this || _global).data = null;\n    (this || _global).masksProperties = null;\n  };\n  /**\r\n   * @file\r\n   * Handles AE's layer parenting property.\r\n   *\r\n   */\n\n\n  function HierarchyElement() {}\n\n  HierarchyElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes hierarchy properties\r\n       *\r\n       */\n    initHierarchy: function () {\n      // element's parent list\n      (this || _global).hierarchy = []; // if element is parent of another layer _isParent will be true\n\n      (this || _global)._isParent = false;\n      this.checkParenting();\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer's hierarchy.\r\n       * @param {array} hierarch\r\n       * layer's parent list\r\n       *\r\n       */\n    setHierarchy: function (hierarchy) {\n      (this || _global).hierarchy = hierarchy;\n    },\n\n    /**\r\n       * @function\r\n       * Sets layer as parent.\r\n       *\r\n       */\n    setAsParent: function () {\n      (this || _global)._isParent = true;\n    },\n\n    /**\r\n       * @function\r\n       * Searches layer's parenting chain\r\n       *\r\n       */\n    checkParenting: function () {\n      if ((this || _global).data.parent !== undefined) {\n        (this || _global).comp.buildElementParenting(this || _global, (this || _global).data.parent, []);\n      }\n    }\n  };\n  /**\r\n   * @file\r\n   * Handles element's layer frame update.\r\n   * Checks layer in point and out point\r\n   *\r\n   */\n\n  function FrameElement() {}\n\n  FrameElement.prototype = {\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       */\n    initFrame: function () {\n      // set to true when inpoint is rendered\n      (this || _global)._isFirstFrame = false; // list of animated properties\n\n      (this || _global).dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n      (this || _global)._mdf = false;\n    },\n\n    /**\r\n       * @function\r\n       * Calculates all dynamic values\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       * @param {boolean} isVisible\r\n       * if layers is currently in range\r\n       *\r\n       */\n    prepareProperties: function (num, isVisible) {\n      var i;\n      var len = (this || _global).dynamicProperties.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (isVisible || (this || _global)._isParent && (this || _global).dynamicProperties[i].propType === \"transform\") {\n          (this || _global).dynamicProperties[i].getValue();\n\n          if ((this || _global).dynamicProperties[i]._mdf) {\n            (this || _global).globalData._mdf = true;\n            (this || _global)._mdf = true;\n          }\n        }\n      }\n    },\n    addDynamicProperty: function (prop) {\n      if ((this || _global).dynamicProperties.indexOf(prop) === -1) {\n        (this || _global).dynamicProperties.push(prop);\n      }\n    }\n  };\n  /* global TransformPropertyFactory, Matrix */\n\n  function TransformElement() {}\n\n  TransformElement.prototype = {\n    initTransform: function () {\n      (this || _global).finalTransform = {\n        mProp: (this || _global).data.ks ? TransformPropertyFactory.getTransformProperty(this || _global, (this || _global).data.ks, this || _global) : {\n          o: 0\n        },\n        _matMdf: false,\n        _opMdf: false,\n        mat: new Matrix()\n      };\n\n      if ((this || _global).data.ao) {\n        (this || _global).finalTransform.mProp.autoOriented = true;\n      } // TODO: check TYPE 11: Guided elements\n\n\n      if ((this || _global).data.ty !== 11) {// this.createElements();\n      }\n    },\n    renderTransform: function () {\n      (this || _global).finalTransform._opMdf = (this || _global).finalTransform.mProp.o._mdf || (this || _global)._isFirstFrame;\n      (this || _global).finalTransform._matMdf = (this || _global).finalTransform.mProp._mdf || (this || _global)._isFirstFrame;\n\n      if ((this || _global).hierarchy) {\n        var mat;\n        var finalMat = (this || _global).finalTransform.mat;\n        var i = 0;\n        var len = (this || _global).hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n        if (!(this || _global).finalTransform._matMdf) {\n          while (i < len) {\n            if ((this || _global).hierarchy[i].finalTransform.mProp._mdf) {\n              (this || _global).finalTransform._matMdf = true;\n              break;\n            }\n\n            i += 1;\n          }\n        }\n\n        if ((this || _global).finalTransform._matMdf) {\n          mat = (this || _global).finalTransform.mProp.v.props;\n          finalMat.cloneFromProps(mat);\n\n          for (i = 0; i < len; i += 1) {\n            mat = (this || _global).hierarchy[i].finalTransform.mProp.v.props;\n            finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n          }\n        }\n      }\n    },\n    globalToLocal: function (pt) {\n      var transforms = [];\n      transforms.push((this || _global).finalTransform);\n      var flag = true;\n      var comp = (this || _global).comp;\n\n      while (flag) {\n        if (comp.finalTransform) {\n          if (comp.data.hasMask) {\n            transforms.splice(0, 0, comp.finalTransform);\n          }\n\n          comp = comp.comp;\n        } else {\n          flag = false;\n        }\n      }\n\n      var i;\n      var len = transforms.length;\n      var ptNew;\n\n      for (i = 0; i < len; i += 1) {\n        ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n        pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n      }\n\n      return pt;\n    },\n    mHelper: new Matrix()\n  };\n\n  function RenderableElement() {}\n\n  RenderableElement.prototype = {\n    initRenderable: function () {\n      // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n      (this || _global).isInRange = false; // layer's display state\n\n      (this || _global).hidden = false; // If layer's transparency equals 0, it can be hidden\n\n      (this || _global).isTransparent = false; // list of animated components\n\n      (this || _global).renderableComponents = [];\n    },\n    addRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) === -1) {\n        (this || _global).renderableComponents.push(component);\n      }\n    },\n    removeRenderableComponent: function (component) {\n      if ((this || _global).renderableComponents.indexOf(component) !== -1) {\n        (this || _global).renderableComponents.splice((this || _global).renderableComponents.indexOf(component), 1);\n      }\n    },\n    prepareRenderableFrame: function (num) {\n      this.checkLayerLimits(num);\n    },\n    checkTransparency: function () {\n      if ((this || _global).finalTransform.mProp.o.v <= 0) {\n        if (!(this || _global).isTransparent && (this || _global).globalData.renderConfig.hideOnTransparent) {\n          (this || _global).isTransparent = true;\n          this.hide();\n        }\n      } else if ((this || _global).isTransparent) {\n        (this || _global).isTransparent = false;\n        this.show();\n      }\n    },\n\n    /**\r\n       * @function\r\n       * Initializes frame related properties.\r\n       *\r\n       * @param {number} num\r\n       * current frame number in Layer's time\r\n       *\r\n       */\n    checkLayerLimits: function (num) {\n      if ((this || _global).data.ip - (this || _global).data.st <= num && (this || _global).data.op - (this || _global).data.st > num) {\n        if ((this || _global).isInRange !== true) {\n          (this || _global).globalData._mdf = true;\n          (this || _global)._mdf = true;\n          (this || _global).isInRange = true;\n          this.show();\n        }\n      } else if ((this || _global).isInRange !== false) {\n        (this || _global).globalData._mdf = true;\n        (this || _global).isInRange = false;\n        this.hide();\n      }\n    },\n    renderRenderable: function () {\n      var i;\n      var len = (this || _global).renderableComponents.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).renderableComponents[i].renderFrame((this || _global)._isFirstFrame);\n      }\n      /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n          this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n    },\n    sourceRectAtTime: function () {\n      return {\n        top: 0,\n        left: 0,\n        width: 100,\n        height: 100\n      };\n    },\n    getLayerSize: function () {\n      if ((this || _global).data.ty === 5) {\n        return {\n          w: (this || _global).data.textData.width,\n          h: (this || _global).data.textData.height\n        };\n      }\n\n      return {\n        w: (this || _global).data.width,\n        h: (this || _global).data.height\n      };\n    }\n  };\n  /* global extendPrototype, RenderableElement, createProxyFunction */\n\n  function RenderableDOMElement() {}\n\n  (function () {\n    var _prototype = {\n      initElement: function (data, globalData, comp) {\n        this.initFrame();\n        this.initBaseData(data, globalData, comp);\n        this.initTransform(data, globalData, comp);\n        this.initHierarchy();\n        this.initRenderable();\n        this.initRendererElement();\n        this.createContainerElements();\n        this.createRenderableComponents();\n        this.createContent();\n        this.hide();\n      },\n      hide: function () {\n        if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n          var elem = (this || _global).baseElement || (this || _global).layerElement;\n          elem.style.display = \"none\";\n          (this || _global).hidden = true;\n        }\n      },\n      show: function () {\n        if ((this || _global).isInRange && !(this || _global).isTransparent) {\n          if (!(this || _global).data.hd) {\n            var elem = (this || _global).baseElement || (this || _global).layerElement;\n            elem.style.display = \"block\";\n          }\n\n          (this || _global).hidden = false;\n          (this || _global)._isFirstFrame = true;\n        }\n      },\n      renderFrame: function () {\n        // If it is exported as hidden (data.hd === true) no need to render\n        // If it is not visible no need to render\n        if ((this || _global).data.hd || (this || _global).hidden) {\n          return;\n        }\n\n        this.renderTransform();\n        this.renderRenderable();\n        this.renderElement();\n        this.renderInnerContent();\n\n        if ((this || _global)._isFirstFrame) {\n          (this || _global)._isFirstFrame = false;\n        }\n      },\n      renderInnerContent: function () {},\n      prepareFrame: function (num) {\n        (this || _global)._mdf = false;\n        this.prepareRenderableFrame(num);\n        this.prepareProperties(num, (this || _global).isInRange);\n        this.checkTransparency();\n      },\n      destroy: function () {\n        (this || _global).innerElem = null;\n        this.destroyBaseElement();\n      }\n    };\n    extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n  })();\n  /* exported ProcessedElement */\n\n\n  function ProcessedElement(element, position) {\n    (this || _global).elem = element;\n    (this || _global).pos = position;\n  }\n  /* global createNS */\n\n\n  function SVGStyleData(data, level) {\n    (this || _global).data = data;\n    (this || _global).type = data.ty;\n    (this || _global).d = \"\";\n    (this || _global).lvl = level;\n    (this || _global)._mdf = false;\n    (this || _global).closed = data.hd === true;\n    (this || _global).pElem = createNS(\"path\");\n    (this || _global).msElem = null;\n  }\n\n  SVGStyleData.prototype.reset = function () {\n    (this || _global).d = \"\";\n    (this || _global)._mdf = false;\n  };\n\n  function SVGShapeData(transformers, level, shape) {\n    (this || _global).caches = [];\n    (this || _global).styles = [];\n    (this || _global).transformers = transformers;\n    (this || _global).lStr = \"\";\n    (this || _global).sh = shape;\n    (this || _global).lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n    // For now, since shapes add up with other shapes. They have to be calculated every time.\n    // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n    (this || _global)._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n    var i = 0;\n    var len = transformers.length;\n\n    while (i < len) {\n      if (transformers[i].mProps.dynamicProperties.length) {\n        (this || _global)._isAnimated = true;\n        break;\n      }\n\n      i += 1;\n    }\n  }\n\n  SVGShapeData.prototype.setAsAnimated = function () {\n    (this || _global)._isAnimated = true;\n  };\n  /* exported SVGTransformData */\n\n\n  function SVGTransformData(mProps, op, container) {\n    (this || _global).transform = {\n      mProps: mProps,\n      op: op,\n      container: container\n    };\n    (this || _global).elements = [];\n    (this || _global)._isAnimated = (this || _global).transform.mProps.dynamicProperties.length || (this || _global).transform.op.effectsSequence.length;\n  }\n  /* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n\n  function SVGStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n  /* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\n\n  function SVGFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).c = PropertyFactory.getProp(elem, data.c, 1, 255, this || _global);\n    (this || _global).style = styleOb;\n  }\n\n  extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n  /* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\n  extendPrototype, DynamicPropertyContainer */\n\n  function SVGGradientFillStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    this.initGradientData(elem, data, styleOb);\n  }\n\n  SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n    (this || _global).o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this || _global);\n    (this || _global).s = PropertyFactory.getProp(elem, data.s, 1, null, this || _global);\n    (this || _global).e = PropertyFactory.getProp(elem, data.e, 1, null, this || _global);\n    (this || _global).h = PropertyFactory.getProp(elem, data.h || {\n      k: 0\n    }, 0, 0.01, this || _global);\n    (this || _global).a = PropertyFactory.getProp(elem, data.a || {\n      k: 0\n    }, 0, degToRads, this || _global);\n    (this || _global).g = new GradientProperty(elem, data.g, this || _global);\n    (this || _global).style = styleOb;\n    (this || _global).stops = [];\n    this.setGradientData(styleOb.pElem, data);\n    this.setGradientOpacity(data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n    var gradientId = createElementID();\n    var gfill = createNS(data.t === 1 ? \"linearGradient\" : \"radialGradient\");\n    gfill.setAttribute(\"id\", gradientId);\n    gfill.setAttribute(\"spreadMethod\", \"pad\");\n    gfill.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n    var stops = [];\n    var stop;\n    var j;\n    var jLen;\n    jLen = data.g.p * 4;\n\n    for (j = 0; j < jLen; j += 4) {\n      stop = createNS(\"stop\");\n      gfill.appendChild(stop);\n      stops.push(stop);\n    }\n\n    pathElement.setAttribute(data.ty === \"gf\" ? \"fill\" : \"stroke\", \"url(\" + locationHref + \"#\" + gradientId + \")\");\n    (this || _global).gf = gfill;\n    (this || _global).cst = stops;\n  };\n\n  SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n    if ((this || _global).g._hasOpacity && !(this || _global).g._collapsable) {\n      var stop;\n      var j;\n      var jLen;\n      var mask = createNS(\"mask\");\n      var maskElement = createNS(\"path\");\n      mask.appendChild(maskElement);\n      var opacityId = createElementID();\n      var maskId = createElementID();\n      mask.setAttribute(\"id\", maskId);\n      var opFill = createNS(data.t === 1 ? \"linearGradient\" : \"radialGradient\");\n      opFill.setAttribute(\"id\", opacityId);\n      opFill.setAttribute(\"spreadMethod\", \"pad\");\n      opFill.setAttribute(\"gradientUnits\", \"userSpaceOnUse\");\n      jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n      var stops = (this || _global).stops;\n\n      for (j = data.g.p * 4; j < jLen; j += 2) {\n        stop = createNS(\"stop\");\n        stop.setAttribute(\"stop-color\", \"rgb(255,255,255)\");\n        opFill.appendChild(stop);\n        stops.push(stop);\n      }\n\n      maskElement.setAttribute(data.ty === \"gf\" ? \"fill\" : \"stroke\", \"url(\" + locationHref + \"#\" + opacityId + \")\");\n      (this || _global).of = opFill;\n      (this || _global).ms = mask;\n      (this || _global).ost = stops;\n      (this || _global).maskId = maskId;\n      styleOb.msElem = maskElement;\n    }\n  };\n\n  extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n  /* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\n\n  function SVGGradientStrokeStyleData(elem, data, styleOb) {\n    this.initDynamicPropertyContainer(elem);\n    (this || _global).getValue = (this || _global).iterateDynamicProperties;\n    (this || _global).w = PropertyFactory.getProp(elem, data.w, 0, null, this || _global);\n    (this || _global).d = new DashProperty(elem, data.d || {}, \"svg\", this || _global);\n    this.initGradientData(elem, data, styleOb);\n    (this || _global)._isAnimated = !!(this || _global)._isAnimated;\n  }\n\n  extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n  /* global createNS */\n\n  /* exported ShapeGroupData */\n\n  function ShapeGroupData() {\n    (this || _global).it = [];\n    (this || _global).prevViewData = [];\n    (this || _global).gr = createNS(\"g\");\n  }\n  /* global Matrix, buildShapeString, bmFloor */\n\n  /* exported SVGElementsRenderer */\n\n\n  var SVGElementsRenderer = function () {\n    var _identityMatrix = new Matrix();\n\n    var _matrixHelper = new Matrix();\n\n    var ob = {\n      createRenderFunction: createRenderFunction\n    };\n\n    function createRenderFunction(data) {\n      switch (data.ty) {\n        case \"fl\":\n          return renderFill;\n\n        case \"gf\":\n          return renderGradient;\n\n        case \"gs\":\n          return renderGradientStroke;\n\n        case \"st\":\n          return renderStroke;\n\n        case \"sh\":\n        case \"el\":\n        case \"rc\":\n        case \"sr\":\n          return renderPath;\n\n        case \"tr\":\n          return renderContentTransform;\n\n        default:\n          return null;\n      }\n    }\n\n    function renderContentTransform(styleData, itemData, isFirstFrame) {\n      if (isFirstFrame || itemData.transform.op._mdf) {\n        itemData.transform.container.setAttribute(\"opacity\", itemData.transform.op.v);\n      }\n\n      if (isFirstFrame || itemData.transform.mProps._mdf) {\n        itemData.transform.container.setAttribute(\"transform\", itemData.transform.mProps.v.to2dCSS());\n      }\n    }\n\n    function renderPath(styleData, itemData, isFirstFrame) {\n      var j;\n      var jLen;\n      var pathStringTransformed;\n      var redraw;\n      var pathNodes;\n      var l;\n      var lLen = itemData.styles.length;\n      var lvl = itemData.lvl;\n      var paths;\n      var mat;\n      var props;\n      var iterations;\n      var k;\n\n      for (l = 0; l < lLen; l += 1) {\n        redraw = itemData.sh._mdf || isFirstFrame;\n\n        if (itemData.styles[l].lvl < lvl) {\n          mat = _matrixHelper.reset();\n          iterations = lvl - itemData.styles[l].lvl;\n          k = itemData.transformers.length - 1;\n\n          while (!redraw && iterations > 0) {\n            redraw = itemData.transformers[k].mProps._mdf || redraw;\n            iterations -= 1;\n            k -= 1;\n          }\n\n          if (redraw) {\n            iterations = lvl - itemData.styles[l].lvl;\n            k = itemData.transformers.length - 1;\n\n            while (iterations > 0) {\n              props = itemData.transformers[k].mProps.v.props;\n              mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n              iterations -= 1;\n              k -= 1;\n            }\n          }\n        } else {\n          mat = _identityMatrix;\n        }\n\n        paths = itemData.sh.paths;\n        jLen = paths._length;\n\n        if (redraw) {\n          pathStringTransformed = \"\";\n\n          for (j = 0; j < jLen; j += 1) {\n            pathNodes = paths.shapes[j];\n\n            if (pathNodes && pathNodes._length) {\n              pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n            }\n          }\n\n          itemData.caches[l] = pathStringTransformed;\n        } else {\n          pathStringTransformed = itemData.caches[l];\n        }\n\n        itemData.styles[l].d += styleData.hd === true ? \"\" : pathStringTransformed;\n        itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n      }\n    }\n\n    function renderFill(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n\n      if (itemData.c._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"fill\", \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\");\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"fill-opacity\", itemData.o.v);\n      }\n    }\n\n    function renderGradientStroke(styleData, itemData, isFirstFrame) {\n      renderGradient(styleData, itemData, isFirstFrame);\n      renderStroke(styleData, itemData, isFirstFrame);\n    }\n\n    function renderGradient(styleData, itemData, isFirstFrame) {\n      var gfill = itemData.gf;\n      var hasOpacity = itemData.g._hasOpacity;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (itemData.o._mdf || isFirstFrame) {\n        var attr = styleData.ty === \"gf\" ? \"fill-opacity\" : \"stroke-opacity\";\n        itemData.style.pElem.setAttribute(attr, itemData.o.v);\n      }\n\n      if (itemData.s._mdf || isFirstFrame) {\n        var attr1 = styleData.t === 1 ? \"x1\" : \"cx\";\n        var attr2 = attr1 === \"x1\" ? \"y1\" : \"cy\";\n        gfill.setAttribute(attr1, pt1[0]);\n        gfill.setAttribute(attr2, pt1[1]);\n\n        if (hasOpacity && !itemData.g._collapsable) {\n          itemData.of.setAttribute(attr1, pt1[0]);\n          itemData.of.setAttribute(attr2, pt1[1]);\n        }\n      }\n\n      var stops;\n      var i;\n      var len;\n      var stop;\n\n      if (itemData.g._cmdf || isFirstFrame) {\n        stops = itemData.cst;\n        var cValues = itemData.g.c;\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n          stop.setAttribute(\"offset\", cValues[i * 4] + \"%\");\n          stop.setAttribute(\"stop-color\", \"rgb(\" + cValues[i * 4 + 1] + \",\" + cValues[i * 4 + 2] + \",\" + cValues[i * 4 + 3] + \")\");\n        }\n      }\n\n      if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n        var oValues = itemData.g.o;\n\n        if (itemData.g._collapsable) {\n          stops = itemData.cst;\n        } else {\n          stops = itemData.ost;\n        }\n\n        len = stops.length;\n\n        for (i = 0; i < len; i += 1) {\n          stop = stops[i];\n\n          if (!itemData.g._collapsable) {\n            stop.setAttribute(\"offset\", oValues[i * 2] + \"%\");\n          }\n\n          stop.setAttribute(\"stop-opacity\", oValues[i * 2 + 1]);\n        }\n      }\n\n      if (styleData.t === 1) {\n        if (itemData.e._mdf || isFirstFrame) {\n          gfill.setAttribute(\"x2\", pt2[0]);\n          gfill.setAttribute(\"y2\", pt2[1]);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"x2\", pt2[0]);\n            itemData.of.setAttribute(\"y2\", pt2[1]);\n          }\n        }\n      } else {\n        var rad;\n\n        if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n          rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          gfill.setAttribute(\"r\", rad);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"r\", rad);\n          }\n        }\n\n        if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n          if (!rad) {\n            rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n          }\n\n          var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n          var percent = itemData.h.v;\n\n          if (percent >= 1) {\n            percent = 0.99;\n          } else if (percent <= -1) {\n            percent = -0.99;\n          }\n\n          var dist = rad * percent;\n          var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n          var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n          gfill.setAttribute(\"fx\", x);\n          gfill.setAttribute(\"fy\", y);\n\n          if (hasOpacity && !itemData.g._collapsable) {\n            itemData.of.setAttribute(\"fx\", x);\n            itemData.of.setAttribute(\"fy\", y);\n          }\n        } // gfill.setAttribute('fy','200');\n\n      }\n    }\n\n    function renderStroke(styleData, itemData, isFirstFrame) {\n      var styleElem = itemData.style;\n      var d = itemData.d;\n\n      if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n        styleElem.pElem.setAttribute(\"stroke-dasharray\", d.dashStr);\n        styleElem.pElem.setAttribute(\"stroke-dashoffset\", d.dashoffset[0]);\n      }\n\n      if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n        styleElem.pElem.setAttribute(\"stroke\", \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\");\n      }\n\n      if (itemData.o._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"stroke-opacity\", itemData.o.v);\n      }\n\n      if (itemData.w._mdf || isFirstFrame) {\n        styleElem.pElem.setAttribute(\"stroke-width\", itemData.w.v);\n\n        if (styleElem.msElem) {\n          styleElem.msElem.setAttribute(\"stroke-width\", itemData.w.v);\n        }\n      }\n    }\n\n    return ob;\n  }();\n  /* global Matrix */\n\n\n  function ShapeTransformManager() {\n    (this || _global).sequences = {};\n    (this || _global).sequenceList = [];\n    (this || _global).transform_key_count = 0;\n  }\n\n  ShapeTransformManager.prototype = {\n    addTransformSequence: function (transforms) {\n      var i;\n      var len = transforms.length;\n      var key = \"_\";\n\n      for (i = 0; i < len; i += 1) {\n        key += transforms[i].transform.key + \"_\";\n      }\n\n      var sequence = (this || _global).sequences[key];\n\n      if (!sequence) {\n        sequence = {\n          transforms: [].concat(transforms),\n          finalTransform: new Matrix(),\n          _mdf: false\n        };\n        (this || _global).sequences[key] = sequence;\n\n        (this || _global).sequenceList.push(sequence);\n      }\n\n      return sequence;\n    },\n    processSequence: function (sequence, isFirstFrame) {\n      var i = 0;\n      var len = sequence.transforms.length;\n      var _mdf = isFirstFrame;\n\n      while (i < len && !isFirstFrame) {\n        if (sequence.transforms[i].transform.mProps._mdf) {\n          _mdf = true;\n          break;\n        }\n\n        i += 1;\n      }\n\n      if (_mdf) {\n        var props;\n        sequence.finalTransform.reset();\n\n        for (i = len - 1; i >= 0; i -= 1) {\n          props = sequence.transforms[i].transform.mProps.v.props;\n          sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n        }\n      }\n\n      sequence._mdf = _mdf;\n    },\n    processSequences: function (isFirstFrame) {\n      var i;\n      var len = (this || _global).sequenceList.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.processSequence((this || _global).sequenceList[i], isFirstFrame);\n      }\n    },\n    getNewKey: function () {\n      (this || _global).transform_key_count += 1;\n      return \"_\" + (this || _global).transform_key_count;\n    }\n  };\n  /* global ShapePropertyFactory, SVGShapeData */\n\n  function CVShapeData(element, data, styles, transformsManager) {\n    (this || _global).styledShapes = [];\n    (this || _global).tr = [0, 0, 0, 0, 0, 0];\n    var ty = 4;\n\n    if (data.ty === \"rc\") {\n      ty = 5;\n    } else if (data.ty === \"el\") {\n      ty = 6;\n    } else if (data.ty === \"sr\") {\n      ty = 7;\n    }\n\n    (this || _global).sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n    var i;\n    var len = styles.length;\n    var styledShape;\n\n    for (i = 0; i < len; i += 1) {\n      if (!styles[i].closed) {\n        styledShape = {\n          transforms: transformsManager.addTransformSequence(styles[i].transforms),\n          trNodes: []\n        };\n\n        (this || _global).styledShapes.push(styledShape);\n\n        styles[i].elements.push(styledShape);\n      }\n    }\n  }\n\n  CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n  /* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\n  TextExpressionInterface, getBlendMode,createElementID, EffectsManager */\n\n  function BaseElement() {}\n\n  BaseElement.prototype = {\n    checkMasks: function () {\n      if (!(this || _global).data.hasMask) {\n        return false;\n      }\n\n      var i = 0;\n      var len = (this || _global).data.masksProperties.length;\n\n      while (i < len) {\n        if ((this || _global).data.masksProperties[i].mode !== \"n\" && (this || _global).data.masksProperties[i].cl !== false) {\n          return true;\n        }\n\n        i += 1;\n      }\n\n      return false;\n    },\n    initExpressions: function () {\n      (this || _global).layerInterface = LayerExpressionInterface(this || _global);\n\n      if ((this || _global).data.hasMask && (this || _global).maskManager) {\n        (this || _global).layerInterface.registerMaskInterface((this || _global).maskManager);\n      }\n\n      var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this || _global, (this || _global).layerInterface);\n\n      (this || _global).layerInterface.registerEffectsInterface(effectsInterface);\n\n      if ((this || _global).data.ty === 0 || (this || _global).data.xt) {\n        (this || _global).compInterface = CompExpressionInterface(this || _global);\n      } else if ((this || _global).data.ty === 4) {\n        (this || _global).layerInterface.shapeInterface = ShapeExpressionInterface((this || _global).shapesData, (this || _global).itemsData, (this || _global).layerInterface);\n        (this || _global).layerInterface.content = (this || _global).layerInterface.shapeInterface;\n      } else if ((this || _global).data.ty === 5) {\n        (this || _global).layerInterface.textInterface = TextExpressionInterface(this || _global);\n        (this || _global).layerInterface.text = (this || _global).layerInterface.textInterface;\n      }\n    },\n    setBlendMode: function () {\n      var blendModeValue = getBlendMode((this || _global).data.bm);\n      var elem = (this || _global).baseElement || (this || _global).layerElement;\n      elem.style[\"mix-blend-mode\"] = blendModeValue;\n    },\n    initBaseData: function (data, globalData, comp) {\n      (this || _global).globalData = globalData;\n      (this || _global).comp = comp;\n      (this || _global).data = data;\n      (this || _global).layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n      if (!(this || _global).data.sr) {\n        (this || _global).data.sr = 1;\n      } // effects manager\n\n\n      (this || _global).effectsManager = new EffectsManager((this || _global).data, this || _global, (this || _global).dynamicProperties);\n    },\n    getType: function () {\n      return (this || _global).type;\n    },\n    sourceRectAtTime: function () {}\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\n\n  function NullElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initFrame();\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n  }\n\n  NullElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  NullElement.prototype.renderFrame = function () {};\n\n  NullElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  NullElement.prototype.destroy = function () {};\n\n  NullElement.prototype.sourceRectAtTime = function () {};\n\n  NullElement.prototype.hide = function () {};\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n  /* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\n\n  function SVGBaseElement() {}\n\n  SVGBaseElement.prototype = {\n    initRendererElement: function () {\n      (this || _global).layerElement = createNS(\"g\");\n    },\n    createContainerElements: function () {\n      (this || _global).matteElement = createNS(\"g\");\n      (this || _global).transformedElement = (this || _global).layerElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n      (this || _global)._sizeChanged = false;\n      var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n      var filId;\n      var fil;\n      var gg;\n\n      if ((this || _global).data.td) {\n        if ((this || _global).data.td == 3 || (this || _global).data.td == 1) {\n          // eslint-disable-line eqeqeq\n          var masker = createNS(\"mask\");\n          masker.setAttribute(\"id\", (this || _global).layerId);\n          masker.setAttribute(\"mask-type\", (this || _global).data.td == 3 ? \"luminance\" : \"alpha\"); // eslint-disable-line eqeqeq\n\n          masker.appendChild((this || _global).layerElement);\n          layerElementParent = masker;\n\n          (this || _global).globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n\n          if (!featureSupport.maskType && (this || _global).data.td == 1) {\n            // eslint-disable-line eqeqeq\n            masker.setAttribute(\"mask-type\", \"luminance\");\n            filId = createElementID();\n            fil = filtersFactory.createFilter(filId);\n\n            (this || _global).globalData.defs.appendChild(fil);\n\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS(\"g\");\n            gg.appendChild((this || _global).layerElement);\n            layerElementParent = gg;\n            masker.appendChild(gg);\n            gg.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n          }\n        } else if ((this || _global).data.td == 2) {\n          // eslint-disable-line eqeqeq\n          var maskGroup = createNS(\"mask\");\n          maskGroup.setAttribute(\"id\", (this || _global).layerId);\n          maskGroup.setAttribute(\"mask-type\", \"alpha\");\n          var maskGrouper = createNS(\"g\");\n          maskGroup.appendChild(maskGrouper);\n          filId = createElementID();\n          fil = filtersFactory.createFilter(filId); /// /\n          // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n          /* var feColorMatrix = createNS('feColorMatrix');\r\n                  feColorMatrix.setAttribute('type', 'matrix');\r\n                  feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n                  feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n                  fil.appendChild(feColorMatrix); */\n          /// /\n\n          var feCTr = createNS(\"feComponentTransfer\");\n          feCTr.setAttribute(\"in\", \"SourceGraphic\");\n          fil.appendChild(feCTr);\n          var feFunc = createNS(\"feFuncA\");\n          feFunc.setAttribute(\"type\", \"table\");\n          feFunc.setAttribute(\"tableValues\", \"1.0 0.0\");\n          feCTr.appendChild(feFunc); /// /\n\n          (this || _global).globalData.defs.appendChild(fil);\n\n          var alphaRect = createNS(\"rect\");\n          alphaRect.setAttribute(\"width\", (this || _global).comp.data.w);\n          alphaRect.setAttribute(\"height\", (this || _global).comp.data.h);\n          alphaRect.setAttribute(\"x\", \"0\");\n          alphaRect.setAttribute(\"y\", \"0\");\n          alphaRect.setAttribute(\"fill\", \"#ffffff\");\n          alphaRect.setAttribute(\"opacity\", \"0\");\n          maskGrouper.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n          maskGrouper.appendChild(alphaRect);\n          maskGrouper.appendChild((this || _global).layerElement);\n          layerElementParent = maskGrouper;\n\n          if (!featureSupport.maskType) {\n            maskGroup.setAttribute(\"mask-type\", \"luminance\");\n            fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n            gg = createNS(\"g\");\n            maskGrouper.appendChild(alphaRect);\n            gg.appendChild((this || _global).layerElement);\n            layerElementParent = gg;\n            maskGrouper.appendChild(gg);\n          }\n\n          (this || _global).globalData.defs.appendChild(maskGroup);\n        }\n      } else if ((this || _global).data.tt) {\n        (this || _global).matteElement.appendChild((this || _global).layerElement);\n\n        layerElementParent = (this || _global).matteElement;\n        (this || _global).baseElement = (this || _global).matteElement;\n      } else {\n        (this || _global).baseElement = (this || _global).layerElement;\n      }\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).data.cl);\n      } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n      if ((this || _global).data.ty === 0 && !(this || _global).data.hd) {\n        var cp = createNS(\"clipPath\");\n        var pt = createNS(\"path\");\n        pt.setAttribute(\"d\", \"M0,0 L\" + (this || _global).data.w + \",0 L\" + (this || _global).data.w + \",\" + (this || _global).data.h + \" L0,\" + (this || _global).data.h + \"z\");\n        var clipId = createElementID();\n        cp.setAttribute(\"id\", clipId);\n        cp.appendChild(pt);\n\n        (this || _global).globalData.defs.appendChild(cp);\n\n        if (this.checkMasks()) {\n          var cpGroup = createNS(\"g\");\n          cpGroup.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n          cpGroup.appendChild((this || _global).layerElement);\n          (this || _global).transformedElement = cpGroup;\n\n          if (layerElementParent) {\n            layerElementParent.appendChild((this || _global).transformedElement);\n          } else {\n            (this || _global).baseElement = (this || _global).transformedElement;\n          }\n        } else {\n          (this || _global).layerElement.setAttribute(\"clip-path\", \"url(\" + locationHref + \"#\" + clipId + \")\");\n        }\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      if ((this || _global).finalTransform._matMdf) {\n        (this || _global).transformedElement.setAttribute(\"transform\", (this || _global).finalTransform.mat.to2dCSS());\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        (this || _global).transformedElement.setAttribute(\"opacity\", (this || _global).finalTransform.mProp.o.v);\n      }\n    },\n    destroyBaseElement: function () {\n      (this || _global).layerElement = null;\n      (this || _global).matteElement = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    getBaseElement: function () {\n      if ((this || _global).data.hd) {\n        return null;\n      }\n\n      return (this || _global).baseElement;\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n      (this || _global).renderableEffectsManager = new SVGEffects(this || _global);\n    },\n    setMatte: function (id) {\n      if (!(this || _global).matteElement) {\n        return;\n      }\n\n      (this || _global).matteElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n    }\n  };\n  /* global ProcessedElement */\n\n  function IShapeElement() {}\n\n  IShapeElement.prototype = {\n    addShapeToModifiers: function (data) {\n      var i;\n      var len = (this || _global).shapeModifiers.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapeModifiers[i].addShape(data);\n      }\n    },\n    isShapeInAnimatedModifiers: function (data) {\n      var i = 0;\n      var len = (this || _global).shapeModifiers.length;\n\n      while (i < len) {\n        if ((this || _global).shapeModifiers[i].isAnimatedWithShape(data)) {\n          return true;\n        }\n      }\n\n      return false;\n    },\n    renderModifiers: function () {\n      if (!(this || _global).shapeModifiers.length) {\n        return;\n      }\n\n      var i;\n      var len = (this || _global).shapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).shapes[i].sh.reset();\n      }\n\n      len = (this || _global).shapeModifiers.length;\n      var shouldBreakProcess;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        shouldBreakProcess = (this || _global).shapeModifiers[i].processShapes((this || _global)._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n        // TODO: find a better solution for this\n\n        if (shouldBreakProcess) {\n          break;\n        }\n      }\n    },\n    lcEnum: {\n      1: \"butt\",\n      2: \"round\",\n      3: \"square\"\n    },\n    ljEnum: {\n      1: \"miter\",\n      2: \"round\",\n      3: \"bevel\"\n    },\n    searchProcessedElement: function (elem) {\n      var elements = (this || _global).processedElements;\n      var i = 0;\n      var len = elements.length;\n\n      while (i < len) {\n        if (elements[i].elem === elem) {\n          return elements[i].pos;\n        }\n\n        i += 1;\n      }\n\n      return 0;\n    },\n    addProcessedElement: function (elem, pos) {\n      var elements = (this || _global).processedElements;\n      var i = elements.length;\n\n      while (i) {\n        i -= 1;\n\n        if (elements[i].elem === elem) {\n          elements[i].pos = pos;\n          return;\n        }\n      }\n\n      elements.push(new ProcessedElement(elem, pos));\n    },\n    prepareFrame: function (num) {\n      this.prepareRenderableFrame(num);\n      this.prepareProperties(num, (this || _global).isInRange);\n    }\n  };\n  /* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\n\n  function ITextElement() {}\n\n  ITextElement.prototype.initElement = function (data, globalData, comp) {\n    (this || _global).lettersChangedFlag = true;\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    (this || _global).textProperty = new TextProperty(this || _global, data.t, (this || _global).dynamicProperties);\n    (this || _global).textAnimator = new TextAnimatorProperty(data.t, (this || _global).renderType, this || _global);\n    this.initTransform(data, globalData, comp);\n    this.initHierarchy();\n    this.initRenderable();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n    this.createContent();\n    this.hide();\n\n    (this || _global).textAnimator.searchProperties((this || _global).dynamicProperties);\n  };\n\n  ITextElement.prototype.prepareFrame = function (num) {\n    (this || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if ((this || _global).textProperty._mdf || (this || _global).textProperty._isFirstFrame) {\n      this.buildNewText();\n      (this || _global).textProperty._isFirstFrame = false;\n      (this || _global).textProperty._mdf = false;\n    }\n  };\n\n  ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n    var j;\n    var jLen = shapes.length;\n    var pathNodes;\n    var shapeStr = \"\";\n\n    for (j = 0; j < jLen; j += 1) {\n      pathNodes = shapes[j].ks.k;\n      shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n    }\n\n    return shapeStr;\n  };\n\n  ITextElement.prototype.updateDocumentData = function (newData, index) {\n    (this || _global).textProperty.updateDocumentData(newData, index);\n  };\n\n  ITextElement.prototype.canResizeFont = function (_canResize) {\n    (this || _global).textProperty.canResizeFont(_canResize);\n  };\n\n  ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n    (this || _global).textProperty.setMinimumFontSize(_fontSize);\n  };\n\n  ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n    if (documentData.ps) {\n      matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n    }\n\n    matrixHelper.translate(0, -documentData.ls, 0);\n\n    switch (documentData.j) {\n      case 1:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n        break;\n\n      case 2:\n        matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n        break;\n\n      default:\n        break;\n    }\n\n    matrixHelper.translate(xPos, yPos, 0);\n  };\n\n  ITextElement.prototype.buildColor = function (colorData) {\n    return \"rgb(\" + Math.round(colorData[0] * 255) + \",\" + Math.round(colorData[1] * 255) + \",\" + Math.round(colorData[2] * 255) + \")\";\n  };\n\n  ITextElement.prototype.emptyProp = new LetterProps();\n\n  ITextElement.prototype.destroy = function () {};\n  /* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\n\n\n  function ICompElement() {}\n\n  extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n  ICompElement.prototype.initElement = function (data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initTransform(data, globalData, comp);\n    this.initRenderable();\n    this.initHierarchy();\n    this.initRendererElement();\n    this.createContainerElements();\n    this.createRenderableComponents();\n\n    if ((this || _global).data.xt || !globalData.progressiveLoad) {\n      this.buildAllItems();\n    }\n\n    this.hide();\n  };\n  /* ICompElement.prototype.hide = function(){\r\n      if(!this.hidden){\r\n          this.hideElement();\r\n          var i,len = this.elements.length;\r\n          for( i = 0; i < len; i+=1 ){\r\n              if(this.elements[i]){\r\n                  this.elements[i].hide();\r\n              }\r\n          }\r\n      }\r\n  }; */\n\n\n  ICompElement.prototype.prepareFrame = function (num) {\n    (this || _global)._mdf = false;\n    this.prepareRenderableFrame(num);\n    this.prepareProperties(num, (this || _global).isInRange);\n\n    if (!(this || _global).isInRange && !(this || _global).data.xt) {\n      return;\n    }\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n\n      if (timeRemapped === (this || _global).data.op) {\n        timeRemapped = (this || _global).data.op - 1;\n      }\n\n      (this || _global).renderedFrame = timeRemapped;\n    } else {\n      (this || _global).renderedFrame = num / (this || _global).data.sr;\n    }\n\n    var i;\n    var len = (this || _global).elements.length;\n\n    if (!(this || _global).completeLayers) {\n      this.checkLayers((this || _global).renderedFrame);\n    } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].prepareFrame((this || _global).renderedFrame - (this || _global).layers[i].st);\n\n        if ((this || _global).elements[i]._mdf) {\n          (this || _global)._mdf = true;\n        }\n      }\n    }\n  };\n\n  ICompElement.prototype.renderInnerContent = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  ICompElement.prototype.setElements = function (elems) {\n    (this || _global).elements = elems;\n  };\n\n  ICompElement.prototype.getElements = function () {\n    return (this || _global).elements;\n  };\n\n  ICompElement.prototype.destroyElements = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n  };\n\n  ICompElement.prototype.destroy = function () {\n    this.destroyElements();\n    this.destroyBaseElement();\n  };\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\n\n\n  function IImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n    (this || _global).sourceRect = {\n      top: 0,\n      left: 0,\n      width: (this || _global).assetData.w,\n      height: (this || _global).assetData.h\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n  IImageElement.prototype.createContent = function () {\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).innerElem = createNS(\"image\");\n\n    (this || _global).innerElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n    (this || _global).innerElem.setAttribute(\"preserveAspectRatio\", (this || _global).assetData.pr || (this || _global).globalData.renderConfig.imagePreserveAspectRatio);\n\n    (this || _global).innerElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n    (this || _global).layerElement.appendChild((this || _global).innerElem);\n  };\n\n  IImageElement.prototype.sourceRectAtTime = function () {\n    return (this || _global).sourceRect;\n  };\n  /* global extendPrototype, IImageElement, createNS */\n\n\n  function ISolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([IImageElement], ISolidElement);\n\n  ISolidElement.prototype.createContent = function () {\n    var rect = createNS(\"rect\"); /// /rect.style.width = this.data.sw;\n    /// /rect.style.height = this.data.sh;\n    /// /rect.style.fill = this.data.sc;\n\n    rect.setAttribute(\"width\", (this || _global).data.sw);\n    rect.setAttribute(\"height\", (this || _global).data.sh);\n    rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\n\n\n  function AudioElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initBaseData(data, globalData, comp);\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    (this || _global).audio = (this || _global).globalData.audioController.createAudio(assetPath);\n    (this || _global)._currentTime = 0;\n\n    (this || _global).globalData.audioController.addAudio(this || _global);\n\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  AudioElement.prototype.prepareFrame = function (num) {\n    this.prepareRenderableFrame(num, true);\n    this.prepareProperties(num, true);\n\n    if (!(this || _global).tm._placeholder) {\n      var timeRemapped = (this || _global).tm.v;\n      (this || _global)._currentTime = timeRemapped;\n    } else {\n      (this || _global)._currentTime = num / (this || _global).data.sr;\n    }\n  };\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n  AudioElement.prototype.renderFrame = function () {\n    if ((this || _global).isInRange && (this || _global)._canPlay) {\n      if (!(this || _global)._isPlaying) {\n        (this || _global).audio.play();\n\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n\n        (this || _global)._isPlaying = true;\n      } else if (!(this || _global).audio.playing() || Math.abs((this || _global)._currentTime / (this || _global).globalData.frameRate - (this || _global).audio.seek()) > 0.1) {\n        (this || _global).audio.seek((this || _global)._currentTime / (this || _global).globalData.frameRate);\n      }\n    }\n  };\n\n  AudioElement.prototype.show = function () {// this.audio.play()\n  };\n\n  AudioElement.prototype.hide = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n  };\n\n  AudioElement.prototype.pause = function () {\n    (this || _global).audio.pause();\n\n    (this || _global)._isPlaying = false;\n    (this || _global)._canPlay = false;\n  };\n\n  AudioElement.prototype.resume = function () {\n    (this || _global)._canPlay = true;\n  };\n\n  AudioElement.prototype.setRate = function (rateValue) {\n    (this || _global).audio.rate(rateValue);\n  };\n\n  AudioElement.prototype.volume = function (volumeValue) {\n    (this || _global).audio.volume(volumeValue);\n  };\n\n  AudioElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  AudioElement.prototype.destroy = function () {};\n\n  AudioElement.prototype.sourceRectAtTime = function () {};\n\n  AudioElement.prototype.initExpressions = function () {};\n  /* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\n\n\n  function FootageElement(data, globalData, comp) {\n    this.initFrame();\n    this.initRenderable();\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).footageData = globalData.imageLoader.getAsset((this || _global).assetData);\n    this.initBaseData(data, globalData, comp);\n  }\n\n  FootageElement.prototype.prepareFrame = function () {};\n\n  extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n  FootageElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  FootageElement.prototype.renderFrame = function () {};\n\n  FootageElement.prototype.destroy = function () {};\n\n  FootageElement.prototype.initExpressions = function () {\n    (this || _global).layerInterface = FootageInterface(this || _global);\n  };\n\n  FootageElement.prototype.getFootageData = function () {\n    return (this || _global).footageData;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\n\n\n  function SVGCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = true;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : []; // this.layerElement = createNS('g');\n\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createNS */\n\n  function SVGTextLottieElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).renderType = \"svg\";\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n  SVGTextLottieElement.prototype.createContent = function () {\n    if ((this || _global).data.singleShape && !(this || _global).globalData.fontManager.chars) {\n      (this || _global).textContainer = createNS(\"text\");\n    }\n  };\n\n  SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n    var i = 0;\n    var len = textArray.length;\n    var textContents = [];\n    var currentTextContent = \"\";\n\n    while (i < len) {\n      if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n        textContents.push(currentTextContent);\n        currentTextContent = \"\";\n      } else {\n        currentTextContent += textArray[i];\n      }\n\n      i += 1;\n    }\n\n    textContents.push(currentTextContent);\n    return textContents;\n  };\n\n  SVGTextLottieElement.prototype.buildNewText = function () {\n    var i;\n    var len;\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n    if (documentData.fc) {\n      (this || _global).layerElement.setAttribute(\"fill\", this.buildColor(documentData.fc));\n    } else {\n      (this || _global).layerElement.setAttribute(\"fill\", \"rgba(0,0,0,0)\");\n    }\n\n    if (documentData.sc) {\n      (this || _global).layerElement.setAttribute(\"stroke\", this.buildColor(documentData.sc));\n\n      (this || _global).layerElement.setAttribute(\"stroke-width\", documentData.sw);\n    }\n\n    (this || _global).layerElement.setAttribute(\"font-size\", documentData.finalSize);\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (fontData.fClass) {\n      (this || _global).layerElement.setAttribute(\"class\", fontData.fClass);\n    } else {\n      (this || _global).layerElement.setAttribute(\"font-family\", fontData.fFamily);\n\n      var fWeight = documentData.fWeight;\n      var fStyle = documentData.fStyle;\n\n      (this || _global).layerElement.setAttribute(\"font-style\", fStyle);\n\n      (this || _global).layerElement.setAttribute(\"font-weight\", fWeight);\n    }\n\n    (this || _global).layerElement.setAttribute(\"aria-label\", documentData.t);\n\n    var letters = documentData.l || [];\n    var usesGlyphs = !!(this || _global).globalData.fontManager.chars;\n    len = letters.length;\n    var tSpan;\n    var matrixHelper = (this || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var singleShape = (this || _global).data.singleShape;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n    if (singleShape && !usesGlyphs && !documentData.sz) {\n      var tElement = (this || _global).textContainer;\n      var justify = \"start\";\n\n      switch (documentData.j) {\n        case 1:\n          justify = \"end\";\n          break;\n\n        case 2:\n          justify = \"middle\";\n          break;\n\n        default:\n          justify = \"start\";\n          break;\n      }\n\n      tElement.setAttribute(\"text-anchor\", justify);\n      tElement.setAttribute(\"letter-spacing\", trackingOffset);\n      var textContent = this.buildTextContents(documentData.finalText);\n      len = textContent.length;\n      yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n      for (i = 0; i < len; i += 1) {\n        tSpan = (this || _global).textSpans[i] || createNS(\"tspan\");\n        tSpan.textContent = textContent[i];\n        tSpan.setAttribute(\"x\", 0);\n        tSpan.setAttribute(\"y\", yPos);\n        tSpan.style.display = \"inherit\";\n        tElement.appendChild(tSpan);\n        (this || _global).textSpans[i] = tSpan;\n        yPos += documentData.finalLineHeight;\n      }\n\n      (this || _global).layerElement.appendChild(tElement);\n    } else {\n      var cachedSpansLength = (this || _global).textSpans.length;\n      var shapeData;\n      var charData;\n\n      for (i = 0; i < len; i += 1) {\n        if (!usesGlyphs || !singleShape || i === 0) {\n          tSpan = cachedSpansLength > i ? (this || _global).textSpans[i] : createNS(usesGlyphs ? \"path\" : \"text\");\n\n          if (cachedSpansLength <= i) {\n            tSpan.setAttribute(\"stroke-linecap\", \"butt\");\n            tSpan.setAttribute(\"stroke-linejoin\", \"round\");\n            tSpan.setAttribute(\"stroke-miterlimit\", \"4\");\n            (this || _global).textSpans[i] = tSpan;\n\n            (this || _global).layerElement.appendChild(tSpan);\n          }\n\n          tSpan.style.display = \"inherit\";\n        }\n\n        matrixHelper.reset();\n        matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n        if (singleShape) {\n          if (letters[i].n) {\n            xPos = -trackingOffset;\n            yPos += documentData.yOffset;\n            yPos += firstLine ? 1 : 0;\n            firstLine = false;\n          }\n\n          this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n          xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n          xPos += trackingOffset;\n        }\n\n        if (usesGlyphs) {\n          charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n          shapeData = charData && charData.data || {};\n          shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n\n          if (!singleShape) {\n            tSpan.setAttribute(\"d\", this.createPathShape(matrixHelper, shapes));\n          } else {\n            shapeStr += this.createPathShape(matrixHelper, shapes);\n          }\n        } else {\n          if (singleShape) {\n            tSpan.setAttribute(\"transform\", \"translate(\" + matrixHelper.props[12] + \",\" + matrixHelper.props[13] + \")\");\n          }\n\n          tSpan.textContent = letters[i].val;\n          tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n        } //\n\n      }\n\n      if (singleShape && tSpan) {\n        tSpan.setAttribute(\"d\", shapeStr);\n      }\n    }\n\n    while (i < (this || _global).textSpans.length) {\n      (this || _global).textSpans[i].style.display = \"none\";\n      i += 1;\n    }\n\n    (this || _global)._sizeChanged = true;\n  };\n\n  SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n    this.prepareFrame((this || _global).comp.renderedFrame - (this || _global).data.st);\n    this.renderInnerContent();\n\n    if ((this || _global)._sizeChanged) {\n      (this || _global)._sizeChanged = false;\n\n      var textBox = (this || _global).layerElement.getBBox();\n\n      (this || _global).bbox = {\n        top: textBox.y,\n        left: textBox.x,\n        width: textBox.width,\n        height: textBox.height\n      };\n    }\n\n    return (this || _global).bbox;\n  };\n\n  SVGTextLottieElement.prototype.renderInnerContent = function () {\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n      if ((this || _global).lettersChangedFlag || (this || _global).textAnimator.lettersChangedFlag) {\n        (this || _global)._sizeChanged = true;\n        var i;\n        var len;\n        var renderedLetters = (this || _global).textAnimator.renderedLetters;\n        var letters = (this || _global).textProperty.currentData.l;\n        len = letters.length;\n        var renderedLetter;\n        var textSpan;\n\n        for (i = 0; i < len; i += 1) {\n          if (!letters[i].n) {\n            renderedLetter = renderedLetters[i];\n            textSpan = (this || _global).textSpans[i];\n\n            if (renderedLetter._mdf.m) {\n              textSpan.setAttribute(\"transform\", renderedLetter.m);\n            }\n\n            if (renderedLetter._mdf.o) {\n              textSpan.setAttribute(\"opacity\", renderedLetter.o);\n            }\n\n            if (renderedLetter._mdf.sw) {\n              textSpan.setAttribute(\"stroke-width\", renderedLetter.sw);\n            }\n\n            if (renderedLetter._mdf.sc) {\n              textSpan.setAttribute(\"stroke\", renderedLetter.sc);\n            }\n\n            if (renderedLetter._mdf.fc) {\n              textSpan.setAttribute(\"fill\", renderedLetter.fc);\n            }\n          }\n        }\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\n  FrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\n  SVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\n  TransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers */\n\n\n  function SVGShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).animatedContents = [];\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    (this || _global).prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n  }\n\n  extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n  SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n  SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n  SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n  SVGShapeElement.prototype.createContent = function () {\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).layerElement, 0, [], true);\n    this.filterUniqueShapes();\n  };\n  /*\r\n  This method searches for multiple shapes that affect a single element and one of them is animated\r\n  */\n\n\n  SVGShapeElement.prototype.filterUniqueShapes = function () {\n    var i;\n    var len = (this || _global).shapes.length;\n    var shape;\n    var j;\n    var jLen = (this || _global).stylesList.length;\n    var style;\n    var tempShapes = [];\n    var areAnimated = false;\n\n    for (j = 0; j < jLen; j += 1) {\n      style = (this || _global).stylesList[j];\n      areAnimated = false;\n      tempShapes.length = 0;\n\n      for (i = 0; i < len; i += 1) {\n        shape = (this || _global).shapes[i];\n\n        if (shape.styles.indexOf(style) !== -1) {\n          tempShapes.push(shape);\n          areAnimated = shape._isAnimated || areAnimated;\n        }\n      }\n\n      if (tempShapes.length > 1 && areAnimated) {\n        this.setShapesAsAnimated(tempShapes);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n    var i;\n    var len = shapes.length;\n\n    for (i = 0; i < len; i += 1) {\n      shapes[i].setAsAnimated();\n    }\n  };\n\n  SVGShapeElement.prototype.createStyleElement = function (data, level) {\n    // TODO: prevent drawing of hidden styles\n    var elementData;\n    var styleOb = new SVGStyleData(data, level);\n    var pathElement = styleOb.pElem;\n\n    if (data.ty === \"st\") {\n      elementData = new SVGStrokeStyleData(this || _global, data, styleOb);\n    } else if (data.ty === \"fl\") {\n      elementData = new SVGFillStyleData(this || _global, data, styleOb);\n    } else if (data.ty === \"gf\" || data.ty === \"gs\") {\n      var GradientConstructor = data.ty === \"gf\" ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n      elementData = new GradientConstructor(this || _global, data, styleOb);\n\n      (this || _global).globalData.defs.appendChild(elementData.gf);\n\n      if (elementData.maskId) {\n        (this || _global).globalData.defs.appendChild(elementData.ms);\n\n        (this || _global).globalData.defs.appendChild(elementData.of);\n\n        pathElement.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + elementData.maskId + \")\");\n      }\n    }\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      pathElement.setAttribute(\"stroke-linecap\", (this || _global).lcEnum[data.lc] || \"round\");\n      pathElement.setAttribute(\"stroke-linejoin\", (this || _global).ljEnum[data.lj] || \"round\");\n      pathElement.setAttribute(\"fill-opacity\", \"0\");\n\n      if (data.lj === 1) {\n        pathElement.setAttribute(\"stroke-miterlimit\", data.ml);\n      }\n    }\n\n    if (data.r === 2) {\n      pathElement.setAttribute(\"fill-rule\", \"evenodd\");\n    }\n\n    if (data.ln) {\n      pathElement.setAttribute(\"id\", data.ln);\n    }\n\n    if (data.cl) {\n      pathElement.setAttribute(\"class\", data.cl);\n    }\n\n    if (data.bm) {\n      pathElement.style[\"mix-blend-mode\"] = getBlendMode(data.bm);\n    }\n\n    (this || _global).stylesList.push(styleOb);\n\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createGroupElement = function (data) {\n    var elementData = new ShapeGroupData();\n\n    if (data.ln) {\n      elementData.gr.setAttribute(\"id\", data.ln);\n    }\n\n    if (data.cl) {\n      elementData.gr.setAttribute(\"class\", data.cl);\n    }\n\n    if (data.bm) {\n      elementData.gr.style[\"mix-blend-mode\"] = getBlendMode(data.bm);\n    }\n\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createTransformElement = function (data, container) {\n    var transformProperty = TransformPropertyFactory.getTransformProperty(this || _global, data, this || _global);\n    var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n    var ty = 4;\n\n    if (data.ty === \"rc\") {\n      ty = 5;\n    } else if (data.ty === \"el\") {\n      ty = 6;\n    } else if (data.ty === \"sr\") {\n      ty = 7;\n    }\n\n    var shapeProperty = ShapePropertyFactory.getShapeProp(this || _global, data, ty, this || _global);\n    var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n\n    (this || _global).shapes.push(elementData);\n\n    this.addShapeToModifiers(elementData);\n    this.addToAnimatedContents(data, elementData);\n    return elementData;\n  };\n\n  SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n    var i = 0;\n    var len = (this || _global).animatedContents.length;\n\n    while (i < len) {\n      if ((this || _global).animatedContents[i].element === element) {\n        return;\n      }\n\n      i += 1;\n    }\n\n    (this || _global).animatedContents.push({\n      fn: SVGElementsRenderer.createRenderFunction(data),\n      element: element,\n      data: data\n    });\n  };\n\n  SVGShapeElement.prototype.setElementStyles = function (elementData) {\n    var arr = elementData.styles;\n    var j;\n    var jLen = (this || _global).stylesList.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      if (!(this || _global).stylesList[j].closed) {\n        arr.push((this || _global).stylesList[j]);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).layerElement, 0, [], true);\n    this.filterUniqueShapes();\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n  };\n\n  SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n    var ownTransformers = [].concat(transformers);\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var currentTransform;\n    var modifier;\n    var processedPos;\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._render = render;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === \"fl\" || arr[i].ty === \"st\" || arr[i].ty === \"gf\" || arr[i].ty === \"gs\") {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], level);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        if (arr[i]._render) {\n          container.appendChild(itemsData[i].style.pElem);\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === \"gr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n        if (arr[i]._render) {\n          container.appendChild(itemsData[i].gr);\n        }\n      } else if (arr[i].ty === \"tr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createTransformElement(arr[i], container);\n        }\n\n        currentTransform = itemsData[i].transform;\n        ownTransformers.push(currentTransform);\n      } else if (arr[i].ty === \"sh\" || arr[i].ty === \"rc\" || arr[i].ty === \"el\" || arr[i].ty === \"sr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n        }\n\n        this.setElementStyles(itemsData[i]);\n      } else if (arr[i].ty === \"tm\" || arr[i].ty === \"rd\" || arr[i].ty === \"ms\" || arr[i].ty === \"pb\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === \"rp\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\n          render = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    len = ownStyles.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownStyles[i].closed = true;\n    }\n\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  SVGShapeElement.prototype.renderInnerContent = function () {\n    this.renderModifiers();\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).stylesList[i].reset();\n    }\n\n    this.renderShape();\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).stylesList[i]._mdf || (this || _global)._isFirstFrame) {\n        if ((this || _global).stylesList[i].msElem) {\n          (this || _global).stylesList[i].msElem.setAttribute(\"d\", (this || _global).stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n\n          (this || _global).stylesList[i].d = \"M0 0\" + (this || _global).stylesList[i].d;\n        }\n\n        (this || _global).stylesList[i].pElem.setAttribute(\"d\", (this || _global).stylesList[i].d || \"M0 0\");\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.renderShape = function () {\n    var i;\n    var len = (this || _global).animatedContents.length;\n    var animatedContent;\n\n    for (i = 0; i < len; i += 1) {\n      animatedContent = (this || _global).animatedContents[i];\n\n      if (((this || _global)._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n        animatedContent.fn(animatedContent.data, animatedContent.element, (this || _global)._isFirstFrame);\n      }\n    }\n  };\n\n  SVGShapeElement.prototype.destroy = function () {\n    this.destroyBaseElement();\n    (this || _global).shapesData = null;\n    (this || _global).itemsData = null;\n  };\n  /* global createNS */\n\n\n  function SVGTintFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"linearRGB\");\n    feColorMatrix.setAttribute(\"values\", \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f1\");\n    filter.appendChild(feColorMatrix);\n    feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    feColorMatrix.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f2\");\n    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n\n    if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\n      var feMerge = createNS(\"feMerge\");\n      filter.appendChild(feMerge);\n      var feMergeNode;\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n      feMerge.appendChild(feMergeNode);\n      feMergeNode = createNS(\"feMergeNode\");\n      feMergeNode.setAttribute(\"in\", \"f2\");\n      feMerge.appendChild(feMergeNode);\n    }\n  }\n\n  SVGTintFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var colorBlack = (this || _global).filterManager.effectElements[0].p.v;\n      var colorWhite = (this || _global).filterManager.effectElements[1].p.v;\n      var opacity = (this || _global).filterManager.effectElements[2].p.v / 100;\n\n      (this || _global).matrixFilter.setAttribute(\"values\", colorWhite[0] - colorBlack[0] + \" 0 0 0 \" + colorBlack[0] + \" \" + (colorWhite[1] - colorBlack[1]) + \" 0 0 0 \" + colorBlack[1] + \" \" + (colorWhite[2] - colorBlack[2]) + \" 0 0 0 \" + colorBlack[2] + \" 0 0 0 \" + opacity + \" 0\");\n    }\n  };\n  /* global createNS */\n\n\n  function SVGFillFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    feColorMatrix.setAttribute(\"values\", \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0\");\n    filter.appendChild(feColorMatrix);\n    (this || _global).matrixFilter = feColorMatrix;\n  }\n\n  SVGFillFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color = (this || _global).filterManager.effectElements[2].p.v;\n      var opacity = (this || _global).filterManager.effectElements[6].p.v;\n\n      (this || _global).matrixFilter.setAttribute(\"values\", \"0 0 0 0 \" + color[0] + \" 0 0 0 0 \" + color[1] + \" 0 0 0 0 \" + color[2] + \" 0 0 0 \" + opacity + \" 0\");\n    }\n  };\n  /* global createNS */\n\n\n  function SVGGaussianBlurEffect(filter, filterManager) {\n    // Outset the filter region by 100% on all sides to accommodate blur expansion.\n    filter.setAttribute(\"x\", \"-100%\");\n    filter.setAttribute(\"y\", \"-100%\");\n    filter.setAttribute(\"width\", \"300%\");\n    filter.setAttribute(\"height\", \"300%\");\n    (this || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    filter.appendChild(feGaussianBlur);\n    (this || _global).feGaussianBlur = feGaussianBlur;\n  }\n\n  SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      // Empirical value, matching AE's blur appearance.\n      var kBlurrinessToSigma = 0.3;\n      var sigma = (this || _global).filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n      //\n      //   1 -> horizontal & vertical\n      //   2 -> horizontal only\n      //   3 -> vertical only\n      //\n\n      var dimensions = (this || _global).filterManager.effectElements[1].p.v;\n      var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n      (this || _global).feGaussianBlur.setAttribute(\"stdDeviation\", sigmaX + \" \" + sigmaY); // Repeat edges mapping:\n      //\n      //   0 -> off -> duplicate\n      //   1 -> on  -> wrap\n\n\n      var edgeMode = (this || _global).filterManager.effectElements[2].p.v == 1 ? \"wrap\" : \"duplicate\"; // eslint-disable-line eqeqeq\n\n      (this || _global).feGaussianBlur.setAttribute(\"edgeMode\", edgeMode);\n    }\n  };\n  /* global createNS, createElementID, locationHref, bmFloor */\n\n\n  function SVGStrokeEffect(elem, filterManager) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).elem = elem;\n    (this || _global).paths = [];\n  }\n\n  SVGStrokeEffect.prototype.initialize = function () {\n    var elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n    var path;\n    var groupPath;\n    var i;\n    var len;\n\n    if ((this || _global).filterManager.effectElements[1].p.v === 1) {\n      len = (this || _global).elem.maskManager.masksProperties.length;\n      i = 0;\n    } else {\n      i = (this || _global).filterManager.effectElements[0].p.v - 1;\n      len = i + 1;\n    }\n\n    groupPath = createNS(\"g\");\n    groupPath.setAttribute(\"fill\", \"none\");\n    groupPath.setAttribute(\"stroke-linecap\", \"round\");\n    groupPath.setAttribute(\"stroke-dashoffset\", 1);\n\n    for (i; i < len; i += 1) {\n      path = createNS(\"path\");\n      groupPath.appendChild(path);\n\n      (this || _global).paths.push({\n        p: path,\n        m: i\n      });\n    }\n\n    if ((this || _global).filterManager.effectElements[10].p.v === 3) {\n      var mask = createNS(\"mask\");\n      var id = createElementID();\n      mask.setAttribute(\"id\", id);\n      mask.setAttribute(\"mask-type\", \"alpha\");\n      mask.appendChild(groupPath);\n\n      (this || _global).elem.globalData.defs.appendChild(mask);\n\n      var g = createNS(\"g\");\n      g.setAttribute(\"mask\", \"url(\" + locationHref + \"#\" + id + \")\");\n\n      while (elemChildren[0]) {\n        g.appendChild(elemChildren[0]);\n      }\n\n      (this || _global).elem.layerElement.appendChild(g);\n\n      (this || _global).masker = mask;\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    } else if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if ((this || _global).filterManager.effectElements[10].p.v === 2) {\n        elemChildren = (this || _global).elem.layerElement.children || (this || _global).elem.layerElement.childNodes;\n\n        while (elemChildren.length) {\n          (this || _global).elem.layerElement.removeChild(elemChildren[0]);\n        }\n      }\n\n      (this || _global).elem.layerElement.appendChild(groupPath);\n\n      (this || _global).elem.layerElement.removeAttribute(\"mask\");\n\n      groupPath.setAttribute(\"stroke\", \"#fff\");\n    }\n\n    (this || _global).initialized = true;\n    (this || _global).pathMasker = groupPath;\n  };\n\n  SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n\n    var i;\n    var len = (this || _global).paths.length;\n    var mask;\n    var path;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).paths[i].m !== -1) {\n        mask = (this || _global).elem.maskManager.viewData[(this || _global).paths[i].m];\n        path = (this || _global).paths[i].p;\n\n        if (forceRender || (this || _global).filterManager._mdf || mask.prop._mdf) {\n          path.setAttribute(\"d\", mask.lastPath);\n        }\n\n        if (forceRender || (this || _global).filterManager.effectElements[9].p._mdf || (this || _global).filterManager.effectElements[4].p._mdf || (this || _global).filterManager.effectElements[7].p._mdf || (this || _global).filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n          var dasharrayValue;\n\n          if ((this || _global).filterManager.effectElements[7].p.v !== 0 || (this || _global).filterManager.effectElements[8].p.v !== 100) {\n            var s = Math.min((this || _global).filterManager.effectElements[7].p.v, (this || _global).filterManager.effectElements[8].p.v) * 0.01;\n            var e = Math.max((this || _global).filterManager.effectElements[7].p.v, (this || _global).filterManager.effectElements[8].p.v) * 0.01;\n            var l = path.getTotalLength();\n            dasharrayValue = \"0 0 0 \" + l * s + \" \";\n            var lineLength = l * (e - s);\n            var segment = 1 + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01;\n            var units = Math.floor(lineLength / segment);\n            var j;\n\n            for (j = 0; j < units; j += 1) {\n              dasharrayValue += \"1 \" + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01 + \" \";\n            }\n\n            dasharrayValue += \"0 \" + l * 10 + \" 0 0\";\n          } else {\n            dasharrayValue = \"1 \" + (this || _global).filterManager.effectElements[4].p.v * 2 * (this || _global).filterManager.effectElements[9].p.v * 0.01;\n          }\n\n          path.setAttribute(\"stroke-dasharray\", dasharrayValue);\n        }\n      }\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"stroke-width\", (this || _global).filterManager.effectElements[4].p.v * 2);\n    }\n\n    if (forceRender || (this || _global).filterManager.effectElements[6].p._mdf) {\n      (this || _global).pathMasker.setAttribute(\"opacity\", (this || _global).filterManager.effectElements[6].p.v);\n    }\n\n    if ((this || _global).filterManager.effectElements[10].p.v === 1 || (this || _global).filterManager.effectElements[10].p.v === 2) {\n      if (forceRender || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var color = (this || _global).filterManager.effectElements[3].p.v;\n\n        (this || _global).pathMasker.setAttribute(\"stroke\", \"rgb(\" + bmFloor(color[0] * 255) + \",\" + bmFloor(color[1] * 255) + \",\" + bmFloor(color[2] * 255) + \")\");\n      }\n    }\n  };\n  /* global createNS */\n\n\n  function SVGTritoneFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var feColorMatrix = createNS(\"feColorMatrix\");\n    feColorMatrix.setAttribute(\"type\", \"matrix\");\n    feColorMatrix.setAttribute(\"color-interpolation-filters\", \"linearRGB\");\n    feColorMatrix.setAttribute(\"values\", \"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\");\n    feColorMatrix.setAttribute(\"result\", \"f1\");\n    filter.appendChild(feColorMatrix);\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\n    feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n    filter.appendChild(feComponentTransfer);\n    (this || _global).matrixFilter = feComponentTransfer;\n    var feFuncR = createNS(\"feFuncR\");\n    feFuncR.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncR);\n    (this || _global).feFuncR = feFuncR;\n    var feFuncG = createNS(\"feFuncG\");\n    feFuncG.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncG);\n    (this || _global).feFuncG = feFuncG;\n    var feFuncB = createNS(\"feFuncB\");\n    feFuncB.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFuncB);\n    (this || _global).feFuncB = feFuncB;\n  }\n\n  SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var color1 = (this || _global).filterManager.effectElements[0].p.v;\n      var color2 = (this || _global).filterManager.effectElements[1].p.v;\n      var color3 = (this || _global).filterManager.effectElements[2].p.v;\n      var tableR = color3[0] + \" \" + color2[0] + \" \" + color1[0];\n      var tableG = color3[1] + \" \" + color2[1] + \" \" + color1[1];\n      var tableB = color3[2] + \" \" + color2[2] + \" \" + color1[2];\n\n      (this || _global).feFuncR.setAttribute(\"tableValues\", tableR);\n\n      (this || _global).feFuncG.setAttribute(\"tableValues\", tableG);\n\n      (this || _global).feFuncB.setAttribute(\"tableValues\", tableB); // var opacity = this.filterManager.effectElements[2].p.v/100;\n      // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\n\n    }\n  };\n  /* global createNS */\n\n\n  function SVGProLevelsFilter(filter, filterManager) {\n    (this || _global).filterManager = filterManager;\n    var effectElements = (this || _global).filterManager.effectElements;\n    var feComponentTransfer = createNS(\"feComponentTransfer\");\n\n    if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n      (this || _global).feFuncR = this.createFeFunc(\"feFuncR\", feComponentTransfer);\n    }\n\n    if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n      (this || _global).feFuncG = this.createFeFunc(\"feFuncG\", feComponentTransfer);\n    }\n\n    if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n      (this || _global).feFuncB = this.createFeFunc(\"feFuncB\", feComponentTransfer);\n    }\n\n    if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n      (this || _global).feFuncA = this.createFeFunc(\"feFuncA\", feComponentTransfer);\n    }\n\n    if ((this || _global).feFuncR || (this || _global).feFuncG || (this || _global).feFuncB || (this || _global).feFuncA) {\n      feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      feComponentTransfer = createNS(\"feComponentTransfer\");\n    }\n\n    if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n      feComponentTransfer.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n      filter.appendChild(feComponentTransfer);\n      (this || _global).feFuncRComposed = this.createFeFunc(\"feFuncR\", feComponentTransfer);\n      (this || _global).feFuncGComposed = this.createFeFunc(\"feFuncG\", feComponentTransfer);\n      (this || _global).feFuncBComposed = this.createFeFunc(\"feFuncB\", feComponentTransfer);\n    }\n  }\n\n  SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n    var feFunc = createNS(type);\n    feFunc.setAttribute(\"type\", \"table\");\n    feComponentTransfer.appendChild(feFunc);\n    return feFunc;\n  };\n\n  SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n    var cnt = 0;\n    var segments = 256;\n    var perc;\n    var min = Math.min(inputBlack, inputWhite);\n    var max = Math.max(inputBlack, inputWhite);\n    var table = Array.call(null, {\n      length: segments\n    });\n    var colorValue;\n    var pos = 0;\n    var outputDelta = outputWhite - outputBlack;\n    var inputDelta = inputWhite - inputBlack;\n\n    while (cnt <= 256) {\n      perc = cnt / 256;\n\n      if (perc <= min) {\n        colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n      } else if (perc >= max) {\n        colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n      } else {\n        colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n      }\n\n      table[pos] = colorValue;\n      pos += 1;\n      cnt += 256 / (segments - 1);\n    }\n\n    return table.join(\" \");\n  };\n\n  SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      var val;\n      var effectElements = (this || _global).filterManager.effectElements;\n\n      if ((this || _global).feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n        val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n\n        (this || _global).feFuncRComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncGComposed.setAttribute(\"tableValues\", val);\n\n        (this || _global).feFuncBComposed.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n        val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n\n        (this || _global).feFuncR.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n        val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n\n        (this || _global).feFuncG.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n        val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n\n        (this || _global).feFuncB.setAttribute(\"tableValues\", val);\n      }\n\n      if ((this || _global).feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n        val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n\n        (this || _global).feFuncA.setAttribute(\"tableValues\", val);\n      }\n    }\n  };\n  /* global createNS, rgbToHex, degToRads */\n\n\n  function SVGDropShadowEffect(filter, filterManager) {\n    var filterSize = filterManager.container.globalData.renderConfig.filterSize;\n    filter.setAttribute(\"x\", filterSize.x);\n    filter.setAttribute(\"y\", filterSize.y);\n    filter.setAttribute(\"width\", filterSize.width);\n    filter.setAttribute(\"height\", filterSize.height);\n    (this || _global).filterManager = filterManager;\n    var feGaussianBlur = createNS(\"feGaussianBlur\");\n    feGaussianBlur.setAttribute(\"in\", \"SourceAlpha\");\n    feGaussianBlur.setAttribute(\"result\", \"drop_shadow_1\");\n    feGaussianBlur.setAttribute(\"stdDeviation\", \"0\");\n    (this || _global).feGaussianBlur = feGaussianBlur;\n    filter.appendChild(feGaussianBlur);\n    var feOffset = createNS(\"feOffset\");\n    feOffset.setAttribute(\"dx\", \"25\");\n    feOffset.setAttribute(\"dy\", \"0\");\n    feOffset.setAttribute(\"in\", \"drop_shadow_1\");\n    feOffset.setAttribute(\"result\", \"drop_shadow_2\");\n    (this || _global).feOffset = feOffset;\n    filter.appendChild(feOffset);\n    var feFlood = createNS(\"feFlood\");\n    feFlood.setAttribute(\"flood-color\", \"#00ff00\");\n    feFlood.setAttribute(\"flood-opacity\", \"1\");\n    feFlood.setAttribute(\"result\", \"drop_shadow_3\");\n    (this || _global).feFlood = feFlood;\n    filter.appendChild(feFlood);\n    var feComposite = createNS(\"feComposite\");\n    feComposite.setAttribute(\"in\", \"drop_shadow_3\");\n    feComposite.setAttribute(\"in2\", \"drop_shadow_2\");\n    feComposite.setAttribute(\"operator\", \"in\");\n    feComposite.setAttribute(\"result\", \"drop_shadow_4\");\n    filter.appendChild(feComposite);\n    var feMerge = createNS(\"feMerge\");\n    filter.appendChild(feMerge);\n    var feMergeNode;\n    feMergeNode = createNS(\"feMergeNode\");\n    feMerge.appendChild(feMergeNode);\n    feMergeNode = createNS(\"feMergeNode\");\n    feMergeNode.setAttribute(\"in\", \"SourceGraphic\");\n    (this || _global).feMergeNode = feMergeNode;\n    (this || _global).feMerge = feMerge;\n    (this || _global).originalNodeAdded = false;\n    feMerge.appendChild(feMergeNode);\n  }\n\n  SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n    if (forceRender || (this || _global).filterManager._mdf) {\n      if (forceRender || (this || _global).filterManager.effectElements[4].p._mdf) {\n        (this || _global).feGaussianBlur.setAttribute(\"stdDeviation\", (this || _global).filterManager.effectElements[4].p.v / 4);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[0].p._mdf) {\n        var col = (this || _global).filterManager.effectElements[0].p.v;\n\n        (this || _global).feFlood.setAttribute(\"flood-color\", rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[1].p._mdf) {\n        (this || _global).feFlood.setAttribute(\"flood-opacity\", (this || _global).filterManager.effectElements[1].p.v / 255);\n      }\n\n      if (forceRender || (this || _global).filterManager.effectElements[2].p._mdf || (this || _global).filterManager.effectElements[3].p._mdf) {\n        var distance = (this || _global).filterManager.effectElements[3].p.v;\n        var angle = ((this || _global).filterManager.effectElements[2].p.v - 90) * degToRads;\n        var x = distance * Math.cos(angle);\n        var y = distance * Math.sin(angle);\n\n        (this || _global).feOffset.setAttribute(\"dx\", x);\n\n        (this || _global).feOffset.setAttribute(\"dy\", y);\n      }\n      /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n              if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n                  this.feMerge.removeChild(this.feMergeNode);\r\n                  this.originalNodeAdded = false;\r\n              } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n                  this.feMerge.appendChild(this.feMergeNode);\r\n                  this.originalNodeAdded = true;\r\n              }\r\n          } */\n\n    }\n  };\n  /* global createElementID, createNS */\n\n\n  var _svgMatteSymbols = [];\n\n  function SVGMatte3Effect(filterElem, filterManager, elem) {\n    (this || _global).initialized = false;\n    (this || _global).filterManager = filterManager;\n    (this || _global).filterElem = filterElem;\n    (this || _global).elem = elem;\n    elem.matteElement = createNS(\"g\");\n    elem.matteElement.appendChild(elem.layerElement);\n    elem.matteElement.appendChild(elem.transformedElement);\n    elem.baseElement = elem.matteElement;\n  }\n\n  SVGMatte3Effect.prototype.findSymbol = function (mask) {\n    var i = 0;\n    var len = _svgMatteSymbols.length;\n\n    while (i < len) {\n      if (_svgMatteSymbols[i] === mask) {\n        return _svgMatteSymbols[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n    var parentNode = mask.layerElement.parentNode;\n\n    if (!parentNode) {\n      return;\n    }\n\n    var children = parentNode.children;\n    var i = 0;\n    var len = children.length;\n\n    while (i < len) {\n      if (children[i] === mask.layerElement) {\n        break;\n      }\n\n      i += 1;\n    }\n\n    var nextChild;\n\n    if (i <= len - 2) {\n      nextChild = children[i + 1];\n    }\n\n    var useElem = createNS(\"use\");\n    useElem.setAttribute(\"href\", \"#\" + symbolId);\n\n    if (nextChild) {\n      parentNode.insertBefore(useElem, nextChild);\n    } else {\n      parentNode.appendChild(useElem);\n    }\n  };\n\n  SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n    if (!this.findSymbol(mask)) {\n      var symbolId = createElementID();\n      var masker = createNS(\"mask\");\n      masker.setAttribute(\"id\", mask.layerId);\n      masker.setAttribute(\"mask-type\", \"alpha\");\n\n      _svgMatteSymbols.push(mask);\n\n      var defs = elem.globalData.defs;\n      defs.appendChild(masker);\n      var symbol = createNS(\"symbol\");\n      symbol.setAttribute(\"id\", symbolId);\n      this.replaceInParent(mask, symbolId);\n      symbol.appendChild(mask.layerElement);\n      defs.appendChild(symbol);\n      var useElem = createNS(\"use\");\n      useElem.setAttribute(\"href\", \"#\" + symbolId);\n      masker.appendChild(useElem);\n      mask.data.hd = false;\n      mask.show();\n    }\n\n    elem.setMatte(mask.layerId);\n  };\n\n  SVGMatte3Effect.prototype.initialize = function () {\n    var ind = (this || _global).filterManager.effectElements[0].p.v;\n    var elements = (this || _global).elem.comp.elements;\n    var i = 0;\n    var len = elements.length;\n\n    while (i < len) {\n      if (elements[i] && elements[i].data.ind === ind) {\n        this.setElementAsMask((this || _global).elem, elements[i]);\n      }\n\n      i += 1;\n    }\n\n    (this || _global).initialized = true;\n  };\n\n  SVGMatte3Effect.prototype.renderFrame = function () {\n    if (!(this || _global).initialized) {\n      this.initialize();\n    }\n  };\n  /* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\n  SVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\n\n\n  function SVGEffects(elem) {\n    var i;\n    var len = elem.data.ef ? elem.data.ef.length : 0;\n    var filId = createElementID();\n    var fil = filtersFactory.createFilter(filId, true);\n    var count = 0;\n    (this || _global).filters = [];\n    var filterManager;\n\n    for (i = 0; i < len; i += 1) {\n      filterManager = null;\n\n      if (elem.data.ef[i].ty === 20) {\n        count += 1;\n        filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 21) {\n        count += 1;\n        filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 22) {\n        filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 23) {\n        count += 1;\n        filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 24) {\n        count += 1;\n        filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 25) {\n        count += 1;\n        filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\n      } else if (elem.data.ef[i].ty === 28) {\n        // count += 1;\n        filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\n      } else if (elem.data.ef[i].ty === 29) {\n        count += 1;\n        filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\n      }\n\n      if (filterManager) {\n        (this || _global).filters.push(filterManager);\n      }\n    }\n\n    if (count) {\n      elem.globalData.defs.appendChild(fil);\n      elem.layerElement.setAttribute(\"filter\", \"url(\" + locationHref + \"#\" + filId + \")\");\n    }\n\n    if ((this || _global).filters.length) {\n      elem.addRenderableComponent(this || _global);\n    }\n  }\n\n  SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n    var i;\n    var len = (this || _global).filters.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).filters[i].renderFrame(_isFirstFrame);\n    }\n  };\n  /* global Matrix, createTypedArray */\n\n\n  function CVContextData() {\n    (this || _global).saved = [];\n    (this || _global).cArrPos = 0;\n    (this || _global).cTr = new Matrix();\n    (this || _global).cO = 1;\n    var i;\n    var len = 15;\n    (this || _global).savedOp = createTypedArray(\"float32\", len);\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = len;\n  }\n\n  CVContextData.prototype.duplicate = function () {\n    var newLength = (this || _global)._length * 2;\n    var currentSavedOp = (this || _global).savedOp;\n    (this || _global).savedOp = createTypedArray(\"float32\", newLength);\n\n    (this || _global).savedOp.set(currentSavedOp);\n\n    var i = 0;\n\n    for (i = (this || _global)._length; i < newLength; i += 1) {\n      (this || _global).saved[i] = createTypedArray(\"float32\", 16);\n    }\n\n    (this || _global)._length = newLength;\n  };\n\n  CVContextData.prototype.reset = function () {\n    (this || _global).cArrPos = 0;\n\n    (this || _global).cTr.reset();\n\n    (this || _global).cO = 1;\n  };\n  /* global CVEffects, getBlendMode, CVMaskElement, Matrix */\n\n\n  function CVBaseElement() {}\n\n  CVBaseElement.prototype = {\n    createElements: function () {},\n    initRendererElement: function () {},\n    createContainerElements: function () {\n      (this || _global).canvasContext = (this || _global).globalData.canvasContext;\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n    },\n    createContent: function () {},\n    setBlendMode: function () {\n      var globalData = (this || _global).globalData;\n\n      if (globalData.blendMode !== (this || _global).data.bm) {\n        globalData.blendMode = (this || _global).data.bm;\n        var blendModeValue = getBlendMode((this || _global).data.bm);\n        globalData.canvasContext.globalCompositeOperation = blendModeValue;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new CVMaskElement((this || _global).data, this || _global);\n    },\n    hideElement: function () {\n      if (!(this || _global).hidden && (!(this || _global).isInRange || (this || _global).isTransparent)) {\n        (this || _global).hidden = true;\n      }\n    },\n    showElement: function () {\n      if ((this || _global).isInRange && !(this || _global).isTransparent) {\n        (this || _global).hidden = false;\n        (this || _global)._isFirstFrame = true;\n        (this || _global).maskManager._isFirstFrame = true;\n      }\n    },\n    renderFrame: function () {\n      if ((this || _global).hidden || (this || _global).data.hd) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.setBlendMode();\n      var forceRealStack = (this || _global).data.ty === 0;\n\n      (this || _global).globalData.renderer.save(forceRealStack);\n\n      (this || _global).globalData.renderer.ctxTransform((this || _global).finalTransform.mat.props);\n\n      (this || _global).globalData.renderer.ctxOpacity((this || _global).finalTransform.mProp.o.v);\n\n      this.renderInnerContent();\n\n      (this || _global).globalData.renderer.restore(forceRealStack);\n\n      if ((this || _global).maskManager.hasMasks) {\n        (this || _global).globalData.renderer.restore(true);\n      }\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).canvasContext = null;\n      (this || _global).data = null;\n      (this || _global).globalData = null;\n\n      (this || _global).maskManager.destroy();\n    },\n    mHelper: new Matrix()\n  };\n  CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n  CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\n  RenderableElement, SVGShapeElement, IImageElement, createTag */\n\n  function CVImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    (this || _global).img = globalData.imageLoader.getAsset((this || _global).assetData);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n  CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVImageElement.prototype.createContent = function () {\n    if ((this || _global).img.width && ((this || _global).assetData.w !== (this || _global).img.width || (this || _global).assetData.h !== (this || _global).img.height)) {\n      var canvas = createTag(\"canvas\");\n      canvas.width = (this || _global).assetData.w;\n      canvas.height = (this || _global).assetData.h;\n      var ctx = canvas.getContext(\"2d\");\n      var imgW = (this || _global).img.width;\n      var imgH = (this || _global).img.height;\n      var imgRel = imgW / imgH;\n      var canvasRel = (this || _global).assetData.w / (this || _global).assetData.h;\n      var widthCrop;\n      var heightCrop;\n      var par = (this || _global).assetData.pr || (this || _global).globalData.renderConfig.imagePreserveAspectRatio;\n\n      if (imgRel > canvasRel && par === \"xMidYMid slice\" || imgRel < canvasRel && par !== \"xMidYMid slice\") {\n        heightCrop = imgH;\n        widthCrop = heightCrop * canvasRel;\n      } else {\n        widthCrop = imgW;\n        heightCrop = widthCrop / canvasRel;\n      }\n\n      ctx.drawImage((this || _global).img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, (this || _global).assetData.w, (this || _global).assetData.h);\n      (this || _global).img = canvas;\n    }\n  };\n\n  CVImageElement.prototype.renderInnerContent = function () {\n    (this || _global).canvasContext.drawImage((this || _global).img, 0, 0);\n  };\n\n  CVImageElement.prototype.destroy = function () {\n    (this || _global).img = null;\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\n\n\n  function CVCompElement(data, globalData, comp) {\n    (this || _global).completeLayers = false;\n    (this || _global).layers = data.layers;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = createSizedArray((this || _global).layers.length);\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\n\n  CVCompElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.beginPath();\n    ctx.moveTo(0, 0);\n    ctx.lineTo((this || _global).data.w, 0);\n    ctx.lineTo((this || _global).data.w, (this || _global).data.h);\n    ctx.lineTo(0, (this || _global).data.h);\n    ctx.lineTo(0, 0);\n    ctx.clip();\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).completeLayers || (this || _global).elements[i]) {\n        (this || _global).elements[i].renderFrame();\n      }\n    }\n  };\n\n  CVCompElement.prototype.destroy = function () {\n    var i;\n    var len = (this || _global).layers.length;\n\n    for (i = len - 1; i >= 0; i -= 1) {\n      if ((this || _global).elements[i]) {\n        (this || _global).elements[i].destroy();\n      }\n    }\n\n    (this || _global).layers = null;\n    (this || _global).elements = null;\n  };\n  /* global createSizedArray, ShapePropertyFactory, MaskElement */\n\n\n  function CVMaskElement(data, element) {\n    (this || _global).data = data;\n    (this || _global).element = element;\n    (this || _global).masksProperties = (this || _global).data.masksProperties || [];\n    (this || _global).viewData = createSizedArray((this || _global).masksProperties.length);\n    var i;\n    var len = (this || _global).masksProperties.length;\n    var hasMasks = false;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        hasMasks = true;\n      }\n\n      (this || _global).viewData[i] = ShapePropertyFactory.getShapeProp((this || _global).element, (this || _global).masksProperties[i], 3);\n    }\n\n    (this || _global).hasMasks = hasMasks;\n\n    if (hasMasks) {\n      (this || _global).element.addRenderableComponent(this || _global);\n    }\n  }\n\n  CVMaskElement.prototype.renderFrame = function () {\n    if (!(this || _global).hasMasks) {\n      return;\n    }\n\n    var transform = (this || _global).element.finalTransform.mat;\n    var ctx = (this || _global).element.canvasContext;\n    var i;\n    var len = (this || _global).masksProperties.length;\n    var pt;\n    var pts;\n    var data;\n    ctx.beginPath();\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).masksProperties[i].mode !== \"n\") {\n        if ((this || _global).masksProperties[i].inv) {\n          ctx.moveTo(0, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, 0);\n          ctx.lineTo((this || _global).element.globalData.compSize.w, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, (this || _global).element.globalData.compSize.h);\n          ctx.lineTo(0, 0);\n        }\n\n        data = (this || _global).viewData[i].v;\n        pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n        ctx.moveTo(pt[0], pt[1]);\n        var j;\n        var jLen = data._length;\n\n        for (j = 1; j < jLen; j += 1) {\n          pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n          ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n        }\n\n        pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n        ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n      }\n    }\n\n    (this || _global).element.globalData.renderer.save(true);\n\n    ctx.clip();\n  };\n\n  CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n  CVMaskElement.prototype.destroy = function () {\n    (this || _global).element = null;\n  };\n  /* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\n  HierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\n  DashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor */\n\n\n  function CVShapeElement(data, globalData, comp) {\n    (this || _global).shapes = [];\n    (this || _global).shapesData = data.shapes;\n    (this || _global).stylesList = [];\n    (this || _global).itemsData = [];\n    (this || _global).prevViewData = [];\n    (this || _global).shapeModifiers = [];\n    (this || _global).processedElements = [];\n    (this || _global).transformsManager = new ShapeTransformManager();\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n  CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n  CVShapeElement.prototype.transformHelper = {\n    opacity: 1,\n    _opMdf: false\n  };\n  CVShapeElement.prototype.dashResetter = [];\n\n  CVShapeElement.prototype.createContent = function () {\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n  };\n\n  CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n    var styleElem = {\n      data: data,\n      type: data.ty,\n      preTransforms: (this || _global).transformsManager.addTransformSequence(transforms),\n      transforms: [],\n      elements: [],\n      closed: data.hd === true\n    };\n    var elementData = {};\n\n    if (data.ty === \"fl\" || data.ty === \"st\") {\n      elementData.c = PropertyFactory.getProp(this || _global, data.c, 1, 255, this || _global);\n\n      if (!elementData.c.k) {\n        styleElem.co = \"rgb(\" + bmFloor(elementData.c.v[0]) + \",\" + bmFloor(elementData.c.v[1]) + \",\" + bmFloor(elementData.c.v[2]) + \")\";\n      }\n    } else if (data.ty === \"gf\" || data.ty === \"gs\") {\n      elementData.s = PropertyFactory.getProp(this || _global, data.s, 1, null, this || _global);\n      elementData.e = PropertyFactory.getProp(this || _global, data.e, 1, null, this || _global);\n      elementData.h = PropertyFactory.getProp(this || _global, data.h || {\n        k: 0\n      }, 0, 0.01, this || _global);\n      elementData.a = PropertyFactory.getProp(this || _global, data.a || {\n        k: 0\n      }, 0, degToRads, this || _global);\n      elementData.g = new GradientProperty(this || _global, data.g, this || _global);\n    }\n\n    elementData.o = PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global);\n\n    if (data.ty === \"st\" || data.ty === \"gs\") {\n      styleElem.lc = (this || _global).lcEnum[data.lc] || \"round\";\n      styleElem.lj = (this || _global).ljEnum[data.lj] || \"round\";\n\n      if (data.lj == 1) {\n        // eslint-disable-line eqeqeq\n        styleElem.ml = data.ml;\n      }\n\n      elementData.w = PropertyFactory.getProp(this || _global, data.w, 0, null, this || _global);\n\n      if (!elementData.w.k) {\n        styleElem.wi = elementData.w.v;\n      }\n\n      if (data.d) {\n        var d = new DashProperty(this || _global, data.d, \"canvas\", this || _global);\n        elementData.d = d;\n\n        if (!elementData.d.k) {\n          styleElem.da = elementData.d.dashArray;\n          styleElem.do = elementData.d.dashoffset[0];\n        }\n      }\n    } else {\n      styleElem.r = data.r === 2 ? \"evenodd\" : \"nonzero\";\n    }\n\n    (this || _global).stylesList.push(styleElem);\n\n    elementData.style = styleElem;\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createGroupElement = function () {\n    var elementData = {\n      it: [],\n      prevViewData: []\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createTransformElement = function (data) {\n    var elementData = {\n      transform: {\n        opacity: 1,\n        _opMdf: false,\n        key: (this || _global).transformsManager.getNewKey(),\n        op: PropertyFactory.getProp(this || _global, data.o, 0, 0.01, this || _global),\n        mProps: TransformPropertyFactory.getTransformProperty(this || _global, data, this || _global)\n      }\n    };\n    return elementData;\n  };\n\n  CVShapeElement.prototype.createShapeElement = function (data) {\n    var elementData = new CVShapeData(this || _global, data, (this || _global).stylesList, (this || _global).transformsManager);\n\n    (this || _global).shapes.push(elementData);\n\n    this.addShapeToModifiers(elementData);\n    return elementData;\n  };\n\n  CVShapeElement.prototype.reloadShapes = function () {\n    (this || _global)._isFirstFrame = true;\n    var i;\n    var len = (this || _global).itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).prevViewData[i] = (this || _global).itemsData[i];\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, true, []);\n    len = (this || _global).dynamicProperties.length;\n\n    for (i = 0; i < len; i += 1) {\n      (this || _global).dynamicProperties[i].getValue();\n    }\n\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n  };\n\n  CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).stylesList[i].transforms.push(transform);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.removeTransformFromStyleList = function () {\n    var i;\n    var len = (this || _global).stylesList.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (!(this || _global).stylesList[i].closed) {\n        (this || _global).stylesList[i].transforms.pop();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.closeStyles = function (styles) {\n    var i;\n    var len = styles.length;\n\n    for (i = 0; i < len; i += 1) {\n      styles[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n    var i;\n    var len = arr.length - 1;\n    var j;\n    var jLen;\n    var ownStyles = [];\n    var ownModifiers = [];\n    var processedPos;\n    var modifier;\n    var currentTransform;\n    var ownTransforms = [].concat(transforms);\n\n    for (i = len; i >= 0; i -= 1) {\n      processedPos = this.searchProcessedElement(arr[i]);\n\n      if (!processedPos) {\n        arr[i]._shouldRender = shouldRender;\n      } else {\n        itemsData[i] = prevViewData[processedPos - 1];\n      }\n\n      if (arr[i].ty === \"fl\" || arr[i].ty === \"st\" || arr[i].ty === \"gf\" || arr[i].ty === \"gs\") {\n        if (!processedPos) {\n          itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n        } else {\n          itemsData[i].style.closed = false;\n        }\n\n        ownStyles.push(itemsData[i].style);\n      } else if (arr[i].ty === \"gr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createGroupElement(arr[i]);\n        } else {\n          jLen = itemsData[i].it.length;\n\n          for (j = 0; j < jLen; j += 1) {\n            itemsData[i].prevViewData[j] = itemsData[i].it[j];\n          }\n        }\n\n        this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n      } else if (arr[i].ty === \"tr\") {\n        if (!processedPos) {\n          currentTransform = this.createTransformElement(arr[i]);\n          itemsData[i] = currentTransform;\n        }\n\n        ownTransforms.push(itemsData[i]);\n        this.addTransformToStyleList(itemsData[i]);\n      } else if (arr[i].ty === \"sh\" || arr[i].ty === \"rc\" || arr[i].ty === \"el\" || arr[i].ty === \"sr\") {\n        if (!processedPos) {\n          itemsData[i] = this.createShapeElement(arr[i]);\n        }\n      } else if (arr[i].ty === \"tm\" || arr[i].ty === \"rd\" || arr[i].ty === \"pb\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          modifier.init(this || _global, arr[i]);\n          itemsData[i] = modifier;\n\n          (this || _global).shapeModifiers.push(modifier);\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = false;\n        }\n\n        ownModifiers.push(modifier);\n      } else if (arr[i].ty === \"rp\") {\n        if (!processedPos) {\n          modifier = ShapeModifiers.getModifier(arr[i].ty);\n          itemsData[i] = modifier;\n          modifier.init(this || _global, arr, i, itemsData);\n\n          (this || _global).shapeModifiers.push(modifier);\n\n          shouldRender = false;\n        } else {\n          modifier = itemsData[i];\n          modifier.closed = true;\n        }\n\n        ownModifiers.push(modifier);\n      }\n\n      this.addProcessedElement(arr[i], i + 1);\n    }\n\n    this.removeTransformFromStyleList();\n    this.closeStyles(ownStyles);\n    len = ownModifiers.length;\n\n    for (i = 0; i < len; i += 1) {\n      ownModifiers[i].closed = true;\n    }\n  };\n\n  CVShapeElement.prototype.renderInnerContent = function () {\n    (this || _global).transformHelper.opacity = 1;\n    (this || _global).transformHelper._opMdf = false;\n    this.renderModifiers();\n\n    (this || _global).transformsManager.processSequences((this || _global)._isFirstFrame);\n\n    this.renderShape((this || _global).transformHelper, (this || _global).shapesData, (this || _global).itemsData, true);\n  };\n\n  CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n    if (parentTransform._opMdf || groupTransform.op._mdf || (this || _global)._isFirstFrame) {\n      groupTransform.opacity = parentTransform.opacity;\n      groupTransform.opacity *= groupTransform.op.v;\n      groupTransform._opMdf = true;\n    }\n  };\n\n  CVShapeElement.prototype.drawLayer = function () {\n    var i;\n    var len = (this || _global).stylesList.length;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var elems;\n    var nodes;\n    var renderer = (this || _global).globalData.renderer;\n    var ctx = (this || _global).globalData.canvasContext;\n    var type;\n    var currentStyle;\n\n    for (i = 0; i < len; i += 1) {\n      currentStyle = (this || _global).stylesList[i];\n      type = currentStyle.type; // Skipping style when\n      // Stroke width equals 0\n      // style should not be rendered (extra unused repeaters)\n      // current opacity equals 0\n      // global opacity equals 0\n\n      if (!((type === \"st\" || type === \"gs\") && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || (this || _global).globalData.currentGlobalAlpha === 0)) {\n        renderer.save();\n        elems = currentStyle.elements;\n\n        if (type === \"st\" || type === \"gs\") {\n          ctx.strokeStyle = type === \"st\" ? currentStyle.co : currentStyle.grd;\n          ctx.lineWidth = currentStyle.wi;\n          ctx.lineCap = currentStyle.lc;\n          ctx.lineJoin = currentStyle.lj;\n          ctx.miterLimit = currentStyle.ml || 0;\n        } else {\n          ctx.fillStyle = type === \"fl\" ? currentStyle.co : currentStyle.grd;\n        }\n\n        renderer.ctxOpacity(currentStyle.coOp);\n\n        if (type !== \"st\" && type !== \"gs\") {\n          ctx.beginPath();\n        }\n\n        renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n        jLen = elems.length;\n\n        for (j = 0; j < jLen; j += 1) {\n          if (type === \"st\" || type === \"gs\") {\n            ctx.beginPath();\n\n            if (currentStyle.da) {\n              ctx.setLineDash(currentStyle.da);\n              ctx.lineDashOffset = currentStyle.do;\n            }\n          }\n\n          nodes = elems[j].trNodes;\n          kLen = nodes.length;\n\n          for (k = 0; k < kLen; k += 1) {\n            if (nodes[k].t === \"m\") {\n              ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n            } else if (nodes[k].t === \"c\") {\n              ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n            } else {\n              ctx.closePath();\n            }\n          }\n\n          if (type === \"st\" || type === \"gs\") {\n            ctx.stroke();\n\n            if (currentStyle.da) {\n              ctx.setLineDash((this || _global).dashResetter);\n            }\n          }\n        }\n\n        if (type !== \"st\" && type !== \"gs\") {\n          ctx.fill(currentStyle.r);\n        }\n\n        renderer.restore();\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n    var i;\n    var len = items.length - 1;\n    var groupTransform;\n    groupTransform = parentTransform;\n\n    for (i = len; i >= 0; i -= 1) {\n      if (items[i].ty === \"tr\") {\n        groupTransform = data[i].transform;\n        this.renderShapeTransform(parentTransform, groupTransform);\n      } else if (items[i].ty === \"sh\" || items[i].ty === \"el\" || items[i].ty === \"rc\" || items[i].ty === \"sr\") {\n        this.renderPath(items[i], data[i]);\n      } else if (items[i].ty === \"fl\") {\n        this.renderFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"st\") {\n        this.renderStroke(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"gf\" || items[i].ty === \"gs\") {\n        this.renderGradientFill(items[i], data[i], groupTransform);\n      } else if (items[i].ty === \"gr\") {\n        this.renderShape(groupTransform, items[i].it, data[i].it);\n      } else if (items[i].ty === \"tm\") {//\n      }\n    }\n\n    if (isMain) {\n      this.drawLayer();\n    }\n  };\n\n  CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n    if ((this || _global)._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n      var shapeNodes = styledShape.trNodes;\n      var paths = shape.paths;\n      var i;\n      var len;\n      var j;\n      var jLen = paths._length;\n      shapeNodes.length = 0;\n      var groupTransformMat = styledShape.transforms.finalTransform;\n\n      for (j = 0; j < jLen; j += 1) {\n        var pathNodes = paths.shapes[j];\n\n        if (pathNodes && pathNodes.v) {\n          len = pathNodes._length;\n\n          for (i = 1; i < len; i += 1) {\n            if (i === 1) {\n              shapeNodes.push({\n                t: \"m\",\n                p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n              });\n            }\n\n            shapeNodes.push({\n              t: \"c\",\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n            });\n          }\n\n          if (len === 1) {\n            shapeNodes.push({\n              t: \"m\",\n              p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n            });\n          }\n\n          if (pathNodes.c && len) {\n            shapeNodes.push({\n              t: \"c\",\n              pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n            });\n            shapeNodes.push({\n              t: \"z\"\n            });\n          }\n        }\n      }\n\n      styledShape.trNodes = shapeNodes;\n    }\n  };\n\n  CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n    if (pathData.hd !== true && pathData._shouldRender) {\n      var i;\n      var len = itemData.styledShapes.length;\n\n      for (i = 0; i < len; i += 1) {\n        this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n      }\n    }\n  };\n\n  CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n\n    if (itemData.c._mdf || (this || _global)._isFirstFrame) {\n      styleElem.co = \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\";\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || (this || _global)._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n  };\n\n  CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var grd;\n\n    if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n      var ctx = (this || _global).globalData.canvasContext;\n      var pt1 = itemData.s.v;\n      var pt2 = itemData.e.v;\n\n      if (styleData.t === 1) {\n        grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n      } else {\n        var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n        var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n        var percent = itemData.h.v;\n\n        if (percent >= 1) {\n          percent = 0.99;\n        } else if (percent <= -1) {\n          percent = -0.99;\n        }\n\n        var dist = rad * percent;\n        var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n        var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n        grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n      }\n\n      var i;\n      var len = styleData.g.p;\n      var cValues = itemData.g.c;\n      var opacity = 1;\n\n      for (i = 0; i < len; i += 1) {\n        if (itemData.g._hasOpacity && itemData.g._collapsable) {\n          opacity = itemData.g.o[i * 2 + 1];\n        }\n\n        grd.addColorStop(cValues[i * 4] / 100, \"rgba(\" + cValues[i * 4 + 1] + \",\" + cValues[i * 4 + 2] + \",\" + cValues[i * 4 + 3] + \",\" + opacity + \")\");\n      }\n\n      styleElem.grd = grd;\n    }\n\n    styleElem.coOp = itemData.o.v * groupTransform.opacity;\n  };\n\n  CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n    var styleElem = itemData.style;\n    var d = itemData.d;\n\n    if (d && (d._mdf || (this || _global)._isFirstFrame)) {\n      styleElem.da = d.dashArray;\n      styleElem.do = d.dashoffset[0];\n    }\n\n    if (itemData.c._mdf || (this || _global)._isFirstFrame) {\n      styleElem.co = \"rgb(\" + bmFloor(itemData.c.v[0]) + \",\" + bmFloor(itemData.c.v[1]) + \",\" + bmFloor(itemData.c.v[2]) + \")\";\n    }\n\n    if (itemData.o._mdf || groupTransform._opMdf || (this || _global)._isFirstFrame) {\n      styleElem.coOp = itemData.o.v * groupTransform.opacity;\n    }\n\n    if (itemData.w._mdf || (this || _global)._isFirstFrame) {\n      styleElem.wi = itemData.w.v;\n    }\n  };\n\n  CVShapeElement.prototype.destroy = function () {\n    (this || _global).shapesData = null;\n    (this || _global).globalData = null;\n    (this || _global).canvasContext = null;\n    (this || _global).stylesList.length = 0;\n    (this || _global).itemsData.length = 0;\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\n  SVGShapeElement, IImageElement */\n\n\n  function CVSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n  CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n  CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n  CVSolidElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.fillStyle = (this || _global).data.sc;\n    ctx.fillRect(0, 0, (this || _global).data.sw, (this || _global).data.sh); //\n  };\n  /* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\n  RenderableElement, ITextElement, createTag, createSizedArray */\n\n\n  function CVTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).yOffset = 0;\n    (this || _global).fillColorAnim = false;\n    (this || _global).strokeColorAnim = false;\n    (this || _global).strokeWidthAnim = false;\n    (this || _global).stroke = false;\n    (this || _global).fill = false;\n    (this || _global).justifyOffset = 0;\n    (this || _global).currentRender = null;\n    (this || _global).renderType = \"canvas\";\n    (this || _global).values = {\n      fill: \"rgba(0,0,0,0)\",\n      stroke: \"rgba(0,0,0,0)\",\n      sWidth: 0,\n      fValue: \"\"\n    };\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n  CVTextElement.prototype.tHelper = createTag(\"canvas\").getContext(\"2d\");\n\n  CVTextElement.prototype.buildNewText = function () {\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var hasFill = false;\n\n    if (documentData.fc) {\n      hasFill = true;\n      (this || _global).values.fill = this.buildColor(documentData.fc);\n    } else {\n      (this || _global).values.fill = \"rgba(0,0,0,0)\";\n    }\n\n    (this || _global).fill = hasFill;\n    var hasStroke = false;\n\n    if (documentData.sc) {\n      hasStroke = true;\n      (this || _global).values.stroke = this.buildColor(documentData.sc);\n      (this || _global).values.sWidth = documentData.sw;\n    }\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    var matrixHelper = (this || _global).mHelper;\n    (this || _global).stroke = hasStroke;\n    (this || _global).values.fValue = documentData.finalSize + \"px \" + (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily;\n    len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n    var charData;\n    var shapeData;\n    var k;\n    var kLen;\n    var shapes;\n    var j;\n    var jLen;\n    var pathNodes;\n    var commands;\n    var pathArr;\n    var singleShape = (this || _global).data.singleShape;\n    var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n    var xPos = 0;\n    var yPos = 0;\n    var firstLine = true;\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n      shapeData = charData && charData.data || {};\n      matrixHelper.reset();\n\n      if (singleShape && letters[i].n) {\n        xPos = -trackingOffset;\n        yPos += documentData.yOffset;\n        yPos += firstLine ? 1 : 0;\n        firstLine = false;\n      }\n\n      shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n      jLen = shapes.length;\n      matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n      if (singleShape) {\n        this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n      }\n\n      commands = createSizedArray(jLen);\n\n      for (j = 0; j < jLen; j += 1) {\n        kLen = shapes[j].ks.k.i.length;\n        pathNodes = shapes[j].ks.k;\n        pathArr = [];\n\n        for (k = 1; k < kLen; k += 1) {\n          if (k === 1) {\n            pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n          }\n\n          pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n        }\n\n        pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n        commands[j] = pathArr;\n      }\n\n      if (singleShape) {\n        xPos += letters[i].l;\n        xPos += trackingOffset;\n      }\n\n      if ((this || _global).textSpans[cnt]) {\n        (this || _global).textSpans[cnt].elem = commands;\n      } else {\n        (this || _global).textSpans[cnt] = {\n          elem: commands\n        };\n      }\n\n      cnt += 1;\n    }\n  };\n\n  CVTextElement.prototype.renderInnerContent = function () {\n    var ctx = (this || _global).canvasContext;\n    ctx.font = (this || _global).values.fValue;\n    ctx.lineCap = \"butt\";\n    ctx.lineJoin = \"miter\";\n    ctx.miterLimit = 4;\n\n    if (!(this || _global).data.singleShape) {\n      (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n    }\n\n    var i;\n    var len;\n    var j;\n    var jLen;\n    var k;\n    var kLen;\n    var renderedLetters = (this || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var lastFill = null;\n    var lastStroke = null;\n    var lastStrokeW = null;\n    var commands;\n    var pathArr;\n\n    for (i = 0; i < len; i += 1) {\n      if (!letters[i].n) {\n        renderedLetter = renderedLetters[i];\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.save();\n\n          (this || _global).globalData.renderer.ctxTransform(renderedLetter.p);\n\n          (this || _global).globalData.renderer.ctxOpacity(renderedLetter.o);\n        }\n\n        if ((this || _global).fill) {\n          if (renderedLetter && renderedLetter.fc) {\n            if (lastFill !== renderedLetter.fc) {\n              lastFill = renderedLetter.fc;\n              ctx.fillStyle = renderedLetter.fc;\n            }\n          } else if (lastFill !== (this || _global).values.fill) {\n            lastFill = (this || _global).values.fill;\n            ctx.fillStyle = (this || _global).values.fill;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          (this || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n\n        }\n\n        if ((this || _global).stroke) {\n          if (renderedLetter && renderedLetter.sw) {\n            if (lastStrokeW !== renderedLetter.sw) {\n              lastStrokeW = renderedLetter.sw;\n              ctx.lineWidth = renderedLetter.sw;\n            }\n          } else if (lastStrokeW !== (this || _global).values.sWidth) {\n            lastStrokeW = (this || _global).values.sWidth;\n            ctx.lineWidth = (this || _global).values.sWidth;\n          }\n\n          if (renderedLetter && renderedLetter.sc) {\n            if (lastStroke !== renderedLetter.sc) {\n              lastStroke = renderedLetter.sc;\n              ctx.strokeStyle = renderedLetter.sc;\n            }\n          } else if (lastStroke !== (this || _global).values.stroke) {\n            lastStroke = (this || _global).values.stroke;\n            ctx.strokeStyle = (this || _global).values.stroke;\n          }\n\n          commands = (this || _global).textSpans[i].elem;\n          jLen = commands.length;\n\n          (this || _global).globalData.canvasContext.beginPath();\n\n          for (j = 0; j < jLen; j += 1) {\n            pathArr = commands[j];\n            kLen = pathArr.length;\n\n            (this || _global).globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n            for (k = 2; k < kLen; k += 6) {\n              (this || _global).globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n            }\n          }\n\n          (this || _global).globalData.canvasContext.closePath();\n\n          (this || _global).globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n\n        }\n\n        if (renderedLetter) {\n          (this || _global).globalData.renderer.restore();\n        }\n      }\n    }\n  };\n\n  function CVEffects() {}\n\n  CVEffects.prototype.renderFrame = function () {};\n  /* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\n\n\n  function HBaseElement() {}\n\n  HBaseElement.prototype = {\n    checkBlendMode: function () {},\n    initRendererElement: function () {\n      (this || _global).baseElement = createTag((this || _global).data.tg || \"div\");\n\n      if ((this || _global).data.hasMask) {\n        (this || _global).svgElement = createNS(\"svg\");\n        (this || _global).layerElement = createNS(\"g\");\n        (this || _global).maskedElement = (this || _global).layerElement;\n\n        (this || _global).svgElement.appendChild((this || _global).layerElement);\n\n        (this || _global).baseElement.appendChild((this || _global).svgElement);\n      } else {\n        (this || _global).layerElement = (this || _global).baseElement;\n      }\n\n      styleDiv((this || _global).baseElement);\n    },\n    createContainerElements: function () {\n      (this || _global).renderableEffectsManager = new CVEffects(this || _global);\n      (this || _global).transformedElement = (this || _global).baseElement;\n      (this || _global).maskedElement = (this || _global).layerElement;\n\n      if ((this || _global).data.ln) {\n        (this || _global).layerElement.setAttribute(\"id\", (this || _global).data.ln);\n      }\n\n      if ((this || _global).data.cl) {\n        (this || _global).layerElement.setAttribute(\"class\", (this || _global).data.cl);\n      }\n\n      if ((this || _global).data.bm !== 0) {\n        this.setBlendMode();\n      }\n    },\n    renderElement: function () {\n      var transformedElementStyle = (this || _global).transformedElement ? (this || _global).transformedElement.style : {};\n\n      if ((this || _global).finalTransform._matMdf) {\n        var matrixValue = (this || _global).finalTransform.mat.toCSS();\n\n        transformedElementStyle.transform = matrixValue;\n        transformedElementStyle.webkitTransform = matrixValue;\n      }\n\n      if ((this || _global).finalTransform._opMdf) {\n        transformedElementStyle.opacity = (this || _global).finalTransform.mProp.o.v;\n      }\n    },\n    renderFrame: function () {\n      // If it is exported as hidden (data.hd === true) no need to render\n      // If it is not visible no need to render\n      if ((this || _global).data.hd || (this || _global).hidden) {\n        return;\n      }\n\n      this.renderTransform();\n      this.renderRenderable();\n      this.renderElement();\n      this.renderInnerContent();\n\n      if ((this || _global)._isFirstFrame) {\n        (this || _global)._isFirstFrame = false;\n      }\n    },\n    destroy: function () {\n      (this || _global).layerElement = null;\n      (this || _global).transformedElement = null;\n\n      if ((this || _global).matteElement) {\n        (this || _global).matteElement = null;\n      }\n\n      if ((this || _global).maskManager) {\n        (this || _global).maskManager.destroy();\n\n        (this || _global).maskManager = null;\n      }\n    },\n    createRenderableComponents: function () {\n      (this || _global).maskManager = new MaskElement((this || _global).data, this || _global, (this || _global).globalData);\n    },\n    addEffects: function () {},\n    setMatte: function () {}\n  };\n  HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n  HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n  HBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, createNS, createTag */\n\n  function HSolidElement(data, globalData, comp) {\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n  HSolidElement.prototype.createContent = function () {\n    var rect;\n\n    if ((this || _global).data.hasMask) {\n      rect = createNS(\"rect\");\n      rect.setAttribute(\"width\", (this || _global).data.sw);\n      rect.setAttribute(\"height\", (this || _global).data.sh);\n      rect.setAttribute(\"fill\", (this || _global).data.sc);\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.sw);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.sh);\n    } else {\n      rect = createTag(\"div\");\n      rect.style.width = (this || _global).data.sw + \"px\";\n      rect.style.height = (this || _global).data.sh + \"px\";\n      rect.style.backgroundColor = (this || _global).data.sc;\n    }\n\n    (this || _global).layerElement.appendChild(rect);\n  };\n  /* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\n\n\n  function HCompElement(data, globalData, comp) {\n    (this || _global).layers = data.layers;\n    (this || _global).supports3d = !data.hasMask;\n    (this || _global).completeLayers = false;\n    (this || _global).pendingElements = [];\n    (this || _global).elements = (this || _global).layers ? createSizedArray((this || _global).layers.length) : [];\n    this.initElement(data, globalData, comp);\n    (this || _global).tm = data.tm ? PropertyFactory.getProp(this || _global, data.tm, 0, globalData.frameRate, this || _global) : {\n      _placeholder: true\n    };\n  }\n\n  extendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);\n  HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n  HCompElement.prototype.createContainerElements = function () {\n    this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).data.w);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).data.h);\n\n      (this || _global).transformedElement = (this || _global).baseElement;\n    } else {\n      (this || _global).transformedElement = (this || _global).layerElement;\n    }\n  };\n\n  HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n    var j = 0;\n    var nextElement;\n\n    while (j < pos) {\n      if ((this || _global).elements[j] && (this || _global).elements[j].getBaseElement) {\n        nextElement = (this || _global).elements[j].getBaseElement();\n      }\n\n      j += 1;\n    }\n\n    if (nextElement) {\n      (this || _global).layerElement.insertBefore(elem, nextElement);\n    } else {\n      (this || _global).layerElement.appendChild(elem);\n    }\n  };\n  /* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\n  HierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\n\n\n  function HShapeElement(data, globalData, comp) {\n    // List of drawable elements\n    (this || _global).shapes = []; // Full shape data\n\n    (this || _global).shapesData = data.shapes; // List of styles that will be applied to shapes\n\n    (this || _global).stylesList = []; // List of modifiers that will be applied to shapes\n\n    (this || _global).shapeModifiers = []; // List of items in shape tree\n\n    (this || _global).itemsData = []; // List of items in previous shape tree\n\n    (this || _global).processedElements = []; // List of animated components\n\n    (this || _global).animatedContents = [];\n    (this || _global).shapesContainer = createNS(\"g\");\n    this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n    // List of elements that have been created\n\n    (this || _global).prevViewData = [];\n    (this || _global).currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n  }\n\n  extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n  HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n  HShapeElement.prototype.createContent = function () {\n    var cont;\n    (this || _global).baseElement.style.fontSize = 0;\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).layerElement.appendChild((this || _global).shapesContainer);\n\n      cont = (this || _global).svgElement;\n    } else {\n      cont = createNS(\"svg\");\n      var size = (this || _global).comp.data ? (this || _global).comp.data : (this || _global).globalData.compSize;\n      cont.setAttribute(\"width\", size.w);\n      cont.setAttribute(\"height\", size.h);\n      cont.appendChild((this || _global).shapesContainer);\n\n      (this || _global).layerElement.appendChild(cont);\n    }\n\n    this.searchShapes((this || _global).shapesData, (this || _global).itemsData, (this || _global).prevViewData, (this || _global).shapesContainer, 0, [], true);\n    this.filterUniqueShapes();\n    (this || _global).shapeCont = cont;\n  };\n\n  HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n    var i;\n    var len = transformers.length;\n\n    for (i = 0; i < len; i += 1) {\n      point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n    }\n\n    return point;\n  };\n\n  HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n    var shape = item.sh.v;\n    var transformers = item.transformers;\n    var i;\n    var len = shape._length;\n    var vPoint;\n    var oPoint;\n    var nextIPoint;\n    var nextVPoint;\n\n    if (len <= 1) {\n      return;\n    }\n\n    for (i = 0; i < len - 1; i += 1) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n\n    if (shape.c) {\n      vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n      oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n      nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n      nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n      this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n    }\n  };\n\n  HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n    this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n    var bounds = (this || _global).shapeBoundingBox;\n    boundingBox.x = bmMin(bounds.left, boundingBox.x);\n    boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n    boundingBox.y = bmMin(bounds.top, boundingBox.y);\n    boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n  };\n\n  HShapeElement.prototype.shapeBoundingBox = {\n    left: 0,\n    right: 0,\n    top: 0,\n    bottom: 0\n  };\n  HShapeElement.prototype.tempBoundingBox = {\n    x: 0,\n    xMax: 0,\n    y: 0,\n    yMax: 0,\n    width: 0,\n    height: 0\n  };\n\n  HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n    var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n    for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n      // eslint-disable-line no-plusplus\n      b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n      a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n      c = 3 * p1[i] - 3 * p0[i];\n      b |= 0; // eslint-disable-line no-bitwise\n\n      a |= 0; // eslint-disable-line no-bitwise\n\n      c |= 0; // eslint-disable-line no-bitwise\n\n      if (a === 0 && b === 0) {//\n      } else if (a === 0) {\n        t = -c / b;\n\n        if (t > 0 && t < 1) {\n          bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n        }\n      } else {\n        b2ac = b * b - 4 * c * a;\n\n        if (b2ac >= 0) {\n          t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n          if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n          t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n          if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n        }\n      }\n    }\n\n    (this || _global).shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n    (this || _global).shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n    (this || _global).shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n    (this || _global).shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n  };\n\n  HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n    return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n  };\n\n  HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n    var i;\n    var len = itemsData.length;\n\n    for (i = 0; i < len; i += 1) {\n      if (itemsData[i] && itemsData[i].sh) {\n        this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n      } else if (itemsData[i] && itemsData[i].it) {\n        this.calculateBoundingBox(itemsData[i].it, boundingBox);\n      }\n    }\n  };\n\n  HShapeElement.prototype.currentBoxContains = function (box) {\n    return (this || _global).currentBBox.x <= box.x && (this || _global).currentBBox.y <= box.y && (this || _global).currentBBox.width + (this || _global).currentBBox.x >= box.x + box.width && (this || _global).currentBBox.height + (this || _global).currentBBox.y >= box.y + box.height;\n  };\n\n  HShapeElement.prototype.renderInnerContent = function () {\n    this._renderShapeFrame();\n\n    if (!(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var tempBoundingBox = (this || _global).tempBoundingBox;\n      var max = 999999;\n      tempBoundingBox.x = max;\n      tempBoundingBox.xMax = -max;\n      tempBoundingBox.y = max;\n      tempBoundingBox.yMax = -max;\n      this.calculateBoundingBox((this || _global).itemsData, tempBoundingBox);\n      tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n      tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n      if (this.currentBoxContains(tempBoundingBox)) {\n        return;\n      }\n\n      var changed = false;\n\n      if ((this || _global).currentBBox.w !== tempBoundingBox.width) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n\n        (this || _global).shapeCont.setAttribute(\"width\", tempBoundingBox.width);\n\n        changed = true;\n      }\n\n      if ((this || _global).currentBBox.h !== tempBoundingBox.height) {\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n\n        (this || _global).shapeCont.setAttribute(\"height\", tempBoundingBox.height);\n\n        changed = true;\n      }\n\n      if (changed || (this || _global).currentBBox.x !== tempBoundingBox.x || (this || _global).currentBBox.y !== tempBoundingBox.y) {\n        (this || _global).currentBBox.w = tempBoundingBox.width;\n        (this || _global).currentBBox.h = tempBoundingBox.height;\n        (this || _global).currentBBox.x = tempBoundingBox.x;\n        (this || _global).currentBBox.y = tempBoundingBox.y;\n\n        (this || _global).shapeCont.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        var shapeStyle = (this || _global).shapeCont.style;\n        var shapeTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        shapeStyle.transform = shapeTransform;\n        shapeStyle.webkitTransform = shapeTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\n  RenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS */\n\n\n  function HTextElement(data, globalData, comp) {\n    (this || _global).textSpans = [];\n    (this || _global).textPaths = [];\n    (this || _global).currentBBox = {\n      x: 999999,\n      y: -999999,\n      h: 0,\n      w: 0\n    };\n    (this || _global).renderType = \"svg\";\n    (this || _global).isMasked = false;\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n  HTextElement.prototype.createContent = function () {\n    (this || _global).isMasked = this.checkMasks();\n\n    if ((this || _global).isMasked) {\n      (this || _global).renderType = \"svg\";\n      (this || _global).compW = (this || _global).comp.data.w;\n      (this || _global).compH = (this || _global).comp.data.h;\n\n      (this || _global).svgElement.setAttribute(\"width\", (this || _global).compW);\n\n      (this || _global).svgElement.setAttribute(\"height\", (this || _global).compH);\n\n      var g = createNS(\"g\");\n\n      (this || _global).maskedElement.appendChild(g);\n\n      (this || _global).innerElem = g;\n    } else {\n      (this || _global).renderType = \"html\";\n      (this || _global).innerElem = (this || _global).layerElement;\n    }\n\n    this.checkParenting();\n  };\n\n  HTextElement.prototype.buildNewText = function () {\n    var documentData = (this || _global).textProperty.currentData;\n    (this || _global).renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n    var innerElemStyle = (this || _global).innerElem.style;\n    var textColor = documentData.fc ? this.buildColor(documentData.fc) : \"rgba(0,0,0,0)\";\n    innerElemStyle.fill = textColor;\n    innerElemStyle.color = textColor;\n\n    if (documentData.sc) {\n      innerElemStyle.stroke = this.buildColor(documentData.sc);\n      innerElemStyle.strokeWidth = documentData.sw + \"px\";\n    }\n\n    var fontData = (this || _global).globalData.fontManager.getFontByName(documentData.f);\n\n    if (!(this || _global).globalData.fontManager.chars) {\n      innerElemStyle.fontSize = documentData.finalSize + \"px\";\n      innerElemStyle.lineHeight = documentData.finalSize + \"px\";\n\n      if (fontData.fClass) {\n        (this || _global).innerElem.className = fontData.fClass;\n      } else {\n        innerElemStyle.fontFamily = fontData.fFamily;\n        var fWeight = documentData.fWeight;\n        var fStyle = documentData.fStyle;\n        innerElemStyle.fontStyle = fStyle;\n        innerElemStyle.fontWeight = fWeight;\n      }\n    }\n\n    var i;\n    var len;\n    var letters = documentData.l;\n    len = letters.length;\n    var tSpan;\n    var tParent;\n    var tCont;\n    var matrixHelper = (this || _global).mHelper;\n    var shapes;\n    var shapeStr = \"\";\n    var cnt = 0;\n\n    for (i = 0; i < len; i += 1) {\n      if ((this || _global).globalData.fontManager.chars) {\n        if (!(this || _global).textPaths[cnt]) {\n          tSpan = createNS(\"path\");\n          tSpan.setAttribute(\"stroke-linecap\", \"butt\");\n          tSpan.setAttribute(\"stroke-linejoin\", \"round\");\n          tSpan.setAttribute(\"stroke-miterlimit\", \"4\");\n        } else {\n          tSpan = (this || _global).textPaths[cnt];\n        }\n\n        if (!(this || _global).isMasked) {\n          if ((this || _global).textSpans[cnt]) {\n            tParent = (this || _global).textSpans[cnt];\n            tCont = tParent.children[0];\n          } else {\n            tParent = createTag(\"div\");\n            tParent.style.lineHeight = 0;\n            tCont = createNS(\"svg\");\n            tCont.appendChild(tSpan);\n            styleDiv(tParent);\n          }\n        }\n      } else if (!(this || _global).isMasked) {\n        if ((this || _global).textSpans[cnt]) {\n          tParent = (this || _global).textSpans[cnt];\n          tSpan = (this || _global).textPaths[cnt];\n        } else {\n          tParent = createTag(\"span\");\n          styleDiv(tParent);\n          tSpan = createTag(\"span\");\n          styleDiv(tSpan);\n          tParent.appendChild(tSpan);\n        }\n      } else {\n        tSpan = (this || _global).textPaths[cnt] ? (this || _global).textPaths[cnt] : createNS(\"text\");\n      } // tSpan.setAttribute('visibility', 'hidden');\n\n\n      if ((this || _global).globalData.fontManager.chars) {\n        var charData = (this || _global).globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, (this || _global).globalData.fontManager.getFontByName(documentData.f).fFamily);\n\n        var shapeData;\n\n        if (charData) {\n          shapeData = charData.data;\n        } else {\n          shapeData = null;\n        }\n\n        matrixHelper.reset();\n\n        if (shapeData && shapeData.shapes) {\n          shapes = shapeData.shapes[0].it;\n          matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n          shapeStr = this.createPathShape(matrixHelper, shapes);\n          tSpan.setAttribute(\"d\", shapeStr);\n        }\n\n        if (!(this || _global).isMasked) {\n          (this || _global).innerElem.appendChild(tParent);\n\n          if (shapeData && shapeData.shapes) {\n            // document.body.appendChild is needed to get exact measure of shape\n            document.body.appendChild(tCont);\n            var boundingBox = tCont.getBBox();\n            tCont.setAttribute(\"width\", boundingBox.width + 2);\n            tCont.setAttribute(\"height\", boundingBox.height + 2);\n            tCont.setAttribute(\"viewBox\", boundingBox.x - 1 + \" \" + (boundingBox.y - 1) + \" \" + (boundingBox.width + 2) + \" \" + (boundingBox.height + 2));\n            var tContStyle = tCont.style;\n            var tContTranslation = \"translate(\" + (boundingBox.x - 1) + \"px,\" + (boundingBox.y - 1) + \"px)\";\n            tContStyle.transform = tContTranslation;\n            tContStyle.webkitTransform = tContTranslation;\n            letters[i].yOffset = boundingBox.y - 1;\n          } else {\n            tCont.setAttribute(\"width\", 1);\n            tCont.setAttribute(\"height\", 1);\n          }\n\n          tParent.appendChild(tCont);\n        } else {\n          (this || _global).innerElem.appendChild(tSpan);\n        }\n      } else {\n        tSpan.textContent = letters[i].val;\n        tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\", \"preserve\");\n\n        if (!(this || _global).isMasked) {\n          (this || _global).innerElem.appendChild(tParent); //\n\n\n          var tStyle = tSpan.style;\n          var tSpanTranslation = \"translate3d(0,\" + -documentData.finalSize / 1.2 + \"px,0)\";\n          tStyle.transform = tSpanTranslation;\n          tStyle.webkitTransform = tSpanTranslation;\n        } else {\n          (this || _global).innerElem.appendChild(tSpan);\n        }\n      } //\n\n\n      if (!(this || _global).isMasked) {\n        (this || _global).textSpans[cnt] = tParent;\n      } else {\n        (this || _global).textSpans[cnt] = tSpan;\n      }\n\n      (this || _global).textSpans[cnt].style.display = \"block\";\n      (this || _global).textPaths[cnt] = tSpan;\n      cnt += 1;\n    }\n\n    while (cnt < (this || _global).textSpans.length) {\n      (this || _global).textSpans[cnt].style.display = \"none\";\n      cnt += 1;\n    }\n  };\n\n  HTextElement.prototype.renderInnerContent = function () {\n    var svgStyle;\n\n    if ((this || _global).data.singleShape) {\n      if (!(this || _global)._isFirstFrame && !(this || _global).lettersChangedFlag) {\n        return;\n      }\n\n      if ((this || _global).isMasked && (this || _global).finalTransform._matMdf) {\n        // Todo Benchmark if using this is better than getBBox\n        (this || _global).svgElement.setAttribute(\"viewBox\", -(this || _global).finalTransform.mProp.p.v[0] + \" \" + -(this || _global).finalTransform.mProp.p.v[1] + \" \" + (this || _global).compW + \" \" + (this || _global).compH);\n\n        svgStyle = (this || _global).svgElement.style;\n        var translation = \"translate(\" + -(this || _global).finalTransform.mProp.p.v[0] + \"px,\" + -(this || _global).finalTransform.mProp.p.v[1] + \"px)\";\n        svgStyle.transform = translation;\n        svgStyle.webkitTransform = translation;\n      }\n    }\n\n    (this || _global).textAnimator.getMeasures((this || _global).textProperty.currentData, (this || _global).lettersChangedFlag);\n\n    if (!(this || _global).lettersChangedFlag && !(this || _global).textAnimator.lettersChangedFlag) {\n      return;\n    }\n\n    var i;\n    var len;\n    var count = 0;\n    var renderedLetters = (this || _global).textAnimator.renderedLetters;\n    var letters = (this || _global).textProperty.currentData.l;\n    len = letters.length;\n    var renderedLetter;\n    var textSpan;\n    var textPath;\n\n    for (i = 0; i < len; i += 1) {\n      if (letters[i].n) {\n        count += 1;\n      } else {\n        textSpan = (this || _global).textSpans[i];\n        textPath = (this || _global).textPaths[i];\n        renderedLetter = renderedLetters[count];\n        count += 1;\n\n        if (renderedLetter._mdf.m) {\n          if (!(this || _global).isMasked) {\n            textSpan.style.webkitTransform = renderedLetter.m;\n            textSpan.style.transform = renderedLetter.m;\n          } else {\n            textSpan.setAttribute(\"transform\", renderedLetter.m);\n          }\n        } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n        textSpan.style.opacity = renderedLetter.o;\n\n        if (renderedLetter.sw && renderedLetter._mdf.sw) {\n          textPath.setAttribute(\"stroke-width\", renderedLetter.sw);\n        }\n\n        if (renderedLetter.sc && renderedLetter._mdf.sc) {\n          textPath.setAttribute(\"stroke\", renderedLetter.sc);\n        }\n\n        if (renderedLetter.fc && renderedLetter._mdf.fc) {\n          textPath.setAttribute(\"fill\", renderedLetter.fc);\n          textPath.style.color = renderedLetter.fc;\n        }\n      }\n    }\n\n    if ((this || _global).innerElem.getBBox && !(this || _global).hidden && ((this || _global)._isFirstFrame || (this || _global)._mdf)) {\n      var boundingBox = (this || _global).innerElem.getBBox();\n\n      if ((this || _global).currentBBox.w !== boundingBox.width) {\n        (this || _global).currentBBox.w = boundingBox.width;\n\n        (this || _global).svgElement.setAttribute(\"width\", boundingBox.width);\n      }\n\n      if ((this || _global).currentBBox.h !== boundingBox.height) {\n        (this || _global).currentBBox.h = boundingBox.height;\n\n        (this || _global).svgElement.setAttribute(\"height\", boundingBox.height);\n      }\n\n      var margin = 1;\n\n      if ((this || _global).currentBBox.w !== boundingBox.width + margin * 2 || (this || _global).currentBBox.h !== boundingBox.height + margin * 2 || (this || _global).currentBBox.x !== boundingBox.x - margin || (this || _global).currentBBox.y !== boundingBox.y - margin) {\n        (this || _global).currentBBox.w = boundingBox.width + margin * 2;\n        (this || _global).currentBBox.h = boundingBox.height + margin * 2;\n        (this || _global).currentBBox.x = boundingBox.x - margin;\n        (this || _global).currentBBox.y = boundingBox.y - margin;\n\n        (this || _global).svgElement.setAttribute(\"viewBox\", (this || _global).currentBBox.x + \" \" + (this || _global).currentBBox.y + \" \" + (this || _global).currentBBox.w + \" \" + (this || _global).currentBBox.h);\n\n        svgStyle = (this || _global).svgElement.style;\n        var svgTransform = \"translate(\" + (this || _global).currentBBox.x + \"px,\" + (this || _global).currentBBox.y + \"px)\";\n        svgStyle.transform = svgTransform;\n        svgStyle.webkitTransform = svgTransform;\n      }\n    }\n  };\n  /* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\n  FrameElement, RenderableElement, createNS */\n\n\n  function HImageElement(data, globalData, comp) {\n    (this || _global).assetData = globalData.getAssetData(data.refId);\n    this.initElement(data, globalData, comp);\n  }\n\n  extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n  HImageElement.prototype.createContent = function () {\n    var assetPath = (this || _global).globalData.getAssetsPath((this || _global).assetData);\n\n    var img = new Image();\n\n    if ((this || _global).data.hasMask) {\n      (this || _global).imageElem = createNS(\"image\");\n\n      (this || _global).imageElem.setAttribute(\"width\", (this || _global).assetData.w + \"px\");\n\n      (this || _global).imageElem.setAttribute(\"height\", (this || _global).assetData.h + \"px\");\n\n      (this || _global).imageElem.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", assetPath);\n\n      (this || _global).layerElement.appendChild((this || _global).imageElem);\n\n      (this || _global).baseElement.setAttribute(\"width\", (this || _global).assetData.w);\n\n      (this || _global).baseElement.setAttribute(\"height\", (this || _global).assetData.h);\n    } else {\n      (this || _global).layerElement.appendChild(img);\n    }\n\n    img.crossOrigin = \"anonymous\";\n    img.src = assetPath;\n\n    if ((this || _global).data.ln) {\n      (this || _global).baseElement.setAttribute(\"id\", (this || _global).data.ln);\n    }\n  };\n  /* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\n\n\n  function HCameraElement(data, globalData, comp) {\n    this.initFrame();\n    this.initBaseData(data, globalData, comp);\n    this.initHierarchy();\n    var getProp = PropertyFactory.getProp;\n    (this || _global).pe = getProp(this || _global, data.pe, 0, 0, this || _global);\n\n    if (data.ks.p.s) {\n      (this || _global).px = getProp(this || _global, data.ks.p.x, 1, 0, this || _global);\n      (this || _global).py = getProp(this || _global, data.ks.p.y, 1, 0, this || _global);\n      (this || _global).pz = getProp(this || _global, data.ks.p.z, 1, 0, this || _global);\n    } else {\n      (this || _global).p = getProp(this || _global, data.ks.p, 1, 0, this || _global);\n    }\n\n    if (data.ks.a) {\n      (this || _global).a = getProp(this || _global, data.ks.a, 1, 0, this || _global);\n    }\n\n    if (data.ks.or.k.length && data.ks.or.k[0].to) {\n      var i;\n      var len = data.ks.or.k.length;\n\n      for (i = 0; i < len; i += 1) {\n        data.ks.or.k[i].to = null;\n        data.ks.or.k[i].ti = null;\n      }\n    }\n\n    (this || _global).or = getProp(this || _global, data.ks.or, 1, degToRads, this || _global);\n    (this || _global).or.sh = true;\n    (this || _global).rx = getProp(this || _global, data.ks.rx, 0, degToRads, this || _global);\n    (this || _global).ry = getProp(this || _global, data.ks.ry, 0, degToRads, this || _global);\n    (this || _global).rz = getProp(this || _global, data.ks.rz, 0, degToRads, this || _global);\n    (this || _global).mat = new Matrix();\n    (this || _global)._prevMat = new Matrix();\n    (this || _global)._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n    (this || _global).finalTransform = {\n      mProp: this || _global\n    };\n  }\n\n  extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n  HCameraElement.prototype.setup = function () {\n    var i;\n    var len = (this || _global).comp.threeDElements.length;\n    var comp;\n    var perspectiveStyle;\n    var containerStyle;\n\n    for (i = 0; i < len; i += 1) {\n      // [perspectiveElem,container]\n      comp = (this || _global).comp.threeDElements[i];\n\n      if (comp.type === \"3d\") {\n        perspectiveStyle = comp.perspectiveElem.style;\n        containerStyle = comp.container.style;\n        var perspective = (this || _global).pe.v + \"px\";\n        var origin = \"0px 0px 0px\";\n        var matrix = \"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)\";\n        perspectiveStyle.perspective = perspective;\n        perspectiveStyle.webkitPerspective = perspective;\n        containerStyle.transformOrigin = origin;\n        containerStyle.mozTransformOrigin = origin;\n        containerStyle.webkitTransformOrigin = origin;\n        perspectiveStyle.transform = matrix;\n        perspectiveStyle.webkitTransform = matrix;\n      }\n    }\n  };\n\n  HCameraElement.prototype.createElements = function () {};\n\n  HCameraElement.prototype.hide = function () {};\n\n  HCameraElement.prototype.renderFrame = function () {\n    var _mdf = (this || _global)._isFirstFrame;\n    var i;\n    var len;\n\n    if ((this || _global).hierarchy) {\n      len = (this || _global).hierarchy.length;\n\n      for (i = 0; i < len; i += 1) {\n        _mdf = (this || _global).hierarchy[i].finalTransform.mProp._mdf || _mdf;\n      }\n    }\n\n    if (_mdf || (this || _global).pe._mdf || (this || _global).p && (this || _global).p._mdf || (this || _global).px && ((this || _global).px._mdf || (this || _global).py._mdf || (this || _global).pz._mdf) || (this || _global).rx._mdf || (this || _global).ry._mdf || (this || _global).rz._mdf || (this || _global).or._mdf || (this || _global).a && (this || _global).a._mdf) {\n      (this || _global).mat.reset();\n\n      if ((this || _global).hierarchy) {\n        len = (this || _global).hierarchy.length - 1;\n\n        for (i = len; i >= 0; i -= 1) {\n          var mTransf = (this || _global).hierarchy[i].finalTransform.mProp;\n\n          (this || _global).mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n\n          (this || _global).mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n\n          (this || _global).mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n\n          (this || _global).mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n        }\n      }\n\n      if ((this || _global).p) {\n        (this || _global).mat.translate(-(this || _global).p.v[0], -(this || _global).p.v[1], (this || _global).p.v[2]);\n      } else {\n        (this || _global).mat.translate(-(this || _global).px.v, -(this || _global).py.v, (this || _global).pz.v);\n      }\n\n      if ((this || _global).a) {\n        var diffVector;\n\n        if ((this || _global).p) {\n          diffVector = [(this || _global).p.v[0] - (this || _global).a.v[0], (this || _global).p.v[1] - (this || _global).a.v[1], (this || _global).p.v[2] - (this || _global).a.v[2]];\n        } else {\n          diffVector = [(this || _global).px.v - (this || _global).a.v[0], (this || _global).py.v - (this || _global).a.v[1], (this || _global).pz.v - (this || _global).a.v[2]];\n        }\n\n        var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n        var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n        var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n        var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n        var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n\n        (this || _global).mat.rotateY(mRotationY).rotateX(-mRotationX);\n      }\n\n      (this || _global).mat.rotateX(-(this || _global).rx.v).rotateY(-(this || _global).ry.v).rotateZ((this || _global).rz.v);\n\n      (this || _global).mat.rotateX(-(this || _global).or.v[0]).rotateY(-(this || _global).or.v[1]).rotateZ((this || _global).or.v[2]);\n\n      (this || _global).mat.translate((this || _global).globalData.compSize.w / 2, (this || _global).globalData.compSize.h / 2, 0);\n\n      (this || _global).mat.translate(0, 0, (this || _global).pe.v);\n\n      var hasMatrixChanged = !(this || _global)._prevMat.equals((this || _global).mat);\n\n      if ((hasMatrixChanged || (this || _global).pe._mdf) && (this || _global).comp.threeDElements) {\n        len = (this || _global).comp.threeDElements.length;\n        var comp;\n        var perspectiveStyle;\n        var containerStyle;\n\n        for (i = 0; i < len; i += 1) {\n          comp = (this || _global).comp.threeDElements[i];\n\n          if (comp.type === \"3d\") {\n            if (hasMatrixChanged) {\n              var matValue = (this || _global).mat.toCSS();\n\n              containerStyle = comp.container.style;\n              containerStyle.transform = matValue;\n              containerStyle.webkitTransform = matValue;\n            }\n\n            if ((this || _global).pe._mdf) {\n              perspectiveStyle = comp.perspectiveElem.style;\n              perspectiveStyle.perspective = (this || _global).pe.v + \"px\";\n              perspectiveStyle.webkitPerspective = (this || _global).pe.v + \"px\";\n            }\n          }\n        }\n\n        (this || _global).mat.clone((this || _global)._prevMat);\n      }\n    }\n\n    (this || _global)._isFirstFrame = false;\n  };\n\n  HCameraElement.prototype.prepareFrame = function (num) {\n    this.prepareProperties(num, true);\n  };\n\n  HCameraElement.prototype.destroy = function () {};\n\n  HCameraElement.prototype.getBaseElement = function () {\n    return null;\n  };\n\n  function HEffects() {}\n\n  HEffects.prototype.renderFrame = function () {};\n  /* global createTag, AnimationItem */\n\n  /* exported animationManager */\n\n\n  var animationManager = function () {\n    var moduleOb = {};\n    var registeredAnimations = [];\n    var initTime = 0;\n    var len = 0;\n    var playingAnimationsNum = 0;\n    var _stopped = true;\n    var _isFrozen = false;\n\n    function removeElement(ev) {\n      var i = 0;\n      var animItem = ev.target;\n\n      while (i < len) {\n        if (registeredAnimations[i].animation === animItem) {\n          registeredAnimations.splice(i, 1);\n          i -= 1;\n          len -= 1;\n\n          if (!animItem.isPaused) {\n            subtractPlayingCount();\n          }\n        }\n\n        i += 1;\n      }\n    }\n\n    function registerAnimation(element, animationData) {\n      if (!element) {\n        return null;\n      }\n\n      var i = 0;\n\n      while (i < len) {\n        if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n          return registeredAnimations[i].animation;\n        }\n\n        i += 1;\n      }\n\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, element);\n      animItem.setData(element, animationData);\n      return animItem;\n    }\n\n    function getRegisteredAnimations() {\n      var i;\n      var lenAnims = registeredAnimations.length;\n      var animations = [];\n\n      for (i = 0; i < lenAnims; i += 1) {\n        animations.push(registeredAnimations[i].animation);\n      }\n\n      return animations;\n    }\n\n    function addPlayingCount() {\n      playingAnimationsNum += 1;\n      activate();\n    }\n\n    function subtractPlayingCount() {\n      playingAnimationsNum -= 1;\n    }\n\n    function setupAnimation(animItem, element) {\n      animItem.addEventListener(\"destroy\", removeElement);\n      animItem.addEventListener(\"_active\", addPlayingCount);\n      animItem.addEventListener(\"_idle\", subtractPlayingCount);\n      registeredAnimations.push({\n        elem: element,\n        animation: animItem\n      });\n      len += 1;\n    }\n\n    function loadAnimation(params) {\n      var animItem = new AnimationItem();\n      setupAnimation(animItem, null);\n      animItem.setParams(params);\n      return animItem;\n    }\n\n    function setSpeed(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setSpeed(val, animation);\n      }\n    }\n\n    function setDirection(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setDirection(val, animation);\n      }\n    }\n\n    function play(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.play(animation);\n      }\n    }\n\n    function resume(nowTime) {\n      var elapsedTime = nowTime - initTime;\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.advanceTime(elapsedTime);\n      }\n\n      initTime = nowTime;\n\n      if (playingAnimationsNum && !_isFrozen) {\n        window.requestAnimationFrame(resume);\n      } else {\n        _stopped = true;\n      }\n    }\n\n    function first(nowTime) {\n      initTime = nowTime;\n      window.requestAnimationFrame(resume);\n    }\n\n    function pause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.pause(animation);\n      }\n    }\n\n    function goToAndStop(value, isFrame, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n      }\n    }\n\n    function stop(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.stop(animation);\n      }\n    }\n\n    function togglePause(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.togglePause(animation);\n      }\n    }\n\n    function destroy(animation) {\n      var i;\n\n      for (i = len - 1; i >= 0; i -= 1) {\n        registeredAnimations[i].animation.destroy(animation);\n      }\n    }\n\n    function searchAnimations(animationData, standalone, renderer) {\n      var animElements = [].concat([].slice.call(document.getElementsByClassName(\"lottie\")), [].slice.call(document.getElementsByClassName(\"bodymovin\")));\n      var i;\n      var lenAnims = animElements.length;\n\n      for (i = 0; i < lenAnims; i += 1) {\n        if (renderer) {\n          animElements[i].setAttribute(\"data-bm-type\", renderer);\n        }\n\n        registerAnimation(animElements[i], animationData);\n      }\n\n      if (standalone && lenAnims === 0) {\n        if (!renderer) {\n          renderer = \"svg\";\n        }\n\n        var body = document.getElementsByTagName(\"body\")[0];\n        body.innerText = \"\";\n        var div = createTag(\"div\");\n        div.style.width = \"100%\";\n        div.style.height = \"100%\";\n        div.setAttribute(\"data-bm-type\", renderer);\n        body.appendChild(div);\n        registerAnimation(div, animationData);\n      }\n    }\n\n    function resize() {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.resize();\n      }\n    }\n\n    function activate() {\n      if (!_isFrozen && playingAnimationsNum) {\n        if (_stopped) {\n          window.requestAnimationFrame(first);\n          _stopped = false;\n        }\n      }\n    }\n\n    function freeze() {\n      _isFrozen = true;\n    }\n\n    function unfreeze() {\n      _isFrozen = false;\n      activate();\n    }\n\n    function setVolume(val, animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.setVolume(val, animation);\n      }\n    }\n\n    function mute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.mute(animation);\n      }\n    }\n\n    function unmute(animation) {\n      var i;\n\n      for (i = 0; i < len; i += 1) {\n        registeredAnimations[i].animation.unmute(animation);\n      }\n    }\n\n    moduleOb.registerAnimation = registerAnimation;\n    moduleOb.loadAnimation = loadAnimation;\n    moduleOb.setSpeed = setSpeed;\n    moduleOb.setDirection = setDirection;\n    moduleOb.play = play;\n    moduleOb.pause = pause;\n    moduleOb.stop = stop;\n    moduleOb.togglePause = togglePause;\n    moduleOb.searchAnimations = searchAnimations;\n    moduleOb.resize = resize; // moduleOb.start = start;\n\n    moduleOb.goToAndStop = goToAndStop;\n    moduleOb.destroy = destroy;\n    moduleOb.freeze = freeze;\n    moduleOb.unfreeze = unfreeze;\n    moduleOb.setVolume = setVolume;\n    moduleOb.mute = mute;\n    moduleOb.unmute = unmute;\n    moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n    return moduleOb;\n  }();\n  /* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\n  CanvasRenderer, SVGRenderer, HybridRenderer, assetLoader, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\n  BMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\n  BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\n\n\n  var AnimationItem = function () {\n    (this || _global)._cbs = [];\n    (this || _global).name = \"\";\n    (this || _global).path = \"\";\n    (this || _global).isLoaded = false;\n    (this || _global).currentFrame = 0;\n    (this || _global).currentRawFrame = 0;\n    (this || _global).firstFrame = 0;\n    (this || _global).totalFrames = 0;\n    (this || _global).frameRate = 0;\n    (this || _global).frameMult = 0;\n    (this || _global).playSpeed = 1;\n    (this || _global).playDirection = 1;\n    (this || _global).playCount = 0;\n    (this || _global).animationData = {};\n    (this || _global).assets = [];\n    (this || _global).isPaused = true;\n    (this || _global).autoplay = false;\n    (this || _global).loop = true;\n    (this || _global).renderer = null;\n    (this || _global).animationID = createElementID();\n    (this || _global).assetsPath = \"\";\n    (this || _global).timeCompleted = 0;\n    (this || _global).segmentPos = 0;\n    (this || _global).isSubframeEnabled = subframeEnabled;\n    (this || _global).segments = [];\n    (this || _global)._idle = true;\n    (this || _global)._completedLoop = false;\n    (this || _global).projectInterface = ProjectInterface();\n    (this || _global).imagePreloader = new ImagePreloader();\n    (this || _global).audioController = audioControllerFactory();\n    (this || _global).markers = [];\n  };\n\n  extendPrototype([BaseEvent], AnimationItem);\n\n  AnimationItem.prototype.setParams = function (params) {\n    if (params.wrapper || params.container) {\n      (this || _global).wrapper = params.wrapper || params.container;\n    }\n\n    var animType = \"svg\";\n\n    if (params.animType) {\n      animType = params.animType;\n    } else if (params.renderer) {\n      animType = params.renderer;\n    }\n\n    switch (animType) {\n      case \"canvas\":\n        (this || _global).renderer = new CanvasRenderer(this || _global, params.rendererSettings);\n        break;\n\n      case \"svg\":\n        (this || _global).renderer = new SVGRenderer(this || _global, params.rendererSettings);\n        break;\n\n      default:\n        (this || _global).renderer = new HybridRenderer(this || _global, params.rendererSettings);\n        break;\n    }\n\n    (this || _global).imagePreloader.setCacheType(animType, (this || _global).renderer.globalData.defs);\n\n    (this || _global).renderer.setProjectInterface((this || _global).projectInterface);\n\n    (this || _global).animType = animType;\n\n    if (params.loop === \"\" || params.loop === null || params.loop === undefined || params.loop === true) {\n      (this || _global).loop = true;\n    } else if (params.loop === false) {\n      (this || _global).loop = false;\n    } else {\n      (this || _global).loop = parseInt(params.loop, 10);\n    }\n\n    (this || _global).autoplay = \"autoplay\" in params ? params.autoplay : true;\n    (this || _global).name = params.name ? params.name : \"\";\n    (this || _global).autoloadSegments = Object.prototype.hasOwnProperty.call(params, \"autoloadSegments\") ? params.autoloadSegments : true;\n    (this || _global).assetsPath = params.assetsPath;\n    (this || _global).initialSegment = params.initialSegment;\n\n    if (params.audioFactory) {\n      (this || _global).audioController.setAudioFactory(params.audioFactory);\n    }\n\n    if (params.animationData) {\n      this.configAnimation(params.animationData);\n    } else if (params.path) {\n      if (params.path.lastIndexOf(\"\\\\\") !== -1) {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"\\\\\") + 1);\n      } else {\n        (this || _global).path = params.path.substr(0, params.path.lastIndexOf(\"/\") + 1);\n      }\n\n      (this || _global).fileName = params.path.substr(params.path.lastIndexOf(\"/\") + 1);\n      (this || _global).fileName = (this || _global).fileName.substr(0, (this || _global).fileName.lastIndexOf(\".json\"));\n      assetLoader.load(params.path, (this || _global).configAnimation.bind(this || _global), function () {\n        this.trigger(\"data_failed\");\n      }.bind(this || _global));\n    }\n  };\n\n  AnimationItem.prototype.setData = function (wrapper, animationData) {\n    if (animationData) {\n      if (typeof animationData !== \"object\") {\n        animationData = JSON.parse(animationData);\n      }\n    }\n\n    var params = {\n      wrapper: wrapper,\n      animationData: animationData\n    };\n    var wrapperAttributes = wrapper.attributes;\n    params.path = wrapperAttributes.getNamedItem(\"data-animation-path\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-animation-path\").value : wrapperAttributes.getNamedItem(\"data-bm-path\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-path\").value : wrapperAttributes.getNamedItem(\"bm-path\") ? wrapperAttributes.getNamedItem(\"bm-path\").value : \"\";\n    params.animType = wrapperAttributes.getNamedItem(\"data-anim-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-type\").value : wrapperAttributes.getNamedItem(\"data-bm-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-type\").value : wrapperAttributes.getNamedItem(\"bm-type\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"bm-type\").value : wrapperAttributes.getNamedItem(\"data-bm-renderer\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-renderer\").value : wrapperAttributes.getNamedItem(\"bm-renderer\") ? wrapperAttributes.getNamedItem(\"bm-renderer\").value : \"canvas\";\n    var loop = wrapperAttributes.getNamedItem(\"data-anim-loop\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-loop\").value : wrapperAttributes.getNamedItem(\"data-bm-loop\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-loop\").value : wrapperAttributes.getNamedItem(\"bm-loop\") ? wrapperAttributes.getNamedItem(\"bm-loop\").value : \"\";\n\n    if (loop === \"false\") {\n      params.loop = false;\n    } else if (loop === \"true\") {\n      params.loop = true;\n    } else if (loop !== \"\") {\n      params.loop = parseInt(loop, 10);\n    }\n\n    var autoplay = wrapperAttributes.getNamedItem(\"data-anim-autoplay\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-autoplay\").value : wrapperAttributes.getNamedItem(\"data-bm-autoplay\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-autoplay\").value : wrapperAttributes.getNamedItem(\"bm-autoplay\") ? wrapperAttributes.getNamedItem(\"bm-autoplay\").value : true;\n    params.autoplay = autoplay !== \"false\";\n    params.name = wrapperAttributes.getNamedItem(\"data-name\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-name\").value : wrapperAttributes.getNamedItem(\"data-bm-name\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-name\").value : wrapperAttributes.getNamedItem(\"bm-name\") ? wrapperAttributes.getNamedItem(\"bm-name\").value : \"\";\n    var prerender = wrapperAttributes.getNamedItem(\"data-anim-prerender\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-anim-prerender\").value : wrapperAttributes.getNamedItem(\"data-bm-prerender\") // eslint-disable-line no-nested-ternary\n    ? wrapperAttributes.getNamedItem(\"data-bm-prerender\").value : wrapperAttributes.getNamedItem(\"bm-prerender\") ? wrapperAttributes.getNamedItem(\"bm-prerender\").value : \"\";\n\n    if (prerender === \"false\") {\n      params.prerender = false;\n    }\n\n    this.setParams(params);\n  };\n\n  AnimationItem.prototype.includeLayers = function (data) {\n    if (data.op > (this || _global).animationData.op) {\n      (this || _global).animationData.op = data.op;\n      (this || _global).totalFrames = Math.floor(data.op - (this || _global).animationData.ip);\n    }\n\n    var layers = (this || _global).animationData.layers;\n    var i;\n    var len = layers.length;\n    var newLayers = data.layers;\n    var j;\n    var jLen = newLayers.length;\n\n    for (j = 0; j < jLen; j += 1) {\n      i = 0;\n\n      while (i < len) {\n        if (layers[i].id === newLayers[j].id) {\n          layers[i] = newLayers[j];\n          break;\n        }\n\n        i += 1;\n      }\n    }\n\n    if (data.chars || data.fonts) {\n      (this || _global).renderer.globalData.fontManager.addChars(data.chars);\n\n      (this || _global).renderer.globalData.fontManager.addFonts(data.fonts, (this || _global).renderer.globalData.defs);\n    }\n\n    if (data.assets) {\n      len = data.assets.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).animationData.assets.push(data.assets[i]);\n      }\n    }\n\n    (this || _global).animationData.__complete = false;\n    dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n    (this || _global).renderer.includeLayers(data.layers);\n\n    if (expressionsPlugin) {\n      expressionsPlugin.initExpressions(this || _global);\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.loadNextSegment = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments || segments.length === 0 || !(this || _global).autoloadSegments) {\n      this.trigger(\"data_ready\");\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      return;\n    }\n\n    var segment = segments.shift();\n    (this || _global).timeCompleted = segment.time * (this || _global).frameRate;\n    var segmentPath = (this || _global).path + (this || _global).fileName + \"_\" + (this || _global).segmentPos + \".json\";\n    (this || _global).segmentPos += 1;\n    assetLoader.load(segmentPath, (this || _global).includeLayers.bind(this || _global), function () {\n      this.trigger(\"data_failed\");\n    }.bind(this || _global));\n  };\n\n  AnimationItem.prototype.loadSegments = function () {\n    var segments = (this || _global).animationData.segments;\n\n    if (!segments) {\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n    }\n\n    this.loadNextSegment();\n  };\n\n  AnimationItem.prototype.imagesLoaded = function () {\n    this.trigger(\"loaded_images\");\n    this.checkLoaded();\n  };\n\n  AnimationItem.prototype.preloadImages = function () {\n    (this || _global).imagePreloader.setAssetsPath((this || _global).assetsPath);\n\n    (this || _global).imagePreloader.setPath((this || _global).path);\n\n    (this || _global).imagePreloader.loadAssets((this || _global).animationData.assets, (this || _global).imagesLoaded.bind(this || _global));\n  };\n\n  AnimationItem.prototype.configAnimation = function (animData) {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).animationData = animData;\n\n      if ((this || _global).initialSegment) {\n        (this || _global).totalFrames = Math.floor((this || _global).initialSegment[1] - (this || _global).initialSegment[0]);\n        (this || _global).firstFrame = Math.round((this || _global).initialSegment[0]);\n      } else {\n        (this || _global).totalFrames = Math.floor((this || _global).animationData.op - (this || _global).animationData.ip);\n        (this || _global).firstFrame = Math.round((this || _global).animationData.ip);\n      }\n\n      (this || _global).renderer.configAnimation(animData);\n\n      if (!animData.assets) {\n        animData.assets = [];\n      }\n\n      (this || _global).assets = (this || _global).animationData.assets;\n      (this || _global).frameRate = (this || _global).animationData.fr;\n      (this || _global).frameMult = (this || _global).animationData.fr / 1000;\n\n      (this || _global).renderer.searchExtraCompositions(animData.assets);\n\n      (this || _global).markers = markerParser(animData.markers || []);\n      this.trigger(\"config_ready\");\n      this.preloadImages();\n      this.loadSegments();\n      this.updaFrameModifier();\n      this.waitForFontsLoaded();\n\n      if ((this || _global).isPaused) {\n        (this || _global).audioController.pause();\n      }\n    } catch (error) {\n      this.triggerConfigError(error);\n    }\n  };\n\n  AnimationItem.prototype.waitForFontsLoaded = function () {\n    if (!(this || _global).renderer) {\n      return;\n    }\n\n    if ((this || _global).renderer.globalData.fontManager.isLoaded) {\n      this.checkLoaded();\n    } else {\n      setTimeout((this || _global).waitForFontsLoaded.bind(this || _global), 20);\n    }\n  };\n\n  AnimationItem.prototype.checkLoaded = function () {\n    if (!(this || _global).isLoaded && (this || _global).renderer.globalData.fontManager.isLoaded && ((this || _global).imagePreloader.loadedImages() || (this || _global).renderer.rendererType !== \"canvas\") && (this || _global).imagePreloader.loadedFootages()) {\n      (this || _global).isLoaded = true;\n      dataManager.completeData((this || _global).animationData, (this || _global).renderer.globalData.fontManager);\n\n      if (expressionsPlugin) {\n        expressionsPlugin.initExpressions(this || _global);\n      }\n\n      (this || _global).renderer.initItems();\n\n      setTimeout(function () {\n        this.trigger(\"DOMLoaded\");\n      }.bind(this || _global), 0);\n      this.gotoFrame();\n\n      if ((this || _global).autoplay) {\n        this.play();\n      }\n    }\n  };\n\n  AnimationItem.prototype.resize = function () {\n    (this || _global).renderer.updateContainerSize();\n  };\n\n  AnimationItem.prototype.setSubframe = function (flag) {\n    (this || _global).isSubframeEnabled = !!flag;\n  };\n\n  AnimationItem.prototype.gotoFrame = function () {\n    (this || _global).currentFrame = (this || _global).isSubframeEnabled ? (this || _global).currentRawFrame : ~~(this || _global).currentRawFrame; // eslint-disable-line no-bitwise\n\n    if ((this || _global).timeCompleted !== (this || _global).totalFrames && (this || _global).currentFrame > (this || _global).timeCompleted) {\n      (this || _global).currentFrame = (this || _global).timeCompleted;\n    }\n\n    this.trigger(\"enterFrame\");\n    this.renderFrame();\n  };\n\n  AnimationItem.prototype.renderFrame = function () {\n    if ((this || _global).isLoaded === false || !(this || _global).renderer) {\n      return;\n    }\n\n    try {\n      (this || _global).renderer.renderFrame((this || _global).currentFrame + (this || _global).firstFrame);\n    } catch (error) {\n      this.triggerRenderFrameError(error);\n    }\n  };\n\n  AnimationItem.prototype.play = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      (this || _global).isPaused = false;\n\n      (this || _global).audioController.resume();\n\n      if ((this || _global)._idle) {\n        (this || _global)._idle = false;\n        this.trigger(\"_active\");\n      }\n    }\n  };\n\n  AnimationItem.prototype.pause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === false) {\n      (this || _global).isPaused = true;\n      (this || _global)._idle = true;\n      this.trigger(\"_idle\");\n\n      (this || _global).audioController.pause();\n    }\n  };\n\n  AnimationItem.prototype.togglePause = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    if ((this || _global).isPaused === true) {\n      this.play();\n    } else {\n      this.pause();\n    }\n  };\n\n  AnimationItem.prototype.stop = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    this.pause();\n    (this || _global).playCount = 0;\n    (this || _global)._completedLoop = false;\n    this.setCurrentRawFrameValue(0);\n  };\n\n  AnimationItem.prototype.getMarkerData = function (markerName) {\n    var marker;\n\n    for (var i = 0; i < (this || _global).markers.length; i += 1) {\n      marker = (this || _global).markers[i];\n\n      if (marker.payload && marker.payload.name === markerName) {\n        return marker;\n      }\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        this.goToAndStop(marker.time, true);\n      }\n    } else if (isFrame) {\n      this.setCurrentRawFrameValue(value);\n    } else {\n      this.setCurrentRawFrameValue(value * (this || _global).frameModifier);\n    }\n\n    this.pause();\n  };\n\n  AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    var numValue = Number(value);\n\n    if (isNaN(numValue)) {\n      var marker = this.getMarkerData(value);\n\n      if (marker) {\n        if (!marker.duration) {\n          this.goToAndStop(marker.time, true);\n        } else {\n          this.playSegments([marker.time, marker.time + marker.duration], true);\n        }\n      }\n    } else {\n      this.goToAndStop(numValue, isFrame, name);\n    }\n\n    this.play();\n  };\n\n  AnimationItem.prototype.advanceTime = function (value) {\n    if ((this || _global).isPaused === true || (this || _global).isLoaded === false) {\n      return;\n    }\n\n    var nextValue = (this || _global).currentRawFrame + value * (this || _global).frameModifier;\n    var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n    // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n    if (nextValue >= (this || _global).totalFrames - 1 && (this || _global).frameModifier > 0) {\n      if (!(this || _global).loop || (this || _global).playCount === (this || _global).loop) {\n        if (!this.checkSegments(nextValue > (this || _global).totalFrames ? nextValue % (this || _global).totalFrames : 0)) {\n          _isComplete = true;\n          nextValue = (this || _global).totalFrames - 1;\n        }\n      } else if (nextValue >= (this || _global).totalFrames) {\n        (this || _global).playCount += 1;\n\n        if (!this.checkSegments(nextValue % (this || _global).totalFrames)) {\n          this.setCurrentRawFrameValue(nextValue % (this || _global).totalFrames);\n          (this || _global)._completedLoop = true;\n          this.trigger(\"loopComplete\");\n        }\n      } else {\n        this.setCurrentRawFrameValue(nextValue);\n      }\n    } else if (nextValue < 0) {\n      if (!this.checkSegments(nextValue % (this || _global).totalFrames)) {\n        if ((this || _global).loop && !((this || _global).playCount-- <= 0 && (this || _global).loop !== true)) {\n          // eslint-disable-line no-plusplus\n          this.setCurrentRawFrameValue((this || _global).totalFrames + nextValue % (this || _global).totalFrames);\n\n          if (!(this || _global)._completedLoop) {\n            (this || _global)._completedLoop = true;\n          } else {\n            this.trigger(\"loopComplete\");\n          }\n        } else {\n          _isComplete = true;\n          nextValue = 0;\n        }\n      }\n    } else {\n      this.setCurrentRawFrameValue(nextValue);\n    }\n\n    if (_isComplete) {\n      this.setCurrentRawFrameValue(nextValue);\n      this.pause();\n      this.trigger(\"complete\");\n    }\n  };\n\n  AnimationItem.prototype.adjustSegment = function (arr, offset) {\n    (this || _global).playCount = 0;\n\n    if (arr[1] < arr[0]) {\n      if ((this || _global).frameModifier > 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(-1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[0] - arr[1];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).firstFrame = arr[1];\n      this.setCurrentRawFrameValue((this || _global).totalFrames - 0.001 - offset);\n    } else if (arr[1] > arr[0]) {\n      if ((this || _global).frameModifier < 0) {\n        if ((this || _global).playSpeed < 0) {\n          this.setSpeed(-(this || _global).playSpeed);\n        } else {\n          this.setDirection(1);\n        }\n      }\n\n      (this || _global).totalFrames = arr[1] - arr[0];\n      (this || _global).timeCompleted = (this || _global).totalFrames;\n      (this || _global).firstFrame = arr[0];\n      this.setCurrentRawFrameValue(0.001 + offset);\n    }\n\n    this.trigger(\"segmentStart\");\n  };\n\n  AnimationItem.prototype.setSegment = function (init, end) {\n    var pendingFrame = -1;\n\n    if ((this || _global).isPaused) {\n      if ((this || _global).currentRawFrame + (this || _global).firstFrame < init) {\n        pendingFrame = init;\n      } else if ((this || _global).currentRawFrame + (this || _global).firstFrame > end) {\n        pendingFrame = end - init;\n      }\n    }\n\n    (this || _global).firstFrame = init;\n    (this || _global).totalFrames = end - init;\n    (this || _global).timeCompleted = (this || _global).totalFrames;\n\n    if (pendingFrame !== -1) {\n      this.goToAndStop(pendingFrame, true);\n    }\n  };\n\n  AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n    if (forceFlag) {\n      (this || _global).segments.length = 0;\n    }\n\n    if (typeof arr[0] === \"object\") {\n      var i;\n      var len = arr.length;\n\n      for (i = 0; i < len; i += 1) {\n        (this || _global).segments.push(arr[i]);\n      }\n    } else {\n      (this || _global).segments.push(arr);\n    }\n\n    if ((this || _global).segments.length && forceFlag) {\n      this.adjustSegment((this || _global).segments.shift(), 0);\n    }\n\n    if ((this || _global).isPaused) {\n      this.play();\n    }\n  };\n\n  AnimationItem.prototype.resetSegments = function (forceFlag) {\n    (this || _global).segments.length = 0;\n\n    (this || _global).segments.push([(this || _global).animationData.ip, (this || _global).animationData.op]); // this.segments.push([this.animationData.ip*this.frameRate,Math.floor(this.animationData.op - this.animationData.ip+this.animationData.ip*this.frameRate)]);\n\n\n    if (forceFlag) {\n      this.checkSegments(0);\n    }\n  };\n\n  AnimationItem.prototype.checkSegments = function (offset) {\n    if ((this || _global).segments.length) {\n      this.adjustSegment((this || _global).segments.shift(), offset);\n      return true;\n    }\n\n    return false;\n  };\n\n  AnimationItem.prototype.destroy = function (name) {\n    if (name && (this || _global).name !== name || !(this || _global).renderer) {\n      return;\n    }\n\n    (this || _global).renderer.destroy();\n\n    (this || _global).imagePreloader.destroy();\n\n    this.trigger(\"destroy\");\n    (this || _global)._cbs = null;\n    (this || _global).onEnterFrame = null;\n    (this || _global).onLoopComplete = null;\n    (this || _global).onComplete = null;\n    (this || _global).onSegmentStart = null;\n    (this || _global).onDestroy = null;\n    (this || _global).renderer = null;\n    (this || _global).renderer = null;\n    (this || _global).imagePreloader = null;\n    (this || _global).projectInterface = null;\n  };\n\n  AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n    (this || _global).currentRawFrame = value;\n    this.gotoFrame();\n  };\n\n  AnimationItem.prototype.setSpeed = function (val) {\n    (this || _global).playSpeed = val;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setDirection = function (val) {\n    (this || _global).playDirection = val < 0 ? -1 : 1;\n    this.updaFrameModifier();\n  };\n\n  AnimationItem.prototype.setVolume = function (val, name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.setVolume(val);\n  };\n\n  AnimationItem.prototype.getVolume = function () {\n    return (this || _global).audioController.getVolume();\n  };\n\n  AnimationItem.prototype.mute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.mute();\n  };\n\n  AnimationItem.prototype.unmute = function (name) {\n    if (name && (this || _global).name !== name) {\n      return;\n    }\n\n    (this || _global).audioController.unmute();\n  };\n\n  AnimationItem.prototype.updaFrameModifier = function () {\n    (this || _global).frameModifier = (this || _global).frameMult * (this || _global).playSpeed * (this || _global).playDirection;\n\n    (this || _global).audioController.setRate((this || _global).playSpeed * (this || _global).playDirection);\n  };\n\n  AnimationItem.prototype.getPath = function () {\n    return (this || _global).path;\n  };\n\n  AnimationItem.prototype.getAssetsPath = function (assetData) {\n    var path = \"\";\n\n    if (assetData.e) {\n      path = assetData.p;\n    } else if ((this || _global).assetsPath) {\n      var imagePath = assetData.p;\n\n      if (imagePath.indexOf(\"images/\") !== -1) {\n        imagePath = imagePath.split(\"/\")[1];\n      }\n\n      path = (this || _global).assetsPath + imagePath;\n    } else {\n      path = (this || _global).path;\n      path += assetData.u ? assetData.u : \"\";\n      path += assetData.p;\n    }\n\n    return path;\n  };\n\n  AnimationItem.prototype.getAssetData = function (id) {\n    var i = 0;\n    var len = (this || _global).assets.length;\n\n    while (i < len) {\n      if (id === (this || _global).assets[i].id) {\n        return (this || _global).assets[i];\n      }\n\n      i += 1;\n    }\n\n    return null;\n  };\n\n  AnimationItem.prototype.hide = function () {\n    (this || _global).renderer.hide();\n  };\n\n  AnimationItem.prototype.show = function () {\n    (this || _global).renderer.show();\n  };\n\n  AnimationItem.prototype.getDuration = function (isFrame) {\n    return isFrame ? (this || _global).totalFrames : (this || _global).totalFrames / (this || _global).frameRate;\n  };\n\n  AnimationItem.prototype.trigger = function (name) {\n    if ((this || _global)._cbs && (this || _global)._cbs[name]) {\n      switch (name) {\n        case \"enterFrame\":\n          this.triggerEvent(name, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameModifier));\n          break;\n\n        case \"loopComplete\":\n          this.triggerEvent(name, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n          break;\n\n        case \"complete\":\n          this.triggerEvent(name, new BMCompleteEvent(name, (this || _global).frameMult));\n          break;\n\n        case \"segmentStart\":\n          this.triggerEvent(name, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n          break;\n\n        case \"destroy\":\n          this.triggerEvent(name, new BMDestroyEvent(name, this || _global));\n          break;\n\n        default:\n          this.triggerEvent(name);\n      }\n    }\n\n    if (name === \"enterFrame\" && (this || _global).onEnterFrame) {\n      (this || _global).onEnterFrame.call(this || _global, new BMEnterFrameEvent(name, (this || _global).currentFrame, (this || _global).totalFrames, (this || _global).frameMult));\n    }\n\n    if (name === \"loopComplete\" && (this || _global).onLoopComplete) {\n      (this || _global).onLoopComplete.call(this || _global, new BMCompleteLoopEvent(name, (this || _global).loop, (this || _global).playCount, (this || _global).frameMult));\n    }\n\n    if (name === \"complete\" && (this || _global).onComplete) {\n      (this || _global).onComplete.call(this || _global, new BMCompleteEvent(name, (this || _global).frameMult));\n    }\n\n    if (name === \"segmentStart\" && (this || _global).onSegmentStart) {\n      (this || _global).onSegmentStart.call(this || _global, new BMSegmentStartEvent(name, (this || _global).firstFrame, (this || _global).totalFrames));\n    }\n\n    if (name === \"destroy\" && (this || _global).onDestroy) {\n      (this || _global).onDestroy.call(this || _global, new BMDestroyEvent(name, this || _global));\n    }\n  };\n\n  AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n    var error = new BMRenderFrameErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n\n  AnimationItem.prototype.triggerConfigError = function (nativeError) {\n    var error = new BMConfigErrorEvent(nativeError, (this || _global).currentFrame);\n    this.triggerEvent(\"error\", error);\n\n    if ((this || _global).onError) {\n      (this || _global).onError.call(this || _global, error);\n    }\n  };\n  /* global CompExpressionInterface, expressionsPlugin: writable */\n\n  /* exported expressionsPlugin */\n\n\n  var Expressions = function () {\n    var ob = {};\n    ob.initExpressions = initExpressions;\n\n    function initExpressions(animation) {\n      var stackCount = 0;\n      var registers = [];\n\n      function pushExpression() {\n        stackCount += 1;\n      }\n\n      function popExpression() {\n        stackCount -= 1;\n\n        if (stackCount === 0) {\n          releaseInstances();\n        }\n      }\n\n      function registerExpressionProperty(expression) {\n        if (registers.indexOf(expression) === -1) {\n          registers.push(expression);\n        }\n      }\n\n      function releaseInstances() {\n        var i;\n        var len = registers.length;\n\n        for (i = 0; i < len; i += 1) {\n          registers[i].release();\n        }\n\n        registers.length = 0;\n      }\n\n      animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n      animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n      animation.renderer.globalData.pushExpression = pushExpression;\n      animation.renderer.globalData.popExpression = popExpression;\n      animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n    }\n\n    return ob;\n  }();\n\n  expressionsPlugin = Expressions;\n  /* eslint-disable camelcase, no-unused-vars */\n\n  /* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\n\n  var ExpressionManager = function () {\n    'use strict';\n\n    var ob = {};\n    var Math = BMMath;\n    var window = null;\n    var document = null;\n\n    function $bm_isInstanceOfArray(arr) {\n      return arr.constructor === Array || arr.constructor === Float32Array;\n    }\n\n    function isNumerable(tOfV, v) {\n      return tOfV === \"number\" || tOfV === \"boolean\" || tOfV === \"string\" || v instanceof Number;\n    }\n\n    function $bm_neg(a) {\n      var tOfA = typeof a;\n\n      if (tOfA === \"number\" || tOfA === \"boolean\" || a instanceof Number) {\n        return -a;\n      }\n\n      if ($bm_isInstanceOfArray(a)) {\n        var i;\n        var lenA = a.length;\n        var retArr = [];\n\n        for (i = 0; i < lenA; i += 1) {\n          retArr[i] = -a[i];\n        }\n\n        return retArr;\n      }\n\n      if (a.propType) {\n        return a.v;\n      }\n\n      return -a;\n    }\n\n    var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, \"easeIn\").get;\n    var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, \"easeOut\").get;\n    var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, \"easeInOut\").get;\n\n    function sum(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n\n      if (tOfA === \"string\" || tOfB === \"string\") {\n        return a + b;\n      }\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a + b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] += b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a + b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === \"number\" || a[i] instanceof Number) && (typeof b[i] === \"number\" || b[i] instanceof Number)) {\n            retArr[i] = a[i] + b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    var add = sum;\n\n    function sub(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        if (tOfA === \"string\") {\n          a = parseInt(a, 10);\n        }\n\n        if (tOfB === \"string\") {\n          b = parseInt(b, 10);\n        }\n\n        return a - b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        a = a.slice(0);\n        a[0] -= b;\n        return a;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        b = b.slice(0);\n        b[0] = a - b[0];\n        return b;\n      }\n\n      if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n        var i = 0;\n        var lenA = a.length;\n        var lenB = b.length;\n        var retArr = [];\n\n        while (i < lenA || i < lenB) {\n          if ((typeof a[i] === \"number\" || a[i] instanceof Number) && (typeof b[i] === \"number\" || b[i] instanceof Number)) {\n            retArr[i] = a[i] - b[i];\n          } else {\n            retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n          }\n\n          i += 1;\n        }\n\n        return retArr;\n      }\n\n      return 0;\n    }\n\n    function mul(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a * b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] * b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a * b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function div(a, b) {\n      var tOfA = typeof a;\n      var tOfB = typeof b;\n      var arr;\n\n      if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n        return a / b;\n      }\n\n      var i;\n      var len;\n\n      if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n        len = a.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a[i] / b;\n        }\n\n        return arr;\n      }\n\n      if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n        len = b.length;\n        arr = createTypedArray(\"float32\", len);\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = a / b[i];\n        }\n\n        return arr;\n      }\n\n      return 0;\n    }\n\n    function mod(a, b) {\n      if (typeof a === \"string\") {\n        a = parseInt(a, 10);\n      }\n\n      if (typeof b === \"string\") {\n        b = parseInt(b, 10);\n      }\n\n      return a % b;\n    }\n\n    var $bm_sum = sum;\n    var $bm_sub = sub;\n    var $bm_mul = mul;\n    var $bm_div = div;\n    var $bm_mod = mod;\n\n    function clamp(num, min, max) {\n      if (min > max) {\n        var mm = max;\n        max = min;\n        min = mm;\n      }\n\n      return Math.min(Math.max(num, min), max);\n    }\n\n    function radiansToDegrees(val) {\n      return val / degToRads;\n    }\n\n    var radians_to_degrees = radiansToDegrees;\n\n    function degreesToRadians(val) {\n      return val * degToRads;\n    }\n\n    var degrees_to_radians = radiansToDegrees;\n    var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n    function length(arr1, arr2) {\n      if (typeof arr1 === \"number\" || arr1 instanceof Number) {\n        arr2 = arr2 || 0;\n        return Math.abs(arr1 - arr2);\n      }\n\n      if (!arr2) {\n        arr2 = helperLengthArray;\n      }\n\n      var i;\n      var len = Math.min(arr1.length, arr2.length);\n      var addedLength = 0;\n\n      for (i = 0; i < len; i += 1) {\n        addedLength += Math.pow(arr2[i] - arr1[i], 2);\n      }\n\n      return Math.sqrt(addedLength);\n    }\n\n    function normalize(vec) {\n      return div(vec, length(vec));\n    }\n\n    function rgbToHsl(val) {\n      var r = val[0];\n      var g = val[1];\n      var b = val[2];\n      var max = Math.max(r, g, b);\n      var min = Math.min(r, g, b);\n      var h;\n      var s;\n      var l = (max + min) / 2;\n\n      if (max === min) {\n        h = 0; // achromatic\n\n        s = 0; // achromatic\n      } else {\n        var d = max - min;\n        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n        switch (max) {\n          case r:\n            h = (g - b) / d + (g < b ? 6 : 0);\n            break;\n\n          case g:\n            h = (b - r) / d + 2;\n            break;\n\n          case b:\n            h = (r - g) / d + 4;\n            break;\n\n          default:\n            break;\n        }\n\n        h /= 6;\n      }\n\n      return [h, s, l, val[3]];\n    }\n\n    function hue2rgb(p, q, t) {\n      if (t < 0) t += 1;\n      if (t > 1) t -= 1;\n      if (t < 1 / 6) return p + (q - p) * 6 * t;\n      if (t < 1 / 2) return q;\n      if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n      return p;\n    }\n\n    function hslToRgb(val) {\n      var h = val[0];\n      var s = val[1];\n      var l = val[2];\n      var r;\n      var g;\n      var b;\n\n      if (s === 0) {\n        r = l; // achromatic\n\n        b = l; // achromatic\n\n        g = l; // achromatic\n      } else {\n        var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n        var p = 2 * l - q;\n        r = hue2rgb(p, q, h + 1 / 3);\n        g = hue2rgb(p, q, h);\n        b = hue2rgb(p, q, h - 1 / 3);\n      }\n\n      return [r, g, b, val[3]];\n    }\n\n    function linear(t, tMin, tMax, value1, value2) {\n      if (value1 === undefined || value2 === undefined) {\n        value1 = tMin;\n        value2 = tMax;\n        tMin = 0;\n        tMax = 1;\n      }\n\n      if (tMax < tMin) {\n        var _tMin = tMax;\n        tMax = tMin;\n        tMin = _tMin;\n      }\n\n      if (t <= tMin) {\n        return value1;\n      }\n\n      if (t >= tMax) {\n        return value2;\n      }\n\n      var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n      if (!value1.length) {\n        return value1 + (value2 - value1) * perc;\n      }\n\n      var i;\n      var len = value1.length;\n      var arr = createTypedArray(\"float32\", len);\n\n      for (i = 0; i < len; i += 1) {\n        arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n      }\n\n      return arr;\n    }\n\n    function random(min, max) {\n      if (max === undefined) {\n        if (min === undefined) {\n          min = 0;\n          max = 1;\n        } else {\n          max = min;\n          min = undefined;\n        }\n      }\n\n      if (max.length) {\n        var i;\n        var len = max.length;\n\n        if (!min) {\n          min = createTypedArray(\"float32\", len);\n        }\n\n        var arr = createTypedArray(\"float32\", len);\n        var rnd = BMMath.random();\n\n        for (i = 0; i < len; i += 1) {\n          arr[i] = min[i] + rnd * (max[i] - min[i]);\n        }\n\n        return arr;\n      }\n\n      if (min === undefined) {\n        min = 0;\n      }\n\n      var rndm = BMMath.random();\n      return min + rndm * (max - min);\n    }\n\n    function createPath(points, inTangents, outTangents, closed) {\n      var i;\n      var len = points.length;\n      var path = shapePool.newElement();\n      path.setPathData(!!closed, len);\n      var arrPlaceholder = [0, 0];\n      var inVertexPoint;\n      var outVertexPoint;\n\n      for (i = 0; i < len; i += 1) {\n        inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n        outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n        path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n      }\n\n      return path;\n    }\n\n    function initiateExpression(elem, data, property) {\n      var val = data.x;\n      var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n      var _needsRandom = val.indexOf(\"random\") !== -1;\n\n      var elemType = elem.data.ty;\n      var transform;\n      var $bm_transform;\n      var content;\n      var effect;\n      var thisProperty = property;\n      thisProperty.valueAtTime = thisProperty.getValueAtTime;\n      Object.defineProperty(thisProperty, \"value\", {\n        get: function () {\n          return thisProperty.v;\n        }\n      });\n      elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n      elem.comp.displayStartTime = 0;\n      var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      var width = elem.data.sw ? elem.data.sw : 0;\n      var height = elem.data.sh ? elem.data.sh : 0;\n      var name = elem.data.nm;\n      var loopIn;\n      var loop_in;\n      var loopOut;\n      var loop_out;\n      var smooth;\n      var toWorld;\n      var fromWorld;\n      var fromComp;\n      var toComp;\n      var fromCompToSurface;\n      var position;\n      var rotation;\n      var anchorPoint;\n      var scale;\n      var thisLayer;\n      var thisComp;\n      var mask;\n      var valueAtTime;\n      var velocityAtTime;\n      var scoped_bm_rt;\n      var expression_function = eval(\"[function _expression_function(){\" + val + \";scoped_bm_rt=$bm_rt}]\")[0]; // eslint-disable-line no-eval\n\n      var numKeys = property.kf ? data.k.length : 0;\n      var active = !(this || _global).data || (this || _global).data.hd !== true;\n\n      var wiggle = function wiggle(freq, amp) {\n        var iWiggle;\n        var j;\n        var lenWiggle = (this || _global).pv.length ? (this || _global).pv.length : 1;\n        var addedAmps = createTypedArray(\"float32\", lenWiggle);\n        freq = 5;\n        var iterations = Math.floor(time * freq);\n        iWiggle = 0;\n        j = 0;\n\n        while (iWiggle < iterations) {\n          // var rnd = BMMath.random();\n          for (j = 0; j < lenWiggle; j += 1) {\n            addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n          }\n\n          iWiggle += 1;\n        } // var rnd2 = BMMath.random();\n\n\n        var periods = time * freq;\n        var perc = periods - Math.floor(periods);\n        var arr = createTypedArray(\"float32\", lenWiggle);\n\n        if (lenWiggle > 1) {\n          for (j = 0; j < lenWiggle; j += 1) {\n            arr[j] = (this || _global).pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n            // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n          }\n\n          return arr;\n        }\n\n        return (this || _global).pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n      }.bind(this || _global);\n\n      if (thisProperty.loopIn) {\n        loopIn = thisProperty.loopIn.bind(thisProperty);\n        loop_in = loopIn;\n      }\n\n      if (thisProperty.loopOut) {\n        loopOut = thisProperty.loopOut.bind(thisProperty);\n        loop_out = loopOut;\n      }\n\n      if (thisProperty.smooth) {\n        smooth = thisProperty.smooth.bind(thisProperty);\n      }\n\n      function loopInDuration(type, duration) {\n        return loopIn(type, duration, true);\n      }\n\n      function loopOutDuration(type, duration) {\n        return loopOut(type, duration, true);\n      }\n\n      if ((this || _global).getValueAtTime) {\n        valueAtTime = (this || _global).getValueAtTime.bind(this || _global);\n      }\n\n      if ((this || _global).getVelocityAtTime) {\n        velocityAtTime = (this || _global).getVelocityAtTime.bind(this || _global);\n      }\n\n      var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n      function lookAt(elem1, elem2) {\n        var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n        var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n        var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n        return [yaw, pitch, 0];\n      }\n\n      function easeOut(t, tMin, tMax, val1, val2) {\n        return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function easeIn(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n      }\n\n      function ease(t, tMin, tMax, val1, val2) {\n        return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n      }\n\n      function applyEase(fn, t, tMin, tMax, val1, val2) {\n        if (val1 === undefined) {\n          val1 = tMin;\n          val2 = tMax;\n        } else {\n          t = (t - tMin) / (tMax - tMin);\n        }\n\n        if (t > 1) {\n          t = 1;\n        } else if (t < 0) {\n          t = 0;\n        }\n\n        var mult = fn(t);\n\n        if ($bm_isInstanceOfArray(val1)) {\n          var iKey;\n          var lenKey = val1.length;\n          var arr = createTypedArray(\"float32\", lenKey);\n\n          for (iKey = 0; iKey < lenKey; iKey += 1) {\n            arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n          }\n\n          return arr;\n        }\n\n        return (val2 - val1) * mult + val1;\n      }\n\n      function nearestKey(time) {\n        var iKey;\n        var lenKey = data.k.length;\n        var index;\n        var keyTime;\n\n        if (!data.k.length || typeof data.k[0] === \"number\") {\n          index = 0;\n          keyTime = 0;\n        } else {\n          index = -1;\n          time *= elem.comp.globalData.frameRate;\n\n          if (time < data.k[0].t) {\n            index = 1;\n            keyTime = data.k[0].t;\n          } else {\n            for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n              if (time === data.k[iKey].t) {\n                index = iKey + 1;\n                keyTime = data.k[iKey].t;\n                break;\n              } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n                if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n                  index = iKey + 2;\n                  keyTime = data.k[iKey + 1].t;\n                } else {\n                  index = iKey + 1;\n                  keyTime = data.k[iKey].t;\n                }\n\n                break;\n              }\n            }\n\n            if (index === -1) {\n              index = iKey + 1;\n              keyTime = data.k[iKey].t;\n            }\n          }\n        }\n\n        var obKey = {};\n        obKey.index = index;\n        obKey.time = keyTime / elem.comp.globalData.frameRate;\n        return obKey;\n      }\n\n      function key(ind) {\n        var obKey;\n        var iKey;\n        var lenKey;\n\n        if (!data.k.length || typeof data.k[0] === \"number\") {\n          throw new Error(\"The property has no keyframe at index \" + ind);\n        }\n\n        ind -= 1;\n        obKey = {\n          time: data.k[ind].t / elem.comp.globalData.frameRate,\n          value: []\n        };\n        var arr = Object.prototype.hasOwnProperty.call(data.k[ind], \"s\") ? data.k[ind].s : data.k[ind - 1].e;\n        lenKey = arr.length;\n\n        for (iKey = 0; iKey < lenKey; iKey += 1) {\n          obKey[iKey] = arr[iKey];\n          obKey.value[iKey] = arr[iKey];\n        }\n\n        return obKey;\n      }\n\n      function framesToTime(frames, fps) {\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return frames / fps;\n      }\n\n      function timeToFrames(t, fps) {\n        if (!t && t !== 0) {\n          t = time;\n        }\n\n        if (!fps) {\n          fps = elem.comp.globalData.frameRate;\n        }\n\n        return t * fps;\n      }\n\n      function seedRandom(seed) {\n        BMMath.seedrandom(randSeed + seed);\n      }\n\n      function sourceRectAtTime() {\n        return elem.sourceRectAtTime();\n      }\n\n      function substring(init, end) {\n        if (typeof value === \"string\") {\n          if (end === undefined) {\n            return value.substring(init);\n          }\n\n          return value.substring(init, end);\n        }\n\n        return \"\";\n      }\n\n      function substr(init, end) {\n        if (typeof value === \"string\") {\n          if (end === undefined) {\n            return value.substr(init);\n          }\n\n          return value.substr(init, end);\n        }\n\n        return \"\";\n      }\n\n      function posterizeTime(framesPerSecond) {\n        time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n        value = valueAtTime(time);\n      }\n\n      var time;\n      var velocity;\n      var value;\n      var text;\n      var textIndex;\n      var textTotal;\n      var selectorValue;\n      var index = elem.data.ind;\n      var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n      var parent;\n      var randSeed = Math.floor(Math.random() * 1000000);\n      var globalData = elem.globalData;\n\n      function executeExpression(_value) {\n        // globalData.pushExpression();\n        value = _value;\n\n        if (_needsRandom) {\n          seedRandom(randSeed);\n        }\n\n        if ((this || _global).frameExpressionId === elem.globalData.frameId && (this || _global).propType !== \"textSelector\") {\n          return value;\n        }\n\n        if ((this || _global).propType === \"textSelector\") {\n          textIndex = (this || _global).textIndex;\n          textTotal = (this || _global).textTotal;\n          selectorValue = (this || _global).selectorValue;\n        }\n\n        if (!thisLayer) {\n          text = elem.layerInterface.text;\n          thisLayer = elem.layerInterface;\n          thisComp = elem.comp.compInterface;\n          toWorld = thisLayer.toWorld.bind(thisLayer);\n          fromWorld = thisLayer.fromWorld.bind(thisLayer);\n          fromComp = thisLayer.fromComp.bind(thisLayer);\n          toComp = thisLayer.toComp.bind(thisLayer);\n          mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n          fromCompToSurface = fromComp;\n        }\n\n        if (!transform) {\n          transform = elem.layerInterface(\"ADBE Transform Group\");\n          $bm_transform = transform;\n\n          if (transform) {\n            anchorPoint = transform.anchorPoint;\n            /* position = transform.position;\r\n                      rotation = transform.rotation;\r\n                      scale = transform.scale; */\n          }\n        }\n\n        if (elemType === 4 && !content) {\n          content = thisLayer(\"ADBE Root Vectors Group\");\n        }\n\n        if (!effect) {\n          effect = thisLayer(4);\n        }\n\n        hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n        if (hasParent && !parent) {\n          parent = elem.hierarchy[0].layerInterface;\n        }\n\n        time = (this || _global).comp.renderedFrame / (this || _global).comp.globalData.frameRate;\n\n        if (needsVelocity) {\n          velocity = velocityAtTime(time);\n        }\n\n        expression_function();\n        (this || _global).frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n\n        if (scoped_bm_rt.propType === \"shape\") {\n          scoped_bm_rt = scoped_bm_rt.v;\n        } // globalData.popExpression();\n\n\n        return scoped_bm_rt;\n      }\n\n      return executeExpression;\n    }\n\n    ob.initiateExpression = initiateExpression;\n    return ob;\n  }();\n  /* global ExpressionManager, createTypedArray */\n\n  /* exported expressionHelpers */\n\n\n  var expressionHelpers = function () {\n    function searchExpressions(elem, data, prop) {\n      if (data.x) {\n        prop.k = true;\n        prop.x = true;\n        prop.initiateExpression = ExpressionManager.initiateExpression;\n        prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n      }\n    }\n\n    function getValueAtTime(frameNum) {\n      frameNum *= (this || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastFrame) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastFrame < frameNum ? (this || _global)._cachingAtTime.lastIndex : 0;\n        (this || _global)._cachingAtTime.value = this.interpolateValue(frameNum, (this || _global)._cachingAtTime);\n        (this || _global)._cachingAtTime.lastFrame = frameNum;\n      }\n\n      return (this || _global)._cachingAtTime.value;\n    }\n\n    function getSpeedAtTime(frameNum) {\n      var delta = -0.01;\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var speed = 0;\n\n      if (v1.length) {\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          speed += Math.pow(v2[i] - v1[i], 2);\n        }\n\n        speed = Math.sqrt(speed) * 100;\n      } else {\n        speed = 0;\n      }\n\n      return speed;\n    }\n\n    function getVelocityAtTime(frameNum) {\n      if ((this || _global).vel !== undefined) {\n        return (this || _global).vel;\n      }\n\n      var delta = -0.001; // frameNum += this.elem.data.st;\n\n      var v1 = this.getValueAtTime(frameNum);\n      var v2 = this.getValueAtTime(frameNum + delta);\n      var velocity;\n\n      if (v1.length) {\n        velocity = createTypedArray(\"float32\", v1.length);\n        var i;\n\n        for (i = 0; i < v1.length; i += 1) {\n          // removing frameRate\n          // if needed, don't add it here\n          // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n          velocity[i] = (v2[i] - v1[i]) / delta;\n        }\n      } else {\n        velocity = (v2 - v1) / delta;\n      }\n\n      return velocity;\n    }\n\n    function getStaticValueAtTime() {\n      return (this || _global).pv;\n    }\n\n    function setGroupProperty(propertyGroup) {\n      (this || _global).propertyGroup = propertyGroup;\n    }\n\n    return {\n      searchExpressions: searchExpressions,\n      getSpeedAtTime: getSpeedAtTime,\n      getVelocityAtTime: getVelocityAtTime,\n      getValueAtTime: getValueAtTime,\n      getStaticValueAtTime: getStaticValueAtTime,\n      setGroupProperty: setGroupProperty\n    };\n  }();\n  /* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\n  initialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\n\n\n  (function addPropertyDecorator() {\n    function loopOut(type, duration, durationFlag) {\n      if (!(this || _global).k || !(this || _global).keyframes) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n      if (currentFrame <= lastKeyFrame) {\n        return (this || _global).pv;\n      }\n\n      var cycleDuration;\n      var firstKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, lastKeyFrame - (this || _global).elem.data.ip);\n        } else {\n          cycleDuration = Math.abs(lastKeyFrame - (this || _global).elem.comp.globalData.frameRate * duration);\n        }\n\n        firstKeyFrame = lastKeyFrame - cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === \"pingpong\") {\n        var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if (iterations % 2 !== 0) {\n          return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n\n        var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n          }\n\n          return ret;\n        }\n\n        return (endV - initV) * repeats + current;\n      } else if (type === \"continue\") {\n        var lastValue = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(lastValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / (this || _global).comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n          }\n\n          return ret;\n        }\n\n        return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n      }\n\n      return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function loopIn(type, duration, durationFlag) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      type = type ? type.toLowerCase() : \"\";\n      var currentFrame = (this || _global).comp.renderedFrame;\n      var keyframes = (this || _global).keyframes;\n      var firstKeyFrame = keyframes[0].t;\n\n      if (currentFrame >= firstKeyFrame) {\n        return (this || _global).pv;\n      }\n\n      var cycleDuration;\n      var lastKeyFrame;\n\n      if (!durationFlag) {\n        if (!duration || duration > keyframes.length - 1) {\n          duration = keyframes.length - 1;\n        }\n\n        lastKeyFrame = keyframes[duration].t;\n        cycleDuration = lastKeyFrame - firstKeyFrame;\n      } else {\n        if (!duration) {\n          cycleDuration = Math.max(0, (this || _global).elem.data.op - firstKeyFrame);\n        } else {\n          cycleDuration = Math.abs((this || _global).elem.comp.globalData.frameRate * duration);\n        }\n\n        lastKeyFrame = firstKeyFrame + cycleDuration;\n      }\n\n      var i;\n      var len;\n      var ret;\n\n      if (type === \"pingpong\") {\n        var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n        if (iterations % 2 === 0) {\n          return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n        }\n      } else if (type === \"offset\") {\n        var initV = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var endV = this.getValueAtTime(lastKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / (this || _global).comp.globalData.frameRate, 0);\n        var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n        if ((this || _global).pv.length) {\n          ret = new Array(initV.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n          }\n\n          return ret;\n        }\n\n        return current - (endV - initV) * repeats;\n      } else if (type === \"continue\") {\n        var firstValue = this.getValueAtTime(firstKeyFrame / (this || _global).comp.globalData.frameRate, 0);\n        var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / (this || _global).comp.globalData.frameRate, 0);\n\n        if ((this || _global).pv.length) {\n          ret = new Array(firstValue.length);\n          len = ret.length;\n\n          for (i = 0; i < len; i += 1) {\n            ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n          }\n\n          return ret;\n        }\n\n        return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n      }\n\n      return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / (this || _global).comp.globalData.frameRate, 0); // eslint-disable-line\n    }\n\n    function smooth(width, samples) {\n      if (!(this || _global).k) {\n        return (this || _global).pv;\n      }\n\n      width = (width || 0.4) * 0.5;\n      samples = Math.floor(samples || 5);\n\n      if (samples <= 1) {\n        return (this || _global).pv;\n      }\n\n      var currentTime = (this || _global).comp.renderedFrame / (this || _global).comp.globalData.frameRate;\n      var initFrame = currentTime - width;\n      var endFrame = currentTime + width;\n      var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n      var i = 0;\n      var j = 0;\n      var value;\n\n      if ((this || _global).pv.length) {\n        value = createTypedArray(\"float32\", (this || _global).pv.length);\n      } else {\n        value = 0;\n      }\n\n      var sampleValue;\n\n      while (i < samples) {\n        sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n        if ((this || _global).pv.length) {\n          for (j = 0; j < (this || _global).pv.length; j += 1) {\n            value[j] += sampleValue[j];\n          }\n        } else {\n          value += sampleValue;\n        }\n\n        i += 1;\n      }\n\n      if ((this || _global).pv.length) {\n        for (j = 0; j < (this || _global).pv.length; j += 1) {\n          value[j] /= samples;\n        }\n      } else {\n        value /= samples;\n      }\n\n      return value;\n    }\n\n    function getTransformValueAtTime(time) {\n      if (!(this || _global)._transformCachingAtTime) {\n        (this || _global)._transformCachingAtTime = {\n          v: new Matrix()\n        };\n      } /// /\n\n\n      var matrix = (this || _global)._transformCachingAtTime.v;\n      matrix.cloneFromProps((this || _global).pre.props);\n\n      if ((this || _global).appliedTransformations < 1) {\n        var anchor = (this || _global).a.getValueAtTime(time);\n\n        matrix.translate(-anchor[0] * (this || _global).a.mult, -anchor[1] * (this || _global).a.mult, anchor[2] * (this || _global).a.mult);\n      }\n\n      if ((this || _global).appliedTransformations < 2) {\n        var scale = (this || _global).s.getValueAtTime(time);\n\n        matrix.scale(scale[0] * (this || _global).s.mult, scale[1] * (this || _global).s.mult, scale[2] * (this || _global).s.mult);\n      }\n\n      if ((this || _global).sk && (this || _global).appliedTransformations < 3) {\n        var skew = (this || _global).sk.getValueAtTime(time);\n\n        var skewAxis = (this || _global).sa.getValueAtTime(time);\n\n        matrix.skewFromAxis(-skew * (this || _global).sk.mult, skewAxis * (this || _global).sa.mult);\n      }\n\n      if ((this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotation = (this || _global).r.getValueAtTime(time);\n\n        matrix.rotate(-rotation * (this || _global).r.mult);\n      } else if (!(this || _global).r && (this || _global).appliedTransformations < 4) {\n        var rotationZ = (this || _global).rz.getValueAtTime(time);\n\n        var rotationY = (this || _global).ry.getValueAtTime(time);\n\n        var rotationX = (this || _global).rx.getValueAtTime(time);\n\n        var orientation = (this || _global).or.getValueAtTime(time);\n\n        matrix.rotateZ(-rotationZ * (this || _global).rz.mult).rotateY(rotationY * (this || _global).ry.mult).rotateX(rotationX * (this || _global).rx.mult).rotateZ(-orientation[2] * (this || _global).or.mult).rotateY(orientation[1] * (this || _global).or.mult).rotateX(orientation[0] * (this || _global).or.mult);\n      }\n\n      if ((this || _global).data.p && (this || _global).data.p.s) {\n        var positionX = (this || _global).px.getValueAtTime(time);\n\n        var positionY = (this || _global).py.getValueAtTime(time);\n\n        if ((this || _global).data.p.z) {\n          var positionZ = (this || _global).pz.getValueAtTime(time);\n\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, -positionZ * (this || _global).pz.mult);\n        } else {\n          matrix.translate(positionX * (this || _global).px.mult, positionY * (this || _global).py.mult, 0);\n        }\n      } else {\n        var position = (this || _global).p.getValueAtTime(time);\n\n        matrix.translate(position[0] * (this || _global).p.mult, position[1] * (this || _global).p.mult, -position[2] * (this || _global).p.mult);\n      }\n\n      return matrix; /// /\n    }\n\n    function getTransformStaticValueAtTime() {\n      return (this || _global).v.clone(new Matrix());\n    }\n\n    var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n    TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n      var prop = getTransformProperty(elem, data, container);\n\n      if (prop.dynamicProperties.length) {\n        prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      return prop;\n    };\n\n    var propertyGetProp = PropertyFactory.getProp;\n\n    PropertyFactory.getProp = function (elem, data, type, mult, container) {\n      var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n      // prop.loopOut = loopOut;\n      // prop.loopIn = loopIn;\n\n      if (prop.kf) {\n        prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n      } else {\n        prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n      }\n\n      prop.setGroupProperty = expressionHelpers.setGroupProperty;\n      prop.loopOut = loopOut;\n      prop.loopIn = loopIn;\n      prop.smooth = smooth;\n      prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n      prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n      prop.numKeys = data.a === 1 ? data.k.length : 0;\n      prop.propertyIndex = data.ix;\n      var value = 0;\n\n      if (type !== 0) {\n        value = createTypedArray(\"float32\", data.a === 1 ? data.k[0].s.length : data.k.length);\n      }\n\n      prop._cachingAtTime = {\n        lastFrame: initialDefaultFrame,\n        lastIndex: 0,\n        value: value\n      };\n      expressionHelpers.searchExpressions(elem, data, prop);\n\n      if (prop.k) {\n        container.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n\n    function getShapeValueAtTime(frameNum) {\n      // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n      if (!(this || _global)._cachingAtTime) {\n        (this || _global)._cachingAtTime = {\n          shapeValue: shapePool.clone((this || _global).pv),\n          lastIndex: 0,\n          lastTime: initialDefaultFrame\n        };\n      }\n\n      frameNum *= (this || _global).elem.globalData.frameRate;\n      frameNum -= (this || _global).offsetTime;\n\n      if (frameNum !== (this || _global)._cachingAtTime.lastTime) {\n        (this || _global)._cachingAtTime.lastIndex = (this || _global)._cachingAtTime.lastTime < frameNum ? (this || _global)._caching.lastIndex : 0;\n        (this || _global)._cachingAtTime.lastTime = frameNum;\n        this.interpolateShape(frameNum, (this || _global)._cachingAtTime.shapeValue, (this || _global)._cachingAtTime);\n      }\n\n      return (this || _global)._cachingAtTime.shapeValue;\n    }\n\n    var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n    var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n    function ShapeExpressions() {}\n\n    ShapeExpressions.prototype = {\n      vertices: function (prop, time) {\n        if ((this || _global).k) {\n          this.getValue();\n        }\n\n        var shapePath = (this || _global).v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        var i;\n        var len = shapePath._length;\n        var vertices = shapePath[prop];\n        var points = shapePath.v;\n        var arr = createSizedArray(len);\n\n        for (i = 0; i < len; i += 1) {\n          if (prop === \"i\" || prop === \"o\") {\n            arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n          } else {\n            arr[i] = [vertices[i][0], vertices[i][1]];\n          }\n        }\n\n        return arr;\n      },\n      points: function (time) {\n        return this.vertices(\"v\", time);\n      },\n      inTangents: function (time) {\n        return this.vertices(\"i\", time);\n      },\n      outTangents: function (time) {\n        return this.vertices(\"o\", time);\n      },\n      isClosed: function () {\n        return (this || _global).v.c;\n      },\n      pointOnPath: function (perc, time) {\n        var shapePath = (this || _global).v;\n\n        if (time !== undefined) {\n          shapePath = this.getValueAtTime(time, 0);\n        }\n\n        if (!(this || _global)._segmentsLength) {\n          (this || _global)._segmentsLength = bez.getSegmentsLength(shapePath);\n        }\n\n        var segmentsLength = (this || _global)._segmentsLength;\n        var lengths = segmentsLength.lengths;\n        var lengthPos = segmentsLength.totalLength * perc;\n        var i = 0;\n        var len = lengths.length;\n        var accumulatedLength = 0;\n        var pt;\n\n        while (i < len) {\n          if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n            var initIndex = i;\n            var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n            var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n            pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n            break;\n          } else {\n            accumulatedLength += lengths[i].addedLength;\n          }\n\n          i += 1;\n        }\n\n        if (!pt) {\n          pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n        }\n\n        return pt;\n      },\n      vectorOnPath: function (perc, time, vectorType) {\n        // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n        if (perc == 1) {\n          // eslint-disable-line eqeqeq\n          perc = (this || _global).v.c;\n        } else if (perc == 0) {\n          // eslint-disable-line eqeqeq\n          perc = 0.999;\n        }\n\n        var pt1 = this.pointOnPath(perc, time);\n        var pt2 = this.pointOnPath(perc + 0.001, time);\n        var xLength = pt2[0] - pt1[0];\n        var yLength = pt2[1] - pt1[1];\n        var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n        if (magnitude === 0) {\n          return [0, 0];\n        }\n\n        var unitVector = vectorType === \"tangent\" ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n        return unitVector;\n      },\n      tangentOnPath: function (perc, time) {\n        return this.vectorOnPath(perc, time, \"tangent\");\n      },\n      normalOnPath: function (perc, time) {\n        return this.vectorOnPath(perc, time, \"normal\");\n      },\n      setGroupProperty: expressionHelpers.setGroupProperty,\n      getValueAtTime: expressionHelpers.getStaticValueAtTime\n    };\n    extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n    extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n    KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n    KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n    var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n    ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n      var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n      prop.propertyIndex = data.ix;\n      prop.lock = false;\n\n      if (type === 3) {\n        expressionHelpers.searchExpressions(elem, data.pt, prop);\n      } else if (type === 4) {\n        expressionHelpers.searchExpressions(elem, data.ks, prop);\n      }\n\n      if (prop.k) {\n        elem.addDynamicProperty(prop);\n      }\n\n      return prop;\n    };\n  })();\n  /* global ExpressionManager, TextProperty */\n\n\n  (function addDecorator() {\n    function searchExpressions() {\n      if ((this || _global).data.d.x) {\n        (this || _global).calculateExpression = ExpressionManager.initiateExpression.bind(this || _global)((this || _global).elem, (this || _global).data.d, this || _global);\n        this.addEffect((this || _global).getExpressionValue.bind(this || _global));\n        return true;\n      }\n\n      return null;\n    }\n\n    TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n      var newValue = this.calculateExpression(text);\n\n      if (currentValue.t !== newValue) {\n        var newData = {};\n        this.copyData(newData, currentValue);\n        newData.t = newValue.toString();\n        newData.__complete = false;\n        return newData;\n      }\n\n      return currentValue;\n    };\n\n    TextProperty.prototype.searchProperty = function () {\n      var isKeyframed = this.searchKeyframes();\n      var hasExpressions = this.searchExpressions();\n      (this || _global).kf = isKeyframed || hasExpressions;\n      return (this || _global).kf;\n    };\n\n    TextProperty.prototype.searchExpressions = searchExpressions;\n  })();\n  /* global propertyGroupFactory, PropertyInterface */\n\n  /* exported ShapePathInterface */\n\n\n  var ShapePathInterface = function () {\n    return function pathInterfaceFactory(shape, view, propertyGroup) {\n      var prop = view.sh;\n\n      function interfaceFunction(val) {\n        if (val === \"Shape\" || val === \"shape\" || val === \"Path\" || val === \"path\" || val === \"ADBE Vector Shape\" || val === 2) {\n          return interfaceFunction.path;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      prop.setGroupProperty(PropertyInterface(\"Path\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        path: {\n          get: function () {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        shape: {\n          get: function () {\n            if (prop.k) {\n              prop.getValue();\n            }\n\n            return prop;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        ix: {\n          value: shape.ix\n        },\n        propertyIndex: {\n          value: shape.ix\n        },\n        mn: {\n          value: shape.mn\n        },\n        propertyGroup: {\n          value: propertyGroup\n        }\n      });\n      return interfaceFunction;\n    };\n  }();\n  /* exported propertyGroupFactory */\n\n\n  var propertyGroupFactory = function () {\n    return function (interfaceFunction, parentPropertyGroup) {\n      return function (val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return parentPropertyGroup(val - 1);\n      };\n    };\n  }();\n  /* exported PropertyInterface */\n\n\n  var PropertyInterface = function () {\n    return function (propertyName, propertyGroup) {\n      var interfaceFunction = {\n        _name: propertyName\n      };\n\n      function _propertyGroup(val) {\n        val = val === undefined ? 1 : val;\n\n        if (val <= 0) {\n          return interfaceFunction;\n        }\n\n        return propertyGroup(val - 1);\n      }\n\n      return _propertyGroup;\n    };\n  }();\n  /* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\n\n  /* exported ShapeExpressionInterface */\n\n\n  var ShapeExpressionInterface = function () {\n    function iterateElements(shapes, view, propertyGroup) {\n      var arr = [];\n      var i;\n      var len = shapes ? shapes.length : 0;\n\n      for (i = 0; i < len; i += 1) {\n        if (shapes[i].ty === \"gr\") {\n          arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"fl\") {\n          arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"st\") {\n          arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"tm\") {\n          arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"tr\") {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n        } else if (shapes[i].ty === \"el\") {\n          arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"sr\") {\n          arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"sh\") {\n          arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rc\") {\n          arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rd\") {\n          arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n        } else if (shapes[i].ty === \"rp\") {\n          arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n        }\n      }\n\n      return arr;\n    }\n\n    function contentsInterfaceFactory(shape, view, propertyGroup) {\n      var interfaces;\n\n      var interfaceFunction = function _interfaceFunction(value) {\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        if (typeof value === \"number\") {\n          return interfaces[value - 1];\n        }\n\n        return null;\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n      interfaceFunction.numProperties = interfaces.length;\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.transform = transformInterface;\n      interfaceFunction.propertyIndex = shape.cix;\n      interfaceFunction._name = shape.nm;\n      return interfaceFunction;\n    }\n\n    function groupInterfaceFactory(shape, view, propertyGroup) {\n      var interfaceFunction = function _interfaceFunction(value) {\n        switch (value) {\n          case \"ADBE Vectors Group\":\n          case \"Contents\":\n          case 2:\n            return interfaceFunction.content;\n          // Not necessary for now. Keeping them here in case a new case appears\n          // case 'ADBE Vector Transform Group':\n          // case 3:\n\n          default:\n            return interfaceFunction.transform;\n        }\n      };\n\n      interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n      var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n      var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n      interfaceFunction.content = content;\n      interfaceFunction.transform = transformInterface;\n      Object.defineProperty(interfaceFunction, \"_name\", {\n        get: function () {\n          return shape.nm;\n        }\n      }); // interfaceFunction.content = interfaceFunction;\n\n      interfaceFunction.numProperties = shape.np;\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.nm = shape.nm;\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function fillInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === \"Color\" || val === \"color\") {\n          return interfaceFunction.color;\n        }\n\n        if (val === \"Opacity\" || val === \"opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface(\"Color\", propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Opacity\", propertyGroup));\n      return interfaceFunction;\n    }\n\n    function strokeInterfaceFactory(shape, view, propertyGroup) {\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n      function addPropertyToDashOb(i) {\n        Object.defineProperty(dashOb, shape.d[i].nm, {\n          get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n        });\n      }\n\n      var i;\n      var len = shape.d ? shape.d.length : 0;\n      var dashOb = {};\n\n      for (i = 0; i < len; i += 1) {\n        addPropertyToDashOb(i);\n        view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n      }\n\n      function interfaceFunction(val) {\n        if (val === \"Color\" || val === \"color\") {\n          return interfaceFunction.color;\n        }\n\n        if (val === \"Opacity\" || val === \"opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        if (val === \"Stroke Width\" || val === \"stroke width\") {\n          return interfaceFunction.strokeWidth;\n        }\n\n        return null;\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        color: {\n          get: ExpressionPropertyInterface(view.c)\n        },\n        opacity: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        strokeWidth: {\n          get: ExpressionPropertyInterface(view.w)\n        },\n        dash: {\n          get: function () {\n            return dashOb;\n          }\n        },\n        _name: {\n          value: shape.nm\n        },\n        mn: {\n          value: shape.mn\n        }\n      });\n      view.c.setGroupProperty(PropertyInterface(\"Color\", _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      view.w.setGroupProperty(PropertyInterface(\"Stroke Width\", _propertyGroup));\n      return interfaceFunction;\n    }\n\n    function trimInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(val) {\n        if (val === shape.e.ix || val === \"End\" || val === \"end\") {\n          return interfaceFunction.end;\n        }\n\n        if (val === shape.s.ix) {\n          return interfaceFunction.start;\n        }\n\n        if (val === shape.o.ix) {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      view.s.setGroupProperty(PropertyInterface(\"Start\", _propertyGroup));\n      view.e.setGroupProperty(PropertyInterface(\"End\", _propertyGroup));\n      view.o.setGroupProperty(PropertyInterface(\"Offset\", _propertyGroup));\n      interfaceFunction.propertyIndex = shape.ix;\n      interfaceFunction.propertyGroup = propertyGroup;\n      Object.defineProperties(interfaceFunction, {\n        start: {\n          get: ExpressionPropertyInterface(view.s)\n        },\n        end: {\n          get: ExpressionPropertyInterface(view.e)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(view.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function transformInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.a.ix === value || value === \"Anchor Point\") {\n          return interfaceFunction.anchorPoint;\n        }\n\n        if (shape.o.ix === value || value === \"Opacity\") {\n          return interfaceFunction.opacity;\n        }\n\n        if (shape.p.ix === value || value === \"Position\") {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value || value === \"Rotation\" || value === \"ADBE Vector Rotation\") {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.s.ix === value || value === \"Scale\") {\n          return interfaceFunction.scale;\n        }\n\n        if (shape.sk && shape.sk.ix === value || value === \"Skew\") {\n          return interfaceFunction.skew;\n        }\n\n        if (shape.sa && shape.sa.ix === value || value === \"Skew Axis\") {\n          return interfaceFunction.skewAxis;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      view.transform.mProps.o.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      view.transform.mProps.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      view.transform.mProps.a.setGroupProperty(PropertyInterface(\"Anchor Point\", _propertyGroup));\n      view.transform.mProps.s.setGroupProperty(PropertyInterface(\"Scale\", _propertyGroup));\n      view.transform.mProps.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n\n      if (view.transform.mProps.sk) {\n        view.transform.mProps.sk.setGroupProperty(PropertyInterface(\"Skew\", _propertyGroup));\n        view.transform.mProps.sa.setGroupProperty(PropertyInterface(\"Skew Angle\", _propertyGroup));\n      }\n\n      view.transform.op.setGroupProperty(PropertyInterface(\"Opacity\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        opacity: {\n          get: ExpressionPropertyInterface(view.transform.mProps.o)\n        },\n        position: {\n          get: ExpressionPropertyInterface(view.transform.mProps.p)\n        },\n        anchorPoint: {\n          get: ExpressionPropertyInterface(view.transform.mProps.a)\n        },\n        scale: {\n          get: ExpressionPropertyInterface(view.transform.mProps.s)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(view.transform.mProps.r)\n        },\n        skew: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sk)\n        },\n        skewAxis: {\n          get: ExpressionPropertyInterface(view.transform.mProps.sa)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.ty = \"tr\";\n      interfaceFunction.mn = shape.mn;\n      interfaceFunction.propertyGroup = propertyGroup;\n      return interfaceFunction;\n    }\n\n    function ellipseInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.s.ix === value) {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      interfaceFunction.propertyIndex = shape.ix;\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      prop.s.setGroupProperty(PropertyInterface(\"Size\", _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function starInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.rotation;\n        }\n\n        if (shape.pt.ix === value) {\n          return interfaceFunction.points;\n        }\n\n        if (shape.or.ix === value || value === \"ADBE Vector Star Outer Radius\") {\n          return interfaceFunction.outerRadius;\n        }\n\n        if (shape.os.ix === value) {\n          return interfaceFunction.outerRoundness;\n        }\n\n        if (shape.ir && (shape.ir.ix === value || value === \"ADBE Vector Star Inner Radius\")) {\n          return interfaceFunction.innerRadius;\n        }\n\n        if (shape.is && shape.is.ix === value) {\n          return interfaceFunction.innerRoundness;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.or.setGroupProperty(PropertyInterface(\"Outer Radius\", _propertyGroup));\n      prop.os.setGroupProperty(PropertyInterface(\"Outer Roundness\", _propertyGroup));\n      prop.pt.setGroupProperty(PropertyInterface(\"Points\", _propertyGroup));\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n\n      if (shape.ir) {\n        prop.ir.setGroupProperty(PropertyInterface(\"Inner Radius\", _propertyGroup));\n        prop.is.setGroupProperty(PropertyInterface(\"Inner Roundness\", _propertyGroup));\n      }\n\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        rotation: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        points: {\n          get: ExpressionPropertyInterface(prop.pt)\n        },\n        outerRadius: {\n          get: ExpressionPropertyInterface(prop.or)\n        },\n        outerRoundness: {\n          get: ExpressionPropertyInterface(prop.os)\n        },\n        innerRadius: {\n          get: ExpressionPropertyInterface(prop.ir)\n        },\n        innerRoundness: {\n          get: ExpressionPropertyInterface(prop.is)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function rectInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.p.ix === value) {\n          return interfaceFunction.position;\n        }\n\n        if (shape.r.ix === value) {\n          return interfaceFunction.roundness;\n        }\n\n        if (shape.s.ix === value || value === \"Size\" || value === \"ADBE Vector Rect Size\") {\n          return interfaceFunction.size;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view.sh.ty === \"tm\" ? view.sh.prop : view.sh;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.p.setGroupProperty(PropertyInterface(\"Position\", _propertyGroup));\n      prop.s.setGroupProperty(PropertyInterface(\"Size\", _propertyGroup));\n      prop.r.setGroupProperty(PropertyInterface(\"Rotation\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        position: {\n          get: ExpressionPropertyInterface(prop.p)\n        },\n        roundness: {\n          get: ExpressionPropertyInterface(prop.r)\n        },\n        size: {\n          get: ExpressionPropertyInterface(prop.s)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function roundedInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.r.ix === value || value === \"Round Corners 1\") {\n          return interfaceFunction.radius;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.rd.setGroupProperty(PropertyInterface(\"Radius\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        radius: {\n          get: ExpressionPropertyInterface(prop.rd)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    function repeaterInterfaceFactory(shape, view, propertyGroup) {\n      function interfaceFunction(value) {\n        if (shape.c.ix === value || value === \"Copies\") {\n          return interfaceFunction.copies;\n        }\n\n        if (shape.o.ix === value || value === \"Offset\") {\n          return interfaceFunction.offset;\n        }\n\n        return null;\n      }\n\n      var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n      var prop = view;\n      interfaceFunction.propertyIndex = shape.ix;\n      prop.c.setGroupProperty(PropertyInterface(\"Copies\", _propertyGroup));\n      prop.o.setGroupProperty(PropertyInterface(\"Offset\", _propertyGroup));\n      Object.defineProperties(interfaceFunction, {\n        copies: {\n          get: ExpressionPropertyInterface(prop.c)\n        },\n        offset: {\n          get: ExpressionPropertyInterface(prop.o)\n        },\n        _name: {\n          value: shape.nm\n        }\n      });\n      interfaceFunction.mn = shape.mn;\n      return interfaceFunction;\n    }\n\n    return function (shapes, view, propertyGroup) {\n      var interfaces;\n\n      function _interfaceFunction(value) {\n        if (typeof value === \"number\") {\n          value = value === undefined ? 1 : value;\n\n          if (value === 0) {\n            return propertyGroup;\n          }\n\n          return interfaces[value - 1];\n        }\n\n        var i = 0;\n        var len = interfaces.length;\n\n        while (i < len) {\n          if (interfaces[i]._name === value) {\n            return interfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      function parentGroupWrapper() {\n        return propertyGroup;\n      }\n\n      _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n      interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n      _interfaceFunction.numProperties = interfaces.length;\n      _interfaceFunction._name = \"Contents\";\n      return _interfaceFunction;\n    };\n  }();\n  /* exported TextExpressionInterface */\n\n\n  var TextExpressionInterface = function () {\n    return function (elem) {\n      var _prevValue;\n\n      var _sourceText;\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case \"ADBE Text Document\":\n            return _thisLayerFunction.sourceText;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisLayerFunction, \"sourceText\", {\n        get: function () {\n          elem.textProperty.getValue();\n          var stringValue = elem.textProperty.currentData.t;\n\n          if (stringValue !== _prevValue) {\n            elem.textProperty.currentData.t = _prevValue;\n            _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n            // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n            _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n          }\n\n          return _sourceText;\n        }\n      });\n      return _thisLayerFunction;\n    };\n  }();\n  /* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\n\n  /* exported LayerExpressionInterface */\n\n\n  var LayerExpressionInterface = function () {\n    function getMatrix(time) {\n      var toWorldMat = new Matrix();\n\n      if (time !== undefined) {\n        var propMatrix = (this || _global)._elem.finalTransform.mProp.getValueAtTime(time);\n\n        propMatrix.clone(toWorldMat);\n      } else {\n        var transformMat = (this || _global)._elem.finalTransform.mProp;\n        transformMat.applyToMatrix(toWorldMat);\n      }\n\n      return toWorldMat;\n    }\n\n    function toWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function toWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.applyPoint(toWorldMat, arr);\n    }\n\n    function fromWorldVec(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      toWorldMat.props[12] = 0;\n      toWorldMat.props[13] = 0;\n      toWorldMat.props[14] = 0;\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function fromWorld(arr, time) {\n      var toWorldMat = this.getMatrix(time);\n      return this.invertPoint(toWorldMat, arr);\n    }\n\n    function applyPoint(matrix, arr) {\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n    }\n\n    function invertPoint(matrix, arr) {\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n        }\n      }\n\n      return matrix.inversePoint(arr);\n    }\n\n    function fromComp(arr) {\n      var toWorldMat = new Matrix();\n      toWorldMat.reset();\n\n      (this || _global)._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n      if ((this || _global)._elem.hierarchy && (this || _global)._elem.hierarchy.length) {\n        var i;\n        var len = (this || _global)._elem.hierarchy.length;\n\n        for (i = 0; i < len; i += 1) {\n          (this || _global)._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n        }\n\n        return toWorldMat.inversePoint(arr);\n      }\n\n      return toWorldMat.inversePoint(arr);\n    }\n\n    function sampleImage() {\n      return [1, 1, 1, 1];\n    }\n\n    return function (elem) {\n      var transformInterface;\n\n      function _registerMaskInterface(maskManager) {\n        _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n      }\n\n      function _registerEffectsInterface(effects) {\n        _thisLayerFunction.effect = effects;\n      }\n\n      function _thisLayerFunction(name) {\n        switch (name) {\n          case \"ADBE Root Vectors Group\":\n          case \"Contents\":\n          case 2:\n            return _thisLayerFunction.shapeInterface;\n\n          case 1:\n          case 6:\n          case \"Transform\":\n          case \"transform\":\n          case \"ADBE Transform Group\":\n            return transformInterface;\n\n          case 4:\n          case \"ADBE Effect Parade\":\n          case \"effects\":\n          case \"Effects\":\n            return _thisLayerFunction.effect;\n\n          case \"ADBE Text Properties\":\n            return _thisLayerFunction.textInterface;\n\n          default:\n            return null;\n        }\n      }\n\n      _thisLayerFunction.getMatrix = getMatrix;\n      _thisLayerFunction.invertPoint = invertPoint;\n      _thisLayerFunction.applyPoint = applyPoint;\n      _thisLayerFunction.toWorld = toWorld;\n      _thisLayerFunction.toWorldVec = toWorldVec;\n      _thisLayerFunction.fromWorld = fromWorld;\n      _thisLayerFunction.fromWorldVec = fromWorldVec;\n      _thisLayerFunction.toComp = toWorld;\n      _thisLayerFunction.fromComp = fromComp;\n      _thisLayerFunction.sampleImage = sampleImage;\n      _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n      _thisLayerFunction._elem = elem;\n      transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n      var anchorPointDescriptor = getDescriptor(transformInterface, \"anchorPoint\");\n      Object.defineProperties(_thisLayerFunction, {\n        hasParent: {\n          get: function () {\n            return elem.hierarchy.length;\n          }\n        },\n        parent: {\n          get: function () {\n            return elem.hierarchy[0].layerInterface;\n          }\n        },\n        rotation: getDescriptor(transformInterface, \"rotation\"),\n        scale: getDescriptor(transformInterface, \"scale\"),\n        position: getDescriptor(transformInterface, \"position\"),\n        opacity: getDescriptor(transformInterface, \"opacity\"),\n        anchorPoint: anchorPointDescriptor,\n        anchor_point: anchorPointDescriptor,\n        transform: {\n          get: function () {\n            return transformInterface;\n          }\n        },\n        active: {\n          get: function () {\n            return elem.isInRange;\n          }\n        }\n      });\n      _thisLayerFunction.startTime = elem.data.st;\n      _thisLayerFunction.index = elem.data.ind;\n      _thisLayerFunction.source = elem.data.refId;\n      _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n      _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n      _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n      _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n      _thisLayerFunction._name = elem.data.nm;\n      _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n      _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n      return _thisLayerFunction;\n    };\n  }();\n  /* global */\n\n  /* exported FootageInterface */\n\n\n  var FootageInterface = function () {\n    var outlineInterfaceFactory = function (elem) {\n      var currentPropertyName = \"\";\n      var currentProperty = elem.getFootageData();\n\n      function init() {\n        currentPropertyName = \"\";\n        currentProperty = elem.getFootageData();\n        return searchProperty;\n      }\n\n      function searchProperty(value) {\n        if (currentProperty[value]) {\n          currentPropertyName = value;\n          currentProperty = currentProperty[value];\n\n          if (typeof currentProperty === \"object\") {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        var propertyNameIndex = value.indexOf(currentPropertyName);\n\n        if (propertyNameIndex !== -1) {\n          var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n          currentProperty = currentProperty[index];\n\n          if (typeof currentProperty === \"object\") {\n            return searchProperty;\n          }\n\n          return currentProperty;\n        }\n\n        return \"\";\n      }\n\n      return init;\n    };\n\n    var dataInterfaceFactory = function (elem) {\n      function interfaceFunction(value) {\n        if (value === \"Outline\") {\n          return interfaceFunction.outlineInterface();\n        }\n\n        return null;\n      }\n\n      interfaceFunction._name = \"Outline\";\n      interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n      return interfaceFunction;\n    };\n\n    return function (elem) {\n      function _interfaceFunction(value) {\n        if (value === \"Data\") {\n          return _interfaceFunction.dataInterface;\n        }\n\n        return null;\n      }\n\n      _interfaceFunction._name = \"Data\";\n      _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n      return _interfaceFunction;\n    };\n  }();\n  /* exported CompExpressionInterface */\n\n\n  var CompExpressionInterface = function () {\n    return function (comp) {\n      function _thisLayerFunction(name) {\n        var i = 0;\n        var len = comp.layers.length;\n\n        while (i < len) {\n          if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n            return comp.elements[i].layerInterface;\n          }\n\n          i += 1;\n        }\n\n        return null; // return {active:false};\n      }\n\n      Object.defineProperty(_thisLayerFunction, \"_name\", {\n        value: comp.data.nm\n      });\n      _thisLayerFunction.layer = _thisLayerFunction;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n      _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n      _thisLayerFunction.pixelAspect = 1;\n      _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n      _thisLayerFunction.displayStartTime = 0;\n      _thisLayerFunction.numLayers = comp.layers.length;\n      return _thisLayerFunction;\n    };\n  }();\n  /* global ExpressionPropertyInterface */\n\n  /* exported TransformExpressionInterface */\n\n\n  var TransformExpressionInterface = function () {\n    return function (transform) {\n      function _thisFunction(name) {\n        switch (name) {\n          case \"scale\":\n          case \"Scale\":\n          case \"ADBE Scale\":\n          case 6:\n            return _thisFunction.scale;\n\n          case \"rotation\":\n          case \"Rotation\":\n          case \"ADBE Rotation\":\n          case \"ADBE Rotate Z\":\n          case 10:\n            return _thisFunction.rotation;\n\n          case \"ADBE Rotate X\":\n            return _thisFunction.xRotation;\n\n          case \"ADBE Rotate Y\":\n            return _thisFunction.yRotation;\n\n          case \"position\":\n          case \"Position\":\n          case \"ADBE Position\":\n          case 2:\n            return _thisFunction.position;\n\n          case \"ADBE Position_0\":\n            return _thisFunction.xPosition;\n\n          case \"ADBE Position_1\":\n            return _thisFunction.yPosition;\n\n          case \"ADBE Position_2\":\n            return _thisFunction.zPosition;\n\n          case \"anchorPoint\":\n          case \"AnchorPoint\":\n          case \"Anchor Point\":\n          case \"ADBE AnchorPoint\":\n          case 1:\n            return _thisFunction.anchorPoint;\n\n          case \"opacity\":\n          case \"Opacity\":\n          case 11:\n            return _thisFunction.opacity;\n\n          default:\n            return null;\n        }\n      }\n\n      Object.defineProperty(_thisFunction, \"rotation\", {\n        get: ExpressionPropertyInterface(transform.r || transform.rz)\n      });\n      Object.defineProperty(_thisFunction, \"zRotation\", {\n        get: ExpressionPropertyInterface(transform.rz || transform.r)\n      });\n      Object.defineProperty(_thisFunction, \"xRotation\", {\n        get: ExpressionPropertyInterface(transform.rx)\n      });\n      Object.defineProperty(_thisFunction, \"yRotation\", {\n        get: ExpressionPropertyInterface(transform.ry)\n      });\n      Object.defineProperty(_thisFunction, \"scale\", {\n        get: ExpressionPropertyInterface(transform.s)\n      });\n\n      var _px;\n\n      var _py;\n\n      var _pz;\n\n      var _transformFactory;\n\n      if (transform.p) {\n        _transformFactory = ExpressionPropertyInterface(transform.p);\n      } else {\n        _px = ExpressionPropertyInterface(transform.px);\n        _py = ExpressionPropertyInterface(transform.py);\n\n        if (transform.pz) {\n          _pz = ExpressionPropertyInterface(transform.pz);\n        }\n      }\n\n      Object.defineProperty(_thisFunction, \"position\", {\n        get: function () {\n          if (transform.p) {\n            return _transformFactory();\n          }\n\n          return [_px(), _py(), _pz ? _pz() : 0];\n        }\n      });\n      Object.defineProperty(_thisFunction, \"xPosition\", {\n        get: ExpressionPropertyInterface(transform.px)\n      });\n      Object.defineProperty(_thisFunction, \"yPosition\", {\n        get: ExpressionPropertyInterface(transform.py)\n      });\n      Object.defineProperty(_thisFunction, \"zPosition\", {\n        get: ExpressionPropertyInterface(transform.pz)\n      });\n      Object.defineProperty(_thisFunction, \"anchorPoint\", {\n        get: ExpressionPropertyInterface(transform.a)\n      });\n      Object.defineProperty(_thisFunction, \"opacity\", {\n        get: ExpressionPropertyInterface(transform.o)\n      });\n      Object.defineProperty(_thisFunction, \"skew\", {\n        get: ExpressionPropertyInterface(transform.sk)\n      });\n      Object.defineProperty(_thisFunction, \"skewAxis\", {\n        get: ExpressionPropertyInterface(transform.sa)\n      });\n      Object.defineProperty(_thisFunction, \"orientation\", {\n        get: ExpressionPropertyInterface(transform.or)\n      });\n      return _thisFunction;\n    };\n  }();\n  /* exported ProjectInterface */\n\n\n  ProjectInterface = function () {\n    function registerComposition(comp) {\n      (this || _global).compositions.push(comp);\n    }\n\n    return function () {\n      function _thisProjectFunction(name) {\n        var i = 0;\n        var len = (this || _global).compositions.length;\n\n        while (i < len) {\n          if ((this || _global).compositions[i].data && (this || _global).compositions[i].data.nm === name) {\n            if ((this || _global).compositions[i].prepareFrame && (this || _global).compositions[i].data.xt) {\n              (this || _global).compositions[i].prepareFrame((this || _global).currentFrame);\n            }\n\n            return (this || _global).compositions[i].compInterface;\n          }\n\n          i += 1;\n        }\n\n        return null;\n      }\n\n      _thisProjectFunction.compositions = [];\n      _thisProjectFunction.currentFrame = 0;\n      _thisProjectFunction.registerComposition = registerComposition;\n      return _thisProjectFunction;\n    };\n  }();\n  /* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\n\n  /* exported EffectsExpressionInterface */\n\n\n  var EffectsExpressionInterface = function () {\n    var ob = {\n      createEffectsInterface: createEffectsInterface\n    };\n\n    function createEffectsInterface(elem, propertyGroup) {\n      if (elem.effectsManager) {\n        var effectElements = [];\n        var effectsData = elem.data.ef;\n        var i;\n        var len = elem.effectsManager.effectElements.length;\n\n        for (i = 0; i < len; i += 1) {\n          effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n        }\n\n        var effects = elem.data.ef || [];\n\n        var groupInterface = function (name) {\n          i = 0;\n          len = effects.length;\n\n          while (i < len) {\n            if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n              return effectElements[i];\n            }\n\n            i += 1;\n          }\n\n          return null;\n        };\n\n        Object.defineProperty(groupInterface, \"numProperties\", {\n          get: function () {\n            return effects.length;\n          }\n        });\n        return groupInterface;\n      }\n\n      return null;\n    }\n\n    function createGroupInterface(data, elements, propertyGroup, elem) {\n      function groupInterface(name) {\n        var effects = data.ef;\n        var i = 0;\n        var len = effects.length;\n\n        while (i < len) {\n          if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n            if (effects[i].ty === 5) {\n              return effectElements[i];\n            }\n\n            return effectElements[i]();\n          }\n\n          i += 1;\n        }\n\n        throw new Error();\n      }\n\n      var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n      var effectElements = [];\n      var i;\n      var len = data.ef.length;\n\n      for (i = 0; i < len; i += 1) {\n        if (data.ef[i].ty === 5) {\n          effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n        } else {\n          effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n        }\n      }\n\n      if (data.mn === \"ADBE Color Control\") {\n        Object.defineProperty(groupInterface, \"color\", {\n          get: function () {\n            return effectElements[0]();\n          }\n        });\n      }\n\n      Object.defineProperties(groupInterface, {\n        numProperties: {\n          get: function () {\n            return data.np;\n          }\n        },\n        _name: {\n          value: data.nm\n        },\n        propertyGroup: {\n          value: _propertyGroup\n        }\n      });\n      groupInterface.enabled = data.en !== 0;\n      groupInterface.active = groupInterface.enabled;\n      return groupInterface;\n    }\n\n    function createValueInterface(element, type, elem, propertyGroup) {\n      var expressionProperty = ExpressionPropertyInterface(element.p);\n\n      function interfaceFunction() {\n        if (type === 10) {\n          return elem.comp.compInterface(element.p.v);\n        }\n\n        return expressionProperty();\n      }\n\n      if (element.p.setGroupProperty) {\n        element.p.setGroupProperty(PropertyInterface(\"\", propertyGroup));\n      }\n\n      return interfaceFunction;\n    }\n\n    return ob;\n  }();\n  /* global createSizedArray */\n\n  /* exported MaskManagerInterface */\n\n\n  var MaskManagerInterface = function () {\n    function MaskInterface(mask, data) {\n      (this || _global)._mask = mask;\n      (this || _global)._data = data;\n    }\n\n    Object.defineProperty(MaskInterface.prototype, \"maskPath\", {\n      get: function () {\n        if ((this || _global)._mask.prop.k) {\n          (this || _global)._mask.prop.getValue();\n        }\n\n        return (this || _global)._mask.prop;\n      }\n    });\n    Object.defineProperty(MaskInterface.prototype, \"maskOpacity\", {\n      get: function () {\n        if ((this || _global)._mask.op.k) {\n          (this || _global)._mask.op.getValue();\n        }\n\n        return (this || _global)._mask.op.v * 100;\n      }\n    });\n\n    var MaskManager = function (maskManager) {\n      var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n      var i;\n      var len = maskManager.viewData.length;\n\n      for (i = 0; i < len; i += 1) {\n        _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n      }\n\n      var maskFunction = function (name) {\n        i = 0;\n\n        while (i < len) {\n          if (maskManager.masksProperties[i].nm === name) {\n            return _masksInterfaces[i];\n          }\n\n          i += 1;\n        }\n\n        return null;\n      };\n\n      return maskFunction;\n    };\n\n    return MaskManager;\n  }();\n  /* global createTypedArray */\n\n  /* exported ExpressionPropertyInterface */\n\n\n  var ExpressionPropertyInterface = function () {\n    var defaultUnidimensionalValue = {\n      pv: 0,\n      v: 0,\n      mult: 1\n    };\n    var defaultMultidimensionalValue = {\n      pv: [0, 0, 0],\n      v: [0, 0, 0],\n      mult: 1\n    };\n\n    function completeProperty(expressionValue, property, type) {\n      Object.defineProperty(expressionValue, \"velocity\", {\n        get: function () {\n          return property.getVelocityAtTime(property.comp.currentFrame);\n        }\n      });\n      expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n      expressionValue.key = function (pos) {\n        if (!expressionValue.numKeys) {\n          return 0;\n        }\n\n        var value = \"\";\n\n        if (\"s\" in property.keyframes[pos - 1]) {\n          value = property.keyframes[pos - 1].s;\n        } else if (\"e\" in property.keyframes[pos - 2]) {\n          value = property.keyframes[pos - 2].e;\n        } else {\n          value = property.keyframes[pos - 2].s;\n        }\n\n        var valueProp = type === \"unidimensional\" ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n        valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n        valueProp.value = type === \"unidimensional\" ? value[0] : value;\n        return valueProp;\n      };\n\n      expressionValue.valueAtTime = property.getValueAtTime;\n      expressionValue.speedAtTime = property.getSpeedAtTime;\n      expressionValue.velocityAtTime = property.getVelocityAtTime;\n      expressionValue.propertyGroup = property.propertyGroup;\n    }\n\n    function UnidimensionalPropertyInterface(property) {\n      if (!property || !(\"pv\" in property)) {\n        property = defaultUnidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var val = property.pv * mult;\n      var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n      expressionValue.value = val;\n      completeProperty(expressionValue, property, \"unidimensional\");\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        val = property.v * mult;\n\n        if (expressionValue.value !== val) {\n          expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n          expressionValue.value = val;\n          completeProperty(expressionValue, property, \"unidimensional\");\n        }\n\n        return expressionValue;\n      };\n    }\n\n    function MultidimensionalPropertyInterface(property) {\n      if (!property || !(\"pv\" in property)) {\n        property = defaultMultidimensionalValue;\n      }\n\n      var mult = 1 / property.mult;\n      var len = property.data && property.data.l || property.pv.length;\n      var expressionValue = createTypedArray(\"float32\", len);\n      var arrValue = createTypedArray(\"float32\", len);\n      expressionValue.value = arrValue;\n      completeProperty(expressionValue, property, \"multidimensional\");\n      return function () {\n        if (property.k) {\n          property.getValue();\n        }\n\n        for (var i = 0; i < len; i += 1) {\n          arrValue[i] = property.v[i] * mult;\n          expressionValue[i] = arrValue[i];\n        }\n\n        return expressionValue;\n      };\n    } // TODO: try to avoid using this getter\n\n\n    function defaultGetter() {\n      return defaultUnidimensionalValue;\n    }\n\n    return function (property) {\n      if (!property) {\n        return defaultGetter;\n      }\n\n      if (property.propType === \"unidimensional\") {\n        return UnidimensionalPropertyInterface(property);\n      }\n\n      return MultidimensionalPropertyInterface(property);\n    };\n  }();\n  /* global expressionHelpers, TextSelectorProp, ExpressionManager */\n\n  /* exported TextExpressionSelectorProp */\n\n\n  (function () {\n    var TextExpressionSelectorProp = function () {\n      // eslint-disable-line no-unused-vars\n      function getValueProxy(index, total) {\n        (this || _global).textIndex = index + 1;\n        (this || _global).textTotal = total;\n        (this || _global).v = this.getValue() * (this || _global).mult;\n        return (this || _global).v;\n      }\n\n      return function TextExpressionSelectorPropFactory(elem, data) {\n        (this || _global).pv = 1;\n        (this || _global).comp = elem.comp;\n        (this || _global).elem = elem;\n        (this || _global).mult = 0.01;\n        (this || _global).propType = \"textSelector\";\n        (this || _global).textTotal = data.totalChars;\n        (this || _global).selectorValue = 100;\n        (this || _global).lastValue = [1, 1, 1];\n        (this || _global).k = true;\n        (this || _global).x = true;\n        (this || _global).getValue = ExpressionManager.initiateExpression.bind(this || _global)(elem, data, this || _global);\n        (this || _global).getMult = getValueProxy;\n        (this || _global).getVelocityAtTime = expressionHelpers.getVelocityAtTime;\n\n        if ((this || _global).kf) {\n          (this || _global).getValueAtTime = expressionHelpers.getValueAtTime.bind(this || _global);\n        } else {\n          (this || _global).getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this || _global);\n        }\n\n        (this || _global).setGroupProperty = expressionHelpers.setGroupProperty;\n      };\n    }();\n\n    var propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\n\n    TextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\n      if (data.t === 1) {\n        return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\n      }\n\n      return propertyGetTextProp(elem, data, arr);\n    };\n  })();\n  /* global PropertyFactory */\n\n  /* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\n\n\n  function SliderEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function AngleEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function ColorEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function PointEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n  }\n\n  function LayerIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function MaskIndexEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function CheckboxEffect(data, elem, container) {\n    (this || _global).p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n  }\n\n  function NoValueEffect() {\n    (this || _global).p = {};\n  }\n  /* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\n  MaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\n\n\n  function EffectsManager(data, element) {\n    var effects = data.ef || [];\n    (this || _global).effectElements = [];\n    var i;\n    var len = effects.length;\n    var effectItem;\n\n    for (i = 0; i < len; i += 1) {\n      effectItem = new GroupEffect(effects[i], element);\n\n      (this || _global).effectElements.push(effectItem);\n    }\n  }\n\n  function GroupEffect(data, element) {\n    this.init(data, element);\n  }\n\n  extendPrototype([DynamicPropertyContainer], GroupEffect);\n  GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n  GroupEffect.prototype.init = function (data, element) {\n    (this || _global).data = data;\n    (this || _global).effectElements = [];\n    this.initDynamicPropertyContainer(element);\n    var i;\n    var len = (this || _global).data.ef.length;\n    var eff;\n    var effects = (this || _global).data.ef;\n\n    for (i = 0; i < len; i += 1) {\n      eff = null;\n\n      switch (effects[i].ty) {\n        case 0:\n          eff = new SliderEffect(effects[i], element, this || _global);\n          break;\n\n        case 1:\n          eff = new AngleEffect(effects[i], element, this || _global);\n          break;\n\n        case 2:\n          eff = new ColorEffect(effects[i], element, this || _global);\n          break;\n\n        case 3:\n          eff = new PointEffect(effects[i], element, this || _global);\n          break;\n\n        case 4:\n        case 7:\n          eff = new CheckboxEffect(effects[i], element, this || _global);\n          break;\n\n        case 10:\n          eff = new LayerIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 11:\n          eff = new MaskIndexEffect(effects[i], element, this || _global);\n          break;\n\n        case 5:\n          eff = new EffectsManager(effects[i], element, this || _global);\n          break;\n        // case 6:\n\n        default:\n          eff = new NoValueEffect(effects[i], element, this || _global);\n          break;\n      }\n\n      if (eff) {\n        (this || _global).effectElements.push(eff);\n      }\n    }\n  };\n\n  var lottie = {};\n\n  function setLocationHref(href) {\n    locationHref = href;\n  }\n\n  function searchAnimations() {\n    if (standalone === true) {\n      animationManager.searchAnimations(animationData, standalone, renderer);\n    } else {\n      animationManager.searchAnimations();\n    }\n  }\n\n  function setSubframeRendering(flag) {\n    subframeEnabled = flag;\n  }\n\n  function loadAnimation(params) {\n    if (standalone === true) {\n      params.animationData = JSON.parse(animationData);\n    }\n\n    return animationManager.loadAnimation(params);\n  }\n\n  function setQuality(value) {\n    if (typeof value === \"string\") {\n      switch (value) {\n        case \"high\":\n          defaultCurveSegments = 200;\n          break;\n\n        default:\n        case \"medium\":\n          defaultCurveSegments = 50;\n          break;\n\n        case \"low\":\n          defaultCurveSegments = 10;\n          break;\n      }\n    } else if (!isNaN(value) && value > 1) {\n      defaultCurveSegments = value;\n    }\n\n    if (defaultCurveSegments >= 50) {\n      roundValues(false);\n    } else {\n      roundValues(true);\n    }\n  }\n\n  function inBrowser() {\n    return typeof navigator !== \"undefined\";\n  }\n\n  function installPlugin(type, plugin) {\n    if (type === \"expressions\") {\n      expressionsPlugin = plugin;\n    }\n  }\n\n  function getFactory(name) {\n    switch (name) {\n      case \"propertyFactory\":\n        return PropertyFactory;\n\n      case \"shapePropertyFactory\":\n        return ShapePropertyFactory;\n\n      case \"matrix\":\n        return Matrix;\n\n      default:\n        return null;\n    }\n  }\n\n  lottie.play = animationManager.play;\n  lottie.pause = animationManager.pause;\n  lottie.setLocationHref = setLocationHref;\n  lottie.togglePause = animationManager.togglePause;\n  lottie.setSpeed = animationManager.setSpeed;\n  lottie.setDirection = animationManager.setDirection;\n  lottie.stop = animationManager.stop;\n  lottie.searchAnimations = searchAnimations;\n  lottie.registerAnimation = animationManager.registerAnimation;\n  lottie.loadAnimation = loadAnimation;\n  lottie.setSubframeRendering = setSubframeRendering;\n  lottie.resize = animationManager.resize; // lottie.start = start;\n\n  lottie.goToAndStop = animationManager.goToAndStop;\n  lottie.destroy = animationManager.destroy;\n  lottie.setQuality = setQuality;\n  lottie.inBrowser = inBrowser;\n  lottie.installPlugin = installPlugin;\n  lottie.freeze = animationManager.freeze;\n  lottie.unfreeze = animationManager.unfreeze;\n  lottie.setVolume = animationManager.setVolume;\n  lottie.mute = animationManager.mute;\n  lottie.unmute = animationManager.unmute;\n  lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n  lottie.__getFactory = getFactory;\n  lottie.version = \"5.7.8\";\n\n  function checkReady() {\n    if (document.readyState === \"complete\") {\n      clearInterval(readyStateCheckInterval);\n      searchAnimations();\n    }\n  }\n\n  function getQueryVariable(variable) {\n    var vars = queryString.split(\"&\");\n\n    for (var i = 0; i < vars.length; i += 1) {\n      var pair = vars[i].split(\"=\");\n\n      if (decodeURIComponent(pair[0]) == variable) {\n        // eslint-disable-line eqeqeq\n        return decodeURIComponent(pair[1]);\n      }\n    }\n\n    return null;\n  }\n\n  var standalone = \"__[STANDALONE]__\";\n  var animationData = \"__[ANIMATIONDATA]__\";\n  var renderer = \"\";\n  var queryString;\n\n  if (standalone) {\n    var scripts = document.getElementsByTagName(\"script\");\n    var index = scripts.length - 1;\n    var myScript = scripts[index] || {\n      src: \"\"\n    };\n    queryString = myScript.src.replace(/^[^\\?]+\\??/, \"\"); // eslint-disable-line no-useless-escape\n\n    renderer = getQueryVariable(\"renderer\");\n  }\n\n  var readyStateCheckInterval = setInterval(checkReady, 100);\n  return lottie;\n});\nvar exports$1 = exports;\n\nexport default exports$1;\n\n//# sourceMappingURL=npm:lottie-web@5.7.8!cjs.map","export { default } from \"/npm:lottie-web@5.7.8!cjs\";\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useCallback,useEffect}from\"react\";import{motion,addPropertyControls,ControlType,RenderTarget}from\"framer\";import{defaultEvents}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{useAutoMotionValue}from\"https://framer.com/m/framer/useAutoMotionValue.js@0.3.0\";import lottie from\"https://jspm.dev/lottie-web@5.7.8\";var SrcType;(function(SrcType){SrcType[\"File\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));var Poster;(function(Poster){Poster[\"Auto\"]=\"Auto\";Poster[\"Custom\"]=\"Custom\";})(Poster||(Poster={}));const placeholderUrl=\"https://misc.framerstatic.com/lottie/logo.json\";/**\n * LOTTIE\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 350\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export function Lottie(props){const{style,srcUrl,srcFile,srcType,poster,progress:progressRaw,playing,loop,posterProgress,pauseOnCanvas,isForwardsDirection,speed,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,onComplete}=props;const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const shouldPlay=(!pauseOnCanvas||!isOnCanvas)&&playing;const direction=isForwardsDirection?1:-1;const isCustomPoster=poster===\"Custom\";const el=useRef();const didInitialMount=useRef(false);const animationInfo=useRef({data:null,animation:null,duration:null});const progress=useAutoMotionValue(progressRaw,{transform:v=>v*.01});const play=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.play();};const pause=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.pause();};const destroy=()=>{var _animationInfo_current_animation,_animationInfo_current;return(_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:(_animationInfo_current_animation=_animationInfo_current.animation)===null||_animationInfo_current_animation===void 0?void 0:_animationInfo_current_animation.destroy();};const scrubTo=useCallback((normalizedProgress,shouldPlayAfter)=>{if(!animationInfo.current.duration||!animationInfo.current.animation)return;// Lottie gets weird when scrubbing to the exact last frame\nconst frameNumberTarget=normalizedProgress===1?animationInfo.current.duration-1:normalizedProgress*animationInfo.current.duration;if(shouldPlayAfter)animationInfo.current.animation.goToAndPlay(frameNumberTarget,true);else animationInfo.current.animation.goToAndStop(frameNumberTarget,true);},[]);const fetchLottieData=useCallback(async url=>{if(!url)return null;const data=await fetch(url,{method:\"GET\",credentials:\"omit\",redirect:\"follow\"}).then(d=>d.json());return data;},[]);// Fetch lottie animation & start setup\nconst init=useCallback(async()=>{// Clear current animation\ndestroy();let dataUrl;if(srcType===\"URL\")dataUrl=srcUrl;if(srcType===\"Upload\")dataUrl=srcFile;if(!dataUrl){console.warn(\"No valid Lottie animation provided\");dataUrl=placeholderUrl;}const data=await fetchLottieData(dataUrl);animationInfo.current.data=data;return setup(didInitialMount.current);},[srcType,srcUrl,srcFile]);// Create Lottie animation\nconst setup=useCallback(shouldPlayAfter=>{if(!el.current)return;destroy();const options={container:el.current,renderer:\"svg\",loop:loop,autoplay:shouldPlay,animationData:animationInfo.current.data,rendererSettings:{preserveAspectRatio:\"xMidYMid slice\"}};const anim=animationInfo.current.animation=lottie.loadAnimation(options);animationInfo.current.duration=anim.getDuration(true);anim.setDirection(direction);anim.setSpeed(speed);didInitialMount.current=true;if(isOnCanvas&&isCustomPoster)scrubTo(posterProgress,false);else scrubTo(progress.get(),shouldPlay||shouldPlayAfter);return()=>{anim.destroy();};},[loop,shouldPlay,speed,direction,isOnCanvas,isCustomPoster,posterProgress]);// Initial setup or re-init when source changes\nuseEffect(()=>{let cleanup;init().then(c=>cleanup=c);return()=>{if(cleanup)cleanup();};},[srcType,srcFile,srcUrl]);// No run-time option for loop option, recreating anim\nuseEffect(()=>{if(!didInitialMount.current)return;return setup(false);},[loop]);// Perf hack lets see if anyone notices\nuseEffect(()=>lottie.setQuality(isOnCanvas?\"low\":\"medium\"),[]);// useEffect(() => {\n//     if (!isOnCanvas) return\n//     const normalizedProgress = progress.get() * 0.01\n//     if (shouldPlay) scrubTo(normalizedProgress, true)\n//     else scrubTo(normalizedProgress, false)\n// }, [progressRaw, shouldPlay])\nuseEffect(()=>progress.onChange(val=>{if(isOnCanvas)return;if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);}),[]);useEffect(()=>{const val=progress.get();if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);},[progressRaw]);useEffect(()=>{if(!isOnCanvas)return;const normalizedPosterProgress=posterProgress*.01;if(isCustomPoster)scrubTo(normalizedPosterProgress,false);else scrubTo(progress.get(),false);},[isCustomPoster,posterProgress]);useEffect(()=>{var _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.animation))return;animationInfo.current.animation.setSpeed(speed);scrubTo(progress.get(),true);},[speed]);useEffect(()=>{var _animationInfo_current;if(!((_animationInfo_current=animationInfo.current)===null||_animationInfo_current===void 0?void 0:_animationInfo_current.animation))return;animationInfo.current.animation.setDirection(direction);scrubTo(progress.get(),true);},[direction]);useEffect(()=>{if(shouldPlay)play();else pause();},[shouldPlay]);return /*#__PURE__*/_jsx(motion.div,{ref:el,style:style,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp});}Lottie.defaultProps={height:200,width:200,srcType:\"URL\",pauseOnCanvas:true,srcUrl:placeholderUrl,progress:0,poster:\"Auto\",posterProgress:0};addPropertyControls(Lottie,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[\"URL\",\"Upload\"]},srcUrl:{type:ControlType.String,title:\"URL\",placeholder:\"../example.json\",hidden:props=>props.srcType===\"Upload\"},srcFile:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"json\"],hidden:props=>props.srcType===\"URL\"},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},// Temporarily disabling for perf\npauseOnCanvas:{type:ControlType.Boolean,title:\"Canvas\",disabledTitle:\"Play\",enabledTitle:\"Pause\",hidden:props=>props.playing===false},loop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},isForwardsDirection:{title:\"Direction\",type:ControlType.Boolean,enabledTitle:\"Normal\",disabledTitle:\"Reverse\"},speed:{type:ControlType.Number,defaultValue:1,min:0,max:10,step:.5,displayStepper:true,unit:\"x\"},poster:{title:\"Poster\",type:ControlType.Enum,options:[\"Auto\",\"Custom\"],displaySegmentedControl:true},posterProgress:{title:\" \",type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({poster})=>poster===\"Auto\"},progress:{title:\"Progress\",type:ControlType.Number,max:100,min:0,unit:\"%\",description:\"This component is made for JSON files. [Learn more here](https://lottiefiles.com/what-is-lottie).\"},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"Lottie\":{\"type\":\"reactComponent\",\"name\":\"Lottie\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"350\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lottie.map","// Generated by Framer (f26e712)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,CycleVariantState,getFonts,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useOnVariantChange,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Lottie}from\"https://framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/RLfsHd78NBd0kbafA9hd/Lottie.js\";const LottieFonts=getFonts(Lottie);const cycleOrder=[\"f0cGATZfv\",\"junaYLDfn\"];const serializationHash=\"framer-A5Su4\";const variantClassNames={f0cGATZfv:\"framer-v-u9o230\",junaYLDfn:\"framer-v-1vzjml5\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const transition2={duration:0,type:\"tween\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Status Light Timing\":\"f0cGATZfv\",\"Status Light\":\"junaYLDfn\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"f0cGATZfv\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"f0cGATZfv\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onAppear1a2vbif=activeVariantCallback(async(...args)=>{await delay(()=>setVariant(CycleVariantState),1500);});const onClickf382t5=activeVariantCallback(async(...args)=>{await delay(()=>setVariant(CycleVariantState),2e3);});useOnVariantChange(baseVariant,{default:onAppear1a2vbif});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"junaYLDfn\")return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({junaYLDfn:{value:transition2}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-u9o230\",className,classNames),\"data-framer-name\":\"Status Light Timing\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"f0cGATZfv\",ref:refBinding,style:{...style},...addPropertyOverrides({junaYLDfn:{\"data-framer-name\":\"Status Light\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-2f3x9w\",layoutDependency:layoutDependency,layoutId:\"pq14W9Snl\",style:{backgroundColor:\"rgb(72, 175, 104)\",borderBottomLeftRadius:64,borderBottomRightRadius:64,borderTopLeftRadius:64,borderTopRightRadius:64}}),isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-kpwvj1-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"sZ03KmkHR-container\",nodeId:\"sZ03KmkHR\",rendersWithMotion:true,scopeId:\"ZwuHxfYFO\",children:/*#__PURE__*/_jsx(Lottie,{height:\"100%\",id:\"sZ03KmkHR\",isForwardsDirection:true,layoutId:\"sZ03KmkHR\",loop:true,onClick:onClickf382t5,pauseOnCanvas:true,playing:true,poster:\"Auto\",posterProgress:0,progress:0,speed:1,srcFile:\"https://framerusercontent.com/assets/4UHv3O7SdhyXIRvLI33egKzmIg.json\",srcType:\"Upload\",srcUrl:\"https://misc.framerstatic.com/lottie/logo.json\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-A5Su4.framer-1veahzh, .framer-A5Su4 .framer-1veahzh { display: block; }\",\".framer-A5Su4.framer-u9o230 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 24px; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 24px; }\",\".framer-A5Su4 .framer-2f3x9w { flex: none; height: 9px; left: calc(50.00000000000002% - 9px / 2); overflow: visible; position: absolute; top: calc(50.00000000000002% - 9px / 2); width: 9px; z-index: 1; }\",\".framer-A5Su4 .framer-kpwvj1-container { flex: none; height: 24px; position: relative; width: 24px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-A5Su4.framer-u9o230 { gap: 0px; } .framer-A5Su4.framer-u9o230 > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-A5Su4.framer-u9o230 > :first-child { margin-left: 0px; } .framer-A5Su4.framer-u9o230 > :last-child { margin-right: 0px; } }\",\".framer-A5Su4.framer-v-1vzjml5 .framer-2f3x9w { order: 1; }\",\".framer-A5Su4.framer-v-1vzjml5 .framer-kpwvj1-container { order: 0; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 24\n * @framerIntrinsicWidth 24\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"junaYLDfn\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerZwuHxfYFO=withCSS(Component,css,\"framer-A5Su4\");export default FramerZwuHxfYFO;FramerZwuHxfYFO.displayName=\"Footer / Status Dot\";FramerZwuHxfYFO.defaultProps={height:24,width:24};addPropertyControls(FramerZwuHxfYFO,{variant:{options:[\"f0cGATZfv\",\"junaYLDfn\"],optionTitles:[\"Status Light Timing\",\"Status Light\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerZwuHxfYFO,[{explicitInter:true,fonts:[]},...LottieFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerZwuHxfYFO\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"junaYLDfn\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicHeight\":\"24\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"24\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ZwuHxfYFO.map","// Generated by Framer (f030ee3)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/qf7Efrk1sFw795znLwO1/l7Tv8x8d1Pukovudshdt/mPoioPFj1.js\";import FooterStatusDot from\"https://framerusercontent.com/modules/1du8qrcGsY5vKk3aqwl9/I623mFkQQYp6ffahIvHE/ZwuHxfYFO.js\";const FooterStatusDotFonts=getFonts(FooterStatusDot);const enabledGestures={scLYJMp9p:{hover:true}};const serializationHash=\"framer-363Ls\";const variantClassNames={scLYJMp9p:\"framer-v-1sx2v1e\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const getProps=({height,id,title,width,...props})=>{return{...props,IIjHDP_q1:title??props.IIjHDP_q1??\"All systems normal\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,IIjHDP_q1,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"scLYJMp9p\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1sx2v1e\",className,classNames),\"data-framer-name\":\"Status\",layoutDependency:layoutDependency,layoutId:\"scLYJMp9p\",ref:refBinding,style:{backgroundColor:\"var(--token-c4c4829c-74d7-4050-a1a6-95473b262a30, rgb(22, 22, 22))\",borderBottomLeftRadius:64,borderBottomRightRadius:64,borderTopLeftRadius:64,borderTopRightRadius:64,...style},variants:{\"scLYJMp9p-hover\":{backgroundColor:\"var(--token-1b586938-3808-4e0f-b898-a0ea1079d596, rgb(219, 219, 219))\"}},...addPropertyOverrides({\"scLYJMp9p-hover\":{\"data-framer-name\":undefined}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:24,width:\"24px\",y:(componentViewport?.y||0)+(4+((componentViewport?.height||32)-8-24)/2),...addPropertyOverrides({\"scLYJMp9p-hover\":{y:(componentViewport?.y||0)+(4+((componentViewport?.height||200)-8-24)/2)}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-l53x75-container\",layoutDependency:layoutDependency,layoutId:\"asdHVM7P3-container\",nodeId:\"asdHVM7P3\",rendersWithMotion:true,scopeId:\"q8ATc0hlv\",children:/*#__PURE__*/_jsx(FooterStatusDot,{height:\"100%\",id:\"asdHVM7P3\",layoutId:\"asdHVM7P3\",style:{height:\"100%\",width:\"100%\"},variant:\"f0cGATZfv\",width:\"100%\"})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1i3pa01\",\"data-styles-preset\":\"mPoioPFj1\",children:\"All systems normal\"})}),className:\"framer-1i9f3c1\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"QCb1FdMc1\",text:IIjHDP_q1,verticalAlignment:\"top\",withExternalLayout:true})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-363Ls.framer-r3xszb, .framer-363Ls .framer-r3xszb { display: block; }\",\".framer-363Ls.framer-1sx2v1e { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: visible; padding: 4px 16px 4px 8px; position: relative; width: min-content; }\",\".framer-363Ls .framer-l53x75-container { flex: none; height: 24px; position: relative; width: 24px; }\",\".framer-363Ls .framer-1i9f3c1 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-363Ls.framer-1sx2v1e { gap: 0px; } .framer-363Ls.framer-1sx2v1e > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-363Ls.framer-1sx2v1e > :first-child { margin-left: 0px; } .framer-363Ls.framer-1sx2v1e > :last-child { margin-right: 0px; } }\",...sharedStyle.css];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 32\n * @framerIntrinsicWidth 173\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"KAtL1ZqZh\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"IIjHDP_q1\":\"title\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const Framerq8ATc0hlv=withCSS(Component,css,\"framer-363Ls\");export default Framerq8ATc0hlv;Framerq8ATc0hlv.displayName=\"Footer / Status\";Framerq8ATc0hlv.defaultProps={height:32,width:173};addPropertyControls(Framerq8ATc0hlv,{IIjHDP_q1:{defaultValue:\"All systems normal\",displayTextArea:false,title:\"Title\",type:ControlType.String}});addFonts(Framerq8ATc0hlv,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...FooterStatusDotFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"Framerq8ATc0hlv\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerVariables\":\"{\\\"IIjHDP_q1\\\":\\\"title\\\"}\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"32\",\"framerIntrinsicWidth\":\"173\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"KAtL1ZqZh\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./q8ATc0hlv.map","// Generated by Framer (47ebf4a)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,Link,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/ohxk4CIXXBkCsUGrDmX9/03Tvsm0MrDVwhKQZK7M7/axzkMpbz5.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/v7NpqVyxeykrJShWuVeO/zXB3kn22shD3reEE7Fu0/kvG2C7HO0.js\";import*as sharedStyle3 from\"https://framerusercontent.com/modules/qf7Efrk1sFw795znLwO1/l7Tv8x8d1Pukovudshdt/mPoioPFj1.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/yC0W59RJbGwLcisAP4Xw/QdQYnyru966NFiEv1qLU/wdUj53pii.js\";import FooterSocialIcons from\"https://framerusercontent.com/modules/gqHy16EU1ucuADmbQScv/sDxtGj38dcrtRf7sxyDG/asWliGJ80.js\";import ComponentsLogo from\"https://framerusercontent.com/modules/c1vd63eDecX8LMNEnsml/adMukw7ccEpe1ot1PwZl/i7vrt9GEl.js\";import FooterStatus from\"https://framerusercontent.com/modules/9elDL2TTESDPewcVFeLh/QfhVekHvY8LAMKyUNc6Y/q8ATc0hlv.js\";const ComponentsLogoFonts=getFonts(ComponentsLogo);const FooterStatusFonts=getFonts(FooterStatus);const FooterSocialIconsFonts=getFonts(FooterSocialIcons);const cycleOrder=[\"iKFj3Lqy0\",\"c78WwvDVI\"];const serializationHash=\"framer-wvQSK\";const variantClassNames={c78WwvDVI:\"framer-v-sndiyo\",iKFj3Lqy0:\"framer-v-1keckwj\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Footer:\"iKFj3Lqy0\",Mobile:\"c78WwvDVI\"};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"iKFj3Lqy0\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"iKFj3Lqy0\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.footer,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1keckwj\",className,classNames),\"data-framer-name\":\"Footer\",layoutDependency:layoutDependency,layoutId:\"iKFj3Lqy0\",ref:refBinding,style:{backgroundColor:\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(15, 15, 15))\",...style},...addPropertyOverrides({c78WwvDVI:{\"data-framer-name\":\"Mobile\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-89ixlo\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"g3QlK58Tq\",children:[/*#__PURE__*/_jsx(motion.nav,{className:\"framer-1jmmb1z\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"Jw3dZjS8f\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1nob4cv\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"bil82Gcg2\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-fglie5\",\"data-framer-name\":\"Logo\",layoutDependency:layoutDependency,layoutId:\"eGYSkidIL\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:48,y:(componentViewport?.y||0)+40+0+0+0+0+0+0+0+0,...addPropertyOverrides({c78WwvDVI:{y:(componentViewport?.y||0)+20+0+0+0+0+0+0+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-9s3hm6-container\",layoutDependency:layoutDependency,layoutId:\"YmO4kKIdP-container\",nodeId:\"YmO4kKIdP\",rendersWithMotion:true,scopeId:\"AZ5eR20vR\",children:/*#__PURE__*/_jsx(ComponentsLogo,{height:\"100%\",id:\"YmO4kKIdP\",layoutId:\"YmO4kKIdP\",width:\"100%\"})})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1dakhds\",\"data-framer-name\":\"Row\",layoutDependency:layoutDependency,layoutId:\"o20_B0Svp\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h6,{className:\"framer-styles-preset-1mhvxkc\",\"data-styles-preset\":\"wdUj53pii\",children:\"Product\"})}),className:\"framer-yhwrct\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ESvhfrtii\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:/*#__PURE__*/_jsx(Link,{href:{hash:\":AauUQtb4m\",webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"dgIjPC954\",openInNewTab:false,scopeId:\"AZ5eR20vR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-13c1xpw\",\"data-styles-preset\":\"axzkMpbz5\",children:\"Pricing\"})})})}),className:\"framer-1d0vni8\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"dgIjPC954\",verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:/*#__PURE__*/_jsx(Link,{href:{hash:\":OAZdfKMtW\",webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"aK0pMMi_H\",openInNewTab:false,scopeId:\"AZ5eR20vR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-13c1xpw\",\"data-styles-preset\":\"axzkMpbz5\",children:\"Features\"})})})}),className:\"framer-170cy5a\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"aK0pMMi_H\",verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:/*#__PURE__*/_jsx(Link,{href:\"https://calendar.app.google/HvbY1R9P4eGiiaXZ9\",motionChild:true,nodeId:\"ZO97nqmh3\",openInNewTab:true,scopeId:\"AZ5eR20vR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-13c1xpw\",\"data-styles-preset\":\"axzkMpbz5\",children:\"Say hi\"})})})}),className:\"framer-lcojp2\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ZO97nqmh3\",verticalAlignment:\"top\",withExternalLayout:true})]}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-xt66gt\",\"data-framer-name\":\"Row\",layoutDependency:layoutDependency,layoutId:\"i6Bl_rD39\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h6,{className:\"framer-styles-preset-1mhvxkc\",\"data-styles-preset\":\"wdUj53pii\",children:\"Resources\"})}),className:\"framer-1jpinji\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"xi8PbvIQR\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:/*#__PURE__*/_jsx(Link,{href:{hash:\":MnmQpdxBq\",webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"CQaoLnf4P\",openInNewTab:false,scopeId:\"AZ5eR20vR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-13c1xpw\",\"data-styles-preset\":\"axzkMpbz5\",children:\"FAQ\"})})})}),className:\"framer-1hxz7or\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"CQaoLnf4P\",verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:/*#__PURE__*/_jsx(Link,{motionChild:true,nodeId:\"z6S2b8oDa\",openInNewTab:false,scopeId:\"AZ5eR20vR\",smoothScroll:false,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-styles-preset-13c1xpw\",\"data-styles-preset\":\"axzkMpbz5\",children:\"Terms of service\"})})})}),className:\"framer-1dgf5a0\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"z6S2b8oDa\",verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:\"Privacy policy\"})}),className:\"framer-1ky8m5n\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"sawYw5giV\",verticalAlignment:\"top\",withExternalLayout:true})]})]})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-2lvy2p\",layoutDependency:layoutDependency,layoutId:\"pRv5pTswC\",children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-15weox6\",\"data-framer-name\":\"Footer / Status\",layoutDependency:layoutDependency,layoutId:\"oTXehyjLB\",children:/*#__PURE__*/_jsx(ComponentViewportProvider,{height:32,y:(componentViewport?.y||0)+40+0+0+261.6+0+0+0,...addPropertyOverrides({c78WwvDVI:{y:(componentViewport?.y||0)+20+0+0+467.2+0+0+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1kab8th-container\",layoutDependency:layoutDependency,layoutId:\"gMNEYMYHY-container\",nodeId:\"gMNEYMYHY\",rendersWithMotion:true,scopeId:\"AZ5eR20vR\",children:/*#__PURE__*/_jsx(FooterStatus,{height:\"100%\",id:\"gMNEYMYHY\",IIjHDP_q1:\"All systems normal\",layoutId:\"gMNEYMYHY\",width:\"100%\"})})})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-tmi3j7\",\"data-border\":true,\"data-framer-name\":\"Text\",layoutDependency:layoutDependency,layoutId:\"Ih1YEqVuK\",style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"var(--token-c4c4829c-74d7-4050-a1a6-95473b262a30, rgb(239, 239, 239))\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\"},children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-sc26jo\",\"data-framer-name\":\"Copyright\",layoutDependency:layoutDependency,layoutId:\"GXV3CJW2R\",children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1i3pa01\",\"data-styles-preset\":\"mPoioPFj1\",children:\"\\xa9 2025 Muta. All rights reserved.\"})}),className:\"framer-1axta0m\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"XYZi3etco\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-11w1t0g\",layoutDependency:layoutDependency,layoutId:\"xIWoxTO6v\",children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:18,width:\"18px\",y:(componentViewport?.y||0)+40+0+0+261.6+0+48+32+0,...addPropertyOverrides({c78WwvDVI:{y:(componentViewport?.y||0)+20+0+0+467.2+0+48+24+40.8+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-11hnk9c-container\",layoutDependency:layoutDependency,layoutId:\"LLDOIuiq0-container\",nodeId:\"LLDOIuiq0\",rendersWithMotion:true,scopeId:\"AZ5eR20vR\",children:/*#__PURE__*/_jsx(FooterSocialIcons,{height:\"100%\",id:\"LLDOIuiq0\",layoutId:\"LLDOIuiq0\",style:{height:\"100%\",width:\"100%\"},variant:\"aTvc8coRH\",vPbP3u8UG:\"https://calendar.app.google/EaV7LroPCwtMHmCA8\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:18,width:\"18px\",y:(componentViewport?.y||0)+40+0+0+261.6+0+48+32+0,...addPropertyOverrides({c78WwvDVI:{y:(componentViewport?.y||0)+20+0+0+467.2+0+48+24+40.8+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-npx96x-container\",layoutDependency:layoutDependency,layoutId:\"osvFtgPeK-container\",nodeId:\"osvFtgPeK\",rendersWithMotion:true,scopeId:\"AZ5eR20vR\",children:/*#__PURE__*/_jsx(FooterSocialIcons,{height:\"100%\",id:\"osvFtgPeK\",layoutId:\"osvFtgPeK\",style:{height:\"100%\",width:\"100%\"},variant:\"udKBJqriu\",vPbP3u8UG:\"https://www.linkedin.com/in/michael-foster-700497166/\",width:\"100%\"})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:18,width:\"18px\",y:(componentViewport?.y||0)+40+0+0+261.6+0+48+32+0,...addPropertyOverrides({c78WwvDVI:{y:(componentViewport?.y||0)+20+0+0+467.2+0+48+24+40.8+0}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1hltgb7-container\",layoutDependency:layoutDependency,layoutId:\"jCjeV5K6C-container\",nodeId:\"jCjeV5K6C\",rendersWithMotion:true,scopeId:\"AZ5eR20vR\",children:/*#__PURE__*/_jsx(FooterSocialIcons,{height:\"100%\",id:\"jCjeV5K6C\",layoutId:\"jCjeV5K6C\",style:{height:\"100%\",width:\"100%\"},variant:\"icJxih2Pt\",vPbP3u8UG:\"https://github.com/muta-labs\",width:\"100%\"})})})]})]})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-wvQSK.framer-1883ti7, .framer-wvQSK .framer-1883ti7 { display: block; }\",\".framer-wvQSK.framer-1keckwj { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 124px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 40px; position: relative; width: 1280px; }\",\".framer-wvQSK .framer-89ixlo { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 124px; height: min-content; justify-content: center; max-width: 1280px; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-wvQSK .framer-1jmmb1z { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 64px; height: min-content; justify-content: flex-start; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-wvQSK .framer-1nob4cv { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-wvQSK .framer-fglie5 { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-wvQSK .framer-9s3hm6-container, .framer-wvQSK .framer-1kab8th-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-wvQSK .framer-1dakhds, .framer-wvQSK .framer-xt66gt { align-content: flex-start; align-items: flex-start; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 1px; }\",\".framer-wvQSK .framer-yhwrct, .framer-wvQSK .framer-1d0vni8, .framer-wvQSK .framer-170cy5a, .framer-wvQSK .framer-lcojp2, .framer-wvQSK .framer-1jpinji, .framer-wvQSK .framer-1hxz7or, .framer-wvQSK .framer-1dgf5a0, .framer-wvQSK .framer-1ky8m5n, .framer-wvQSK .framer-1axta0m { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-wvQSK .framer-2lvy2p { align-content: flex-end; align-items: flex-end; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 100%; }\",\".framer-wvQSK .framer-15weox6 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-wvQSK .framer-tmi3j7 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; overflow: visible; padding: 32px 0px 0px 0px; position: relative; width: 100%; }\",\".framer-wvQSK .framer-sc26jo { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 0px; position: relative; width: 232px; }\",\".framer-wvQSK .framer-11w1t0g { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-wvQSK .framer-11hnk9c-container, .framer-wvQSK .framer-npx96x-container, .framer-wvQSK .framer-1hltgb7-container { flex: none; height: 18px; position: relative; width: 18px; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-wvQSK.framer-1keckwj, .framer-wvQSK .framer-89ixlo, .framer-wvQSK .framer-1jmmb1z, .framer-wvQSK .framer-1nob4cv, .framer-wvQSK .framer-fglie5, .framer-wvQSK .framer-1dakhds, .framer-wvQSK .framer-xt66gt, .framer-wvQSK .framer-2lvy2p, .framer-wvQSK .framer-15weox6, .framer-wvQSK .framer-sc26jo, .framer-wvQSK .framer-11w1t0g { gap: 0px; } .framer-wvQSK.framer-1keckwj > *, .framer-wvQSK .framer-89ixlo > * { margin: 0px; margin-bottom: calc(124px / 2); margin-top: calc(124px / 2); } .framer-wvQSK.framer-1keckwj > :first-child, .framer-wvQSK .framer-89ixlo > :first-child, .framer-wvQSK .framer-1jmmb1z > :first-child, .framer-wvQSK .framer-fglie5 > :first-child, .framer-wvQSK .framer-1dakhds > :first-child, .framer-wvQSK .framer-xt66gt > :first-child, .framer-wvQSK .framer-2lvy2p > :first-child { margin-top: 0px; } .framer-wvQSK.framer-1keckwj > :last-child, .framer-wvQSK .framer-89ixlo > :last-child, .framer-wvQSK .framer-1jmmb1z > :last-child, .framer-wvQSK .framer-fglie5 > :last-child, .framer-wvQSK .framer-1dakhds > :last-child, .framer-wvQSK .framer-xt66gt > :last-child, .framer-wvQSK .framer-2lvy2p > :last-child { margin-bottom: 0px; } .framer-wvQSK .framer-1jmmb1z > * { margin: 0px; margin-bottom: calc(64px / 2); margin-top: calc(64px / 2); } .framer-wvQSK .framer-1nob4cv > * { margin: 0px; margin-left: calc(0px / 2); margin-right: calc(0px / 2); } .framer-wvQSK .framer-1nob4cv > :first-child, .framer-wvQSK .framer-15weox6 > :first-child, .framer-wvQSK .framer-sc26jo > :first-child, .framer-wvQSK .framer-11w1t0g > :first-child { margin-left: 0px; } .framer-wvQSK .framer-1nob4cv > :last-child, .framer-wvQSK .framer-15weox6 > :last-child, .framer-wvQSK .framer-sc26jo > :last-child, .framer-wvQSK .framer-11w1t0g > :last-child { margin-right: 0px; } .framer-wvQSK .framer-fglie5 > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-wvQSK .framer-1dakhds > *, .framer-wvQSK .framer-xt66gt > *, .framer-wvQSK .framer-2lvy2p > * { margin: 0px; margin-bottom: calc(16px / 2); margin-top: calc(16px / 2); } .framer-wvQSK .framer-15weox6 > *, .framer-wvQSK .framer-sc26jo > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-wvQSK .framer-11w1t0g > * { margin: 0px; margin-left: calc(16px / 2); margin-right: calc(16px / 2); } }\",\".framer-wvQSK.framer-v-sndiyo.framer-1keckwj { gap: 96px; padding: 20px; width: 390px; }\",\".framer-wvQSK.framer-v-sndiyo .framer-89ixlo { gap: 32px; }\",\".framer-wvQSK.framer-v-sndiyo .framer-1nob4cv { flex-direction: column; gap: 56px; }\",\".framer-wvQSK.framer-v-sndiyo .framer-fglie5, .framer-wvQSK.framer-v-sndiyo .framer-1dakhds, .framer-wvQSK.framer-v-sndiyo .framer-xt66gt { flex: none; width: 100%; }\",\".framer-wvQSK.framer-v-sndiyo .framer-tmi3j7 { flex-direction: column; gap: 24px; justify-content: flex-start; padding: 24px 0px 0px 0px; }\",\".framer-wvQSK.framer-v-sndiyo .framer-sc26jo { order: 0; }\",\".framer-wvQSK.framer-v-sndiyo .framer-11w1t0g { order: 1; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-wvQSK.framer-v-sndiyo.framer-1keckwj, .framer-wvQSK.framer-v-sndiyo .framer-89ixlo, .framer-wvQSK.framer-v-sndiyo .framer-1nob4cv, .framer-wvQSK.framer-v-sndiyo .framer-tmi3j7 { gap: 0px; } .framer-wvQSK.framer-v-sndiyo.framer-1keckwj > * { margin: 0px; margin-bottom: calc(96px / 2); margin-top: calc(96px / 2); } .framer-wvQSK.framer-v-sndiyo.framer-1keckwj > :first-child, .framer-wvQSK.framer-v-sndiyo .framer-89ixlo > :first-child, .framer-wvQSK.framer-v-sndiyo .framer-1nob4cv > :first-child, .framer-wvQSK.framer-v-sndiyo .framer-tmi3j7 > :first-child { margin-top: 0px; } .framer-wvQSK.framer-v-sndiyo.framer-1keckwj > :last-child, .framer-wvQSK.framer-v-sndiyo .framer-89ixlo > :last-child, .framer-wvQSK.framer-v-sndiyo .framer-1nob4cv > :last-child, .framer-wvQSK.framer-v-sndiyo .framer-tmi3j7 > :last-child { margin-bottom: 0px; } .framer-wvQSK.framer-v-sndiyo .framer-89ixlo > * { margin: 0px; margin-bottom: calc(32px / 2); margin-top: calc(32px / 2); } .framer-wvQSK.framer-v-sndiyo .framer-1nob4cv > * { margin: 0px; margin-bottom: calc(56px / 2); margin-top: calc(56px / 2); } .framer-wvQSK.framer-v-sndiyo .framer-tmi3j7 > * { margin: 0px; margin-bottom: calc(24px / 2); margin-top: calc(24px / 2); } }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,'.framer-wvQSK[data-border=\"true\"]::after, .framer-wvQSK [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 439.5\n * @framerIntrinsicWidth 1280\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"c78WwvDVI\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerAZ5eR20vR=withCSS(Component,css,\"framer-wvQSK\");export default FramerAZ5eR20vR;FramerAZ5eR20vR.displayName=\"Footer / Footer\";FramerAZ5eR20vR.defaultProps={height:439.5,width:1280};addPropertyControls(FramerAZ5eR20vR,{variant:{options:[\"iKFj3Lqy0\",\"c78WwvDVI\"],optionTitles:[\"Footer\",\"Mobile\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerAZ5eR20vR,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...ComponentsLogoFonts,...FooterStatusFonts,...FooterSocialIconsFonts,...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerAZ5eR20vR\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicWidth\":\"1280\",\"framerDisplayContentsDiv\":\"false\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"c78WwvDVI\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicHeight\":\"439.5\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AZ5eR20vR.map","// Generated by Framer (47ebf4a)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;DM Sans-500\"]);export const fonts=[{explicitInter:true,fonts:[{family:\"DM Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmsans/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAkJxhS2f3ZGMZpg.woff2\",weight:\"500\"}]}];export const css=['.framer-kNlYv .framer-styles-preset-1r9uoyi:not(.rich-text-wrapper), .framer-kNlYv .framer-styles-preset-1r9uoyi.rich-text-wrapper p { --framer-font-family: \"DM Sans\", \"DM Sans Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 14px; --framer-font-style: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-letter-spacing: 0em; --framer-line-height: 1.2em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-78aa5d10-689c-4324-98be-9610b743091e, #6575fb); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-kNlYv\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f030ee3)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,Link,RichText,SmartComponentScopedContainer,SVG,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";const PhosphorFonts=getFonts(Phosphor);const enabledGestures={a7IBhwPBc:{hover:true},D5uCXBeXW:{hover:true},E5NC23WuT:{hover:true},IidJjB420:{hover:true},lK8tsRabi:{hover:true},NSnt6Nd16:{hover:true},o6x0xsiOh:{hover:true},ru05MAJaz:{hover:true}};const cycleOrder=[\"IidJjB420\",\"ru05MAJaz\",\"o6x0xsiOh\",\"E5NC23WuT\",\"D5uCXBeXW\",\"lK8tsRabi\",\"a7IBhwPBc\",\"NSnt6Nd16\"];const serializationHash=\"framer-56Ic5\";const variantClassNames={a7IBhwPBc:\"framer-v-vrv18p\",D5uCXBeXW:\"framer-v-1b0a84d\",E5NC23WuT:\"framer-v-mpi7ta\",IidJjB420:\"framer-v-b6xozi\",lK8tsRabi:\"framer-v-r2o0gt\",NSnt6Nd16:\"framer-v-vas4km\",o6x0xsiOh:\"framer-v-fxduoh\",ru05MAJaz:\"framer-v-1rcv6tu\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Button 1\":\"IidJjB420\",\"Button 2\":\"ru05MAJaz\",\"Button 3\":\"o6x0xsiOh\",\"Button 4\":\"E5NC23WuT\",\"Button 5\":\"D5uCXBeXW\",\"Button 6\":\"lK8tsRabi\",\"Button 7\":\"a7IBhwPBc\",\"Button 8\":\"NSnt6Nd16\"};const getProps=({height,id,link,newTab,tap,title,width,...props})=>{return{...props,CLwo5toVX:title??props.CLwo5toVX??\"Get started\",H4drh_ZVB:tap??props.H4drh_ZVB,plvHhF5ch:newTab??props.plvHhF5ch,qAejPu7n3:link??props.qAejPu7n3,variant:humanReadableVariantMap[props.variant]??props.variant??\"IidJjB420\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,qAejPu7n3,CLwo5toVX,H4drh_ZVB,plvHhF5ch,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"IidJjB420\",enabledGestures,ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapqtyy9c=activeVariantCallback(async(...args)=>{setGestureState({isPressed:false});if(H4drh_ZVB){const res=await H4drh_ZVB(...args);if(res===false)return false;}});const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(gestureVariant===\"NSnt6Nd16-hover\")return true;if(baseVariant===\"NSnt6Nd16\")return true;return false;};const isDisplayed1=()=>{if(gestureVariant===\"a7IBhwPBc-hover\")return true;if(baseVariant===\"a7IBhwPBc\")return true;return false;};const isDisplayed2=()=>{if([\"a7IBhwPBc-hover\",\"NSnt6Nd16-hover\"].includes(gestureVariant))return false;if([\"a7IBhwPBc\",\"NSnt6Nd16\"].includes(baseVariant))return false;return true;};const isDisplayed3=()=>{if([\"o6x0xsiOh-hover\",\"D5uCXBeXW-hover\",\"E5NC23WuT-hover\",\"a7IBhwPBc-hover\",\"NSnt6Nd16-hover\"].includes(gestureVariant))return false;if([\"o6x0xsiOh\",\"E5NC23WuT\",\"D5uCXBeXW\",\"a7IBhwPBc\",\"NSnt6Nd16\"].includes(baseVariant))return false;return true;};const isDisplayed4=()=>{if([\"a7IBhwPBc-hover\",\"NSnt6Nd16-hover\"].includes(gestureVariant))return true;if([\"a7IBhwPBc\",\"NSnt6Nd16\"].includes(baseVariant))return true;return false;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:qAejPu7n3,motionChild:true,nodeId:\"IidJjB420\",openInNewTab:false,scopeId:\"sY7_Xl9zB\",...addPropertyOverrides({o6x0xsiOh:{openInNewTab:plvHhF5ch}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-b6xozi\",className,classNames)} framer-gge9f0`,\"data-framer-name\":\"Button 1\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"IidJjB420\",onTap:onTapqtyy9c,ref:refBinding,style:{\"--border-bottom-width\":\"0px\",\"--border-color\":\"rgba(0, 0, 0, 0)\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backgroundColor:\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\",borderBottomLeftRadius:64,borderBottomRightRadius:64,borderTopLeftRadius:64,borderTopRightRadius:64,...style},variants:{\"a7IBhwPBc-hover\":{backgroundColor:\"rgb(219, 219, 219)\"},\"D5uCXBeXW-hover\":{backgroundColor:\"rgb(219, 219, 219)\"},\"E5NC23WuT-hover\":{backgroundColor:\"rgb(48, 48, 48)\"},\"IidJjB420-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\",backgroundColor:\"rgb(219, 219, 219)\"},\"lK8tsRabi-hover\":{backgroundColor:\"rgb(48, 48, 48)\"},\"NSnt6Nd16-hover\":{backgroundColor:\"rgb(219, 219, 219)\"},\"o6x0xsiOh-hover\":{backgroundColor:\"rgb(48, 48, 48)\"},\"ru05MAJaz-hover\":{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},a7IBhwPBc:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},D5uCXBeXW:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},E5NC23WuT:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-97079f68-6070-43ee-833d-a310c208301d, rgb(199, 199, 199))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-4caffb48-5664-4ab3-aaf8-6d0e936d30a0, rgb(255, 255, 255))\"},lK8tsRabi:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-97079f68-6070-43ee-833d-a310c208301d, rgb(199, 199, 199))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-4caffb48-5664-4ab3-aaf8-6d0e936d30a0, rgb(255, 255, 255))\"},NSnt6Nd16:{\"--border-bottom-width\":\"0px\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-top-width\":\"0px\"},o6x0xsiOh:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-97079f68-6070-43ee-833d-a310c208301d, rgb(199, 199, 199))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-4caffb48-5664-4ab3-aaf8-6d0e936d30a0, rgb(255, 255, 255))\"},ru05MAJaz:{backgroundColor:\"rgba(0, 0, 0, 0)\"}},...addPropertyOverrides({\"a7IBhwPBc-hover\":{\"data-framer-name\":undefined},\"D5uCXBeXW-hover\":{\"data-framer-name\":undefined},\"E5NC23WuT-hover\":{\"data-framer-name\":undefined},\"IidJjB420-hover\":{\"data-framer-name\":undefined},\"lK8tsRabi-hover\":{\"data-framer-name\":undefined},\"NSnt6Nd16-hover\":{\"data-framer-name\":undefined},\"o6x0xsiOh-hover\":{\"data-framer-name\":undefined},\"ru05MAJaz-hover\":{\"data-framer-name\":undefined},a7IBhwPBc:{\"data-framer-name\":\"Button 7\"},D5uCXBeXW:{\"data-framer-name\":\"Button 5\"},E5NC23WuT:{\"data-border\":true,\"data-framer-name\":\"Button 4\"},lK8tsRabi:{\"data-border\":true,\"data-framer-name\":\"Button 6\"},NSnt6Nd16:{\"data-framer-name\":\"Button 8\"},o6x0xsiOh:{\"data-border\":true,\"data-framer-name\":\"Button 3\"},ru05MAJaz:{\"data-framer-name\":\"Button 2\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-td3led\",\"data-framer-name\":\"android\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"txEmLdfPx\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 20\"><path d=\"M 0.457 20 C 0.152 19.844 0 19.454 0 19.064 L 0 1.518 C 0 1.206 0.076 0.972 0.152 0.66 C 0.228 0.504 0.381 0.348 0.533 0.192 C 3.808 3.545 7.007 6.899 10.205 10.252 C 6.93 13.372 3.732 16.647 0.457 20 Z M 13.43 6.785 C 12.516 7.721 11.526 8.656 10.612 9.67 C 7.566 6.473 4.443 3.275 1.397 0.078 C 1.397 0.078 1.397 0 1.473 0 C 5.433 2.262 9.393 4.523 13.43 6.785 Z M 1.397 19.964 C 4.443 16.844 7.566 13.725 10.612 10.606 C 11.45 11.464 12.364 12.322 13.354 13.257 C 9.394 15.519 5.434 17.781 1.474 19.964 Z M 13.887 12.945 C 12.897 12.01 11.983 11.074 10.993 10.138 L 13.963 7.097 C 14.268 7.253 14.573 7.409 14.878 7.643 C 15.639 8.11 16.477 8.5 17.238 8.968 C 17.467 9.046 17.619 9.202 17.772 9.436 C 18.076 9.826 18.076 10.216 17.772 10.606 C 17.619 10.762 17.467 10.918 17.238 10.996 C 16.172 11.698 15.03 12.322 13.888 12.946 Z\" fill=\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251)) /* {&quot;name&quot;:&quot;Base / Black [500]&quot;} */\"></path></svg>',svgContentId:9898159488,withExternalLayout:true,...addPropertyOverrides({NSnt6Nd16:{svgContentId:10726621384}},baseVariant,gestureVariant)}),isDisplayed1()&&/*#__PURE__*/_jsx(SVG,{className:\"framer-1iwh1es\",\"data-framer-name\":\"apple\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"oKgh5q7i3\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 18 22\"><path d=\"M 15.034 11.7 C 15.045 10.856 15.27 10.03 15.689 9.296 C 16.109 8.562 16.707 7.946 17.429 7.505 C 16.969 6.852 16.363 6.316 15.66 5.938 C 14.955 5.56 14.172 5.35 13.373 5.325 C 11.667 5.147 10.013 6.34 9.143 6.34 C 8.258 6.34 6.919 5.343 5.478 5.372 C 4.545 5.402 3.637 5.672 2.84 6.155 C 2.045 6.637 1.388 7.317 0.933 8.128 C -1.032 11.511 0.433 16.483 2.316 19.217 C 3.258 20.556 4.358 22.052 5.799 21.999 C 7.208 21.941 7.734 21.105 9.435 21.105 C 11.12 21.105 11.615 21.999 13.084 21.965 C 14.596 21.941 15.549 20.62 16.457 19.268 C 17.133 18.315 17.654 17.26 18 16.144 C 17.123 15.776 16.373 15.157 15.844 14.366 C 15.317 13.577 15.035 12.649 15.034 11.7 Z M 12.259 3.527 C 13.083 2.544 13.489 1.278 13.39 0 C 12.132 0.131 10.969 0.729 10.131 1.677 C 9.308 2.61 8.89 3.832 8.97 5.073 C 10.245 5.086 11.455 4.516 12.259 3.527 Z\" fill=\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251)) /* {&quot;name&quot;:&quot;Base / Black [500]&quot;} */\"></path></svg>',svgContentId:10765053563,withExternalLayout:true,...addPropertyOverrides({a7IBhwPBc:{svgContentId:10751394155}},baseVariant,gestureVariant)}),isDisplayed2()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251)))\"},children:\"Get started\"})}),className:\"framer-f9fsyn\",fonts:[\"GF;DM Sans-500\"],layoutDependency:layoutDependency,layoutId:\"laIBk04Vk\",style:{\"--extracted-r6o4lv\":\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:CLwo5toVX,variants:{\"ru05MAJaz-hover\":{\"--extracted-r6o4lv\":\"var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81))\"},E5NC23WuT:{\"--extracted-r6o4lv\":\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"},lK8tsRabi:{\"--extracted-r6o4lv\":\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"},o6x0xsiOh:{\"--extracted-r6o4lv\":\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"},ru05MAJaz:{\"--extracted-r6o4lv\":\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({\"ru05MAJaz-hover\":{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81)))\"},children:\"Get started\"})})},E5NC23WuT:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48)))\"},children:\"Get started\"})})},lK8tsRabi:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48)))\"},children:\"Get started\"})})},o6x0xsiOh:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48)))\"},children:\"Get started\"})})},ru05MAJaz:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48)))\"},children:\"Get started\"})})}},baseVariant,gestureVariant)}),isDisplayed3()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-11rgnmt-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"ZoMN5N_Iu-container\",nodeId:\"ZoMN5N_Iu\",rendersWithMotion:true,scopeId:\"sY7_Xl9zB\",children:/*#__PURE__*/_jsx(Phosphor,{color:\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(255, 255, 255))\",height:\"100%\",iconSearch:\"House\",iconSelection:\"CaretRight\",id:\"ZoMN5N_Iu\",layoutId:\"ZoMN5N_Iu\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"bold\",width:\"100%\",...addPropertyOverrides({\"ru05MAJaz-hover\":{color:\"var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81))\"},lK8tsRabi:{color:\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"},ru05MAJaz:{color:\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"}},baseVariant,gestureVariant)})})}),isDisplayed4()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-jbnsqm\",layoutDependency:layoutDependency,layoutId:\"PQh81ZMGw\",children:[isDisplayed4()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", \"DM Sans Placeholder\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251)))\"},children:\"App Store\"})}),className:\"framer-1chrymk\",fonts:[\"GF;DM Sans-500\"],layoutDependency:layoutDependency,layoutId:\"oLLFbj6XA\",style:{\"--extracted-r6o4lv\":\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({NSnt6Nd16:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", sans-serif',\"--framer-font-size\":\"18px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251)))\"},children:\"Google Play\"})})}},baseVariant,gestureVariant)}),isDisplayed4()&&/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", \"DM Sans Placeholder\", sans-serif',\"--framer-font-size\":\"12px\",\"--framer-font-weight\":\"500\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251)))\"},children:\"Download on the\"})}),className:\"framer-1aid9ns\",fonts:[\"GF;DM Sans-500\"],layoutDependency:layoutDependency,layoutId:\"Y5He426mQ\",style:{\"--extracted-r6o4lv\":\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({a7IBhwPBc:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", \"DM Sans Placeholder\", sans-serif',\"--framer-font-size\":\"10px\",\"--framer-font-weight\":\"500\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251)))\"},children:\"Download on the\"})})},NSnt6Nd16:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", sans-serif',\"--framer-font-size\":\"10px\",\"--framer-font-weight\":\"500\",\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(251, 251, 251)))\"},children:\"Get it on\"})})}},baseVariant,gestureVariant)})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-56Ic5.framer-gge9f0, .framer-56Ic5 .framer-gge9f0 { display: block; }\",\".framer-56Ic5.framer-b6xozi { align-content: center; align-items: center; cursor: pointer; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: hidden; padding: 20px 28px 20px 32px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-56Ic5 .framer-td3led { flex: none; height: 20px; position: relative; width: 18px; }\",\".framer-56Ic5 .framer-1iwh1es { flex: none; height: 22px; position: relative; width: 18px; }\",\".framer-56Ic5 .framer-f9fsyn, .framer-56Ic5 .framer-1chrymk, .framer-56Ic5 .framer-1aid9ns { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-56Ic5 .framer-11rgnmt-container { flex: none; height: 16px; position: relative; width: 16px; }\",\".framer-56Ic5 .framer-jbnsqm { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; min-height: 25px; min-width: 204px; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-56Ic5.framer-b6xozi, .framer-56Ic5 .framer-jbnsqm { gap: 0px; } .framer-56Ic5.framer-b6xozi > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-56Ic5.framer-b6xozi > :first-child { margin-left: 0px; } .framer-56Ic5.framer-b6xozi > :last-child { margin-right: 0px; } .framer-56Ic5 .framer-jbnsqm > * { margin: 0px; margin-bottom: calc(0px / 2); margin-top: calc(0px / 2); } .framer-56Ic5 .framer-jbnsqm > :first-child { margin-top: 0px; } .framer-56Ic5 .framer-jbnsqm > :last-child { margin-bottom: 0px; } }\",\".framer-56Ic5.framer-v-1rcv6tu.framer-b6xozi { padding: 0px; }\",\".framer-56Ic5.framer-v-fxduoh.framer-b6xozi { padding: 16px 24px 16px 24px; }\",\".framer-56Ic5.framer-v-mpi7ta.framer-b6xozi { padding: 20px 32px 20px 32px; }\",\".framer-56Ic5.framer-v-r2o0gt.framer-b6xozi { padding: 16px 20px 16px 24px; }\",\".framer-56Ic5.framer-v-r2o0gt .framer-11rgnmt-container { height: 12px; width: 12px; }\",\".framer-56Ic5.framer-v-vrv18p.framer-b6xozi { gap: 8px; height: 48px; padding: 0px; width: 164px; }\",\".framer-56Ic5.framer-v-vrv18p .framer-jbnsqm, .framer-56Ic5.framer-v-vrv18p.hover .framer-jbnsqm, .framer-56Ic5.framer-v-vas4km.hover .framer-jbnsqm { min-height: unset; min-width: unset; }\",\".framer-56Ic5.framer-v-vrv18p .framer-1chrymk, .framer-56Ic5.framer-v-vas4km .framer-1chrymk { order: 1; }\",\".framer-56Ic5.framer-v-vrv18p .framer-1aid9ns, .framer-56Ic5.framer-v-vas4km .framer-1aid9ns { order: 0; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-56Ic5.framer-v-vrv18p.framer-b6xozi { gap: 0px; } .framer-56Ic5.framer-v-vrv18p.framer-b6xozi > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } .framer-56Ic5.framer-v-vrv18p.framer-b6xozi > :first-child { margin-left: 0px; } .framer-56Ic5.framer-v-vrv18p.framer-b6xozi > :last-child { margin-right: 0px; } }\",\".framer-56Ic5.framer-v-vas4km.framer-b6xozi { gap: 8px; height: 48px; padding: 8px 24px 8px 24px; width: 164px; }\",\".framer-56Ic5.framer-v-vas4km .framer-jbnsqm { align-content: flex-start; align-items: flex-start; min-height: unset; min-width: unset; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-56Ic5.framer-v-vas4km.framer-b6xozi { gap: 0px; } .framer-56Ic5.framer-v-vas4km.framer-b6xozi > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } .framer-56Ic5.framer-v-vas4km.framer-b6xozi > :first-child { margin-left: 0px; } .framer-56Ic5.framer-v-vas4km.framer-b6xozi > :last-child { margin-right: 0px; } }\",'.framer-56Ic5[data-border=\"true\"]::after, .framer-56Ic5 [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 59\n * @framerIntrinsicWidth 167\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"ru05MAJaz\":{\"layout\":[\"auto\",\"auto\"]},\"o6x0xsiOh\":{\"layout\":[\"auto\",\"auto\"]},\"E5NC23WuT\":{\"layout\":[\"auto\",\"auto\"]},\"D5uCXBeXW\":{\"layout\":[\"auto\",\"auto\"]},\"lK8tsRabi\":{\"layout\":[\"auto\",\"auto\"]},\"a7IBhwPBc\":{\"layout\":[\"fixed\",\"fixed\"]},\"NSnt6Nd16\":{\"layout\":[\"fixed\",\"fixed\"]},\"dkDjyyvqF\":{\"layout\":[\"auto\",\"auto\"]},\"gRN_VpqKx\":{\"layout\":[\"auto\",\"auto\"]},\"zpt8CDvsC\":{\"layout\":[\"auto\",\"auto\"]},\"MpoYnSSK3\":{\"layout\":[\"auto\",\"auto\"]},\"N8lgIlnWh\":{\"layout\":[\"auto\",\"auto\"]},\"T3oMQO9Ef\":{\"layout\":[\"auto\",\"auto\"]},\"pQz7yrffe\":{\"layout\":[\"fixed\",\"fixed\"]},\"vTSaNpdyT\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"qAejPu7n3\":\"link\",\"CLwo5toVX\":\"title\",\"H4drh_ZVB\":\"tap\",\"plvHhF5ch\":\"newTab\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramersY7_Xl9zB=withCSS(Component,css,\"framer-56Ic5\");export default FramersY7_Xl9zB;FramersY7_Xl9zB.displayName=\"Components / Button\";FramersY7_Xl9zB.defaultProps={height:59,width:167};addPropertyControls(FramersY7_Xl9zB,{variant:{options:[\"IidJjB420\",\"ru05MAJaz\",\"o6x0xsiOh\",\"E5NC23WuT\",\"D5uCXBeXW\",\"lK8tsRabi\",\"a7IBhwPBc\",\"NSnt6Nd16\"],optionTitles:[\"Button 1\",\"Button 2\",\"Button 3\",\"Button 4\",\"Button 5\",\"Button 6\",\"Button 7\",\"Button 8\"],title:\"Variant\",type:ControlType.Enum},qAejPu7n3:{title:\"Link\",type:ControlType.Link},CLwo5toVX:{defaultValue:\"Get started\",displayTextArea:false,title:\"Title\",type:ControlType.String},H4drh_ZVB:{title:\"Tap\",type:ControlType.EventHandler},plvHhF5ch:{defaultValue:false,title:\"New Tab\",type:ControlType.Boolean}});addFonts(FramersY7_Xl9zB,[{explicitInter:true,fonts:[{family:\"DM Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmsans/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAkJxhS2f3ZGMZpg.woff2\",weight:\"500\"}]},...PhosphorFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramersY7_Xl9zB\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"59\",\"framerVariables\":\"{\\\"qAejPu7n3\\\":\\\"link\\\",\\\"CLwo5toVX\\\":\\\"title\\\",\\\"H4drh_ZVB\\\":\\\"tap\\\",\\\"plvHhF5ch\\\":\\\"newTab\\\"}\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"ru05MAJaz\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"o6x0xsiOh\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"E5NC23WuT\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"D5uCXBeXW\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"lK8tsRabi\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"a7IBhwPBc\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"NSnt6Nd16\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"dkDjyyvqF\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"gRN_VpqKx\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"zpt8CDvsC\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"MpoYnSSK3\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"N8lgIlnWh\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"T3oMQO9Ef\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"pQz7yrffe\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"vTSaNpdyT\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerIntrinsicWidth\":\"167\",\"framerComponentViewportWidth\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./sY7_Xl9zB.map","// Generated by Framer (47ebf4a)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,getPropertyControls,RichText,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import{Icon as Phosphor}from\"https://framerusercontent.com/modules/tYScH7LTqUtz5KUaUAYP/p8dptk4UIND8hbFWz9V7/Phosphor.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/vYt0MyyjICyOeOFOF1Lv/Im3hytJ3qNx7PuNrfrwd/no4VIAehA.js\";const PhosphorFonts=getFonts(Phosphor);const PhosphorControls=getPropertyControls(Phosphor);const cycleOrder=[\"wp80lOsAm\",\"hm9k_k9Im\"];const serializationHash=\"framer-OGq5o\";const variantClassNames={hm9k_k9Im:\"framer-v-xf1jkl\",wp80lOsAm:\"framer-v-1qb0i8t\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Pill Small\":\"hm9k_k9Im\",Pill:\"wp80lOsAm\"};const getProps=({color,height,icon,id,title,width,...props})=>{return{...props,ChxP8Daid:color??props.ChxP8Daid??\"var(--token-78aa5d10-689c-4324-98be-9610b743091e, rgb(101, 117, 251))\",ocQcc7fwO:title??props.ocQcc7fwO??\"Testimonials\",variant:humanReadableVariantMap[props.variant]??props.variant??\"wp80lOsAm\",YOk8dX6kO:icon??props.YOk8dX6kO??\"Chat\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,ocQcc7fwO,YOk8dX6kO,ChxP8Daid,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"wp80lOsAm\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if(baseVariant===\"hm9k_k9Im\")return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1qb0i8t\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Pill\",layoutDependency:layoutDependency,layoutId:\"wp80lOsAm\",ref:refBinding,style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-0dee0b21-19ab-40d8-ad80-08e4c7627a89, rgb(44, 60, 120))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-3081b75b-d010-41c4-91fa-2df201e8028c, rgb(17, 20, 34))\",borderBottomLeftRadius:32,borderBottomRightRadius:32,borderTopLeftRadius:32,borderTopRightRadius:32,...style},...addPropertyOverrides({hm9k_k9Im:{\"data-framer-name\":\"Pill Small\"}},baseVariant,gestureVariant),children:[isDisplayed()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-u0jmk3-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"XvymtTKeG-container\",nodeId:\"XvymtTKeG\",rendersWithMotion:true,scopeId:\"RkwtNtYC9\",children:/*#__PURE__*/_jsx(Phosphor,{color:ChxP8Daid,height:\"100%\",iconSearch:\"House\",iconSelection:YOk8dX6kO,id:\"XvymtTKeG\",layoutId:\"XvymtTKeG\",mirrored:false,selectByList:true,style:{height:\"100%\",width:\"100%\"},weight:\"bold\",width:\"100%\"})})}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1r9uoyi\",\"data-styles-preset\":\"no4VIAehA\",children:\"Testimonials\"})}),className:\"framer-102yxxy\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"JESxBEO9H\",style:{\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:ocQcc7fwO,verticalAlignment:\"top\",withExternalLayout:true})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-OGq5o.framer-1jrgu8y, .framer-OGq5o .framer-1jrgu8y { display: block; }\",\".framer-OGq5o.framer-1qb0i8t { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: hidden; padding: 8px 12px 8px 12px; position: relative; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\".framer-OGq5o .framer-u0jmk3-container { flex: none; height: 16px; position: relative; width: 16px; }\",\".framer-OGq5o .framer-102yxxy { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-OGq5o.framer-1qb0i8t { gap: 0px; } .framer-OGq5o.framer-1qb0i8t > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } .framer-OGq5o.framer-1qb0i8t > :first-child { margin-left: 0px; } .framer-OGq5o.framer-1qb0i8t > :last-child { margin-right: 0px; } }\",\".framer-OGq5o.framer-v-xf1jkl.framer-1qb0i8t { padding: 4px 12px 4px 12px; }\",...sharedStyle.css,'.framer-OGq5o[data-border=\"true\"]::after, .framer-OGq5o [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 33\n * @framerIntrinsicWidth 126\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"hm9k_k9Im\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"ocQcc7fwO\":\"title\",\"YOk8dX6kO\":\"icon\",\"ChxP8Daid\":\"color\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerRkwtNtYC9=withCSS(Component,css,\"framer-OGq5o\");export default FramerRkwtNtYC9;FramerRkwtNtYC9.displayName=\"Components / Pill\";FramerRkwtNtYC9.defaultProps={height:33,width:126};addPropertyControls(FramerRkwtNtYC9,{variant:{options:[\"wp80lOsAm\",\"hm9k_k9Im\"],optionTitles:[\"Pill\",\"Pill Small\"],title:\"Variant\",type:ControlType.Enum},ocQcc7fwO:{defaultValue:\"Testimonials\",displayTextArea:false,title:\"Title\",type:ControlType.String},YOk8dX6kO:PhosphorControls?.[\"iconSelection\"]&&{...PhosphorControls[\"iconSelection\"],defaultValue:\"Chat\",description:undefined,hidden:undefined,title:\"Icon\"},ChxP8Daid:{defaultValue:'var(--token-78aa5d10-689c-4324-98be-9610b743091e, rgb(101, 117, 251)) /* {\"name\":\"Accent / Light Purple [Text]\"} */',title:\"Color\",type:ControlType.Color}});addFonts(FramerRkwtNtYC9,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]},...PhosphorFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerRkwtNtYC9\",\"slots\":[],\"annotations\":{\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"hm9k_k9Im\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerVariables\":\"{\\\"ocQcc7fwO\\\":\\\"title\\\",\\\"YOk8dX6kO\\\":\\\"icon\\\",\\\"ChxP8Daid\\\":\\\"color\\\"}\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"126\",\"framerIntrinsicHeight\":\"33\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RkwtNtYC9.map","// Generated by Framer (b5638f1)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,getFonts,getFontsFromSharedStyle,getLoadingLazyAtYPosition,Image,Link,RichText,SmartComponentScopedContainer,useActiveVariantCallback,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as sharedStyle from\"https://framerusercontent.com/modules/v7NpqVyxeykrJShWuVeO/zXB3kn22shD3reEE7Fu0/kvG2C7HO0.js\";import ComponentsPill from\"https://framerusercontent.com/modules/eoR2N1bJ1dA0RLU2PyWZ/UoIJOnZCj0vP9LSkpxR4/RkwtNtYC9.js\";import ComponentsButton from\"https://framerusercontent.com/modules/7UEpr0otOUeCt8x6GTpg/zKEV4rrbAsiNLtjhoHum/sY7_Xl9zB.js\";const ComponentsPillFonts=getFonts(ComponentsPill);const ComponentsButtonFonts=getFonts(ComponentsButton);const cycleOrder=[\"E8n2tYfUA\",\"bmXeMwG81\",\"Q3Y7zcxfb\",\"RdEt_6upe\"];const serializationHash=\"framer-8Q0bS\";const variantClassNames={bmXeMwG81:\"framer-v-1xf6bpl\",E8n2tYfUA:\"framer-v-1t4kku3\",Q3Y7zcxfb:\"framer-v-butbw2\",RdEt_6upe:\"framer-v-17vi2gu\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={damping:60,delay:0,mass:1,stiffness:500,type:\"spring\"};const transition2={damping:60,delay:0,mass:.1,stiffness:500,type:\"spring\"};const transition3={damping:60,delay:0,mass:5,stiffness:500,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Mobile Open\":\"RdEt_6upe\",Desktop:\"E8n2tYfUA\",Mobile:\"Q3Y7zcxfb\",Tablet:\"bmXeMwG81\"};const getProps=({height,id,pillCategory,width,...props})=>{return{...props,TMyPUaLsb:pillCategory??props.TMyPUaLsb,variant:humanReadableVariantMap[props.variant]??props.variant??\"E8n2tYfUA\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,TMyPUaLsb,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"E8n2tYfUA\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const{activeVariantCallback,delay}=useActiveVariantCallback(baseVariant);const onTapcb1bto=activeVariantCallback(async(...args)=>{setVariant(\"RdEt_6upe\");});const onTapvzxb3v=activeVariantCallback(async(...args)=>{setVariant(\"Q3Y7zcxfb\");});const onTapvzco43=activeVariantCallback(async(...args)=>{setVariant(\"E8n2tYfUA\");});const H4drh_ZVBvzco43=activeVariantCallback(async(...args)=>{setVariant(\"E8n2tYfUA\");});const sharedStyleClassNames=[sharedStyle.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);const isDisplayed=()=>{if([\"Q3Y7zcxfb\",\"RdEt_6upe\"].includes(baseVariant))return true;return false;};const isDisplayed1=()=>{if(baseVariant===\"RdEt_6upe\")return false;return true;};const isDisplayed2=()=>{if(baseVariant===\"Q3Y7zcxfb\")return false;return true;};const isDisplayed3=()=>{if(baseVariant===\"RdEt_6upe\")return true;return false;};const isDisplayed4=()=>{if([\"Q3Y7zcxfb\",\"RdEt_6upe\"].includes(baseVariant))return false;return true;};return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,...addPropertyOverrides({Q3Y7zcxfb:{value:transition2},RdEt_6upe:{value:transition3}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(motion.nav,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-1t4kku3\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"E8n2tYfUA\",ref:refBinding,style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-c4c4829c-74d7-4050-a1a6-95473b262a30, rgb(22, 22, 22))\",\"--border-left-width\":\"0px\",\"--border-right-width\":\"0px\",\"--border-style\":\"solid\",\"--border-top-width\":\"0px\",backdropFilter:\"blur(10px)\",backgroundColor:\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(15, 15, 15))\",WebkitBackdropFilter:\"blur(10px)\",...style},variants:{RdEt_6upe:{backgroundColor:\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(255, 255, 255))\"}},...addPropertyOverrides({bmXeMwG81:{\"data-framer-name\":\"Tablet\"},Q3Y7zcxfb:{\"data-framer-name\":\"Mobile\"},RdEt_6upe:{\"data-framer-name\":\"Mobile Open\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-4q2fet\",\"data-framer-name\":\"Container\",layoutDependency:layoutDependency,layoutId:\"qmhpfFbeL\",children:[/*#__PURE__*/_jsx(motion.nav,{className:\"framer-uwe9ox\",\"data-framer-name\":\"Logo Block\",layoutDependency:layoutDependency,layoutId:\"D1VXVNXt9\",children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1spak8d\",\"data-framer-name\":\"Logo\",layoutDependency:layoutDependency,layoutId:\"MoTYR8BXb\",children:[/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1atkt1g\",layoutDependency:layoutDependency,layoutId:\"wbv7RZSkC\",children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"Z8rq1keSW\",scopeId:\"SIS8HZtvZ\",children:/*#__PURE__*/_jsx(Image,{as:\"a\",background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+(20+((componentViewport?.height||91)-40-59)/2)+10.5+0+0+0),pixelHeight:72,pixelWidth:178,src:\"https://framerusercontent.com/images/oxNdudaTikUrwK5cr5CjmYYPojA.svg\"},className:\"framer-i238zu framer-1vx4um1\",layoutDependency:layoutDependency,layoutId:\"Z8rq1keSW\",...addPropertyOverrides({Q3Y7zcxfb:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+(20+((componentViewport?.height||200)-40-40)/2)+0+0+1+0),pixelHeight:72,pixelWidth:178,src:\"https://framerusercontent.com/images/oxNdudaTikUrwK5cr5CjmYYPojA.svg\"}},RdEt_6upe:{background:{alt:\"\",fit:\"fill\",loading:getLoadingLazyAtYPosition((componentViewport?.y||0)+20+0+0+0+0+0+1+0),pixelHeight:72,pixelWidth:178,src:\"https://framerusercontent.com/images/oxNdudaTikUrwK5cr5CjmYYPojA.svg\"}}},baseVariant,gestureVariant)})}),TMyPUaLsb&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:33,y:(componentViewport?.y||0)+(20+((componentViewport?.height||91)-40-59)/2)+10.5+0+0+2.5,...addPropertyOverrides({Q3Y7zcxfb:{y:(componentViewport?.y||0)+(20+((componentViewport?.height||200)-40-40)/2)+0+0+1+2.5},RdEt_6upe:{y:(componentViewport?.y||0)+20+0+0+0+0+0+1+2.5}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-lajtgp-container\",layoutDependency:layoutDependency,layoutId:\"nJgfxjpFu-container\",nodeId:\"nJgfxjpFu\",rendersWithMotion:true,scopeId:\"SIS8HZtvZ\",children:/*#__PURE__*/_jsx(ComponentsPill,{ChxP8Daid:\"var(--token-78aa5d10-689c-4324-98be-9610b743091e, rgb(101, 117, 251))\",height:\"100%\",id:\"nJgfxjpFu\",layoutId:\"nJgfxjpFu\",ocQcc7fwO:\"Blog\",variant:\"hm9k_k9Im\",width:\"100%\",YOk8dX6kO:\"Chat\"})})})]}),isDisplayed()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-2go7n5\",\"data-framer-name\":\"Icon\",layoutDependency:layoutDependency,layoutId:\"QvvzjJJOh\",style:{backgroundColor:\"rgb(232, 232, 232)\",borderBottomLeftRadius:12,borderBottomRightRadius:12,borderTopLeftRadius:12,borderTopRightRadius:12},variants:{Q3Y7zcxfb:{backgroundColor:\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"},RdEt_6upe:{backgroundColor:\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\"}},...addPropertyOverrides({Q3Y7zcxfb:{\"data-highlight\":true,onTap:onTapcb1bto},RdEt_6upe:{\"data-highlight\":true,onTap:onTapvzxb3v}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-1bx18aj\",\"data-framer-name\":\"Bottom\",layoutDependency:layoutDependency,layoutId:\"Jr6BhL5E1\",style:{backgroundColor:\"var(--token-30882c94-f0d7-4676-a31c-4e1d40152456, rgb(33, 49, 36))\",borderBottomLeftRadius:1,borderBottomRightRadius:1,borderTopLeftRadius:1,borderTopRightRadius:1,rotate:0},variants:{Q3Y7zcxfb:{backgroundColor:\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(255, 255, 255))\"},RdEt_6upe:{backgroundColor:\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(255, 255, 255))\",rotate:-45}}}),isDisplayed1()&&/*#__PURE__*/_jsx(motion.div,{className:\"framer-pnisd3\",\"data-framer-name\":\"Center\",layoutDependency:layoutDependency,layoutId:\"Q2TwoBfTZ\",style:{backgroundColor:\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(255, 255, 255))\",borderBottomLeftRadius:1,borderBottomRightRadius:1,borderTopLeftRadius:1,borderTopRightRadius:1}}),/*#__PURE__*/_jsx(motion.div,{className:\"framer-ckd1jj\",\"data-framer-name\":\"Top\",layoutDependency:layoutDependency,layoutId:\"rP_CuOK4v\",style:{backgroundColor:\"var(--token-30882c94-f0d7-4676-a31c-4e1d40152456, rgb(33, 49, 36))\",borderBottomLeftRadius:1,borderBottomRightRadius:1,borderTopLeftRadius:1,borderTopRightRadius:1,rotate:0},variants:{Q3Y7zcxfb:{backgroundColor:\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(255, 255, 255))\"},RdEt_6upe:{backgroundColor:\"var(--token-4c7f010d-bb1c-4d62-970d-39953d2c2c6e, rgb(255, 255, 255))\",rotate:45}}})]})]})}),isDisplayed2()&&/*#__PURE__*/_jsxs(motion.div,{className:\"framer-11uvtgt\",\"data-framer-name\":\"Links\",layoutDependency:layoutDependency,layoutId:\"pTBce3Yuo\",style:{borderBottomLeftRadius:64,borderBottomRightRadius:64,borderTopLeftRadius:64,borderTopRightRadius:64},children:[/*#__PURE__*/_jsx(Link,{href:{webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"JuGE7OgOT\",scopeId:\"SIS8HZtvZ\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-izq4wl framer-1vx4um1\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"JuGE7OgOT\",...addPropertyOverrides({RdEt_6upe:{\"data-highlight\":true,onTap:onTapvzxb3v}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:\"Home\"})}),className:\"framer-ouxaks\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"edUOJ4Tb1\",variants:{RdEt_6upe:{\"--extracted-r6o4lv\":\"var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({RdEt_6upe:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", \"DM Sans Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81)))\"},children:\"Home\"})}),fonts:[\"GF;DM Sans-500\"]}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(Link,{href:{hash:\":OAZdfKMtW\",webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"yZV4bJ1AL\",openInNewTab:false,scopeId:\"SIS8HZtvZ\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1k5oapj framer-1vx4um1\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"yZV4bJ1AL\",...addPropertyOverrides({RdEt_6upe:{\"data-highlight\":true,onTap:onTapvzxb3v}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:\"Features\"})}),className:\"framer-edacic\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"X08ov182N\",variants:{RdEt_6upe:{\"--extracted-r6o4lv\":\"var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({RdEt_6upe:{\"data-highlight\":true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", \"DM Sans Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81)))\"},children:\"Features\"})}),fonts:[\"GF;DM Sans-500\"],onTap:onTapcb1bto}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(Link,{href:{webPageId:\"fxvsL0MAE\"},motionChild:true,nodeId:\"TsmMYrs9d\",openInNewTab:false,scopeId:\"SIS8HZtvZ\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1ibd8fa framer-1vx4um1\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"TsmMYrs9d\",...addPropertyOverrides({RdEt_6upe:{\"data-highlight\":true,onTap:onTapvzxb3v}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:\"Blog\"})}),className:\"framer-1f5ty5o\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"OvyyYSN02\",variants:{RdEt_6upe:{\"--extracted-r6o4lv\":\"var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({RdEt_6upe:{\"data-highlight\":true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", \"DM Sans Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81)))\"},children:\"Blog\"})}),fonts:[\"GF;DM Sans-500\"],onTap:onTapcb1bto}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(Link,{href:\"https://docs.mutalabs.com/introduction\",motionChild:true,nodeId:\"hArmqakLY\",openInNewTab:true,scopeId:\"SIS8HZtvZ\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1tkxgtr framer-1vx4um1\",\"data-framer-name\":\"Nav Link\",layoutDependency:layoutDependency,layoutId:\"hArmqakLY\",...addPropertyOverrides({RdEt_6upe:{\"data-highlight\":true,onTap:onTapvzxb3v}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:\"Docs\"})}),className:\"framer-7i4n99\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"UEb30xqYG\",variants:{RdEt_6upe:{\"--extracted-r6o4lv\":\"var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({RdEt_6upe:{\"data-highlight\":true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", \"DM Sans Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81)))\"},children:\"Docs\"})}),fonts:[\"GF;DM Sans-500\"],onTap:onTapcb1bto}},baseVariant,gestureVariant)})})}),/*#__PURE__*/_jsx(Link,{href:{hash:\":AauUQtb4m\",webPageId:\"augiA20Il\"},motionChild:true,nodeId:\"ZEYR0V6ka\",openInNewTab:false,scopeId:\"SIS8HZtvZ\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-lfasa5 framer-1vx4um1\",\"data-framer-name\":\"Nav Link\",\"data-highlight\":true,layoutDependency:layoutDependency,layoutId:\"ZEYR0V6ka\",onTap:onTapvzco43,...addPropertyOverrides({RdEt_6upe:{onTap:onTapvzxb3v}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1mmahvz\",\"data-styles-preset\":\"kvG2C7HO0\",children:\"Pricing\"})}),className:\"framer-1ks271l\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"CDkSLoyZa\",variants:{RdEt_6upe:{\"--extracted-r6o4lv\":\"var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({RdEt_6upe:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", \"DM Sans Placeholder\", sans-serif',\"--framer-font-size\":\"24px\",\"--framer-font-weight\":\"500\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-9057e439-6d68-470e-b29f-25e88d33cc8e, rgb(78, 77, 81)))\"},children:\"Pricing\"})}),fonts:[\"GF;DM Sans-500\"]}},baseVariant,gestureVariant)})})})]}),isDisplayed3()&&/*#__PURE__*/_jsx(Link,{href:\"https://app.mutalabs.com/auth\",motionChild:true,nodeId:\"bTpRHScLE\",openInNewTab:false,scopeId:\"SIS8HZtvZ\",children:/*#__PURE__*/_jsx(motion.a,{className:\"framer-1tfjmk7 framer-1vx4um1\",\"data-border\":true,layoutDependency:layoutDependency,layoutId:\"bTpRHScLE\",style:{\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-97079f68-6070-43ee-833d-a310c208301d, rgb(199, 199, 199))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",backgroundColor:\"var(--token-4caffb48-5664-4ab3-aaf8-6d0e936d30a0, rgb(255, 255, 255))\",borderBottomLeftRadius:64,borderBottomRightRadius:64,borderTopLeftRadius:64,borderTopRightRadius:64},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"R0Y7RE0gU2Fucy01MDA=\",\"--framer-font-family\":'\"DM Sans\", \"DM Sans Placeholder\", sans-serif',\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48)))\"},children:\"Get started\"})}),className:\"framer-1jlwkw1\",fonts:[\"GF;DM Sans-500\"],layoutDependency:layoutDependency,layoutId:\"bTpRHScLElaIBk04Vk\",style:{\"--extracted-r6o4lv\":\"var(--token-4c7cef44-82df-4f77-8b59-4bd8e4842e58, rgb(43, 47, 48))\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},verticalAlignment:\"top\",withExternalLayout:true})})}),isDisplayed4()&&/*#__PURE__*/_jsx(ComponentViewportProvider,{height:59,y:(componentViewport?.y||0)+(20+((componentViewport?.height||91)-40-59)/2)+0,children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1uusu2k-container\",layoutDependency:layoutDependency,layoutId:\"fZHgIfSwM-container\",nodeId:\"fZHgIfSwM\",rendersWithMotion:true,scopeId:\"SIS8HZtvZ\",children:/*#__PURE__*/_jsx(ComponentsButton,{CLwo5toVX:\"Get started\",H4drh_ZVB:H4drh_ZVBvzco43,height:\"100%\",id:\"fZHgIfSwM\",layoutId:\"fZHgIfSwM\",plvHhF5ch:false,qAejPu7n3:\"https://app.mutalabs.com/\",variant:\"o6x0xsiOh\",width:\"100%\"})})})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-8Q0bS.framer-1vx4um1, .framer-8Q0bS .framer-1vx4um1 { display: block; }\",\".framer-8Q0bS.framer-1t4kku3 { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 20px 0px 20px 0px; position: relative; width: 1280px; }\",\".framer-8Q0bS .framer-4q2fet { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: row; flex-wrap: nowrap; height: min-content; justify-content: space-between; max-width: 1280px; overflow: visible; padding: 0px 40px 0px 40px; position: relative; width: 1px; }\",\".framer-8Q0bS .framer-uwe9ox, .framer-8Q0bS .framer-1spak8d, .framer-8Q0bS .framer-1atkt1g { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: flex-start; overflow: visible; padding: 0px; position: relative; width: min-content; }\",\".framer-8Q0bS .framer-i238zu { flex: none; height: 38px; position: relative; text-decoration: none; width: 88px; }\",\".framer-8Q0bS .framer-lajtgp-container, .framer-8Q0bS .framer-1uusu2k-container { flex: none; height: auto; position: relative; width: auto; }\",\".framer-8Q0bS .framer-2go7n5 { flex: none; height: 40px; overflow: visible; position: relative; width: 40px; }\",\".framer-8Q0bS .framer-1bx18aj { bottom: 13px; flex: none; height: 2px; left: calc(50.00000000000002% - 18px / 2); overflow: visible; position: absolute; width: 18px; }\",\".framer-8Q0bS .framer-pnisd3 { flex: none; height: 2px; left: calc(50.00000000000002% - 18px / 2); overflow: visible; position: absolute; top: calc(50.00000000000002% - 2px / 2); width: 18px; }\",\".framer-8Q0bS .framer-ckd1jj { flex: none; height: 2px; left: calc(50.00000000000002% - 18px / 2); overflow: visible; position: absolute; top: 13px; width: 18px; }\",\".framer-8Q0bS .framer-11uvtgt { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 8px; height: min-content; justify-content: center; overflow: visible; padding: 4px; position: relative; width: min-content; }\",\".framer-8Q0bS .framer-izq4wl, .framer-8Q0bS .framer-1k5oapj, .framer-8Q0bS .framer-1ibd8fa, .framer-8Q0bS .framer-1tkxgtr { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 8px; position: relative; text-decoration: none; width: min-content; }\",\".framer-8Q0bS .framer-ouxaks, .framer-8Q0bS .framer-edacic, .framer-8Q0bS .framer-1f5ty5o, .framer-8Q0bS .framer-7i4n99, .framer-8Q0bS .framer-1ks271l, .framer-8Q0bS .framer-1jlwkw1 { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\".framer-8Q0bS .framer-lfasa5 { align-content: center; align-items: center; cursor: pointer; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 8px; position: relative; text-decoration: none; width: min-content; }\",\".framer-8Q0bS .framer-1tfjmk7 { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: hidden; padding: 20px 32px 20px 32px; position: relative; text-decoration: none; width: min-content; will-change: var(--framer-will-change-override, transform); }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-8Q0bS.framer-1t4kku3, .framer-8Q0bS .framer-uwe9ox, .framer-8Q0bS .framer-1spak8d, .framer-8Q0bS .framer-1atkt1g, .framer-8Q0bS .framer-11uvtgt, .framer-8Q0bS .framer-izq4wl, .framer-8Q0bS .framer-1k5oapj, .framer-8Q0bS .framer-1ibd8fa, .framer-8Q0bS .framer-1tkxgtr, .framer-8Q0bS .framer-lfasa5, .framer-8Q0bS .framer-1tfjmk7 { gap: 0px; } .framer-8Q0bS.framer-1t4kku3 > *, .framer-8Q0bS .framer-izq4wl > *, .framer-8Q0bS .framer-1k5oapj > *, .framer-8Q0bS .framer-1ibd8fa > *, .framer-8Q0bS .framer-1tkxgtr > *, .framer-8Q0bS .framer-lfasa5 > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-8Q0bS.framer-1t4kku3 > :first-child, .framer-8Q0bS .framer-uwe9ox > :first-child, .framer-8Q0bS .framer-1spak8d > :first-child, .framer-8Q0bS .framer-1atkt1g > :first-child, .framer-8Q0bS .framer-11uvtgt > :first-child, .framer-8Q0bS .framer-izq4wl > :first-child, .framer-8Q0bS .framer-1k5oapj > :first-child, .framer-8Q0bS .framer-1ibd8fa > :first-child, .framer-8Q0bS .framer-1tkxgtr > :first-child, .framer-8Q0bS .framer-lfasa5 > :first-child, .framer-8Q0bS .framer-1tfjmk7 > :first-child { margin-left: 0px; } .framer-8Q0bS.framer-1t4kku3 > :last-child, .framer-8Q0bS .framer-uwe9ox > :last-child, .framer-8Q0bS .framer-1spak8d > :last-child, .framer-8Q0bS .framer-1atkt1g > :last-child, .framer-8Q0bS .framer-11uvtgt > :last-child, .framer-8Q0bS .framer-izq4wl > :last-child, .framer-8Q0bS .framer-1k5oapj > :last-child, .framer-8Q0bS .framer-1ibd8fa > :last-child, .framer-8Q0bS .framer-1tkxgtr > :last-child, .framer-8Q0bS .framer-lfasa5 > :last-child, .framer-8Q0bS .framer-1tfjmk7 > :last-child { margin-right: 0px; } .framer-8Q0bS .framer-uwe9ox > *, .framer-8Q0bS .framer-1spak8d > *, .framer-8Q0bS .framer-1atkt1g > * { margin: 0px; margin-left: calc(16px / 2); margin-right: calc(16px / 2); } .framer-8Q0bS .framer-11uvtgt > * { margin: 0px; margin-left: calc(8px / 2); margin-right: calc(8px / 2); } .framer-8Q0bS .framer-1tfjmk7 > * { margin: 0px; margin-left: calc(4px / 2); margin-right: calc(4px / 2); } }\",\".framer-8Q0bS.framer-v-1xf6bpl.framer-1t4kku3 { width: 810px; }\",\".framer-8Q0bS.framer-v-1xf6bpl .framer-4q2fet { padding: 0px 32px 0px 32px; }\",\".framer-8Q0bS.framer-v-butbw2.framer-1t4kku3 { justify-content: flex-start; width: 390px; }\",\".framer-8Q0bS.framer-v-butbw2 .framer-4q2fet { padding: 0px 20px 0px 20px; }\",\".framer-8Q0bS.framer-v-butbw2 .framer-uwe9ox { flex: 1 0 0px; width: 1px; }\",\".framer-8Q0bS.framer-v-butbw2 .framer-1spak8d { flex: 1 0 0px; gap: unset; justify-content: space-between; width: 1px; }\",\".framer-8Q0bS.framer-v-butbw2 .framer-2go7n5, .framer-8Q0bS.framer-v-17vi2gu .framer-2go7n5, .framer-8Q0bS.framer-v-17vi2gu .framer-edacic, .framer-8Q0bS.framer-v-17vi2gu .framer-1f5ty5o, .framer-8Q0bS.framer-v-17vi2gu .framer-7i4n99 { cursor: pointer; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-8Q0bS.framer-v-butbw2 .framer-1spak8d { gap: 0px; } .framer-8Q0bS.framer-v-butbw2 .framer-1spak8d > *, .framer-8Q0bS.framer-v-butbw2 .framer-1spak8d > :first-child, .framer-8Q0bS.framer-v-butbw2 .framer-1spak8d > :last-child { margin: 0px; } }\",\".framer-8Q0bS.framer-v-17vi2gu.framer-1t4kku3 { flex-direction: column; justify-content: flex-start; min-height: calc(var(--framer-viewport-height, 100vh) * 1); width: 390px; }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-4q2fet { flex: none; flex-direction: column; gap: 64px; justify-content: center; padding: 0px 20px 0px 20px; width: 100%; }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-uwe9ox { flex-direction: column; width: 100%; }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-1spak8d { gap: unset; justify-content: space-between; width: 100%; }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-1bx18aj { bottom: unset; top: calc(50.00000000000002% - 2px / 2); }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-ckd1jj { top: calc(50.00000000000002% - 2px / 2); }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-11uvtgt { flex-direction: column; padding: 0px; width: 100%; }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-izq4wl { cursor: pointer; justify-content: flex-start; order: 0; padding: 8px 8px 8px 0px; width: 100%; }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-1k5oapj { cursor: pointer; justify-content: flex-start; order: 1; padding: 8px 8px 8px 0px; width: 100%; }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-1ibd8fa { cursor: pointer; justify-content: flex-start; order: 2; padding: 8px 8px 8px 0px; width: 100%; }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-1tkxgtr { cursor: pointer; justify-content: flex-start; order: 3; padding: 8px 8px 8px 0px; width: 100%; }\",\".framer-8Q0bS.framer-v-17vi2gu .framer-lfasa5 { justify-content: flex-start; order: 4; padding: 8px 8px 8px 0px; width: 100%; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-8Q0bS.framer-v-17vi2gu.framer-1t4kku3, .framer-8Q0bS.framer-v-17vi2gu .framer-4q2fet, .framer-8Q0bS.framer-v-17vi2gu .framer-uwe9ox, .framer-8Q0bS.framer-v-17vi2gu .framer-1spak8d, .framer-8Q0bS.framer-v-17vi2gu .framer-11uvtgt { gap: 0px; } .framer-8Q0bS.framer-v-17vi2gu.framer-1t4kku3 > * { margin: 0px; margin-bottom: calc(10px / 2); margin-top: calc(10px / 2); } .framer-8Q0bS.framer-v-17vi2gu.framer-1t4kku3 > :first-child, .framer-8Q0bS.framer-v-17vi2gu .framer-4q2fet > :first-child, .framer-8Q0bS.framer-v-17vi2gu .framer-uwe9ox > :first-child, .framer-8Q0bS.framer-v-17vi2gu .framer-11uvtgt > :first-child { margin-top: 0px; } .framer-8Q0bS.framer-v-17vi2gu.framer-1t4kku3 > :last-child, .framer-8Q0bS.framer-v-17vi2gu .framer-4q2fet > :last-child, .framer-8Q0bS.framer-v-17vi2gu .framer-uwe9ox > :last-child, .framer-8Q0bS.framer-v-17vi2gu .framer-11uvtgt > :last-child { margin-bottom: 0px; } .framer-8Q0bS.framer-v-17vi2gu .framer-4q2fet > * { margin: 0px; margin-bottom: calc(64px / 2); margin-top: calc(64px / 2); } .framer-8Q0bS.framer-v-17vi2gu .framer-uwe9ox > * { margin: 0px; margin-bottom: calc(16px / 2); margin-top: calc(16px / 2); } .framer-8Q0bS.framer-v-17vi2gu .framer-1spak8d > *, .framer-8Q0bS.framer-v-17vi2gu .framer-1spak8d > :first-child, .framer-8Q0bS.framer-v-17vi2gu .framer-1spak8d > :last-child { margin: 0px; } .framer-8Q0bS.framer-v-17vi2gu .framer-11uvtgt > * { margin: 0px; margin-bottom: calc(8px / 2); margin-top: calc(8px / 2); } }\",...sharedStyle.css,'.framer-8Q0bS[data-border=\"true\"]::after, .framer-8Q0bS [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 91\n * @framerIntrinsicWidth 1280\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"bmXeMwG81\":{\"layout\":[\"fixed\",\"auto\"]},\"Q3Y7zcxfb\":{\"layout\":[\"fixed\",\"auto\"]},\"RdEt_6upe\":{\"layout\":[\"fixed\",\"auto\"],\"constraints\":[null,null,\"100vh\",null]}}}\n * @framerVariables {\"TMyPUaLsb\":\"pillCategory\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerSIS8HZtvZ=withCSS(Component,css,\"framer-8Q0bS\");export default FramerSIS8HZtvZ;FramerSIS8HZtvZ.displayName=\"Nav Bar / Nav Bar\";FramerSIS8HZtvZ.defaultProps={height:91,width:1280};addPropertyControls(FramerSIS8HZtvZ,{variant:{options:[\"E8n2tYfUA\",\"bmXeMwG81\",\"Q3Y7zcxfb\",\"RdEt_6upe\"],optionTitles:[\"Desktop\",\"Tablet\",\"Mobile\",\"Mobile Open\"],title:\"Variant\",type:ControlType.Enum},TMyPUaLsb:{defaultValue:false,title:\"Pill Category\",type:ControlType.Boolean}});addFonts(FramerSIS8HZtvZ,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"},{family:\"DM Sans\",source:\"google\",style:\"normal\",url:\"https://fonts.gstatic.com/s/dmsans/v15/rP2tp2ywxg089UriI5-g4vlH9VoD8CmcqZG40F9JadbnoEwAkJxhS2f3ZGMZpg.woff2\",weight:\"500\"}]},...ComponentsPillFonts,...ComponentsButtonFonts,...getFontsFromSharedStyle(sharedStyle.fonts)],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerSIS8HZtvZ\",\"slots\":[],\"annotations\":{\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"91\",\"framerIntrinsicWidth\":\"1280\",\"framerContractVersion\":\"1\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"bmXeMwG81\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"Q3Y7zcxfb\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"RdEt_6upe\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"],\\\"constraints\\\":[null,null,\\\"100vh\\\",null]}}}\",\"framerVariables\":\"{\\\"TMyPUaLsb\\\":\\\"pillCategory\\\"}\",\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerImmutableVariables\":\"true\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SIS8HZtvZ.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/state/dist/index.js\nvar Text=class{/**\n  Get the line description around the given position.\n  */lineAt(pos){if(pos<0||pos>this.length)throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);return this.lineInner(pos,false,1,0);}/**\n  Get the description for the given (1-based) line number.\n  */line(n){if(n<1||n>this.lines)throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);return this.lineInner(n,true,1,0);}/**\n  Replace a range of the text with the given content.\n  */replace(from,to,text){let parts=[];this.decompose(0,from,parts,2);if(text.length)text.decompose(0,text.length,parts,1|2);this.decompose(to,this.length,parts,1);return TextNode.from(parts,this.length-(to-from)+text.length);}/**\n  Append another document to this one.\n  */append(other){return this.replace(this.length,this.length,other);}/**\n  Retrieve the text between the given points.\n  */slice(from,to=this.length){let parts=[];this.decompose(from,to,parts,0);return TextNode.from(parts,to-from);}/**\n  Test whether this text is equal to another instance.\n  */eq(other){if(other==this)return true;if(other.length!=this.length||other.lines!=this.lines)return false;let start=this.scanIdentical(other,1),end=this.length-this.scanIdentical(other,-1);let a=new RawTextCursor(this),b=new RawTextCursor(other);for(let skip=start,pos=start;;){a.next(skip);b.next(skip);skip=0;if(a.lineBreak!=b.lineBreak||a.done!=b.done||a.value!=b.value)return false;pos+=a.value.length;if(a.done||pos>=end)return true;}}/**\n  Iterate over the text. When `dir` is `-1`, iteration happens\n  from end to start. This will return lines and the breaks between\n  them as separate strings.\n  */iter(dir=1){return new RawTextCursor(this,dir);}/**\n  Iterate over a range of the text. When `from` > `to`, the\n  iterator will run in reverse.\n  */iterRange(from,to=this.length){return new PartialTextCursor(this,from,to);}/**\n  Return a cursor that iterates over the given range of lines,\n  _without_ returning the line breaks between, and yielding empty\n  strings for empty lines.\n  \n  When `from` and `to` are given, they should be 1-based line numbers.\n  */iterLines(from,to){let inner;if(from==null){inner=this.iter();}else{if(to==null)to=this.lines+1;let start=this.line(from).from;inner=this.iterRange(start,Math.max(start,to==this.lines+1?this.length:to<=1?0:this.line(to-1).to));}return new LineCursor(inner);}/**\n  Return the document as a string, using newline characters to\n  separate lines.\n  */toString(){return this.sliceString(0);}/**\n  Convert the document to an array of lines (which can be\n  deserialized again via [`Text.of`](https://codemirror.net/6/docs/ref/#state.Text^of)).\n  */toJSON(){let lines=[];this.flatten(lines);return lines;}/**\n  Create a `Text` instance for the given array of lines.\n  */static of(text){if(text.length==0)throw new RangeError(\"A document must have at least one line\");if(text.length==1&&!text[0])return Text.empty;return text.length<=32?new TextLeaf(text):TextNode.from(TextLeaf.split(text,[]));}/**\n  @internal\n  */constructor(){}};var TextLeaf=class extends Text{get lines(){return this.text.length;}get children(){return null;}lineInner(target,isLine,line,offset){for(let i=0;;i++){let string=this.text[i],end=offset+string.length;if((isLine?line:end)>=target)return new Line(offset,end,line,string);offset=end+1;line++;}}decompose(from,to,target,open){let text=from<=0&&to>=this.length?this:new TextLeaf(sliceText(this.text,from,to),Math.min(to,this.length)-Math.max(0,from));if(open&1){let prev=target.pop();let joined=appendText(text.text,prev.text.slice(),0,text.length);if(joined.length<=32){target.push(new TextLeaf(joined,prev.length+text.length));}else{let mid=joined.length>>1;target.push(new TextLeaf(joined.slice(0,mid)),new TextLeaf(joined.slice(mid)));}}else{target.push(text);}}replace(from,to,text){if(!(text instanceof TextLeaf))return super.replace(from,to,text);let lines=appendText(this.text,appendText(text.text,sliceText(this.text,0,from)),to);let newLen=this.length+text.length-(to-from);if(lines.length<=32)return new TextLeaf(lines,newLen);return TextNode.from(TextLeaf.split(lines,[]),newLen);}sliceString(from,to=this.length,lineSep=\"\\n\"){let result=\"\";for(let pos=0,i=0;pos<=to&&i<this.text.length;i++){let line=this.text[i],end=pos+line.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=line.slice(Math.max(0,from-pos),to-pos);pos=end+1;}return result;}flatten(target){for(let line of this.text)target.push(line);}scanIdentical(){return 0;}static split(text,target){let part=[],len=-1;for(let line of text){part.push(line);len+=line.length+1;if(part.length==32){target.push(new TextLeaf(part,len));part=[];len=-1;}}if(len>-1)target.push(new TextLeaf(part,len));return target;}constructor(text,length=textLength(text)){super();this.text=text;this.length=length;}};var TextNode=class extends Text{lineInner(target,isLine,line,offset){for(let i=0;;i++){let child=this.children[i],end=offset+child.length,endLine=line+child.lines-1;if((isLine?endLine:end)>=target)return child.lineInner(target,isLine,line,offset);offset=end+1;line=endLine+1;}}decompose(from,to,target,open){for(let i=0,pos=0;pos<=to&&i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from<=end&&to>=pos){let childOpen=open&((pos<=from?1:0)|(end>=to?2:0));if(pos>=from&&end<=to&&!childOpen)target.push(child);else child.decompose(from-pos,to-pos,target,childOpen);}pos=end+1;}}replace(from,to,text){if(text.lines<this.lines)for(let i=0,pos=0;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(from>=pos&&to<=end){let updated=child.replace(from-pos,to-pos,text);let totalLines=this.lines-child.lines+updated.lines;if(updated.lines<totalLines>>5-1&&updated.lines>totalLines>>5+1){let copy=this.children.slice();copy[i]=updated;return new TextNode(copy,this.length-(to-from)+text.length);}return super.replace(pos,end,updated);}pos=end+1;}return super.replace(from,to,text);}sliceString(from,to=this.length,lineSep=\"\\n\"){let result=\"\";for(let i=0,pos=0;i<this.children.length&&pos<=to;i++){let child=this.children[i],end=pos+child.length;if(pos>from&&i)result+=lineSep;if(from<end&&to>pos)result+=child.sliceString(from-pos,to-pos,lineSep);pos=end+1;}return result;}flatten(target){for(let child of this.children)child.flatten(target);}scanIdentical(other,dir){if(!(other instanceof TextNode))return 0;let length=0;let[iA,iB,eA,eB]=dir>0?[0,0,this.children.length,other.children.length]:[this.children.length-1,other.children.length-1,-1,-1];for(;;iA+=dir,iB+=dir){if(iA==eA||iB==eB)return length;let chA=this.children[iA],chB=other.children[iB];if(chA!=chB)return length+chA.scanIdentical(chB,dir);length+=chA.length+1;}}static from(children,length=children.reduce((l,ch)=>l+ch.length+1,-1)){let lines=0;for(let ch of children)lines+=ch.lines;if(lines<32){let flat=[];for(let ch of children)ch.flatten(flat);return new TextLeaf(flat,length);}let chunk=Math.max(32,lines>>5),maxChunk=chunk<<1,minChunk=chunk>>1;let chunked=[],currentLines=0,currentLen=-1,currentChunk=[];function add(child){let last;if(child.lines>maxChunk&&child instanceof TextNode){for(let node of child.children)add(node);}else if(child.lines>minChunk&&(currentLines>minChunk||!currentLines)){flush();chunked.push(child);}else if(child instanceof TextLeaf&&currentLines&&(last=currentChunk[currentChunk.length-1])instanceof TextLeaf&&child.lines+last.lines<=32){currentLines+=child.lines;currentLen+=child.length+1;currentChunk[currentChunk.length-1]=new TextLeaf(last.text.concat(child.text),last.length+1+child.length);}else{if(currentLines+child.lines>chunk)flush();currentLines+=child.lines;currentLen+=child.length+1;currentChunk.push(child);}}function flush(){if(currentLines==0)return;chunked.push(currentChunk.length==1?currentChunk[0]:TextNode.from(currentChunk,currentLen));currentLen=-1;currentLines=currentChunk.length=0;}for(let child of children)add(child);flush();return chunked.length==1?chunked[0]:new TextNode(chunked,length);}constructor(children,length){super();this.children=children;this.length=length;this.lines=0;for(let child of children)this.lines+=child.lines;}};Text.empty=/* @__PURE__ */new TextLeaf([\"\"],0);function textLength(text){let length=-1;for(let line of text)length+=line.length+1;return length;}function appendText(text,target,from=0,to=1e9){for(let pos=0,i=0,first=true;i<text.length&&pos<=to;i++){let line=text[i],end=pos+line.length;if(end>=from){if(end>to)line=line.slice(0,to-pos);if(pos<from)line=line.slice(from-pos);if(first){target[target.length-1]+=line;first=false;}else target.push(line);}pos=end+1;}return target;}function sliceText(text,from,to){return appendText(text,[\"\"],from,to);}var RawTextCursor=class{nextInner(skip,dir){this.done=this.lineBreak=false;for(;;){let last=this.nodes.length-1;let top=this.nodes[last],offsetValue=this.offsets[last],offset=offsetValue>>1;let size=top instanceof TextLeaf?top.text.length:top.children.length;if(offset==(dir>0?size:0)){if(last==0){this.done=true;this.value=\"\";return this;}if(dir>0)this.offsets[last-1]++;this.nodes.pop();this.offsets.pop();}else if((offsetValue&1)==(dir>0?0:1)){this.offsets[last]+=dir;if(skip==0){this.lineBreak=true;this.value=\"\\n\";return this;}skip--;}else if(top instanceof TextLeaf){let next=top.text[offset+(dir<0?-1:0)];this.offsets[last]+=dir;if(next.length>Math.max(0,skip)){this.value=skip==0?next:dir>0?next.slice(skip):next.slice(0,next.length-skip);return this;}skip-=next.length;}else{let next=top.children[offset+(dir<0?-1:0)];if(skip>next.length){skip-=next.length;this.offsets[last]+=dir;}else{if(dir<0)this.offsets[last]--;this.nodes.push(next);this.offsets.push(dir>0?1:(next instanceof TextLeaf?next.text.length:next.children.length)<<1);}}}}next(skip=0){if(skip<0){this.nextInner(-skip,-this.dir);skip=this.value.length;}return this.nextInner(skip,this.dir);}constructor(text,dir=1){this.dir=dir;this.done=false;this.lineBreak=false;this.value=\"\";this.nodes=[text];this.offsets=[dir>0?1:(text instanceof TextLeaf?text.text.length:text.children.length)<<1];}};var PartialTextCursor=class{nextInner(skip,dir){if(dir<0?this.pos<=this.from:this.pos>=this.to){this.value=\"\";this.done=true;return this;}skip+=Math.max(0,dir<0?this.pos-this.to:this.from-this.pos);let limit=dir<0?this.pos-this.from:this.to-this.pos;if(skip>limit)skip=limit;limit-=skip;let{value}=this.cursor.next(skip);this.pos+=(value.length+skip)*dir;this.value=value.length<=limit?value:dir<0?value.slice(value.length-limit):value.slice(0,limit);this.done=!this.value;return this;}next(skip=0){if(skip<0)skip=Math.max(skip,this.from-this.pos);else if(skip>0)skip=Math.min(skip,this.to-this.pos);return this.nextInner(skip,this.cursor.dir);}get lineBreak(){return this.cursor.lineBreak&&this.value!=\"\";}constructor(text,start,end){this.value=\"\";this.done=false;this.cursor=new RawTextCursor(text,start>end?-1:1);this.pos=start>end?text.length:0;this.from=Math.min(start,end);this.to=Math.max(start,end);}};var LineCursor=class{next(skip=0){let{done,lineBreak,value}=this.inner.next(skip);if(done){this.done=true;this.value=\"\";}else if(lineBreak){if(this.afterBreak){this.value=\"\";}else{this.afterBreak=true;this.next();}}else{this.value=value;this.afterBreak=false;}return this;}get lineBreak(){return false;}constructor(inner){this.inner=inner;this.afterBreak=true;this.value=\"\";this.done=false;}};if(typeof Symbol!=\"undefined\"){Text.prototype[Symbol.iterator]=function(){return this.iter();};RawTextCursor.prototype[Symbol.iterator]=PartialTextCursor.prototype[Symbol.iterator]=LineCursor.prototype[Symbol.iterator]=function(){return this;};}var Line=class{/**\n  The length of the line (not including any line break after it).\n  */get length(){return this.to-this.from;}/**\n  @internal\n  */constructor(from,to,number,text){this.from=from;this.to=to;this.number=number;this.text=text;}};var extend=/* @__PURE__ */\"lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o\".split(\",\").map(s=>s?parseInt(s,36):1);for(let i=1;i<extend.length;i++)extend[i]+=extend[i-1];function isExtendingChar(code){for(let i=1;i<extend.length;i+=2)if(extend[i]>code)return extend[i-1]<=code;return false;}function isRegionalIndicator(code){return code>=127462&&code<=127487;}var ZWJ=8205;function findClusterBreak(str,pos,forward=true,includeExtending=true){return(forward?nextClusterBreak:prevClusterBreak)(str,pos,includeExtending);}function nextClusterBreak(str,pos,includeExtending){if(pos==str.length)return pos;if(pos&&surrogateLow(str.charCodeAt(pos))&&surrogateHigh(str.charCodeAt(pos-1)))pos--;let prev=codePointAt(str,pos);pos+=codePointSize(prev);while(pos<str.length){let next=codePointAt(str,pos);if(prev==ZWJ||next==ZWJ||includeExtending&&isExtendingChar(next)){pos+=codePointSize(next);prev=next;}else if(isRegionalIndicator(next)){let countBefore=0,i=pos-2;while(i>=0&&isRegionalIndicator(codePointAt(str,i))){countBefore++;i-=2;}if(countBefore%2==0)break;else pos+=2;}else{break;}}return pos;}function prevClusterBreak(str,pos,includeExtending){while(pos>0){let found=nextClusterBreak(str,pos-2,includeExtending);if(found<pos)return found;pos--;}return 0;}function surrogateLow(ch){return ch>=56320&&ch<57344;}function surrogateHigh(ch){return ch>=55296&&ch<56320;}function codePointAt(str,pos){let code0=str.charCodeAt(pos);if(!surrogateHigh(code0)||pos+1==str.length)return code0;let code1=str.charCodeAt(pos+1);if(!surrogateLow(code1))return code0;return(code0-55296<<10)+(code1-56320)+65536;}function fromCodePoint(code){if(code<=65535)return String.fromCharCode(code);code-=65536;return String.fromCharCode((code>>10)+55296,(code&1023)+56320);}function codePointSize(code){return code<65536?1:2;}var DefaultSplit=/\\r\\n?|\\n/;var MapMode=/* @__PURE__ */function(MapMode2){MapMode2[MapMode2[\"Simple\"]=0]=\"Simple\";MapMode2[MapMode2[\"TrackDel\"]=1]=\"TrackDel\";MapMode2[MapMode2[\"TrackBefore\"]=2]=\"TrackBefore\";MapMode2[MapMode2[\"TrackAfter\"]=3]=\"TrackAfter\";return MapMode2;}(MapMode||(MapMode={}));var ChangeDesc=class{/**\n  The length of the document before the change.\n  */get length(){let result=0;for(let i=0;i<this.sections.length;i+=2)result+=this.sections[i];return result;}/**\n  The length of the document after the change.\n  */get newLength(){let result=0;for(let i=0;i<this.sections.length;i+=2){let ins=this.sections[i+1];result+=ins<0?this.sections[i]:ins;}return result;}/**\n  False when there are actual changes in this set.\n  */get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0;}/**\n  Iterate over the unchanged parts left by these changes. `posA`\n  provides the position of the range in the old document, `posB`\n  the new position in the changed document.\n  */iterGaps(f){for(let i=0,posA=0,posB=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0){f(posA,posB,len);posB+=len;}else{posB+=ins;}posA+=len;}}/**\n  Iterate over the ranges changed by these changes. (See\n  [`ChangeSet.iterChanges`](https://codemirror.net/6/docs/ref/#state.ChangeSet.iterChanges) for a\n  variant that also provides you with the inserted text.)\n  `fromA`/`toA` provides the extent of the change in the starting\n  document, `fromB`/`toB` the extent of the replacement in the\n  changed document.\n  \n  When `individual` is true, adjacent changes (which are kept\n  separate for [position mapping](https://codemirror.net/6/docs/ref/#state.ChangeDesc.mapPos)) are\n  reported separately.\n  */iterChangedRanges(f,individual=false){iterChanges(this,f,individual);}/**\n  Get a description of the inverted form of these changes.\n  */get invertedDesc(){let sections=[];for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];if(ins<0)sections.push(len,ins);else sections.push(ins,len);}return new ChangeDesc(sections);}/**\n  Compute the combined effect of applying another set of changes\n  after this one. The length of the document after this set should\n  match the length before `other`.\n  */composeDesc(other){return this.empty?other:other.empty?this:composeSets(this,other);}/**\n  Map this description, which should start with the same document\n  as `other`, over another set of changes, so that it can be\n  applied after it. When `before` is true, map as if the changes\n  in `other` happened before the ones in `this`.\n  */mapDesc(other,before=false){return other.empty?this:mapSet(this,other,before);}mapPos(pos,assoc=-1,mode=MapMode.Simple){let posA=0,posB=0;for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++],endA=posA+len;if(ins<0){if(endA>pos)return posB+(pos-posA);posB+=len;}else{if(mode!=MapMode.Simple&&endA>=pos&&(mode==MapMode.TrackDel&&posA<pos&&endA>pos||mode==MapMode.TrackBefore&&posA<pos||mode==MapMode.TrackAfter&&endA>pos))return null;if(endA>pos||endA==pos&&assoc<0&&!len)return pos==posA||assoc<0?posB:posB+ins;posB+=ins;}posA=endA;}if(pos>posA)throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);return posB;}/**\n  Check whether these changes touch a given range. When one of the\n  changes entirely covers the range, the string `\"cover\"` is\n  returned.\n  */touchesRange(from,to=from){for(let i=0,pos=0;i<this.sections.length&&pos<=to;){let len=this.sections[i++],ins=this.sections[i++],end=pos+len;if(ins>=0&&pos<=to&&end>=from)return pos<from&&end>to?\"cover\":true;pos=end;}return false;}/**\n  @internal\n  */toString(){let result=\"\";for(let i=0;i<this.sections.length;){let len=this.sections[i++],ins=this.sections[i++];result+=(result?\" \":\"\")+len+(ins>=0?\":\"+ins:\"\");}return result;}/**\n  Serialize this change desc to a JSON-representable value.\n  */toJSON(){return this.sections;}/**\n  Create a change desc from its JSON representation (as produced\n  by [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeDesc.toJSON).\n  */static fromJSON(json){if(!Array.isArray(json)||json.length%2||json.some(a=>typeof a!=\"number\"))throw new RangeError(\"Invalid JSON representation of ChangeDesc\");return new ChangeDesc(json);}/**\n  @internal\n  */static create(sections){return new ChangeDesc(sections);}// Sections are encoded as pairs of integers. The first is the\n// length in the current document, and the second is -1 for\n// unaffected sections, and the length of the replacement content\n// otherwise. So an insertion would be (0, n>0), a deletion (n>0,\n// 0), and a replacement two positive numbers.\n/**\n  @internal\n  */constructor(sections){this.sections=sections;}};var ChangeSet=class extends ChangeDesc{/**\n  Apply the changes to a document, returning the modified\n  document.\n  */apply(doc){if(this.length!=doc.length)throw new RangeError(\"Applying change set to a document with the wrong length\");iterChanges(this,(fromA,toA,fromB,_toB,text)=>doc=doc.replace(fromB,fromB+(toA-fromA),text),false);return doc;}mapDesc(other,before=false){return mapSet(this,other,before,true);}/**\n  Given the document as it existed _before_ the changes, return a\n  change set that represents the inverse of this set, which could\n  be used to go from the document created by the changes back to\n  the document as it existed before the changes.\n  */invert(doc){let sections=this.sections.slice(),inserted=[];for(let i=0,pos=0;i<sections.length;i+=2){let len=sections[i],ins=sections[i+1];if(ins>=0){sections[i]=ins;sections[i+1]=len;let index=i>>1;while(inserted.length<index)inserted.push(Text.empty);inserted.push(len?doc.slice(pos,pos+len):Text.empty);}pos+=len;}return new ChangeSet(sections,inserted);}/**\n  Combine two subsequent change sets into a single set. `other`\n  must start in the document produced by `this`. If `this` goes\n  `docA` → `docB` and `other` represents `docB` → `docC`, the\n  returned value will represent the change `docA` → `docC`.\n  */compose(other){return this.empty?other:other.empty?this:composeSets(this,other,true);}/**\n  Given another change set starting in the same document, maps this\n  change set over the other, producing a new change set that can be\n  applied to the document produced by applying `other`. When\n  `before` is `true`, order changes as if `this` comes before\n  `other`, otherwise (the default) treat `other` as coming first.\n  \n  Given two changes `A` and `B`, `A.compose(B.map(A))` and\n  `B.compose(A.map(B, true))` will produce the same document. This\n  provides a basic form of [operational\n  transformation](https://en.wikipedia.org/wiki/Operational_transformation),\n  and can be used for collaborative editing.\n  */map(other,before=false){return other.empty?this:mapSet(this,other,before,true);}/**\n  Iterate over the changed ranges in the document, calling `f` for\n  each, with the range in the original document (`fromA`-`toA`)\n  and the range that replaces it in the new document\n  (`fromB`-`toB`).\n  \n  When `individual` is true, adjacent changes are reported\n  separately.\n  */iterChanges(f,individual=false){iterChanges(this,f,individual);}/**\n  Get a [change description](https://codemirror.net/6/docs/ref/#state.ChangeDesc) for this change\n  set.\n  */get desc(){return ChangeDesc.create(this.sections);}/**\n  @internal\n  */filter(ranges){let resultSections=[],resultInserted=[],filteredSections=[];let iter=new SectionIter(this);done:for(let i=0,pos=0;;){let next=i==ranges.length?1e9:ranges[i++];while(pos<next||pos==next&&iter.len==0){if(iter.done)break done;let len=Math.min(iter.len,next-pos);addSection(filteredSections,len,-1);let ins=iter.ins==-1?-1:iter.off==0?iter.ins:0;addSection(resultSections,len,ins);if(ins>0)addInsert(resultInserted,resultSections,iter.text);iter.forward(len);pos+=len;}let end=ranges[i++];while(pos<end){if(iter.done)break done;let len=Math.min(iter.len,end-pos);addSection(resultSections,len,-1);addSection(filteredSections,len,iter.ins==-1?-1:iter.off==0?iter.ins:0);iter.forward(len);pos+=len;}}return{changes:new ChangeSet(resultSections,resultInserted),filtered:ChangeDesc.create(filteredSections)};}/**\n  Serialize this change set to a JSON-representable value.\n  */toJSON(){let parts=[];for(let i=0;i<this.sections.length;i+=2){let len=this.sections[i],ins=this.sections[i+1];if(ins<0)parts.push(len);else if(ins==0)parts.push([len]);else parts.push([len].concat(this.inserted[i>>1].toJSON()));}return parts;}/**\n  Create a change set for the given changes, for a document of the\n  given length, using `lineSep` as line separator.\n  */static of(changes,length,lineSep){let sections=[],inserted=[],pos=0;let total=null;function flush(force=false){if(!force&&!sections.length)return;if(pos<length)addSection(sections,length-pos,-1);let set=new ChangeSet(sections,inserted);total=total?total.compose(set.map(total)):set;sections=[];inserted=[];pos=0;}function process(spec){if(Array.isArray(spec)){for(let sub of spec)process(sub);}else if(spec instanceof ChangeSet){if(spec.length!=length)throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);flush();total=total?total.compose(spec.map(total)):spec;}else{let{from,to=from,insert:insert2}=spec;if(from>to||from<0||to>length)throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);let insText=!insert2?Text.empty:typeof insert2==\"string\"?Text.of(insert2.split(lineSep||DefaultSplit)):insert2;let insLen=insText.length;if(from==to&&insLen==0)return;if(from<pos)flush();if(from>pos)addSection(sections,from-pos,-1);addSection(sections,to-from,insLen);addInsert(inserted,sections,insText);pos=to;}}process(changes);flush(!total);return total;}/**\n  Create an empty changeset of the given length.\n  */static empty(length){return new ChangeSet(length?[length,-1]:[],[]);}/**\n  Create a changeset from its JSON representation (as produced by\n  [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeSet.toJSON).\n  */static fromJSON(json){if(!Array.isArray(json))throw new RangeError(\"Invalid JSON representation of ChangeSet\");let sections=[],inserted=[];for(let i=0;i<json.length;i++){let part=json[i];if(typeof part==\"number\"){sections.push(part,-1);}else if(!Array.isArray(part)||typeof part[0]!=\"number\"||part.some((e,i2)=>i2&&typeof e!=\"string\")){throw new RangeError(\"Invalid JSON representation of ChangeSet\");}else if(part.length==1){sections.push(part[0],0);}else{while(inserted.length<i)inserted.push(Text.empty);inserted[i]=Text.of(part.slice(1));sections.push(part[0],inserted[i].length);}}return new ChangeSet(sections,inserted);}/**\n  @internal\n  */static createSet(sections,inserted){return new ChangeSet(sections,inserted);}constructor(sections,inserted){super(sections);this.inserted=inserted;}};function addSection(sections,len,ins,forceJoin=false){if(len==0&&ins<=0)return;let last=sections.length-2;if(last>=0&&ins<=0&&ins==sections[last+1])sections[last]+=len;else if(len==0&&sections[last]==0)sections[last+1]+=ins;else if(forceJoin){sections[last]+=len;sections[last+1]+=ins;}else sections.push(len,ins);}function addInsert(values,sections,value){if(value.length==0)return;let index=sections.length-2>>1;if(index<values.length){values[values.length-1]=values[values.length-1].append(value);}else{while(values.length<index)values.push(Text.empty);values.push(value);}}function iterChanges(desc,f,individual){let inserted=desc.inserted;for(let posA=0,posB=0,i=0;i<desc.sections.length;){let len=desc.sections[i++],ins=desc.sections[i++];if(ins<0){posA+=len;posB+=len;}else{let endA=posA,endB=posB,text=Text.empty;for(;;){endA+=len;endB+=ins;if(ins&&inserted)text=text.append(inserted[i-2>>1]);if(individual||i==desc.sections.length||desc.sections[i+1]<0)break;len=desc.sections[i++];ins=desc.sections[i++];}f(posA,endA,posB,endB,text);posA=endA;posB=endB;}}}function mapSet(setA,setB,before,mkSet=false){let sections=[],insert2=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let inserted=-1;;){if(a.ins==-1&&b.ins==-1){let len=Math.min(a.len,b.len);addSection(sections,len,-1);a.forward(len);b.forward(len);}else if(b.ins>=0&&(a.ins<0||inserted==a.i||a.off==0&&(b.len<a.len||b.len==a.len&&!before))){let len=b.len;addSection(sections,b.ins,-1);while(len){let piece=Math.min(a.len,len);if(a.ins>=0&&inserted<a.i&&a.len<=piece){addSection(sections,0,a.ins);if(insert2)addInsert(insert2,sections,a.text);inserted=a.i;}a.forward(piece);len-=piece;}b.next();}else if(a.ins>=0){let len=0,left=a.len;while(left){if(b.ins==-1){let piece=Math.min(left,b.len);len+=piece;left-=piece;b.forward(piece);}else if(b.ins==0&&b.len<left){left-=b.len;b.next();}else{break;}}addSection(sections,len,inserted<a.i?a.ins:0);if(insert2&&inserted<a.i)addInsert(insert2,sections,a.text);inserted=a.i;a.forward(a.len-left);}else if(a.done&&b.done){return insert2?ChangeSet.createSet(sections,insert2):ChangeDesc.create(sections);}else{throw new Error(\"Mismatched change set lengths\");}}}function composeSets(setA,setB,mkSet=false){let sections=[];let insert2=mkSet?[]:null;let a=new SectionIter(setA),b=new SectionIter(setB);for(let open=false;;){if(a.done&&b.done){return insert2?ChangeSet.createSet(sections,insert2):ChangeDesc.create(sections);}else if(a.ins==0){addSection(sections,a.len,0,open);a.next();}else if(b.len==0&&!b.done){addSection(sections,0,b.ins,open);if(insert2)addInsert(insert2,sections,b.text);b.next();}else if(a.done||b.done){throw new Error(\"Mismatched change set lengths\");}else{let len=Math.min(a.len2,b.len),sectionLen=sections.length;if(a.ins==-1){let insB=b.ins==-1?-1:b.off?0:b.ins;addSection(sections,len,insB,open);if(insert2&&insB)addInsert(insert2,sections,b.text);}else if(b.ins==-1){addSection(sections,a.off?0:a.len,len,open);if(insert2)addInsert(insert2,sections,a.textBit(len));}else{addSection(sections,a.off?0:a.len,b.off?0:b.ins,open);if(insert2&&!b.off)addInsert(insert2,sections,b.text);}open=(a.ins>len||b.ins>=0&&b.len>len)&&(open||sections.length>sectionLen);a.forward2(len);b.forward(len);}}}var SectionIter=class{next(){let{sections}=this.set;if(this.i<sections.length){this.len=sections[this.i++];this.ins=sections[this.i++];}else{this.len=0;this.ins=-2;}this.off=0;}get done(){return this.ins==-2;}get len2(){return this.ins<0?this.len:this.ins;}get text(){let{inserted}=this.set,index=this.i-2>>1;return index>=inserted.length?Text.empty:inserted[index];}textBit(len){let{inserted}=this.set,index=this.i-2>>1;return index>=inserted.length&&!len?Text.empty:inserted[index].slice(this.off,len==null?void 0:this.off+len);}forward(len){if(len==this.len)this.next();else{this.len-=len;this.off+=len;}}forward2(len){if(this.ins==-1)this.forward(len);else if(len==this.ins)this.next();else{this.ins-=len;this.off+=len;}}constructor(set){this.set=set;this.i=0;this.next();}};var SelectionRange=class{/**\n  The anchor of the range—the side that doesn't move when you\n  extend it.\n  */get anchor(){return this.flags&16?this.to:this.from;}/**\n  The head of the range, which is moved when the range is\n  [extended](https://codemirror.net/6/docs/ref/#state.SelectionRange.extend).\n  */get head(){return this.flags&16?this.from:this.to;}/**\n  True when `anchor` and `head` are at the same position.\n  */get empty(){return this.from==this.to;}/**\n  If this is a cursor that is explicitly associated with the\n  character on one of its sides, this returns the side. -1 means\n  the character before its position, 1 the character after, and 0\n  means no association.\n  */get assoc(){return this.flags&4?-1:this.flags&8?1:0;}/**\n  The bidirectional text level associated with this cursor, if\n  any.\n  */get bidiLevel(){let level=this.flags&3;return level==3?null:level;}/**\n  The goal column (stored vertical offset) associated with a\n  cursor. This is used to preserve the vertical position when\n  [moving](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) across\n  lines of different length.\n  */get goalColumn(){let value=this.flags>>5;return value==33554431?void 0:value;}/**\n  Map this range through a change, producing a valid range in the\n  updated document.\n  */map(change,assoc=-1){let from,to;if(this.empty){from=to=change.mapPos(this.from,assoc);}else{from=change.mapPos(this.from,1);to=change.mapPos(this.to,-1);}return from==this.from&&to==this.to?this:new SelectionRange(from,to,this.flags);}/**\n  Extend this range to cover at least `from` to `to`.\n  */extend(from,to=from){if(from<=this.anchor&&to>=this.anchor)return EditorSelection.range(from,to);let head=Math.abs(from-this.anchor)>Math.abs(to-this.anchor)?from:to;return EditorSelection.range(this.anchor,head);}/**\n  Compare this range to another range.\n  */eq(other){return this.anchor==other.anchor&&this.head==other.head;}/**\n  Return a JSON-serializable object representing the range.\n  */toJSON(){return{anchor:this.anchor,head:this.head};}/**\n  Convert a JSON representation of a range to a `SelectionRange`\n  instance.\n  */static fromJSON(json){if(!json||typeof json.anchor!=\"number\"||typeof json.head!=\"number\")throw new RangeError(\"Invalid JSON representation for SelectionRange\");return EditorSelection.range(json.anchor,json.head);}/**\n  @internal\n  */static create(from,to,flags){return new SelectionRange(from,to,flags);}constructor(from,to,flags){this.from=from;this.to=to;this.flags=flags;}};var EditorSelection=class{/**\n  Map a selection through a change. Used to adjust the selection\n  position for changes.\n  */map(change,assoc=-1){if(change.empty)return this;return EditorSelection.create(this.ranges.map(r=>r.map(change,assoc)),this.mainIndex);}/**\n  Compare this selection to another selection.\n  */eq(other){if(this.ranges.length!=other.ranges.length||this.mainIndex!=other.mainIndex)return false;for(let i=0;i<this.ranges.length;i++)if(!this.ranges[i].eq(other.ranges[i]))return false;return true;}/**\n  Get the primary selection range. Usually, you should make sure\n  your code applies to _all_ ranges, by using methods like\n  [`changeByRange`](https://codemirror.net/6/docs/ref/#state.EditorState.changeByRange).\n  */get main(){return this.ranges[this.mainIndex];}/**\n  Make sure the selection only has one range. Returns a selection\n  holding only the main range from this selection.\n  */asSingle(){return this.ranges.length==1?this:new EditorSelection([this.main],0);}/**\n  Extend this selection with an extra range.\n  */addRange(range,main=true){return EditorSelection.create([range].concat(this.ranges),main?0:this.mainIndex+1);}/**\n  Replace a given range with another range, and then normalize the\n  selection to merge and sort ranges if necessary.\n  */replaceRange(range,which=this.mainIndex){let ranges=this.ranges.slice();ranges[which]=range;return EditorSelection.create(ranges,this.mainIndex);}/**\n  Convert this selection to an object that can be serialized to\n  JSON.\n  */toJSON(){return{ranges:this.ranges.map(r=>r.toJSON()),main:this.mainIndex};}/**\n  Create a selection from a JSON representation.\n  */static fromJSON(json){if(!json||!Array.isArray(json.ranges)||typeof json.main!=\"number\"||json.main>=json.ranges.length)throw new RangeError(\"Invalid JSON representation for EditorSelection\");return new EditorSelection(json.ranges.map(r=>SelectionRange.fromJSON(r)),json.main);}/**\n  Create a selection holding a single range.\n  */static single(anchor,head=anchor){return new EditorSelection([EditorSelection.range(anchor,head)],0);}/**\n  Sort and merge the given set of ranges, creating a valid\n  selection.\n  */static create(ranges,mainIndex=0){if(ranges.length==0)throw new RangeError(\"A selection needs at least one range\");for(let pos=0,i=0;i<ranges.length;i++){let range=ranges[i];if(range.empty?range.from<=pos:range.from<pos)return EditorSelection.normalized(ranges.slice(),mainIndex);pos=range.to;}return new EditorSelection(ranges,mainIndex);}/**\n  Create a cursor selection range at the given position. You can\n  safely ignore the optional arguments in most situations.\n  */static cursor(pos,assoc=0,bidiLevel,goalColumn){return SelectionRange.create(pos,pos,(assoc==0?0:assoc<0?4:8)|(bidiLevel==null?3:Math.min(2,bidiLevel))|(goalColumn!==null&&goalColumn!==void 0?goalColumn:33554431)<<5);}/**\n  Create a selection range.\n  */static range(anchor,head,goalColumn,bidiLevel){let flags=(goalColumn!==null&&goalColumn!==void 0?goalColumn:33554431)<<5|(bidiLevel==null?3:Math.min(2,bidiLevel));return head<anchor?SelectionRange.create(head,anchor,16|8|flags):SelectionRange.create(anchor,head,(head>anchor?4:0)|flags);}/**\n  @internal\n  */static normalized(ranges,mainIndex=0){let main=ranges[mainIndex];ranges.sort((a,b)=>a.from-b.from);mainIndex=ranges.indexOf(main);for(let i=1;i<ranges.length;i++){let range=ranges[i],prev=ranges[i-1];if(range.empty?range.from<=prev.to:range.from<prev.to){let from=prev.from,to=Math.max(range.to,prev.to);if(i<=mainIndex)mainIndex--;ranges.splice(--i,2,range.anchor>range.head?EditorSelection.range(to,from):EditorSelection.range(from,to));}}return new EditorSelection(ranges,mainIndex);}constructor(ranges,mainIndex){this.ranges=ranges;this.mainIndex=mainIndex;}};function checkSelection(selection,docLength){for(let range of selection.ranges)if(range.to>docLength)throw new RangeError(\"Selection points outside of document\");}var nextID=0;var Facet=class{/**\n  Define a new facet.\n  */static define(config={}){return new Facet(config.combine||(a=>a),config.compareInput||((a,b)=>a===b),config.compare||(!config.combine?sameArray:(a,b)=>a===b),!!config.static,config.enables);}/**\n  Returns an extension that adds the given value to this facet.\n  */of(value){return new FacetProvider([],this,0,value);}/**\n  Create an extension that computes a value for the facet from a\n  state. You must take care to declare the parts of the state that\n  this value depends on, since your function is only called again\n  for a new state when one of those parts changed.\n  \n  In cases where your value depends only on a single field, you'll\n  want to use the [`from`](https://codemirror.net/6/docs/ref/#state.Facet.from) method instead.\n  */compute(deps,get){if(this.isStatic)throw new Error(\"Can't compute a static facet\");return new FacetProvider(deps,this,1,get);}/**\n  Create an extension that computes zero or more values for this\n  facet from a state.\n  */computeN(deps,get){if(this.isStatic)throw new Error(\"Can't compute a static facet\");return new FacetProvider(deps,this,2,get);}from(field,get){if(!get)get=x=>x;return this.compute([field],state=>get(state.field(field)));}constructor(combine,compareInput,compare2,isStatic,enables){this.combine=combine;this.compareInput=compareInput;this.compare=compare2;this.isStatic=isStatic;this.id=nextID++;this.default=combine([]);this.extensions=typeof enables==\"function\"?enables(this):enables;}};function sameArray(a,b){return a==b||a.length==b.length&&a.every((e,i)=>e===b[i]);}var FacetProvider=class{dynamicSlot(addresses){var _a;let getter=this.value;let compare2=this.facet.compareInput;let id=this.id,idx=addresses[id]>>1,multi=this.type==2;let depDoc=false,depSel=false,depAddrs=[];for(let dep of this.dependencies){if(dep==\"doc\")depDoc=true;else if(dep==\"selection\")depSel=true;else if((((_a=addresses[dep.id])!==null&&_a!==void 0?_a:1)&1)==0)depAddrs.push(addresses[dep.id]);}return{create(state){state.values[idx]=getter(state);return 1;},update(state,tr){if(depDoc&&tr.docChanged||depSel&&(tr.docChanged||tr.selection)||ensureAll(state,depAddrs)){let newVal=getter(state);if(multi?!compareArray(newVal,state.values[idx],compare2):!compare2(newVal,state.values[idx])){state.values[idx]=newVal;return 1;}}return 0;},reconfigure:(state,oldState)=>{let newVal,oldAddr=oldState.config.address[id];if(oldAddr!=null){let oldVal=getAddr(oldState,oldAddr);if(this.dependencies.every(dep=>{return dep instanceof Facet?oldState.facet(dep)===state.facet(dep):dep instanceof StateField?oldState.field(dep,false)==state.field(dep,false):true;})||(multi?compareArray(newVal=getter(state),oldVal,compare2):compare2(newVal=getter(state),oldVal))){state.values[idx]=oldVal;return 0;}}else{newVal=getter(state);}state.values[idx]=newVal;return 1;}};}constructor(dependencies,facet,type,value){this.dependencies=dependencies;this.facet=facet;this.type=type;this.value=value;this.id=nextID++;}};function compareArray(a,b,compare2){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(!compare2(a[i],b[i]))return false;return true;}function ensureAll(state,addrs){let changed=false;for(let addr of addrs)if(ensureAddr(state,addr)&1)changed=true;return changed;}function dynamicFacetSlot(addresses,facet,providers){let providerAddrs=providers.map(p=>addresses[p.id]);let providerTypes=providers.map(p=>p.type);let dynamic=providerAddrs.filter(p=>!(p&1));let idx=addresses[facet.id]>>1;function get(state){let values=[];for(let i=0;i<providerAddrs.length;i++){let value=getAddr(state,providerAddrs[i]);if(providerTypes[i]==2)for(let val of value)values.push(val);else values.push(value);}return facet.combine(values);}return{create(state){for(let addr of providerAddrs)ensureAddr(state,addr);state.values[idx]=get(state);return 1;},update(state,tr){if(!ensureAll(state,dynamic))return 0;let value=get(state);if(facet.compare(value,state.values[idx]))return 0;state.values[idx]=value;return 1;},reconfigure(state,oldState){let depChanged=ensureAll(state,providerAddrs);let oldProviders=oldState.config.facets[facet.id],oldValue=oldState.facet(facet);if(oldProviders&&!depChanged&&sameArray(providers,oldProviders)){state.values[idx]=oldValue;return 0;}let value=get(state);if(facet.compare(value,oldValue)){state.values[idx]=oldValue;return 0;}state.values[idx]=value;return 1;}};}var initField=/* @__PURE__ */Facet.define({static:true});var StateField=class{/**\n  Define a state field.\n  */static define(config){let field=new StateField(nextID++,config.create,config.update,config.compare||((a,b)=>a===b),config);if(config.provide)field.provides=config.provide(field);return field;}create(state){let init=state.facet(initField).find(i=>i.field==this);return((init===null||init===void 0?void 0:init.create)||this.createF)(state);}/**\n  @internal\n  */slot(addresses){let idx=addresses[this.id]>>1;return{create:state=>{state.values[idx]=this.create(state);return 1;},update:(state,tr)=>{let oldVal=state.values[idx];let value=this.updateF(oldVal,tr);if(this.compareF(oldVal,value))return 0;state.values[idx]=value;return 1;},reconfigure:(state,oldState)=>{if(oldState.config.address[this.id]!=null){state.values[idx]=oldState.field(this);return 0;}state.values[idx]=this.create(state);return 1;}};}/**\n  Returns an extension that enables this field and overrides the\n  way it is initialized. Can be useful when you need to provide a\n  non-default starting value for the field.\n  */init(create){return[this,initField.of({field:this,create})];}/**\n  State field instances can be used as\n  [`Extension`](https://codemirror.net/6/docs/ref/#state.Extension) values to enable the field in a\n  given state.\n  */get extension(){return this;}constructor(id,createF,updateF,compareF,spec){this.id=id;this.createF=createF;this.updateF=updateF;this.compareF=compareF;this.spec=spec;this.provides=void 0;}};var Prec_={lowest:4,low:3,default:2,high:1,highest:0};function prec(value){return ext=>new PrecExtension(ext,value);}var Prec={/**\n  The highest precedence level, for extensions that should end up\n  near the start of the precedence ordering.\n  */highest:/* @__PURE__ */prec(Prec_.highest),/**\n  A higher-than-default precedence, for extensions that should\n  come before those with default precedence.\n  */high:/* @__PURE__ */prec(Prec_.high),/**\n  The default precedence, which is also used for extensions\n  without an explicit precedence.\n  */default:/* @__PURE__ */prec(Prec_.default),/**\n  A lower-than-default precedence.\n  */low:/* @__PURE__ */prec(Prec_.low),/**\n  The lowest precedence level. Meant for things that should end up\n  near the end of the extension order.\n  */lowest:/* @__PURE__ */prec(Prec_.lowest)};var PrecExtension=class{constructor(inner,prec2){this.inner=inner;this.prec=prec2;}};var Compartment=class{/**\n  Create an instance of this compartment to add to your [state\n  configuration](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions).\n  */of(ext){return new CompartmentInstance(this,ext);}/**\n  Create an [effect](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) that\n  reconfigures this compartment.\n  */reconfigure(content){return Compartment.reconfigure.of({compartment:this,extension:content});}/**\n  Get the current content of the compartment in the state, or\n  `undefined` if it isn't present.\n  */get(state){return state.config.compartments.get(this);}};var CompartmentInstance=class{constructor(compartment,inner){this.compartment=compartment;this.inner=inner;}};var Configuration=class{staticFacet(facet){let addr=this.address[facet.id];return addr==null?facet.default:this.staticValues[addr>>1];}static resolve(base,compartments,oldState){let fields=[];let facets=/* @__PURE__ */Object.create(null);let newCompartments=/* @__PURE__ */new Map;for(let ext of flatten(base,compartments,newCompartments)){if(ext instanceof StateField)fields.push(ext);else(facets[ext.facet.id]||(facets[ext.facet.id]=[])).push(ext);}let address=/* @__PURE__ */Object.create(null);let staticValues=[];let dynamicSlots=[];for(let field of fields){address[field.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>field.slot(a));}let oldFacets=oldState===null||oldState===void 0?void 0:oldState.config.facets;for(let id in facets){let providers=facets[id],facet=providers[0].facet;let oldProviders=oldFacets&&oldFacets[id]||[];if(providers.every(p=>p.type==0)){address[facet.id]=staticValues.length<<1|1;if(sameArray(oldProviders,providers)){staticValues.push(oldState.facet(facet));}else{let value=facet.combine(providers.map(p=>p.value));staticValues.push(oldState&&facet.compare(value,oldState.facet(facet))?oldState.facet(facet):value);}}else{for(let p of providers){if(p.type==0){address[p.id]=staticValues.length<<1|1;staticValues.push(p.value);}else{address[p.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>p.dynamicSlot(a));}}address[facet.id]=dynamicSlots.length<<1;dynamicSlots.push(a=>dynamicFacetSlot(a,facet,providers));}}let dynamic=dynamicSlots.map(f=>f(address));return new Configuration(base,newCompartments,dynamic,address,staticValues,facets);}constructor(base,compartments,dynamicSlots,address,staticValues,facets){this.base=base;this.compartments=compartments;this.dynamicSlots=dynamicSlots;this.address=address;this.staticValues=staticValues;this.facets=facets;this.statusTemplate=[];while(this.statusTemplate.length<dynamicSlots.length)this.statusTemplate.push(0);}};function flatten(extension,compartments,newCompartments){let result=[[],[],[],[],[]];let seen=/* @__PURE__ */new Map;function inner(ext,prec2){let known=seen.get(ext);if(known!=null){if(known<=prec2)return;let found=result[known].indexOf(ext);if(found>-1)result[known].splice(found,1);if(ext instanceof CompartmentInstance)newCompartments.delete(ext.compartment);}seen.set(ext,prec2);if(Array.isArray(ext)){for(let e of ext)inner(e,prec2);}else if(ext instanceof CompartmentInstance){if(newCompartments.has(ext.compartment))throw new RangeError(`Duplicate use of compartment in extensions`);let content=compartments.get(ext.compartment)||ext.inner;newCompartments.set(ext.compartment,content);inner(content,prec2);}else if(ext instanceof PrecExtension){inner(ext.inner,ext.prec);}else if(ext instanceof StateField){result[prec2].push(ext);if(ext.provides)inner(ext.provides,prec2);}else if(ext instanceof FacetProvider){result[prec2].push(ext);if(ext.facet.extensions)inner(ext.facet.extensions,Prec_.default);}else{let content=ext.extension;if(!content)throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);inner(content,prec2);}}inner(extension,Prec_.default);return result.reduce((a,b)=>a.concat(b));}function ensureAddr(state,addr){if(addr&1)return 2;let idx=addr>>1;let status=state.status[idx];if(status==4)throw new Error(\"Cyclic dependency between fields and/or facets\");if(status&2)return status;state.status[idx]=4;let changed=state.computeSlot(state,state.config.dynamicSlots[idx]);return state.status[idx]=2|changed;}function getAddr(state,addr){return addr&1?state.config.staticValues[addr>>1]:state.values[addr>>1];}var languageData=/* @__PURE__ */Facet.define();var allowMultipleSelections=/* @__PURE__ */Facet.define({combine:values=>values.some(v=>v),static:true});var lineSeparator=/* @__PURE__ */Facet.define({combine:values=>values.length?values[0]:void 0,static:true});var changeFilter=/* @__PURE__ */Facet.define();var transactionFilter=/* @__PURE__ */Facet.define();var transactionExtender=/* @__PURE__ */Facet.define();var readOnly=/* @__PURE__ */Facet.define({combine:values=>values.length?values[0]:false});var Annotation=class{/**\n  Define a new type of annotation.\n  */static define(){return new AnnotationType;}/**\n  @internal\n  */constructor(type,value){this.type=type;this.value=value;}};var AnnotationType=class{/**\n  Create an instance of this annotation.\n  */of(value){return new Annotation(this,value);}};var StateEffectType=class{/**\n  Create a [state effect](https://codemirror.net/6/docs/ref/#state.StateEffect) instance of this\n  type.\n  */of(value){return new StateEffect(this,value);}/**\n  @internal\n  */constructor(map){this.map=map;}};var StateEffect=class{/**\n  Map this effect through a position mapping. Will return\n  `undefined` when that ends up deleting the effect.\n  */map(mapping){let mapped=this.type.map(this.value,mapping);return mapped===void 0?void 0:mapped==this.value?this:new StateEffect(this.type,mapped);}/**\n  Tells you whether this effect object is of a given\n  [type](https://codemirror.net/6/docs/ref/#state.StateEffectType).\n  */is(type){return this.type==type;}/**\n  Define a new effect type. The type parameter indicates the type\n  of values that his effect holds. It should be a type that\n  doesn't include `undefined`, since that is used in\n  [mapping](https://codemirror.net/6/docs/ref/#state.StateEffect.map) to indicate that an effect is\n  removed.\n  */static define(spec={}){return new StateEffectType(spec.map||(v=>v));}/**\n  Map an array of effects through a change set.\n  */static mapEffects(effects,mapping){if(!effects.length)return effects;let result=[];for(let effect of effects){let mapped=effect.map(mapping);if(mapped)result.push(mapped);}return result;}/**\n  @internal\n  */constructor(type,value){this.type=type;this.value=value;}};StateEffect.reconfigure=/* @__PURE__ */StateEffect.define();StateEffect.appendConfig=/* @__PURE__ */StateEffect.define();var Transaction=class{/**\n  @internal\n  */static create(startState,changes,selection,effects,annotations,scrollIntoView){return new Transaction(startState,changes,selection,effects,annotations,scrollIntoView);}/**\n  The new document produced by the transaction. Contrary to\n  [`.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state)`.doc`, accessing this won't\n  force the entire new state to be computed right away, so it is\n  recommended that [transaction\n  filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) use this getter\n  when they need to look at the new document.\n  */get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc));}/**\n  The new selection produced by the transaction. If\n  [`this.selection`](https://codemirror.net/6/docs/ref/#state.Transaction.selection) is undefined,\n  this will [map](https://codemirror.net/6/docs/ref/#state.EditorSelection.map) the start state's\n  current selection through the changes made by the transaction.\n  */get newSelection(){return this.selection||this.startState.selection.map(this.changes);}/**\n  The new state created by the transaction. Computed on demand\n  (but retained for subsequent access), so it is recommended not to\n  access it in [transaction\n  filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) when possible.\n  */get state(){if(!this._state)this.startState.applyTransaction(this);return this._state;}/**\n  Get the value of the given annotation type, if any.\n  */annotation(type){for(let ann of this.annotations)if(ann.type==type)return ann.value;return void 0;}/**\n  Indicates whether the transaction changed the document.\n  */get docChanged(){return!this.changes.empty;}/**\n  Indicates whether this transaction reconfigures the state\n  (through a [configuration compartment](https://codemirror.net/6/docs/ref/#state.Compartment) or\n  with a top-level configuration\n  [effect](https://codemirror.net/6/docs/ref/#state.StateEffect^reconfigure).\n  */get reconfigured(){return this.startState.config!=this.state.config;}/**\n  Returns true if the transaction has a [user\n  event](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent) annotation that is equal to\n  or more specific than `event`. For example, if the transaction\n  has `\"select.pointer\"` as user event, `\"select\"` and\n  `\"select.pointer\"` will match it.\n  */isUserEvent(event){let e=this.annotation(Transaction.userEvent);return!!(e&&(e==event||e.length>event.length&&e.slice(0,event.length)==event&&e[event.length]==\".\"));}constructor(startState,changes,selection,effects,annotations,scrollIntoView){this.startState=startState;this.changes=changes;this.selection=selection;this.effects=effects;this.annotations=annotations;this.scrollIntoView=scrollIntoView;this._doc=null;this._state=null;if(selection)checkSelection(selection,changes.newLength);if(!annotations.some(a=>a.type==Transaction.time))this.annotations=annotations.concat(Transaction.time.of(Date.now()));}};Transaction.time=/* @__PURE__ */Annotation.define();Transaction.userEvent=/* @__PURE__ */Annotation.define();Transaction.addToHistory=/* @__PURE__ */Annotation.define();Transaction.remote=/* @__PURE__ */Annotation.define();function joinRanges(a,b){let result=[];for(let iA=0,iB=0;;){let from,to;if(iA<a.length&&(iB==b.length||b[iB]>=a[iA])){from=a[iA++];to=a[iA++];}else if(iB<b.length){from=b[iB++];to=b[iB++];}else return result;if(!result.length||result[result.length-1]<from)result.push(from,to);else if(result[result.length-1]<to)result[result.length-1]=to;}}function mergeTransaction(a,b,sequential){var _a;let mapForA,mapForB,changes;if(sequential){mapForA=b.changes;mapForB=ChangeSet.empty(b.changes.length);changes=a.changes.compose(b.changes);}else{mapForA=b.changes.map(a.changes);mapForB=a.changes.mapDesc(b.changes,true);changes=a.changes.compose(mapForA);}return{changes,selection:b.selection?b.selection.map(mapForB):(_a=a.selection)===null||_a===void 0?void 0:_a.map(mapForA),effects:StateEffect.mapEffects(a.effects,mapForA).concat(StateEffect.mapEffects(b.effects,mapForB)),annotations:a.annotations.length?a.annotations.concat(b.annotations):b.annotations,scrollIntoView:a.scrollIntoView||b.scrollIntoView};}function resolveTransactionInner(state,spec,docSize){let sel=spec.selection,annotations=asArray(spec.annotations);if(spec.userEvent)annotations=annotations.concat(Transaction.userEvent.of(spec.userEvent));return{changes:spec.changes instanceof ChangeSet?spec.changes:ChangeSet.of(spec.changes||[],docSize,state.facet(lineSeparator)),selection:sel&&(sel instanceof EditorSelection?sel:EditorSelection.single(sel.anchor,sel.head)),effects:asArray(spec.effects),annotations,scrollIntoView:!!spec.scrollIntoView};}function resolveTransaction(state,specs,filter){let s=resolveTransactionInner(state,specs.length?specs[0]:{},state.doc.length);if(specs.length&&specs[0].filter===false)filter=false;for(let i=1;i<specs.length;i++){if(specs[i].filter===false)filter=false;let seq=!!specs[i].sequential;s=mergeTransaction(s,resolveTransactionInner(state,specs[i],seq?s.changes.newLength:state.doc.length),seq);}let tr=Transaction.create(state,s.changes,s.selection,s.effects,s.annotations,s.scrollIntoView);return extendTransaction(filter?filterTransaction(tr):tr);}function filterTransaction(tr){let state=tr.startState;let result=true;for(let filter of state.facet(changeFilter)){let value=filter(tr);if(value===false){result=false;break;}if(Array.isArray(value))result=result===true?value:joinRanges(result,value);}if(result!==true){let changes,back;if(result===false){back=tr.changes.invertedDesc;changes=ChangeSet.empty(state.doc.length);}else{let filtered=tr.changes.filter(result);changes=filtered.changes;back=filtered.filtered.mapDesc(filtered.changes).invertedDesc;}tr=Transaction.create(state,changes,tr.selection&&tr.selection.map(back),StateEffect.mapEffects(tr.effects,back),tr.annotations,tr.scrollIntoView);}let filters=state.facet(transactionFilter);for(let i=filters.length-1;i>=0;i--){let filtered=filters[i](tr);if(filtered instanceof Transaction)tr=filtered;else if(Array.isArray(filtered)&&filtered.length==1&&filtered[0]instanceof Transaction)tr=filtered[0];else tr=resolveTransaction(state,asArray(filtered),false);}return tr;}function extendTransaction(tr){let state=tr.startState,extenders=state.facet(transactionExtender),spec=tr;for(let i=extenders.length-1;i>=0;i--){let extension=extenders[i](tr);if(extension&&Object.keys(extension).length)spec=mergeTransaction(spec,resolveTransactionInner(state,extension,tr.changes.newLength),true);}return spec==tr?tr:Transaction.create(state,tr.changes,tr.selection,spec.effects,spec.annotations,spec.scrollIntoView);}var none=[];function asArray(value){return value==null?none:Array.isArray(value)?value:[value];}var CharCategory=/* @__PURE__ */function(CharCategory2){CharCategory2[CharCategory2[\"Word\"]=0]=\"Word\";CharCategory2[CharCategory2[\"Space\"]=1]=\"Space\";CharCategory2[CharCategory2[\"Other\"]=2]=\"Other\";return CharCategory2;}(CharCategory||(CharCategory={}));var nonASCIISingleCaseWordChar=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;var wordChar;try{wordChar=/* @__PURE__ */new RegExp(\"[\\\\p{Alphabetic}\\\\p{Number}_]\",\"u\");}catch(_){}function hasWordChar(str){if(wordChar)return wordChar.test(str);for(let i=0;i<str.length;i++){let ch=str[i];if(/\\w/.test(ch)||ch>\"\\x80\"&&(ch.toUpperCase()!=ch.toLowerCase()||nonASCIISingleCaseWordChar.test(ch)))return true;}return false;}function makeCategorizer(wordChars){return char=>{if(!/\\S/.test(char))return CharCategory.Space;if(hasWordChar(char))return CharCategory.Word;for(let i=0;i<wordChars.length;i++)if(char.indexOf(wordChars[i])>-1)return CharCategory.Word;return CharCategory.Other;};}var EditorState=class{field(field,require2=true){let addr=this.config.address[field.id];if(addr==null){if(require2)throw new RangeError(\"Field is not present in this state\");return void 0;}ensureAddr(this,addr);return getAddr(this,addr);}/**\n  Create a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction) that updates this\n  state. Any number of [transaction specs](https://codemirror.net/6/docs/ref/#state.TransactionSpec)\n  can be passed. Unless\n  [`sequential`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.sequential) is set, the\n  [changes](https://codemirror.net/6/docs/ref/#state.TransactionSpec.changes) (if any) of each spec\n  are assumed to start in the _current_ document (not the document\n  produced by previous specs), and its\n  [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) and\n  [effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) are assumed to refer\n  to the document created by its _own_ changes. The resulting\n  transaction contains the combined effect of all the different\n  specs. For [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection), later\n  specs take precedence over earlier ones.\n  */update(...specs){return resolveTransaction(this,specs,true);}/**\n  @internal\n  */applyTransaction(tr){let conf=this.config,{base,compartments}=conf;for(let effect of tr.effects){if(effect.is(Compartment.reconfigure)){if(conf){compartments=/* @__PURE__ */new Map;conf.compartments.forEach((val,key)=>compartments.set(key,val));conf=null;}compartments.set(effect.value.compartment,effect.value.extension);}else if(effect.is(StateEffect.reconfigure)){conf=null;base=effect.value;}else if(effect.is(StateEffect.appendConfig)){conf=null;base=asArray(base).concat(effect.value);}}let startValues;if(!conf){conf=Configuration.resolve(base,compartments,this);let intermediateState=new EditorState(conf,this.doc,this.selection,conf.dynamicSlots.map(()=>null),(state,slot)=>slot.reconfigure(state,this),null);startValues=intermediateState.values;}else{startValues=tr.startState.values.slice();}new EditorState(conf,tr.newDoc,tr.newSelection,startValues,(state,slot)=>slot.update(state,tr),tr);}/**\n  Create a [transaction spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec) that\n  replaces every selection range with the given content.\n  */replaceSelection(text){if(typeof text==\"string\")text=this.toText(text);return this.changeByRange(range=>({changes:{from:range.from,to:range.to,insert:text},range:EditorSelection.cursor(range.from+text.length)}));}/**\n  Create a set of changes and a new selection by running the given\n  function for each range in the active selection. The function\n  can return an optional set of changes (in the coordinate space\n  of the start document), plus an updated range (in the coordinate\n  space of the document produced by the call's own changes). This\n  method will merge all the changes and ranges into a single\n  changeset and selection, and return it as a [transaction\n  spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec), which can be passed to\n  [`update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n  */changeByRange(f){let sel=this.selection;let result1=f(sel.ranges[0]);let changes=this.changes(result1.changes),ranges=[result1.range];let effects=asArray(result1.effects);for(let i=1;i<sel.ranges.length;i++){let result=f(sel.ranges[i]);let newChanges=this.changes(result.changes),newMapped=newChanges.map(changes);for(let j=0;j<i;j++)ranges[j]=ranges[j].map(newMapped);let mapBy=changes.mapDesc(newChanges,true);ranges.push(result.range.map(mapBy));changes=changes.compose(newMapped);effects=StateEffect.mapEffects(effects,newMapped).concat(StateEffect.mapEffects(asArray(result.effects),mapBy));}return{changes,selection:EditorSelection.create(ranges,sel.mainIndex),effects};}/**\n  Create a [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet) from the given change\n  description, taking the state's document length and line\n  separator into account.\n  */changes(spec=[]){if(spec instanceof ChangeSet)return spec;return ChangeSet.of(spec,this.doc.length,this.facet(EditorState.lineSeparator));}/**\n  Using the state's [line\n  separator](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator), create a\n  [`Text`](https://codemirror.net/6/docs/ref/#state.Text) instance from the given string.\n  */toText(string){return Text.of(string.split(this.facet(EditorState.lineSeparator)||DefaultSplit));}/**\n  Return the given range of the document as a string.\n  */sliceDoc(from=0,to=this.doc.length){return this.doc.sliceString(from,to,this.lineBreak);}/**\n  Get the value of a state [facet](https://codemirror.net/6/docs/ref/#state.Facet).\n  */facet(facet){let addr=this.config.address[facet.id];if(addr==null)return facet.default;ensureAddr(this,addr);return getAddr(this,addr);}/**\n  Convert this state to a JSON-serializable object. When custom\n  fields should be serialized, you can pass them in as an object\n  mapping property names (in the resulting object, which should\n  not use `doc` or `selection`) to fields.\n  */toJSON(fields){let result={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(fields)for(let prop in fields){let value=fields[prop];if(value instanceof StateField&&this.config.address[value.id]!=null)result[prop]=value.spec.toJSON(this.field(fields[prop]),this);}return result;}/**\n  Deserialize a state from its JSON representation. When custom\n  fields should be deserialized, pass the same object you passed\n  to [`toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) when serializing as\n  third argument.\n  */static fromJSON(json,config={},fields){if(!json||typeof json.doc!=\"string\")throw new RangeError(\"Invalid JSON representation for EditorState\");let fieldInit=[];if(fields)for(let prop in fields){if(Object.prototype.hasOwnProperty.call(json,prop)){let field=fields[prop],value=json[prop];fieldInit.push(field.init(state=>field.spec.fromJSON(value,state)));}}return EditorState.create({doc:json.doc,selection:EditorSelection.fromJSON(json.selection),extensions:config.extensions?fieldInit.concat([config.extensions]):fieldInit});}/**\n  Create a new state. You'll usually only need this when\n  initializing an editor—updated states are created by applying\n  transactions.\n  */static create(config={}){let configuration=Configuration.resolve(config.extensions||[],/* @__PURE__ */new Map);let doc=config.doc instanceof Text?config.doc:Text.of((config.doc||\"\").split(configuration.staticFacet(EditorState.lineSeparator)||DefaultSplit));let selection=!config.selection?EditorSelection.single(0):config.selection instanceof EditorSelection?config.selection:EditorSelection.single(config.selection.anchor,config.selection.head);checkSelection(selection,doc.length);if(!configuration.staticFacet(allowMultipleSelections))selection=selection.asSingle();return new EditorState(configuration,doc,selection,configuration.dynamicSlots.map(()=>null),(state,slot)=>slot.create(state),null);}/**\n  The size (in columns) of a tab in the document, determined by\n  the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet.\n  */get tabSize(){return this.facet(EditorState.tabSize);}/**\n  Get the proper [line-break](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)\n  string for this state.\n  */get lineBreak(){return this.facet(EditorState.lineSeparator)||\"\\n\";}/**\n  Returns true when the editor is\n  [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only.\n  */get readOnly(){return this.facet(readOnly);}/**\n  Look up a translation for the given phrase (via the\n  [`phrases`](https://codemirror.net/6/docs/ref/#state.EditorState^phrases) facet), or return the\n  original string if no translation is found.\n  \n  If additional arguments are passed, they will be inserted in\n  place of markers like `$1` (for the first value) and `$2`, etc.\n  A single `$` is equivalent to `$1`, and `$$` will produce a\n  literal dollar sign.\n  */phrase(phrase,...insert2){for(let map of this.facet(EditorState.phrases))if(Object.prototype.hasOwnProperty.call(map,phrase)){phrase=map[phrase];break;}if(insert2.length)phrase=phrase.replace(/\\$(\\$|\\d*)/g,(m,i)=>{if(i==\"$\")return\"$\";let n=+(i||1);return!n||n>insert2.length?m:insert2[n-1];});return phrase;}/**\n  Find the values for a given language data field, provided by the\n  the [`languageData`](https://codemirror.net/6/docs/ref/#state.EditorState^languageData) facet.\n  \n  Examples of language data fields are...\n  \n  - [`\"commentTokens\"`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) for specifying\n    comment syntax.\n  - [`\"autocomplete\"`](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion^config.override)\n    for providing language-specific completion sources.\n  - [`\"wordChars\"`](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) for adding\n    characters that should be considered part of words in this\n    language.\n  - [`\"closeBrackets\"`](https://codemirror.net/6/docs/ref/#autocomplete.CloseBracketConfig) controls\n    bracket closing behavior.\n  */languageDataAt(name,pos,side=-1){let values=[];for(let provider of this.facet(languageData)){for(let result of provider(this,pos,side)){if(Object.prototype.hasOwnProperty.call(result,name))values.push(result[name]);}}return values;}/**\n  Return a function that can categorize strings (expected to\n  represent a single [grapheme cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak))\n  into one of:\n  \n   - Word (contains an alphanumeric character or a character\n     explicitly listed in the local language's `\"wordChars\"`\n     language data, which should be a string)\n   - Space (contains only whitespace)\n   - Other (anything else)\n  */charCategorizer(at){return makeCategorizer(this.languageDataAt(\"wordChars\",at).join(\"\"));}/**\n  Find the word at the given position, meaning the range\n  containing all [word](https://codemirror.net/6/docs/ref/#state.CharCategory.Word) characters\n  around it. If no word characters are adjacent to the position,\n  this returns null.\n  */wordAt(pos){let{text,from,length}=this.doc.lineAt(pos);let cat=this.charCategorizer(pos);let start=pos-from,end=pos-from;while(start>0){let prev=findClusterBreak(text,start,false);if(cat(text.slice(prev,start))!=CharCategory.Word)break;start=prev;}while(end<length){let next=findClusterBreak(text,end);if(cat(text.slice(end,next))!=CharCategory.Word)break;end=next;}return start==end?null:EditorSelection.range(start+from,end+from);}constructor(config,doc,selection,values,computeSlot,tr){this.config=config;this.doc=doc;this.selection=selection;this.values=values;this.status=config.statusTemplate.slice();this.computeSlot=computeSlot;if(tr)tr._state=this;for(let i=0;i<this.config.dynamicSlots.length;i++)ensureAddr(this,i<<1);this.computeSlot=null;}};EditorState.allowMultipleSelections=allowMultipleSelections;EditorState.tabSize=/* @__PURE__ */Facet.define({combine:values=>values.length?values[0]:4});EditorState.lineSeparator=lineSeparator;EditorState.readOnly=readOnly;EditorState.phrases=/* @__PURE__ */Facet.define({compare(a,b){let kA=Object.keys(a),kB=Object.keys(b);return kA.length==kB.length&&kA.every(k=>a[k]==b[k]);}});EditorState.languageData=languageData;EditorState.changeFilter=changeFilter;EditorState.transactionFilter=transactionFilter;EditorState.transactionExtender=transactionExtender;Compartment.reconfigure=/* @__PURE__ */StateEffect.define();function combineConfig(configs,defaults,combine={}){let result={};for(let config of configs)for(let key of Object.keys(config)){let value=config[key],current=result[key];if(current===void 0)result[key]=value;else if(current===value||value===void 0);else if(Object.hasOwnProperty.call(combine,key))result[key]=combine[key](current,value);else throw new Error(\"Config merge conflict for field \"+key);}for(let key in defaults)if(result[key]===void 0)result[key]=defaults[key];return result;}var RangeValue=class{/**\n  Compare this value with another value. Used when comparing\n  rangesets. The default implementation compares by identity.\n  Unless you are only creating a fixed number of unique instances\n  of your value type, it is a good idea to implement this\n  properly.\n  */eq(other){return this==other;}/**\n  Create a [range](https://codemirror.net/6/docs/ref/#state.Range) with this value.\n  */range(from,to=from){return Range.create(from,to,this);}};RangeValue.prototype.startSide=RangeValue.prototype.endSide=0;RangeValue.prototype.point=false;RangeValue.prototype.mapMode=MapMode.TrackDel;var Range=class{/**\n  @internal\n  */static create(from,to,value){return new Range(from,to,value);}constructor(from,to,value){this.from=from;this.to=to;this.value=value;}};function cmpRange(a,b){return a.from-b.from||a.value.startSide-b.value.startSide;}var Chunk=class{get length(){return this.to[this.to.length-1];}// Find the index of the given position and side. Use the ranges'\n// `from` pos when `end == false`, `to` when `end == true`.\nfindIndex(pos,side,end,startAt=0){let arr=end?this.to:this.from;for(let lo=startAt,hi=arr.length;;){if(lo==hi)return lo;let mid=lo+hi>>1;let diff=arr[mid]-pos||(end?this.value[mid].endSide:this.value[mid].startSide)-side;if(mid==lo)return diff>=0?lo:hi;if(diff>=0)hi=mid;else lo=mid+1;}}between(offset,from,to,f){for(let i=this.findIndex(from,-1e9,true),e=this.findIndex(to,1e9,false,i);i<e;i++)if(f(this.from[i]+offset,this.to[i]+offset,this.value[i])===false)return false;}map(offset,changes){let value=[],from=[],to=[],newPos=-1,maxPoint=-1;for(let i=0;i<this.value.length;i++){let val=this.value[i],curFrom=this.from[i]+offset,curTo=this.to[i]+offset,newFrom,newTo;if(curFrom==curTo){let mapped=changes.mapPos(curFrom,val.startSide,val.mapMode);if(mapped==null)continue;newFrom=newTo=mapped;if(val.startSide!=val.endSide){newTo=changes.mapPos(curFrom,val.endSide);if(newTo<newFrom)continue;}}else{newFrom=changes.mapPos(curFrom,val.startSide);newTo=changes.mapPos(curTo,val.endSide);if(newFrom>newTo||newFrom==newTo&&val.startSide>0&&val.endSide<=0)continue;}if((newTo-newFrom||val.endSide-val.startSide)<0)continue;if(newPos<0)newPos=newFrom;if(val.point)maxPoint=Math.max(maxPoint,newTo-newFrom);value.push(val);from.push(newFrom-newPos);to.push(newTo-newPos);}return{mapped:value.length?new Chunk(from,to,value,maxPoint):null,pos:newPos};}constructor(from,to,value,maxPoint){this.from=from;this.to=to;this.value=value;this.maxPoint=maxPoint;}};var RangeSet=class{/**\n  @internal\n  */static create(chunkPos,chunk,nextLayer,maxPoint){return new RangeSet(chunkPos,chunk,nextLayer,maxPoint);}/**\n  @internal\n  */get length(){let last=this.chunk.length-1;return last<0?0:Math.max(this.chunkEnd(last),this.nextLayer.length);}/**\n  The number of ranges in the set.\n  */get size(){if(this.isEmpty)return 0;let size=this.nextLayer.size;for(let chunk of this.chunk)size+=chunk.value.length;return size;}/**\n  @internal\n  */chunkEnd(index){return this.chunkPos[index]+this.chunk[index].length;}/**\n  Update the range set, optionally adding new ranges or filtering\n  out existing ones.\n  \n  (Note: The type parameter is just there as a kludge to work\n  around TypeScript variance issues that prevented `RangeSet<X>`\n  from being a subtype of `RangeSet<Y>` when `X` is a subtype of\n  `Y`.)\n  */update(updateSpec){let{add=[],sort=false,filterFrom=0,filterTo=this.length}=updateSpec;let filter=updateSpec.filter;if(add.length==0&&!filter)return this;if(sort)add=add.slice().sort(cmpRange);if(this.isEmpty)return add.length?RangeSet.of(add):this;let cur=new LayerCursor(this,null,-1).goto(0),i=0,spill=[];let builder=new RangeSetBuilder;while(cur.value||i<add.length){if(i<add.length&&(cur.from-add[i].from||cur.startSide-add[i].value.startSide)>=0){let range=add[i++];if(!builder.addInner(range.from,range.to,range.value))spill.push(range);}else if(cur.rangeIndex==1&&cur.chunkIndex<this.chunk.length&&(i==add.length||this.chunkEnd(cur.chunkIndex)<add[i].from)&&(!filter||filterFrom>this.chunkEnd(cur.chunkIndex)||filterTo<this.chunkPos[cur.chunkIndex])&&builder.addChunk(this.chunkPos[cur.chunkIndex],this.chunk[cur.chunkIndex])){cur.nextChunk();}else{if(!filter||filterFrom>cur.to||filterTo<cur.from||filter(cur.from,cur.to,cur.value)){if(!builder.addInner(cur.from,cur.to,cur.value))spill.push(Range.create(cur.from,cur.to,cur.value));}cur.next();}}return builder.finishInner(this.nextLayer.isEmpty&&!spill.length?RangeSet.empty:this.nextLayer.update({add:spill,filter,filterFrom,filterTo}));}/**\n  Map this range set through a set of changes, return the new set.\n  */map(changes){if(changes.empty||this.isEmpty)return this;let chunks=[],chunkPos=[],maxPoint=-1;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];let touch=changes.touchesRange(start,start+chunk.length);if(touch===false){maxPoint=Math.max(maxPoint,chunk.maxPoint);chunks.push(chunk);chunkPos.push(changes.mapPos(start));}else if(touch===true){let{mapped,pos}=chunk.map(start,changes);if(mapped){maxPoint=Math.max(maxPoint,mapped.maxPoint);chunks.push(mapped);chunkPos.push(pos);}}}let next=this.nextLayer.map(changes);return chunks.length==0?next:new RangeSet(chunkPos,chunks,next||RangeSet.empty,maxPoint);}/**\n  Iterate over the ranges that touch the region `from` to `to`,\n  calling `f` for each. There is no guarantee that the ranges will\n  be reported in any specific order. When the callback returns\n  `false`, iteration stops.\n  */between(from,to,f){if(this.isEmpty)return;for(let i=0;i<this.chunk.length;i++){let start=this.chunkPos[i],chunk=this.chunk[i];if(to>=start&&from<=start+chunk.length&&chunk.between(start,from-start,to-start,f)===false)return;}this.nextLayer.between(from,to,f);}/**\n  Iterate over the ranges in this set, in order, including all\n  ranges that end at or after `from`.\n  */iter(from=0){return HeapCursor.from([this]).goto(from);}/**\n  @internal\n  */get isEmpty(){return this.nextLayer==this;}/**\n  Iterate over the ranges in a collection of sets, in order,\n  starting from `from`.\n  */static iter(sets,from=0){return HeapCursor.from(sets).goto(from);}/**\n  Iterate over two groups of sets, calling methods on `comparator`\n  to notify it of possible differences.\n  */static compare(oldSets,newSets,textDiff,comparator,minPointSize=-1){let a=oldSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let b=newSets.filter(set=>set.maxPoint>0||!set.isEmpty&&set.maxPoint>=minPointSize);let sharedChunks=findSharedChunks(a,b,textDiff);let sideA=new SpanCursor(a,sharedChunks,minPointSize);let sideB=new SpanCursor(b,sharedChunks,minPointSize);textDiff.iterGaps((fromA,fromB,length)=>compare(sideA,fromA,sideB,fromB,length,comparator));if(textDiff.empty&&textDiff.length==0)compare(sideA,0,sideB,0,0,comparator);}/**\n  Compare the contents of two groups of range sets, returning true\n  if they are equivalent in the given range.\n  */static eq(oldSets,newSets,from=0,to){if(to==null)to=1e9-1;let a=oldSets.filter(set=>!set.isEmpty&&newSets.indexOf(set)<0);let b=newSets.filter(set=>!set.isEmpty&&oldSets.indexOf(set)<0);if(a.length!=b.length)return false;if(!a.length)return true;let sharedChunks=findSharedChunks(a,b);let sideA=new SpanCursor(a,sharedChunks,0).goto(from),sideB=new SpanCursor(b,sharedChunks,0).goto(from);for(;;){if(sideA.to!=sideB.to||!sameValues(sideA.active,sideB.active)||sideA.point&&(!sideB.point||!sideA.point.eq(sideB.point)))return false;if(sideA.to>to)return true;sideA.next();sideB.next();}}/**\n  Iterate over a group of range sets at the same time, notifying\n  the iterator about the ranges covering every given piece of\n  content. Returns the open count (see\n  [`SpanIterator.span`](https://codemirror.net/6/docs/ref/#state.SpanIterator.span)) at the end\n  of the iteration.\n  */static spans(sets,from,to,iterator,minPointSize=-1){let cursor=new SpanCursor(sets,null,minPointSize).goto(from),pos=from;let openRanges=cursor.openStart;for(;;){let curTo=Math.min(cursor.to,to);if(cursor.point){let active=cursor.activeForPoint(cursor.to);let openCount=cursor.pointFrom<from?active.length+1:Math.min(active.length,openRanges);iterator.point(pos,curTo,cursor.point,active,openCount,cursor.pointRank);openRanges=Math.min(cursor.openEnd(curTo),active.length);}else if(curTo>pos){iterator.span(pos,curTo,cursor.active,openRanges);openRanges=cursor.openEnd(curTo);}if(cursor.to>to)return openRanges+(cursor.point&&cursor.to>to?1:0);pos=cursor.to;cursor.next();}}/**\n  Create a range set for the given range or array of ranges. By\n  default, this expects the ranges to be _sorted_ (by start\n  position and, if two start at the same position,\n  `value.startSide`). You can pass `true` as second argument to\n  cause the method to sort them.\n  */static of(ranges,sort=false){let build=new RangeSetBuilder;for(let range of ranges instanceof Range?[ranges]:sort?lazySort(ranges):ranges)build.add(range.from,range.to,range.value);return build.finish();}constructor(chunkPos,chunk,nextLayer,maxPoint){this.chunkPos=chunkPos;this.chunk=chunk;this.nextLayer=nextLayer;this.maxPoint=maxPoint;}};RangeSet.empty=/* @__PURE__ */new RangeSet([],[],null,-1);function lazySort(ranges){if(ranges.length>1)for(let prev=ranges[0],i=1;i<ranges.length;i++){let cur=ranges[i];if(cmpRange(prev,cur)>0)return ranges.slice().sort(cmpRange);prev=cur;}return ranges;}RangeSet.empty.nextLayer=RangeSet.empty;var RangeSetBuilder=class{finishChunk(newArrays){this.chunks.push(new Chunk(this.from,this.to,this.value,this.maxPoint));this.chunkPos.push(this.chunkStart);this.chunkStart=-1;this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint);this.maxPoint=-1;if(newArrays){this.from=[];this.to=[];this.value=[];}}/**\n  Add a range. Ranges should be added in sorted (by `from` and\n  `value.startSide`) order.\n  */add(from,to,value){if(!this.addInner(from,to,value))(this.nextLayer||(this.nextLayer=new RangeSetBuilder)).add(from,to,value);}/**\n  @internal\n  */addInner(from,to,value){let diff=from-this.lastTo||value.startSide-this.last.endSide;if(diff<=0&&(from-this.lastFrom||value.startSide-this.last.startSide)<0)throw new Error(\"Ranges must be added sorted by `from` position and `startSide`\");if(diff<0)return false;if(this.from.length==250)this.finishChunk(true);if(this.chunkStart<0)this.chunkStart=from;this.from.push(from-this.chunkStart);this.to.push(to-this.chunkStart);this.last=value;this.lastFrom=from;this.lastTo=to;this.value.push(value);if(value.point)this.maxPoint=Math.max(this.maxPoint,to-from);return true;}/**\n  @internal\n  */addChunk(from,chunk){if((from-this.lastTo||chunk.value[0].startSide-this.last.endSide)<0)return false;if(this.from.length)this.finishChunk(true);this.setMaxPoint=Math.max(this.setMaxPoint,chunk.maxPoint);this.chunks.push(chunk);this.chunkPos.push(from);let last=chunk.value.length-1;this.last=chunk.value[last];this.lastFrom=chunk.from[last]+from;this.lastTo=chunk.to[last]+from;return true;}/**\n  Finish the range set. Returns the new set. The builder can't be\n  used anymore after this has been called.\n  */finish(){return this.finishInner(RangeSet.empty);}/**\n  @internal\n  */finishInner(next){if(this.from.length)this.finishChunk(false);if(this.chunks.length==0)return next;let result=RangeSet.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(next):next,this.setMaxPoint);this.from=null;return result;}/**\n  Create an empty builder.\n  */constructor(){this.chunks=[];this.chunkPos=[];this.chunkStart=-1;this.last=null;this.lastFrom=-1e9;this.lastTo=-1e9;this.from=[];this.to=[];this.value=[];this.maxPoint=-1;this.setMaxPoint=-1;this.nextLayer=null;}};function findSharedChunks(a,b,textDiff){let inA=/* @__PURE__ */new Map;for(let set of a)for(let i=0;i<set.chunk.length;i++)if(set.chunk[i].maxPoint<=0)inA.set(set.chunk[i],set.chunkPos[i]);let shared=/* @__PURE__ */new Set;for(let set of b)for(let i=0;i<set.chunk.length;i++){let known=inA.get(set.chunk[i]);if(known!=null&&(textDiff?textDiff.mapPos(known):known)==set.chunkPos[i]&&!(textDiff===null||textDiff===void 0?void 0:textDiff.touchesRange(known,known+set.chunk[i].length)))shared.add(set.chunk[i]);}return shared;}var LayerCursor=class{get startSide(){return this.value?this.value.startSide:0;}get endSide(){return this.value?this.value.endSide:0;}goto(pos,side=-1e9){this.chunkIndex=this.rangeIndex=0;this.gotoInner(pos,side,false);return this;}gotoInner(pos,side,forward){while(this.chunkIndex<this.layer.chunk.length){let next=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(next)||this.layer.chunkEnd(this.chunkIndex)<pos||next.maxPoint<this.minPoint))break;this.chunkIndex++;forward=false;}if(this.chunkIndex<this.layer.chunk.length){let rangeIndex=this.layer.chunk[this.chunkIndex].findIndex(pos-this.layer.chunkPos[this.chunkIndex],side,true);if(!forward||this.rangeIndex<rangeIndex)this.setRangeIndex(rangeIndex);}this.next();}forward(pos,side){if((this.to-pos||this.endSide-side)<0)this.gotoInner(pos,side,true);}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9;this.value=null;break;}else{let chunkPos=this.layer.chunkPos[this.chunkIndex],chunk=this.layer.chunk[this.chunkIndex];let from=chunkPos+chunk.from[this.rangeIndex];this.from=from;this.to=chunkPos+chunk.to[this.rangeIndex];this.value=chunk.value[this.rangeIndex];this.setRangeIndex(this.rangeIndex+1);if(this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break;}}}setRangeIndex(index){if(index==this.layer.chunk[this.chunkIndex].value.length){this.chunkIndex++;if(this.skip){while(this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]))this.chunkIndex++;}this.rangeIndex=0;}else{this.rangeIndex=index;}}nextChunk(){this.chunkIndex++;this.rangeIndex=0;this.next();}compare(other){return this.from-other.from||this.startSide-other.startSide||this.rank-other.rank||this.to-other.to||this.endSide-other.endSide;}constructor(layer,skip,minPoint,rank=0){this.layer=layer;this.skip=skip;this.minPoint=minPoint;this.rank=rank;}};var HeapCursor=class{static from(sets,skip=null,minPoint=-1){let heap=[];for(let i=0;i<sets.length;i++){for(let cur=sets[i];!cur.isEmpty;cur=cur.nextLayer){if(cur.maxPoint>=minPoint)heap.push(new LayerCursor(cur,skip,minPoint,i));}}return heap.length==1?heap[0]:new HeapCursor(heap);}get startSide(){return this.value?this.value.startSide:0;}goto(pos,side=-1e9){for(let cur of this.heap)cur.goto(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);this.next();return this;}forward(pos,side){for(let cur of this.heap)cur.forward(pos,side);for(let i=this.heap.length>>1;i>=0;i--)heapBubble(this.heap,i);if((this.to-pos||this.value.endSide-side)<0)this.next();}next(){if(this.heap.length==0){this.from=this.to=1e9;this.value=null;this.rank=-1;}else{let top=this.heap[0];this.from=top.from;this.to=top.to;this.value=top.value;this.rank=top.rank;if(top.value)top.next();heapBubble(this.heap,0);}}constructor(heap){this.heap=heap;}};function heapBubble(heap,index){for(let cur=heap[index];;){let childIndex=(index<<1)+1;if(childIndex>=heap.length)break;let child=heap[childIndex];if(childIndex+1<heap.length&&child.compare(heap[childIndex+1])>=0){child=heap[childIndex+1];childIndex++;}if(cur.compare(child)<0)break;heap[childIndex]=cur;heap[index]=child;index=childIndex;}}var SpanCursor=class{goto(pos,side=-1e9){this.cursor.goto(pos,side);this.active.length=this.activeTo.length=this.activeRank.length=0;this.minActive=-1;this.to=pos;this.endSide=side;this.openStart=-1;this.next();return this;}forward(pos,side){while(this.minActive>-1&&(this.activeTo[this.minActive]-pos||this.active[this.minActive].endSide-side)<0)this.removeActive(this.minActive);this.cursor.forward(pos,side);}removeActive(index){remove(this.active,index);remove(this.activeTo,index);remove(this.activeRank,index);this.minActive=findMinIndex(this.active,this.activeTo);}addActive(trackOpen){let i=0,{value,to,rank}=this.cursor;while(i<this.activeRank.length&&this.activeRank[i]<=rank)i++;insert(this.active,i,value);insert(this.activeTo,i,to);insert(this.activeRank,i,rank);if(trackOpen)insert(trackOpen,i,this.cursor.from);this.minActive=findMinIndex(this.active,this.activeTo);}// After calling this, if `this.point` != null, the next range is a\n// point. Otherwise, it's a regular range, covered by `this.active`.\nnext(){let from=this.to,wasPoint=this.point;this.point=null;let trackOpen=this.openStart<0?[]:null;for(;;){let a=this.minActive;if(a>-1&&(this.activeTo[a]-this.cursor.from||this.active[a].endSide-this.cursor.startSide)<0){if(this.activeTo[a]>from){this.to=this.activeTo[a];this.endSide=this.active[a].endSide;break;}this.removeActive(a);if(trackOpen)remove(trackOpen,a);}else if(!this.cursor.value){this.to=this.endSide=1e9;break;}else if(this.cursor.from>from){this.to=this.cursor.from;this.endSide=this.cursor.startSide;break;}else{let nextVal=this.cursor.value;if(!nextVal.point){this.addActive(trackOpen);this.cursor.next();}else if(wasPoint&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to){this.cursor.next();}else{this.point=nextVal;this.pointFrom=this.cursor.from;this.pointRank=this.cursor.rank;this.to=this.cursor.to;this.endSide=nextVal.endSide;this.cursor.next();this.forward(this.to,this.endSide);break;}}}if(trackOpen){this.openStart=0;for(let i=trackOpen.length-1;i>=0&&trackOpen[i]<from;i--)this.openStart++;}}activeForPoint(to){if(!this.active.length)return this.active;let active=[];for(let i=this.active.length-1;i>=0;i--){if(this.activeRank[i]<this.pointRank)break;if(this.activeTo[i]>to||this.activeTo[i]==to&&this.active[i].endSide>=this.point.endSide)active.push(this.active[i]);}return active.reverse();}openEnd(to){let open=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>to;i--)open++;return open;}constructor(sets,skip,minPoint){this.minPoint=minPoint;this.active=[];this.activeTo=[];this.activeRank=[];this.minActive=-1;this.point=null;this.pointFrom=0;this.pointRank=0;this.to=-1e9;this.endSide=0;this.openStart=-1;this.cursor=HeapCursor.from(sets,skip,minPoint);}};function compare(a,startA,b,startB,length,comparator){a.goto(startA);b.goto(startB);let endB=startB+length;let pos=startB,dPos=startB-startA;for(;;){let diff=a.to+dPos-b.to||a.endSide-b.endSide;let end=diff<0?a.to+dPos:b.to,clipEnd=Math.min(end,endB);if(a.point||b.point){if(!(a.point&&b.point&&(a.point==b.point||a.point.eq(b.point))&&sameValues(a.activeForPoint(a.to),b.activeForPoint(b.to))))comparator.comparePoint(pos,clipEnd,a.point,b.point);}else{if(clipEnd>pos&&!sameValues(a.active,b.active))comparator.compareRange(pos,clipEnd,a.active,b.active);}if(end>endB)break;pos=end;if(diff<=0)a.next();if(diff>=0)b.next();}}function sameValues(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(a[i]!=b[i]&&!a[i].eq(b[i]))return false;return true;}function remove(array,index){for(let i=index,e=array.length-1;i<e;i++)array[i]=array[i+1];array.pop();}function insert(array,index,value){for(let i=array.length-1;i>=index;i--)array[i+1]=array[i];array[index]=value;}function findMinIndex(value,array){let found=-1,foundPos=1e9;for(let i=0;i<array.length;i++)if((array[i]-foundPos||value[i].endSide-value[found].endSide)<0){found=i;foundPos=array[i];}return found;}function countColumn(string,tabSize,to=string.length){let n=0;for(let i=0;i<to;){if(string.charCodeAt(i)==9){n+=tabSize-n%tabSize;i++;}else{n++;i=findClusterBreak(string,i);}}return n;}function findColumn(string,col,tabSize,strict){for(let i=0,n=0;;){if(n>=col)return i;if(i==string.length)break;n+=string.charCodeAt(i)==9?tabSize-n%tabSize:1;i=findClusterBreak(string,i);}return strict===true?-1:string.length;}export{Annotation,AnnotationType,ChangeDesc,ChangeSet,CharCategory,Compartment,EditorSelection,EditorState,Facet,Line,MapMode,Prec,Range,RangeSet,RangeSetBuilder,RangeValue,SelectionRange,StateEffect,StateEffectType,StateField,Text,Transaction,codePointAt,codePointSize,combineConfig,countColumn,findClusterBreak,findColumn,fromCodePoint,};\nexport const __FramerMetadata__ = {\"exports\":{\"Prec\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Line\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RangeSetBuilder\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"findColumn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MapMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ChangeDesc\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"combineConfig\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SelectionRange\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Transaction\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorSelection\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Annotation\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ChangeSet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"AnnotationType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Text\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StateField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"codePointSize\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StateEffectType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fromCodePoint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"countColumn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StateEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"codePointAt\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Compartment\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RangeSet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"findClusterBreak\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CharCategory\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Range\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Facet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RangeValue\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./codemirror_state.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/view/dist/index.js\nimport{Text,RangeSet,MapMode,RangeValue,Facet,StateEffect,ChangeSet,findClusterBreak,EditorSelection,EditorState,findColumn,CharCategory,Annotation,Prec,Transaction,codePointAt,codePointSize,combineConfig,StateField,RangeSetBuilder,countColumn}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/772bfdCR3vXAPJJXnNsc/codemirror_state.js\";// ../../node_modules/style-mod/src/style-mod.js\nvar C=\"ͼ\";var COUNT=typeof Symbol==\"undefined\"?\"__\"+C:Symbol.for(C);var SET=typeof Symbol==\"undefined\"?\"__styleSet\"+Math.floor(Math.random()*1e8):Symbol(\"styleSet\");var top=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:{};var StyleModule=class{// :: () → string\n// Returns a string containing the module's CSS rules.\ngetRules(){return this.rules.join(\"\\n\");}// :: () → string\n// Generate a new unique CSS class name.\nstatic newName(){let id=top[COUNT]||1;top[COUNT]=id+1;return C+id.toString(36);}// :: (union<Document, ShadowRoot>, union<[StyleModule], StyleModule>)\n//\n// Mount the given set of modules in the given DOM root, which ensures\n// that the CSS rules defined by the module are available in that\n// context.\n//\n// Rules are only added to the document once per root.\n//\n// Rule order will follow the order of the modules, so that rules from\n// modules later in the array take precedence of those from earlier\n// modules. If you call this function multiple times for the same root\n// in a way that changes the order of already mounted modules, the old\n// order will be changed.\nstatic mount(root,modules){(root[SET]||new StyleSet(root)).mount(Array.isArray(modules)?modules:[modules]);}// :: (Object<Style>, ?{finish: ?(string) → string})\n// Create a style module from the given spec.\n//\n// When `finish` is given, it is called on regular (non-`@`)\n// selectors (after `&` expansion) to compute the final selector.\nconstructor(spec,options){this.rules=[];let{finish}=options||{};function splitSelector(selector){return/^@/.test(selector)?[selector]:selector.split(/,\\s*/);}function render(selectors,spec2,target,isKeyframes){let local=[],isAt=/^@(\\w+)\\b/.exec(selectors[0]),keyframes=isAt&&isAt[1]==\"keyframes\";if(isAt&&spec2==null)return target.push(selectors[0]+\";\");for(let prop in spec2){let value=spec2[prop];if(/&/.test(prop)){render(prop.split(/,\\s*/).map(part=>selectors.map(sel=>part.replace(/&/,sel))).reduce((a,b)=>a.concat(b)),value,target);}else if(value&&typeof value==\"object\"){if(!isAt)throw new RangeError(\"The value of a property (\"+prop+\") should be a primitive value.\");render(splitSelector(prop),value,local,keyframes);}else if(value!=null){local.push(prop.replace(/_.*/,\"\").replace(/[A-Z]/g,l=>\"-\"+l.toLowerCase())+\": \"+value+\";\");}}if(local.length||keyframes){target.push((finish&&!isAt&&!isKeyframes?selectors.map(finish):selectors).join(\", \")+\" {\"+local.join(\" \")+\"}\");}}for(let prop in spec)render(splitSelector(prop),spec[prop],this.rules);}};var adoptedSet=/* @__PURE__ */new Map;var StyleSet=class{mount(modules){let sheet=this.sheet;let pos=0,j=0;for(let i=0;i<modules.length;i++){let mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&index>-1){this.modules.splice(index,1);j--;index=-1;}if(index==-1){this.modules.splice(j++,0,mod);if(sheet)for(let k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++);}else{while(j<index)pos+=this.modules[j++].rules.length;pos+=mod.rules.length;j++;}}if(!sheet){let text=\"\";for(let i=0;i<this.modules.length;i++)text+=this.modules[i].getRules()+\"\\n\";this.styleTag.textContent=text;}}constructor(root){let doc2=root.ownerDocument||root,win=doc2.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){let adopted=adoptedSet.get(doc2);if(adopted){root.adoptedStyleSheets=[adopted.sheet,...root.adoptedStyleSheets];return root[SET]=adopted;}this.sheet=new win.CSSStyleSheet;root.adoptedStyleSheets=[this.sheet,...root.adoptedStyleSheets];adoptedSet.set(doc2,this);}else{this.styleTag=doc2.createElement(\"style\");let target=root.head||root;target.insertBefore(this.styleTag,target.firstChild);}this.modules=[];root[SET]=this;}};// ../../node_modules/w3c-keyname/index.js\nvar base={8:\"Backspace\",9:\"Tab\",10:\"Enter\",12:\"NumLock\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",44:\"PrintScreen\",45:\"Insert\",46:\"Delete\",59:\";\",61:\"=\",91:\"Meta\",92:\"Meta\",106:\"*\",107:\"+\",108:\",\",109:\"-\",110:\".\",111:\"/\",144:\"NumLock\",145:\"ScrollLock\",160:\"Shift\",161:\"Shift\",162:\"Control\",163:\"Control\",164:\"Alt\",165:\"Alt\",173:\"-\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\"};var shift={48:\")\",49:\"!\",50:\"@\",51:\"#\",52:\"$\",53:\"%\",54:\"^\",55:\"&\",56:\"*\",57:\"(\",59:\":\",61:\"+\",173:\"_\",186:\":\",187:\"+\",188:\"<\",189:\"_\",190:\">\",191:\"?\",192:\"~\",219:\"{\",220:\"|\",221:\"}\",222:'\"'};var mac=typeof navigator!=\"undefined\"&&/Mac/.test(navigator.platform);var ie=typeof navigator!=\"undefined\"&&/MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);for(i=0;i<10;i++)base[48+i]=base[96+i]=String(i);var i;for(i=1;i<=24;i++)base[i+111]=\"F\"+i;var i;for(i=65;i<=90;i++){base[i]=String.fromCharCode(i+32);shift[i]=String.fromCharCode(i);}var i;for(code in base)if(!shift.hasOwnProperty(code))shift[code]=base[code];var code;function keyName(event){var ignoreKey=mac&&event.metaKey&&event.shiftKey&&!event.ctrlKey&&!event.altKey||ie&&event.shiftKey&&event.key&&event.key.length==1||event.key==\"Unidentified\";var name=!ignoreKey&&event.key||(event.shiftKey?shift:base)[event.keyCode]||event.key||\"Unidentified\";if(name==\"Esc\")name=\"Escape\";if(name==\"Del\")name=\"Delete\";if(name==\"Left\")name=\"ArrowLeft\";if(name==\"Up\")name=\"ArrowUp\";if(name==\"Right\")name=\"ArrowRight\";if(name==\"Down\")name=\"ArrowDown\";return name;}// ../../node_modules/@codemirror/view/dist/index.js\nfunction getSelection(root){let target;if(root.nodeType==11){target=root.getSelection?root:root.ownerDocument;}else{target=root;}return target.getSelection();}function contains(dom,node){return node?dom==node||dom.contains(node.nodeType!=1?node.parentNode:node):false;}function deepActiveElement(doc2){let elt=doc2.activeElement;while(elt&&elt.shadowRoot)elt=elt.shadowRoot.activeElement;return elt;}function hasSelection(dom,selection){if(!selection.anchorNode)return false;try{return contains(dom,selection.anchorNode);}catch(_){return false;}}function clientRectsFor(dom){if(dom.nodeType==3)return textRange(dom,0,dom.nodeValue.length).getClientRects();else if(dom.nodeType==1)return dom.getClientRects();else return[];}function isEquivalentPosition(node,off,targetNode,targetOff){return targetNode?scanFor(node,off,targetNode,targetOff,-1)||scanFor(node,off,targetNode,targetOff,1):false;}function domIndex(node){for(var index=0;;index++){node=node.previousSibling;if(!node)return index;}}function scanFor(node,off,targetNode,targetOff,dir){for(;;){if(node==targetNode&&off==targetOff)return true;if(off==(dir<0?0:maxOffset(node))){if(node.nodeName==\"DIV\")return false;let parent=node.parentNode;if(!parent||parent.nodeType!=1)return false;off=domIndex(node)+(dir<0?0:1);node=parent;}else if(node.nodeType==1){node=node.childNodes[off+(dir<0?-1:0)];if(node.nodeType==1&&node.contentEditable==\"false\")return false;off=dir<0?maxOffset(node):0;}else{return false;}}}function maxOffset(node){return node.nodeType==3?node.nodeValue.length:node.childNodes.length;}function flattenRect(rect,left){let x=left?rect.left:rect.right;return{left:x,right:x,top:rect.top,bottom:rect.bottom};}function windowRect(win){return{left:0,right:win.innerWidth,top:0,bottom:win.innerHeight};}function scrollRectIntoView(dom,rect,side,x,y,xMargin,yMargin,ltr){let doc2=dom.ownerDocument,win=doc2.defaultView||window;for(let cur=dom;cur;){if(cur.nodeType==1){let bounding,top2=cur==doc2.body;if(top2){bounding=windowRect(win);}else{if(cur.scrollHeight<=cur.clientHeight&&cur.scrollWidth<=cur.clientWidth){cur=cur.assignedSlot||cur.parentNode;continue;}let rect2=cur.getBoundingClientRect();bounding={left:rect2.left,right:rect2.left+cur.clientWidth,top:rect2.top,bottom:rect2.top+cur.clientHeight};}let moveX=0,moveY=0;if(y==\"nearest\"){if(rect.top<bounding.top){moveY=-(bounding.top-rect.top+yMargin);if(side>0&&rect.bottom>bounding.bottom+moveY)moveY=rect.bottom-bounding.bottom+moveY+yMargin;}else if(rect.bottom>bounding.bottom){moveY=rect.bottom-bounding.bottom+yMargin;if(side<0&&rect.top-moveY<bounding.top)moveY=-(bounding.top+moveY-rect.top+yMargin);}}else{let rectHeight=rect.bottom-rect.top,boundingHeight=bounding.bottom-bounding.top;let targetTop=y==\"center\"&&rectHeight<=boundingHeight?rect.top+rectHeight/2-boundingHeight/2:y==\"start\"||y==\"center\"&&side<0?rect.top-yMargin:rect.bottom-boundingHeight+yMargin;moveY=targetTop-bounding.top;}if(x==\"nearest\"){if(rect.left<bounding.left){moveX=-(bounding.left-rect.left+xMargin);if(side>0&&rect.right>bounding.right+moveX)moveX=rect.right-bounding.right+moveX+xMargin;}else if(rect.right>bounding.right){moveX=rect.right-bounding.right+xMargin;if(side<0&&rect.left<bounding.left+moveX)moveX=-(bounding.left+moveX-rect.left+xMargin);}}else{let targetLeft=x==\"center\"?rect.left+(rect.right-rect.left)/2-(bounding.right-bounding.left)/2:x==\"start\"==ltr?rect.left-xMargin:rect.right-(bounding.right-bounding.left)+xMargin;moveX=targetLeft-bounding.left;}if(moveX||moveY){if(top2){win.scrollBy(moveX,moveY);}else{let movedX=0,movedY=0;if(moveY){let start=cur.scrollTop;cur.scrollTop+=moveY;movedY=cur.scrollTop-start;}if(moveX){let start=cur.scrollLeft;cur.scrollLeft+=moveX;movedX=cur.scrollLeft-start;}rect={left:rect.left-movedX,top:rect.top-movedY,right:rect.right-movedX,bottom:rect.bottom-movedY};if(movedX&&Math.abs(movedX-moveX)<1)x=\"nearest\";if(movedY&&Math.abs(movedY-moveY)<1)y=\"nearest\";}}if(top2)break;cur=cur.assignedSlot||cur.parentNode;}else if(cur.nodeType==11){cur=cur.host;}else{break;}}}function scrollableParent(dom){let doc2=dom.ownerDocument;for(let cur=dom.parentNode;cur;){if(cur==doc2.body){break;}else if(cur.nodeType==1){if(cur.scrollHeight>cur.clientHeight||cur.scrollWidth>cur.clientWidth)return cur;cur=cur.assignedSlot||cur.parentNode;}else if(cur.nodeType==11){cur=cur.host;}else{break;}}return null;}var DOMSelectionState=class{eq(domSel){return this.anchorNode==domSel.anchorNode&&this.anchorOffset==domSel.anchorOffset&&this.focusNode==domSel.focusNode&&this.focusOffset==domSel.focusOffset;}setRange(range){let{anchorNode,focusNode}=range;this.set(anchorNode,Math.min(range.anchorOffset,anchorNode?maxOffset(anchorNode):0),focusNode,Math.min(range.focusOffset,focusNode?maxOffset(focusNode):0));}set(anchorNode,anchorOffset,focusNode,focusOffset){this.anchorNode=anchorNode;this.anchorOffset=anchorOffset;this.focusNode=focusNode;this.focusOffset=focusOffset;}constructor(){this.anchorNode=null;this.anchorOffset=0;this.focusNode=null;this.focusOffset=0;}};var preventScrollSupported=null;function focusPreventScroll(dom){if(dom.setActive)return dom.setActive();if(preventScrollSupported)return dom.focus(preventScrollSupported);let stack=[];for(let cur=dom;cur;cur=cur.parentNode){stack.push(cur,cur.scrollTop,cur.scrollLeft);if(cur==cur.ownerDocument)break;}dom.focus(preventScrollSupported==null?{get preventScroll(){preventScrollSupported={preventScroll:true};return true;}}:void 0);if(!preventScrollSupported){preventScrollSupported=false;for(let i=0;i<stack.length;){let elt=stack[i++],top2=stack[i++],left=stack[i++];if(elt.scrollTop!=top2)elt.scrollTop=top2;if(elt.scrollLeft!=left)elt.scrollLeft=left;}}}var scratchRange;function textRange(node,from,to=from){let range=scratchRange||(scratchRange=document.createRange());range.setEnd(node,to);range.setStart(node,from);return range;}function dispatchKey(elt,name,code){let options={key:name,code:name,keyCode:code,which:code,cancelable:true};let down=new KeyboardEvent(\"keydown\",options);down.synthetic=true;elt.dispatchEvent(down);let up=new KeyboardEvent(\"keyup\",options);up.synthetic=true;elt.dispatchEvent(up);return down.defaultPrevented||up.defaultPrevented;}function getRoot(node){while(node){if(node&&(node.nodeType==9||node.nodeType==11&&node.host))return node;node=node.assignedSlot||node.parentNode;}return null;}function clearAttributes(node){while(node.attributes.length)node.removeAttributeNode(node.attributes[0]);}function atElementStart(doc2,selection){let node=selection.focusNode,offset=selection.focusOffset;if(!node||selection.anchorNode!=node||selection.anchorOffset!=offset)return false;offset=Math.min(offset,maxOffset(node));for(;;){if(offset){if(node.nodeType!=1)return false;let prev=node.childNodes[offset-1];if(prev.contentEditable==\"false\")offset--;else{node=prev;offset=maxOffset(node);}}else if(node==doc2){return true;}else{offset=domIndex(node);node=node.parentNode;}}}var DOMPos=class{static before(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom),precise);}static after(dom,precise){return new DOMPos(dom.parentNode,domIndex(dom)+1,precise);}constructor(node,offset,precise=true){this.node=node;this.offset=offset;this.precise=precise;}};var noChildren=[];var ContentView=class{get overrideDOMText(){return null;}get posAtStart(){return this.parent?this.parent.posBefore(this):0;}get posAtEnd(){return this.posAtStart+this.length;}posBefore(view){let pos=this.posAtStart;for(let child of this.children){if(child==view)return pos;pos+=child.length+child.breakAfter;}throw new RangeError(\"Invalid child in posBefore\");}posAfter(view){return this.posBefore(view)+view.length;}sync(view,track){if(this.dirty&2){let parent=this.dom;let prev=null,next;for(let child of this.children){if(child.dirty){if(!child.dom&&(next=prev?prev.nextSibling:parent.firstChild)){let contentView=ContentView.get(next);if(!contentView||!contentView.parent&&contentView.canReuseDOM(child))child.reuseDOM(next);}child.sync(view,track);child.dirty=0;}next=prev?prev.nextSibling:parent.firstChild;if(track&&!track.written&&track.node==parent&&next!=child.dom)track.written=true;if(child.dom.parentNode==parent){while(next&&next!=child.dom)next=rm$1(next);}else{parent.insertBefore(child.dom,next);}prev=child.dom;}next=prev?prev.nextSibling:parent.firstChild;if(next&&track&&track.node==parent)track.written=true;while(next)next=rm$1(next);}else if(this.dirty&1){for(let child of this.children)if(child.dirty){child.sync(view,track);child.dirty=0;}}}reuseDOM(_dom){}localPosFromDOM(node,offset){let after;if(node==this.dom){after=this.dom.childNodes[offset];}else{let bias=maxOffset(node)==0?0:offset==0?-1:1;for(;;){let parent=node.parentNode;if(parent==this.dom)break;if(bias==0&&parent.firstChild!=parent.lastChild){if(node==parent.firstChild)bias=-1;else bias=1;}node=parent;}if(bias<0)after=node;else after=node.nextSibling;}if(after==this.dom.firstChild)return 0;while(after&&!ContentView.get(after))after=after.nextSibling;if(!after)return this.length;for(let i=0,pos=0;;i++){let child=this.children[i];if(child.dom==after)return pos;pos+=child.length+child.breakAfter;}}domBoundsAround(from,to,offset=0){let fromI=-1,fromStart=-1,toI=-1,toEnd=-1;for(let i=0,pos=offset,prevEnd=offset;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(pos<from&&end>to)return child.domBoundsAround(from,to,pos);if(end>=from&&fromI==-1){fromI=i;fromStart=pos;}if(pos>to&&child.dom.parentNode==this.dom){toI=i;toEnd=prevEnd;break;}prevEnd=end;pos=end+child.breakAfter;}return{from:fromStart,to:toEnd<0?offset+this.length:toEnd,startDOM:(fromI?this.children[fromI-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:toI<this.children.length&&toI>=0?this.children[toI].dom:null};}markDirty(andParent=false){this.dirty|=2;this.markParentsDirty(andParent);}markParentsDirty(childList){for(let parent=this.parent;parent;parent=parent.parent){if(childList)parent.dirty|=2;if(parent.dirty&1)return;parent.dirty|=1;childList=false;}}setParent(parent){if(this.parent!=parent){this.parent=parent;if(this.dirty)this.markParentsDirty(true);}}setDOM(dom){if(this.dom)this.dom.cmView=null;this.dom=dom;dom.cmView=this;}get rootView(){for(let v=this;;){let parent=v.parent;if(!parent)return v;v=parent;}}replaceChildren(from,to,children=noChildren){this.markDirty();for(let i=from;i<to;i++){let child=this.children[i];if(child.parent==this)child.destroy();}this.children.splice(from,to-from,...children);for(let i=0;i<children.length;i++)children[i].setParent(this);}ignoreMutation(_rec){return false;}ignoreEvent(_event){return false;}childCursor(pos=this.length){return new ChildCursor(this.children,pos,this.children.length);}childPos(pos,bias=1){return this.childCursor().findPos(pos,bias);}toString(){let name=this.constructor.name.replace(\"View\",\"\");return name+(this.children.length?\"(\"+this.children.join()+\")\":this.length?\"[\"+(name==\"Text\"?this.text:this.length)+\"]\":\"\")+(this.breakAfter?\"#\":\"\");}static get(node){return node.cmView;}get isEditable(){return true;}get isWidget(){return false;}get isHidden(){return false;}merge(from,to,source,hasStart,openStart,openEnd){return false;}become(other){return false;}canReuseDOM(other){return other.constructor==this.constructor;}// When this is a zero-length view with a side, this should return a\n// number <= 0 to indicate it is before its position, or a\n// number > 0 when after its position.\ngetSide(){return 0;}destroy(){this.parent=null;}constructor(){this.parent=null;this.dom=null;this.dirty=2;}};ContentView.prototype.breakAfter=0;function rm$1(dom){let next=dom.nextSibling;dom.parentNode.removeChild(dom);return next;}var ChildCursor=class{findPos(pos,bias=1){for(;;){if(pos>this.pos||pos==this.pos&&(bias>0||this.i==0||this.children[this.i-1].breakAfter)){this.off=pos-this.pos;return this;}let next=this.children[--this.i];this.pos-=next.length+next.breakAfter;}}constructor(children,pos,i){this.children=children;this.pos=pos;this.i=i;this.off=0;}};function replaceRange(parent,fromI,fromOff,toI,toOff,insert,breakAtStart,openStart,openEnd){let{children}=parent;let before=children.length?children[fromI]:null;let last=insert.length?insert[insert.length-1]:null;let breakAtEnd=last?last.breakAfter:breakAtStart;if(fromI==toI&&before&&!breakAtStart&&!breakAtEnd&&insert.length<2&&before.merge(fromOff,toOff,insert.length?last:null,fromOff==0,openStart,openEnd))return;if(toI<children.length){let after=children[toI];if(after&&toOff<after.length){if(fromI==toI){after=after.split(toOff);toOff=0;}if(!breakAtEnd&&last&&after.merge(0,toOff,last,true,0,openEnd)){insert[insert.length-1]=after;}else{if(toOff)after.merge(0,toOff,null,false,0,openEnd);insert.push(after);}}else if(after===null||after===void 0?void 0:after.breakAfter){if(last)last.breakAfter=1;else breakAtStart=1;}toI++;}if(before){before.breakAfter=breakAtStart;if(fromOff>0){if(!breakAtStart&&insert.length&&before.merge(fromOff,before.length,insert[0],false,openStart,0)){before.breakAfter=insert.shift().breakAfter;}else if(fromOff<before.length||before.children.length&&before.children[before.children.length-1].length==0){before.merge(fromOff,before.length,null,false,openStart,0);}fromI++;}}while(fromI<toI&&insert.length){if(children[toI-1].become(insert[insert.length-1])){toI--;insert.pop();openEnd=insert.length?0:openStart;}else if(children[fromI].become(insert[0])){fromI++;insert.shift();openStart=insert.length?0:openEnd;}else{break;}}if(!insert.length&&fromI&&toI<children.length&&!children[fromI-1].breakAfter&&children[toI].merge(0,0,children[fromI-1],false,openStart,openEnd))fromI--;if(fromI<toI||insert.length)parent.replaceChildren(fromI,toI,insert);}function mergeChildrenInto(parent,from,to,insert,openStart,openEnd){let cur=parent.childCursor();let{i:toI,off:toOff}=cur.findPos(to,1);let{i:fromI,off:fromOff}=cur.findPos(from,-1);let dLen=from-to;for(let view of insert)dLen+=view.length;parent.length+=dLen;replaceRange(parent,fromI,fromOff,toI,toOff,insert,0,openStart,openEnd);}var nav=typeof navigator!=\"undefined\"?navigator:{userAgent:\"\",vendor:\"\",platform:\"\"};var doc=typeof document!=\"undefined\"?document:{documentElement:{style:{}}};var ie_edge=/* @__PURE__ *//Edge\\/(\\d+)/.exec(nav.userAgent);var ie_upto10=/* @__PURE__ *//MSIE \\d/.test(nav.userAgent);var ie_11up=/* @__PURE__ *//Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(nav.userAgent);var ie2=!!(ie_upto10||ie_11up||ie_edge);var gecko=!ie2&&/* @__PURE__ *//gecko\\/(\\d+)/i.test(nav.userAgent);var chrome=!ie2&&/* @__PURE__ *//Chrome\\/(\\d+)/.exec(nav.userAgent);var webkit=\"webkitFontSmoothing\"in doc.documentElement.style;var safari=!ie2&&/* @__PURE__ *//Apple Computer/.test(nav.vendor);var ios=safari&&/* @__PURE__ */(/Mobile\\/\\w+/.test(nav.userAgent)||nav.maxTouchPoints>2);var browser={mac:ios||/* @__PURE__ *//Mac/.test(nav.platform),windows:/* @__PURE__ *//Win/.test(nav.platform),linux:/* @__PURE__ *//Linux|X11/.test(nav.platform),ie:ie2,ie_version:ie_upto10?doc.documentMode||6:ie_11up?+ie_11up[1]:ie_edge?+ie_edge[1]:0,gecko,gecko_version:gecko?+/* @__PURE__ */(/Firefox\\/(\\d+)/.exec(nav.userAgent)||[0,0])[1]:0,chrome:!!chrome,chrome_version:chrome?+chrome[1]:0,ios,android:/* @__PURE__ *//Android\\b/.test(nav.userAgent),webkit,safari,webkit_version:webkit?+/* @__PURE__ */(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:doc.documentElement.style.tabSize!=null?\"tab-size\":\"-moz-tab-size\"};var MaxJoinLen=256;var TextView=class extends ContentView{get length(){return this.text.length;}createDOM(textDOM){this.setDOM(textDOM||document.createTextNode(this.text));}sync(view,track){if(!this.dom)this.createDOM();if(this.dom.nodeValue!=this.text){if(track&&track.node==this.dom)track.written=true;this.dom.nodeValue=this.text;}}reuseDOM(dom){if(dom.nodeType==3)this.createDOM(dom);}merge(from,to,source){if(source&&(!(source instanceof TextView)||this.length-(to-from)+source.length>MaxJoinLen))return false;this.text=this.text.slice(0,from)+(source?source.text:\"\")+this.text.slice(to);this.markDirty();return true;}split(from){let result=new TextView(this.text.slice(from));this.text=this.text.slice(0,from);this.markDirty();return result;}localPosFromDOM(node,offset){return node==this.dom?offset:offset?this.text.length:0;}domAtPos(pos){return new DOMPos(this.dom,pos);}domBoundsAround(_from,_to,offset){return{from:offset,to:offset+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling};}coordsAt(pos,side){return textCoords(this.dom,pos,side);}constructor(text){super();this.text=text;}};var MarkView=class extends ContentView{setAttrs(dom){clearAttributes(dom);if(this.mark.class)dom.className=this.mark.class;if(this.mark.attrs)for(let name in this.mark.attrs)dom.setAttribute(name,this.mark.attrs[name]);return dom;}reuseDOM(node){if(node.nodeName==this.mark.tagName.toUpperCase()){this.setDOM(node);this.dirty|=4|2;}}sync(view,track){if(!this.dom)this.setDOM(this.setAttrs(document.createElement(this.mark.tagName)));else if(this.dirty&4)this.setAttrs(this.dom);super.sync(view,track);}merge(from,to,source,_hasStart,openStart,openEnd){if(source&&(!(source instanceof MarkView&&source.mark.eq(this.mark))||from&&openStart<=0||to<this.length&&openEnd<=0))return false;mergeChildrenInto(this,from,to,source?source.children:[],openStart-1,openEnd-1);this.markDirty();return true;}split(from){let result=[],off=0,detachFrom=-1,i=0;for(let elt of this.children){let end=off+elt.length;if(end>from)result.push(off<from?elt.split(from-off):elt);if(detachFrom<0&&off>=from)detachFrom=i;off=end;i++;}let length=this.length-from;this.length=from;if(detachFrom>-1){this.children.length=detachFrom;this.markDirty();}return new MarkView(this.mark,result,length);}domAtPos(pos){return inlineDOMAtPos(this,pos);}coordsAt(pos,side){return coordsInChildren(this,pos,side);}constructor(mark,children=[],length=0){super();this.mark=mark;this.children=children;this.length=length;for(let ch of children)ch.setParent(this);}};function textCoords(text,pos,side){let length=text.nodeValue.length;if(pos>length)pos=length;let from=pos,to=pos,flatten=0;if(pos==0&&side<0||pos==length&&side>=0){if(!(browser.chrome||browser.gecko)){if(pos){from--;flatten=1;}else if(to<length){to++;flatten=-1;}}}else{if(side<0)from--;else if(to<length)to++;}let rects=textRange(text,from,to).getClientRects();if(!rects.length)return null;let rect=rects[(flatten?flatten<0:side>=0)?0:rects.length-1];if(browser.safari&&!flatten&&rect.width==0)rect=Array.prototype.find.call(rects,r=>r.width)||rect;return flatten?flattenRect(rect,flatten<0):rect||null;}var WidgetView=class extends ContentView{static create(widget,length,side){return new(widget.customView||WidgetView)(widget,length,side);}split(from){let result=WidgetView.create(this.widget,this.length-from,this.side);this.length-=from;return result;}sync(view){if(!this.dom||!this.widget.updateDOM(this.dom,view)){if(this.dom&&this.prevWidget)this.prevWidget.destroy(this.dom);this.prevWidget=null;this.setDOM(this.widget.toDOM(view));this.dom.contentEditable=\"false\";}}getSide(){return this.side;}merge(from,to,source,hasStart,openStart,openEnd){if(source&&(!(source instanceof WidgetView)||!this.widget.compare(source.widget)||from>0&&openStart<=0||to<this.length&&openEnd<=0))return false;this.length=from+(source?source.length:0)+(this.length-to);return true;}become(other){if(other instanceof WidgetView&&other.side==this.side&&this.widget.constructor==other.widget.constructor){if(!this.widget.compare(other.widget))this.markDirty(true);if(this.dom&&!this.prevWidget)this.prevWidget=this.widget;this.widget=other.widget;this.length=other.length;return true;}return false;}ignoreMutation(){return true;}ignoreEvent(event){return this.widget.ignoreEvent(event);}get overrideDOMText(){if(this.length==0)return Text.empty;let top2=this;while(top2.parent)top2=top2.parent;let{view}=top2,text=view&&view.state.doc,start=this.posAtStart;return text?text.slice(start,start+this.length):Text.empty;}domAtPos(pos){return(this.length?pos==0:this.side>0)?DOMPos.before(this.dom):DOMPos.after(this.dom,pos==this.length);}domBoundsAround(){return null;}coordsAt(pos,side){let custom=this.widget.coordsAt(this.dom,pos,side);if(custom)return custom;let rects=this.dom.getClientRects(),rect=null;if(!rects.length)return null;let fromBack=this.side?this.side<0:pos>0;for(let i=fromBack?rects.length-1:0;;i+=fromBack?-1:1){rect=rects[i];if(pos>0?i==0:i==rects.length-1||rect.top<rect.bottom)break;}return flattenRect(rect,!fromBack);}get isEditable(){return false;}get isWidget(){return true;}get isHidden(){return this.widget.isHidden;}destroy(){super.destroy();if(this.dom)this.widget.destroy(this.dom);}constructor(widget,length,side){super();this.widget=widget;this.length=length;this.side=side;this.prevWidget=null;}};var CompositionView=class extends WidgetView{domAtPos(pos){let{topView,text}=this.widget;if(!topView)return new DOMPos(text,Math.min(pos,text.nodeValue.length));return scanCompositionTree(pos,0,topView,text,this.length-topView.length,(v,p)=>v.domAtPos(p),(text2,p)=>new DOMPos(text2,Math.min(p,text2.nodeValue.length)));}sync(){this.setDOM(this.widget.toDOM());}localPosFromDOM(node,offset){let{topView,text}=this.widget;if(!topView)return Math.min(offset,this.length);return posFromDOMInCompositionTree(node,offset,topView,text,this.length-topView.length);}ignoreMutation(){return false;}get overrideDOMText(){return null;}coordsAt(pos,side){let{topView,text}=this.widget;if(!topView)return textCoords(text,pos,side);return scanCompositionTree(pos,side,topView,text,this.length-topView.length,(v,pos2,side2)=>v.coordsAt(pos2,side2),(text2,pos2,side2)=>textCoords(text2,pos2,side2));}destroy(){var _a;super.destroy();(_a=this.widget.topView)===null||_a===void 0?void 0:_a.destroy();}get isEditable(){return true;}canReuseDOM(){return true;}};function scanCompositionTree(pos,side,view,text,dLen,enterView,fromText){if(view instanceof MarkView){for(let child=view.dom.firstChild;child;child=child.nextSibling){let desc=ContentView.get(child);if(!desc){let inner=scanCompositionNode(pos,side,child,fromText);if(typeof inner!=\"number\")return inner;pos=inner;}else{let hasComp=contains(child,text);let len=desc.length+(hasComp?dLen:0);if(pos<len||pos==len&&desc.getSide()<=0)return hasComp?scanCompositionTree(pos,side,desc,text,dLen,enterView,fromText):enterView(desc,pos,side);pos-=len;}}return enterView(view,view.length,-1);}else if(view.dom==text){return fromText(text,pos,side);}else{return enterView(view,pos,side);}}function scanCompositionNode(pos,side,node,fromText){if(node.nodeType==3){let len=node.nodeValue.length;if(pos<=len)return fromText(node,pos,side);pos-=len;}else if(node.nodeType==1&&node.contentEditable!=\"false\"){for(let child=node.firstChild;child;child=child.nextSibling){let inner=scanCompositionNode(pos,side,child,fromText);if(typeof inner!=\"number\")return inner;pos=inner;}}return pos;}function posFromDOMInCompositionTree(node,offset,view,text,dLen){if(view instanceof MarkView){let pos=0;for(let child=view.dom.firstChild;child;child=child.nextSibling){let childView=ContentView.get(child);if(childView){let hasComp=contains(child,text);if(contains(child,node))return pos+(hasComp?posFromDOMInCompositionTree(node,offset,childView,text,dLen):childView.localPosFromDOM(node,offset));pos+=childView.length+(hasComp?dLen:0);}else{let inner=posFromDOMInOpaqueNode(node,offset,child);if(inner.result!=null)return pos+inner.result;pos+=inner.size;}}}else if(view.dom==text){return Math.min(offset,text.nodeValue.length);}return view.localPosFromDOM(node,offset);}function posFromDOMInOpaqueNode(node,offset,target){if(target.nodeType==3){return node==target?{result:offset}:{size:target.nodeValue.length};}else if(target.nodeType==1&&target.contentEditable!=\"false\"){let pos=0;for(let child=target.firstChild,i=0;;child=child.nextSibling,i++){if(node==target&&i==offset)return{result:pos};if(!child)return{size:pos};let inner=posFromDOMInOpaqueNode(node,offset,child);if(inner.result!=null)return{result:offset+inner.result};pos+=inner.size;}}else{return target.contains(node)?{result:0}:{size:0};}}var WidgetBufferView=class extends ContentView{get length(){return 0;}merge(){return false;}become(other){return other instanceof WidgetBufferView&&other.side==this.side;}split(){return new WidgetBufferView(this.side);}sync(){if(!this.dom){let dom=document.createElement(\"img\");dom.className=\"cm-widgetBuffer\";dom.setAttribute(\"aria-hidden\",\"true\");this.setDOM(dom);}}getSide(){return this.side;}domAtPos(pos){return this.side>0?DOMPos.before(this.dom):DOMPos.after(this.dom);}localPosFromDOM(){return 0;}domBoundsAround(){return null;}coordsAt(pos){return this.dom.getBoundingClientRect();}get overrideDOMText(){return Text.empty;}get isHidden(){return true;}constructor(side){super();this.side=side;}};TextView.prototype.children=WidgetView.prototype.children=WidgetBufferView.prototype.children=noChildren;function inlineDOMAtPos(parent,pos){let dom=parent.dom,{children}=parent,i=0;for(let off=0;i<children.length;i++){let child=children[i],end=off+child.length;if(end==off&&child.getSide()<=0)continue;if(pos>off&&pos<end&&child.dom.parentNode==dom)return child.domAtPos(pos-off);if(pos<=off)break;off=end;}for(let j=i;j>0;j--){let prev=children[j-1];if(prev.dom.parentNode==dom)return prev.domAtPos(prev.length);}for(let j=i;j<children.length;j++){let next=children[j];if(next.dom.parentNode==dom)return next.domAtPos(0);}return new DOMPos(dom,0);}function joinInlineInto(parent,view,open){let last,{children}=parent;if(open>0&&view instanceof MarkView&&children.length&&(last=children[children.length-1])instanceof MarkView&&last.mark.eq(view.mark)){joinInlineInto(last,view.children[0],open-1);}else{children.push(view);view.setParent(parent);}parent.length+=view.length;}function coordsInChildren(view,pos,side){let before=null,beforePos=-1,after=null,afterPos=-1;function scan(view2,pos2){for(let i=0,off=0;i<view2.children.length&&off<=pos2;i++){let child=view2.children[i],end=off+child.length;if(end>=pos2){if(child.children.length){scan(child,pos2-off);}else if((!after||after.isHidden&&side>0)&&(end>pos2||off==end&&child.getSide()>0)){after=child;afterPos=pos2-off;}else if(off<pos2||off==end&&child.getSide()<0&&!child.isHidden){before=child;beforePos=pos2-off;}}off=end;}}scan(view,pos);let target=(side<0?before:after)||before||after;if(target)return target.coordsAt(Math.max(0,target==before?beforePos:afterPos),side);return fallbackRect(view);}function fallbackRect(view){let last=view.dom.lastChild;if(!last)return view.dom.getBoundingClientRect();let rects=clientRectsFor(last);return rects[rects.length-1]||null;}function combineAttrs(source,target){for(let name in source){if(name==\"class\"&&target.class)target.class+=\" \"+source.class;else if(name==\"style\"&&target.style)target.style+=\";\"+source.style;else target[name]=source[name];}return target;}function attrsEq(a,b){if(a==b)return true;if(!a||!b)return false;let keysA=Object.keys(a),keysB=Object.keys(b);if(keysA.length!=keysB.length)return false;for(let key of keysA){if(keysB.indexOf(key)==-1||a[key]!==b[key])return false;}return true;}function updateAttrs(dom,prev,attrs){let changed=null;if(prev){for(let name in prev)if(!(attrs&&name in attrs))dom.removeAttribute(changed=name);}if(attrs){for(let name in attrs)if(!(prev&&prev[name]==attrs[name]))dom.setAttribute(changed=name,attrs[name]);}return!!changed;}var WidgetType=class{/**\n  Compare this instance to another instance of the same type.\n  (TypeScript can't express this, but only instances of the same\n  specific class will be passed to this method.) This is used to\n  avoid redrawing widgets when they are replaced by a new\n  decoration of the same type. The default implementation just\n  returns `false`, which will cause new instances of the widget to\n  always be redrawn.\n  */eq(widget){return false;}/**\n  Update a DOM element created by a widget of the same type (but\n  different, non-`eq` content) to reflect this widget. May return\n  true to indicate that it could update, false to indicate it\n  couldn't (in which case the widget will be redrawn). The default\n  implementation just returns false.\n  */updateDOM(dom,view){return false;}/**\n  @internal\n  */compare(other){return this==other||this.constructor==other.constructor&&this.eq(other);}/**\n  The estimated height this widget will have, to be used when\n  estimating the height of content that hasn't been drawn. May\n  return -1 to indicate you don't know. The default implementation\n  returns -1.\n  */get estimatedHeight(){return-1;}/**\n  For inline widgets that are displayed inline (as opposed to\n  `inline-block`) and introduce line breaks (through `<br>` tags\n  or textual newlines), this must indicate the amount of line\n  breaks they introduce. Defaults to 0.\n  */get lineBreaks(){return 0;}/**\n  Can be used to configure which kinds of events inside the widget\n  should be ignored by the editor. The default is to ignore all\n  events.\n  */ignoreEvent(event){return true;}/**\n  Override the way screen coordinates for positions at/in the\n  widget are found. `pos` will be the offset into the widget, and\n  `side` the side of the position that is being queried—less than\n  zero for before, greater than zero for after, and zero for\n  directly at that position.\n  */coordsAt(dom,pos,side){return null;}/**\n  @internal\n  */get customView(){return null;}/**\n  @internal\n  */get isHidden(){return false;}/**\n  This is called when the an instance of the widget is removed\n  from the editor view.\n  */destroy(dom){}};var BlockType=/* @__PURE__ */function(BlockType2){BlockType2[BlockType2[\"Text\"]=0]=\"Text\";BlockType2[BlockType2[\"WidgetBefore\"]=1]=\"WidgetBefore\";BlockType2[BlockType2[\"WidgetAfter\"]=2]=\"WidgetAfter\";BlockType2[BlockType2[\"WidgetRange\"]=3]=\"WidgetRange\";return BlockType2;}(BlockType||(BlockType={}));var Decoration=class extends RangeValue{/**\n  @internal\n  */get heightRelevant(){return false;}/**\n  Create a mark decoration, which influences the styling of the\n  content in its range. Nested mark decorations will cause nested\n  DOM elements to be created. Nesting order is determined by\n  precedence of the [facet](https://codemirror.net/6/docs/ref/#view.EditorView^decorations), with\n  the higher-precedence decorations creating the inner DOM nodes.\n  Such elements are split on line boundaries and on the boundaries\n  of lower-precedence decorations.\n  */static mark(spec){return new MarkDecoration(spec);}/**\n  Create a widget decoration, which displays a DOM element at the\n  given position.\n  */static widget(spec){let side=Math.max(-1e4,Math.min(1e4,spec.side||0)),block=!!spec.block;side+=block?side>0?3e8:-4e8:side>0?1e8:-1e8;return new PointDecoration(spec,side,side,block,spec.widget||null,false);}/**\n  Create a replace decoration which replaces the given range with\n  a widget, or simply hides it.\n  */static replace(spec){let block=!!spec.block,startSide,endSide;if(spec.isBlockGap){startSide=-5e8;endSide=4e8;}else{let{start,end}=getInclusive(spec,block);startSide=(start?block?-3e8:-1:5e8)-1;endSide=(end?block?2e8:1:-6e8)+1;}return new PointDecoration(spec,startSide,endSide,block,spec.widget||null,true);}/**\n  Create a line decoration, which can add DOM attributes to the\n  line starting at the given position.\n  */static line(spec){return new LineDecoration(spec);}/**\n  Build a [`DecorationSet`](https://codemirror.net/6/docs/ref/#view.DecorationSet) from the given\n  decorated range or ranges. If the ranges aren't already sorted,\n  pass `true` for `sort` to make the library sort them for you.\n  */static set(of,sort=false){return RangeSet.of(of,sort);}/**\n  @internal\n  */hasHeight(){return this.widget?this.widget.estimatedHeight>-1:false;}constructor(startSide,endSide,widget,spec){super();this.startSide=startSide;this.endSide=endSide;this.widget=widget;this.spec=spec;}};Decoration.none=RangeSet.empty;var MarkDecoration=class extends Decoration{eq(other){return this==other||other instanceof MarkDecoration&&this.tagName==other.tagName&&this.class==other.class&&attrsEq(this.attrs,other.attrs);}range(from,to=from){if(from>=to)throw new RangeError(\"Mark decorations may not be empty\");return super.range(from,to);}constructor(spec){let{start,end}=getInclusive(spec);super(start?-1:5e8,end?1:-6e8,null,spec);this.tagName=spec.tagName||\"span\";this.class=spec.class||\"\";this.attrs=spec.attributes||null;}};MarkDecoration.prototype.point=false;var LineDecoration=class extends Decoration{eq(other){return other instanceof LineDecoration&&this.spec.class==other.spec.class&&attrsEq(this.spec.attributes,other.spec.attributes);}range(from,to=from){if(to!=from)throw new RangeError(\"Line decoration ranges must be zero-length\");return super.range(from,to);}constructor(spec){super(-2e8,-2e8,null,spec);}};LineDecoration.prototype.mapMode=MapMode.TrackBefore;LineDecoration.prototype.point=true;var PointDecoration=class extends Decoration{// Only relevant when this.block == true\nget type(){return this.startSide<this.endSide?BlockType.WidgetRange:this.startSide<=0?BlockType.WidgetBefore:BlockType.WidgetAfter;}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0);}eq(other){return other instanceof PointDecoration&&widgetsEq(this.widget,other.widget)&&this.block==other.block&&this.startSide==other.startSide&&this.endSide==other.endSide;}range(from,to=from){if(this.isReplace&&(from>to||from==to&&this.startSide>0&&this.endSide<=0))throw new RangeError(\"Invalid range for replacement decoration\");if(!this.isReplace&&to!=from)throw new RangeError(\"Widget decorations can only have zero-length ranges\");return super.range(from,to);}constructor(spec,startSide,endSide,block,widget,isReplace){super(startSide,endSide,widget,spec);this.block=block;this.isReplace=isReplace;this.mapMode=!block?MapMode.TrackDel:startSide<=0?MapMode.TrackBefore:MapMode.TrackAfter;}};PointDecoration.prototype.point=true;function getInclusive(spec,block=false){let{inclusiveStart:start,inclusiveEnd:end}=spec;if(start==null)start=spec.inclusive;if(end==null)end=spec.inclusive;return{start:start!==null&&start!==void 0?start:block,end:end!==null&&end!==void 0?end:block};}function widgetsEq(a,b){return a==b||!!(a&&b&&a.compare(b));}function addRange(from,to,ranges,margin=0){let last=ranges.length-1;if(last>=0&&ranges[last]+margin>=from)ranges[last]=Math.max(ranges[last],to);else ranges.push(from,to);}var LineView=class extends ContentView{// Consumes source\nmerge(from,to,source,hasStart,openStart,openEnd){if(source){if(!(source instanceof LineView))return false;if(!this.dom)source.transferDOM(this);}if(hasStart)this.setDeco(source?source.attrs:null);mergeChildrenInto(this,from,to,source?source.children:[],openStart,openEnd);return true;}split(at){let end=new LineView;end.breakAfter=this.breakAfter;if(this.length==0)return end;let{i,off}=this.childPos(at);if(off){end.append(this.children[i].split(off),0);this.children[i].merge(off,this.children[i].length,null,false,0,0);i++;}for(let j=i;j<this.children.length;j++)end.append(this.children[j],0);while(i>0&&this.children[i-1].length==0)this.children[--i].destroy();this.children.length=i;this.markDirty();this.length=at;return end;}transferDOM(other){if(!this.dom)return;this.markDirty();other.setDOM(this.dom);other.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs;this.prevAttrs=void 0;this.dom=null;}setDeco(attrs){if(!attrsEq(this.attrs,attrs)){if(this.dom){this.prevAttrs=this.attrs;this.markDirty();}this.attrs=attrs;}}append(child,openStart){joinInlineInto(this,child,openStart);}// Only called when building a line view in ContentBuilder\naddLineDeco(deco){let attrs=deco.spec.attributes,cls=deco.spec.class;if(attrs)this.attrs=combineAttrs(attrs,this.attrs||{});if(cls)this.attrs=combineAttrs({class:cls},this.attrs||{});}domAtPos(pos){return inlineDOMAtPos(this,pos);}reuseDOM(node){if(node.nodeName==\"DIV\"){this.setDOM(node);this.dirty|=4|2;}}sync(view,track){var _a;if(!this.dom){this.setDOM(document.createElement(\"div\"));this.dom.className=\"cm-line\";this.prevAttrs=this.attrs?null:void 0;}else if(this.dirty&4){clearAttributes(this.dom);this.dom.className=\"cm-line\";this.prevAttrs=this.attrs?null:void 0;}if(this.prevAttrs!==void 0){updateAttrs(this.dom,this.prevAttrs,this.attrs);this.dom.classList.add(\"cm-line\");this.prevAttrs=void 0;}super.sync(view,track);let last=this.dom.lastChild;while(last&&ContentView.get(last) instanceof MarkView)last=last.lastChild;if(!last||!this.length||last.nodeName!=\"BR\"&&((_a=ContentView.get(last))===null||_a===void 0?void 0:_a.isEditable)==false&&(!browser.ios||!this.children.some(ch=>ch instanceof TextView))){let hack=document.createElement(\"BR\");hack.cmIgnore=true;this.dom.appendChild(hack);}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let totalWidth=0,textHeight;for(let child of this.children){if(!(child instanceof TextView)||/[^ -~]/.test(child.text))return null;let rects=clientRectsFor(child.dom);if(rects.length!=1)return null;totalWidth+=rects[0].width;textHeight=rects[0].height;}return!totalWidth?null:{lineHeight:this.dom.getBoundingClientRect().height,charWidth:totalWidth/this.length,textHeight};}coordsAt(pos,side){let rect=coordsInChildren(this,pos,side);if(!this.children.length&&rect&&this.parent){let{heightOracle}=this.parent.view.viewState,height=rect.bottom-rect.top;if(Math.abs(height-heightOracle.lineHeight)<2&&heightOracle.textHeight<height){let dist=(height-heightOracle.textHeight)/2;return{top:rect.top+dist,bottom:rect.bottom-dist,left:rect.left,right:rect.left};}}return rect;}become(_other){return false;}get type(){return BlockType.Text;}static find(docView,pos){for(let i=0,off=0;i<docView.children.length;i++){let block=docView.children[i],end=off+block.length;if(end>=pos){if(block instanceof LineView)return block;if(end>pos)break;}off=end+block.breakAfter;}return null;}constructor(){super(...arguments);this.children=[];this.length=0;this.prevAttrs=void 0;this.attrs=null;this.breakAfter=0;}};var BlockWidgetView=class extends ContentView{merge(from,to,source,_takeDeco,openStart,openEnd){if(source&&(!(source instanceof BlockWidgetView)||!this.widget.compare(source.widget)||from>0&&openStart<=0||to<this.length&&openEnd<=0))return false;this.length=from+(source?source.length:0)+(this.length-to);return true;}domAtPos(pos){return pos==0?DOMPos.before(this.dom):DOMPos.after(this.dom,pos==this.length);}split(at){let len=this.length-at;this.length=at;let end=new BlockWidgetView(this.widget,len,this.type);end.breakAfter=this.breakAfter;return end;}get children(){return noChildren;}sync(view){if(!this.dom||!this.widget.updateDOM(this.dom,view)){if(this.dom&&this.prevWidget)this.prevWidget.destroy(this.dom);this.prevWidget=null;this.setDOM(this.widget.toDOM(view));this.dom.contentEditable=\"false\";}}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):Text.empty;}domBoundsAround(){return null;}become(other){if(other instanceof BlockWidgetView&&other.widget.constructor==this.widget.constructor){if(!other.widget.compare(this.widget))this.markDirty(true);if(this.dom&&!this.prevWidget)this.prevWidget=this.widget;this.widget=other.widget;this.length=other.length;this.type=other.type;this.breakAfter=other.breakAfter;return true;}return false;}ignoreMutation(){return true;}ignoreEvent(event){return this.widget.ignoreEvent(event);}get isEditable(){return false;}get isWidget(){return true;}coordsAt(pos,side){return this.widget.coordsAt(this.dom,pos,side);}destroy(){super.destroy();if(this.dom)this.widget.destroy(this.dom);}constructor(widget,length,type){super();this.widget=widget;this.length=length;this.type=type;this.breakAfter=0;this.prevWidget=null;}};var ContentBuilder=class{posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let last=this.content[this.content.length-1];return!last.breakAfter&&!(last instanceof BlockWidgetView&&last.type==BlockType.WidgetBefore);}getLine(){if(!this.curLine){this.content.push(this.curLine=new LineView);this.atCursorPos=true;}return this.curLine;}flushBuffer(active=this.bufferMarks){if(this.pendingBuffer){this.curLine.append(wrapMarks(new WidgetBufferView(-1),active),active.length);this.pendingBuffer=0;}}addBlockWidget(view){this.flushBuffer();this.curLine=null;this.content.push(view);}finish(openEnd){if(this.pendingBuffer&&openEnd<=this.bufferMarks.length)this.flushBuffer();else this.pendingBuffer=0;if(!this.posCovered())this.getLine();}buildText(length,active,openStart){while(length>0){if(this.textOff==this.text.length){let{value,lineBreak,done}=this.cursor.next(this.skip);this.skip=0;if(done)throw new Error(\"Ran out of text content when drawing inline views\");if(lineBreak){if(!this.posCovered())this.getLine();if(this.content.length)this.content[this.content.length-1].breakAfter=1;else this.breakAtStart=1;this.flushBuffer();this.curLine=null;this.atCursorPos=true;length--;continue;}else{this.text=value;this.textOff=0;}}let take=Math.min(this.text.length-this.textOff,length,512);this.flushBuffer(active.slice(active.length-openStart));this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff,this.textOff+take)),active),openStart);this.atCursorPos=true;this.textOff+=take;length-=take;openStart=0;}}span(from,to,active,openStart){this.buildText(to-from,active,openStart);this.pos=to;if(this.openStart<0)this.openStart=openStart;}point(from,to,deco,active,openStart,index){if(this.disallowBlockEffectsFor[index]&&deco instanceof PointDecoration){if(deco.block)throw new RangeError(\"Block decorations may not be specified via plugins\");if(to>this.doc.lineAt(this.pos).to)throw new RangeError(\"Decorations that replace line breaks may not be specified via plugins\");}let len=to-from;if(deco instanceof PointDecoration){if(deco.block){let{type}=deco;if(type==BlockType.WidgetAfter&&!this.posCovered())this.getLine();this.addBlockWidget(new BlockWidgetView(deco.widget||new NullWidget(\"div\"),len,type));}else{let view=WidgetView.create(deco.widget||new NullWidget(\"span\"),len,len?0:deco.startSide);let cursorBefore=this.atCursorPos&&!view.isEditable&&openStart<=active.length&&(from<to||deco.startSide>0);let cursorAfter=!view.isEditable&&(from<to||openStart>active.length||deco.startSide<=0);let line=this.getLine();if(this.pendingBuffer==2&&!cursorBefore&&!view.isEditable)this.pendingBuffer=0;this.flushBuffer(active);if(cursorBefore){line.append(wrapMarks(new WidgetBufferView(1),active),openStart);openStart=active.length+Math.max(0,openStart-active.length);}line.append(wrapMarks(view,active),openStart);this.atCursorPos=cursorAfter;this.pendingBuffer=!cursorAfter?0:from<to||openStart>active.length?1:2;if(this.pendingBuffer)this.bufferMarks=active.slice();}}else if(this.doc.lineAt(this.pos).from==this.pos){this.getLine().addLineDeco(deco);}if(len){if(this.textOff+len<=this.text.length){this.textOff+=len;}else{this.skip+=len-(this.text.length-this.textOff);this.text=\"\";this.textOff=0;}this.pos=to;}if(this.openStart<0)this.openStart=openStart;}static build(text,from,to,decorations2,dynamicDecorationMap){let builder=new ContentBuilder(text,from,to,dynamicDecorationMap);builder.openEnd=RangeSet.spans(decorations2,from,to,builder);if(builder.openStart<0)builder.openStart=builder.openEnd;builder.finish(builder.openEnd);return builder;}constructor(doc2,pos,end,disallowBlockEffectsFor){this.doc=doc2;this.pos=pos;this.end=end;this.disallowBlockEffectsFor=disallowBlockEffectsFor;this.content=[];this.curLine=null;this.breakAtStart=0;this.pendingBuffer=0;this.bufferMarks=[];this.atCursorPos=true;this.openStart=-1;this.openEnd=-1;this.text=\"\";this.textOff=0;this.cursor=doc2.iter();this.skip=pos;}};function wrapMarks(view,active){for(let mark of active)view=new MarkView(mark,[view],view.length);return view;}var NullWidget=class extends WidgetType{eq(other){return other.tag==this.tag;}toDOM(){return document.createElement(this.tag);}updateDOM(elt){return elt.nodeName.toLowerCase()==this.tag;}get isHidden(){return true;}constructor(tag){super();this.tag=tag;}};var clickAddsSelectionRange=/* @__PURE__ */Facet.define();var dragMovesSelection$1=/* @__PURE__ */Facet.define();var mouseSelectionStyle=/* @__PURE__ */Facet.define();var exceptionSink=/* @__PURE__ */Facet.define();var updateListener=/* @__PURE__ */Facet.define();var inputHandler=/* @__PURE__ */Facet.define();var focusChangeEffect=/* @__PURE__ */Facet.define();var perLineTextDirection=/* @__PURE__ */Facet.define({combine:values=>values.some(x=>x)});var nativeSelectionHidden=/* @__PURE__ */Facet.define({combine:values=>values.some(x=>x)});var ScrollTarget=class{map(changes){return changes.empty?this:new ScrollTarget(this.range.map(changes),this.y,this.x,this.yMargin,this.xMargin);}constructor(range,y=\"nearest\",x=\"nearest\",yMargin=5,xMargin=5){this.range=range;this.y=y;this.x=x;this.yMargin=yMargin;this.xMargin=xMargin;}};var scrollIntoView=/* @__PURE__ */StateEffect.define({map:(t,ch)=>t.map(ch)});function logException(state,exception,context){let handler=state.facet(exceptionSink);if(handler.length)handler[0](exception);else if(window.onerror)window.onerror(String(exception),context,void 0,void 0,exception);else if(context)console.error(context+\":\",exception);else console.error(exception);}var editable=/* @__PURE__ */Facet.define({combine:values=>values.length?values[0]:true});var nextPluginID=0;var viewPlugin=/* @__PURE__ */Facet.define();var ViewPlugin=class{/**\n  Define a plugin from a constructor function that creates the\n  plugin's value, given an editor view.\n  */static define(create,spec){const{eventHandlers,provide,decorations:deco}=spec||{};return new ViewPlugin(nextPluginID++,create,eventHandlers,plugin2=>{let ext=[viewPlugin.of(plugin2)];if(deco)ext.push(decorations.of(view=>{let pluginInst=view.plugin(plugin2);return pluginInst?deco(pluginInst):Decoration.none;}));if(provide)ext.push(provide(plugin2));return ext;});}/**\n  Create a plugin for a class whose constructor takes a single\n  editor view as argument.\n  */static fromClass(cls,spec){return ViewPlugin.define(view=>new cls(view),spec);}constructor(id,create,domEventHandlers,buildExtensions){this.id=id;this.create=create;this.domEventHandlers=domEventHandlers;this.extension=buildExtensions(this);}};var PluginInstance=class{update(view){if(!this.value){if(this.spec){try{this.value=this.spec.create(view);}catch(e){logException(view.state,e,\"CodeMirror plugin crashed\");this.deactivate();}}}else if(this.mustUpdate){let update=this.mustUpdate;this.mustUpdate=null;if(this.value.update){try{this.value.update(update);}catch(e){logException(update.state,e,\"CodeMirror plugin crashed\");if(this.value.destroy)try{this.value.destroy();}catch(_){}this.deactivate();}}}return this;}destroy(view){var _a;if((_a=this.value)===null||_a===void 0?void 0:_a.destroy){try{this.value.destroy();}catch(e){logException(view.state,e,\"CodeMirror plugin crashed\");}}}deactivate(){this.spec=this.value=null;}constructor(spec){this.spec=spec;this.mustUpdate=null;this.value=null;}};var editorAttributes=/* @__PURE__ */Facet.define();var contentAttributes=/* @__PURE__ */Facet.define();var decorations=/* @__PURE__ */Facet.define();var atomicRanges=/* @__PURE__ */Facet.define();var scrollMargins=/* @__PURE__ */Facet.define();function getScrollMargins(view){let left=0,right=0,top2=0,bottom=0;for(let source of view.state.facet(scrollMargins)){let m=source(view);if(m){if(m.left!=null)left=Math.max(left,m.left);if(m.right!=null)right=Math.max(right,m.right);if(m.top!=null)top2=Math.max(top2,m.top);if(m.bottom!=null)bottom=Math.max(bottom,m.bottom);}}return{left,right,top:top2,bottom};}var styleModule=/* @__PURE__ */Facet.define();var ChangedRange=class{join(other){return new ChangedRange(Math.min(this.fromA,other.fromA),Math.max(this.toA,other.toA),Math.min(this.fromB,other.fromB),Math.max(this.toB,other.toB));}addToSet(set){let i=set.length,me=this;for(;i>0;i--){let range=set[i-1];if(range.fromA>me.toA)continue;if(range.toA<me.fromA)break;me=me.join(range);set.splice(i-1,1);}set.splice(i,0,me);return set;}static extendWithRanges(diff,ranges){if(ranges.length==0)return diff;let result=[];for(let dI=0,rI=0,posA=0,posB=0;;dI++){let next=dI==diff.length?null:diff[dI],off=posA-posB;let end=next?next.fromB:1e9;while(rI<ranges.length&&ranges[rI]<end){let from=ranges[rI],to=ranges[rI+1];let fromB=Math.max(posB,from),toB=Math.min(end,to);if(fromB<=toB)new ChangedRange(fromB+off,toB+off,fromB,toB).addToSet(result);if(to>end)break;else rI+=2;}if(!next)return result;new ChangedRange(next.fromA,next.toA,next.fromB,next.toB).addToSet(result);posA=next.toA;posB=next.toB;}}constructor(fromA,toA,fromB,toB){this.fromA=fromA;this.toA=toA;this.fromB=fromB;this.toB=toB;}};var ViewUpdate=class{/**\n  @internal\n  */static create(view,state,transactions){return new ViewUpdate(view,state,transactions);}/**\n  Tells you whether the [viewport](https://codemirror.net/6/docs/ref/#view.EditorView.viewport) or\n  [visible ranges](https://codemirror.net/6/docs/ref/#view.EditorView.visibleRanges) changed in this\n  update.\n  */get viewportChanged(){return(this.flags&4)>0;}/**\n  Indicates whether the height of a block element in the editor\n  changed in this update.\n  */get heightChanged(){return(this.flags&2)>0;}/**\n  Returns true when the document was modified or the size of the\n  editor, or elements within the editor, changed.\n  */get geometryChanged(){return this.docChanged||(this.flags&(8|2))>0;}/**\n  True when this update indicates a focus change.\n  */get focusChanged(){return(this.flags&1)>0;}/**\n  Whether the document changed in this update.\n  */get docChanged(){return!this.changes.empty;}/**\n  Whether the selection was explicitly set in this update.\n  */get selectionSet(){return this.transactions.some(tr=>tr.selection);}/**\n  @internal\n  */get empty(){return this.flags==0&&this.transactions.length==0;}constructor(view,state,transactions){this.view=view;this.state=state;this.transactions=transactions;this.flags=0;this.startState=view.state;this.changes=ChangeSet.empty(this.startState.doc.length);for(let tr of transactions)this.changes=this.changes.compose(tr.changes);let changedRanges=[];this.changes.iterChangedRanges((fromA,toA,fromB,toB)=>changedRanges.push(new ChangedRange(fromA,toA,fromB,toB)));this.changedRanges=changedRanges;}};var Direction=/* @__PURE__ */function(Direction2){Direction2[Direction2[\"LTR\"]=0]=\"LTR\";Direction2[Direction2[\"RTL\"]=1]=\"RTL\";return Direction2;}(Direction||(Direction={}));var LTR=Direction.LTR;var RTL=Direction.RTL;function dec(str){let result=[];for(let i=0;i<str.length;i++)result.push(1<<+str[i]);return result;}var LowTypes=/* @__PURE__ */dec(\"88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008\");var ArabicTypes=/* @__PURE__ */dec(\"4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333\");var Brackets=/* @__PURE__ */Object.create(null);var BracketStack=[];for(let p of[\"()\",\"[]\",\"{}\"]){let l=/* @__PURE__ */p.charCodeAt(0),r=/* @__PURE__ */p.charCodeAt(1);Brackets[l]=r;Brackets[r]=-l;}function charType(ch){return ch<=247?LowTypes[ch]:1424<=ch&&ch<=1524?2:1536<=ch&&ch<=1785?ArabicTypes[ch-1536]:1774<=ch&&ch<=2220?4:8192<=ch&&ch<=8203?256:64336<=ch&&ch<=65023?4:ch==8204?256:1;}var BidiRE=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\ufb50-\\ufdff]/;var BidiSpan=class{/**\n  The direction of this span.\n  */get dir(){return this.level%2?RTL:LTR;}/**\n  @internal\n  */side(end,dir){return this.dir==dir==end?this.to:this.from;}/**\n  @internal\n  */static find(order,index,level,assoc){let maybe=-1;for(let i=0;i<order.length;i++){let span=order[i];if(span.from<=index&&span.to>=index){if(span.level==level)return i;if(maybe<0||(assoc!=0?assoc<0?span.from<index:span.to>index:order[maybe].level>span.level))maybe=i;}}if(maybe<0)throw new RangeError(\"Index out of range\");return maybe;}/**\n  @internal\n  */constructor(from,to,level){this.from=from;this.to=to;this.level=level;}};var types=[];function computeOrder(line,direction){let len=line.length,outerType=direction==LTR?1:2,oppositeType=direction==LTR?2:1;if(!line||outerType==1&&!BidiRE.test(line))return trivialOrder(len);for(let i=0,prev=outerType,prevStrong=outerType;i<len;i++){let type=charType(line.charCodeAt(i));if(type==512)type=prev;else if(type==8&&prevStrong==4)type=16;types[i]=type==4?2:type;if(type&7)prevStrong=type;prev=type;}for(let i=0,prev=outerType,prevStrong=outerType;i<len;i++){let type=types[i];if(type==128){if(i<len-1&&prev==types[i+1]&&prev&24)type=types[i]=prev;else types[i]=256;}else if(type==64){let end=i+1;while(end<len&&types[end]==64)end++;let replace=i&&prev==8||end<len&&types[end]==8?prevStrong==1?1:8:256;for(let j=i;j<end;j++)types[j]=replace;i=end-1;}else if(type==8&&prevStrong==1){types[i]=1;}prev=type;if(type&7)prevStrong=type;}for(let i=0,sI=0,context=0,ch,br,type;i<len;i++){if(br=Brackets[ch=line.charCodeAt(i)]){if(br<0){for(let sJ=sI-3;sJ>=0;sJ-=3){if(BracketStack[sJ+1]==-br){let flags=BracketStack[sJ+2];let type2=flags&2?outerType:!(flags&4)?0:flags&1?oppositeType:outerType;if(type2)types[i]=types[BracketStack[sJ]]=type2;sI=sJ;break;}}}else if(BracketStack.length==189){break;}else{BracketStack[sI++]=i;BracketStack[sI++]=ch;BracketStack[sI++]=context;}}else if((type=types[i])==2||type==1){let embed=type==outerType;context=embed?0:1;for(let sJ=sI-3;sJ>=0;sJ-=3){let cur=BracketStack[sJ+2];if(cur&2)break;if(embed){BracketStack[sJ+2]|=2;}else{if(cur&4)break;BracketStack[sJ+2]|=4;}}}}for(let i=0;i<len;i++){if(types[i]==256){let end=i+1;while(end<len&&types[end]==256)end++;let beforeL=(i?types[i-1]:outerType)==1;let afterL=(end<len?types[end]:outerType)==1;let replace=beforeL==afterL?beforeL?1:2:outerType;for(let j=i;j<end;j++)types[j]=replace;i=end-1;}}let order=[];if(outerType==1){for(let i=0;i<len;){let start=i,rtl=types[i++]!=1;while(i<len&&rtl==(types[i]!=1))i++;if(rtl){for(let j=i;j>start;){let end=j,l=types[--j]!=2;while(j>start&&l==(types[j-1]!=2))j--;order.push(new BidiSpan(j,end,l?2:1));}}else{order.push(new BidiSpan(start,i,0));}}}else{for(let i=0;i<len;){let start=i,rtl=types[i++]==2;while(i<len&&rtl==(types[i]==2))i++;order.push(new BidiSpan(start,i,rtl?1:2));}}return order;}function trivialOrder(length){return[new BidiSpan(0,length,0)];}var movedOver=\"\";function moveVisually(line,order,dir,start,forward){var _a;let startIndex=start.head-line.from,spanI=-1;if(startIndex==0){if(!forward||!line.length)return null;if(order[0].level!=dir){startIndex=order[0].side(false,dir);spanI=0;}}else if(startIndex==line.length){if(forward)return null;let last=order[order.length-1];if(last.level!=dir){startIndex=last.side(true,dir);spanI=order.length-1;}}if(spanI<0)spanI=BidiSpan.find(order,startIndex,(_a=start.bidiLevel)!==null&&_a!==void 0?_a:-1,start.assoc);let span=order[spanI];if(startIndex==span.side(forward,dir)){span=order[spanI+=forward?1:-1];startIndex=span.side(!forward,dir);}let indexForward=forward==(span.dir==dir);let nextIndex=findClusterBreak(line.text,startIndex,indexForward);movedOver=line.text.slice(Math.min(startIndex,nextIndex),Math.max(startIndex,nextIndex));if(nextIndex!=span.side(forward,dir))return EditorSelection.cursor(nextIndex+line.from,indexForward?-1:1,span.level);let nextSpan=spanI==(forward?order.length-1:0)?null:order[spanI+(forward?1:-1)];if(!nextSpan&&span.level!=dir)return EditorSelection.cursor(forward?line.to:line.from,forward?-1:1,dir);if(nextSpan&&nextSpan.level<span.level)return EditorSelection.cursor(nextSpan.side(!forward,dir)+line.from,forward?1:-1,nextSpan.level);return EditorSelection.cursor(nextIndex+line.from,forward?-1:1,span.level);}var LineBreakPlaceholder=\"￿\";var DOMReader=class{append(text){this.text+=text;}lineBreak(){this.text+=LineBreakPlaceholder;}readRange(start,end){if(!start)return this;let parent=start.parentNode;for(let cur=start;;){this.findPointBefore(parent,cur);let oldLen=this.text.length;this.readNode(cur);let next=cur.nextSibling;if(next==end)break;let view=ContentView.get(cur),nextView=ContentView.get(next);if(view&&nextView?view.breakAfter:(view?view.breakAfter:isBlockElement(cur))||isBlockElement(next)&&(cur.nodeName!=\"BR\"||cur.cmIgnore)&&this.text.length>oldLen)this.lineBreak();cur=next;}this.findPointBefore(parent,end);return this;}readTextNode(node){let text=node.nodeValue;for(let point of this.points)if(point.node==node)point.pos=this.text.length+Math.min(point.offset,text.length);for(let off=0,re=this.lineSeparator?null:/\\r\\n?|\\n/g;;){let nextBreak=-1,breakSize=1,m;if(this.lineSeparator){nextBreak=text.indexOf(this.lineSeparator,off);breakSize=this.lineSeparator.length;}else if(m=re.exec(text)){nextBreak=m.index;breakSize=m[0].length;}this.append(text.slice(off,nextBreak<0?text.length:nextBreak));if(nextBreak<0)break;this.lineBreak();if(breakSize>1){for(let point of this.points)if(point.node==node&&point.pos>this.text.length)point.pos-=breakSize-1;}off=nextBreak+breakSize;}}readNode(node){if(node.cmIgnore)return;let view=ContentView.get(node);let fromView=view&&view.overrideDOMText;if(fromView!=null){this.findPointInside(node,fromView.length);for(let i=fromView.iter();!i.next().done;){if(i.lineBreak)this.lineBreak();else this.append(i.value);}}else if(node.nodeType==3){this.readTextNode(node);}else if(node.nodeName==\"BR\"){if(node.nextSibling)this.lineBreak();}else if(node.nodeType==1){this.readRange(node.firstChild,null);}}findPointBefore(node,next){for(let point of this.points)if(point.node==node&&node.childNodes[point.offset]==next)point.pos=this.text.length;}findPointInside(node,maxLen){for(let point of this.points)if(node.nodeType==3?point.node==node:node.contains(point.node))point.pos=this.text.length+Math.min(maxLen,point.offset);}constructor(points,state){this.points=points;this.text=\"\";this.lineSeparator=state.facet(EditorState.lineSeparator);}};function isBlockElement(node){return node.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\\d|SECTION|PRE)$/.test(node.nodeName);}var DOMPoint=class{constructor(node,offset){this.node=node;this.offset=offset;this.pos=-1;}};var DocView=class extends ContentView{get length(){return this.view.state.doc.length;}// Update the document view to a given state.\nupdate(update){let changedRanges=update.changedRanges;if(this.minWidth>0&&changedRanges.length){if(!changedRanges.every(({fromA,toA})=>toA<this.minWidthFrom||fromA>this.minWidthTo)){this.minWidth=this.minWidthFrom=this.minWidthTo=0;}else{this.minWidthFrom=update.changes.mapPos(this.minWidthFrom,1);this.minWidthTo=update.changes.mapPos(this.minWidthTo,1);}}if(this.view.inputState.composing<0)this.compositionDeco=Decoration.none;else if(update.transactions.length||this.dirty)this.compositionDeco=computeCompositionDeco(this.view,update.changes);if((browser.ie||browser.chrome)&&!this.compositionDeco.size&&update&&update.state.doc.lines!=update.startState.doc.lines)this.forceSelection=true;let prevDeco=this.decorations,deco=this.updateDeco();let decoDiff=findChangedDeco(prevDeco,deco,update.changes);changedRanges=ChangedRange.extendWithRanges(changedRanges,decoDiff);if(this.dirty==0&&changedRanges.length==0){return false;}else{this.updateInner(changedRanges,update.startState.doc.length);if(update.transactions.length)this.lastUpdate=Date.now();return true;}}// Used by update and the constructor do perform the actual DOM\n// update\nupdateInner(changes,oldLength){this.view.viewState.mustMeasureContent=true;this.updateChildren(changes,oldLength);let{observer}=this.view;observer.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+\"px\";this.dom.style.flexBasis=this.minWidth?this.minWidth+\"px\":\"\";let track=browser.chrome||browser.ios?{node:observer.selectionRange.focusNode,written:false}:void 0;this.sync(this.view,track);this.dirty=0;if(track&&(track.written||observer.selectionRange.focusNode!=track.node))this.forceSelection=true;this.dom.style.height=\"\";});let gaps=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length){for(let child of this.children)if(child instanceof BlockWidgetView&&child.widget instanceof BlockGapWidget)gaps.push(child.dom);}observer.updateGaps(gaps);}updateChildren(changes,oldLength){let cursor=this.childCursor(oldLength);for(let i=changes.length-1;;i--){let next=i>=0?changes[i]:null;if(!next)break;let{fromA,toA,fromB,toB}=next;let{content,breakAtStart,openStart,openEnd}=ContentBuilder.build(this.view.state.doc,fromB,toB,this.decorations,this.dynamicDecorationMap);let{i:toI,off:toOff}=cursor.findPos(toA,1);let{i:fromI,off:fromOff}=cursor.findPos(fromA,-1);replaceRange(this,fromI,fromOff,toI,toOff,content,breakAtStart,openStart,openEnd);}}// Sync the DOM selection to this.state.selection\nupdateSelection(mustRead=false,fromPointer=false){if(mustRead||!this.view.observer.selectionRange.focusNode)this.view.observer.readSelectionRange();let activeElt=this.view.root.activeElement,focused=activeElt==this.dom;let selectionNotFocus=!focused&&hasSelection(this.dom,this.view.observer.selectionRange)&&!(activeElt&&this.dom.contains(activeElt));if(!(focused||fromPointer||selectionNotFocus))return;let force=this.forceSelection;this.forceSelection=false;let main=this.view.state.selection.main;let anchor=this.domAtPos(main.anchor);let head=main.empty?anchor:this.domAtPos(main.head);if(browser.gecko&&main.empty&&!this.compositionDeco.size&&betweenUneditable(anchor)){let dummy=document.createTextNode(\"\");this.view.observer.ignore(()=>anchor.node.insertBefore(dummy,anchor.node.childNodes[anchor.offset]||null));anchor=head=new DOMPos(dummy,0);force=true;}let domSel=this.view.observer.selectionRange;if(force||!domSel.focusNode||!isEquivalentPosition(anchor.node,anchor.offset,domSel.anchorNode,domSel.anchorOffset)||!isEquivalentPosition(head.node,head.offset,domSel.focusNode,domSel.focusOffset)){this.view.observer.ignore(()=>{if(browser.android&&browser.chrome&&this.dom.contains(domSel.focusNode)&&inUneditable(domSel.focusNode,this.dom)){this.dom.blur();this.dom.focus({preventScroll:true});}let rawSel=getSelection(this.view.root);if(!rawSel);else if(main.empty){if(browser.gecko){let nextTo=nextToUneditable(anchor.node,anchor.offset);if(nextTo&&nextTo!=(1|2)){let text=nearbyTextNode(anchor.node,anchor.offset,nextTo==1?1:-1);if(text)anchor=new DOMPos(text,nextTo==1?0:text.nodeValue.length);}}rawSel.collapse(anchor.node,anchor.offset);if(main.bidiLevel!=null&&domSel.cursorBidiLevel!=null)domSel.cursorBidiLevel=main.bidiLevel;}else if(rawSel.extend){rawSel.collapse(anchor.node,anchor.offset);try{rawSel.extend(head.node,head.offset);}catch(_){}}else{let range=document.createRange();if(main.anchor>main.head)[anchor,head]=[head,anchor];range.setEnd(head.node,head.offset);range.setStart(anchor.node,anchor.offset);rawSel.removeAllRanges();rawSel.addRange(range);}if(selectionNotFocus&&this.view.root.activeElement==this.dom){this.dom.blur();if(activeElt)activeElt.focus();}});this.view.observer.setSelectionRange(anchor,head);}this.impreciseAnchor=anchor.precise?null:new DOMPos(domSel.anchorNode,domSel.anchorOffset);this.impreciseHead=head.precise?null:new DOMPos(domSel.focusNode,domSel.focusOffset);}enforceCursorAssoc(){if(this.compositionDeco.size)return;let{view}=this,cursor=view.state.selection.main;let sel=getSelection(view.root);let{anchorNode,anchorOffset}=view.observer.selectionRange;if(!sel||!cursor.empty||!cursor.assoc||!sel.modify)return;let line=LineView.find(this,cursor.head);if(!line)return;let lineStart=line.posAtStart;if(cursor.head==lineStart||cursor.head==lineStart+line.length)return;let before=this.coordsAt(cursor.head,-1),after=this.coordsAt(cursor.head,1);if(!before||!after||before.bottom>after.top)return;let dom=this.domAtPos(cursor.head+cursor.assoc);sel.collapse(dom.node,dom.offset);sel.modify(\"move\",cursor.assoc<0?\"forward\":\"backward\",\"lineboundary\");view.observer.readSelectionRange();let newRange=view.observer.selectionRange;if(view.docView.posFromDOM(newRange.anchorNode,newRange.anchorOffset)!=cursor.from)sel.collapse(anchorNode,anchorOffset);}nearest(dom){for(let cur=dom;cur;){let domView=ContentView.get(cur);if(domView&&domView.rootView==this)return domView;cur=cur.parentNode;}return null;}posFromDOM(node,offset){let view=this.nearest(node);if(!view)throw new RangeError(\"Trying to find position for a DOM position outside of the document\");return view.localPosFromDOM(node,offset)+view.posAtStart;}domAtPos(pos){let{i,off}=this.childCursor().findPos(pos,-1);for(;i<this.children.length-1;){let child=this.children[i];if(off<child.length||child instanceof LineView)break;i++;off=0;}return this.children[i].domAtPos(off);}coordsAt(pos,side){for(let off=this.length,i=this.children.length-1;;i--){let child=this.children[i],start=off-child.breakAfter-child.length;if(pos>start||pos==start&&child.type!=BlockType.WidgetBefore&&child.type!=BlockType.WidgetAfter&&(!i||side==2||this.children[i-1].breakAfter||this.children[i-1].type==BlockType.WidgetBefore&&side>-2))return child.coordsAt(pos-start,side);off=start;}}measureVisibleLineHeights(viewport){let result=[],{from,to}=viewport;let contentWidth=this.view.contentDOM.clientWidth;let isWider=contentWidth>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1;let widest=-1,ltr=this.view.textDirection==Direction.LTR;for(let pos=0,i=0;i<this.children.length;i++){let child=this.children[i],end=pos+child.length;if(end>to)break;if(pos>=from){let childRect=child.dom.getBoundingClientRect();result.push(childRect.height);if(isWider){let last=child.dom.lastChild;let rects=last?clientRectsFor(last):[];if(rects.length){let rect=rects[rects.length-1];let width=ltr?rect.right-childRect.left:childRect.right-rect.left;if(width>widest){widest=width;this.minWidth=contentWidth;this.minWidthFrom=pos;this.minWidthTo=end;}}}}pos=end+child.breakAfter;}return result;}textDirectionAt(pos){let{i}=this.childPos(pos,1);return getComputedStyle(this.children[i].dom).direction==\"rtl\"?Direction.RTL:Direction.LTR;}measureTextSize(){for(let child of this.children){if(child instanceof LineView){let measure=child.measureTextSize();if(measure)return measure;}}let dummy=document.createElement(\"div\"),lineHeight,charWidth,textHeight;dummy.className=\"cm-line\";dummy.style.width=\"99999px\";dummy.textContent=\"abc def ghi jkl mno pqr stu\";this.view.observer.ignore(()=>{this.dom.appendChild(dummy);let rect=clientRectsFor(dummy.firstChild)[0];lineHeight=dummy.getBoundingClientRect().height;charWidth=rect?rect.width/27:7;textHeight=rect?rect.height:lineHeight;dummy.remove();});return{lineHeight,charWidth,textHeight};}childCursor(pos=this.length){let i=this.children.length;if(i)pos-=this.children[--i].length;return new ChildCursor(this.children,pos,i);}computeBlockGapDeco(){let deco=[],vs=this.view.viewState;for(let pos=0,i=0;;i++){let next=i==vs.viewports.length?null:vs.viewports[i];let end=next?next.from-1:this.length;if(end>pos){let height=vs.lineBlockAt(end).bottom-vs.lineBlockAt(pos).top;deco.push(Decoration.replace({widget:new BlockGapWidget(height),block:true,inclusive:true,isBlockGap:true}).range(pos,end));}if(!next)break;pos=next.to+1;}return Decoration.set(deco);}updateDeco(){let allDeco=this.view.state.facet(decorations).map((d,i)=>{let dynamic=this.dynamicDecorationMap[i]=typeof d==\"function\";return dynamic?d(this.view):d;});for(let i=allDeco.length;i<allDeco.length+3;i++)this.dynamicDecorationMap[i]=false;return this.decorations=[...allDeco,this.compositionDeco,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];}scrollIntoView(target){let{range}=target;let rect=this.coordsAt(range.head,range.empty?range.assoc:range.head>range.anchor?-1:1),other;if(!rect)return;if(!range.empty&&(other=this.coordsAt(range.anchor,range.anchor>range.head?-1:1)))rect={left:Math.min(rect.left,other.left),top:Math.min(rect.top,other.top),right:Math.max(rect.right,other.right),bottom:Math.max(rect.bottom,other.bottom)};let margins=getScrollMargins(this.view);let targetRect={left:rect.left-margins.left,top:rect.top-margins.top,right:rect.right+margins.right,bottom:rect.bottom+margins.bottom};scrollRectIntoView(this.view.scrollDOM,targetRect,range.head<range.anchor?-1:1,target.x,target.y,target.xMargin,target.yMargin,this.view.textDirection==Direction.LTR);}constructor(view){super();this.view=view;this.compositionDeco=Decoration.none;this.decorations=[];this.dynamicDecorationMap=[];this.minWidth=0;this.minWidthFrom=0;this.minWidthTo=0;this.impreciseAnchor=null;this.impreciseHead=null;this.forceSelection=false;this.lastUpdate=Date.now();this.setDOM(view.contentDOM);this.children=[new LineView];this.children[0].setParent(this);this.updateDeco();this.updateInner([new ChangedRange(0,0,0,view.state.doc.length)],0);}};function betweenUneditable(pos){return pos.node.nodeType==1&&pos.node.firstChild&&(pos.offset==0||pos.node.childNodes[pos.offset-1].contentEditable==\"false\")&&(pos.offset==pos.node.childNodes.length||pos.node.childNodes[pos.offset].contentEditable==\"false\");}var BlockGapWidget=class extends WidgetType{toDOM(){let elt=document.createElement(\"div\");this.updateDOM(elt);return elt;}eq(other){return other.height==this.height;}updateDOM(elt){elt.style.height=this.height+\"px\";return true;}get estimatedHeight(){return this.height;}constructor(height){super();this.height=height;}};function compositionSurroundingNode(view){let sel=view.observer.selectionRange;let textNode=sel.focusNode&&nearbyTextNode(sel.focusNode,sel.focusOffset,0);if(!textNode)return null;let cView=view.docView.nearest(textNode);if(!cView)return null;if(cView instanceof LineView){let topNode=textNode;while(topNode.parentNode!=cView.dom)topNode=topNode.parentNode;let prev=topNode.previousSibling;while(prev&&!ContentView.get(prev))prev=prev.previousSibling;let pos=prev?ContentView.get(prev).posAtEnd:cView.posAtStart;return{from:pos,to:pos,node:topNode,text:textNode};}else{for(;;){let{parent}=cView;if(!parent)return null;if(parent instanceof LineView)break;cView=parent;}let from=cView.posAtStart;return{from,to:from+cView.length,node:cView.dom,text:textNode};}}function computeCompositionDeco(view,changes){let surrounding=compositionSurroundingNode(view);if(!surrounding)return Decoration.none;let{from,to,node,text:textNode}=surrounding;let newFrom=changes.mapPos(from,1),newTo=Math.max(newFrom,changes.mapPos(to,-1));let{state}=view,reader=new DOMReader([],state);if(node.nodeType==3)reader.readTextNode(node);else reader.readRange(node.firstChild,null);let{text}=reader;if(text.indexOf(LineBreakPlaceholder)>-1)return Decoration.none;if(newTo-newFrom<text.length){if(state.doc.sliceString(newFrom,Math.min(state.doc.length,newFrom+text.length))==text)newTo=newFrom+text.length;else if(state.doc.sliceString(Math.max(0,newTo-text.length),newTo)==text)newFrom=newTo-text.length;else return Decoration.none;}else if(state.doc.sliceString(newFrom,newTo)!=text){return Decoration.none;}let topView=ContentView.get(node);if(topView instanceof CompositionView)topView=topView.widget.topView;else if(topView)topView.parent=null;return Decoration.set(Decoration.replace({widget:new CompositionWidget(node,textNode,topView),inclusive:true}).range(newFrom,newTo));}var CompositionWidget=class extends WidgetType{eq(other){return this.top==other.top&&this.text==other.text;}toDOM(){return this.top;}ignoreEvent(){return false;}get customView(){return CompositionView;}constructor(top2,text,topView){super();this.top=top2;this.text=text;this.topView=topView;}};function nearbyTextNode(startNode,startOffset,side){if(side<=0)for(let node=startNode,offset=startOffset;;){if(node.nodeType==3)return node;if(node.nodeType==1&&offset>0){node=node.childNodes[offset-1];offset=maxOffset(node);}else{break;}}if(side>=0)for(let node=startNode,offset=startOffset;;){if(node.nodeType==3)return node;if(node.nodeType==1&&offset<node.childNodes.length&&side>=0){node=node.childNodes[offset];offset=0;}else{break;}}return null;}function nextToUneditable(node,offset){if(node.nodeType!=1)return 0;return(offset&&node.childNodes[offset-1].contentEditable==\"false\"?1:0)|(offset<node.childNodes.length&&node.childNodes[offset].contentEditable==\"false\"?2:0);}var DecorationComparator$1=class{compareRange(from,to){addRange(from,to,this.changes);}comparePoint(from,to){addRange(from,to,this.changes);}constructor(){this.changes=[];}};function findChangedDeco(a,b,diff){let comp=new DecorationComparator$1;RangeSet.compare(a,b,diff,comp);return comp.changes;}function inUneditable(node,inside2){for(let cur=node;cur&&cur!=inside2;cur=cur.assignedSlot||cur.parentNode){if(cur.nodeType==1&&cur.contentEditable==\"false\"){return true;}}return false;}function groupAt(state,pos,bias=1){let categorize=state.charCategorizer(pos);let line=state.doc.lineAt(pos),linePos=pos-line.from;if(line.length==0)return EditorSelection.cursor(pos);if(linePos==0)bias=1;else if(linePos==line.length)bias=-1;let from=linePos,to=linePos;if(bias<0)from=findClusterBreak(line.text,linePos,false);else to=findClusterBreak(line.text,linePos);let cat=categorize(line.text.slice(from,to));while(from>0){let prev=findClusterBreak(line.text,from,false);if(categorize(line.text.slice(prev,from))!=cat)break;from=prev;}while(to<line.length){let next=findClusterBreak(line.text,to);if(categorize(line.text.slice(to,next))!=cat)break;to=next;}return EditorSelection.range(from+line.from,to+line.from);}function getdx(x,rect){return rect.left>x?rect.left-x:Math.max(0,x-rect.right);}function getdy(y,rect){return rect.top>y?rect.top-y:Math.max(0,y-rect.bottom);}function yOverlap(a,b){return a.top<b.bottom-1&&a.bottom>b.top+1;}function upTop(rect,top2){return top2<rect.top?{top:top2,left:rect.left,right:rect.right,bottom:rect.bottom}:rect;}function upBot(rect,bottom){return bottom>rect.bottom?{top:rect.top,left:rect.left,right:rect.right,bottom}:rect;}function domPosAtCoords(parent,x,y){let closest,closestRect,closestX,closestY,closestOverlap=false;let above,below,aboveRect,belowRect;for(let child=parent.firstChild;child;child=child.nextSibling){let rects=clientRectsFor(child);for(let i=0;i<rects.length;i++){let rect=rects[i];if(closestRect&&yOverlap(closestRect,rect))rect=upTop(upBot(rect,closestRect.bottom),closestRect.top);let dx=getdx(x,rect),dy=getdy(y,rect);if(dx==0&&dy==0)return child.nodeType==3?domPosInText(child,x,y):domPosAtCoords(child,x,y);if(!closest||closestY>dy||closestY==dy&&closestX>dx){closest=child;closestRect=rect;closestX=dx;closestY=dy;let side=dy?y<rect.top?-1:1:dx?x<rect.left?-1:1:0;closestOverlap=!side||(side>0?i<rects.length-1:i>0);}if(dx==0){if(y>rect.bottom&&(!aboveRect||aboveRect.bottom<rect.bottom)){above=child;aboveRect=rect;}else if(y<rect.top&&(!belowRect||belowRect.top>rect.top)){below=child;belowRect=rect;}}else if(aboveRect&&yOverlap(aboveRect,rect)){aboveRect=upBot(aboveRect,rect.bottom);}else if(belowRect&&yOverlap(belowRect,rect)){belowRect=upTop(belowRect,rect.top);}}}if(aboveRect&&aboveRect.bottom>=y){closest=above;closestRect=aboveRect;}else if(belowRect&&belowRect.top<=y){closest=below;closestRect=belowRect;}if(!closest)return{node:parent,offset:0};let clipX=Math.max(closestRect.left,Math.min(closestRect.right,x));if(closest.nodeType==3)return domPosInText(closest,clipX,y);if(closestOverlap&&closest.contentEditable!=\"false\")return domPosAtCoords(closest,clipX,y);let offset=Array.prototype.indexOf.call(parent.childNodes,closest)+(x>=(closestRect.left+closestRect.right)/2?1:0);return{node:parent,offset};}function domPosInText(node,x,y){let len=node.nodeValue.length;let closestOffset=-1,closestDY=1e9,generalSide=0;for(let i=0;i<len;i++){let rects=textRange(node,i,i+1).getClientRects();for(let j=0;j<rects.length;j++){let rect=rects[j];if(rect.top==rect.bottom)continue;if(!generalSide)generalSide=x-rect.left;let dy=(rect.top>y?rect.top-y:y-rect.bottom)-1;if(rect.left-1<=x&&rect.right+1>=x&&dy<closestDY){let right=x>=(rect.left+rect.right)/2,after=right;if(browser.chrome||browser.gecko){let rectBefore=textRange(node,i).getBoundingClientRect();if(rectBefore.left==rect.right)after=!right;}if(dy<=0)return{node,offset:i+(after?1:0)};closestOffset=i+(after?1:0);closestDY=dy;}}}return{node,offset:closestOffset>-1?closestOffset:generalSide>0?node.nodeValue.length:0};}function posAtCoords(view,coords,precise,bias=-1){var _a,_b;let content=view.contentDOM.getBoundingClientRect(),docTop=content.top+view.viewState.paddingTop;let block,{docHeight}=view.viewState;let{x,y}=coords,yOffset=y-docTop;if(yOffset<0)return 0;if(yOffset>docHeight)return view.state.doc.length;for(let halfLine=view.defaultLineHeight/2,bounced=false;;){block=view.elementAtHeight(yOffset);if(block.type==BlockType.Text)break;for(;;){yOffset=bias>0?block.bottom+halfLine:block.top-halfLine;if(yOffset>=0&&yOffset<=docHeight)break;if(bounced)return precise?null:0;bounced=true;bias=-bias;}}y=docTop+yOffset;let lineStart=block.from;if(lineStart<view.viewport.from)return view.viewport.from==0?0:precise?null:posAtCoordsImprecise(view,content,block,x,y);if(lineStart>view.viewport.to)return view.viewport.to==view.state.doc.length?view.state.doc.length:precise?null:posAtCoordsImprecise(view,content,block,x,y);let doc2=view.dom.ownerDocument;let root=view.root.elementFromPoint?view.root:doc2;let element=root.elementFromPoint(x,y);if(element&&!view.contentDOM.contains(element))element=null;if(!element){x=Math.max(content.left+1,Math.min(content.right-1,x));element=root.elementFromPoint(x,y);if(element&&!view.contentDOM.contains(element))element=null;}let node,offset=-1;if(element&&((_a=view.docView.nearest(element))===null||_a===void 0?void 0:_a.isEditable)!=false){if(doc2.caretPositionFromPoint){let pos=doc2.caretPositionFromPoint(x,y);if(pos)({offsetNode:node,offset}=pos);}else if(doc2.caretRangeFromPoint){let range=doc2.caretRangeFromPoint(x,y);if(range){({startContainer:node,startOffset:offset}=range);if(!view.contentDOM.contains(node)||browser.safari&&isSuspiciousSafariCaretResult(node,offset,x)||browser.chrome&&isSuspiciousChromeCaretResult(node,offset,x))node=void 0;}}}if(!node||!view.docView.dom.contains(node)){let line=LineView.find(view.docView,lineStart);if(!line)return yOffset>block.top+block.height/2?block.to:block.from;({node,offset}=domPosAtCoords(line.dom,x,y));}let nearest=view.docView.nearest(node);if(!nearest)return null;if(nearest.isWidget&&((_b=nearest.dom)===null||_b===void 0?void 0:_b.nodeType)==1){let rect=nearest.dom.getBoundingClientRect();return coords.y<rect.top||coords.y<=rect.bottom&&coords.x<=(rect.left+rect.right)/2?nearest.posAtStart:nearest.posAtEnd;}else{return nearest.localPosFromDOM(node,offset)+nearest.posAtStart;}}function posAtCoordsImprecise(view,contentRect,block,x,y){let into=Math.round((x-contentRect.left)*view.defaultCharacterWidth);if(view.lineWrapping&&block.height>view.defaultLineHeight*1.5){let line=Math.floor((y-block.top)/view.defaultLineHeight);into+=line*view.viewState.heightOracle.lineLength;}let content=view.state.sliceDoc(block.from,block.to);return block.from+findColumn(content,into,view.state.tabSize);}function isSuspiciousSafariCaretResult(node,offset,x){let len;if(node.nodeType!=3||offset!=(len=node.nodeValue.length))return false;for(let next=node.nextSibling;next;next=next.nextSibling)if(next.nodeType!=1||next.nodeName!=\"BR\")return false;return textRange(node,len-1,len).getBoundingClientRect().left>x;}function isSuspiciousChromeCaretResult(node,offset,x){if(offset!=0)return false;for(let cur=node;;){let parent=cur.parentNode;if(!parent||parent.nodeType!=1||parent.firstChild!=cur)return false;if(parent.classList.contains(\"cm-line\"))break;cur=parent;}let rect=node.nodeType==1?node.getBoundingClientRect():textRange(node,0,Math.max(node.nodeValue.length,1)).getBoundingClientRect();return x-rect.left>5;}function blockAt(view,pos){let line=view.lineBlockAt(pos);if(Array.isArray(line.type))for(let l of line.type){if(l.to>pos||l.to==pos&&(l.to==line.to||l.type==BlockType.Text))return l;}return line;}function moveToLineBoundary(view,start,forward,includeWrap){let line=blockAt(view,start.head);let coords=!includeWrap||line.type!=BlockType.Text||!(view.lineWrapping||line.widgetLineBreaks)?null:view.coordsAtPos(start.assoc<0&&start.head>line.from?start.head-1:start.head);if(coords){let editorRect=view.dom.getBoundingClientRect();let direction=view.textDirectionAt(line.from);let pos=view.posAtCoords({x:forward==(direction==Direction.LTR)?editorRect.right-1:editorRect.left+1,y:(coords.top+coords.bottom)/2});if(pos!=null)return EditorSelection.cursor(pos,forward?-1:1);}return EditorSelection.cursor(forward?line.to:line.from,forward?-1:1);}function moveByChar(view,start,forward,by){let line=view.state.doc.lineAt(start.head),spans=view.bidiSpans(line);let direction=view.textDirectionAt(line.from);for(let cur=start,check=null;;){let next=moveVisually(line,spans,direction,cur,forward),char=movedOver;if(!next){if(line.number==(forward?view.state.doc.lines:1))return cur;char=\"\\n\";line=view.state.doc.line(line.number+(forward?1:-1));spans=view.bidiSpans(line);next=EditorSelection.cursor(forward?line.from:line.to);}if(!check){if(!by)return next;check=by(char);}else if(!check(char)){return cur;}cur=next;}}function byGroup(view,pos,start){let categorize=view.state.charCategorizer(pos);let cat=categorize(start);return next=>{let nextCat=categorize(next);if(cat==CharCategory.Space)cat=nextCat;return cat==nextCat;};}function moveVertically(view,start,forward,distance){let startPos=start.head,dir=forward?1:-1;if(startPos==(forward?view.state.doc.length:0))return EditorSelection.cursor(startPos,start.assoc);let goal=start.goalColumn,startY;let rect=view.contentDOM.getBoundingClientRect();let startCoords=view.coordsAtPos(startPos),docTop=view.documentTop;if(startCoords){if(goal==null)goal=startCoords.left-rect.left;startY=dir<0?startCoords.top:startCoords.bottom;}else{let line=view.viewState.lineBlockAt(startPos);if(goal==null)goal=Math.min(rect.right-rect.left,view.defaultCharacterWidth*(startPos-line.from));startY=(dir<0?line.top:line.bottom)+docTop;}let resolvedGoal=rect.left+goal;let dist=distance!==null&&distance!==void 0?distance:view.defaultLineHeight>>1;for(let extra=0;;extra+=10){let curY=startY+(dist+extra)*dir;let pos=posAtCoords(view,{x:resolvedGoal,y:curY},false,dir);if(curY<rect.top||curY>rect.bottom||(dir<0?pos<startPos:pos>startPos))return EditorSelection.cursor(pos,start.assoc,void 0,goal);}}function skipAtomicRanges(atoms,pos,bias){for(;;){let moved=0;for(let set of atoms){set.between(pos-1,pos+1,(from,to,value)=>{if(pos>from&&pos<to){let side=moved||bias||(pos-from<to-pos?-1:1);pos=side<0?from:to;moved=side;}});}if(!moved)return pos;}}function skipAtoms(view,oldPos,pos){let newPos=skipAtomicRanges(view.state.facet(atomicRanges).map(f=>f(view)),pos.from,oldPos.head>pos.from?-1:1);return newPos==pos.from?pos:EditorSelection.cursor(newPos,newPos<pos.from?1:-1);}var InputState=class{setSelectionOrigin(origin){this.lastSelectionOrigin=origin;this.lastSelectionTime=Date.now();}ensureHandlers(view,plugins){var _a;let handlers2;this.customHandlers=[];for(let plugin2 of plugins)if(handlers2=(_a=plugin2.update(view).spec)===null||_a===void 0?void 0:_a.domEventHandlers){this.customHandlers.push({plugin:plugin2.value,handlers:handlers2});for(let type in handlers2)if(this.registeredEvents.indexOf(type)<0&&type!=\"scroll\"){this.registeredEvents.push(type);view.contentDOM.addEventListener(type,event=>{if(!eventBelongsToEditor(view,event))return;if(this.runCustomHandlers(type,view,event))event.preventDefault();});}}}runCustomHandlers(type,view,event){for(let set of this.customHandlers){let handler=set.handlers[type];if(handler){try{if(handler.call(set.plugin,event,view)||event.defaultPrevented)return true;}catch(e){logException(view.state,e);}}}return false;}runScrollHandlers(view,event){this.lastScrollTop=view.scrollDOM.scrollTop;this.lastScrollLeft=view.scrollDOM.scrollLeft;for(let set of this.customHandlers){let handler=set.handlers.scroll;if(handler){try{handler.call(set.plugin,event,view);}catch(e){logException(view.state,e);}}}}keydown(view,event){this.lastKeyCode=event.keyCode;this.lastKeyTime=Date.now();if(event.keyCode==9&&Date.now()<this.lastEscPress+2e3)return true;if(event.keyCode!=27&&modifierCodes.indexOf(event.keyCode)<0)view.inputState.lastEscPress=0;if(browser.android&&browser.chrome&&!event.synthetic&&(event.keyCode==13||event.keyCode==8)){view.observer.delayAndroidKey(event.key,event.keyCode);return true;}let pending;if(browser.ios&&!event.synthetic&&!event.altKey&&!event.metaKey&&((pending=PendingKeys.find(key=>key.keyCode==event.keyCode))&&!event.ctrlKey||EmacsyPendingKeys.indexOf(event.key)>-1&&event.ctrlKey&&!event.shiftKey)){this.pendingIOSKey=pending||event;setTimeout(()=>this.flushIOSKey(view),250);return true;}return false;}flushIOSKey(view){let key=this.pendingIOSKey;if(!key)return false;this.pendingIOSKey=void 0;return dispatchKey(view.contentDOM,key.key,key.keyCode);}ignoreDuringComposition(event){if(!/^key/.test(event.type))return false;if(this.composing>0)return true;if(browser.safari&&!browser.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100){this.compositionPendingKey=false;return true;}return false;}mustFlushObserver(event){return event.type==\"keydown\"&&event.keyCode!=229;}startMouseSelection(mouseSelection){if(this.mouseSelection)this.mouseSelection.destroy();this.mouseSelection=mouseSelection;}update(update){if(this.mouseSelection)this.mouseSelection.update(update);if(update.transactions.length)this.lastKeyCode=this.lastSelectionTime=0;}destroy(){if(this.mouseSelection)this.mouseSelection.destroy();}constructor(view){this.lastKeyCode=0;this.lastKeyTime=0;this.lastTouchTime=0;this.lastFocusTime=0;this.lastScrollTop=0;this.lastScrollLeft=0;this.chromeScrollHack=-1;this.pendingIOSKey=void 0;this.lastSelectionOrigin=null;this.lastSelectionTime=0;this.lastEscPress=0;this.lastContextMenu=0;this.scrollHandlers=[];this.registeredEvents=[];this.customHandlers=[];this.composing=-1;this.compositionFirstChange=null;this.compositionEndedAt=0;this.compositionPendingKey=false;this.compositionPendingChange=false;this.mouseSelection=null;let handleEvent=(handler,event)=>{if(this.ignoreDuringComposition(event))return;if(event.type==\"keydown\"&&this.keydown(view,event))return;if(this.mustFlushObserver(event))view.observer.forceFlush();if(this.runCustomHandlers(event.type,view,event))event.preventDefault();else handler(view,event);};for(let type in handlers){let handler=handlers[type];view.contentDOM.addEventListener(type,event=>{if(eventBelongsToEditor(view,event))handleEvent(handler,event);},handlerOptions[type]);this.registeredEvents.push(type);}view.scrollDOM.addEventListener(\"mousedown\",event=>{if(event.target==view.scrollDOM&&event.clientY>view.contentDOM.getBoundingClientRect().bottom){handleEvent(handlers.mousedown,event);if(!event.defaultPrevented&&event.button==2){let start=view.contentDOM.style.minHeight;view.contentDOM.style.minHeight=\"100%\";setTimeout(()=>view.contentDOM.style.minHeight=start,200);}}});view.scrollDOM.addEventListener(\"drop\",event=>{if(event.target==view.scrollDOM&&event.clientY>view.contentDOM.getBoundingClientRect().bottom)handleEvent(handlers.drop,event);});if(browser.chrome&&browser.chrome_version==102){view.scrollDOM.addEventListener(\"wheel\",()=>{if(this.chromeScrollHack<0)view.contentDOM.style.pointerEvents=\"none\";else window.clearTimeout(this.chromeScrollHack);this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1;view.contentDOM.style.pointerEvents=\"\";},100);},{passive:true});}this.notifiedFocused=view.hasFocus;if(browser.safari)view.contentDOM.addEventListener(\"input\",()=>null);}};var PendingKeys=[{key:\"Backspace\",keyCode:8,inputType:\"deleteContentBackward\"},{key:\"Enter\",keyCode:13,inputType:\"insertParagraph\"},{key:\"Delete\",keyCode:46,inputType:\"deleteContentForward\"}];var EmacsyPendingKeys=\"dthko\";var modifierCodes=[16,17,18,20,91,92,224,225];var dragScrollMargin=6;function dragScrollSpeed(dist){return Math.max(0,dist)*.7+8;}var MouseSelection=class{start(event){if(this.dragging===false){event.preventDefault();this.select(event);}}move(event){var _a;if(event.buttons==0)return this.destroy();if(this.dragging!==false)return;this.select(this.lastEvent=event);let sx=0,sy=0;let rect=((_a=this.scrollParent)===null||_a===void 0?void 0:_a.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight};let margins=getScrollMargins(this.view);if(event.clientX-margins.left<=rect.left+dragScrollMargin)sx=-dragScrollSpeed(rect.left-event.clientX);else if(event.clientX+margins.right>=rect.right-dragScrollMargin)sx=dragScrollSpeed(event.clientX-rect.right);if(event.clientY-margins.top<=rect.top+dragScrollMargin)sy=-dragScrollSpeed(rect.top-event.clientY);else if(event.clientY+margins.bottom>=rect.bottom-dragScrollMargin)sy=dragScrollSpeed(event.clientY-rect.bottom);this.setScrollSpeed(sx,sy);}up(event){if(this.dragging==null)this.select(this.lastEvent);if(!this.dragging)event.preventDefault();this.destroy();}destroy(){this.setScrollSpeed(0,0);let doc2=this.view.contentDOM.ownerDocument;doc2.removeEventListener(\"mousemove\",this.move);doc2.removeEventListener(\"mouseup\",this.up);this.view.inputState.mouseSelection=null;}setScrollSpeed(sx,sy){this.scrollSpeed={x:sx,y:sy};if(sx||sy){if(this.scrolling<0)this.scrolling=setInterval(()=>this.scroll(),50);}else if(this.scrolling>-1){clearInterval(this.scrolling);this.scrolling=-1;}}scroll(){if(this.scrollParent){this.scrollParent.scrollLeft+=this.scrollSpeed.x;this.scrollParent.scrollTop+=this.scrollSpeed.y;}else{this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y);}if(this.dragging===false)this.select(this.lastEvent);}skipAtoms(sel){let ranges=null;for(let i=0;i<sel.ranges.length;i++){let range=sel.ranges[i],updated=null;if(range.empty){let pos=skipAtomicRanges(this.atoms,range.from,0);if(pos!=range.from)updated=EditorSelection.cursor(pos,-1);}else{let from=skipAtomicRanges(this.atoms,range.from,-1);let to=skipAtomicRanges(this.atoms,range.to,1);if(from!=range.from||to!=range.to)updated=EditorSelection.range(range.from==range.anchor?from:to,range.from==range.head?from:to);}if(updated){if(!ranges)ranges=sel.ranges.slice();ranges[i]=updated;}}return ranges?EditorSelection.create(ranges,sel.mainIndex):sel;}select(event){let{view}=this,selection=this.skipAtoms(this.style.get(event,this.extend,this.multiple));if(this.mustSelect||!selection.eq(view.state.selection)||selection.main.assoc!=view.state.selection.main.assoc)this.view.dispatch({selection,userEvent:\"select.pointer\"});this.mustSelect=false;}update(update){if(update.docChanged&&this.dragging)this.dragging=this.dragging.map(update.changes);if(this.style.update(update))setTimeout(()=>this.select(this.lastEvent),20);}constructor(view,startEvent,style,mustSelect){this.view=view;this.style=style;this.mustSelect=mustSelect;this.scrollSpeed={x:0,y:0};this.scrolling=-1;this.lastEvent=startEvent;this.scrollParent=scrollableParent(view.contentDOM);this.atoms=view.state.facet(atomicRanges).map(f=>f(view));let doc2=view.contentDOM.ownerDocument;doc2.addEventListener(\"mousemove\",this.move=this.move.bind(this));doc2.addEventListener(\"mouseup\",this.up=this.up.bind(this));this.extend=startEvent.shiftKey;this.multiple=view.state.facet(EditorState.allowMultipleSelections)&&addsSelectionRange(view,startEvent);this.dragMove=dragMovesSelection(view,startEvent);this.dragging=isInPrimarySelection(view,startEvent)&&getClickType(startEvent)==1?null:false;}};function addsSelectionRange(view,event){let facet=view.state.facet(clickAddsSelectionRange);return facet.length?facet[0](event):browser.mac?event.metaKey:event.ctrlKey;}function dragMovesSelection(view,event){let facet=view.state.facet(dragMovesSelection$1);return facet.length?facet[0](event):browser.mac?!event.altKey:!event.ctrlKey;}function isInPrimarySelection(view,event){let{main}=view.state.selection;if(main.empty)return false;let sel=getSelection(view.root);if(!sel||sel.rangeCount==0)return true;let rects=sel.getRangeAt(0).getClientRects();for(let i=0;i<rects.length;i++){let rect=rects[i];if(rect.left<=event.clientX&&rect.right>=event.clientX&&rect.top<=event.clientY&&rect.bottom>=event.clientY)return true;}return false;}function eventBelongsToEditor(view,event){if(!event.bubbles)return true;if(event.defaultPrevented)return false;for(let node=event.target,cView;node!=view.contentDOM;node=node.parentNode)if(!node||node.nodeType==11||(cView=ContentView.get(node))&&cView.ignoreEvent(event))return false;return true;}var handlers=/* @__PURE__ */Object.create(null);var handlerOptions=/* @__PURE__ */Object.create(null);var brokenClipboardAPI=browser.ie&&browser.ie_version<15||browser.ios&&browser.webkit_version<604;function capturePaste(view){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement(\"textarea\"));target.style.cssText=\"position: fixed; left: -10000px; top: 10px\";target.focus();setTimeout(()=>{view.focus();target.remove();doPaste(view,target.value);},50);}function doPaste(view,input){let{state}=view,changes,i=1,text=state.toText(input);let byLine=text.lines==state.selection.ranges.length;let linewise=lastLinewiseCopy!=null&&state.selection.ranges.every(r=>r.empty)&&lastLinewiseCopy==text.toString();if(linewise){let lastLine=-1;changes=state.changeByRange(range=>{let line=state.doc.lineAt(range.from);if(line.from==lastLine)return{range};lastLine=line.from;let insert=state.toText((byLine?text.line(i++).text:input)+state.lineBreak);return{changes:{from:line.from,insert},range:EditorSelection.cursor(range.from+insert.length)};});}else if(byLine){changes=state.changeByRange(range=>{let line=text.line(i++);return{changes:{from:range.from,to:range.to,insert:line.text},range:EditorSelection.cursor(range.from+line.length)};});}else{changes=state.replaceSelection(text);}view.dispatch(changes,{userEvent:\"input.paste\",scrollIntoView:true});}handlers.keydown=(view,event)=>{view.inputState.setSelectionOrigin(\"select\");if(event.keyCode==27)view.inputState.lastEscPress=Date.now();};handlers.touchstart=(view,e)=>{view.inputState.lastTouchTime=Date.now();view.inputState.setSelectionOrigin(\"select.pointer\");};handlers.touchmove=view=>{view.inputState.setSelectionOrigin(\"select.pointer\");};handlerOptions.touchstart=handlerOptions.touchmove={passive:true};handlers.mousedown=(view,event)=>{view.observer.flush();if(view.inputState.lastTouchTime>Date.now()-2e3)return;let style=null;for(let makeStyle of view.state.facet(mouseSelectionStyle)){style=makeStyle(view,event);if(style)break;}if(!style&&event.button==0)style=basicMouseSelection(view,event);if(style){let mustFocus=view.root.activeElement!=view.contentDOM;view.inputState.startMouseSelection(new MouseSelection(view,event,style,mustFocus));if(mustFocus)view.observer.ignore(()=>focusPreventScroll(view.contentDOM));if(view.inputState.mouseSelection)view.inputState.mouseSelection.start(event);}};function rangeForClick(view,pos,bias,type){if(type==1){return EditorSelection.cursor(pos,bias);}else if(type==2){return groupAt(view.state,pos,bias);}else{let visual=LineView.find(view.docView,pos),line=view.state.doc.lineAt(visual?visual.posAtEnd:pos);let from=visual?visual.posAtStart:line.from,to=visual?visual.posAtEnd:line.to;if(to<view.state.doc.length&&to==line.to)to++;return EditorSelection.range(from,to);}}var insideY=(y,rect)=>y>=rect.top&&y<=rect.bottom;var inside=(x,y,rect)=>insideY(y,rect)&&x>=rect.left&&x<=rect.right;function findPositionSide(view,pos,x,y){let line=LineView.find(view.docView,pos);if(!line)return 1;let off=pos-line.posAtStart;if(off==0)return 1;if(off==line.length)return-1;let before=line.coordsAt(off,-1);if(before&&inside(x,y,before))return-1;let after=line.coordsAt(off,1);if(after&&inside(x,y,after))return 1;return before&&insideY(y,before)?-1:1;}function queryPos(view,event){let pos=view.posAtCoords({x:event.clientX,y:event.clientY},false);return{pos,bias:findPositionSide(view,pos,event.clientX,event.clientY)};}var BadMouseDetail=browser.ie&&browser.ie_version<=11;var lastMouseDown=null;var lastMouseDownCount=0;var lastMouseDownTime=0;function getClickType(event){if(!BadMouseDetail)return event.detail;let last=lastMouseDown,lastTime=lastMouseDownTime;lastMouseDown=event;lastMouseDownTime=Date.now();return lastMouseDownCount=!last||lastTime>Date.now()-400&&Math.abs(last.clientX-event.clientX)<2&&Math.abs(last.clientY-event.clientY)<2?(lastMouseDownCount+1)%3:1;}function basicMouseSelection(view,event){let start=queryPos(view,event),type=getClickType(event);let startSel=view.state.selection;return{update(update){if(update.docChanged){start.pos=update.changes.mapPos(start.pos);startSel=startSel.map(update.changes);}},get(event2,extend,multiple){let cur=queryPos(view,event2),removed;let range=rangeForClick(view,cur.pos,cur.bias,type);if(start.pos!=cur.pos&&!extend){let startRange=rangeForClick(view,start.pos,start.bias,type);let from=Math.min(startRange.from,range.from),to=Math.max(startRange.to,range.to);range=from<range.from?EditorSelection.range(from,to):EditorSelection.range(to,from);}if(extend)return startSel.replaceRange(startSel.main.extend(range.from,range.to));else if(multiple&&type==1&&startSel.ranges.length>1&&(removed=removeRangeAround(startSel,cur.pos)))return removed;else if(multiple)return startSel.addRange(range);else return EditorSelection.create([range]);}};}function removeRangeAround(sel,pos){for(let i=0;i<sel.ranges.length;i++){let{from,to}=sel.ranges[i];if(from<=pos&&to>=pos)return EditorSelection.create(sel.ranges.slice(0,i).concat(sel.ranges.slice(i+1)),sel.mainIndex==i?0:sel.mainIndex-(sel.mainIndex>i?1:0));}return null;}handlers.dragstart=(view,event)=>{let{selection:{main}}=view.state;let{mouseSelection}=view.inputState;if(mouseSelection)mouseSelection.dragging=main;if(event.dataTransfer){event.dataTransfer.setData(\"Text\",view.state.sliceDoc(main.from,main.to));event.dataTransfer.effectAllowed=\"copyMove\";}};function dropText(view,event,text,direct){if(!text)return;let dropPos=view.posAtCoords({x:event.clientX,y:event.clientY},false);event.preventDefault();let{mouseSelection}=view.inputState;let del=direct&&mouseSelection&&mouseSelection.dragging&&mouseSelection.dragMove?{from:mouseSelection.dragging.from,to:mouseSelection.dragging.to}:null;let ins={from:dropPos,insert:text};let changes=view.state.changes(del?[del,ins]:ins);view.focus();view.dispatch({changes,selection:{anchor:changes.mapPos(dropPos,-1),head:changes.mapPos(dropPos,1)},userEvent:del?\"move.drop\":\"input.drop\"});}handlers.drop=(view,event)=>{if(!event.dataTransfer)return;if(view.state.readOnly)return event.preventDefault();let files=event.dataTransfer.files;if(files&&files.length){event.preventDefault();let text=Array(files.length),read=0;let finishFile=()=>{if(++read==files.length)dropText(view,event,text.filter(s=>s!=null).join(view.state.lineBreak),false);};for(let i=0;i<files.length;i++){let reader=new FileReader;reader.onerror=finishFile;reader.onload=()=>{if(!/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(reader.result))text[i]=reader.result;finishFile();};reader.readAsText(files[i]);}}else{dropText(view,event,event.dataTransfer.getData(\"Text\"),true);}};handlers.paste=(view,event)=>{if(view.state.readOnly)return event.preventDefault();view.observer.flush();let data=brokenClipboardAPI?null:event.clipboardData;if(data){doPaste(view,data.getData(\"text/plain\")||data.getData(\"text/uri-text\"));event.preventDefault();}else{capturePaste(view);}};function captureCopy(view,text){let parent=view.dom.parentNode;if(!parent)return;let target=parent.appendChild(document.createElement(\"textarea\"));target.style.cssText=\"position: fixed; left: -10000px; top: 10px\";target.value=text;target.focus();target.selectionEnd=text.length;target.selectionStart=0;setTimeout(()=>{target.remove();view.focus();},50);}function copiedRange(state){let content=[],ranges=[],linewise=false;for(let range of state.selection.ranges)if(!range.empty){content.push(state.sliceDoc(range.from,range.to));ranges.push(range);}if(!content.length){let upto=-1;for(let{from}of state.selection.ranges){let line=state.doc.lineAt(from);if(line.number>upto){content.push(line.text);ranges.push({from:line.from,to:Math.min(state.doc.length,line.to+1)});}upto=line.number;}linewise=true;}return{text:content.join(state.lineBreak),ranges,linewise};}var lastLinewiseCopy=null;handlers.copy=handlers.cut=(view,event)=>{let{text,ranges,linewise}=copiedRange(view.state);if(!text&&!linewise)return;lastLinewiseCopy=linewise?text:null;let data=brokenClipboardAPI?null:event.clipboardData;if(data){event.preventDefault();data.clearData();data.setData(\"text/plain\",text);}else{captureCopy(view,text);}if(event.type==\"cut\"&&!view.state.readOnly)view.dispatch({changes:ranges,scrollIntoView:true,userEvent:\"delete.cut\"});};var isFocusChange=/* @__PURE__ */Annotation.define();function focusChangeTransaction(state,focus){let effects=[];for(let getEffect of state.facet(focusChangeEffect)){let effect=getEffect(state,focus);if(effect)effects.push(effect);}return effects?state.update({effects,annotations:isFocusChange.of(true)}):null;}function updateForFocusChange(view){setTimeout(()=>{let focus=view.hasFocus;if(focus!=view.inputState.notifiedFocused){let tr=focusChangeTransaction(view.state,focus);if(tr)view.dispatch(tr);else view.update([]);}},10);}handlers.focus=view=>{view.inputState.lastFocusTime=Date.now();if(!view.scrollDOM.scrollTop&&(view.inputState.lastScrollTop||view.inputState.lastScrollLeft)){view.scrollDOM.scrollTop=view.inputState.lastScrollTop;view.scrollDOM.scrollLeft=view.inputState.lastScrollLeft;}updateForFocusChange(view);};handlers.blur=view=>{view.observer.clearSelectionRange();updateForFocusChange(view);};handlers.compositionstart=handlers.compositionupdate=view=>{if(view.inputState.compositionFirstChange==null)view.inputState.compositionFirstChange=true;if(view.inputState.composing<0){view.inputState.composing=0;}};handlers.compositionend=view=>{view.inputState.composing=-1;view.inputState.compositionEndedAt=Date.now();view.inputState.compositionPendingKey=true;view.inputState.compositionPendingChange=view.observer.pendingRecords().length>0;view.inputState.compositionFirstChange=null;if(browser.chrome&&browser.android){view.observer.flushSoon();}else if(view.inputState.compositionPendingChange){Promise.resolve().then(()=>view.observer.flush());}else{setTimeout(()=>{if(view.inputState.composing<0&&view.docView.compositionDeco.size)view.update([]);},50);}};handlers.contextmenu=view=>{view.inputState.lastContextMenu=Date.now();};handlers.beforeinput=(view,event)=>{var _a;let pending;if(browser.chrome&&browser.android&&(pending=PendingKeys.find(key=>key.inputType==event.inputType))){view.observer.delayAndroidKey(pending.key,pending.keyCode);if(pending.key==\"Backspace\"||pending.key==\"Delete\"){let startViewHeight=((_a=window.visualViewport)===null||_a===void 0?void 0:_a.height)||0;setTimeout(()=>{var _a2;if((((_a2=window.visualViewport)===null||_a2===void 0?void 0:_a2.height)||0)>startViewHeight+10&&view.hasFocus){view.contentDOM.blur();view.focus();}},100);}}};var wrappingWhiteSpace=[\"pre-wrap\",\"normal\",\"pre-line\",\"break-spaces\"];var HeightOracle=class{heightForGap(from,to){let lines=this.doc.lineAt(to).number-this.doc.lineAt(from).number+1;if(this.lineWrapping)lines+=Math.max(0,Math.ceil((to-from-lines*this.lineLength*.5)/this.lineLength));return this.lineHeight*lines;}heightForLine(length){if(!this.lineWrapping)return this.lineHeight;let lines=1+Math.max(0,Math.ceil((length-this.lineLength)/(this.lineLength-5)));return lines*this.lineHeight;}setDoc(doc2){this.doc=doc2;return this;}mustRefreshForWrapping(whiteSpace){return wrappingWhiteSpace.indexOf(whiteSpace)>-1!=this.lineWrapping;}mustRefreshForHeights(lineHeights){let newHeight=false;for(let i=0;i<lineHeights.length;i++){let h=lineHeights[i];if(h<0){i++;}else if(!this.heightSamples[Math.floor(h*10)]){newHeight=true;this.heightSamples[Math.floor(h*10)]=true;}}return newHeight;}refresh(whiteSpace,lineHeight,charWidth,textHeight,lineLength,knownHeights){let lineWrapping=wrappingWhiteSpace.indexOf(whiteSpace)>-1;let changed=Math.round(lineHeight)!=Math.round(this.lineHeight)||this.lineWrapping!=lineWrapping;this.lineWrapping=lineWrapping;this.lineHeight=lineHeight;this.charWidth=charWidth;this.textHeight=textHeight;this.lineLength=lineLength;if(changed){this.heightSamples={};for(let i=0;i<knownHeights.length;i++){let h=knownHeights[i];if(h<0)i++;else this.heightSamples[Math.floor(h*10)]=true;}}return changed;}constructor(lineWrapping){this.lineWrapping=lineWrapping;this.doc=Text.empty;this.heightSamples={};this.lineHeight=14;this.charWidth=7;this.textHeight=14;this.lineLength=30;this.heightChanged=false;}};var MeasuredHeights=class{get more(){return this.index<this.heights.length;}constructor(from,heights){this.from=from;this.heights=heights;this.index=0;}};var BlockInfo=class{/**\n  The type of element this is. When querying lines, this may be\n  an array of all the blocks that make up the line.\n  */get type(){return typeof this._content==\"number\"?BlockType.Text:Array.isArray(this._content)?this._content:this._content.type;}/**\n  The end of the element as a document position.\n  */get to(){return this.from+this.length;}/**\n  The bottom position of the element.\n  */get bottom(){return this.top+this.height;}/**\n  If this is a widget block, this will return the widget\n  associated with it.\n  */get widget(){return this._content instanceof PointDecoration?this._content.widget:null;}/**\n  If this is a textblock, this holds the number of line breaks\n  that appear in widgets inside the block.\n  */get widgetLineBreaks(){return typeof this._content==\"number\"?this._content:0;}/**\n  @internal\n  */join(other){let content=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(other._content)?other._content:[other]);return new BlockInfo(this.from,this.length+other.length,this.top,this.height+other.height,content);}/**\n  @internal\n  */constructor(from,length,top2,height,_content){this.from=from;this.length=length;this.top=top2;this.height=height;this._content=_content;}};var QueryType=/* @__PURE__ */function(QueryType2){QueryType2[QueryType2[\"ByPos\"]=0]=\"ByPos\";QueryType2[QueryType2[\"ByHeight\"]=1]=\"ByHeight\";QueryType2[QueryType2[\"ByPosNoHeight\"]=2]=\"ByPosNoHeight\";return QueryType2;}(QueryType||(QueryType={}));var Epsilon=.001;var HeightMap=class{get outdated(){return(this.flags&2)>0;}set outdated(value){this.flags=(value?2:0)|this.flags&~2;}setHeight(oracle,height){if(this.height!=height){if(Math.abs(this.height-height)>Epsilon)oracle.heightChanged=true;this.height=height;}}// Base case is to replace a leaf node, which simply builds a tree\n// from the new nodes and returns that (HeightMapBranch and\n// HeightMapGap override this to actually use from/to)\nreplace(_from,_to,nodes){return HeightMap.of(nodes);}// Again, these are base cases, and are overridden for branch and gap nodes.\ndecomposeLeft(_to,result){result.push(this);}decomposeRight(_from,result){result.push(this);}applyChanges(decorations2,oldDoc,oracle,changes){let me=this,doc2=oracle.doc;for(let i=changes.length-1;i>=0;i--){let{fromA,toA,fromB,toB}=changes[i];let start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle.setDoc(oldDoc),0,0);let end=start.to>=toA?start:me.lineAt(toA,QueryType.ByPosNoHeight,oracle,0,0);toB+=end.to-toA;toA=end.to;while(i>0&&start.from<=changes[i-1].toA){fromA=changes[i-1].fromA;fromB=changes[i-1].fromB;i--;if(fromA<start.from)start=me.lineAt(fromA,QueryType.ByPosNoHeight,oracle,0,0);}fromB+=start.from-fromA;fromA=start.from;let nodes=NodeBuilder.build(oracle.setDoc(doc2),decorations2,fromB,toB);me=me.replace(fromA,toA,nodes);}return me.updateHeight(oracle,0);}static empty(){return new HeightMapText(0,0);}// nodes uses null values to indicate the position of line breaks.\n// There are never line breaks at the start or end of the array, or\n// two line breaks next to each other, and the array isn't allowed\n// to be empty (same restrictions as return value from the builder).\nstatic of(nodes){if(nodes.length==1)return nodes[0];let i=0,j=nodes.length,before=0,after=0;for(;;){if(i==j){if(before>after*2){let split=nodes[i-1];if(split.break)nodes.splice(--i,1,split.left,null,split.right);else nodes.splice(--i,1,split.left,split.right);j+=1+split.break;before-=split.size;}else if(after>before*2){let split=nodes[j];if(split.break)nodes.splice(j,1,split.left,null,split.right);else nodes.splice(j,1,split.left,split.right);j+=2+split.break;after-=split.size;}else{break;}}else if(before<after){let next=nodes[i++];if(next)before+=next.size;}else{let next=nodes[--j];if(next)after+=next.size;}}let brk=0;if(nodes[i-1]==null){brk=1;i--;}else if(nodes[i]==null){brk=1;j++;}return new HeightMapBranch(HeightMap.of(nodes.slice(0,i)),brk,HeightMap.of(nodes.slice(j)));}constructor(length,height,flags=2){this.length=length;this.height=height;this.flags=flags;}};HeightMap.prototype.size=1;var HeightMapBlock=class extends HeightMap{blockAt(_height,_oracle,top2,offset){return new BlockInfo(offset,this.length,top2,this.height,this.deco||0);}lineAt(_value,_type,oracle,top2,offset){return this.blockAt(0,oracle,top2,offset);}forEachLine(from,to,oracle,top2,offset,f){if(from<=offset+this.length&&to>=offset)f(this.blockAt(0,oracle,top2,offset));}updateHeight(oracle,offset=0,_force=false,measured){if(measured&&measured.from<=offset&&measured.more)this.setHeight(oracle,measured.heights[measured.index++]);this.outdated=false;return this;}toString(){return`block(${this.length})`;}constructor(length,height,deco){super(length,height);this.deco=deco;}};var HeightMapText=class extends HeightMapBlock{blockAt(_height,_oracle,top2,offset){return new BlockInfo(offset,this.length,top2,this.height,this.breaks);}replace(_from,_to,nodes){let node=nodes[0];if(nodes.length==1&&(node instanceof HeightMapText||node instanceof HeightMapGap&&node.flags&4)&&Math.abs(this.length-node.length)<10){if(node instanceof HeightMapGap)node=new HeightMapText(node.length,this.height);else node.height=this.height;if(!this.outdated)node.outdated=false;return node;}else{return HeightMap.of(nodes);}}updateHeight(oracle,offset=0,force=false,measured){if(measured&&measured.from<=offset&&measured.more)this.setHeight(oracle,measured.heights[measured.index++]);else if(force||this.outdated)this.setHeight(oracle,Math.max(this.widgetHeight,oracle.heightForLine(this.length-this.collapsed))+this.breaks*oracle.lineHeight);this.outdated=false;return this;}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:\"\"}${this.widgetHeight?\":\"+this.widgetHeight:\"\"})`;}constructor(length,height){super(length,height,null);this.collapsed=0;this.widgetHeight=0;this.breaks=0;}};var HeightMapGap=class extends HeightMap{heightMetrics(oracle,offset){let firstLine=oracle.doc.lineAt(offset).number,lastLine=oracle.doc.lineAt(offset+this.length).number;let lines=lastLine-firstLine+1;let perLine,perChar=0;if(oracle.lineWrapping){let totalPerLine=Math.min(this.height,oracle.lineHeight*lines);perLine=totalPerLine/lines;if(this.length>lines+1)perChar=(this.height-totalPerLine)/(this.length-lines-1);}else{perLine=this.height/lines;}return{firstLine,lastLine,perLine,perChar};}blockAt(height,oracle,top2,offset){let{firstLine,lastLine,perLine,perChar}=this.heightMetrics(oracle,offset);if(oracle.lineWrapping){let guess=offset+Math.round(Math.max(0,Math.min(1,(height-top2)/this.height))*this.length);let line=oracle.doc.lineAt(guess),lineHeight=perLine+line.length*perChar;let lineTop=Math.max(top2,height-lineHeight/2);return new BlockInfo(line.from,line.length,lineTop,lineHeight,0);}else{let line=Math.max(0,Math.min(lastLine-firstLine,Math.floor((height-top2)/perLine)));let{from,length}=oracle.doc.line(firstLine+line);return new BlockInfo(from,length,top2+perLine*line,perLine,0);}}lineAt(value,type,oracle,top2,offset){if(type==QueryType.ByHeight)return this.blockAt(value,oracle,top2,offset);if(type==QueryType.ByPosNoHeight){let{from,to}=oracle.doc.lineAt(value);return new BlockInfo(from,to-from,0,0,0);}let{firstLine,perLine,perChar}=this.heightMetrics(oracle,offset);let line=oracle.doc.lineAt(value),lineHeight=perLine+line.length*perChar;let linesAbove=line.number-firstLine;let lineTop=top2+perLine*linesAbove+perChar*(line.from-offset-linesAbove);return new BlockInfo(line.from,line.length,Math.max(top2,Math.min(lineTop,top2+this.height-lineHeight)),lineHeight,0);}forEachLine(from,to,oracle,top2,offset,f){from=Math.max(from,offset);to=Math.min(to,offset+this.length);let{firstLine,perLine,perChar}=this.heightMetrics(oracle,offset);for(let pos=from,lineTop=top2;pos<=to;){let line=oracle.doc.lineAt(pos);if(pos==from){let linesAbove=line.number-firstLine;lineTop+=perLine*linesAbove+perChar*(from-offset-linesAbove);}let lineHeight=perLine+perChar*line.length;f(new BlockInfo(line.from,line.length,lineTop,lineHeight,0));lineTop+=lineHeight;pos=line.to+1;}}replace(from,to,nodes){let after=this.length-to;if(after>0){let last=nodes[nodes.length-1];if(last instanceof HeightMapGap)nodes[nodes.length-1]=new HeightMapGap(last.length+after);else nodes.push(null,new HeightMapGap(after-1));}if(from>0){let first=nodes[0];if(first instanceof HeightMapGap)nodes[0]=new HeightMapGap(from+first.length);else nodes.unshift(new HeightMapGap(from-1),null);}return HeightMap.of(nodes);}decomposeLeft(to,result){result.push(new HeightMapGap(to-1),null);}decomposeRight(from,result){result.push(null,new HeightMapGap(this.length-from-1));}updateHeight(oracle,offset=0,force=false,measured){let end=offset+this.length;if(measured&&measured.from<=offset+this.length&&measured.more){let nodes=[],pos=Math.max(offset,measured.from),singleHeight=-1;if(measured.from>offset)nodes.push(new HeightMapGap(measured.from-offset-1).updateHeight(oracle,offset));while(pos<=end&&measured.more){let len=oracle.doc.lineAt(pos).length;if(nodes.length)nodes.push(null);let height=measured.heights[measured.index++];if(singleHeight==-1)singleHeight=height;else if(Math.abs(height-singleHeight)>=Epsilon)singleHeight=-2;let line=new HeightMapText(len,height);line.outdated=false;nodes.push(line);pos+=len+1;}if(pos<=end)nodes.push(null,new HeightMapGap(end-pos).updateHeight(oracle,pos));let result=HeightMap.of(nodes);if(singleHeight<0||Math.abs(result.height-this.height)>=Epsilon||Math.abs(singleHeight-this.heightMetrics(oracle,offset).perLine)>=Epsilon)oracle.heightChanged=true;return result;}else if(force||this.outdated){this.setHeight(oracle,oracle.heightForGap(offset,offset+this.length));this.outdated=false;}return this;}toString(){return`gap(${this.length})`;}constructor(length){super(length,0);}};var HeightMapBranch=class extends HeightMap{get break(){return this.flags&1;}blockAt(height,oracle,top2,offset){let mid=top2+this.left.height;return height<mid?this.left.blockAt(height,oracle,top2,offset):this.right.blockAt(height,oracle,mid,offset+this.left.length+this.break);}lineAt(value,type,oracle,top2,offset){let rightTop=top2+this.left.height,rightOffset=offset+this.left.length+this.break;let left=type==QueryType.ByHeight?value<rightTop:value<rightOffset;let base2=left?this.left.lineAt(value,type,oracle,top2,offset):this.right.lineAt(value,type,oracle,rightTop,rightOffset);if(this.break||(left?base2.to<rightOffset:base2.from>rightOffset))return base2;let subQuery=type==QueryType.ByPosNoHeight?QueryType.ByPosNoHeight:QueryType.ByPos;if(left)return base2.join(this.right.lineAt(rightOffset,subQuery,oracle,rightTop,rightOffset));else return this.left.lineAt(rightOffset,subQuery,oracle,top2,offset).join(base2);}forEachLine(from,to,oracle,top2,offset,f){let rightTop=top2+this.left.height,rightOffset=offset+this.left.length+this.break;if(this.break){if(from<rightOffset)this.left.forEachLine(from,to,oracle,top2,offset,f);if(to>=rightOffset)this.right.forEachLine(from,to,oracle,rightTop,rightOffset,f);}else{let mid=this.lineAt(rightOffset,QueryType.ByPos,oracle,top2,offset);if(from<mid.from)this.left.forEachLine(from,mid.from-1,oracle,top2,offset,f);if(mid.to>=from&&mid.from<=to)f(mid);if(to>mid.to)this.right.forEachLine(mid.to+1,to,oracle,rightTop,rightOffset,f);}}replace(from,to,nodes){let rightStart=this.left.length+this.break;if(to<rightStart)return this.balanced(this.left.replace(from,to,nodes),this.right);if(from>this.left.length)return this.balanced(this.left,this.right.replace(from-rightStart,to-rightStart,nodes));let result=[];if(from>0)this.decomposeLeft(from,result);let left=result.length;for(let node of nodes)result.push(node);if(from>0)mergeGaps(result,left-1);if(to<this.length){let right=result.length;this.decomposeRight(to,result);mergeGaps(result,right);}return HeightMap.of(result);}decomposeLeft(to,result){let left=this.left.length;if(to<=left)return this.left.decomposeLeft(to,result);result.push(this.left);if(this.break){left++;if(to>=left)result.push(null);}if(to>left)this.right.decomposeLeft(to-left,result);}decomposeRight(from,result){let left=this.left.length,right=left+this.break;if(from>=right)return this.right.decomposeRight(from-right,result);if(from<left)this.left.decomposeRight(from,result);if(this.break&&from<right)result.push(null);result.push(this.right);}balanced(left,right){if(left.size>2*right.size||right.size>2*left.size)return HeightMap.of(this.break?[left,null,right]:[left,right]);this.left=left;this.right=right;this.height=left.height+right.height;this.outdated=left.outdated||right.outdated;this.size=left.size+right.size;this.length=left.length+this.break+right.length;return this;}updateHeight(oracle,offset=0,force=false,measured){let{left,right}=this,rightStart=offset+left.length+this.break,rebalance=null;if(measured&&measured.from<=offset+left.length&&measured.more)rebalance=left=left.updateHeight(oracle,offset,force,measured);else left.updateHeight(oracle,offset,force);if(measured&&measured.from<=rightStart+right.length&&measured.more)rebalance=right=right.updateHeight(oracle,rightStart,force,measured);else right.updateHeight(oracle,rightStart,force);if(rebalance)return this.balanced(left,right);this.height=this.left.height+this.right.height;this.outdated=false;return this;}toString(){return this.left+(this.break?\" \":\"-\")+this.right;}constructor(left,brk,right){super(left.length+brk+right.length,left.height+right.height,brk|(left.outdated||right.outdated?2:0));this.left=left;this.right=right;this.size=left.size+right.size;}};function mergeGaps(nodes,around){let before,after;if(nodes[around]==null&&(before=nodes[around-1])instanceof HeightMapGap&&(after=nodes[around+1])instanceof HeightMapGap)nodes.splice(around-1,3,new HeightMapGap(before.length+1+after.length));}var relevantWidgetHeight=5;var NodeBuilder=class{get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering;}span(_from,to){if(this.lineStart>-1){let end=Math.min(to,this.lineEnd),last=this.nodes[this.nodes.length-1];if(last instanceof HeightMapText)last.length+=end-this.pos;else if(end>this.pos||!this.isCovered)this.nodes.push(new HeightMapText(end-this.pos,-1));this.writtenTo=end;if(to>end){this.nodes.push(null);this.writtenTo++;this.lineStart=-1;}}this.pos=to;}point(from,to,deco){if(from<to||deco.heightRelevant){let height=deco.widget?deco.widget.estimatedHeight:0;let breaks=deco.widget?deco.widget.lineBreaks:0;if(height<0)height=this.oracle.lineHeight;let len=to-from;if(deco.block){this.addBlock(new HeightMapBlock(len,height,deco));}else if(len||breaks||height>=relevantWidgetHeight){this.addLineDeco(height,breaks,len);}}else if(to>from){this.span(from,to);}if(this.lineEnd>-1&&this.lineEnd<this.pos)this.lineEnd=this.oracle.doc.lineAt(this.pos).to;}enterLine(){if(this.lineStart>-1)return;let{from,to}=this.oracle.doc.lineAt(this.pos);this.lineStart=from;this.lineEnd=to;if(this.writtenTo<from){if(this.writtenTo<from-1||this.nodes[this.nodes.length-1]==null)this.nodes.push(this.blankContent(this.writtenTo,from-1));this.nodes.push(null);}if(this.pos>from)this.nodes.push(new HeightMapText(this.pos-from,-1));this.writtenTo=this.pos;}blankContent(from,to){let gap=new HeightMapGap(to-from);if(this.oracle.doc.lineAt(from).to==to)gap.flags|=4;return gap;}ensureLine(){this.enterLine();let last=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(last instanceof HeightMapText)return last;let line=new HeightMapText(0,-1);this.nodes.push(line);return line;}addBlock(block){var _a;this.enterLine();let type=(_a=block.deco)===null||_a===void 0?void 0:_a.type;if(type==BlockType.WidgetAfter&&!this.isCovered)this.ensureLine();this.nodes.push(block);this.writtenTo=this.pos=this.pos+block.length;if(type!=BlockType.WidgetBefore)this.covering=block;}addLineDeco(height,breaks,length){let line=this.ensureLine();line.length+=length;line.collapsed+=length;line.widgetHeight=Math.max(line.widgetHeight,height);line.breaks+=breaks;this.writtenTo=this.pos=this.pos+length;}finish(from){let last=this.nodes.length==0?null:this.nodes[this.nodes.length-1];if(this.lineStart>-1&&!(last instanceof HeightMapText)&&!this.isCovered)this.nodes.push(new HeightMapText(0,-1));else if(this.writtenTo<this.pos||last==null)this.nodes.push(this.blankContent(this.writtenTo,this.pos));let pos=from;for(let node of this.nodes){if(node instanceof HeightMapText)node.updateHeight(this.oracle,pos);pos+=node?node.length:1;}return this.nodes;}// Always called with a region that on both sides either stretches\n// to a line break or the end of the document.\n// The returned array uses null to indicate line breaks, but never\n// starts or ends in a line break, or has multiple line breaks next\n// to each other.\nstatic build(oracle,decorations2,from,to){let builder=new NodeBuilder(from,oracle);RangeSet.spans(decorations2,from,to,builder,0);return builder.finish(from);}constructor(pos,oracle){this.pos=pos;this.oracle=oracle;this.nodes=[];this.lineStart=-1;this.lineEnd=-1;this.covering=null;this.writtenTo=pos;}};function heightRelevantDecoChanges(a,b,diff){let comp=new DecorationComparator;RangeSet.compare(a,b,diff,comp,0);return comp.changes;}var DecorationComparator=class{compareRange(){}comparePoint(from,to,a,b){if(from<to||a&&a.heightRelevant||b&&b.heightRelevant)addRange(from,to,this.changes,5);}constructor(){this.changes=[];}};function visiblePixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();let doc2=dom.ownerDocument,win=doc2.defaultView||window;let left=Math.max(0,rect.left),right=Math.min(win.innerWidth,rect.right);let top2=Math.max(0,rect.top),bottom=Math.min(win.innerHeight,rect.bottom);for(let parent=dom.parentNode;parent&&parent!=doc2.body;){if(parent.nodeType==1){let elt=parent;let style=window.getComputedStyle(elt);if((elt.scrollHeight>elt.clientHeight||elt.scrollWidth>elt.clientWidth)&&style.overflow!=\"visible\"){let parentRect=elt.getBoundingClientRect();left=Math.max(left,parentRect.left);right=Math.min(right,parentRect.right);top2=Math.max(top2,parentRect.top);bottom=parent==dom.parentNode?parentRect.bottom:Math.min(bottom,parentRect.bottom);}parent=style.position==\"absolute\"||style.position==\"fixed\"?elt.offsetParent:elt.parentNode;}else if(parent.nodeType==11){parent=parent.host;}else{break;}}return{left:left-rect.left,right:Math.max(left,right)-rect.left,top:top2-(rect.top+paddingTop),bottom:Math.max(top2,bottom)-(rect.top+paddingTop)};}function fullPixelRange(dom,paddingTop){let rect=dom.getBoundingClientRect();return{left:0,right:rect.right-rect.left,top:paddingTop,bottom:rect.bottom-(rect.top+paddingTop)};}var LineGap=class{static same(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++){let gA=a[i],gB=b[i];if(gA.from!=gB.from||gA.to!=gB.to||gA.size!=gB.size)return false;}return true;}draw(wrapping){return Decoration.replace({widget:new LineGapWidget(this.size,wrapping)}).range(this.from,this.to);}constructor(from,to,size){this.from=from;this.to=to;this.size=size;}};var LineGapWidget=class extends WidgetType{eq(other){return other.size==this.size&&other.vertical==this.vertical;}toDOM(){let elt=document.createElement(\"div\");if(this.vertical){elt.style.height=this.size+\"px\";}else{elt.style.width=this.size+\"px\";elt.style.height=\"2px\";elt.style.display=\"inline-block\";}return elt;}get estimatedHeight(){return this.vertical?this.size:-1;}constructor(size,vertical){super();this.size=size;this.vertical=vertical;}};var ViewState=class{updateForViewport(){let viewports=[this.viewport],{main}=this.state.selection;for(let i=0;i<=1;i++){let pos=i?main.head:main.anchor;if(!viewports.some(({from,to})=>pos>=from&&pos<=to)){let{from,to}=this.lineBlockAt(pos);viewports.push(new Viewport(from,to));}}this.viewports=viewports.sort((a,b)=>a.from-b.from);this.scaler=this.heightMap.height<=7e6?IdScaler:new BigScaler(this.heightOracle,this.heightMap,this.viewports);}updateViewportLines(){this.viewportLines=[];this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,block=>{this.viewportLines.push(this.scaler.scale==1?block:scaleBlock(block,this.scaler));});}update(update,scrollTarget=null){this.state=update.state;let prevDeco=this.stateDeco;this.stateDeco=this.state.facet(decorations).filter(d=>typeof d!=\"function\");let contentChanges=update.changedRanges;let heightChanges=ChangedRange.extendWithRanges(contentChanges,heightRelevantDecoChanges(prevDeco,this.stateDeco,update?update.changes:ChangeSet.empty(this.state.doc.length)));let prevHeight=this.heightMap.height;let scrollAnchor=this.scrolledToBottom?null:this.lineBlockAtHeight(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,update.startState.doc,this.heightOracle.setDoc(this.state.doc),heightChanges);if(this.heightMap.height!=prevHeight)update.flags|=2;if(scrollAnchor){this.scrollAnchorPos=update.changes.mapPos(scrollAnchor.from,-1);this.scrollAnchorHeight=scrollAnchor.top;}else{this.scrollAnchorPos=-1;this.scrollAnchorHeight=this.heightMap.height;}let viewport=heightChanges.length?this.mapViewport(this.viewport,update.changes):this.viewport;if(scrollTarget&&(scrollTarget.range.head<viewport.from||scrollTarget.range.head>viewport.to)||!this.viewportIsAppropriate(viewport))viewport=this.getViewport(0,scrollTarget);let updateLines=!update.changes.empty||update.flags&2||viewport.from!=this.viewport.from||viewport.to!=this.viewport.to;this.viewport=viewport;this.updateForViewport();if(updateLines)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,update.changes)));update.flags|=this.computeVisibleRanges();if(scrollTarget)this.scrollTarget=scrollTarget;if(!this.mustEnforceCursorAssoc&&update.selectionSet&&update.view.lineWrapping&&update.state.selection.main.empty&&update.state.selection.main.assoc&&!update.state.facet(nativeSelectionHidden))this.mustEnforceCursorAssoc=true;}measure(view){let dom=view.contentDOM,style=window.getComputedStyle(dom);let oracle=this.heightOracle;let whiteSpace=style.whiteSpace;this.defaultTextDirection=style.direction==\"rtl\"?Direction.RTL:Direction.LTR;let refresh=this.heightOracle.mustRefreshForWrapping(whiteSpace);let domRect=dom.getBoundingClientRect();let measureContent=refresh||this.mustMeasureContent||this.contentDOMHeight!=domRect.height;this.contentDOMHeight=domRect.height;this.mustMeasureContent=false;let result=0,bias=0;let paddingTop=parseInt(style.paddingTop)||0,paddingBottom=parseInt(style.paddingBottom)||0;if(this.paddingTop!=paddingTop||this.paddingBottom!=paddingBottom){this.paddingTop=paddingTop;this.paddingBottom=paddingBottom;result|=8|2;}if(this.editorWidth!=view.scrollDOM.clientWidth){if(oracle.lineWrapping)measureContent=true;this.editorWidth=view.scrollDOM.clientWidth;result|=8;}if(this.scrollTop!=view.scrollDOM.scrollTop){this.scrollAnchorHeight=-1;this.scrollTop=view.scrollDOM.scrollTop;}this.scrolledToBottom=this.scrollTop>view.scrollDOM.scrollHeight-view.scrollDOM.clientHeight-4;let pixelViewport=(this.printing?fullPixelRange:visiblePixelRange)(dom,this.paddingTop);let dTop=pixelViewport.top-this.pixelViewport.top,dBottom=pixelViewport.bottom-this.pixelViewport.bottom;this.pixelViewport=pixelViewport;let inView=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(inView!=this.inView){this.inView=inView;if(inView)measureContent=true;}if(!this.inView&&!this.scrollTarget)return 0;let contentWidth=domRect.width;if(this.contentDOMWidth!=contentWidth||this.editorHeight!=view.scrollDOM.clientHeight){this.contentDOMWidth=domRect.width;this.editorHeight=view.scrollDOM.clientHeight;result|=8;}if(measureContent){let lineHeights=view.docView.measureVisibleLineHeights(this.viewport);if(oracle.mustRefreshForHeights(lineHeights))refresh=true;if(refresh||oracle.lineWrapping&&Math.abs(contentWidth-this.contentDOMWidth)>oracle.charWidth){let{lineHeight,charWidth,textHeight}=view.docView.measureTextSize();refresh=lineHeight>0&&oracle.refresh(whiteSpace,lineHeight,charWidth,textHeight,contentWidth/charWidth,lineHeights);if(refresh){view.docView.minWidth=0;result|=8;}}if(dTop>0&&dBottom>0)bias=Math.max(dTop,dBottom);else if(dTop<0&&dBottom<0)bias=Math.min(dTop,dBottom);oracle.heightChanged=false;for(let vp of this.viewports){let heights=vp.from==this.viewport.from?lineHeights:view.docView.measureVisibleLineHeights(vp);this.heightMap=(refresh?HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle,[new ChangedRange(0,0,0,view.state.doc.length)]):this.heightMap).updateHeight(oracle,0,refresh,new MeasuredHeights(vp.from,heights));}if(oracle.heightChanged)result|=2;}let viewportChange=!this.viewportIsAppropriate(this.viewport,bias)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);if(viewportChange)this.viewport=this.getViewport(bias,this.scrollTarget);this.updateForViewport();if(result&2||viewportChange)this.updateViewportLines();if(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)this.updateLineGaps(this.ensureLineGaps(refresh?[]:this.lineGaps,view));result|=this.computeVisibleRanges();if(this.mustEnforceCursorAssoc){this.mustEnforceCursorAssoc=false;view.docView.enforceCursorAssoc();}return result;}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top);}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom);}getViewport(bias,scrollTarget){let marginTop=.5-Math.max(-.5,Math.min(.5,bias/1e3/2));let map=this.heightMap,oracle=this.heightOracle;let{visibleTop,visibleBottom}=this;let viewport=new Viewport(map.lineAt(visibleTop-marginTop*1e3,QueryType.ByHeight,oracle,0,0).from,map.lineAt(visibleBottom+(1-marginTop)*1e3,QueryType.ByHeight,oracle,0,0).to);if(scrollTarget){let{head}=scrollTarget.range;if(head<viewport.from||head>viewport.to){let viewHeight=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top);let block=map.lineAt(head,QueryType.ByPos,oracle,0,0),topPos;if(scrollTarget.y==\"center\")topPos=(block.top+block.bottom)/2-viewHeight/2;else if(scrollTarget.y==\"start\"||scrollTarget.y==\"nearest\"&&head<viewport.from)topPos=block.top;else topPos=block.bottom-viewHeight;viewport=new Viewport(map.lineAt(topPos-1e3/2,QueryType.ByHeight,oracle,0,0).from,map.lineAt(topPos+viewHeight+1e3/2,QueryType.ByHeight,oracle,0,0).to);}}return viewport;}mapViewport(viewport,changes){let from=changes.mapPos(viewport.from,-1),to=changes.mapPos(viewport.to,1);return new Viewport(this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0).to);}// Checks if a given viewport covers the visible part of the\n// document and not too much beyond that.\nviewportIsAppropriate({from,to},bias=0){if(!this.inView)return true;let{top:top2}=this.heightMap.lineAt(from,QueryType.ByPos,this.heightOracle,0,0);let{bottom}=this.heightMap.lineAt(to,QueryType.ByPos,this.heightOracle,0,0);let{visibleTop,visibleBottom}=this;return(from==0||top2<=visibleTop-Math.max(10,Math.min(-bias,250)))&&(to==this.state.doc.length||bottom>=visibleBottom+Math.max(10,Math.min(bias,250)))&&top2>visibleTop-2*1e3&&bottom<visibleBottom+2*1e3;}mapLineGaps(gaps,changes){if(!gaps.length||changes.empty)return gaps;let mapped=[];for(let gap of gaps)if(!changes.touchesRange(gap.from,gap.to))mapped.push(new LineGap(changes.mapPos(gap.from),changes.mapPos(gap.to),gap.size));return mapped;}// Computes positions in the viewport where the start or end of a\n// line should be hidden, trying to reuse existing line gaps when\n// appropriate to avoid unneccesary redraws.\n// Uses crude character-counting for the positioning and sizing,\n// since actual DOM coordinates aren't always available and\n// predictable. Relies on generous margins (see LG.Margin) to hide\n// the artifacts this might produce from the user.\nensureLineGaps(current,mayMeasure){let wrapping=this.heightOracle.lineWrapping;let margin=wrapping?1e4:2e3,halfMargin=margin>>1,doubleMargin=margin<<1;if(this.defaultTextDirection!=Direction.LTR&&!wrapping)return[];let gaps=[];let addGap=(from,to,line,structure)=>{if(to-from<halfMargin)return;let sel=this.state.selection.main,avoid=[sel.from];if(!sel.empty)avoid.push(sel.to);for(let pos of avoid){if(pos>from&&pos<to){addGap(from,pos-10,line,structure);addGap(pos+10,to,line,structure);return;}}let gap=find(current,gap2=>gap2.from>=line.from&&gap2.to<=line.to&&Math.abs(gap2.from-from)<halfMargin&&Math.abs(gap2.to-to)<halfMargin&&!avoid.some(pos=>gap2.from<pos&&gap2.to>pos));if(!gap){if(to<line.to&&mayMeasure&&wrapping&&mayMeasure.visibleRanges.some(r=>r.from<=to&&r.to>=to)){let lineStart=mayMeasure.moveToLineBoundary(EditorSelection.cursor(to),false,true).head;if(lineStart>from)to=lineStart;}gap=new LineGap(from,to,this.gapSize(line,from,to,structure));}gaps.push(gap);};for(let line of this.viewportLines){if(line.length<doubleMargin)continue;let structure=lineStructure(line.from,line.to,this.stateDeco);if(structure.total<doubleMargin)continue;let target=this.scrollTarget?this.scrollTarget.range.head:null;let viewFrom,viewTo;if(wrapping){let marginHeight=margin/this.heightOracle.lineLength*this.heightOracle.lineHeight;let top2,bot;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((this.visibleBottom-this.visibleTop)/2+marginHeight)/line.height;top2=targetFrac-spaceFrac;bot=targetFrac+spaceFrac;}else{top2=(this.visibleTop-line.top-marginHeight)/line.height;bot=(this.visibleBottom-line.top+marginHeight)/line.height;}viewFrom=findPosition(structure,top2);viewTo=findPosition(structure,bot);}else{let totalWidth=structure.total*this.heightOracle.charWidth;let marginWidth=margin*this.heightOracle.charWidth;let left,right;if(target!=null){let targetFrac=findFraction(structure,target);let spaceFrac=((this.pixelViewport.right-this.pixelViewport.left)/2+marginWidth)/totalWidth;left=targetFrac-spaceFrac;right=targetFrac+spaceFrac;}else{left=(this.pixelViewport.left-marginWidth)/totalWidth;right=(this.pixelViewport.right+marginWidth)/totalWidth;}viewFrom=findPosition(structure,left);viewTo=findPosition(structure,right);}if(viewFrom>line.from)addGap(line.from,viewFrom,line,structure);if(viewTo<line.to)addGap(viewTo,line.to,line,structure);}return gaps;}gapSize(line,from,to,structure){let fraction=findFraction(structure,to)-findFraction(structure,from);if(this.heightOracle.lineWrapping){return line.height*fraction;}else{return structure.total*this.heightOracle.charWidth*fraction;}}updateLineGaps(gaps){if(!LineGap.same(gaps,this.lineGaps)){this.lineGaps=gaps;this.lineGapDeco=Decoration.set(gaps.map(gap=>gap.draw(this.heightOracle.lineWrapping)));}}computeVisibleRanges(){let deco=this.stateDeco;if(this.lineGaps.length)deco=deco.concat(this.lineGapDeco);let ranges=[];RangeSet.spans(deco,this.viewport.from,this.viewport.to,{span(from,to){ranges.push({from,to});},point(){}},20);let changed=ranges.length!=this.visibleRanges.length||this.visibleRanges.some((r,i)=>r.from!=ranges[i].from||r.to!=ranges[i].to);this.visibleRanges=ranges;return changed?4:0;}lineBlockAt(pos){return pos>=this.viewport.from&&pos<=this.viewport.to&&this.viewportLines.find(b=>b.from<=pos&&b.to>=pos)||scaleBlock(this.heightMap.lineAt(pos,QueryType.ByPos,this.heightOracle,0,0),this.scaler);}lineBlockAtHeight(height){return scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height),QueryType.ByHeight,this.heightOracle,0,0),this.scaler);}elementAtHeight(height){return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(height),this.heightOracle,0,0),this.scaler);}get docHeight(){return this.scaler.toDOM(this.heightMap.height);}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom;}constructor(state){this.state=state;this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0};this.inView=true;this.paddingTop=0;this.paddingBottom=0;this.contentDOMWidth=0;this.contentDOMHeight=0;this.editorHeight=0;this.editorWidth=0;this.scrollTop=0;this.scrolledToBottom=true;this.scrollAnchorPos=0;this.scrollAnchorHeight=-1;this.scaler=IdScaler;this.scrollTarget=null;this.printing=false;this.mustMeasureContent=true;this.defaultTextDirection=Direction.LTR;this.visibleRanges=[];this.mustEnforceCursorAssoc=false;let guessWrapping=state.facet(contentAttributes).some(v=>typeof v!=\"function\"&&v.class==\"cm-lineWrapping\");this.heightOracle=new HeightOracle(guessWrapping);this.stateDeco=state.facet(decorations).filter(d=>typeof d!=\"function\");this.heightMap=HeightMap.empty().applyChanges(this.stateDeco,Text.empty,this.heightOracle.setDoc(state.doc),[new ChangedRange(0,0,0,state.doc.length)]);this.viewport=this.getViewport(0,null);this.updateViewportLines();this.updateForViewport();this.lineGaps=this.ensureLineGaps([]);this.lineGapDeco=Decoration.set(this.lineGaps.map(gap=>gap.draw(false)));this.computeVisibleRanges();}};var Viewport=class{constructor(from,to){this.from=from;this.to=to;}};function lineStructure(from,to,stateDeco){let ranges=[],pos=from,total=0;RangeSet.spans(stateDeco,from,to,{span(){},point(from2,to2){if(from2>pos){ranges.push({from:pos,to:from2});total+=from2-pos;}pos=to2;}},20);if(pos<to){ranges.push({from:pos,to});total+=to-pos;}return{total,ranges};}function findPosition({total,ranges},ratio){if(ratio<=0)return ranges[0].from;if(ratio>=1)return ranges[ranges.length-1].to;let dist=Math.floor(total*ratio);for(let i=0;;i++){let{from,to}=ranges[i],size=to-from;if(dist<=size)return from+dist;dist-=size;}}function findFraction(structure,pos){let counted=0;for(let{from,to}of structure.ranges){if(pos<=to){counted+=pos-from;break;}counted+=to-from;}return counted/structure.total;}function find(array,f){for(let val of array)if(f(val))return val;return void 0;}var IdScaler={toDOM(n){return n;},fromDOM(n){return n;},scale:1};var BigScaler=class{toDOM(n){for(let i=0,base2=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.top)return domBase+(n-base2)*this.scale;if(n<=vp.bottom)return vp.domTop+(n-vp.top);base2=vp.bottom;domBase=vp.domBottom;}}fromDOM(n){for(let i=0,base2=0,domBase=0;;i++){let vp=i<this.viewports.length?this.viewports[i]:null;if(!vp||n<vp.domTop)return base2+(n-domBase)/this.scale;if(n<=vp.domBottom)return vp.top+(n-vp.domTop);base2=vp.bottom;domBase=vp.domBottom;}}constructor(oracle,heightMap,viewports){let vpHeight=0,base2=0,domBase=0;this.viewports=viewports.map(({from,to})=>{let top2=heightMap.lineAt(from,QueryType.ByPos,oracle,0,0).top;let bottom=heightMap.lineAt(to,QueryType.ByPos,oracle,0,0).bottom;vpHeight+=bottom-top2;return{from,to,top:top2,bottom,domTop:0,domBottom:0};});this.scale=(7e6-vpHeight)/(heightMap.height-vpHeight);for(let obj of this.viewports){obj.domTop=domBase+(obj.top-base2)*this.scale;domBase=obj.domBottom=obj.domTop+(obj.bottom-obj.top);base2=obj.bottom;}}};function scaleBlock(block,scaler){if(scaler.scale==1)return block;let bTop=scaler.toDOM(block.top),bBottom=scaler.toDOM(block.bottom);return new BlockInfo(block.from,block.length,bTop,bBottom-bTop,Array.isArray(block._content)?block._content.map(b=>scaleBlock(b,scaler)):block._content);}var theme=/* @__PURE__ */Facet.define({combine:strs=>strs.join(\" \")});var darkTheme=/* @__PURE__ */Facet.define({combine:values=>values.indexOf(true)>-1});var baseThemeID=/* @__PURE__ */StyleModule.newName();var baseLightID=/* @__PURE__ */StyleModule.newName();var baseDarkID=/* @__PURE__ */StyleModule.newName();var lightDarkIDs={\"&light\":\".\"+baseLightID,\"&dark\":\".\"+baseDarkID};function buildTheme(main,spec,scopes){return new StyleModule(spec,{finish(sel){return/&/.test(sel)?sel.replace(/&\\w*/,m=>{if(m==\"&\")return main;if(!scopes||!scopes[m])throw new RangeError(`Unsupported selector: ${m}`);return scopes[m];}):main+\" \"+sel;}});}var baseTheme$1=/* @__PURE__ */buildTheme(\".\"+baseThemeID,{\"&\":{position:\"relative !important\",boxSizing:\"border-box\",\"&.cm-focused\":{// Provide a simple default outline to make sure a focused\n// editor is visually distinct. Can't leave the default behavior\n// because that will apply to the content element, which is\n// inside the scrollable container and doesn't include the\n// gutters. We also can't use an 'auto' outline, since those\n// are, for some reason, drawn behind the element content, which\n// will cause things like the active line background to cover\n// the outline (#297).\noutline:\"1px dotted #212121\"},display:\"flex !important\",flexDirection:\"column\"},\".cm-scroller\":{display:\"flex !important\",alignItems:\"flex-start !important\",fontFamily:\"monospace\",lineHeight:1.4,height:\"100%\",overflowX:\"auto\",position:\"relative\",zIndex:0},\".cm-content\":{margin:0,flexGrow:2,flexShrink:0,display:\"block\",whiteSpace:\"pre\",wordWrap:\"normal\",boxSizing:\"border-box\",padding:\"4px 0\",outline:\"none\",\"&[contenteditable=true]\":{WebkitUserModify:\"read-write-plaintext-only\"}},\".cm-lineWrapping\":{whiteSpace_fallback:\"pre-wrap\",whiteSpace:\"break-spaces\",wordBreak:\"break-word\",overflowWrap:\"anywhere\",flexShrink:1},\"&light .cm-content\":{caretColor:\"black\"},\"&dark .cm-content\":{caretColor:\"white\"},\".cm-line\":{display:\"block\",padding:\"0 2px 0 6px\"},\".cm-layer\":{position:\"absolute\",left:0,top:0,contain:\"size style\",\"& > *\":{position:\"absolute\"}},\"&light .cm-selectionBackground\":{background:\"#d9d9d9\"},\"&dark .cm-selectionBackground\":{background:\"#222\"},\"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\":{background:\"#d7d4f0\"},\"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\":{background:\"#233\"},\".cm-cursorLayer\":{pointerEvents:\"none\"},\"&.cm-focused > .cm-scroller > .cm-cursorLayer\":{animation:\"steps(1) cm-blink 1.2s infinite\"},// Two animations defined so that we can switch between them to\n// restart the animation without forcing another style\n// recomputation.\n\"@keyframes cm-blink\":{\"0%\":{},\"50%\":{opacity:0},\"100%\":{}},\"@keyframes cm-blink2\":{\"0%\":{},\"50%\":{opacity:0},\"100%\":{}},\".cm-cursor, .cm-dropCursor\":{borderLeft:\"1.2px solid black\",marginLeft:\"-0.6px\",pointerEvents:\"none\"},\".cm-cursor\":{display:\"none\"},\"&dark .cm-cursor\":{borderLeftColor:\"#444\"},\".cm-dropCursor\":{position:\"absolute\"},\"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor\":{display:\"block\"},\"&light .cm-activeLine\":{backgroundColor:\"#cceeff44\"},\"&dark .cm-activeLine\":{backgroundColor:\"#99eeff33\"},\"&light .cm-specialChar\":{color:\"red\"},\"&dark .cm-specialChar\":{color:\"#f78\"},\".cm-gutters\":{flexShrink:0,display:\"flex\",height:\"100%\",boxSizing:\"border-box\",left:0,zIndex:200},\"&light .cm-gutters\":{backgroundColor:\"#f5f5f5\",color:\"#6c6c6c\",borderRight:\"1px solid #ddd\"},\"&dark .cm-gutters\":{backgroundColor:\"#333338\",color:\"#ccc\"},\".cm-gutter\":{display:\"flex !important\",flexDirection:\"column\",flexShrink:0,boxSizing:\"border-box\",minHeight:\"100%\",overflow:\"hidden\"},\".cm-gutterElement\":{boxSizing:\"border-box\"},\".cm-lineNumbers .cm-gutterElement\":{padding:\"0 3px 0 5px\",minWidth:\"20px\",textAlign:\"right\",whiteSpace:\"nowrap\"},\"&light .cm-activeLineGutter\":{backgroundColor:\"#e2f2ff\"},\"&dark .cm-activeLineGutter\":{backgroundColor:\"#222227\"},\".cm-panels\":{boxSizing:\"border-box\",position:\"sticky\",left:0,right:0},\"&light .cm-panels\":{backgroundColor:\"#f5f5f5\",color:\"black\"},\"&light .cm-panels-top\":{borderBottom:\"1px solid #ddd\"},\"&light .cm-panels-bottom\":{borderTop:\"1px solid #ddd\"},\"&dark .cm-panels\":{backgroundColor:\"#333338\",color:\"white\"},\".cm-tab\":{display:\"inline-block\",overflow:\"hidden\",verticalAlign:\"bottom\"},\".cm-widgetBuffer\":{verticalAlign:\"text-top\",height:\"1em\",width:0,display:\"inline\"},\".cm-placeholder\":{color:\"#888\",display:\"inline-block\",verticalAlign:\"top\"},\".cm-highlightSpace:before\":{content:\"attr(data-display)\",position:\"absolute\",pointerEvents:\"none\",color:\"#888\"},\".cm-highlightTab\":{backgroundImage:`url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"20\"><path stroke=\"%23888\" stroke-width=\"1\" fill=\"none\" d=\"M1 10H196L190 5M190 15L196 10M197 4L197 16\"/></svg>')`,backgroundSize:\"auto 100%\",backgroundPosition:\"right 90%\",backgroundRepeat:\"no-repeat\"},\".cm-trailingSpace\":{backgroundColor:\"#ff332255\"},\".cm-button\":{verticalAlign:\"middle\",color:\"inherit\",fontSize:\"70%\",padding:\".2em 1em\",borderRadius:\"1px\"},\"&light .cm-button\":{backgroundImage:\"linear-gradient(#eff1f5, #d9d9df)\",border:\"1px solid #888\",\"&:active\":{backgroundImage:\"linear-gradient(#b4b4b4, #d0d3d6)\"}},\"&dark .cm-button\":{backgroundImage:\"linear-gradient(#393939, #111)\",border:\"1px solid #888\",\"&:active\":{backgroundImage:\"linear-gradient(#111, #333)\"}},\".cm-textfield\":{verticalAlign:\"middle\",color:\"inherit\",fontSize:\"70%\",border:\"1px solid silver\",padding:\".2em .5em\"},\"&light .cm-textfield\":{backgroundColor:\"white\"},\"&dark .cm-textfield\":{border:\"1px solid #555\",backgroundColor:\"inherit\"}},lightDarkIDs);var DOMChange=class{constructor(view,start,end,typeOver){this.typeOver=typeOver;this.bounds=null;this.text=\"\";let{impreciseHead:iHead,impreciseAnchor:iAnchor}=view.docView;if(view.state.readOnly&&start>-1){this.newSel=null;}else if(start>-1&&(this.bounds=view.docView.domBoundsAround(start,end,0))){let selPoints=iHead||iAnchor?[]:selectionPoints(view);let reader=new DOMReader(selPoints,view.state);reader.readRange(this.bounds.startDOM,this.bounds.endDOM);this.text=reader.text;this.newSel=selectionFromPoints(selPoints,this.bounds.from);}else{let domSel=view.observer.selectionRange;let head=iHead&&iHead.node==domSel.focusNode&&iHead.offset==domSel.focusOffset||!contains(view.contentDOM,domSel.focusNode)?view.state.selection.main.head:view.docView.posFromDOM(domSel.focusNode,domSel.focusOffset);let anchor=iAnchor&&iAnchor.node==domSel.anchorNode&&iAnchor.offset==domSel.anchorOffset||!contains(view.contentDOM,domSel.anchorNode)?view.state.selection.main.anchor:view.docView.posFromDOM(domSel.anchorNode,domSel.anchorOffset);this.newSel=EditorSelection.single(anchor,head);}}};function applyDOMChange(view,domChange){let change;let{newSel}=domChange,sel=view.state.selection.main;let lastKey=view.inputState.lastKeyTime>Date.now()-100?view.inputState.lastKeyCode:-1;if(domChange.bounds){let{from,to}=domChange.bounds;let preferredPos=sel.from,preferredSide=null;if(lastKey===8||browser.android&&domChange.text.length<to-from){preferredPos=sel.to;preferredSide=\"end\";}let diff=findDiff(view.state.doc.sliceString(from,to,LineBreakPlaceholder),domChange.text,preferredPos-from,preferredSide);if(diff){if(browser.chrome&&lastKey==13&&diff.toB==diff.from+2&&domChange.text.slice(diff.from,diff.toB)==LineBreakPlaceholder+LineBreakPlaceholder)diff.toB--;change={from:from+diff.from,to:from+diff.toA,insert:Text.of(domChange.text.slice(diff.from,diff.toB).split(LineBreakPlaceholder))};}}else if(newSel&&(!view.hasFocus&&view.state.facet(editable)||newSel.main.eq(sel))){newSel=null;}if(!change&&!newSel)return false;if(!change&&domChange.typeOver&&!sel.empty&&newSel&&newSel.main.empty){change={from:sel.from,to:sel.to,insert:view.state.doc.slice(sel.from,sel.to)};}else if(change&&change.from>=sel.from&&change.to<=sel.to&&(change.from!=sel.from||change.to!=sel.to)&&sel.to-sel.from-(change.to-change.from)<=4){change={from:sel.from,to:sel.to,insert:view.state.doc.slice(sel.from,change.from).append(change.insert).append(view.state.doc.slice(change.to,sel.to))};}else if((browser.mac||browser.android)&&change&&change.from==change.to&&change.from==sel.head-1&&/^\\. ?$/.test(change.insert.toString())&&view.contentDOM.getAttribute(\"autocorrect\")==\"off\"){if(newSel&&change.insert.length==2)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:sel.from,to:sel.to,insert:Text.of([\" \"])};}else if(browser.chrome&&change&&change.from==change.to&&change.from==sel.head&&change.insert.toString()==\"\\n \"&&view.lineWrapping){if(newSel)newSel=EditorSelection.single(newSel.main.anchor-1,newSel.main.head-1);change={from:sel.from,to:sel.to,insert:Text.of([\" \"])};}if(change){let startState=view.state;if(browser.ios&&view.inputState.flushIOSKey(view))return true;if(browser.android&&(change.from==sel.from&&change.to==sel.to&&change.insert.length==1&&change.insert.lines==2&&dispatchKey(view.contentDOM,\"Enter\",13)||(change.from==sel.from-1&&change.to==sel.to&&change.insert.length==0||lastKey==8&&change.insert.length<change.to-change.from)&&dispatchKey(view.contentDOM,\"Backspace\",8)||change.from==sel.from&&change.to==sel.to+1&&change.insert.length==0&&dispatchKey(view.contentDOM,\"Delete\",46)))return true;let text=change.insert.toString();if(view.state.facet(inputHandler).some(h=>h(view,change.from,change.to,text)))return true;if(view.inputState.composing>=0)view.inputState.composing++;let tr;if(change.from>=sel.from&&change.to<=sel.to&&change.to-change.from>=(sel.to-sel.from)/3&&(!newSel||newSel.main.empty&&newSel.main.from==change.from+change.insert.length)&&view.inputState.composing<0){let before=sel.from<change.from?startState.sliceDoc(sel.from,change.from):\"\";let after=sel.to>change.to?startState.sliceDoc(change.to,sel.to):\"\";tr=startState.replaceSelection(view.state.toText(before+change.insert.sliceString(0,void 0,view.state.lineBreak)+after));}else{let changes=startState.changes(change);let mainSel=newSel&&newSel.main.to<=changes.newLength?newSel.main:void 0;if(startState.selection.ranges.length>1&&view.inputState.composing>=0&&change.to<=sel.to&&change.to>=sel.to-10){let replaced=view.state.sliceDoc(change.from,change.to);let compositionRange=compositionSurroundingNode(view)||view.state.doc.lineAt(sel.head);let offset=sel.to-change.to,size=sel.to-sel.from;tr=startState.changeByRange(range=>{if(range.from==sel.from&&range.to==sel.to)return{changes,range:mainSel||range.map(changes)};let to=range.to-offset,from=to-replaced.length;if(range.to-range.from!=size||view.state.sliceDoc(from,to)!=replaced||// Unfortunately, there's no way to make multiple\n// changes in the same node work without aborting\n// composition, so cursors in the composition range are\n// ignored.\ncompositionRange&&range.to>=compositionRange.from&&range.from<=compositionRange.to)return{range};let rangeChanges=startState.changes({from,to,insert:change.insert}),selOff=range.to-sel.to;return{changes:rangeChanges,range:!mainSel?range.map(rangeChanges):EditorSelection.range(Math.max(0,mainSel.anchor+selOff),Math.max(0,mainSel.head+selOff))};});}else{tr={changes,selection:mainSel&&startState.selection.replaceRange(mainSel)};}}let userEvent=\"input.type\";if(view.composing||view.inputState.compositionPendingChange&&view.inputState.compositionEndedAt>Date.now()-50){view.inputState.compositionPendingChange=false;userEvent+=\".compose\";if(view.inputState.compositionFirstChange){userEvent+=\".start\";view.inputState.compositionFirstChange=false;}}view.dispatch(tr,{scrollIntoView:true,userEvent});return true;}else if(newSel&&!newSel.main.eq(sel)){let scrollIntoView2=false,userEvent=\"select\";if(view.inputState.lastSelectionTime>Date.now()-50){if(view.inputState.lastSelectionOrigin==\"select\")scrollIntoView2=true;userEvent=view.inputState.lastSelectionOrigin;}view.dispatch({selection:newSel,scrollIntoView:scrollIntoView2,userEvent});return true;}else{return false;}}function findDiff(a,b,preferredPos,preferredSide){let minLen=Math.min(a.length,b.length);let from=0;while(from<minLen&&a.charCodeAt(from)==b.charCodeAt(from))from++;if(from==minLen&&a.length==b.length)return null;let toA=a.length,toB=b.length;while(toA>0&&toB>0&&a.charCodeAt(toA-1)==b.charCodeAt(toB-1)){toA--;toB--;}if(preferredSide==\"end\"){let adjust=Math.max(0,from-Math.min(toA,toB));preferredPos-=toA+adjust-from;}if(toA<from&&a.length<b.length){let move=preferredPos<=from&&preferredPos>=toA?from-preferredPos:0;from-=move;toB=from+(toB-toA);toA=from;}else if(toB<from){let move=preferredPos<=from&&preferredPos>=toB?from-preferredPos:0;from-=move;toA=from+(toA-toB);toB=from;}return{from,toA,toB};}function selectionPoints(view){let result=[];if(view.root.activeElement!=view.contentDOM)return result;let{anchorNode,anchorOffset,focusNode,focusOffset}=view.observer.selectionRange;if(anchorNode){result.push(new DOMPoint(anchorNode,anchorOffset));if(focusNode!=anchorNode||focusOffset!=anchorOffset)result.push(new DOMPoint(focusNode,focusOffset));}return result;}function selectionFromPoints(points,base2){if(points.length==0)return null;let anchor=points[0].pos,head=points.length==2?points[1].pos:anchor;return anchor>-1&&head>-1?EditorSelection.single(anchor+base2,head+base2):null;}var observeOptions={childList:true,characterData:true,subtree:true,attributes:true,characterDataOldValue:true};var useCharData=browser.ie&&browser.ie_version<=11;var DOMObserver=class{onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e);if(this.intersecting)this.view.measure();}onScroll(e){if(this.intersecting)this.flush(false);this.onScrollChanged(e);}onResize(){if(this.resizeTimeout<0)this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1;this.view.requestMeasure();},50);}onPrint(){this.view.viewState.printing=true;this.view.measure();setTimeout(()=>{this.view.viewState.printing=false;this.view.requestMeasure();},500);}updateGaps(gaps){if(this.gapIntersection&&(gaps.length!=this.gaps.length||this.gaps.some((g,i)=>g!=gaps[i]))){this.gapIntersection.disconnect();for(let gap of gaps)this.gapIntersection.observe(gap);this.gaps=gaps;}}onSelectionChange(event){let wasChanged=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view}=this,sel=this.selectionRange;if(view.state.facet(editable)?view.root.activeElement!=this.dom:!hasSelection(view.dom,sel))return;let context=sel.anchorNode&&view.docView.nearest(sel.anchorNode);if(context&&context.ignoreEvent(event)){if(!wasChanged)this.selectionChanged=false;return;}if((browser.ie&&browser.ie_version<=11||browser.android&&browser.chrome)&&!view.state.selection.main.empty&&// (Selection.isCollapsed isn't reliable on IE)\nsel.focusNode&&isEquivalentPosition(sel.focusNode,sel.focusOffset,sel.anchorNode,sel.anchorOffset))this.flushSoon();else this.flush(false);}readSelectionRange(){let{view}=this;let range=browser.safari&&view.root.nodeType==11&&deepActiveElement(this.dom.ownerDocument)==this.dom&&safariSelectionRangeHack(this.view)||getSelection(view.root);if(!range||this.selectionRange.eq(range))return false;let local=hasSelection(this.dom,range);if(local&&!this.selectionChanged&&view.inputState.lastFocusTime>Date.now()-200&&view.inputState.lastTouchTime<Date.now()-300&&atElementStart(this.dom,range)){this.view.inputState.lastFocusTime=0;view.docView.updateSelection();return false;}this.selectionRange.setRange(range);if(local)this.selectionChanged=true;return true;}setSelectionRange(anchor,head){this.selectionRange.set(anchor.node,anchor.offset,head.node,head.offset);this.selectionChanged=false;}clearSelectionRange(){this.selectionRange.set(null,0,null,0);}listenForScroll(){this.parentCheck=-1;let i=0,changed=null;for(let dom=this.dom;dom;){if(dom.nodeType==1){if(!changed&&i<this.scrollTargets.length&&this.scrollTargets[i]==dom)i++;else if(!changed)changed=this.scrollTargets.slice(0,i);if(changed)changed.push(dom);dom=dom.assignedSlot||dom.parentNode;}else if(dom.nodeType==11){dom=dom.host;}else{break;}}if(i<this.scrollTargets.length&&!changed)changed=this.scrollTargets.slice(0,i);if(changed){for(let dom of this.scrollTargets)dom.removeEventListener(\"scroll\",this.onScroll);for(let dom of this.scrollTargets=changed)dom.addEventListener(\"scroll\",this.onScroll);}}ignore(f){if(!this.active)return f();try{this.stop();return f();}finally{this.start();this.clear();}}start(){if(this.active)return;this.observer.observe(this.dom,observeOptions);if(useCharData)this.dom.addEventListener(\"DOMCharacterDataModified\",this.onCharData);this.active=true;}stop(){if(!this.active)return;this.active=false;this.observer.disconnect();if(useCharData)this.dom.removeEventListener(\"DOMCharacterDataModified\",this.onCharData);}// Throw away any pending changes\nclear(){this.processRecords();this.queue.length=0;this.selectionChanged=false;}// Chrome Android, especially in combination with GBoard, not only\n// doesn't reliably fire regular key events, but also often\n// surrounds the effect of enter or backspace with a bunch of\n// composition events that, when interrupted, cause text duplication\n// or other kinds of corruption. This hack makes the editor back off\n// from handling DOM changes for a moment when such a key is\n// detected (via beforeinput or keydown), and then tries to flush\n// them or, if that has no effect, dispatches the given key.\ndelayAndroidKey(key,keyCode){var _a;if(!this.delayedAndroidKey){let flush=()=>{let key2=this.delayedAndroidKey;if(key2){this.clearDelayedAndroidKey();this.view.inputState.lastKeyCode=key2.keyCode;this.view.inputState.lastKeyTime=Date.now();let flushed=this.flush();if(!flushed&&key2.force)dispatchKey(this.dom,key2.key,key2.keyCode);}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(flush);}if(!this.delayedAndroidKey||key==\"Enter\")this.delayedAndroidKey={key,keyCode,// Only run the key handler when no changes are detected if\n// this isn't coming right after another change, in which case\n// it is probably part of a weird chain of updates, and should\n// be ignored if it returns the DOM to its previous state.\nforce:this.lastChange<Date.now()-50||!!((_a=this.delayedAndroidKey)===null||_a===void 0?void 0:_a.force)};}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey);this.delayedAndroidKey=null;this.flushingAndroidKey=-1;}flushSoon(){if(this.delayedFlush<0)this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1;this.flush();});}forceFlush(){if(this.delayedFlush>=0){this.view.win.cancelAnimationFrame(this.delayedFlush);this.delayedFlush=-1;}this.flush();}pendingRecords(){for(let mut of this.observer.takeRecords())this.queue.push(mut);return this.queue;}processRecords(){let records=this.pendingRecords();if(records.length)this.queue=[];let from=-1,to=-1,typeOver=false;for(let record of records){let range=this.readMutation(record);if(!range)continue;if(range.typeOver)typeOver=true;if(from==-1){({from,to}=range);}else{from=Math.min(range.from,from);to=Math.max(range.to,to);}}return{from,to,typeOver};}readChange(){let{from,to,typeOver}=this.processRecords();let newSel=this.selectionChanged&&hasSelection(this.dom,this.selectionRange);if(from<0&&!newSel)return null;if(from>-1)this.lastChange=Date.now();this.view.inputState.lastFocusTime=0;this.selectionChanged=false;return new DOMChange(this.view,from,to,typeOver);}// Apply pending changes, if any\nflush(readSelection=true){if(this.delayedFlush>=0||this.delayedAndroidKey)return false;if(readSelection)this.readSelectionRange();let domChange=this.readChange();if(!domChange)return false;let startState=this.view.state;let handled=applyDOMChange(this.view,domChange);if(this.view.state==startState)this.view.update([]);return handled;}readMutation(rec){let cView=this.view.docView.nearest(rec.target);if(!cView||cView.ignoreMutation(rec))return null;cView.markDirty(rec.type==\"attributes\");if(rec.type==\"attributes\")cView.dirty|=4;if(rec.type==\"childList\"){let childBefore=findChild(cView,rec.previousSibling||rec.target.previousSibling,-1);let childAfter=findChild(cView,rec.nextSibling||rec.target.nextSibling,1);return{from:childBefore?cView.posAfter(childBefore):cView.posAtStart,to:childAfter?cView.posBefore(childAfter):cView.posAtEnd,typeOver:false};}else if(rec.type==\"characterData\"){return{from:cView.posAtStart,to:cView.posAtEnd,typeOver:rec.target.nodeValue==rec.oldValue};}else{return null;}}setWindow(win){if(win!=this.win){this.removeWindowListeners(this.win);this.win=win;this.addWindowListeners(this.win);}}addWindowListeners(win){win.addEventListener(\"resize\",this.onResize);win.addEventListener(\"beforeprint\",this.onPrint);win.addEventListener(\"scroll\",this.onScroll);win.document.addEventListener(\"selectionchange\",this.onSelectionChange);}removeWindowListeners(win){win.removeEventListener(\"scroll\",this.onScroll);win.removeEventListener(\"resize\",this.onResize);win.removeEventListener(\"beforeprint\",this.onPrint);win.document.removeEventListener(\"selectionchange\",this.onSelectionChange);}destroy(){var _a,_b,_c,_d;this.stop();(_a=this.intersection)===null||_a===void 0?void 0:_a.disconnect();(_b=this.gapIntersection)===null||_b===void 0?void 0:_b.disconnect();(_c=this.resizeScroll)===null||_c===void 0?void 0:_c.disconnect();(_d=this.resizeContent)===null||_d===void 0?void 0:_d.disconnect();for(let dom of this.scrollTargets)dom.removeEventListener(\"scroll\",this.onScroll);this.removeWindowListeners(this.win);clearTimeout(this.parentCheck);clearTimeout(this.resizeTimeout);this.win.cancelAnimationFrame(this.delayedFlush);this.win.cancelAnimationFrame(this.flushingAndroidKey);}constructor(view){this.view=view;this.active=false;this.selectionRange=new DOMSelectionState;this.selectionChanged=false;this.delayedFlush=-1;this.resizeTimeout=-1;this.queue=[];this.delayedAndroidKey=null;this.flushingAndroidKey=-1;this.lastChange=0;this.scrollTargets=[];this.intersection=null;this.resizeScroll=null;this.resizeContent=null;this.intersecting=false;this.gapIntersection=null;this.gaps=[];this.parentCheck=-1;this.dom=view.contentDOM;this.observer=new MutationObserver(mutations=>{for(let mut of mutations)this.queue.push(mut);if((browser.ie&&browser.ie_version<=11||browser.ios&&view.composing)&&mutations.some(m=>m.type==\"childList\"&&m.removedNodes.length||m.type==\"characterData\"&&m.oldValue.length>m.target.nodeValue.length))this.flushSoon();else this.flush();});if(useCharData)this.onCharData=event=>{this.queue.push({target:event.target,type:\"characterData\",oldValue:event.prevValue});this.flushSoon();};this.onSelectionChange=this.onSelectionChange.bind(this);this.onResize=this.onResize.bind(this);this.onPrint=this.onPrint.bind(this);this.onScroll=this.onScroll.bind(this);if(typeof ResizeObserver==\"function\"){this.resizeScroll=new ResizeObserver(()=>{var _a;if(((_a=this.view.docView)===null||_a===void 0?void 0:_a.lastUpdate)<Date.now()-75)this.onResize();});this.resizeScroll.observe(view.scrollDOM);this.resizeContent=new ResizeObserver(()=>this.view.requestMeasure());this.resizeContent.observe(view.contentDOM);}this.addWindowListeners(this.win=view.win);this.start();if(typeof IntersectionObserver==\"function\"){this.intersection=new IntersectionObserver(entries=>{if(this.parentCheck<0)this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3);if(entries.length>0&&entries[entries.length-1].intersectionRatio>0!=this.intersecting){this.intersecting=!this.intersecting;if(this.intersecting!=this.view.inView)this.onScrollChanged(document.createEvent(\"Event\"));}},{threshold:[0,.001]});this.intersection.observe(this.dom);this.gapIntersection=new IntersectionObserver(entries=>{if(entries.length>0&&entries[entries.length-1].intersectionRatio>0)this.onScrollChanged(document.createEvent(\"Event\"));},{});}this.listenForScroll();this.readSelectionRange();}};function findChild(cView,dom,dir){while(dom){let curView=ContentView.get(dom);if(curView&&curView.parent==cView)return curView;let parent=dom.parentNode;dom=parent!=cView.dom?parent:dir>0?dom.nextSibling:dom.previousSibling;}return null;}function safariSelectionRangeHack(view){let found=null;function read(event){event.preventDefault();event.stopImmediatePropagation();found=event.getTargetRanges()[0];}view.contentDOM.addEventListener(\"beforeinput\",read,true);view.dom.ownerDocument.execCommand(\"indent\");view.contentDOM.removeEventListener(\"beforeinput\",read,true);if(!found)return null;let anchorNode=found.startContainer,anchorOffset=found.startOffset;let focusNode=found.endContainer,focusOffset=found.endOffset;let curAnchor=view.docView.domAtPos(view.state.selection.main.anchor);if(isEquivalentPosition(curAnchor.node,curAnchor.offset,focusNode,focusOffset))[anchorNode,anchorOffset,focusNode,focusOffset]=[focusNode,focusOffset,anchorNode,anchorOffset];return{anchorNode,anchorOffset,focusNode,focusOffset};}var EditorView=class{/**\n  The current editor state.\n  */get state(){return this.viewState.state;}/**\n  To be able to display large documents without consuming too much\n  memory or overloading the browser, CodeMirror only draws the\n  code that is visible (plus a margin around it) to the DOM. This\n  property tells you the extent of the current drawn viewport, in\n  document positions.\n  */get viewport(){return this.viewState.viewport;}/**\n  When there are, for example, large collapsed ranges in the\n  viewport, its size can be a lot bigger than the actual visible\n  content. Thus, if you are doing something like styling the\n  content in the viewport, it is preferable to only do so for\n  these ranges, which are the subset of the viewport that is\n  actually drawn.\n  */get visibleRanges(){return this.viewState.visibleRanges;}/**\n  Returns false when the editor is entirely scrolled out of view\n  or otherwise hidden.\n  */get inView(){return this.viewState.inView;}/**\n  Indicates whether the user is currently composing text via\n  [IME](https://en.wikipedia.org/wiki/Input_method), and at least\n  one change has been made in the current composition.\n  */get composing(){return this.inputState.composing>0;}/**\n  Indicates whether the user is currently in composing state. Note\n  that on some platforms, like Android, this will be the case a\n  lot, since just putting the cursor on a word starts a\n  composition there.\n  */get compositionStarted(){return this.inputState.composing>=0;}/**\n  The document or shadow root that the view lives in.\n  */get root(){return this._root;}/**\n  @internal\n  */get win(){return this.dom.ownerDocument.defaultView||window;}dispatch(...input){let tr=input.length==1&&input[0]instanceof Transaction?input[0]:this.state.update(...input);this._dispatch(tr,this);}/**\n  Update the view for the given array of transactions. This will\n  update the visible document and selection to match the state\n  produced by the transactions, and notify view plugins of the\n  change. You should usually call\n  [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead, which uses this\n  as a primitive.\n  */update(transactions){if(this.updateState!=0)throw new Error(\"Calls to EditorView.update are not allowed while an update is in progress\");let redrawn=false,attrsChanged=false,update;let state=this.state;for(let tr of transactions){if(tr.startState!=state)throw new RangeError(\"Trying to update state with a transaction that doesn't start from the previous state.\");state=tr.state;}if(this.destroyed){this.viewState.state=state;return;}let focus=this.hasFocus,focusFlag=0,dispatchFocus=null;if(transactions.some(tr=>tr.annotation(isFocusChange))){this.inputState.notifiedFocused=focus;focusFlag=1;}else if(focus!=this.inputState.notifiedFocused){this.inputState.notifiedFocused=focus;dispatchFocus=focusChangeTransaction(state,focus);if(!dispatchFocus)focusFlag=1;}let pendingKey=this.observer.delayedAndroidKey,domChange=null;if(pendingKey){this.observer.clearDelayedAndroidKey();domChange=this.observer.readChange();if(domChange&&!this.state.doc.eq(state.doc)||!this.state.selection.eq(state.selection))domChange=null;}else{this.observer.clear();}if(state.facet(EditorState.phrases)!=this.state.facet(EditorState.phrases))return this.setState(state);update=ViewUpdate.create(this,state,transactions);update.flags|=focusFlag;let scrollTarget=this.viewState.scrollTarget;try{this.updateState=2;for(let tr of transactions){if(scrollTarget)scrollTarget=scrollTarget.map(tr.changes);if(tr.scrollIntoView){let{main}=tr.state.selection;scrollTarget=new ScrollTarget(main.empty?main:EditorSelection.cursor(main.head,main.head>main.anchor?-1:1));}for(let e of tr.effects)if(e.is(scrollIntoView))scrollTarget=e.value;}this.viewState.update(update,scrollTarget);this.bidiCache=CachedOrder.update(this.bidiCache,update.changes);if(!update.empty){this.updatePlugins(update);this.inputState.update(update);}redrawn=this.docView.update(update);if(this.state.facet(styleModule)!=this.styleModules)this.mountStyles();attrsChanged=this.updateAttrs();this.showAnnouncements(transactions);this.docView.updateSelection(redrawn,transactions.some(tr=>tr.isUserEvent(\"select.pointer\")));}finally{this.updateState=0;}if(update.startState.facet(theme)!=update.state.facet(theme))this.viewState.mustMeasureContent=true;if(redrawn||attrsChanged||scrollTarget||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)this.requestMeasure();if(!update.empty)for(let listener of this.state.facet(updateListener))listener(update);if(dispatchFocus||domChange)Promise.resolve().then(()=>{if(dispatchFocus&&this.state==dispatchFocus.startState)this.dispatch(dispatchFocus);if(domChange){if(!applyDOMChange(this,domChange)&&pendingKey.force)dispatchKey(this.contentDOM,pendingKey.key,pendingKey.keyCode);}});}/**\n  Reset the view to the given state. (This will cause the entire\n  document to be redrawn and all view plugins to be reinitialized,\n  so you should probably only use it when the new state isn't\n  derived from the old state. Otherwise, use\n  [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead.)\n  */setState(newState){if(this.updateState!=0)throw new Error(\"Calls to EditorView.setState are not allowed while an update is in progress\");if(this.destroyed){this.viewState.state=newState;return;}this.updateState=2;let hadFocus=this.hasFocus;try{for(let plugin2 of this.plugins)plugin2.destroy(this);this.viewState=new ViewState(newState);this.plugins=newState.facet(viewPlugin).map(spec=>new PluginInstance(spec));this.pluginMap.clear();for(let plugin2 of this.plugins)plugin2.update(this);this.docView=new DocView(this);this.inputState.ensureHandlers(this,this.plugins);this.mountStyles();this.updateAttrs();this.bidiCache=[];}finally{this.updateState=0;}if(hadFocus)this.focus();this.requestMeasure();}updatePlugins(update){let prevSpecs=update.startState.facet(viewPlugin),specs=update.state.facet(viewPlugin);if(prevSpecs!=specs){let newPlugins=[];for(let spec of specs){let found=prevSpecs.indexOf(spec);if(found<0){newPlugins.push(new PluginInstance(spec));}else{let plugin2=this.plugins[found];plugin2.mustUpdate=update;newPlugins.push(plugin2);}}for(let plugin2 of this.plugins)if(plugin2.mustUpdate!=update)plugin2.destroy(this);this.plugins=newPlugins;this.pluginMap.clear();this.inputState.ensureHandlers(this,this.plugins);}else{for(let p of this.plugins)p.mustUpdate=update;}for(let i=0;i<this.plugins.length;i++)this.plugins[i].update(this);}/**\n  @internal\n  */measure(flush=true){if(this.destroyed)return;if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.measureScheduled=0;if(flush)this.observer.forceFlush();let updated=null;let sDOM=this.scrollDOM,{scrollTop}=sDOM;let{scrollAnchorPos,scrollAnchorHeight}=this.viewState;this.viewState.scrollAnchorHeight=-1;if(scrollAnchorHeight<0||scrollTop!=this.viewState.scrollTop){if(scrollTop>sDOM.scrollHeight-sDOM.clientHeight-4){scrollAnchorPos=-1;scrollAnchorHeight=this.viewState.heightMap.height;}else{let block=this.viewState.lineBlockAtHeight(scrollTop);scrollAnchorPos=block.from;scrollAnchorHeight=block.top;}}try{for(let i=0;;i++){this.updateState=1;let oldViewport=this.viewport;let changed=this.viewState.measure(this);if(!changed&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(i>5){console.warn(this.measureRequests.length?\"Measure loop restarted more than 5 times\":\"Viewport failed to stabilize\");break;}let measuring=[];if(!(changed&4))[this.measureRequests,measuring]=[measuring,this.measureRequests];let measured=measuring.map(m=>{try{return m.read(this);}catch(e){logException(this.state,e);return BadMeasure;}});let update=ViewUpdate.create(this,this.state,[]),redrawn=false,scrolled=false;update.flags|=changed;if(!updated)updated=update;else updated.flags|=changed;this.updateState=2;if(!update.empty){this.updatePlugins(update);this.inputState.update(update);this.updateAttrs();redrawn=this.docView.update(update);}for(let i2=0;i2<measuring.length;i2++)if(measured[i2]!=BadMeasure){try{let m=measuring[i2];if(m.write)m.write(measured[i2],this);}catch(e){logException(this.state,e);}}if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget);this.viewState.scrollTarget=null;scrolled=true;}else if(scrollAnchorHeight>-1){let newAnchorHeight=scrollAnchorPos<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(scrollAnchorPos).top;let diff=newAnchorHeight-scrollAnchorHeight;if(diff>1||diff<-1){sDOM.scrollTop=scrollTop+diff;scrolled=true;}}}if(redrawn)this.docView.updateSelection(true);if(this.viewport.from==oldViewport.from&&this.viewport.to==oldViewport.to&&!scrolled&&this.measureRequests.length==0)break;scrollAnchorHeight=-1;}}finally{this.updateState=0;this.measureScheduled=-1;}if(updated&&!updated.empty)for(let listener of this.state.facet(updateListener))listener(updated);}/**\n  Get the CSS classes for the currently active editor themes.\n  */get themeClasses(){return baseThemeID+\" \"+(this.state.facet(darkTheme)?baseDarkID:baseLightID)+\" \"+this.state.facet(theme);}updateAttrs(){let editorAttrs=attrsFromFacet(this,editorAttributes,{class:\"cm-editor\"+(this.hasFocus?\" cm-focused \":\" \")+this.themeClasses});let contentAttrs={spellcheck:\"false\",autocorrect:\"off\",autocapitalize:\"off\",translate:\"no\",contenteditable:!this.state.facet(editable)?\"false\":\"true\",class:\"cm-content\",style:`${browser.tabSize}: ${this.state.tabSize}`,role:\"textbox\",\"aria-multiline\":\"true\"};if(this.state.readOnly)contentAttrs[\"aria-readonly\"]=\"true\";attrsFromFacet(this,contentAttributes,contentAttrs);let changed=this.observer.ignore(()=>{let changedContent=updateAttrs(this.contentDOM,this.contentAttrs,contentAttrs);let changedEditor=updateAttrs(this.dom,this.editorAttrs,editorAttrs);return changedContent||changedEditor;});this.editorAttrs=editorAttrs;this.contentAttrs=contentAttrs;return changed;}showAnnouncements(trs){let first=true;for(let tr of trs)for(let effect of tr.effects)if(effect.is(EditorView.announce)){if(first)this.announceDOM.textContent=\"\";first=false;let div=this.announceDOM.appendChild(document.createElement(\"div\"));div.textContent=effect.value;}}mountStyles(){this.styleModules=this.state.facet(styleModule);StyleModule.mount(this.root,this.styleModules.concat(baseTheme$1).reverse());}readMeasured(){if(this.updateState==2)throw new Error(\"Reading the editor layout isn't allowed during an update\");if(this.updateState==0&&this.measureScheduled>-1)this.measure(false);}/**\n  Schedule a layout measurement, optionally providing callbacks to\n  do custom DOM measuring followed by a DOM write phase. Using\n  this is preferable reading DOM layout directly from, for\n  example, an event handler, because it'll make sure measuring and\n  drawing done by other components is synchronized, avoiding\n  unnecessary DOM layout computations.\n  */requestMeasure(request){if(this.measureScheduled<0)this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure());if(request){if(this.measureRequests.indexOf(request)>-1)return;if(request.key!=null)for(let i=0;i<this.measureRequests.length;i++){if(this.measureRequests[i].key===request.key){this.measureRequests[i]=request;return;}}this.measureRequests.push(request);}}/**\n  Get the value of a specific plugin, if present. Note that\n  plugins that crash can be dropped from a view, so even when you\n  know you registered a given plugin, it is recommended to check\n  the return value of this method.\n  */plugin(plugin2){let known=this.pluginMap.get(plugin2);if(known===void 0||known&&known.spec!=plugin2)this.pluginMap.set(plugin2,known=this.plugins.find(p=>p.spec==plugin2)||null);return known&&known.update(this).value;}/**\n  The top position of the document, in screen coordinates. This\n  may be negative when the editor is scrolled down. Points\n  directly to the top of the first line, not above the padding.\n  */get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop;}/**\n  Reports the padding above and below the document.\n  */get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom};}/**\n  Find the text line or block widget at the given vertical\n  position (which is interpreted as relative to the [top of the\n  document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop)).\n  */elementAtHeight(height){this.readMeasured();return this.viewState.elementAtHeight(height);}/**\n  Find the line block (see\n  [`lineBlockAt`](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt) at the given\n  height, again interpreted relative to the [top of the\n  document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop).\n  */lineBlockAtHeight(height){this.readMeasured();return this.viewState.lineBlockAtHeight(height);}/**\n  Get the extent and vertical position of all [line\n  blocks](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt) in the viewport. Positions\n  are relative to the [top of the\n  document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop);\n  */get viewportLineBlocks(){return this.viewState.viewportLines;}/**\n  Find the line block around the given document position. A line\n  block is a range delimited on both sides by either a\n  non-[hidden](https://codemirror.net/6/docs/ref/#view.Decoration^replace) line breaks, or the\n  start/end of the document. It will usually just hold a line of\n  text, but may be broken into multiple textblocks by block\n  widgets.\n  */lineBlockAt(pos){return this.viewState.lineBlockAt(pos);}/**\n  The editor's total content height.\n  */get contentHeight(){return this.viewState.contentHeight;}/**\n  Move a cursor position by [grapheme\n  cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak). `forward` determines whether\n  the motion is away from the line start, or towards it. In\n  bidirectional text, the line is traversed in visual order, using\n  the editor's [text direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection).\n  When the start position was the last one on the line, the\n  returned position will be across the line break. If there is no\n  further line, the original position is returned.\n  \n  By default, this method moves over a single cluster. The\n  optional `by` argument can be used to move across more. It will\n  be called with the first cluster as argument, and should return\n  a predicate that determines, for each subsequent cluster,\n  whether it should also be moved over.\n  */moveByChar(start,forward,by){return skipAtoms(this,start,moveByChar(this,start,forward,by));}/**\n  Move a cursor position across the next group of either\n  [letters](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) or non-letter\n  non-whitespace characters.\n  */moveByGroup(start,forward){return skipAtoms(this,start,moveByChar(this,start,forward,initial=>byGroup(this,start.head,initial)));}/**\n  Move to the next line boundary in the given direction. If\n  `includeWrap` is true, line wrapping is on, and there is a\n  further wrap point on the current line, the wrap point will be\n  returned. Otherwise this function will return the start or end\n  of the line.\n  */moveToLineBoundary(start,forward,includeWrap=true){return moveToLineBoundary(this,start,forward,includeWrap);}/**\n  Move a cursor position vertically. When `distance` isn't given,\n  it defaults to moving to the next line (including wrapped\n  lines). Otherwise, `distance` should provide a positive distance\n  in pixels.\n  \n  When `start` has a\n  [`goalColumn`](https://codemirror.net/6/docs/ref/#state.SelectionRange.goalColumn), the vertical\n  motion will use that as a target horizontal position. Otherwise,\n  the cursor's own horizontal position is used. The returned\n  cursor will have its goal column set to whichever column was\n  used.\n  */moveVertically(start,forward,distance){return skipAtoms(this,start,moveVertically(this,start,forward,distance));}/**\n  Find the DOM parent node and offset (child offset if `node` is\n  an element, character offset when it is a text node) at the\n  given document position.\n  \n  Note that for positions that aren't currently in\n  `visibleRanges`, the resulting DOM position isn't necessarily\n  meaningful (it may just point before or after a placeholder\n  element).\n  */domAtPos(pos){return this.docView.domAtPos(pos);}/**\n  Find the document position at the given DOM node. Can be useful\n  for associating positions with DOM events. Will raise an error\n  when `node` isn't part of the editor content.\n  */posAtDOM(node,offset=0){return this.docView.posFromDOM(node,offset);}posAtCoords(coords,precise=true){this.readMeasured();return posAtCoords(this,coords,precise);}/**\n  Get the screen coordinates at the given document position.\n  `side` determines whether the coordinates are based on the\n  element before (-1) or after (1) the position (if no element is\n  available on the given side, the method will transparently use\n  another strategy to get reasonable coordinates).\n  */coordsAtPos(pos,side=1){this.readMeasured();let rect=this.docView.coordsAt(pos,side);if(!rect||rect.left==rect.right)return rect;let line=this.state.doc.lineAt(pos),order=this.bidiSpans(line);let span=order[BidiSpan.find(order,pos-line.from,-1,side)];return flattenRect(rect,span.dir==Direction.LTR==side>0);}/**\n  The default width of a character in the editor. May not\n  accurately reflect the width of all characters (given variable\n  width fonts or styling of invididual ranges).\n  */get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth;}/**\n  The default height of a line in the editor. May not be accurate\n  for all lines.\n  */get defaultLineHeight(){return this.viewState.heightOracle.lineHeight;}/**\n  The text direction\n  ([`direction`](https://developer.mozilla.org/en-US/docs/Web/CSS/direction)\n  CSS property) of the editor's content element.\n  */get textDirection(){return this.viewState.defaultTextDirection;}/**\n  Find the text direction of the block at the given position, as\n  assigned by CSS. If\n  [`perLineTextDirection`](https://codemirror.net/6/docs/ref/#view.EditorView^perLineTextDirection)\n  isn't enabled, or the given position is outside of the viewport,\n  this will always return the same as\n  [`textDirection`](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection). Note that\n  this may trigger a DOM layout.\n  */textDirectionAt(pos){let perLine=this.state.facet(perLineTextDirection);if(!perLine||pos<this.viewport.from||pos>this.viewport.to)return this.textDirection;this.readMeasured();return this.docView.textDirectionAt(pos);}/**\n  Whether this editor [wraps lines](https://codemirror.net/6/docs/ref/#view.EditorView.lineWrapping)\n  (as determined by the\n  [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space)\n  CSS property of its content element).\n  */get lineWrapping(){return this.viewState.heightOracle.lineWrapping;}/**\n  Returns the bidirectional text structure of the given line\n  (which should be in the current document) as an array of span\n  objects. The order of these spans matches the [text\n  direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection)—if that is\n  left-to-right, the leftmost spans come first, otherwise the\n  rightmost spans come first.\n  */bidiSpans(line){if(line.length>MaxBidiLine)return trivialOrder(line.length);let dir=this.textDirectionAt(line.from);for(let entry of this.bidiCache)if(entry.from==line.from&&entry.dir==dir)return entry.order;let order=computeOrder(line.text,dir);this.bidiCache.push(new CachedOrder(line.from,line.to,dir,order));return order;}/**\n  Check whether the editor has focus.\n  */get hasFocus(){var _a;return(this.dom.ownerDocument.hasFocus()||browser.safari&&((_a=this.inputState)===null||_a===void 0?void 0:_a.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM;}/**\n  Put focus on the editor.\n  */focus(){this.observer.ignore(()=>{focusPreventScroll(this.contentDOM);this.docView.updateSelection();});}/**\n  Update the [root](https://codemirror.net/6/docs/ref/##view.EditorViewConfig.root) in which the editor lives. This is only\n  necessary when moving the editor's existing DOM to a new window or shadow root.\n  */setRoot(root){if(this._root!=root){this._root=root;this.observer.setWindow((root.nodeType==9?root:root.ownerDocument).defaultView||window);this.mountStyles();}}/**\n  Clean up this editor view, removing its element from the\n  document, unregistering event handlers, and notifying\n  plugins. The view instance can no longer be used after\n  calling this.\n  */destroy(){for(let plugin2 of this.plugins)plugin2.destroy(this);this.plugins=[];this.inputState.destroy();this.dom.remove();this.observer.destroy();if(this.measureScheduled>-1)this.win.cancelAnimationFrame(this.measureScheduled);this.destroyed=true;}/**\n  Returns an effect that can be\n  [added](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) to a transaction to\n  cause it to scroll the given position or range into view.\n  */static scrollIntoView(pos,options={}){return scrollIntoView.of(new ScrollTarget(typeof pos==\"number\"?EditorSelection.cursor(pos):pos,options.y,options.x,options.yMargin,options.xMargin));}/**\n  Returns an extension that can be used to add DOM event handlers.\n  The value should be an object mapping event names to handler\n  functions. For any given event, such functions are ordered by\n  extension precedence, and the first handler to return true will\n  be assumed to have handled that event, and no other handlers or\n  built-in behavior will be activated for it. These are registered\n  on the [content element](https://codemirror.net/6/docs/ref/#view.EditorView.contentDOM), except\n  for `scroll` handlers, which will be called any time the\n  editor's [scroll element](https://codemirror.net/6/docs/ref/#view.EditorView.scrollDOM) or one of\n  its parent nodes is scrolled.\n  */static domEventHandlers(handlers2){return ViewPlugin.define(()=>({}),{eventHandlers:handlers2});}/**\n  Create a theme extension. The first argument can be a\n  [`style-mod`](https://github.com/marijnh/style-mod#documentation)\n  style spec providing the styles for the theme. These will be\n  prefixed with a generated class for the style.\n  \n  Because the selectors will be prefixed with a scope class, rule\n  that directly match the editor's [wrapper\n  element](https://codemirror.net/6/docs/ref/#view.EditorView.dom)—to which the scope class will be\n  added—need to be explicitly differentiated by adding an `&` to\n  the selector for that element—for example\n  `&.cm-focused`.\n  \n  When `dark` is set to true, the theme will be marked as dark,\n  which will cause the `&dark` rules from [base\n  themes](https://codemirror.net/6/docs/ref/#view.EditorView^baseTheme) to be used (as opposed to\n  `&light` when a light theme is active).\n  */static theme(spec,options){let prefix=StyleModule.newName();let result=[theme.of(prefix),styleModule.of(buildTheme(`.${prefix}`,spec))];if(options&&options.dark)result.push(darkTheme.of(true));return result;}/**\n  Create an extension that adds styles to the base theme. Like\n  with [`theme`](https://codemirror.net/6/docs/ref/#view.EditorView^theme), use `&` to indicate the\n  place of the editor wrapper element when directly targeting\n  that. You can also use `&dark` or `&light` instead to only\n  target editors with a dark or light theme.\n  */static baseTheme(spec){return Prec.lowest(styleModule.of(buildTheme(\".\"+baseThemeID,spec,lightDarkIDs)));}/**\n  Retrieve an editor view instance from the view's DOM\n  representation.\n  */static findFromDOM(dom){var _a;let content=dom.querySelector(\".cm-content\");let cView=content&&ContentView.get(content)||ContentView.get(dom);return((_a=cView===null||cView===void 0?void 0:cView.rootView)===null||_a===void 0?void 0:_a.view)||null;}/**\n  Construct a new view. You'll want to either provide a `parent`\n  option, or put `view.dom` into your document after creating a\n  view, so that the user can see the editor.\n  */constructor(config={}){this.plugins=[];this.pluginMap=/* @__PURE__ */new Map;this.editorAttrs={};this.contentAttrs={};this.bidiCache=[];this.destroyed=false;this.updateState=2;this.measureScheduled=-1;this.measureRequests=[];this.contentDOM=document.createElement(\"div\");this.scrollDOM=document.createElement(\"div\");this.scrollDOM.tabIndex=-1;this.scrollDOM.className=\"cm-scroller\";this.scrollDOM.appendChild(this.contentDOM);this.announceDOM=document.createElement(\"div\");this.announceDOM.style.cssText=\"position: fixed; top: -10000px\";this.announceDOM.setAttribute(\"aria-live\",\"polite\");this.dom=document.createElement(\"div\");this.dom.appendChild(this.announceDOM);this.dom.appendChild(this.scrollDOM);this._dispatch=config.dispatch||(tr=>this.update([tr]));this.dispatch=this.dispatch.bind(this);this._root=config.root||getRoot(config.parent)||document;this.viewState=new ViewState(config.state||EditorState.create(config));this.plugins=this.state.facet(viewPlugin).map(spec=>new PluginInstance(spec));for(let plugin2 of this.plugins)plugin2.update(this);this.observer=new DOMObserver(this);this.inputState=new InputState(this);this.inputState.ensureHandlers(this,this.plugins);this.docView=new DocView(this);this.mountStyles();this.updateAttrs();this.updateState=0;this.requestMeasure();if(config.parent)config.parent.appendChild(this.dom);}};EditorView.styleModule=styleModule;EditorView.inputHandler=inputHandler;EditorView.focusChangeEffect=focusChangeEffect;EditorView.perLineTextDirection=perLineTextDirection;EditorView.exceptionSink=exceptionSink;EditorView.updateListener=updateListener;EditorView.editable=editable;EditorView.mouseSelectionStyle=mouseSelectionStyle;EditorView.dragMovesSelection=dragMovesSelection$1;EditorView.clickAddsSelectionRange=clickAddsSelectionRange;EditorView.decorations=decorations;EditorView.atomicRanges=atomicRanges;EditorView.scrollMargins=scrollMargins;EditorView.darkTheme=darkTheme;EditorView.contentAttributes=contentAttributes;EditorView.editorAttributes=editorAttributes;EditorView.lineWrapping=/* @__PURE__ */EditorView.contentAttributes.of({class:\"cm-lineWrapping\"});EditorView.announce=/* @__PURE__ */StateEffect.define();var MaxBidiLine=4096;var BadMeasure={};var CachedOrder=class{static update(cache,changes){if(changes.empty)return cache;let result=[],lastDir=cache.length?cache[cache.length-1].dir:Direction.LTR;for(let i=Math.max(0,cache.length-10);i<cache.length;i++){let entry=cache[i];if(entry.dir==lastDir&&!changes.touchesRange(entry.from,entry.to))result.push(new CachedOrder(changes.mapPos(entry.from,1),changes.mapPos(entry.to,-1),entry.dir,entry.order));}return result;}constructor(from,to,dir,order){this.from=from;this.to=to;this.dir=dir;this.order=order;}};function attrsFromFacet(view,facet,base2){for(let sources=view.state.facet(facet),i=sources.length-1;i>=0;i--){let source=sources[i],value=typeof source==\"function\"?source(view):source;if(value)combineAttrs(value,base2);}return base2;}var currentPlatform=browser.mac?\"mac\":browser.windows?\"win\":browser.linux?\"linux\":\"key\";function normalizeKeyName(name,platform){const parts=name.split(/-(?!$)/);let result=parts[parts.length-1];if(result==\"Space\")result=\" \";let alt,ctrl,shift2,meta;for(let i=0;i<parts.length-1;++i){const mod=parts[i];if(/^(cmd|meta|m)$/i.test(mod))meta=true;else if(/^a(lt)?$/i.test(mod))alt=true;else if(/^(c|ctrl|control)$/i.test(mod))ctrl=true;else if(/^s(hift)?$/i.test(mod))shift2=true;else if(/^mod$/i.test(mod)){if(platform==\"mac\")meta=true;else ctrl=true;}else throw new Error(\"Unrecognized modifier name: \"+mod);}if(alt)result=\"Alt-\"+result;if(ctrl)result=\"Ctrl-\"+result;if(meta)result=\"Meta-\"+result;if(shift2)result=\"Shift-\"+result;return result;}function modifiers(name,event,shift2){if(event.altKey)name=\"Alt-\"+name;if(event.ctrlKey)name=\"Ctrl-\"+name;if(event.metaKey)name=\"Meta-\"+name;if(shift2!==false&&event.shiftKey)name=\"Shift-\"+name;return name;}var handleKeyEvents=/* @__PURE__ */Prec.default(/* @__PURE__ */EditorView.domEventHandlers({keydown(event,view){return runHandlers(getKeymap(view.state),event,view,\"editor\");}}));var keymap=/* @__PURE__ */Facet.define({enables:handleKeyEvents});var Keymaps=/* @__PURE__ */new WeakMap;function getKeymap(state){let bindings=state.facet(keymap);let map=Keymaps.get(bindings);if(!map)Keymaps.set(bindings,map=buildKeymap(bindings.reduce((a,b)=>a.concat(b),[])));return map;}function runScopeHandlers(view,event,scope){return runHandlers(getKeymap(view.state),event,view,scope);}var storedPrefix=null;var PrefixTimeout=4e3;function buildKeymap(bindings,platform=currentPlatform){let bound=/* @__PURE__ */Object.create(null);let isPrefix=/* @__PURE__ */Object.create(null);let checkPrefix=(name,is)=>{let current=isPrefix[name];if(current==null)isPrefix[name]=is;else if(current!=is)throw new Error(\"Key binding \"+name+\" is used both as a regular binding and as a multi-stroke prefix\");};let add=(scope,key,command,preventDefault)=>{var _a,_b;let scopeObj=bound[scope]||(bound[scope]=/* @__PURE__ */Object.create(null));let parts=key.split(/ (?!$)/).map(k=>normalizeKeyName(k,platform));for(let i=1;i<parts.length;i++){let prefix=parts.slice(0,i).join(\" \");checkPrefix(prefix,true);if(!scopeObj[prefix])scopeObj[prefix]={preventDefault:true,run:[view=>{let ourObj=storedPrefix={view,prefix,scope};setTimeout(()=>{if(storedPrefix==ourObj)storedPrefix=null;},PrefixTimeout);return true;}]};}let full=parts.join(\" \");checkPrefix(full,false);let binding=scopeObj[full]||(scopeObj[full]={preventDefault:false,run:((_b=(_a=scopeObj._any)===null||_a===void 0?void 0:_a.run)===null||_b===void 0?void 0:_b.slice())||[]});if(command)binding.run.push(command);if(preventDefault)binding.preventDefault=true;};for(let b of bindings){let scopes=b.scope?b.scope.split(\" \"):[\"editor\"];if(b.any)for(let scope of scopes){let scopeObj=bound[scope]||(bound[scope]=/* @__PURE__ */Object.create(null));if(!scopeObj._any)scopeObj._any={preventDefault:false,run:[]};for(let key in scopeObj)scopeObj[key].run.push(b.any);}let name=b[platform]||b.key;if(!name)continue;for(let scope of scopes){add(scope,name,b.run,b.preventDefault);if(b.shift)add(scope,\"Shift-\"+name,b.shift,b.preventDefault);}}return bound;}function runHandlers(map,event,view,scope){let name=keyName(event);let charCode=codePointAt(name,0),isChar=codePointSize(charCode)==name.length&&name!=\" \";let prefix=\"\",fallthrough=false;if(storedPrefix&&storedPrefix.view==view&&storedPrefix.scope==scope){prefix=storedPrefix.prefix+\" \";if(fallthrough=modifierCodes.indexOf(event.keyCode)<0)storedPrefix=null;}let ran=/* @__PURE__ */new Set;let runFor=binding=>{if(binding){for(let cmd of binding.run)if(!ran.has(cmd)){ran.add(cmd);if(cmd(view,event))return true;}if(binding.preventDefault)fallthrough=true;}return false;};let scopeObj=map[scope],baseName,shiftName;if(scopeObj){if(runFor(scopeObj[prefix+modifiers(name,event,!isChar)]))return true;if(isChar&&(event.altKey||event.metaKey||event.ctrlKey)&&// Ctrl-Alt may be used for AltGr on Windows\n!(browser.windows&&event.ctrlKey&&event.altKey)&&(baseName=base[event.keyCode])&&baseName!=name){if(runFor(scopeObj[prefix+modifiers(baseName,event,true)]))return true;else if(event.shiftKey&&(shiftName=shift[event.keyCode])!=name&&shiftName!=baseName&&runFor(scopeObj[prefix+modifiers(shiftName,event,false)]))return true;}else if(isChar&&event.shiftKey){if(runFor(scopeObj[prefix+modifiers(name,event,true)]))return true;}if(runFor(scopeObj._any))return true;}return fallthrough;}var RectangleMarker=class{draw(){let elt=document.createElement(\"div\");elt.className=this.className;this.adjust(elt);return elt;}update(elt,prev){if(prev.className!=this.className)return false;this.adjust(elt);return true;}adjust(elt){elt.style.left=this.left+\"px\";elt.style.top=this.top+\"px\";if(this.width!=null)elt.style.width=this.width+\"px\";elt.style.height=this.height+\"px\";}eq(p){return this.left==p.left&&this.top==p.top&&this.width==p.width&&this.height==p.height&&this.className==p.className;}/**\n  Create a set of rectangles for the given selection range,\n  assigning them theclass`className`. Will create a single\n  rectangle for empty ranges, and a set of selection-style\n  rectangles covering the range's content (in a bidi-aware\n  way) for non-empty ones.\n  */static forRange(view,className,range){if(range.empty){let pos=view.coordsAtPos(range.head,range.assoc||1);if(!pos)return[];let base2=getBase(view);return[new RectangleMarker(className,pos.left-base2.left,pos.top-base2.top,null,pos.bottom-pos.top)];}else{return rectanglesForRange(view,className,range);}}/**\n  Create a marker with the given class and dimensions. If `width`\n  is null, the DOM element will get no width style.\n  */constructor(className,left,top2,width,height){this.className=className;this.left=left;this.top=top2;this.width=width;this.height=height;}};function getBase(view){let rect=view.scrollDOM.getBoundingClientRect();let left=view.textDirection==Direction.LTR?rect.left:rect.right-view.scrollDOM.clientWidth;return{left:left-view.scrollDOM.scrollLeft,top:rect.top-view.scrollDOM.scrollTop};}function wrappedLine(view,pos,inside2){let range=EditorSelection.cursor(pos);return{from:Math.max(inside2.from,view.moveToLineBoundary(range,false,true).from),to:Math.min(inside2.to,view.moveToLineBoundary(range,true,true).from),type:BlockType.Text};}function rectanglesForRange(view,className,range){if(range.to<=view.viewport.from||range.from>=view.viewport.to)return[];let from=Math.max(range.from,view.viewport.from),to=Math.min(range.to,view.viewport.to);let ltr=view.textDirection==Direction.LTR;let content=view.contentDOM,contentRect=content.getBoundingClientRect(),base2=getBase(view);let lineElt=content.querySelector(\".cm-line\"),lineStyle=lineElt&&window.getComputedStyle(lineElt);let leftSide=contentRect.left+(lineStyle?parseInt(lineStyle.paddingLeft)+Math.min(0,parseInt(lineStyle.textIndent)):0);let rightSide=contentRect.right-(lineStyle?parseInt(lineStyle.paddingRight):0);let startBlock=blockAt(view,from),endBlock=blockAt(view,to);let visualStart=startBlock.type==BlockType.Text?startBlock:null;let visualEnd=endBlock.type==BlockType.Text?endBlock:null;if(visualStart&&(view.lineWrapping||startBlock.widgetLineBreaks))visualStart=wrappedLine(view,from,visualStart);if(visualEnd&&(view.lineWrapping||endBlock.widgetLineBreaks))visualEnd=wrappedLine(view,to,visualEnd);if(visualStart&&visualEnd&&visualStart.from==visualEnd.from){return pieces(drawForLine(range.from,range.to,visualStart));}else{let top2=visualStart?drawForLine(range.from,null,visualStart):drawForWidget(startBlock,false);let bottom=visualEnd?drawForLine(null,range.to,visualEnd):drawForWidget(endBlock,true);let between=[];if((visualStart||startBlock).to<(visualEnd||endBlock).from-(visualStart&&visualEnd?1:0)||startBlock.widgetLineBreaks>1&&top2.bottom+view.defaultLineHeight/2<bottom.top)between.push(piece(leftSide,top2.bottom,rightSide,bottom.top));else if(top2.bottom<bottom.top&&view.elementAtHeight((top2.bottom+bottom.top)/2).type==BlockType.Text)top2.bottom=bottom.top=(top2.bottom+bottom.top)/2;return pieces(top2).concat(between).concat(pieces(bottom));}function piece(left,top2,right,bottom){return new RectangleMarker(className,left-base2.left,top2-base2.top-.01,right-left,bottom-top2+.01);}function pieces({top:top2,bottom,horizontal}){let pieces2=[];for(let i=0;i<horizontal.length;i+=2)pieces2.push(piece(horizontal[i],top2,horizontal[i+1],bottom));return pieces2;}function drawForLine(from2,to2,line){let top2=1e9,bottom=-1e9,horizontal=[];function addSpan(from3,fromOpen,to3,toOpen,dir){let fromCoords=view.coordsAtPos(from3,from3==line.to?-2:2);let toCoords=view.coordsAtPos(to3,to3==line.from?2:-2);if(!fromCoords||!toCoords)return;top2=Math.min(fromCoords.top,toCoords.top,top2);bottom=Math.max(fromCoords.bottom,toCoords.bottom,bottom);if(dir==Direction.LTR)horizontal.push(ltr&&fromOpen?leftSide:fromCoords.left,ltr&&toOpen?rightSide:toCoords.right);else horizontal.push(!ltr&&toOpen?leftSide:toCoords.left,!ltr&&fromOpen?rightSide:fromCoords.right);}let start=from2!==null&&from2!==void 0?from2:line.from,end=to2!==null&&to2!==void 0?to2:line.to;for(let r of view.visibleRanges)if(r.to>start&&r.from<end){for(let pos=Math.max(r.from,start),endPos=Math.min(r.to,end);;){let docLine=view.state.doc.lineAt(pos);for(let span of view.bidiSpans(docLine)){let spanFrom=span.from+docLine.from,spanTo=span.to+docLine.from;if(spanFrom>=endPos)break;if(spanTo>pos)addSpan(Math.max(spanFrom,pos),from2==null&&spanFrom<=start,Math.min(spanTo,endPos),to2==null&&spanTo>=end,span.dir);}pos=docLine.to+1;if(pos>=endPos)break;}}if(horizontal.length==0)addSpan(start,from2==null,end,to2==null,view.textDirection);return{top:top2,bottom,horizontal};}function drawForWidget(block,top2){let y=contentRect.top+(top2?block.top:block.bottom);return{top:y,bottom:y,horizontal:[]};}}function sameMarker(a,b){return a.constructor==b.constructor&&a.eq(b);}var LayerView=class{update(update){if(update.startState.facet(layerOrder)!=update.state.facet(layerOrder))this.setOrder(update.state);if(this.layer.update(update,this.dom)||update.geometryChanged)update.view.requestMeasure(this.measureReq);}setOrder(state){let pos=0,order=state.facet(layerOrder);while(pos<order.length&&order[pos]!=this.layer)pos++;this.dom.style.zIndex=String((this.layer.above?150:-1)-pos);}measure(){return this.layer.markers(this.view);}draw(markers){if(markers.length!=this.drawn.length||markers.some((p,i)=>!sameMarker(p,this.drawn[i]))){let old=this.dom.firstChild,oldI=0;for(let marker of markers){if(marker.update&&old&&marker.constructor&&this.drawn[oldI].constructor&&marker.update(old,this.drawn[oldI])){old=old.nextSibling;oldI++;}else{this.dom.insertBefore(marker.draw(),old);}}while(old){let next=old.nextSibling;old.remove();old=next;}this.drawn=markers;}}destroy(){if(this.layer.destroy)this.layer.destroy(this.dom,this.view);this.dom.remove();}constructor(view,layer2){this.view=view;this.layer=layer2;this.drawn=[];this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)};this.dom=view.scrollDOM.appendChild(document.createElement(\"div\"));this.dom.classList.add(\"cm-layer\");if(layer2.above)this.dom.classList.add(\"cm-layer-above\");if(layer2.class)this.dom.classList.add(layer2.class);this.dom.setAttribute(\"aria-hidden\",\"true\");this.setOrder(view.state);view.requestMeasure(this.measureReq);if(layer2.mount)layer2.mount(this.dom,view);}};var layerOrder=/* @__PURE__ */Facet.define();function layer(config){return[ViewPlugin.define(v=>new LayerView(v,config)),layerOrder.of(config)];}var CanHidePrimary=!browser.ios;var selectionConfig=/* @__PURE__ */Facet.define({combine(configs){return combineConfig(configs,{cursorBlinkRate:1200,drawRangeCursor:true},{cursorBlinkRate:(a,b)=>Math.min(a,b),drawRangeCursor:(a,b)=>a||b});}});function drawSelection(config={}){return[selectionConfig.of(config),cursorLayer,selectionLayer,hideNativeSelection,nativeSelectionHidden.of(true)];}function configChanged(update){return update.startState.facet(selectionConfig)!=update.state.facet(selectionConfig);}var cursorLayer=/* @__PURE__ */layer({above:true,markers(view){let{state}=view,conf=state.facet(selectionConfig);let cursors=[];for(let r of state.selection.ranges){let prim=r==state.selection.main;if(r.empty?!prim||CanHidePrimary:conf.drawRangeCursor){let className=prim?\"cm-cursor cm-cursor-primary\":\"cm-cursor cm-cursor-secondary\";let cursor=r.empty?r:EditorSelection.cursor(r.head,r.head>r.anchor?-1:1);for(let piece of RectangleMarker.forRange(view,className,cursor))cursors.push(piece);}}return cursors;},update(update,dom){if(update.transactions.some(tr=>tr.selection))dom.style.animationName=dom.style.animationName==\"cm-blink\"?\"cm-blink2\":\"cm-blink\";let confChange=configChanged(update);if(confChange)setBlinkRate(update.state,dom);return update.docChanged||update.selectionSet||confChange;},mount(dom,view){setBlinkRate(view.state,dom);},class:\"cm-cursorLayer\"});function setBlinkRate(state,dom){dom.style.animationDuration=state.facet(selectionConfig).cursorBlinkRate+\"ms\";}var selectionLayer=/* @__PURE__ */layer({above:false,markers(view){return view.state.selection.ranges.map(r=>r.empty?[]:RectangleMarker.forRange(view,\"cm-selectionBackground\",r)).reduce((a,b)=>a.concat(b));},update(update,dom){return update.docChanged||update.selectionSet||update.viewportChanged||configChanged(update);},class:\"cm-selectionLayer\"});var themeSpec={\".cm-line\":{\"& ::selection\":{backgroundColor:\"transparent !important\"},\"&::selection\":{backgroundColor:\"transparent !important\"}}};if(CanHidePrimary)themeSpec[\".cm-line\"].caretColor=\"transparent !important\";var hideNativeSelection=/* @__PURE__ */Prec.highest(/* @__PURE__ */EditorView.theme(themeSpec));var setDropCursorPos=/* @__PURE__ */StateEffect.define({map(pos,mapping){return pos==null?null:mapping.mapPos(pos);}});var dropCursorPos=/* @__PURE__ */StateField.define({create(){return null;},update(pos,tr){if(pos!=null)pos=tr.changes.mapPos(pos);return tr.effects.reduce((pos2,e)=>e.is(setDropCursorPos)?e.value:pos2,pos);}});var drawDropCursor=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){var _a;let cursorPos=update.state.field(dropCursorPos);if(cursorPos==null){if(this.cursor!=null){(_a=this.cursor)===null||_a===void 0?void 0:_a.remove();this.cursor=null;}}else{if(!this.cursor){this.cursor=this.view.scrollDOM.appendChild(document.createElement(\"div\"));this.cursor.className=\"cm-dropCursor\";}if(update.startState.field(dropCursorPos)!=cursorPos||update.docChanged||update.geometryChanged)this.view.requestMeasure(this.measureReq);}}readPos(){let pos=this.view.state.field(dropCursorPos);let rect=pos!=null&&this.view.coordsAtPos(pos);if(!rect)return null;let outer=this.view.scrollDOM.getBoundingClientRect();return{left:rect.left-outer.left+this.view.scrollDOM.scrollLeft,top:rect.top-outer.top+this.view.scrollDOM.scrollTop,height:rect.bottom-rect.top};}drawCursor(pos){if(this.cursor){if(pos){this.cursor.style.left=pos.left+\"px\";this.cursor.style.top=pos.top+\"px\";this.cursor.style.height=pos.height+\"px\";}else{this.cursor.style.left=\"-100000px\";}}}destroy(){if(this.cursor)this.cursor.remove();}setDropPos(pos){if(this.view.state.field(dropCursorPos)!=pos)this.view.dispatch({effects:setDropCursorPos.of(pos)});}constructor(view){this.view=view;this.cursor=null;this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)};}},{eventHandlers:{dragover(event){this.setDropPos(this.view.posAtCoords({x:event.clientX,y:event.clientY}));},dragleave(event){if(event.target==this.view.contentDOM||!this.view.contentDOM.contains(event.relatedTarget))this.setDropPos(null);},dragend(){this.setDropPos(null);},drop(){this.setDropPos(null);}}});function dropCursor(){return[dropCursorPos,drawDropCursor];}function iterMatches(doc2,re,from,to,f){re.lastIndex=0;for(let cursor=doc2.iterRange(from,to),pos=from,m;!cursor.next().done;pos+=cursor.value.length){if(!cursor.lineBreak)while(m=re.exec(cursor.value))f(pos+m.index,m);}}function matchRanges(view,maxLength){let visible=view.visibleRanges;if(visible.length==1&&visible[0].from==view.viewport.from&&visible[0].to==view.viewport.to)return visible;let result=[];for(let{from,to}of visible){from=Math.max(view.state.doc.lineAt(from).from,from-maxLength);to=Math.min(view.state.doc.lineAt(to).to,to+maxLength);if(result.length&&result[result.length-1].to>=from)result[result.length-1].to=to;else result.push({from,to});}return result;}var MatchDecorator=class{/**\n  Compute the full set of decorations for matches in the given\n  view's viewport. You'll want to call this when initializing your\n  plugin.\n  */createDeco(view){let build=new RangeSetBuilder,add=build.add.bind(build);for(let{from,to}of matchRanges(view,this.maxLength))iterMatches(view.state.doc,this.regexp,from,to,(from2,m)=>this.addMatch(m,view,from2,add));return build.finish();}/**\n  Update a set of decorations for a view update. `deco` _must_ be\n  the set of decorations produced by _this_ `MatchDecorator` for\n  the view state before the update.\n  */updateDeco(update,deco){let changeFrom=1e9,changeTo=-1;if(update.docChanged)update.changes.iterChanges((_f,_t,from,to)=>{if(to>update.view.viewport.from&&from<update.view.viewport.to){changeFrom=Math.min(from,changeFrom);changeTo=Math.max(to,changeTo);}});if(update.viewportChanged||changeTo-changeFrom>1e3)return this.createDeco(update.view);if(changeTo>-1)return this.updateRange(update.view,deco.map(update.changes),changeFrom,changeTo);return deco;}updateRange(view,deco,updateFrom,updateTo){for(let r of view.visibleRanges){let from=Math.max(r.from,updateFrom),to=Math.min(r.to,updateTo);if(to>from){let fromLine=view.state.doc.lineAt(from),toLine=fromLine.to<to?view.state.doc.lineAt(to):fromLine;let start=Math.max(r.from,fromLine.from),end=Math.min(r.to,toLine.to);if(this.boundary){for(;from>fromLine.from;from--)if(this.boundary.test(fromLine.text[from-1-fromLine.from])){start=from;break;}for(;to<toLine.to;to++)if(this.boundary.test(toLine.text[to-toLine.from])){end=to;break;}}let ranges=[],m;let add=(from2,to2,deco2)=>ranges.push(deco2.range(from2,to2));if(fromLine==toLine){this.regexp.lastIndex=start-fromLine.from;while((m=this.regexp.exec(fromLine.text))&&m.index<end-fromLine.from)this.addMatch(m,view,m.index+fromLine.from,add);}else{iterMatches(view.state.doc,this.regexp,start,end,(from2,m2)=>this.addMatch(m2,view,from2,add));}deco=deco.update({filterFrom:start,filterTo:end,filter:(from2,to2)=>from2<start||to2>end,add:ranges});}}return deco;}/**\n  Create a decorator.\n  */constructor(config){const{regexp,decoration,decorate,boundary,maxLength=1e3}=config;if(!regexp.global)throw new RangeError(\"The regular expression given to MatchDecorator should have its 'g' flag set\");this.regexp=regexp;if(decorate){this.addMatch=(match,view,from,add)=>decorate(add,from,from+match[0].length,match,view);}else if(typeof decoration==\"function\"){this.addMatch=(match,view,from,add)=>{let deco=decoration(match,view,from);if(deco)add(from,from+match[0].length,deco);};}else if(decoration){this.addMatch=(match,_view,from,add)=>add(from,from+match[0].length,decoration);}else{throw new RangeError(\"Either 'decorate' or 'decoration' should be provided to MatchDecorator\");}this.boundary=boundary;this.maxLength=maxLength;}};var UnicodeRegexpSupport=/x/.unicode!=null?\"gu\":\"g\";var Specials=/* @__PURE__ */new RegExp(\"[\\x00-\\b\\n-\\x1f\\x7f-\\x9f\\xad؜​‎‏\\u2028\\u2029‭‮⁦⁧⁩\\uFEFF￹-￼]\",UnicodeRegexpSupport);var Names={0:\"null\",7:\"bell\",8:\"backspace\",10:\"newline\",11:\"vertical tab\",13:\"carriage return\",27:\"escape\",8203:\"zero width space\",8204:\"zero width non-joiner\",8205:\"zero width joiner\",8206:\"left-to-right mark\",8207:\"right-to-left mark\",8232:\"line separator\",8237:\"left-to-right override\",8238:\"right-to-left override\",8294:\"left-to-right isolate\",8295:\"right-to-left isolate\",8297:\"pop directional isolate\",8233:\"paragraph separator\",65279:\"zero width no-break space\",65532:\"object replacement\"};var _supportsTabSize=null;function supportsTabSize(){var _a;if(_supportsTabSize==null&&typeof document!=\"undefined\"&&document.body){let styles=document.body.style;_supportsTabSize=((_a=styles.tabSize)!==null&&_a!==void 0?_a:styles.MozTabSize)!=null;}return _supportsTabSize||false;}var specialCharConfig=/* @__PURE__ */Facet.define({combine(configs){let config=combineConfig(configs,{render:null,specialChars:Specials,addSpecialChars:null});if(config.replaceTabs=!supportsTabSize())config.specialChars=new RegExp(\"\t|\"+config.specialChars.source,UnicodeRegexpSupport);if(config.addSpecialChars)config.specialChars=new RegExp(config.specialChars.source+\"|\"+config.addSpecialChars.source,UnicodeRegexpSupport);return config;}});function highlightSpecialChars(config={}){return[specialCharConfig.of(config),specialCharPlugin()];}var _plugin=null;function specialCharPlugin(){return _plugin||(_plugin=ViewPlugin.fromClass(class{makeDecorator(conf){return new MatchDecorator({regexp:conf.specialChars,decoration:(m,view,pos)=>{let{doc:doc2}=view.state;let code=codePointAt(m[0],0);if(code==9){let line=doc2.lineAt(pos);let size=view.state.tabSize,col=countColumn(line.text,size,pos-line.from);return Decoration.replace({widget:new TabWidget((size-col%size)*this.view.defaultCharacterWidth)});}return this.decorationCache[code]||(this.decorationCache[code]=Decoration.replace({widget:new SpecialCharWidget(conf,code)}));},boundary:conf.replaceTabs?void 0:/[^]/});}update(update){let conf=update.state.facet(specialCharConfig);if(update.startState.facet(specialCharConfig)!=conf){this.decorator=this.makeDecorator(conf);this.decorations=this.decorator.createDeco(update.view);}else{this.decorations=this.decorator.updateDeco(update,this.decorations);}}constructor(view){this.view=view;this.decorations=Decoration.none;this.decorationCache=/* @__PURE__ */Object.create(null);this.decorator=this.makeDecorator(view.state.facet(specialCharConfig));this.decorations=this.decorator.createDeco(view);}},{decorations:v=>v.decorations}));}var DefaultPlaceholder=\"•\";function placeholder$1(code){if(code>=32)return DefaultPlaceholder;if(code==10)return\"␤\";return String.fromCharCode(9216+code);}var SpecialCharWidget=class extends WidgetType{eq(other){return other.code==this.code;}toDOM(view){let ph=placeholder$1(this.code);let desc=view.state.phrase(\"Control character\")+\" \"+(Names[this.code]||\"0x\"+this.code.toString(16));let custom=this.options.render&&this.options.render(this.code,desc,ph);if(custom)return custom;let span=document.createElement(\"span\");span.textContent=ph;span.title=desc;span.setAttribute(\"aria-label\",desc);span.className=\"cm-specialChar\";return span;}ignoreEvent(){return false;}constructor(options,code){super();this.options=options;this.code=code;}};var TabWidget=class extends WidgetType{eq(other){return other.width==this.width;}toDOM(){let span=document.createElement(\"span\");span.textContent=\"\t\";span.className=\"cm-tab\";span.style.width=this.width+\"px\";return span;}ignoreEvent(){return false;}constructor(width){super();this.width=width;}};var plugin=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){let{view}=update;let height=view.viewState.editorHeight-view.defaultLineHeight-view.documentPadding.top-.5;if(height>=0&&height!=this.height){this.height=height;this.attrs={style:`padding-bottom: ${height}px`};}}constructor(){this.height=1e3;this.attrs={style:\"padding-bottom: 1000px\"};}});function scrollPastEnd(){return[plugin,contentAttributes.of(view=>{var _a;return((_a=view.plugin(plugin))===null||_a===void 0?void 0:_a.attrs)||null;})];}function highlightActiveLine(){return activeLineHighlighter;}var lineDeco=/* @__PURE__ */Decoration.line({class:\"cm-activeLine\"});var activeLineHighlighter=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){if(update.docChanged||update.selectionSet)this.decorations=this.getDeco(update.view);}getDeco(view){let lastLineStart=-1,deco=[];for(let r of view.state.selection.ranges){let line=view.lineBlockAt(r.head);if(line.from>lastLineStart){deco.push(lineDeco.range(line.from));lastLineStart=line.from;}}return Decoration.set(deco);}constructor(view){this.decorations=this.getDeco(view);}},{decorations:v=>v.decorations});var Placeholder=class extends WidgetType{toDOM(){let wrap=document.createElement(\"span\");wrap.className=\"cm-placeholder\";wrap.style.pointerEvents=\"none\";wrap.appendChild(typeof this.content==\"string\"?document.createTextNode(this.content):this.content);if(typeof this.content==\"string\")wrap.setAttribute(\"aria-label\",\"placeholder \"+this.content);else wrap.setAttribute(\"aria-hidden\",\"true\");return wrap;}coordsAt(dom){let rects=dom.firstChild?clientRectsFor(dom.firstChild):[];if(!rects.length)return null;let style=window.getComputedStyle(dom.parentNode);let rect=flattenRect(rects[0],style.direction!=\"rtl\");let lineHeight=parseInt(style.lineHeight);if(rect.bottom-rect.top>lineHeight*1.5)return{left:rect.left,right:rect.right,top:rect.top,bottom:rect.top+lineHeight};return rect;}ignoreEvent(){return false;}constructor(content){super();this.content=content;}};function placeholder(content){return ViewPlugin.fromClass(class{get decorations(){return this.view.state.doc.length?Decoration.none:this.placeholder;}constructor(view){this.view=view;this.placeholder=Decoration.set([Decoration.widget({widget:new Placeholder(content),side:1}).range(0)]);}},{decorations:v=>v.decorations});}var MaxOff=2e3;function rectangleFor(state,a,b){let startLine=Math.min(a.line,b.line),endLine=Math.max(a.line,b.line);let ranges=[];if(a.off>MaxOff||b.off>MaxOff||a.col<0||b.col<0){let startOff=Math.min(a.off,b.off),endOff=Math.max(a.off,b.off);for(let i=startLine;i<=endLine;i++){let line=state.doc.line(i);if(line.length<=endOff)ranges.push(EditorSelection.range(line.from+startOff,line.to+endOff));}}else{let startCol=Math.min(a.col,b.col),endCol=Math.max(a.col,b.col);for(let i=startLine;i<=endLine;i++){let line=state.doc.line(i);let start=findColumn(line.text,startCol,state.tabSize,true);if(start<0){ranges.push(EditorSelection.cursor(line.to));}else{let end=findColumn(line.text,endCol,state.tabSize);ranges.push(EditorSelection.range(line.from+start,line.from+end));}}}return ranges;}function absoluteColumn(view,x){let ref=view.coordsAtPos(view.viewport.from);return ref?Math.round(Math.abs((ref.left-x)/view.defaultCharacterWidth)):-1;}function getPos(view,event){let offset=view.posAtCoords({x:event.clientX,y:event.clientY},false);let line=view.state.doc.lineAt(offset),off=offset-line.from;let col=off>MaxOff?-1:off==line.length?absoluteColumn(view,event.clientX):countColumn(line.text,view.state.tabSize,offset-line.from);return{line:line.number,col,off};}function rectangleSelectionStyle(view,event){let start=getPos(view,event),startSel=view.state.selection;if(!start)return null;return{update(update){if(update.docChanged){let newStart=update.changes.mapPos(update.startState.doc.line(start.line).from);let newLine=update.state.doc.lineAt(newStart);start={line:newLine.number,col:start.col,off:Math.min(start.off,newLine.length)};startSel=startSel.map(update.changes);}},get(event2,_extend,multiple){let cur=getPos(view,event2);if(!cur)return startSel;let ranges=rectangleFor(view.state,start,cur);if(!ranges.length)return startSel;if(multiple)return EditorSelection.create(ranges.concat(startSel.ranges));else return EditorSelection.create(ranges);}};}function rectangularSelection(options){let filter=(options===null||options===void 0?void 0:options.eventFilter)||(e=>e.altKey&&e.button==0);return EditorView.mouseSelectionStyle.of((view,event)=>filter(event)?rectangleSelectionStyle(view,event):null);}var keys={Alt:[18,e=>!!e.altKey],Control:[17,e=>!!e.ctrlKey],Shift:[16,e=>!!e.shiftKey],Meta:[91,e=>!!e.metaKey]};var showCrosshair={style:\"cursor: crosshair\"};function crosshairCursor(options={}){let[code,getter]=keys[options.key||\"Alt\"];let plugin2=ViewPlugin.fromClass(class{set(isDown){if(this.isDown!=isDown){this.isDown=isDown;this.view.update([]);}}constructor(view){this.view=view;this.isDown=false;}},{eventHandlers:{keydown(e){this.set(e.keyCode==code||getter(e));},keyup(e){if(e.keyCode==code||!getter(e))this.set(false);},mousemove(e){this.set(getter(e));}}});return[plugin2,EditorView.contentAttributes.of(view=>{var _a;return((_a=view.plugin(plugin2))===null||_a===void 0?void 0:_a.isDown)?showCrosshair:null;})];}var Outside=\"-10000px\";var TooltipViewManager=class{update(update){var _a;let input=update.state.facet(this.facet);let tooltips2=input.filter(x=>x);if(input===this.input){for(let t of this.tooltipViews)if(t.update)t.update(update);return false;}let tooltipViews=[];for(let i=0;i<tooltips2.length;i++){let tip=tooltips2[i],known=-1;if(!tip)continue;for(let i2=0;i2<this.tooltips.length;i2++){let other=this.tooltips[i2];if(other&&other.create==tip.create)known=i2;}if(known<0){tooltipViews[i]=this.createTooltipView(tip);}else{let tooltipView=tooltipViews[i]=this.tooltipViews[known];if(tooltipView.update)tooltipView.update(update);}}for(let t of this.tooltipViews)if(tooltipViews.indexOf(t)<0){t.dom.remove();(_a=t.destroy)===null||_a===void 0?void 0:_a.call(t);}this.input=input;this.tooltips=tooltips2;this.tooltipViews=tooltipViews;return true;}constructor(view,facet,createTooltipView){this.facet=facet;this.createTooltipView=createTooltipView;this.input=view.state.facet(facet);this.tooltips=this.input.filter(t=>t);this.tooltipViews=this.tooltips.map(createTooltipView);}};function tooltips(config={}){return tooltipConfig.of(config);}function windowSpace(view){let{win}=view;return{top:0,left:0,bottom:win.innerHeight,right:win.innerWidth};}var tooltipConfig=/* @__PURE__ */Facet.define({combine:values=>{var _a,_b,_c;return{position:browser.ios?\"absolute\":((_a=values.find(conf=>conf.position))===null||_a===void 0?void 0:_a.position)||\"fixed\",parent:((_b=values.find(conf=>conf.parent))===null||_b===void 0?void 0:_b.parent)||null,tooltipSpace:((_c=values.find(conf=>conf.tooltipSpace))===null||_c===void 0?void 0:_c.tooltipSpace)||windowSpace};}});var knownHeight=/* @__PURE__ */new WeakMap;var tooltipPlugin=/* @__PURE__ */ViewPlugin.fromClass(class{createContainer(){if(this.parent){this.container=document.createElement(\"div\");this.container.style.position=\"relative\";this.container.className=this.view.themeClasses;this.parent.appendChild(this.container);}else{this.container=this.view.dom;}}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let tooltip of this.manager.tooltipViews)this.intersectionObserver.observe(tooltip.dom);}}measureSoon(){if(this.measureTimeout<0)this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1;this.maybeMeasure();},50);}update(update){if(update.transactions.length)this.lastTransaction=Date.now();let updated=this.manager.update(update);if(updated)this.observeIntersection();let shouldMeasure=updated||update.geometryChanged;let newConfig=update.state.facet(tooltipConfig);if(newConfig.position!=this.position){this.position=newConfig.position;for(let t of this.manager.tooltipViews)t.dom.style.position=this.position;shouldMeasure=true;}if(newConfig.parent!=this.parent){if(this.parent)this.container.remove();this.parent=newConfig.parent;this.createContainer();for(let t of this.manager.tooltipViews)this.container.appendChild(t.dom);shouldMeasure=true;}else if(this.parent&&this.view.themeClasses!=this.classes){this.classes=this.container.className=this.view.themeClasses;}if(shouldMeasure)this.maybeMeasure();}createTooltip(tooltip){let tooltipView=tooltip.create(this.view);tooltipView.dom.classList.add(\"cm-tooltip\");if(tooltip.arrow&&!tooltipView.dom.querySelector(\".cm-tooltip > .cm-tooltip-arrow\")){let arrow=document.createElement(\"div\");arrow.className=\"cm-tooltip-arrow\";tooltipView.dom.appendChild(arrow);}tooltipView.dom.style.position=this.position;tooltipView.dom.style.top=Outside;this.container.appendChild(tooltipView.dom);if(tooltipView.mount)tooltipView.mount(this.view);return tooltipView;}destroy(){var _a,_b;this.view.win.removeEventListener(\"resize\",this.measureSoon);for(let tooltipView of this.manager.tooltipViews){tooltipView.dom.remove();(_a=tooltipView.destroy)===null||_a===void 0?void 0:_a.call(tooltipView);}(_b=this.intersectionObserver)===null||_b===void 0?void 0:_b.disconnect();clearTimeout(this.measureTimeout);}readMeasure(){let editor=this.view.dom.getBoundingClientRect();return{editor,parent:this.parent?this.container.getBoundingClientRect():editor,pos:this.manager.tooltips.map((t,i)=>{let tv=this.manager.tooltipViews[i];return tv.getCoords?tv.getCoords(t.pos):this.view.coordsAtPos(t.pos);}),size:this.manager.tooltipViews.map(({dom})=>dom.getBoundingClientRect()),space:this.view.state.facet(tooltipConfig).tooltipSpace(this.view)};}writeMeasure(measured){var _a;let{editor,space}=measured;let others=[];for(let i=0;i<this.manager.tooltips.length;i++){let tooltip=this.manager.tooltips[i],tView=this.manager.tooltipViews[i],{dom}=tView;let pos=measured.pos[i],size=measured.size[i];if(!pos||pos.bottom<=Math.max(editor.top,space.top)||pos.top>=Math.min(editor.bottom,space.bottom)||pos.right<Math.max(editor.left,space.left)-.1||pos.left>Math.min(editor.right,space.right)+.1){dom.style.top=Outside;continue;}let arrow=tooltip.arrow?tView.dom.querySelector(\".cm-tooltip-arrow\"):null;let arrowHeight=arrow?7:0;let width=size.right-size.left,height=(_a=knownHeight.get(tView))!==null&&_a!==void 0?_a:size.bottom-size.top;let offset=tView.offset||noOffset,ltr=this.view.textDirection==Direction.LTR;let left=size.width>space.right-space.left?ltr?space.left:space.right-size.width:ltr?Math.min(pos.left-(arrow?14:0)+offset.x,space.right-width):Math.max(space.left,pos.left-width+(arrow?14:0)-offset.x);let above=!!tooltip.above;if(!tooltip.strictSide&&(above?pos.top-(size.bottom-size.top)-offset.y<space.top:pos.bottom+(size.bottom-size.top)+offset.y>space.bottom)&&above==space.bottom-pos.bottom>pos.top-space.top)above=!above;let spaceVert=(above?pos.top-space.top:space.bottom-pos.bottom)-arrowHeight;if(spaceVert<height&&tView.resize!==false){if(spaceVert<this.view.defaultLineHeight){dom.style.top=Outside;continue;}knownHeight.set(tView,height);dom.style.height=(height=spaceVert)+\"px\";}else if(dom.style.height){dom.style.height=\"\";}let top2=above?pos.top-height-arrowHeight-offset.y:pos.bottom+arrowHeight+offset.y;let right=left+width;if(tView.overlap!==true){for(let r of others)if(r.left<right&&r.right>left&&r.top<top2+height&&r.bottom>top2)top2=above?r.top-height-2-arrowHeight:r.bottom+arrowHeight+2;}if(this.position==\"absolute\"){dom.style.top=top2-measured.parent.top+\"px\";dom.style.left=left-measured.parent.left+\"px\";}else{dom.style.top=top2+\"px\";dom.style.left=left+\"px\";}if(arrow)arrow.style.left=`${pos.left+(ltr?offset.x:-offset.x)-(left+14-7)}px`;if(tView.overlap!==true)others.push({left,top:top2,right,bottom:top2+height});dom.classList.toggle(\"cm-tooltip-above\",above);dom.classList.toggle(\"cm-tooltip-below\",!above);if(tView.positioned)tView.positioned(measured.space);}}maybeMeasure(){if(this.manager.tooltips.length){if(this.view.inView)this.view.requestMeasure(this.measureReq);if(this.inView!=this.view.inView){this.inView=this.view.inView;if(!this.inView)for(let tv of this.manager.tooltipViews)tv.dom.style.top=Outside;}}}constructor(view){this.view=view;this.inView=true;this.lastTransaction=0;this.measureTimeout=-1;let config=view.state.facet(tooltipConfig);this.position=config.position;this.parent=config.parent;this.classes=view.themeClasses;this.createContainer();this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this};this.manager=new TooltipViewManager(view,showTooltip,t=>this.createTooltip(t));this.intersectionObserver=typeof IntersectionObserver==\"function\"?new IntersectionObserver(entries=>{if(Date.now()>this.lastTransaction-50&&entries.length>0&&entries[entries.length-1].intersectionRatio<1)this.measureSoon();},{threshold:[1]}):null;this.observeIntersection();view.win.addEventListener(\"resize\",this.measureSoon=this.measureSoon.bind(this));this.maybeMeasure();}},{eventHandlers:{scroll(){this.maybeMeasure();}}});var baseTheme=/* @__PURE__ */EditorView.baseTheme({\".cm-tooltip\":{zIndex:100,boxSizing:\"border-box\"},\"&light .cm-tooltip\":{border:\"1px solid #bbb\",backgroundColor:\"#f5f5f5\"},\"&light .cm-tooltip-section:not(:first-child)\":{borderTop:\"1px solid #bbb\"},\"&dark .cm-tooltip\":{backgroundColor:\"#333338\",color:\"white\"},\".cm-tooltip-arrow\":{height:`${7}px`,width:`${7*2}px`,position:\"absolute\",zIndex:-1,overflow:\"hidden\",\"&:before, &:after\":{content:\"''\",position:\"absolute\",width:0,height:0,borderLeft:`${7}px solid transparent`,borderRight:`${7}px solid transparent`},\".cm-tooltip-above &\":{bottom:`-${7}px`,\"&:before\":{borderTop:`${7}px solid #bbb`},\"&:after\":{borderTop:`${7}px solid #f5f5f5`,bottom:\"1px\"}},\".cm-tooltip-below &\":{top:`-${7}px`,\"&:before\":{borderBottom:`${7}px solid #bbb`},\"&:after\":{borderBottom:`${7}px solid #f5f5f5`,top:\"1px\"}}},\"&dark .cm-tooltip .cm-tooltip-arrow\":{\"&:before\":{borderTopColor:\"#333338\",borderBottomColor:\"#333338\"},\"&:after\":{borderTopColor:\"transparent\",borderBottomColor:\"transparent\"}}});var noOffset={x:0,y:0};var showTooltip=/* @__PURE__ */Facet.define({enables:[tooltipPlugin,baseTheme]});var showHoverTooltip=/* @__PURE__ */Facet.define();var HoverTooltipHost=class{// Needs to be static so that host tooltip instances always match\nstatic create(view){return new HoverTooltipHost(view);}createHostedView(tooltip){let hostedView=tooltip.create(this.view);hostedView.dom.classList.add(\"cm-tooltip-section\");this.dom.appendChild(hostedView.dom);if(this.mounted&&hostedView.mount)hostedView.mount(this.view);return hostedView;}mount(view){for(let hostedView of this.manager.tooltipViews){if(hostedView.mount)hostedView.mount(view);}this.mounted=true;}positioned(space){for(let hostedView of this.manager.tooltipViews){if(hostedView.positioned)hostedView.positioned(space);}}update(update){this.manager.update(update);}destroy(){var _a;for(let t of this.manager.tooltipViews)(_a=t.destroy)===null||_a===void 0?void 0:_a.call(t);}constructor(view){this.view=view;this.mounted=false;this.dom=document.createElement(\"div\");this.dom.classList.add(\"cm-tooltip-hover\");this.manager=new TooltipViewManager(view,showHoverTooltip,t=>this.createHostedView(t));}};var showHoverTooltipHost=/* @__PURE__ */showTooltip.compute([showHoverTooltip],state=>{let tooltips2=state.facet(showHoverTooltip).filter(t=>t);if(tooltips2.length===0)return null;return{pos:Math.min(...tooltips2.map(t=>t.pos)),end:Math.max(...tooltips2.filter(t=>t.end!=null).map(t=>t.end)),create:HoverTooltipHost.create,above:tooltips2[0].above,arrow:tooltips2.some(t=>t.arrow)};});var HoverPlugin=class{update(){if(this.pending){this.pending=null;clearTimeout(this.restartTimeout);this.restartTimeout=setTimeout(()=>this.startHover(),20);}}get active(){return this.view.state.field(this.field);}checkHover(){this.hoverTimeout=-1;if(this.active)return;let hovered=Date.now()-this.lastMove.time;if(hovered<this.hoverTime)this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-hovered);else this.startHover();}startHover(){clearTimeout(this.restartTimeout);let{lastMove}=this;let pos=this.view.contentDOM.contains(lastMove.target)?this.view.posAtCoords(lastMove):null;if(pos==null)return;let posCoords=this.view.coordsAtPos(pos);if(posCoords==null||lastMove.y<posCoords.top||lastMove.y>posCoords.bottom||lastMove.x<posCoords.left-this.view.defaultCharacterWidth||lastMove.x>posCoords.right+this.view.defaultCharacterWidth)return;let bidi=this.view.bidiSpans(this.view.state.doc.lineAt(pos)).find(s=>s.from<=pos&&s.to>=pos);let rtl=bidi&&bidi.dir==Direction.RTL?-1:1;let open=this.source(this.view,pos,lastMove.x<posCoords.left?-rtl:rtl);if(open===null||open===void 0?void 0:open.then){let pending=this.pending={pos};open.then(result=>{if(this.pending==pending){this.pending=null;if(result)this.view.dispatch({effects:this.setHover.of(result)});}},e=>logException(this.view.state,e,\"hover tooltip\"));}else if(open){this.view.dispatch({effects:this.setHover.of(open)});}}mousemove(event){var _a;this.lastMove={x:event.clientX,y:event.clientY,target:event.target,time:Date.now()};if(this.hoverTimeout<0)this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime);let tooltip=this.active;if(tooltip&&!isInTooltip(this.lastMove.target)||this.pending){let{pos}=tooltip||this.pending,end=(_a=tooltip===null||tooltip===void 0?void 0:tooltip.end)!==null&&_a!==void 0?_a:pos;if(pos==end?this.view.posAtCoords(this.lastMove)!=pos:!isOverRange(this.view,pos,end,event.clientX,event.clientY,6)){this.view.dispatch({effects:this.setHover.of(null)});this.pending=null;}}}mouseleave(e){clearTimeout(this.hoverTimeout);this.hoverTimeout=-1;if(this.active&&!isInTooltip(e.relatedTarget))this.view.dispatch({effects:this.setHover.of(null)});}destroy(){clearTimeout(this.hoverTimeout);this.view.dom.removeEventListener(\"mouseleave\",this.mouseleave);this.view.dom.removeEventListener(\"mousemove\",this.mousemove);}constructor(view,source,field,setHover,hoverTime){this.view=view;this.source=source;this.field=field;this.setHover=setHover;this.hoverTime=hoverTime;this.hoverTimeout=-1;this.restartTimeout=-1;this.pending=null;this.lastMove={x:0,y:0,target:view.dom,time:0};this.checkHover=this.checkHover.bind(this);view.dom.addEventListener(\"mouseleave\",this.mouseleave=this.mouseleave.bind(this));view.dom.addEventListener(\"mousemove\",this.mousemove=this.mousemove.bind(this));}};function isInTooltip(elt){for(let cur=elt;cur;cur=cur.parentNode)if(cur.nodeType==1&&cur.classList.contains(\"cm-tooltip\"))return true;return false;}function isOverRange(view,from,to,x,y,margin){let range=document.createRange();let fromDOM=view.domAtPos(from),toDOM=view.domAtPos(to);range.setEnd(toDOM.node,toDOM.offset);range.setStart(fromDOM.node,fromDOM.offset);let rects=range.getClientRects();range.detach();for(let i=0;i<rects.length;i++){let rect=rects[i];let dist=Math.max(rect.top-y,y-rect.bottom,rect.left-x,x-rect.right);if(dist<=margin)return true;}return false;}function hoverTooltip(source,options={}){let setHover=StateEffect.define();let hoverState=StateField.define({create(){return null;},update(value,tr){if(value&&(options.hideOnChange&&(tr.docChanged||tr.selection)||options.hideOn&&options.hideOn(tr,value)))return null;if(value&&tr.docChanged){let newPos=tr.changes.mapPos(value.pos,-1,MapMode.TrackDel);if(newPos==null)return null;let copy=Object.assign(/* @__PURE__ */Object.create(null),value);copy.pos=newPos;if(value.end!=null)copy.end=tr.changes.mapPos(value.end);value=copy;}for(let effect of tr.effects){if(effect.is(setHover))value=effect.value;if(effect.is(closeHoverTooltipEffect))value=null;}return value;},provide:f=>showHoverTooltip.from(f)});return[hoverState,ViewPlugin.define(view=>new HoverPlugin(view,source,hoverState,setHover,options.hoverTime||300)),showHoverTooltipHost];}function getTooltip(view,tooltip){let plugin2=view.plugin(tooltipPlugin);if(!plugin2)return null;let found=plugin2.manager.tooltips.indexOf(tooltip);return found<0?null:plugin2.manager.tooltipViews[found];}function hasHoverTooltips(state){return state.facet(showHoverTooltip).some(x=>x);}var closeHoverTooltipEffect=/* @__PURE__ */StateEffect.define();var closeHoverTooltips=/* @__PURE__ */closeHoverTooltipEffect.of(null);function repositionTooltips(view){var _a;(_a=view.plugin(tooltipPlugin))===null||_a===void 0?void 0:_a.maybeMeasure();}var panelConfig=/* @__PURE__ */Facet.define({combine(configs){let topContainer,bottomContainer;for(let c of configs){topContainer=topContainer||c.topContainer;bottomContainer=bottomContainer||c.bottomContainer;}return{topContainer,bottomContainer};}});function panels(config){return config?[panelConfig.of(config)]:[];}function getPanel(view,panel){let plugin2=view.plugin(panelPlugin);let index=plugin2?plugin2.specs.indexOf(panel):-1;return index>-1?plugin2.panels[index]:null;}var panelPlugin=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){let conf=update.state.facet(panelConfig);if(this.top.container!=conf.topContainer){this.top.sync([]);this.top=new PanelGroup(update.view,true,conf.topContainer);}if(this.bottom.container!=conf.bottomContainer){this.bottom.sync([]);this.bottom=new PanelGroup(update.view,false,conf.bottomContainer);}this.top.syncClasses();this.bottom.syncClasses();let input=update.state.facet(showPanel);if(input!=this.input){let specs=input.filter(x=>x);let panels2=[],top2=[],bottom=[],mount=[];for(let spec of specs){let known=this.specs.indexOf(spec),panel;if(known<0){panel=spec(update.view);mount.push(panel);}else{panel=this.panels[known];if(panel.update)panel.update(update);}panels2.push(panel);(panel.top?top2:bottom).push(panel);}this.specs=specs;this.panels=panels2;this.top.sync(top2);this.bottom.sync(bottom);for(let p of mount){p.dom.classList.add(\"cm-panel\");if(p.mount)p.mount();}}else{for(let p of this.panels)if(p.update)p.update(update);}}destroy(){this.top.sync([]);this.bottom.sync([]);}constructor(view){this.input=view.state.facet(showPanel);this.specs=this.input.filter(s=>s);this.panels=this.specs.map(spec=>spec(view));let conf=view.state.facet(panelConfig);this.top=new PanelGroup(view,true,conf.topContainer);this.bottom=new PanelGroup(view,false,conf.bottomContainer);this.top.sync(this.panels.filter(p=>p.top));this.bottom.sync(this.panels.filter(p=>!p.top));for(let p of this.panels){p.dom.classList.add(\"cm-panel\");if(p.mount)p.mount();}}},{provide:plugin2=>EditorView.scrollMargins.of(view=>{let value=view.plugin(plugin2);return value&&{top:value.top.scrollMargin(),bottom:value.bottom.scrollMargin()};})});var PanelGroup=class{sync(panels2){for(let p of this.panels)if(p.destroy&&panels2.indexOf(p)<0)p.destroy();this.panels=panels2;this.syncDOM();}syncDOM(){if(this.panels.length==0){if(this.dom){this.dom.remove();this.dom=void 0;}return;}if(!this.dom){this.dom=document.createElement(\"div\");this.dom.className=this.top?\"cm-panels cm-panels-top\":\"cm-panels cm-panels-bottom\";this.dom.style[this.top?\"top\":\"bottom\"]=\"0\";let parent=this.container||this.view.dom;parent.insertBefore(this.dom,this.top?parent.firstChild:null);}let curDOM=this.dom.firstChild;for(let panel of this.panels){if(panel.dom.parentNode==this.dom){while(curDOM!=panel.dom)curDOM=rm(curDOM);curDOM=curDOM.nextSibling;}else{this.dom.insertBefore(panel.dom,curDOM);}}while(curDOM)curDOM=rm(curDOM);}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top);}syncClasses(){if(!this.container||this.classes==this.view.themeClasses)return;for(let cls of this.classes.split(\" \"))if(cls)this.container.classList.remove(cls);for(let cls of(this.classes=this.view.themeClasses).split(\" \"))if(cls)this.container.classList.add(cls);}constructor(view,top2,container){this.view=view;this.top=top2;this.container=container;this.dom=void 0;this.classes=\"\";this.panels=[];this.syncClasses();}};function rm(node){let next=node.nextSibling;node.remove();return next;}var showPanel=/* @__PURE__ */Facet.define({enables:panelPlugin});var GutterMarker=class extends RangeValue{/**\n  @internal\n  */compare(other){return this==other||this.constructor==other.constructor&&this.eq(other);}/**\n  Compare this marker to another marker of the same type.\n  */eq(other){return false;}/**\n  Called if the marker has a `toDOM` method and its representation\n  was removed from a gutter.\n  */destroy(dom){}};GutterMarker.prototype.elementClass=\"\";GutterMarker.prototype.toDOM=void 0;GutterMarker.prototype.mapMode=MapMode.TrackBefore;GutterMarker.prototype.startSide=GutterMarker.prototype.endSide=-1;GutterMarker.prototype.point=true;var gutterLineClass=/* @__PURE__ */Facet.define();var defaults={class:\"\",renderEmptyElements:false,elementStyle:\"\",markers:()=>RangeSet.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}};var activeGutters=/* @__PURE__ */Facet.define();function gutter(config){return[gutters(),activeGutters.of(Object.assign(Object.assign({},defaults),config))];}var unfixGutters=/* @__PURE__ */Facet.define({combine:values=>values.some(x=>x)});function gutters(config){let result=[gutterView];if(config&&config.fixed===false)result.push(unfixGutters.of(true));return result;}var gutterView=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){if(this.updateGutters(update)){let vpA=this.prevViewport,vpB=update.view.viewport;let vpOverlap=Math.min(vpA.to,vpB.to)-Math.max(vpA.from,vpB.from);this.syncGutters(vpOverlap<(vpB.to-vpB.from)*.8);}if(update.geometryChanged)this.dom.style.minHeight=this.view.contentHeight+\"px\";if(this.view.state.facet(unfixGutters)!=!this.fixed){this.fixed=!this.fixed;this.dom.style.position=this.fixed?\"sticky\":\"\";}this.prevViewport=update.view.viewport;}syncGutters(detach){let after=this.dom.nextSibling;if(detach)this.dom.remove();let lineClasses=RangeSet.iter(this.view.state.facet(gutterLineClass),this.view.viewport.from);let classSet=[];let contexts=this.gutters.map(gutter2=>new UpdateContext(gutter2,this.view.viewport,-this.view.documentPadding.top));for(let line of this.view.viewportLineBlocks){if(classSet.length)classSet=[];if(Array.isArray(line.type)){let first=true;for(let b of line.type){if(b.type==BlockType.Text&&first){advanceCursor(lineClasses,classSet,b.from);for(let cx of contexts)cx.line(this.view,b,classSet);first=false;}else if(b.widget){for(let cx of contexts)cx.widget(this.view,b);}}}else if(line.type==BlockType.Text){advanceCursor(lineClasses,classSet,line.from);for(let cx of contexts)cx.line(this.view,line,classSet);}}for(let cx of contexts)cx.finish();if(detach)this.view.scrollDOM.insertBefore(this.dom,after);}updateGutters(update){let prev=update.startState.facet(activeGutters),cur=update.state.facet(activeGutters);let change=update.docChanged||update.heightChanged||update.viewportChanged||!RangeSet.eq(update.startState.facet(gutterLineClass),update.state.facet(gutterLineClass),update.view.viewport.from,update.view.viewport.to);if(prev==cur){for(let gutter2 of this.gutters)if(gutter2.update(update))change=true;}else{change=true;let gutters2=[];for(let conf of cur){let known=prev.indexOf(conf);if(known<0){gutters2.push(new SingleGutterView(this.view,conf));}else{this.gutters[known].update(update);gutters2.push(this.gutters[known]);}}for(let g of this.gutters){g.dom.remove();if(gutters2.indexOf(g)<0)g.destroy();}for(let g of gutters2)this.dom.appendChild(g.dom);this.gutters=gutters2;}return change;}destroy(){for(let view of this.gutters)view.destroy();this.dom.remove();}constructor(view){this.view=view;this.prevViewport=view.viewport;this.dom=document.createElement(\"div\");this.dom.className=\"cm-gutters\";this.dom.setAttribute(\"aria-hidden\",\"true\");this.dom.style.minHeight=this.view.contentHeight+\"px\";this.gutters=view.state.facet(activeGutters).map(conf=>new SingleGutterView(view,conf));for(let gutter2 of this.gutters)this.dom.appendChild(gutter2.dom);this.fixed=!view.state.facet(unfixGutters);if(this.fixed){this.dom.style.position=\"sticky\";}this.syncGutters(false);view.scrollDOM.insertBefore(this.dom,view.contentDOM);}},{provide:plugin2=>EditorView.scrollMargins.of(view=>{let value=view.plugin(plugin2);if(!value||value.gutters.length==0||!value.fixed)return null;return view.textDirection==Direction.LTR?{left:value.dom.offsetWidth}:{right:value.dom.offsetWidth};})});function asArray(val){return Array.isArray(val)?val:[val];}function advanceCursor(cursor,collect,pos){while(cursor.value&&cursor.from<=pos){if(cursor.from==pos)collect.push(cursor.value);cursor.next();}}var UpdateContext=class{addElement(view,block,markers){let{gutter:gutter2}=this,above=block.top-this.height;if(this.i==gutter2.elements.length){let newElt=new GutterElement(view,block.height,above,markers);gutter2.elements.push(newElt);gutter2.dom.appendChild(newElt.dom);}else{gutter2.elements[this.i].update(view,block.height,above,markers);}this.height=block.bottom;this.i++;}line(view,line,extraMarkers){let localMarkers=[];advanceCursor(this.cursor,localMarkers,line.from);if(extraMarkers.length)localMarkers=localMarkers.concat(extraMarkers);let forLine=this.gutter.config.lineMarker(view,line,localMarkers);if(forLine)localMarkers.unshift(forLine);let gutter2=this.gutter;if(localMarkers.length==0&&!gutter2.config.renderEmptyElements)return;this.addElement(view,line,localMarkers);}widget(view,block){let marker=this.gutter.config.widgetMarker(view,block.widget,block);if(marker)this.addElement(view,block,[marker]);}finish(){let gutter2=this.gutter;while(gutter2.elements.length>this.i){let last=gutter2.elements.pop();gutter2.dom.removeChild(last.dom);last.destroy();}}constructor(gutter2,viewport,height){this.gutter=gutter2;this.height=height;this.i=0;this.cursor=RangeSet.iter(gutter2.markers,viewport.from);}};var SingleGutterView=class{update(update){let prevMarkers=this.markers;this.markers=asArray(this.config.markers(update.view));if(this.spacer&&this.config.updateSpacer){let updated=this.config.updateSpacer(this.spacer.markers[0],update);if(updated!=this.spacer.markers[0])this.spacer.update(update.view,0,0,[updated]);}let vp=update.view.viewport;return!RangeSet.eq(this.markers,prevMarkers,vp.from,vp.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(update):false);}destroy(){for(let elt of this.elements)elt.destroy();}constructor(view,config){this.view=view;this.config=config;this.elements=[];this.spacer=null;this.dom=document.createElement(\"div\");this.dom.className=\"cm-gutter\"+(this.config.class?\" \"+this.config.class:\"\");for(let prop in config.domEventHandlers){this.dom.addEventListener(prop,event=>{let target=event.target,y;if(target!=this.dom&&this.dom.contains(target)){while(target.parentNode!=this.dom)target=target.parentNode;let rect=target.getBoundingClientRect();y=(rect.top+rect.bottom)/2;}else{y=event.clientY;}let line=view.lineBlockAtHeight(y-view.documentTop);if(config.domEventHandlers[prop](view,line,event))event.preventDefault();});}this.markers=asArray(config.markers(view));if(config.initialSpacer){this.spacer=new GutterElement(view,0,0,[config.initialSpacer(view)]);this.dom.appendChild(this.spacer.dom);this.spacer.dom.style.cssText+=\"visibility: hidden; pointer-events: none\";}}};var GutterElement=class{update(view,height,above,markers){if(this.height!=height)this.dom.style.height=(this.height=height)+\"px\";if(this.above!=above)this.dom.style.marginTop=(this.above=above)?above+\"px\":\"\";if(!sameMarkers(this.markers,markers))this.setMarkers(view,markers);}setMarkers(view,markers){let cls=\"cm-gutterElement\",domPos=this.dom.firstChild;for(let iNew=0,iOld=0;;){let skipTo=iOld,marker=iNew<markers.length?markers[iNew++]:null,matched=false;if(marker){let c=marker.elementClass;if(c)cls+=\" \"+c;for(let i=iOld;i<this.markers.length;i++)if(this.markers[i].compare(marker)){skipTo=i;matched=true;break;}}else{skipTo=this.markers.length;}while(iOld<skipTo){let next=this.markers[iOld++];if(next.toDOM){next.destroy(domPos);let after=domPos.nextSibling;domPos.remove();domPos=after;}}if(!marker)break;if(marker.toDOM){if(matched)domPos=domPos.nextSibling;else this.dom.insertBefore(marker.toDOM(view),domPos);}if(matched)iOld++;}this.dom.className=cls;this.markers=markers;}destroy(){this.setMarkers(null,[]);}constructor(view,height,above,markers){this.height=-1;this.above=0;this.markers=[];this.dom=document.createElement(\"div\");this.dom.className=\"cm-gutterElement\";this.update(view,height,above,markers);}};function sameMarkers(a,b){if(a.length!=b.length)return false;for(let i=0;i<a.length;i++)if(!a[i].compare(b[i]))return false;return true;}var lineNumberMarkers=/* @__PURE__ */Facet.define();var lineNumberConfig=/* @__PURE__ */Facet.define({combine(values){return combineConfig(values,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(a,b){let result=Object.assign({},a);for(let event in b){let exists=result[event],add=b[event];result[event]=exists?(view,line,event2)=>exists(view,line,event2)||add(view,line,event2):add;}return result;}});}});var NumberMarker=class extends GutterMarker{eq(other){return this.number==other.number;}toDOM(){return document.createTextNode(this.number);}constructor(number){super();this.number=number;}};function formatNumber(view,number){return view.state.facet(lineNumberConfig).formatNumber(number,view.state);}var lineNumberGutter=/* @__PURE__ */activeGutters.compute([lineNumberConfig],state=>({class:\"cm-lineNumbers\",renderEmptyElements:false,markers(view){return view.state.facet(lineNumberMarkers);},lineMarker(view,line,others){if(others.some(m=>m.toDOM))return null;return new NumberMarker(formatNumber(view,view.state.doc.lineAt(line.from).number));},widgetMarker:()=>null,lineMarkerChange:update=>update.startState.facet(lineNumberConfig)!=update.state.facet(lineNumberConfig),initialSpacer(view){return new NumberMarker(formatNumber(view,maxLineNumber(view.state.doc.lines)));},updateSpacer(spacer,update){let max=formatNumber(update.view,maxLineNumber(update.view.state.doc.lines));return max==spacer.number?spacer:new NumberMarker(max);},domEventHandlers:state.facet(lineNumberConfig).domEventHandlers}));function lineNumbers(config={}){return[lineNumberConfig.of(config),gutters(),lineNumberGutter];}function maxLineNumber(lines){let last=9;while(last<lines)last=last*10+9;return last;}var activeLineGutterMarker=/* @__PURE__ */new class extends GutterMarker{constructor(){super(...arguments);this.elementClass=\"cm-activeLineGutter\";}};var activeLineGutterHighlighter=/* @__PURE__ */gutterLineClass.compute([\"selection\"],state=>{let marks=[],last=-1;for(let range of state.selection.ranges){let linePos=state.doc.lineAt(range.head).from;if(linePos>last){last=linePos;marks.push(activeLineGutterMarker.range(linePos));}}return RangeSet.of(marks);});function highlightActiveLineGutter(){return activeLineGutterHighlighter;}var WhitespaceDeco=/* @__PURE__ */new Map;function getWhitespaceDeco(space){let deco=WhitespaceDeco.get(space);if(!deco)WhitespaceDeco.set(space,deco=Decoration.mark({attributes:space===\"\t\"?{class:\"cm-highlightTab\"}:{class:\"cm-highlightSpace\",\"data-display\":space.replace(/ /g,\"\\xb7\")}}));return deco;}function matcher(decorator){return ViewPlugin.define(view=>({decorations:decorator.createDeco(view),update(u){this.decorations=decorator.updateDeco(u,this.decorations);}}),{decorations:v=>v.decorations});}var whitespaceHighlighter=/* @__PURE__ */matcher(/* @__PURE__ */new MatchDecorator({regexp:/\\t| +/g,decoration:match=>getWhitespaceDeco(match[0]),boundary:/\\S/}));function highlightWhitespace(){return whitespaceHighlighter;}var trailingHighlighter=/* @__PURE__ */matcher(/* @__PURE__ */new MatchDecorator({regexp:/\\s+$/g,decoration:/* @__PURE__ */Decoration.mark({class:\"cm-trailingSpace\"}),boundary:/\\S/}));function highlightTrailingWhitespace(){return trailingHighlighter;}var __test={HeightMap,HeightOracle,MeasuredHeights,QueryType,ChangedRange,computeOrder,moveVisually};export{BidiSpan,BlockInfo,BlockType,Decoration,Direction,EditorView,GutterMarker,MatchDecorator,RectangleMarker,ViewPlugin,ViewUpdate,WidgetType,__test,closeHoverTooltips,crosshairCursor,drawSelection,dropCursor,getPanel,getTooltip,gutter,gutterLineClass,gutters,hasHoverTooltips,highlightActiveLine,highlightActiveLineGutter,highlightSpecialChars,highlightTrailingWhitespace,highlightWhitespace,hoverTooltip,keymap,layer,lineNumberMarkers,lineNumbers,logException,panels,placeholder,rectangularSelection,repositionTooltips,runScopeHandlers,scrollPastEnd,showPanel,showTooltip,tooltips,};\nexport const __FramerMetadata__ = {\"exports\":{\"keymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"layer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasHoverTooltips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeHoverTooltips\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getTooltip\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scrollPastEnd\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lineNumbers\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"lineNumberMarkers\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"placeholder\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightWhitespace\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hoverTooltip\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"RectangleMarker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"WidgetType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BidiSpan\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Decoration\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightActiveLineGutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"drawSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"logException\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlockType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutterLineClass\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tooltips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__test\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"crosshairCursor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"panels\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showPanel\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"rectangularSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GutterMarker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ViewUpdate\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"BlockInfo\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"gutters\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightTrailingWhitespace\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"dropCursor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getPanel\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"runScopeHandlers\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MatchDecorator\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ViewPlugin\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"showTooltip\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightActiveLine\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"repositionTooltips\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"EditorView\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Direction\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightSpecialChars\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./codemirror_view.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/common/dist/index.js\nvar DefaultBufferLength=1024;var nextPropID=0;var Range=class{constructor(from,to){this.from=from;this.to=to;}};var NodeProp=class{/**\n  This is meant to be used with\n  [`NodeSet.extend`](#common.NodeSet.extend) or\n  [`LRParser.configure`](#lr.ParserConfig.props) to compute\n  prop values for each node type in the set. Takes a [match\n  object](#common.NodeType^match) or function that returns undefined\n  if the node type doesn't get this prop, and the prop's value if\n  it does.\n  */add(match){if(this.perNode)throw new RangeError(\"Can't add per-node props to node types\");if(typeof match!=\"function\")match=NodeType.match(match);return type=>{let result=match(type);return result===void 0?null:[this,result];};}/**\n  Create a new node prop type.\n  */constructor(config={}){this.id=nextPropID++;this.perNode=!!config.perNode;this.deserialize=config.deserialize||(()=>{throw new Error(\"This node type doesn't define a deserialize function\");});}};NodeProp.closedBy=new NodeProp({deserialize:str=>str.split(\" \")});NodeProp.openedBy=new NodeProp({deserialize:str=>str.split(\" \")});NodeProp.group=new NodeProp({deserialize:str=>str.split(\" \")});NodeProp.isolate=new NodeProp({deserialize:value=>{if(value&&value!=\"rtl\"&&value!=\"ltr\"&&value!=\"auto\")throw new RangeError(\"Invalid value for isolate: \"+value);return value||\"auto\";}});NodeProp.contextHash=new NodeProp({perNode:true});NodeProp.lookAhead=new NodeProp({perNode:true});NodeProp.mounted=new NodeProp({perNode:true});var MountedTree=class{/**\n  @internal\n  */static get(tree){return tree&&tree.props&&tree.props[NodeProp.mounted.id];}constructor(tree,overlay,parser){this.tree=tree;this.overlay=overlay;this.parser=parser;}};var noProps=/* @__PURE__ */Object.create(null);var NodeType=class{/**\n  Define a node type.\n  */static define(spec){let props=spec.props&&spec.props.length?/* @__PURE__ */Object.create(null):noProps;let flags=(spec.top?1:0)|(spec.skipped?2:0)|(spec.error?4:0)|(spec.name==null?8:0);let type=new NodeType(spec.name||\"\",props,spec.id,flags);if(spec.props)for(let src of spec.props){if(!Array.isArray(src))src=src(type);if(src){if(src[0].perNode)throw new RangeError(\"Can't store a per-node prop on a node type\");props[src[0].id]=src[1];}}return type;}/**\n  Retrieves a node prop for this type. Will return `undefined` if\n  the prop isn't present on this node.\n  */prop(prop){return this.props[prop.id];}/**\n  True when this is the top node of a grammar.\n  */get isTop(){return(this.flags&1)>0;}/**\n  True when this node is produced by a skip rule.\n  */get isSkipped(){return(this.flags&2)>0;}/**\n  Indicates whether this is an error node.\n  */get isError(){return(this.flags&4)>0;}/**\n  When true, this node type doesn't correspond to a user-declared\n  named node, for example because it is used to cache repetition.\n  */get isAnonymous(){return(this.flags&8)>0;}/**\n  Returns true when this node's name or one of its\n  [groups](#common.NodeProp^group) matches the given string.\n  */is(name){if(typeof name==\"string\"){if(this.name==name)return true;let group=this.prop(NodeProp.group);return group?group.indexOf(name)>-1:false;}return this.id==name;}/**\n  Create a function from node types to arbitrary values by\n  specifying an object whose property names are node or\n  [group](#common.NodeProp^group) names. Often useful with\n  [`NodeProp.add`](#common.NodeProp.add). You can put multiple\n  names, separated by spaces, in a single property name to map\n  multiple node names to a single value.\n  */static match(map){let direct=/* @__PURE__ */Object.create(null);for(let prop in map)for(let name of prop.split(\" \"))direct[name]=map[prop];return node=>{for(let groups=node.prop(NodeProp.group),i=-1;i<(groups?groups.length:0);i++){let found=direct[i<0?node.name:groups[i]];if(found)return found;}};}/**\n  @internal\n  */constructor(name,props,id,flags=0){this.name=name;this.props=props;this.id=id;this.flags=flags;}};NodeType.none=new NodeType(\"\",/* @__PURE__ */Object.create(null),0,8);var NodeSet=class{/**\n  Create a copy of this set with some node properties added. The\n  arguments to this method can be created with\n  [`NodeProp.add`](#common.NodeProp.add).\n  */extend(...props){let newTypes=[];for(let type of this.types){let newProps=null;for(let source of props){let add=source(type);if(add){if(!newProps)newProps=Object.assign({},type.props);newProps[add[0].id]=add[1];}}newTypes.push(newProps?new NodeType(type.name,newProps,type.id,type.flags):type);}return new NodeSet(newTypes);}/**\n  Create a set with the given types. The `id` property of each\n  type should correspond to its position within the array.\n  */constructor(types){this.types=types;for(let i=0;i<types.length;i++)if(types[i].id!=i)throw new RangeError(\"Node type ids should correspond to array positions when creating a node set\");}};var CachedNode=/* @__PURE__ */new WeakMap;var CachedInnerNode=/* @__PURE__ */new WeakMap;var IterMode;(function(IterMode2){IterMode2[IterMode2[\"ExcludeBuffers\"]=1]=\"ExcludeBuffers\";IterMode2[IterMode2[\"IncludeAnonymous\"]=2]=\"IncludeAnonymous\";IterMode2[IterMode2[\"IgnoreMounts\"]=4]=\"IgnoreMounts\";IterMode2[IterMode2[\"IgnoreOverlays\"]=8]=\"IgnoreOverlays\";})(IterMode||(IterMode={}));var Tree=class{/**\n  @internal\n  */toString(){let mounted=MountedTree.get(this);if(mounted&&!mounted.overlay)return mounted.tree.toString();let children=\"\";for(let ch of this.children){let str=ch.toString();if(str){if(children)children+=\",\";children+=str;}}return!this.type.name?children:(/\\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(children.length?\"(\"+children+\")\":\"\");}/**\n  Get a [tree cursor](#common.TreeCursor) positioned at the top of\n  the tree. Mode can be used to [control](#common.IterMode) which\n  nodes the cursor visits.\n  */cursor(mode=0){return new TreeCursor(this.topNode,mode);}/**\n  Get a [tree cursor](#common.TreeCursor) pointing into this tree\n  at the given position and side (see\n  [`moveTo`](#common.TreeCursor.moveTo).\n  */cursorAt(pos,side=0,mode=0){let scope=CachedNode.get(this)||this.topNode;let cursor=new TreeCursor(scope);cursor.moveTo(pos,side);CachedNode.set(this,cursor._tree);return cursor;}/**\n  Get a [syntax node](#common.SyntaxNode) object for the top of the\n  tree.\n  */get topNode(){return new TreeNode(this,0,0,null);}/**\n  Get the [syntax node](#common.SyntaxNode) at the given position.\n  If `side` is -1, this will move into nodes that end at the\n  position. If 1, it'll move into nodes that start at the\n  position. With 0, it'll only enter nodes that cover the position\n  from both sides.\n  \n  Note that this will not enter\n  [overlays](#common.MountedTree.overlay), and you often want\n  [`resolveInner`](#common.Tree.resolveInner) instead.\n  */resolve(pos,side=0){let node=resolveNode(CachedNode.get(this)||this.topNode,pos,side,false);CachedNode.set(this,node);return node;}/**\n  Like [`resolve`](#common.Tree.resolve), but will enter\n  [overlaid](#common.MountedTree.overlay) nodes, producing a syntax node\n  pointing into the innermost overlaid tree at the given position\n  (with parent links going through all parent structure, including\n  the host trees).\n  */resolveInner(pos,side=0){let node=resolveNode(CachedInnerNode.get(this)||this.topNode,pos,side,true);CachedInnerNode.set(this,node);return node;}/**\n  In some situations, it can be useful to iterate through all\n  nodes around a position, including those in overlays that don't\n  directly cover the position. This method gives you an iterator\n  that will produce all nodes, from small to big, around the given\n  position.\n  */resolveStack(pos,side=0){return stackIterator(this,pos,side);}/**\n  Iterate over the tree and its children, calling `enter` for any\n  node that touches the `from`/`to` region (if given) before\n  running over such a node's children, and `leave` (if given) when\n  leaving the node. When `enter` returns `false`, that node will\n  not have its children iterated over (or `leave` called).\n  */iterate(spec){let{enter,leave,from=0,to=this.length}=spec;let mode=spec.mode||0,anon=(mode&IterMode.IncludeAnonymous)>0;for(let c=this.cursor(mode|IterMode.IncludeAnonymous);;){let entered=false;if(c.from<=to&&c.to>=from&&(!anon&&c.type.isAnonymous||enter(c)!==false)){if(c.firstChild())continue;entered=true;}for(;;){if(entered&&leave&&(anon||!c.type.isAnonymous))leave(c);if(c.nextSibling())break;if(!c.parent())return;entered=true;}}}/**\n  Get the value of the given [node prop](#common.NodeProp) for this\n  node. Works with both per-node and per-type props.\n  */prop(prop){return!prop.perNode?this.type.prop(prop):this.props?this.props[prop.id]:void 0;}/**\n  Returns the node's [per-node props](#common.NodeProp.perNode) in a\n  format that can be passed to the [`Tree`](#common.Tree)\n  constructor.\n  */get propValues(){let result=[];if(this.props)for(let id in this.props)result.push([+id,this.props[id]]);return result;}/**\n  Balance the direct children of this tree, producing a copy of\n  which may have children grouped into subtrees with type\n  [`NodeType.none`](#common.NodeType^none).\n  */balance(config={}){return this.children.length<=8?this:balanceRange(NodeType.none,this.children,this.positions,0,this.children.length,0,this.length,(children,positions,length)=>new Tree(this.type,children,positions,length,this.propValues),config.makeTree||((children,positions,length)=>new Tree(NodeType.none,children,positions,length)));}/**\n  Build a tree from a postfix-ordered buffer of node information,\n  or a cursor over such a buffer.\n  */static build(data){return buildTree(data);}/**\n  Construct a new tree. See also [`Tree.build`](#common.Tree^build).\n  */constructor(type,children,positions,length,props){this.type=type;this.children=children;this.positions=positions;this.length=length;this.props=null;if(props&&props.length){this.props=/* @__PURE__ */Object.create(null);for(let[prop,value]of props)this.props[typeof prop==\"number\"?prop:prop.id]=value;}}};Tree.empty=new Tree(NodeType.none,[],[],0);var FlatBufferCursor=class{get id(){return this.buffer[this.index-4];}get start(){return this.buffer[this.index-3];}get end(){return this.buffer[this.index-2];}get size(){return this.buffer[this.index-1];}get pos(){return this.index;}next(){this.index-=4;}fork(){return new FlatBufferCursor(this.buffer,this.index);}constructor(buffer,index){this.buffer=buffer;this.index=index;}};var TreeBuffer=class{/**\n  @internal\n  */get type(){return NodeType.none;}/**\n  @internal\n  */toString(){let result=[];for(let index=0;index<this.buffer.length;){result.push(this.childString(index));index=this.buffer[index+3];}return result.join(\",\");}/**\n  @internal\n  */childString(index){let id=this.buffer[index],endIndex=this.buffer[index+3];let type=this.set.types[id],result=type.name;if(/\\W/.test(result)&&!type.isError)result=JSON.stringify(result);index+=4;if(endIndex==index)return result;let children=[];while(index<endIndex){children.push(this.childString(index));index=this.buffer[index+3];}return result+\"(\"+children.join(\",\")+\")\";}/**\n  @internal\n  */findChild(startIndex,endIndex,dir,pos,side){let{buffer}=this,pick=-1;for(let i=startIndex;i!=endIndex;i=buffer[i+3]){if(checkSide(side,pos,buffer[i+1],buffer[i+2])){pick=i;if(dir>0)break;}}return pick;}/**\n  @internal\n  */slice(startI,endI,from){let b=this.buffer;let copy=new Uint16Array(endI-startI),len=0;for(let i=startI,j=0;i<endI;){copy[j++]=b[i++];copy[j++]=b[i++]-from;let to=copy[j++]=b[i++]-from;copy[j++]=b[i++]-startI;len=Math.max(len,to);}return new TreeBuffer(copy,len,this.set);}/**\n  Create a tree buffer.\n  */constructor(buffer,length,set){this.buffer=buffer;this.length=length;this.set=set;}};function checkSide(side,pos,from,to){switch(side){case-2:return from<pos;case-1:return to>=pos&&from<pos;case 0:return from<pos&&to>pos;case 1:return from<=pos&&to>pos;case 2:return to>pos;case 4:return true;}}function resolveNode(node,pos,side,overlays){var _a;while(node.from==node.to||(side<1?node.from>=pos:node.from>pos)||(side>-1?node.to<=pos:node.to<pos)){let parent=!overlays&&node instanceof TreeNode&&node.index<0?null:node.parent;if(!parent)return node;node=parent;}let mode=overlays?0:IterMode.IgnoreOverlays;if(overlays)for(let scan=node,parent=scan.parent;parent;scan=parent,parent=scan.parent){if(scan instanceof TreeNode&&scan.index<0&&((_a=parent.enter(pos,side,mode))===null||_a===void 0?void 0:_a.from)!=scan.from)node=parent;}for(;;){let inner=node.enter(pos,side,mode);if(!inner)return node;node=inner;}}var BaseNode=class{cursor(mode=0){return new TreeCursor(this,mode);}getChild(type,before=null,after=null){let r=getChildren(this,type,before,after);return r.length?r[0]:null;}getChildren(type,before=null,after=null){return getChildren(this,type,before,after);}resolve(pos,side=0){return resolveNode(this,pos,side,false);}resolveInner(pos,side=0){return resolveNode(this,pos,side,true);}matchContext(context){return matchNodeContext(this.parent,context);}enterUnfinishedNodesBefore(pos){let scan=this.childBefore(pos),node=this;while(scan){let last=scan.lastChild;if(!last||last.to!=scan.to)break;if(last.type.isError&&last.from==last.to){node=scan;scan=last.prevSibling;}else{scan=last;}}return node;}get node(){return this;}get next(){return this.parent;}};var TreeNode=class extends BaseNode{get type(){return this._tree.type;}get name(){return this._tree.type.name;}get to(){return this.from+this._tree.length;}nextChild(i,dir,pos,side,mode=0){for(let parent=this;;){for(let{children,positions}=parent._tree,e=dir>0?children.length:-1;i!=e;i+=dir){let next=children[i],start=positions[i]+parent.from;if(!checkSide(side,pos,start,start+next.length))continue;if(next instanceof TreeBuffer){if(mode&IterMode.ExcludeBuffers)continue;let index=next.findChild(0,next.buffer.length,dir,pos-start,side);if(index>-1)return new BufferNode(new BufferContext(parent,next,i,start),null,index);}else if(mode&IterMode.IncludeAnonymous||!next.type.isAnonymous||hasChild(next)){let mounted;if(!(mode&IterMode.IgnoreMounts)&&(mounted=MountedTree.get(next))&&!mounted.overlay)return new TreeNode(mounted.tree,start,i,parent);let inner=new TreeNode(next,start,i,parent);return mode&IterMode.IncludeAnonymous||!inner.type.isAnonymous?inner:inner.nextChild(dir<0?next.children.length-1:0,dir,pos,side);}}if(mode&IterMode.IncludeAnonymous||!parent.type.isAnonymous)return null;if(parent.index>=0)i=parent.index+dir;else i=dir<0?-1:parent._parent._tree.children.length;parent=parent._parent;if(!parent)return null;}}get firstChild(){return this.nextChild(0,1,0,4);}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4);}childAfter(pos){return this.nextChild(0,1,pos,2);}childBefore(pos){return this.nextChild(this._tree.children.length-1,-1,pos,-2);}enter(pos,side,mode=0){let mounted;if(!(mode&IterMode.IgnoreOverlays)&&(mounted=MountedTree.get(this._tree))&&mounted.overlay){let rPos=pos-this.from;for(let{from,to}of mounted.overlay){if((side>0?from<=rPos:from<rPos)&&(side<0?to>=rPos:to>rPos))return new TreeNode(mounted.tree,mounted.overlay[0].from+this.from,-1,this);}}return this.nextChild(0,1,pos,side,mode);}nextSignificantParent(){let val=this;while(val.type.isAnonymous&&val._parent)val=val._parent;return val;}get parent(){return this._parent?this._parent.nextSignificantParent():null;}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null;}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null;}get tree(){return this._tree;}toTree(){return this._tree;}/**\n  @internal\n  */toString(){return this._tree.toString();}constructor(_tree,from,index,_parent){super();this._tree=_tree;this.from=from;this.index=index;this._parent=_parent;}};function getChildren(node,type,before,after){let cur=node.cursor(),result=[];if(!cur.firstChild())return result;if(before!=null)for(let found=false;!found;){found=cur.type.is(before);if(!cur.nextSibling())return result;}for(;;){if(after!=null&&cur.type.is(after))return result;if(cur.type.is(type))result.push(cur.node);if(!cur.nextSibling())return after==null?result:[];}}function matchNodeContext(node,context,i=context.length-1){for(let p=node;i>=0;p=p.parent){if(!p)return false;if(!p.type.isAnonymous){if(context[i]&&context[i]!=p.name)return false;i--;}}return true;}var BufferContext=class{constructor(parent,buffer,index,start){this.parent=parent;this.buffer=buffer;this.index=index;this.start=start;}};var BufferNode=class extends BaseNode{get name(){return this.type.name;}get from(){return this.context.start+this.context.buffer.buffer[this.index+1];}get to(){return this.context.start+this.context.buffer.buffer[this.index+2];}child(dir,pos,side){let{buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index);}get firstChild(){return this.child(1,0,4);}get lastChild(){return this.child(-1,0,4);}childAfter(pos){return this.child(1,pos,2);}childBefore(pos){return this.child(-1,pos,-2);}enter(pos,side,mode=0){if(mode&IterMode.ExcludeBuffers)return null;let{buffer}=this.context;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],side>0?1:-1,pos-this.context.start,side);return index<0?null:new BufferNode(this.context,this,index);}get parent(){return this._parent||this.context.parent.nextSignificantParent();}externalSibling(dir){return this._parent?null:this.context.parent.nextChild(this.context.index+dir,dir,0,4);}get nextSibling(){let{buffer}=this.context;let after=buffer.buffer[this.index+3];if(after<(this._parent?buffer.buffer[this._parent.index+3]:buffer.buffer.length))return new BufferNode(this.context,this._parent,after);return this.externalSibling(1);}get prevSibling(){let{buffer}=this.context;let parentStart=this._parent?this._parent.index+4:0;if(this.index==parentStart)return this.externalSibling(-1);return new BufferNode(this.context,this._parent,buffer.findChild(parentStart,this.index,-1,0,4));}get tree(){return null;}toTree(){let children=[],positions=[];let{buffer}=this.context;let startI=this.index+4,endI=buffer.buffer[this.index+3];if(endI>startI){let from=buffer.buffer[this.index+1];children.push(buffer.slice(startI,endI,from));positions.push(0);}return new Tree(this.type,children,positions,this.to-this.from);}/**\n  @internal\n  */toString(){return this.context.buffer.childString(this.index);}constructor(context,_parent,index){super();this.context=context;this._parent=_parent;this.index=index;this.type=context.buffer.set.types[context.buffer.buffer[index]];}};function iterStack(heads){if(!heads.length)return null;let pick=0,picked=heads[0];for(let i=1;i<heads.length;i++){let node=heads[i];if(node.from>picked.from||node.to<picked.to){picked=node;pick=i;}}let next=picked instanceof TreeNode&&picked.index<0?null:picked.parent;let newHeads=heads.slice();if(next)newHeads[pick]=next;else newHeads.splice(pick,1);return new StackIterator(newHeads,picked);}var StackIterator=class{get next(){return iterStack(this.heads);}constructor(heads,node){this.heads=heads;this.node=node;}};function stackIterator(tree,pos,side){let inner=tree.resolveInner(pos,side),layers=null;for(let scan=inner instanceof TreeNode?inner:inner.context.parent;scan;scan=scan.parent){if(scan.index<0){let parent=scan.parent;(layers||(layers=[inner])).push(parent.resolve(pos,side));scan=parent;}else{let mount=MountedTree.get(scan.tree);if(mount&&mount.overlay&&mount.overlay[0].from<=pos&&mount.overlay[mount.overlay.length-1].to>=pos){let root=new TreeNode(mount.tree,mount.overlay[0].from+scan.from,-1,scan);(layers||(layers=[inner])).push(resolveNode(root,pos,side,false));}}}return layers?iterStack(layers):inner;}var TreeCursor=class{/**\n  Shorthand for `.type.name`.\n  */get name(){return this.type.name;}yieldNode(node){if(!node)return false;this._tree=node;this.type=node.type;this.from=node.from;this.to=node.to;return true;}yieldBuf(index,type){this.index=index;let{start,buffer}=this.buffer;this.type=type||buffer.set.types[buffer.buffer[index]];this.from=start+buffer.buffer[index+1];this.to=start+buffer.buffer[index+2];return true;}/**\n  @internal\n  */yield(node){if(!node)return false;if(node instanceof TreeNode){this.buffer=null;return this.yieldNode(node);}this.buffer=node.context;return this.yieldBuf(node.index,node.type);}/**\n  @internal\n  */toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString();}/**\n  @internal\n  */enterChild(dir,pos,side){if(!this.buffer)return this.yield(this._tree.nextChild(dir<0?this._tree._tree.children.length-1:0,dir,pos,side,this.mode));let{buffer}=this.buffer;let index=buffer.findChild(this.index+4,buffer.buffer[this.index+3],dir,pos-this.buffer.start,side);if(index<0)return false;this.stack.push(this.index);return this.yieldBuf(index);}/**\n  Move the cursor to this node's first child. When this returns\n  false, the node has no child, and the cursor has not been moved.\n  */firstChild(){return this.enterChild(1,0,4);}/**\n  Move the cursor to this node's last child.\n  */lastChild(){return this.enterChild(-1,0,4);}/**\n  Move the cursor to the first child that ends after `pos`.\n  */childAfter(pos){return this.enterChild(1,pos,2);}/**\n  Move to the last child that starts before `pos`.\n  */childBefore(pos){return this.enterChild(-1,pos,-2);}/**\n  Move the cursor to the child around `pos`. If side is -1 the\n  child may end at that position, when 1 it may start there. This\n  will also enter [overlaid](#common.MountedTree.overlay)\n  [mounted](#common.NodeProp^mounted) trees unless `overlays` is\n  set to false.\n  */enter(pos,side,mode=this.mode){if(!this.buffer)return this.yield(this._tree.enter(pos,side,mode));return mode&IterMode.ExcludeBuffers?false:this.enterChild(1,pos,side);}/**\n  Move to the node's parent node, if this isn't the top node.\n  */parent(){if(!this.buffer)return this.yieldNode(this.mode&IterMode.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let parent=this.mode&IterMode.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();this.buffer=null;return this.yieldNode(parent);}/**\n  @internal\n  */sibling(dir){if(!this.buffer)return!this._tree._parent?false:this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+dir,dir,0,4,this.mode));let{buffer}=this.buffer,d=this.stack.length-1;if(dir<0){let parentStart=d<0?0:this.stack[d]+4;if(this.index!=parentStart)return this.yieldBuf(buffer.findChild(parentStart,this.index,-1,0,4));}else{let after=buffer.buffer[this.index+3];if(after<(d<0?buffer.buffer.length:buffer.buffer[this.stack[d]+3]))return this.yieldBuf(after);}return d<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+dir,dir,0,4,this.mode)):false;}/**\n  Move to this node's next sibling, if any.\n  */nextSibling(){return this.sibling(1);}/**\n  Move to this node's previous sibling, if any.\n  */prevSibling(){return this.sibling(-1);}atLastNode(dir){let index,parent,{buffer}=this;if(buffer){if(dir>0){if(this.index<buffer.buffer.buffer.length)return false;}else{for(let i=0;i<this.index;i++)if(buffer.buffer.buffer[i+3]<this.index)return false;}({index,parent}=buffer);}else{({index,_parent:parent}=this._tree);}for(;parent;{index,_parent:parent}=parent){if(index>-1)for(let i=index+dir,e=dir<0?-1:parent._tree.children.length;i!=e;i+=dir){let child=parent._tree.children[i];if(this.mode&IterMode.IncludeAnonymous||child instanceof TreeBuffer||!child.type.isAnonymous||hasChild(child))return false;}}return true;}move(dir,enter){if(enter&&this.enterChild(dir,0,4))return true;for(;;){if(this.sibling(dir))return true;if(this.atLastNode(dir)||!this.parent())return false;}}/**\n  Move to the next node in a\n  [pre-order](https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR)\n  traversal, going from a node to its first child or, if the\n  current node is empty or `enter` is false, its next sibling or\n  the next sibling of the first parent node that has one.\n  */next(enter=true){return this.move(1,enter);}/**\n  Move to the next node in a last-to-first pre-order traversal. A\n  node is followed by its last child or, if it has none, its\n  previous sibling or the previous sibling of the first parent\n  node that has one.\n  */prev(enter=true){return this.move(-1,enter);}/**\n  Move the cursor to the innermost node that covers `pos`. If\n  `side` is -1, it will enter nodes that end at `pos`. If it is 1,\n  it will enter nodes that start at `pos`.\n  */moveTo(pos,side=0){while(this.from==this.to||(side<1?this.from>=pos:this.from>pos)||(side>-1?this.to<=pos:this.to<pos))if(!this.parent())break;while(this.enterChild(1,pos,side)){}return this;}/**\n  Get a [syntax node](#common.SyntaxNode) at the cursor's current\n  position.\n  */get node(){if(!this.buffer)return this._tree;let cache=this.bufferNode,result=null,depth=0;if(cache&&cache.context==this.buffer){scan:for(let index=this.index,d=this.stack.length;d>=0;){for(let c=cache;c;c=c._parent)if(c.index==index){if(index==this.index)return c;result=c;depth=d+1;break scan;}index=this.stack[--d];}}for(let i=depth;i<this.stack.length;i++)result=new BufferNode(this.buffer,result,this.stack[i]);return this.bufferNode=new BufferNode(this.buffer,result,this.index);}/**\n  Get the [tree](#common.Tree) that represents the current node, if\n  any. Will return null when the node is in a [tree\n  buffer](#common.TreeBuffer).\n  */get tree(){return this.buffer?null:this._tree._tree;}/**\n  Iterate over the current node and all its descendants, calling\n  `enter` when entering a node and `leave`, if given, when leaving\n  one. When `enter` returns `false`, any children of that node are\n  skipped, and `leave` isn't called for it.\n  */iterate(enter,leave){for(let depth=0;;){let mustLeave=false;if(this.type.isAnonymous||enter(this)!==false){if(this.firstChild()){depth++;continue;}if(!this.type.isAnonymous)mustLeave=true;}for(;;){if(mustLeave&&leave)leave(this);mustLeave=this.type.isAnonymous;if(!depth)return;if(this.nextSibling())break;this.parent();depth--;mustLeave=true;}}}/**\n  Test whether the current node matches a given context—a sequence\n  of direct parent node names. Empty strings in the context array\n  are treated as wildcards.\n  */matchContext(context){if(!this.buffer)return matchNodeContext(this.node.parent,context);let{buffer}=this.buffer,{types}=buffer.set;for(let i=context.length-1,d=this.stack.length-1;i>=0;d--){if(d<0)return matchNodeContext(this._tree,context,i);let type=types[buffer.buffer[this.stack[d]]];if(!type.isAnonymous){if(context[i]&&context[i]!=type.name)return false;i--;}}return true;}/**\n  @internal\n  */constructor(node,mode=0){this.mode=mode;this.buffer=null;this.stack=[];this.index=0;this.bufferNode=null;if(node instanceof TreeNode){this.yieldNode(node);}else{this._tree=node.context.parent;this.buffer=node.context;for(let n=node._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=node;this.yieldBuf(node.index);}}};function hasChild(tree){return tree.children.some(ch=>ch instanceof TreeBuffer||!ch.type.isAnonymous||hasChild(ch));}function buildTree(data){var _a;let{buffer,nodeSet,maxBufferLength=DefaultBufferLength,reused=[],minRepeatType=nodeSet.types.length}=data;let cursor=Array.isArray(buffer)?new FlatBufferCursor(buffer,buffer.length):buffer;let types=nodeSet.types;let contextHash=0,lookAhead=0;function takeNode(parentStart,minPos,children2,positions2,inRepeat,depth){let{id,start,end,size}=cursor;let lookAheadAtStart=lookAhead,contextAtStart=contextHash;while(size<0){cursor.next();if(size==-1){let node2=reused[id];children2.push(node2);positions2.push(start-parentStart);return;}else if(size==-3){contextHash=id;return;}else if(size==-4){lookAhead=id;return;}else{throw new RangeError(`Unrecognized record size: ${size}`);}}let type=types[id],node,buffer2;let startPos=start-parentStart;if(end-start<=maxBufferLength&&(buffer2=findBufferSize(cursor.pos-minPos,inRepeat))){let data2=new Uint16Array(buffer2.size-buffer2.skip);let endPos=cursor.pos-buffer2.size,index=data2.length;while(cursor.pos>endPos)index=copyToBuffer(buffer2.start,data2,index);node=new TreeBuffer(data2,end-buffer2.start,nodeSet);startPos=buffer2.start-parentStart;}else{let endPos=cursor.pos-size;cursor.next();let localChildren=[],localPositions=[];let localInRepeat=id>=minRepeatType?id:-1;let lastGroup=0,lastEnd=end;while(cursor.pos>endPos){if(localInRepeat>=0&&cursor.id==localInRepeat&&cursor.size>=0){if(cursor.end<=lastEnd-maxBufferLength){makeRepeatLeaf(localChildren,localPositions,start,lastGroup,cursor.end,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);lastGroup=localChildren.length;lastEnd=cursor.end;}cursor.next();}else if(depth>2500){takeFlatNode(start,endPos,localChildren,localPositions);}else{takeNode(start,endPos,localChildren,localPositions,localInRepeat,depth+1);}}if(localInRepeat>=0&&lastGroup>0&&lastGroup<localChildren.length)makeRepeatLeaf(localChildren,localPositions,start,lastGroup,start,lastEnd,localInRepeat,lookAheadAtStart,contextAtStart);localChildren.reverse();localPositions.reverse();if(localInRepeat>-1&&lastGroup>0){let make=makeBalanced(type,contextAtStart);node=balanceRange(type,localChildren,localPositions,0,localChildren.length,0,end-start,make,make);}else{node=makeTree(type,localChildren,localPositions,end-start,lookAheadAtStart-end,contextAtStart);}}children2.push(node);positions2.push(startPos);}function takeFlatNode(parentStart,minPos,children2,positions2){let nodes=[];let nodeCount=0,stopAt=-1;while(cursor.pos>minPos){let{id,start,end,size}=cursor;if(size>4){cursor.next();}else if(stopAt>-1&&start<stopAt){break;}else{if(stopAt<0)stopAt=end-maxBufferLength;nodes.push(id,start,end);nodeCount++;cursor.next();}}if(nodeCount){let buffer2=new Uint16Array(nodeCount*4);let start=nodes[nodes.length-2];for(let i=nodes.length-3,j=0;i>=0;i-=3){buffer2[j++]=nodes[i];buffer2[j++]=nodes[i+1]-start;buffer2[j++]=nodes[i+2]-start;buffer2[j++]=j;}children2.push(new TreeBuffer(buffer2,nodes[2]-start,nodeSet));positions2.push(start-parentStart);}}function makeBalanced(type,contextHash2){return(children2,positions2,length2)=>{let lookAhead2=0,lastI=children2.length-1,last,lookAheadProp;if(lastI>=0&&(last=children2[lastI])instanceof Tree){if(!lastI&&last.type==type&&last.length==length2)return last;if(lookAheadProp=last.prop(NodeProp.lookAhead))lookAhead2=positions2[lastI]+last.length+lookAheadProp;}return makeTree(type,children2,positions2,length2,lookAhead2,contextHash2);};}function makeRepeatLeaf(children2,positions2,base,i,from,to,type,lookAhead2,contextHash2){let localChildren=[],localPositions=[];while(children2.length>i){localChildren.push(children2.pop());localPositions.push(positions2.pop()+base-from);}children2.push(makeTree(nodeSet.types[type],localChildren,localPositions,to-from,lookAhead2-to,contextHash2));positions2.push(from-base);}function makeTree(type,children2,positions2,length2,lookAhead2,contextHash2,props){if(contextHash2){let pair=[NodeProp.contextHash,contextHash2];props=props?[pair].concat(props):[pair];}if(lookAhead2>25){let pair=[NodeProp.lookAhead,lookAhead2];props=props?[pair].concat(props):[pair];}return new Tree(type,children2,positions2,length2,props);}function findBufferSize(maxSize,inRepeat){let fork=cursor.fork();let size=0,start=0,skip=0,minStart=fork.end-maxBufferLength;let result={size:0,start:0,skip:0};scan:for(let minPos=fork.pos-maxSize;fork.pos>minPos;){let nodeSize2=fork.size;if(fork.id==inRepeat&&nodeSize2>=0){result.size=size;result.start=start;result.skip=skip;skip+=4;size+=4;fork.next();continue;}let startPos=fork.pos-nodeSize2;if(nodeSize2<0||startPos<minPos||fork.start<minStart)break;let localSkipped=fork.id>=minRepeatType?4:0;let nodeStart=fork.start;fork.next();while(fork.pos>startPos){if(fork.size<0){if(fork.size==-3)localSkipped+=4;else break scan;}else if(fork.id>=minRepeatType){localSkipped+=4;}fork.next();}start=nodeStart;size+=nodeSize2;skip+=localSkipped;}if(inRepeat<0||size==maxSize){result.size=size;result.start=start;result.skip=skip;}return result.size>4?result:void 0;}function copyToBuffer(bufferStart,buffer2,index){let{id,start,end,size}=cursor;cursor.next();if(size>=0&&id<minRepeatType){let startIndex=index;if(size>4){let endPos=cursor.pos-(size-4);while(cursor.pos>endPos)index=copyToBuffer(bufferStart,buffer2,index);}buffer2[--index]=startIndex;buffer2[--index]=end-bufferStart;buffer2[--index]=start-bufferStart;buffer2[--index]=id;}else if(size==-3){contextHash=id;}else if(size==-4){lookAhead=id;}return index;}let children=[],positions=[];while(cursor.pos>0)takeNode(data.start||0,data.bufferStart||0,children,positions,-1,0);let length=(_a=data.length)!==null&&_a!==void 0?_a:children.length?positions[0]+children[0].length:0;return new Tree(types[data.topID],children.reverse(),positions.reverse(),length);}var nodeSizeCache=/* @__PURE__ */new WeakMap;function nodeSize(balanceType,node){if(!balanceType.isAnonymous||node instanceof TreeBuffer||node.type!=balanceType)return 1;let size=nodeSizeCache.get(node);if(size==null){size=1;for(let child of node.children){if(child.type!=balanceType||!(child instanceof Tree)){size=1;break;}size+=nodeSize(balanceType,child);}nodeSizeCache.set(node,size);}return size;}function balanceRange(balanceType,children,positions,from,to,start,length,mkTop,mkTree){let total=0;for(let i=from;i<to;i++)total+=nodeSize(balanceType,children[i]);let maxChild=Math.ceil(total*1.5/8);let localChildren=[],localPositions=[];function divide(children2,positions2,from2,to2,offset){for(let i=from2;i<to2;){let groupFrom=i,groupStart=positions2[i],groupSize=nodeSize(balanceType,children2[i]);i++;for(;i<to2;i++){let nextSize=nodeSize(balanceType,children2[i]);if(groupSize+nextSize>=maxChild)break;groupSize+=nextSize;}if(i==groupFrom+1){if(groupSize>maxChild){let only=children2[groupFrom];divide(only.children,only.positions,0,only.children.length,positions2[groupFrom]+offset);continue;}localChildren.push(children2[groupFrom]);}else{let length2=positions2[i-1]+children2[i-1].length-groupStart;localChildren.push(balanceRange(balanceType,children2,positions2,groupFrom,i,groupStart,length2,null,mkTree));}localPositions.push(groupStart+offset-start);}}divide(children,positions,from,to,0);return(mkTop||mkTree)(localChildren,localPositions,length);}var NodeWeakMap=class{setBuffer(buffer,index,value){let inner=this.map.get(buffer);if(!inner)this.map.set(buffer,inner=/* @__PURE__ */new Map);inner.set(index,value);}getBuffer(buffer,index){let inner=this.map.get(buffer);return inner&&inner.get(index);}/**\n  Set the value for this syntax node.\n  */set(node,value){if(node instanceof BufferNode)this.setBuffer(node.context.buffer,node.index,value);else if(node instanceof TreeNode)this.map.set(node.tree,value);}/**\n  Retrieve value for this syntax node, if it exists in the map.\n  */get(node){return node instanceof BufferNode?this.getBuffer(node.context.buffer,node.index):node instanceof TreeNode?this.map.get(node.tree):void 0;}/**\n  Set the value for the node that a cursor currently points to.\n  */cursorSet(cursor,value){if(cursor.buffer)this.setBuffer(cursor.buffer.buffer,cursor.index,value);else this.map.set(cursor.tree,value);}/**\n  Retrieve the value for the node that a cursor currently points\n  to.\n  */cursorGet(cursor){return cursor.buffer?this.getBuffer(cursor.buffer.buffer,cursor.index):this.map.get(cursor.tree);}constructor(){this.map=/* @__PURE__ */new WeakMap;}};var TreeFragment=class{/**\n  Whether the start of the fragment represents the start of a\n  parse, or the end of a change. (In the second case, it may not\n  be safe to reuse some nodes at the start, depending on the\n  parsing algorithm.)\n  */get openStart(){return(this.open&1)>0;}/**\n  Whether the end of the fragment represents the end of a\n  full-document parse, or the start of a change.\n  */get openEnd(){return(this.open&2)>0;}/**\n  Create a set of fragments from a freshly parsed tree, or update\n  an existing set of fragments by replacing the ones that overlap\n  with a tree with content from the new tree. When `partial` is\n  true, the parse is treated as incomplete, and the resulting\n  fragment has [`openEnd`](#common.TreeFragment.openEnd) set to\n  true.\n  */static addTree(tree,fragments=[],partial=false){let result=[new TreeFragment(0,tree.length,tree,0,false,partial)];for(let f of fragments)if(f.to>tree.length)result.push(f);return result;}/**\n  Apply a set of edits to an array of fragments, removing or\n  splitting fragments as necessary to remove edited ranges, and\n  adjusting offsets for fragments that moved.\n  */static applyChanges(fragments,changes,minGap=128){if(!changes.length)return fragments;let result=[];let fI=1,nextF=fragments.length?fragments[0]:null;for(let cI=0,pos=0,off=0;;cI++){let nextC=cI<changes.length?changes[cI]:null;let nextPos=nextC?nextC.fromA:1e9;if(nextPos-pos>=minGap)while(nextF&&nextF.from<nextPos){let cut=nextF;if(pos>=cut.from||nextPos<=cut.to||off){let fFrom=Math.max(cut.from,pos)-off,fTo=Math.min(cut.to,nextPos)-off;cut=fFrom>=fTo?null:new TreeFragment(fFrom,fTo,cut.tree,cut.offset+off,cI>0,!!nextC);}if(cut)result.push(cut);if(nextF.to>nextPos)break;nextF=fI<fragments.length?fragments[fI++]:null;}if(!nextC)break;pos=nextC.toA;off=nextC.toA-nextC.toB;}return result;}/**\n  Construct a tree fragment. You'll usually want to use\n  [`addTree`](#common.TreeFragment^addTree) and\n  [`applyChanges`](#common.TreeFragment^applyChanges) instead of\n  calling this directly.\n  */constructor(from,to,tree,offset,openStart=false,openEnd=false){this.from=from;this.to=to;this.tree=tree;this.offset=offset;this.open=(openStart?1:0)|(openEnd?2:0);}};var Parser=class{/**\n  Start a parse, returning a [partial parse](#common.PartialParse)\n  object. [`fragments`](#common.TreeFragment) can be passed in to\n  make the parse incremental.\n  \n  By default, the entire input is parsed. You can pass `ranges`,\n  which should be a sorted array of non-empty, non-overlapping\n  ranges, to parse only those ranges. The tree returned in that\n  case will start at `ranges[0].from`.\n  */startParse(input,fragments,ranges){if(typeof input==\"string\")input=new StringInput(input);ranges=!ranges?[new Range(0,input.length)]:ranges.length?ranges.map(r=>new Range(r.from,r.to)):[new Range(0,0)];return this.createParse(input,fragments||[],ranges);}/**\n  Run a full parse, returning the resulting tree.\n  */parse(input,fragments,ranges){let parse=this.startParse(input,fragments,ranges);for(;;){let done=parse.advance();if(done)return done;}}};var StringInput=class{get length(){return this.string.length;}chunk(from){return this.string.slice(from);}get lineChunks(){return false;}read(from,to){return this.string.slice(from,to);}constructor(string){this.string=string;}};function parseMixed(nest){return(parse,input,fragments,ranges)=>new MixedParse(parse,nest,input,fragments,ranges);}var InnerParse=class{constructor(parser,parse,overlay,target,from){this.parser=parser;this.parse=parse;this.overlay=overlay;this.target=target;this.from=from;}};function checkRanges(ranges){if(!ranges.length||ranges.some(r=>r.from>=r.to))throw new RangeError(\"Invalid inner parse ranges given: \"+JSON.stringify(ranges));}var ActiveOverlay=class{constructor(parser,predicate,mounts,index,start,target,prev){this.parser=parser;this.predicate=predicate;this.mounts=mounts;this.index=index;this.start=start;this.target=target;this.prev=prev;this.depth=0;this.ranges=[];}};var stoppedInner=new NodeProp({perNode:true});var MixedParse=class{advance(){if(this.baseParse){let done2=this.baseParse.advance();if(!done2)return null;this.baseParse=null;this.baseTree=done2;this.startInner();if(this.stoppedAt!=null)for(let inner2 of this.inner)inner2.parse.stopAt(this.stoppedAt);}if(this.innerDone==this.inner.length){let result=this.baseTree;if(this.stoppedAt!=null)result=new Tree(result.type,result.children,result.positions,result.length,result.propValues.concat([[stoppedInner,this.stoppedAt]]));return result;}let inner=this.inner[this.innerDone],done=inner.parse.advance();if(done){this.innerDone++;let props=Object.assign(/* @__PURE__ */Object.create(null),inner.target.props);props[NodeProp.mounted.id]=new MountedTree(done,inner.overlay,inner.parser);inner.target.props=props;}return null;}get parsedPos(){if(this.baseParse)return 0;let pos=this.input.length;for(let i=this.innerDone;i<this.inner.length;i++){if(this.inner[i].from<pos)pos=Math.min(pos,this.inner[i].parse.parsedPos);}return pos;}stopAt(pos){this.stoppedAt=pos;if(this.baseParse)this.baseParse.stopAt(pos);else for(let i=this.innerDone;i<this.inner.length;i++)this.inner[i].parse.stopAt(pos);}startInner(){let fragmentCursor=new FragmentCursor(this.fragments);let overlay=null;let covered=null;let cursor=new TreeCursor(new TreeNode(this.baseTree,this.ranges[0].from,0,null),IterMode.IncludeAnonymous|IterMode.IgnoreMounts);scan:for(let nest,isCovered;;){let enter=true,range;if(this.stoppedAt!=null&&cursor.from>=this.stoppedAt){enter=false;}else if(fragmentCursor.hasNode(cursor)){if(overlay){let match=overlay.mounts.find(m=>m.frag.from<=cursor.from&&m.frag.to>=cursor.to&&m.mount.overlay);if(match)for(let r of match.mount.overlay){let from=r.from+match.pos,to=r.to+match.pos;if(from>=cursor.from&&to<=cursor.to&&!overlay.ranges.some(r2=>r2.from<to&&r2.to>from))overlay.ranges.push({from,to});}}enter=false;}else if(covered&&(isCovered=checkCover(covered.ranges,cursor.from,cursor.to))){enter=isCovered!=2;}else if(!cursor.type.isAnonymous&&(nest=this.nest(cursor,this.input))&&(cursor.from<cursor.to||!nest.overlay)){if(!cursor.tree)materialize(cursor);let oldMounts=fragmentCursor.findMounts(cursor.from,nest.parser);if(typeof nest.overlay==\"function\"){overlay=new ActiveOverlay(nest.parser,nest.overlay,oldMounts,this.inner.length,cursor.from,cursor.tree,overlay);}else{let ranges=punchRanges(this.ranges,nest.overlay||(cursor.from<cursor.to?[new Range(cursor.from,cursor.to)]:[]));if(ranges.length)checkRanges(ranges);if(ranges.length||!nest.overlay)this.inner.push(new InnerParse(nest.parser,ranges.length?nest.parser.startParse(this.input,enterFragments(oldMounts,ranges),ranges):nest.parser.startParse(\"\"),nest.overlay?nest.overlay.map(r=>new Range(r.from-cursor.from,r.to-cursor.from)):null,cursor.tree,ranges.length?ranges[0].from:cursor.from));if(!nest.overlay)enter=false;else if(ranges.length)covered={ranges,depth:0,prev:covered};}}else if(overlay&&(range=overlay.predicate(cursor))){if(range===true)range=new Range(cursor.from,cursor.to);if(range.from<range.to){let last=overlay.ranges.length-1;if(last>=0&&overlay.ranges[last].to==range.from)overlay.ranges[last]={from:overlay.ranges[last].from,to:range.to};else overlay.ranges.push(range);}}if(enter&&cursor.firstChild()){if(overlay)overlay.depth++;if(covered)covered.depth++;}else{for(;;){if(cursor.nextSibling())break;if(!cursor.parent())break scan;if(overlay&&!--overlay.depth){let ranges=punchRanges(this.ranges,overlay.ranges);if(ranges.length){checkRanges(ranges);this.inner.splice(overlay.index,0,new InnerParse(overlay.parser,overlay.parser.startParse(this.input,enterFragments(overlay.mounts,ranges),ranges),overlay.ranges.map(r=>new Range(r.from-overlay.start,r.to-overlay.start)),overlay.target,ranges[0].from));}overlay=overlay.prev;}if(covered&&!--covered.depth)covered=covered.prev;}}}}constructor(base,nest,input,fragments,ranges){this.nest=nest;this.input=input;this.fragments=fragments;this.ranges=ranges;this.inner=[];this.innerDone=0;this.baseTree=null;this.stoppedAt=null;this.baseParse=base;}};function checkCover(covered,from,to){for(let range of covered){if(range.from>=to)break;if(range.to>from)return range.from<=from&&range.to>=to?2:1;}return 0;}function sliceBuf(buf,startI,endI,nodes,positions,off){if(startI<endI){let from=buf.buffer[startI+1];nodes.push(buf.slice(startI,endI,from));positions.push(from-off);}}function materialize(cursor){let{node}=cursor,stack=[];let buffer=node.context.buffer;do{stack.push(cursor.index);cursor.parent();}while(!cursor.tree)let base=cursor.tree,i=base.children.indexOf(buffer);let buf=base.children[i],b=buf.buffer,newStack=[i];function split(startI,endI,type,innerOffset,length,stackPos){let targetI=stack[stackPos];let children=[],positions=[];sliceBuf(buf,startI,targetI,children,positions,innerOffset);let from=b[targetI+1],to=b[targetI+2];newStack.push(children.length);let child=stackPos?split(targetI+4,b[targetI+3],buf.set.types[b[targetI]],from,to-from,stackPos-1):node.toTree();children.push(child);positions.push(from-innerOffset);sliceBuf(buf,b[targetI+3],endI,children,positions,innerOffset);return new Tree(type,children,positions,length);}base.children[i]=split(0,b.length,NodeType.none,0,buf.length,stack.length-1);for(let index of newStack){let tree=cursor.tree.children[index],pos=cursor.tree.positions[index];cursor.yield(new TreeNode(tree,pos+cursor.from,index,cursor._tree));}}var StructureCursor=class{// Move to the first node (in pre-order) that starts at or after `pos`.\nmoveTo(pos){let{cursor}=this,p=pos-this.offset;while(!this.done&&cursor.from<p){if(cursor.to>=pos&&cursor.enter(p,1,IterMode.IgnoreOverlays|IterMode.ExcludeBuffers));else if(!cursor.next(false))this.done=true;}}hasNode(cursor){this.moveTo(cursor.from);if(!this.done&&this.cursor.from+this.offset==cursor.from&&this.cursor.tree){for(let tree=this.cursor.tree;;){if(tree==cursor.tree)return true;if(tree.children.length&&tree.positions[0]==0&&tree.children[0]instanceof Tree)tree=tree.children[0];else break;}}return false;}constructor(root,offset){this.offset=offset;this.done=false;this.cursor=root.cursor(IterMode.IncludeAnonymous|IterMode.IgnoreMounts);}};var FragmentCursor=class{hasNode(node){while(this.curFrag&&node.from>=this.curTo)this.nextFrag();return this.curFrag&&this.curFrag.from<=node.from&&this.curTo>=node.to&&this.inner.hasNode(node);}nextFrag(){var _a;this.fragI++;if(this.fragI==this.fragments.length){this.curFrag=this.inner=null;}else{let frag=this.curFrag=this.fragments[this.fragI];this.curTo=(_a=frag.tree.prop(stoppedInner))!==null&&_a!==void 0?_a:frag.to;this.inner=new StructureCursor(frag.tree,-frag.offset);}}findMounts(pos,parser){var _a;let result=[];if(this.inner){this.inner.cursor.moveTo(pos,1);for(let pos2=this.inner.cursor.node;pos2;pos2=pos2.parent){let mount=(_a=pos2.tree)===null||_a===void 0?void 0:_a.prop(NodeProp.mounted);if(mount&&mount.parser==parser){for(let i=this.fragI;i<this.fragments.length;i++){let frag=this.fragments[i];if(frag.from>=pos2.to)break;if(frag.tree==this.curFrag.tree)result.push({frag,pos:pos2.from-frag.offset,mount});}}}}return result;}constructor(fragments){var _a;this.fragments=fragments;this.curTo=0;this.fragI=0;if(fragments.length){let first=this.curFrag=fragments[0];this.curTo=(_a=first.tree.prop(stoppedInner))!==null&&_a!==void 0?_a:first.to;this.inner=new StructureCursor(first.tree,-first.offset);}else{this.curFrag=this.inner=null;}}};function punchRanges(outer,ranges){let copy=null,current=ranges;for(let i=1,j=0;i<outer.length;i++){let gapFrom=outer[i-1].to,gapTo=outer[i].from;for(;j<current.length;j++){let r=current[j];if(r.from>=gapTo)break;if(r.to<=gapFrom)continue;if(!copy)current=copy=ranges.slice();if(r.from<gapFrom){copy[j]=new Range(r.from,gapFrom);if(r.to>gapTo)copy.splice(j+1,0,new Range(gapTo,r.to));}else if(r.to>gapTo){copy[j--]=new Range(gapTo,r.to);}else{copy.splice(j--,1);}}}return current;}function findCoverChanges(a,b,from,to){let iA=0,iB=0,inA=false,inB=false,pos=-1e9;let result=[];for(;;){let nextA=iA==a.length?1e9:inA?a[iA].to:a[iA].from;let nextB=iB==b.length?1e9:inB?b[iB].to:b[iB].from;if(inA!=inB){let start=Math.max(pos,from),end=Math.min(nextA,nextB,to);if(start<end)result.push(new Range(start,end));}pos=Math.min(nextA,nextB);if(pos==1e9)break;if(nextA==pos){if(!inA)inA=true;else{inA=false;iA++;}}if(nextB==pos){if(!inB)inB=true;else{inB=false;iB++;}}}return result;}function enterFragments(mounts,ranges){let result=[];for(let{pos,mount,frag}of mounts){let startPos=pos+(mount.overlay?mount.overlay[0].from:0),endPos=startPos+mount.tree.length;let from=Math.max(frag.from,startPos),to=Math.min(frag.to,endPos);if(mount.overlay){let overlay=mount.overlay.map(r=>new Range(r.from+pos,r.to+pos));let changes=findCoverChanges(ranges,overlay,from,to);for(let i=0,pos2=from;;i++){let last=i==changes.length,end=last?to:changes[i].from;if(end>pos2)result.push(new TreeFragment(pos2,end,mount.tree,-startPos,frag.from>=pos2||frag.openStart,frag.to<=end||frag.openEnd));if(last)break;pos2=changes[i].to;}}else{result.push(new TreeFragment(from,to,mount.tree,-startPos,frag.from>=startPos||frag.openStart,frag.to<=endPos||frag.openEnd));}}return result;}export{DefaultBufferLength,IterMode,MountedTree,NodeProp,NodeSet,NodeType,NodeWeakMap,Parser,Tree,TreeBuffer,TreeCursor,TreeFragment,parseMixed,};\nexport const __FramerMetadata__ = {\"exports\":{\"Parser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"MountedTree\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DefaultBufferLength\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IterMode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeSet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeType\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeBuffer\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Tree\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"NodeWeakMap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeCursor\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeFragment\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parseMixed\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lezer_common.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/highlight/dist/index.js\nimport{NodeProp}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/ye873rtFsAyZVFu9x2He/lezer_common.js\";var nextTagID=0;var Tag=class{/**\n  Define a new tag. If `parent` is given, the tag is treated as a\n  sub-tag of that parent, and\n  [highlighters](#highlight.tagHighlighter) that don't mention\n  this tag will try to fall back to the parent tag (or grandparent\n  tag, etc).\n  */static define(parent){if(parent===null||parent===void 0?void 0:parent.base)throw new Error(\"Can not derive from a modified tag\");let tag=new Tag([],null,[]);tag.set.push(tag);if(parent)for(let t2 of parent.set)tag.set.push(t2);return tag;}/**\n  Define a tag _modifier_, which is a function that, given a tag,\n  will return a tag that is a subtag of the original. Applying the\n  same modifier to a twice tag will return the same value (`m1(t1)\n  == m1(t1)`) and applying multiple modifiers will, regardless or\n  order, produce the same tag (`m1(m2(t1)) == m2(m1(t1))`).\n  \n  When multiple modifiers are applied to a given base tag, each\n  smaller set of modifiers is registered as a parent, so that for\n  example `m1(m2(m3(t1)))` is a subtype of `m1(m2(t1))`,\n  `m1(m3(t1)`, and so on.\n  */static defineModifier(){let mod=new Modifier;return tag=>{if(tag.modified.indexOf(mod)>-1)return tag;return Modifier.get(tag.base||tag,tag.modified.concat(mod).sort((a,b)=>a.id-b.id));};}/**\n  @internal\n  */constructor(set,base,modified){this.set=set;this.base=base;this.modified=modified;this.id=nextTagID++;}};var nextModifierID=0;var Modifier=class{static get(base,mods){if(!mods.length)return base;let exists=mods[0].instances.find(t2=>t2.base==base&&sameArray(mods,t2.modified));if(exists)return exists;let set=[],tag=new Tag(set,base,mods);for(let m of mods)m.instances.push(tag);let configs=powerSet(mods);for(let parent of base.set)if(!parent.modified.length)for(let config of configs)set.push(Modifier.get(parent,config));return tag;}constructor(){this.instances=[];this.id=nextModifierID++;}};function sameArray(a,b){return a.length==b.length&&a.every((x,i)=>x==b[i]);}function powerSet(array){let sets=[[]];for(let i=0;i<array.length;i++){for(let j=0,e=sets.length;j<e;j++){sets.push(sets[j].concat(array[i]));}}return sets.sort((a,b)=>b.length-a.length);}function styleTags(spec){let byName=/* @__PURE__ */Object.create(null);for(let prop in spec){let tags2=spec[prop];if(!Array.isArray(tags2))tags2=[tags2];for(let part of prop.split(\" \"))if(part){let pieces=[],mode=2,rest=part;for(let pos=0;;){if(rest==\"...\"&&pos>0&&pos+3==part.length){mode=1;break;}let m=/^\"(?:[^\"\\\\]|\\\\.)*?\"|[^\\/!]+/.exec(rest);if(!m)throw new RangeError(\"Invalid path: \"+part);pieces.push(m[0]==\"*\"?\"\":m[0][0]=='\"'?JSON.parse(m[0]):m[0]);pos+=m[0].length;if(pos==part.length)break;let next=part[pos++];if(pos==part.length&&next==\"!\"){mode=0;break;}if(next!=\"/\")throw new RangeError(\"Invalid path: \"+part);rest=part.slice(pos);}let last=pieces.length-1,inner=pieces[last];if(!inner)throw new RangeError(\"Invalid path: \"+part);let rule=new Rule(tags2,mode,last>0?pieces.slice(0,last):null);byName[inner]=rule.sort(byName[inner]);}}return ruleNodeProp.add(byName);}var ruleNodeProp=new NodeProp;var Rule=class{get opaque(){return this.mode==0;}get inherit(){return this.mode==1;}sort(other){if(!other||other.depth<this.depth){this.next=other;return this;}other.next=this.sort(other.next);return other;}get depth(){return this.context?this.context.length:0;}constructor(tags2,mode,context,next){this.tags=tags2;this.mode=mode;this.context=context;this.next=next;}};Rule.empty=new Rule([],2,null);function tagHighlighter(tags2,options){let map=/* @__PURE__ */Object.create(null);for(let style of tags2){if(!Array.isArray(style.tag))map[style.tag.id]=style.class;else for(let tag of style.tag)map[tag.id]=style.class;}let{scope,all=null}=options||{};return{style:tags3=>{let cls=all;for(let tag of tags3){for(let sub of tag.set){let tagClass=map[sub.id];if(tagClass){cls=cls?cls+\" \"+tagClass:tagClass;break;}}}return cls;},scope};}function highlightTags(highlighters,tags2){let result=null;for(let highlighter of highlighters){let value=highlighter.style(tags2);if(value)result=result?result+\" \"+value:value;}return result;}function highlightTree(tree,highlighter,putStyle,from=0,to=tree.length){let builder=new HighlightBuilder(from,Array.isArray(highlighter)?highlighter:[highlighter],putStyle);builder.highlightRange(tree.cursor(),from,to,\"\",builder.highlighters);builder.flush(to);}var HighlightBuilder=class{startSpan(at,cls){if(cls!=this.class){this.flush(at);if(at>this.at)this.at=at;this.class=cls;}}flush(to){if(to>this.at&&this.class)this.span(this.at,to,this.class);}highlightRange(cursor,from,to,inheritedClass,highlighters){let{type,from:start,to:end}=cursor;if(start>=to||end<=from)return;if(type.isTop)highlighters=this.highlighters.filter(h=>!h.scope||h.scope(type));let cls=inheritedClass;let rule=getStyleTags(cursor)||Rule.empty;let tagCls=highlightTags(highlighters,rule.tags);if(tagCls){if(cls)cls+=\" \";cls+=tagCls;if(rule.mode==1)inheritedClass+=(inheritedClass?\" \":\"\")+tagCls;}this.startSpan(Math.max(from,start),cls);if(rule.opaque)return;let mounted=cursor.tree&&cursor.tree.prop(NodeProp.mounted);if(mounted&&mounted.overlay){let inner=cursor.node.enter(mounted.overlay[0].from+start,1);let innerHighlighters=this.highlighters.filter(h=>!h.scope||h.scope(mounted.tree.type));let hasChild=cursor.firstChild();for(let i=0,pos=start;;i++){let next=i<mounted.overlay.length?mounted.overlay[i]:null;let nextPos=next?next.from+start:end;let rangeFrom=Math.max(from,pos),rangeTo=Math.min(to,nextPos);if(rangeFrom<rangeTo&&hasChild){while(cursor.from<rangeTo){this.highlightRange(cursor,rangeFrom,rangeTo,inheritedClass,highlighters);this.startSpan(Math.min(rangeTo,cursor.to),cls);if(cursor.to>=nextPos||!cursor.nextSibling())break;}}if(!next||nextPos>to)break;pos=next.to+start;if(pos>from){this.highlightRange(inner.cursor(),Math.max(from,next.from+start),Math.min(to,pos),\"\",innerHighlighters);this.startSpan(Math.min(to,pos),cls);}}if(hasChild)cursor.parent();}else if(cursor.firstChild()){if(mounted)inheritedClass=\"\";do{if(cursor.to<=from)continue;if(cursor.from>=to)break;this.highlightRange(cursor,from,to,inheritedClass,highlighters);this.startSpan(Math.min(to,cursor.to),cls);}while(cursor.nextSibling())cursor.parent();}}constructor(at,highlighters,span){this.at=at;this.highlighters=highlighters;this.span=span;this.class=\"\";}};function getStyleTags(node){let rule=node.type.prop(ruleNodeProp);while(rule&&rule.context&&!node.matchContext(rule.context))rule=rule.next;return rule||null;}var t=Tag.define;var comment=t();var name=t();var typeName=t(name);var propertyName=t(name);var literal=t();var string=t(literal);var number=t(literal);var content=t();var heading=t(content);var keyword=t();var operator=t();var punctuation=t();var bracket=t(punctuation);var meta=t();var tags={/**\n  A comment.\n  */comment,/**\n  A line [comment](#highlight.tags.comment).\n  */lineComment:t(comment),/**\n  A block [comment](#highlight.tags.comment).\n  */blockComment:t(comment),/**\n  A documentation [comment](#highlight.tags.comment).\n  */docComment:t(comment),/**\n  Any kind of identifier.\n  */name,/**\n  The [name](#highlight.tags.name) of a variable.\n  */variableName:t(name),/**\n  A type [name](#highlight.tags.name).\n  */typeName,/**\n  A tag name (subtag of [`typeName`](#highlight.tags.typeName)).\n  */tagName:t(typeName),/**\n  A property or field [name](#highlight.tags.name).\n  */propertyName,/**\n  An attribute name (subtag of [`propertyName`](#highlight.tags.propertyName)).\n  */attributeName:t(propertyName),/**\n  The [name](#highlight.tags.name) of a class.\n  */className:t(name),/**\n  A label [name](#highlight.tags.name).\n  */labelName:t(name),/**\n  A namespace [name](#highlight.tags.name).\n  */namespace:t(name),/**\n  The [name](#highlight.tags.name) of a macro.\n  */macroName:t(name),/**\n  A literal value.\n  */literal,/**\n  A string [literal](#highlight.tags.literal).\n  */string,/**\n  A documentation [string](#highlight.tags.string).\n  */docString:t(string),/**\n  A character literal (subtag of [string](#highlight.tags.string)).\n  */character:t(string),/**\n  An attribute value (subtag of [string](#highlight.tags.string)).\n  */attributeValue:t(string),/**\n  A number [literal](#highlight.tags.literal).\n  */number,/**\n  An integer [number](#highlight.tags.number) literal.\n  */integer:t(number),/**\n  A floating-point [number](#highlight.tags.number) literal.\n  */float:t(number),/**\n  A boolean [literal](#highlight.tags.literal).\n  */bool:t(literal),/**\n  Regular expression [literal](#highlight.tags.literal).\n  */regexp:t(literal),/**\n  An escape [literal](#highlight.tags.literal), for example a\n  backslash escape in a string.\n  */escape:t(literal),/**\n  A color [literal](#highlight.tags.literal).\n  */color:t(literal),/**\n  A URL [literal](#highlight.tags.literal).\n  */url:t(literal),/**\n  A language keyword.\n  */keyword,/**\n  The [keyword](#highlight.tags.keyword) for the self or this\n  object.\n  */self:t(keyword),/**\n  The [keyword](#highlight.tags.keyword) for null.\n  */null:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) denoting some atomic value.\n  */atom:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) that represents a unit.\n  */unit:t(keyword),/**\n  A modifier [keyword](#highlight.tags.keyword).\n  */modifier:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) that acts as an operator.\n  */operatorKeyword:t(keyword),/**\n  A control-flow related [keyword](#highlight.tags.keyword).\n  */controlKeyword:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) that defines something.\n  */definitionKeyword:t(keyword),/**\n  A [keyword](#highlight.tags.keyword) related to defining or\n  interfacing with modules.\n  */moduleKeyword:t(keyword),/**\n  An operator.\n  */operator,/**\n  An [operator](#highlight.tags.operator) that dereferences something.\n  */derefOperator:t(operator),/**\n  Arithmetic-related [operator](#highlight.tags.operator).\n  */arithmeticOperator:t(operator),/**\n  Logical [operator](#highlight.tags.operator).\n  */logicOperator:t(operator),/**\n  Bit [operator](#highlight.tags.operator).\n  */bitwiseOperator:t(operator),/**\n  Comparison [operator](#highlight.tags.operator).\n  */compareOperator:t(operator),/**\n  [Operator](#highlight.tags.operator) that updates its operand.\n  */updateOperator:t(operator),/**\n  [Operator](#highlight.tags.operator) that defines something.\n  */definitionOperator:t(operator),/**\n  Type-related [operator](#highlight.tags.operator).\n  */typeOperator:t(operator),/**\n  Control-flow [operator](#highlight.tags.operator).\n  */controlOperator:t(operator),/**\n  Program or markup punctuation.\n  */punctuation,/**\n  [Punctuation](#highlight.tags.punctuation) that separates\n  things.\n  */separator:t(punctuation),/**\n  Bracket-style [punctuation](#highlight.tags.punctuation).\n  */bracket,/**\n  Angle [brackets](#highlight.tags.bracket) (usually `<` and `>`\n  tokens).\n  */angleBracket:t(bracket),/**\n  Square [brackets](#highlight.tags.bracket) (usually `[` and `]`\n  tokens).\n  */squareBracket:t(bracket),/**\n  Parentheses (usually `(` and `)` tokens). Subtag of\n  [bracket](#highlight.tags.bracket).\n  */paren:t(bracket),/**\n  Braces (usually `{` and `}` tokens). Subtag of\n  [bracket](#highlight.tags.bracket).\n  */brace:t(bracket),/**\n  Content, for example plain text in XML or markup documents.\n  */content,/**\n  [Content](#highlight.tags.content) that represents a heading.\n  */heading,/**\n  A level 1 [heading](#highlight.tags.heading).\n  */heading1:t(heading),/**\n  A level 2 [heading](#highlight.tags.heading).\n  */heading2:t(heading),/**\n  A level 3 [heading](#highlight.tags.heading).\n  */heading3:t(heading),/**\n  A level 4 [heading](#highlight.tags.heading).\n  */heading4:t(heading),/**\n  A level 5 [heading](#highlight.tags.heading).\n  */heading5:t(heading),/**\n  A level 6 [heading](#highlight.tags.heading).\n  */heading6:t(heading),/**\n  A prose separator (such as a horizontal rule).\n  */contentSeparator:t(content),/**\n  [Content](#highlight.tags.content) that represents a list.\n  */list:t(content),/**\n  [Content](#highlight.tags.content) that represents a quote.\n  */quote:t(content),/**\n  [Content](#highlight.tags.content) that is emphasized.\n  */emphasis:t(content),/**\n  [Content](#highlight.tags.content) that is styled strong.\n  */strong:t(content),/**\n  [Content](#highlight.tags.content) that is part of a link.\n  */link:t(content),/**\n  [Content](#highlight.tags.content) that is styled as code or\n  monospace.\n  */monospace:t(content),/**\n  [Content](#highlight.tags.content) that has a strike-through\n  style.\n  */strikethrough:t(content),/**\n  Inserted text in a change-tracking format.\n  */inserted:t(),/**\n  Deleted text.\n  */deleted:t(),/**\n  Changed text.\n  */changed:t(),/**\n  An invalid or unsyntactic element.\n  */invalid:t(),/**\n  Metadata or meta-instruction.\n  */meta,/**\n  [Metadata](#highlight.tags.meta) that applies to the entire\n  document.\n  */documentMeta:t(meta),/**\n  [Metadata](#highlight.tags.meta) that annotates or adds\n  attributes to a given syntactic element.\n  */annotation:t(meta),/**\n  Processing instruction or preprocessor directive. Subtag of\n  [meta](#highlight.tags.meta).\n  */processingInstruction:t(meta),/**\n  [Modifier](#highlight.Tag^defineModifier) that indicates that a\n  given element is being defined. Expected to be used with the\n  various [name](#highlight.tags.name) tags.\n  */definition:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) that indicates that\n  something is constant. Mostly expected to be used with\n  [variable names](#highlight.tags.variableName).\n  */constant:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) used to indicate that\n  a [variable](#highlight.tags.variableName) or [property\n  name](#highlight.tags.propertyName) is being called or defined\n  as a function.\n  */function:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) that can be applied to\n  [names](#highlight.tags.name) to indicate that they belong to\n  the language's standard environment.\n  */standard:Tag.defineModifier(),/**\n  [Modifier](#highlight.Tag^defineModifier) that indicates a given\n  [names](#highlight.tags.name) is local to some scope.\n  */local:Tag.defineModifier(),/**\n  A generic variant [modifier](#highlight.Tag^defineModifier) that\n  can be used to tag language-specific alternative variants of\n  some common tag. It is recommended for themes to define special\n  forms of at least the [string](#highlight.tags.string) and\n  [variable name](#highlight.tags.variableName) tags, since those\n  come up a lot.\n  */special:Tag.defineModifier()};var classHighlighter=tagHighlighter([{tag:tags.link,class:\"tok-link\"},{tag:tags.heading,class:\"tok-heading\"},{tag:tags.emphasis,class:\"tok-emphasis\"},{tag:tags.strong,class:\"tok-strong\"},{tag:tags.keyword,class:\"tok-keyword\"},{tag:tags.atom,class:\"tok-atom\"},{tag:tags.bool,class:\"tok-bool\"},{tag:tags.url,class:\"tok-url\"},{tag:tags.labelName,class:\"tok-labelName\"},{tag:tags.inserted,class:\"tok-inserted\"},{tag:tags.deleted,class:\"tok-deleted\"},{tag:tags.literal,class:\"tok-literal\"},{tag:tags.string,class:\"tok-string\"},{tag:tags.number,class:\"tok-number\"},{tag:[tags.regexp,tags.escape,tags.special(tags.string)],class:\"tok-string2\"},{tag:tags.variableName,class:\"tok-variableName\"},{tag:tags.local(tags.variableName),class:\"tok-variableName tok-local\"},{tag:tags.definition(tags.variableName),class:\"tok-variableName tok-definition\"},{tag:tags.special(tags.variableName),class:\"tok-variableName2\"},{tag:tags.definition(tags.propertyName),class:\"tok-propertyName tok-definition\"},{tag:tags.typeName,class:\"tok-typeName\"},{tag:tags.namespace,class:\"tok-namespace\"},{tag:tags.className,class:\"tok-className\"},{tag:tags.macroName,class:\"tok-macroName\"},{tag:tags.propertyName,class:\"tok-propertyName\"},{tag:tags.operator,class:\"tok-operator\"},{tag:tags.comment,class:\"tok-comment\"},{tag:tags.meta,class:\"tok-meta\"},{tag:tags.invalid,class:\"tok-invalid\"},{tag:tags.punctuation,class:\"tok-punctuation\"}]);export{Tag,classHighlighter,getStyleTags,highlightTree,styleTags,tagHighlighter,tags,};\nexport const __FramerMetadata__ = {\"exports\":{\"styleTags\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightTree\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tags\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"tagHighlighter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getStyleTags\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"classHighlighter\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Tag\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lezer_highlight.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/language/dist/index.js\nimport{NodeProp,Tree,IterMode,TreeFragment,Parser,NodeType,NodeSet}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/ye873rtFsAyZVFu9x2He/lezer_common.js\";import{StateEffect,StateField,Facet,EditorState,countColumn,combineConfig,RangeSet,RangeSetBuilder,Prec}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/772bfdCR3vXAPJJXnNsc/codemirror_state.js\";import{ViewPlugin,logException,EditorView,Decoration,WidgetType,gutter,GutterMarker}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/QTymt9nRixOIrUSZrfIJ/codemirror_view.js\";import{tags,tagHighlighter,highlightTree,styleTags}from\"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/seDszB8oQDQQyH7PIqkK/lezer_highlight.js\";// ../../node_modules/style-mod/src/style-mod.js\nvar C=\"ͼ\";var COUNT=typeof Symbol==\"undefined\"?\"__\"+C:Symbol.for(C);var SET=typeof Symbol==\"undefined\"?\"__styleSet\"+Math.floor(Math.random()*1e8):Symbol(\"styleSet\");var top=typeof globalThis!=\"undefined\"?globalThis:typeof window!=\"undefined\"?window:{};var StyleModule=class{// :: () → string\n// Returns a string containing the module's CSS rules.\ngetRules(){return this.rules.join(\"\\n\");}// :: () → string\n// Generate a new unique CSS class name.\nstatic newName(){let id=top[COUNT]||1;top[COUNT]=id+1;return C+id.toString(36);}// :: (union<Document, ShadowRoot>, union<[StyleModule], StyleModule>)\n//\n// Mount the given set of modules in the given DOM root, which ensures\n// that the CSS rules defined by the module are available in that\n// context.\n//\n// Rules are only added to the document once per root.\n//\n// Rule order will follow the order of the modules, so that rules from\n// modules later in the array take precedence of those from earlier\n// modules. If you call this function multiple times for the same root\n// in a way that changes the order of already mounted modules, the old\n// order will be changed.\nstatic mount(root,modules){(root[SET]||new StyleSet(root)).mount(Array.isArray(modules)?modules:[modules]);}// :: (Object<Style>, ?{finish: ?(string) → string})\n// Create a style module from the given spec.\n//\n// When `finish` is given, it is called on regular (non-`@`)\n// selectors (after `&` expansion) to compute the final selector.\nconstructor(spec,options){this.rules=[];let{finish}=options||{};function splitSelector(selector){return/^@/.test(selector)?[selector]:selector.split(/,\\s*/);}function render(selectors,spec2,target,isKeyframes){let local=[],isAt=/^@(\\w+)\\b/.exec(selectors[0]),keyframes=isAt&&isAt[1]==\"keyframes\";if(isAt&&spec2==null)return target.push(selectors[0]+\";\");for(let prop in spec2){let value=spec2[prop];if(/&/.test(prop)){render(prop.split(/,\\s*/).map(part=>selectors.map(sel=>part.replace(/&/,sel))).reduce((a,b)=>a.concat(b)),value,target);}else if(value&&typeof value==\"object\"){if(!isAt)throw new RangeError(\"The value of a property (\"+prop+\") should be a primitive value.\");render(splitSelector(prop),value,local,keyframes);}else if(value!=null){local.push(prop.replace(/_.*/,\"\").replace(/[A-Z]/g,l=>\"-\"+l.toLowerCase())+\": \"+value+\";\");}}if(local.length||keyframes){target.push((finish&&!isAt&&!isKeyframes?selectors.map(finish):selectors).join(\", \")+\" {\"+local.join(\" \")+\"}\");}}for(let prop in spec)render(splitSelector(prop),spec[prop],this.rules);}};var adoptedSet=/* @__PURE__ */new Map;var StyleSet=class{mount(modules){let sheet=this.sheet;let pos=0,j=0;for(let i=0;i<modules.length;i++){let mod=modules[i],index=this.modules.indexOf(mod);if(index<j&&index>-1){this.modules.splice(index,1);j--;index=-1;}if(index==-1){this.modules.splice(j++,0,mod);if(sheet)for(let k=0;k<mod.rules.length;k++)sheet.insertRule(mod.rules[k],pos++);}else{while(j<index)pos+=this.modules[j++].rules.length;pos+=mod.rules.length;j++;}}if(!sheet){let text=\"\";for(let i=0;i<this.modules.length;i++)text+=this.modules[i].getRules()+\"\\n\";this.styleTag.textContent=text;}}constructor(root){let doc=root.ownerDocument||root,win=doc.defaultView;if(!root.head&&root.adoptedStyleSheets&&win.CSSStyleSheet){let adopted=adoptedSet.get(doc);if(adopted){root.adoptedStyleSheets=[adopted.sheet,...root.adoptedStyleSheets];return root[SET]=adopted;}this.sheet=new win.CSSStyleSheet;root.adoptedStyleSheets=[this.sheet,...root.adoptedStyleSheets];adoptedSet.set(doc,this);}else{this.styleTag=doc.createElement(\"style\");let target=root.head||root;target.insertBefore(this.styleTag,target.firstChild);}this.modules=[];root[SET]=this;}};// ../../node_modules/@codemirror/language/dist/index.js\nvar _a;var languageDataProp=/* @__PURE__ */new NodeProp;function defineLanguageFacet(baseData){return Facet.define({combine:baseData?values=>values.concat(baseData):void 0});}var sublanguageProp=/* @__PURE__ */new NodeProp;var Language=class{/**\n  Query whether this language is active at the given position.\n  */isActiveAt(state,pos,side=-1){return topNodeAt(state,pos,side).type.prop(languageDataProp)==this.data;}/**\n  Find the document regions that were parsed using this language.\n  The returned regions will _include_ any nested languages rooted\n  in this language, when those exist.\n  */findRegions(state){let lang=state.facet(language);if((lang===null||lang===void 0?void 0:lang.data)==this.data)return[{from:0,to:state.doc.length}];if(!lang||!lang.allowsNesting)return[];let result=[];let explore=(tree,from)=>{if(tree.prop(languageDataProp)==this.data){result.push({from,to:from+tree.length});return;}let mount=tree.prop(NodeProp.mounted);if(mount){if(mount.tree.prop(languageDataProp)==this.data){if(mount.overlay)for(let r of mount.overlay)result.push({from:r.from+from,to:r.to+from});else result.push({from,to:from+tree.length});return;}else if(mount.overlay){let size=result.length;explore(mount.tree,mount.overlay[0].from+from);if(result.length>size)return;}}for(let i=0;i<tree.children.length;i++){let ch=tree.children[i];if(ch instanceof Tree)explore(ch,tree.positions[i]+from);}};explore(syntaxTree(state),0);return result;}/**\n  Indicates whether this language allows nested languages. The\n  default implementation returns true.\n  */get allowsNesting(){return true;}/**\n  Construct a language object. If you need to invoke this\n  directly, first define a data facet with\n  [`defineLanguageFacet`](https://codemirror.net/6/docs/ref/#language.defineLanguageFacet), and then\n  configure your parser to [attach](https://codemirror.net/6/docs/ref/#language.languageDataProp) it\n  to the language's outer syntax node.\n  */constructor(data,parser,extraExtensions=[],name=\"\"){this.data=data;this.name=name;if(!EditorState.prototype.hasOwnProperty(\"tree\"))Object.defineProperty(EditorState.prototype,\"tree\",{get(){return syntaxTree(this);}});this.parser=parser;this.extension=[language.of(this),EditorState.languageData.of((state,pos,side)=>{let top2=topNodeAt(state,pos,side),data2=top2.type.prop(languageDataProp);if(!data2)return[];let base=state.facet(data2),sub=top2.type.prop(sublanguageProp);if(sub){let innerNode=top2.resolve(pos-top2.from,side);for(let sublang of sub)if(sublang.test(innerNode,state)){let data3=state.facet(sublang.facet);return sublang.type==\"replace\"?data3:data3.concat(base);}}return base;})].concat(extraExtensions);}};Language.setState=/* @__PURE__ */StateEffect.define();function topNodeAt(state,pos,side){let topLang=state.facet(language),tree=syntaxTree(state).topNode;if(!topLang||topLang.allowsNesting){for(let node=tree;node;node=node.enter(pos,side,IterMode.ExcludeBuffers))if(node.type.isTop)tree=node;}return tree;}var LRLanguage=class extends Language{/**\n  Define a language from a parser.\n  */static define(spec){let data=defineLanguageFacet(spec.languageData);return new LRLanguage(data,spec.parser.configure({props:[languageDataProp.add(type=>type.isTop?data:void 0)]}),spec.name);}/**\n  Create a new instance of this language with a reconfigured\n  version of its parser and optionally a new name.\n  */configure(options,name){return new LRLanguage(this.data,this.parser.configure(options),name||this.name);}get allowsNesting(){return this.parser.hasWrappers();}constructor(data,parser,name){super(data,parser,[],name);this.parser=parser;}};function syntaxTree(state){let field=state.field(Language.state,false);return field?field.tree:Tree.empty;}function ensureSyntaxTree(state,upto,timeout=50){var _a2;let parse=(_a2=state.field(Language.state,false))===null||_a2===void 0?void 0:_a2.context;if(!parse)return null;let oldVieport=parse.viewport;parse.updateViewport({from:0,to:upto});let result=parse.isDone(upto)||parse.work(timeout,upto)?parse.tree:null;parse.updateViewport(oldVieport);return result;}function syntaxTreeAvailable(state,upto=state.doc.length){var _a2;return((_a2=state.field(Language.state,false))===null||_a2===void 0?void 0:_a2.context.isDone(upto))||false;}function forceParsing(view,upto=view.viewport.to,timeout=100){let success=ensureSyntaxTree(view.state,upto,timeout);if(success!=syntaxTree(view.state))view.dispatch({});return!!success;}function syntaxParserRunning(view){var _a2;return((_a2=view.plugin(parseWorker))===null||_a2===void 0?void 0:_a2.isWorking())||false;}var DocInput=class{get length(){return this.doc.length;}syncTo(pos){this.string=this.cursor.next(pos-this.cursorPos).value;this.cursorPos=pos+this.string.length;return this.cursorPos-this.string.length;}chunk(pos){this.syncTo(pos);return this.string;}get lineChunks(){return true;}read(from,to){let stringStart=this.cursorPos-this.string.length;if(from<stringStart||to>=this.cursorPos)return this.doc.sliceString(from,to);else return this.string.slice(from-stringStart,to-stringStart);}/**\n  Create an input object for the given document.\n  */constructor(doc){this.doc=doc;this.cursorPos=0;this.string=\"\";this.cursor=doc.iter();}};var currentContext=null;var ParseContext=class{/**\n  @internal\n  */static create(parser,state,viewport){return new ParseContext(parser,state,[],Tree.empty,0,viewport,[],null);}startParse(){return this.parser.startParse(new DocInput(this.state.doc),this.fragments);}/**\n  @internal\n  */work(until,upto){if(upto!=null&&upto>=this.state.doc.length)upto=void 0;if(this.tree!=Tree.empty&&this.isDone(upto!==null&&upto!==void 0?upto:this.state.doc.length)){this.takeTree();return true;}return this.withContext(()=>{var _a2;if(typeof until==\"number\"){let endTime=Date.now()+until;until=()=>Date.now()>endTime;}if(!this.parse)this.parse=this.startParse();if(upto!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>upto)&&upto<this.state.doc.length)this.parse.stopAt(upto);for(;;){let done=this.parse.advance();if(done){this.fragments=this.withoutTempSkipped(TreeFragment.addTree(done,this.fragments,this.parse.stoppedAt!=null));this.treeLen=(_a2=this.parse.stoppedAt)!==null&&_a2!==void 0?_a2:this.state.doc.length;this.tree=done;this.parse=null;if(this.treeLen<(upto!==null&&upto!==void 0?upto:this.state.doc.length))this.parse=this.startParse();else return true;}if(until())return false;}});}/**\n  @internal\n  */takeTree(){let pos,tree;if(this.parse&&(pos=this.parse.parsedPos)>=this.treeLen){if(this.parse.stoppedAt==null||this.parse.stoppedAt>pos)this.parse.stopAt(pos);this.withContext(()=>{while(!(tree=this.parse.advance())){}});this.treeLen=pos;this.tree=tree;this.fragments=this.withoutTempSkipped(TreeFragment.addTree(this.tree,this.fragments,true));this.parse=null;}}withContext(f){let prev=currentContext;currentContext=this;try{return f();}finally{currentContext=prev;}}withoutTempSkipped(fragments){for(let r;r=this.tempSkipped.pop();)fragments=cutFragments(fragments,r.from,r.to);return fragments;}/**\n  @internal\n  */changes(changes,newState){let{fragments,tree,treeLen,viewport,skipped}=this;this.takeTree();if(!changes.empty){let ranges=[];changes.iterChangedRanges((fromA,toA,fromB,toB)=>ranges.push({fromA,toA,fromB,toB}));fragments=TreeFragment.applyChanges(fragments,ranges);tree=Tree.empty;treeLen=0;viewport={from:changes.mapPos(viewport.from,-1),to:changes.mapPos(viewport.to,1)};if(this.skipped.length){skipped=[];for(let r of this.skipped){let from=changes.mapPos(r.from,1),to=changes.mapPos(r.to,-1);if(from<to)skipped.push({from,to});}}}return new ParseContext(this.parser,newState,fragments,tree,treeLen,viewport,skipped,this.scheduleOn);}/**\n  @internal\n  */updateViewport(viewport){if(this.viewport.from==viewport.from&&this.viewport.to==viewport.to)return false;this.viewport=viewport;let startLen=this.skipped.length;for(let i=0;i<this.skipped.length;i++){let{from,to}=this.skipped[i];if(from<viewport.to&&to>viewport.from){this.fragments=cutFragments(this.fragments,from,to);this.skipped.splice(i--,1);}}if(this.skipped.length>=startLen)return false;this.reset();return true;}/**\n  @internal\n  */reset(){if(this.parse){this.takeTree();this.parse=null;}}/**\n  Notify the parse scheduler that the given region was skipped\n  because it wasn't in view, and the parse should be restarted\n  when it comes into view.\n  */skipUntilInView(from,to){this.skipped.push({from,to});}/**\n  Returns a parser intended to be used as placeholder when\n  asynchronously loading a nested parser. It'll skip its input and\n  mark it as not-really-parsed, so that the next update will parse\n  it again.\n  \n  When `until` is given, a reparse will be scheduled when that\n  promise resolves.\n  */static getSkippingParser(until){return new class extends Parser{createParse(input,fragments,ranges){let from=ranges[0].from,to=ranges[ranges.length-1].to;let parser={parsedPos:from,advance(){let cx=currentContext;if(cx){for(let r of ranges)cx.tempSkipped.push(r);if(until)cx.scheduleOn=cx.scheduleOn?Promise.all([cx.scheduleOn,until]):until;}this.parsedPos=to;return new Tree(NodeType.none,[],[],to-from);},stoppedAt:null,stopAt(){}};return parser;}};}/**\n  @internal\n  */isDone(upto){upto=Math.min(upto,this.state.doc.length);let frags=this.fragments;return this.treeLen>=upto&&frags.length&&frags[0].from==0&&frags[0].to>=upto;}/**\n  Get the context for the current parse, or `null` if no editor\n  parse is in progress.\n  */static get(){return currentContext;}constructor(parser,state,fragments=[],tree,treeLen,viewport,skipped,scheduleOn){this.parser=parser;this.state=state;this.fragments=fragments;this.tree=tree;this.treeLen=treeLen;this.viewport=viewport;this.skipped=skipped;this.scheduleOn=scheduleOn;this.parse=null;this.tempSkipped=[];}};function cutFragments(fragments,from,to){return TreeFragment.applyChanges(fragments,[{fromA:from,toA:to,fromB:from,toB:to}]);}var LanguageState=class{apply(tr){if(!tr.docChanged&&this.tree==this.context.tree)return this;let newCx=this.context.changes(tr.changes,tr.state);let upto=this.context.treeLen==tr.startState.doc.length?void 0:Math.max(tr.changes.mapPos(this.context.treeLen),newCx.viewport.to);if(!newCx.work(20,upto))newCx.takeTree();return new LanguageState(newCx);}static init(state){let vpTo=Math.min(3e3,state.doc.length);let parseState=ParseContext.create(state.facet(language).parser,state,{from:0,to:vpTo});if(!parseState.work(20,vpTo))parseState.takeTree();return new LanguageState(parseState);}constructor(context){this.context=context;this.tree=context.tree;}};Language.state=/* @__PURE__ */StateField.define({create:LanguageState.init,update(value,tr){for(let e of tr.effects)if(e.is(Language.setState))return e.value;if(tr.startState.facet(language)!=tr.state.facet(language))return LanguageState.init(tr.state);return value.apply(tr);}});var requestIdle=callback=>{let timeout=setTimeout(()=>callback(),500);return()=>clearTimeout(timeout);};if(typeof requestIdleCallback!=\"undefined\")requestIdle=callback=>{let idle=-1,timeout=setTimeout(()=>{idle=requestIdleCallback(callback,{timeout:500-100});},100);return()=>idle<0?clearTimeout(timeout):cancelIdleCallback(idle);};var isInputPending=typeof navigator!=\"undefined\"&&((_a=navigator.scheduling)===null||_a===void 0?void 0:_a.isInputPending)?()=>navigator.scheduling.isInputPending():null;var parseWorker=/* @__PURE__ */ViewPlugin.fromClass(class ParseWorker{update(update){let cx=this.view.state.field(Language.state).context;if(cx.updateViewport(update.view.viewport)||this.view.viewport.to>cx.treeLen)this.scheduleWork();if(update.docChanged){if(this.view.hasFocus)this.chunkBudget+=50;this.scheduleWork();}this.checkAsyncSchedule(cx);}scheduleWork(){if(this.working)return;let{state}=this.view,field=state.field(Language.state);if(field.tree!=field.context.tree||!field.context.isDone(state.doc.length))this.working=requestIdle(this.work);}work(deadline){this.working=null;let now=Date.now();if(this.chunkEnd<now&&(this.chunkEnd<0||this.view.hasFocus)){this.chunkEnd=now+3e4;this.chunkBudget=3e3;}if(this.chunkBudget<=0)return;let{state,viewport:{to:vpTo}}=this.view,field=state.field(Language.state);if(field.tree==field.context.tree&&field.context.isDone(vpTo+1e5))return;let endTime=Date.now()+Math.min(this.chunkBudget,100,deadline&&!isInputPending?Math.max(25,deadline.timeRemaining()-5):1e9);let viewportFirst=field.context.treeLen<vpTo&&state.doc.length>vpTo+1e3;let done=field.context.work(()=>{return isInputPending&&isInputPending()||Date.now()>endTime;},vpTo+(viewportFirst?0:1e5));this.chunkBudget-=Date.now()-now;if(done||this.chunkBudget<=0){field.context.takeTree();this.view.dispatch({effects:Language.setState.of(new LanguageState(field.context))});}if(this.chunkBudget>0&&!(done&&!viewportFirst))this.scheduleWork();this.checkAsyncSchedule(field.context);}checkAsyncSchedule(cx){if(cx.scheduleOn){this.workScheduled++;cx.scheduleOn.then(()=>this.scheduleWork()).catch(err=>logException(this.view.state,err)).then(()=>this.workScheduled--);cx.scheduleOn=null;}}destroy(){if(this.working)this.working();}isWorking(){return!!(this.working||this.workScheduled>0);}constructor(view){this.view=view;this.working=null;this.workScheduled=0;this.chunkEnd=-1;this.chunkBudget=-1;this.work=this.work.bind(this);this.scheduleWork();}},{eventHandlers:{focus(){this.scheduleWork();}}});var language=/* @__PURE__ */Facet.define({combine(languages){return languages.length?languages[0]:null;},enables:language2=>[Language.state,parseWorker,EditorView.contentAttributes.compute([language2],state=>{let lang=state.facet(language2);return lang&&lang.name?{\"data-language\":lang.name}:{};})]});var LanguageSupport=class{/**\n  Create a language support object.\n  */constructor(language2,support=[]){this.language=language2;this.support=support;this.extension=[language2,support];}};var LanguageDescription=class{/**\n  Start loading the the language. Will return a promise that\n  resolves to a [`LanguageSupport`](https://codemirror.net/6/docs/ref/#language.LanguageSupport)\n  object when the language successfully loads.\n  */load(){return this.loading||(this.loading=this.loadFunc().then(support=>this.support=support,err=>{this.loading=null;throw err;}));}/**\n  Create a language description.\n  */static of(spec){let{load,support}=spec;if(!load){if(!support)throw new RangeError(\"Must pass either 'load' or 'support' to LanguageDescription.of\");load=()=>Promise.resolve(support);}return new LanguageDescription(spec.name,(spec.alias||[]).concat(spec.name).map(s=>s.toLowerCase()),spec.extensions||[],spec.filename,load,support);}/**\n  Look for a language in the given array of descriptions that\n  matches the filename. Will first match\n  [`filename`](https://codemirror.net/6/docs/ref/#language.LanguageDescription.filename) patterns,\n  and then [extensions](https://codemirror.net/6/docs/ref/#language.LanguageDescription.extensions),\n  and return the first language that matches.\n  */static matchFilename(descs,filename){for(let d of descs)if(d.filename&&d.filename.test(filename))return d;let ext=/\\.([^.]+)$/.exec(filename);if(ext){for(let d of descs)if(d.extensions.indexOf(ext[1])>-1)return d;}return null;}/**\n  Look for a language whose name or alias matches the the given\n  name (case-insensitively). If `fuzzy` is true, and no direct\n  matchs is found, this'll also search for a language whose name\n  or alias occurs in the string (for names shorter than three\n  characters, only when surrounded by non-word characters).\n  */static matchLanguageName(descs,name,fuzzy=true){name=name.toLowerCase();for(let d of descs)if(d.alias.some(a=>a==name))return d;if(fuzzy)for(let d of descs)for(let a of d.alias){let found=name.indexOf(a);if(found>-1&&(a.length>2||!/\\w/.test(name[found-1])&&!/\\w/.test(name[found+a.length])))return d;}return null;}constructor(name,alias,extensions,filename,loadFunc,support=void 0){this.name=name;this.alias=alias;this.extensions=extensions;this.filename=filename;this.loadFunc=loadFunc;this.support=support;this.loading=null;}};var indentService=/* @__PURE__ */Facet.define();var indentUnit=/* @__PURE__ */Facet.define({combine:values=>{if(!values.length)return\"  \";let unit=values[0];if(!unit||/\\S/.test(unit)||Array.from(unit).some(e=>e!=unit[0]))throw new Error(\"Invalid indent unit: \"+JSON.stringify(values[0]));return unit;}});function getIndentUnit(state){let unit=state.facet(indentUnit);return unit.charCodeAt(0)==9?state.tabSize*unit.length:unit.length;}function indentString(state,cols){let result=\"\",ts=state.tabSize,ch=state.facet(indentUnit)[0];if(ch==\"\t\"){while(cols>=ts){result+=\"\t\";cols-=ts;}ch=\" \";}for(let i=0;i<cols;i++)result+=ch;return result;}function getIndentation(context,pos){if(context instanceof EditorState)context=new IndentContext(context);for(let service of context.state.facet(indentService)){let result=service(context,pos);if(result!==void 0)return result;}let tree=syntaxTree(context.state);return tree?syntaxIndentation(context,tree,pos):null;}function indentRange(state,from,to){let updated=/* @__PURE__ */Object.create(null);let context=new IndentContext(state,{overrideIndentation:start=>{var _a2;return(_a2=updated[start])!==null&&_a2!==void 0?_a2:-1;}});let changes=[];for(let pos=from;pos<=to;){let line=state.doc.lineAt(pos);pos=line.to+1;let indent=getIndentation(context,line.from);if(indent==null)continue;if(!/\\S/.test(line.text))indent=0;let cur=/^\\s*/.exec(line.text)[0];let norm=indentString(state,indent);if(cur!=norm){updated[line.from]=indent;changes.push({from:line.from,to:line.from+cur.length,insert:norm});}}return state.changes(changes);}var IndentContext=class{/**\n  Get a description of the line at the given position, taking\n  [simulated line\n  breaks](https://codemirror.net/6/docs/ref/#language.IndentContext.constructor^options.simulateBreak)\n  into account. If there is such a break at `pos`, the `bias`\n  argument determines whether the part of the line line before or\n  after the break is used.\n  */lineAt(pos,bias=1){let line=this.state.doc.lineAt(pos);let{simulateBreak,simulateDoubleBreak}=this.options;if(simulateBreak!=null&&simulateBreak>=line.from&&simulateBreak<=line.to){if(simulateDoubleBreak&&simulateBreak==pos)return{text:\"\",from:pos};else if(bias<0?simulateBreak<pos:simulateBreak<=pos)return{text:line.text.slice(simulateBreak-line.from),from:simulateBreak};else return{text:line.text.slice(0,simulateBreak-line.from),from:line.from};}return line;}/**\n  Get the text directly after `pos`, either the entire line\n  or the next 100 characters, whichever is shorter.\n  */textAfterPos(pos,bias=1){if(this.options.simulateDoubleBreak&&pos==this.options.simulateBreak)return\"\";let{text,from}=this.lineAt(pos,bias);return text.slice(pos-from,Math.min(text.length,pos+100-from));}/**\n  Find the column for the given position.\n  */column(pos,bias=1){let{text,from}=this.lineAt(pos,bias);let result=this.countColumn(text,pos-from);let override=this.options.overrideIndentation?this.options.overrideIndentation(from):-1;if(override>-1)result+=override-this.countColumn(text,text.search(/\\S|$/));return result;}/**\n  Find the column position (taking tabs into account) of the given\n  position in the given string.\n  */countColumn(line,pos=line.length){return countColumn(line,this.state.tabSize,pos);}/**\n  Find the indentation column of the line at the given point.\n  */lineIndent(pos,bias=1){let{text,from}=this.lineAt(pos,bias);let override=this.options.overrideIndentation;if(override){let overriden=override(from);if(overriden>-1)return overriden;}return this.countColumn(text,text.search(/\\S|$/));}/**\n  Returns the [simulated line\n  break](https://codemirror.net/6/docs/ref/#language.IndentContext.constructor^options.simulateBreak)\n  for this context, if any.\n  */get simulatedBreak(){return this.options.simulateBreak||null;}/**\n  Create an indent context.\n  */constructor(state,options={}){this.state=state;this.options=options;this.unit=getIndentUnit(state);}};var indentNodeProp=/* @__PURE__ */new NodeProp;function syntaxIndentation(cx,ast,pos){return indentFrom(ast.resolveInner(pos).enterUnfinishedNodesBefore(pos),pos,cx);}function ignoreClosed(cx){return cx.pos==cx.options.simulateBreak&&cx.options.simulateDoubleBreak;}function indentStrategy(tree){let strategy=tree.type.prop(indentNodeProp);if(strategy)return strategy;let first=tree.firstChild,close;if(first&&(close=first.type.prop(NodeProp.closedBy))){let last=tree.lastChild,closed=last&&close.indexOf(last.name)>-1;return cx=>delimitedStrategy(cx,true,1,void 0,closed&&!ignoreClosed(cx)?last.from:void 0);}return tree.parent==null?topIndent:null;}function indentFrom(node,pos,base){for(;node;node=node.parent){let strategy=indentStrategy(node);if(strategy)return strategy(TreeIndentContext.create(base,pos,node));}return null;}function topIndent(){return 0;}var TreeIndentContext=class extends IndentContext{/**\n  @internal\n  */static create(base,pos,node){return new TreeIndentContext(base,pos,node);}/**\n  Get the text directly after `this.pos`, either the entire line\n  or the next 100 characters, whichever is shorter.\n  */get textAfter(){return this.textAfterPos(this.pos);}/**\n  Get the indentation at the reference line for `this.node`, which\n  is the line on which it starts, unless there is a node that is\n  _not_ a parent of this node covering the start of that line. If\n  so, the line at the start of that node is tried, again skipping\n  on if it is covered by another such node.\n  */get baseIndent(){return this.baseIndentFor(this.node);}/**\n  Get the indentation for the reference line of the given node\n  (see [`baseIndent`](https://codemirror.net/6/docs/ref/#language.TreeIndentContext.baseIndent)).\n  */baseIndentFor(node){let line=this.state.doc.lineAt(node.from);for(;;){let atBreak=node.resolve(line.from);while(atBreak.parent&&atBreak.parent.from==atBreak.from)atBreak=atBreak.parent;if(isParent(atBreak,node))break;line=this.state.doc.lineAt(atBreak.from);}return this.lineIndent(line.from);}/**\n  Continue looking for indentations in the node's parent nodes,\n  and return the result of that.\n  */continue(){let parent=this.node.parent;return parent?indentFrom(parent,this.pos,this.base):0;}constructor(base,pos,node){super(base.state,base.options);this.base=base;this.pos=pos;this.node=node;}};function isParent(parent,of){for(let cur=of;cur;cur=cur.parent)if(parent==cur)return true;return false;}function bracketedAligned(context){let tree=context.node;let openToken=tree.childAfter(tree.from),last=tree.lastChild;if(!openToken)return null;let sim=context.options.simulateBreak;let openLine=context.state.doc.lineAt(openToken.from);let lineEnd=sim==null||sim<=openLine.from?openLine.to:Math.min(openLine.to,sim);for(let pos=openToken.to;;){let next=tree.childAfter(pos);if(!next||next==last)return null;if(!next.type.isSkipped)return next.from<lineEnd?openToken:null;pos=next.to;}}function delimitedIndent({closing,align=true,units=1}){return context=>delimitedStrategy(context,align,units,closing);}function delimitedStrategy(context,align,units,closing,closedAt){let after=context.textAfter,space=after.match(/^\\s*/)[0].length;let closed=closing&&after.slice(space,space+closing.length)==closing||closedAt==context.pos+space;let aligned=align?bracketedAligned(context):null;if(aligned)return closed?context.column(aligned.from):context.column(aligned.to);return context.baseIndent+(closed?0:context.unit*units);}var flatIndent=context=>context.baseIndent;function continuedIndent({except,units=1}={}){return context=>{let matchExcept=except&&except.test(context.textAfter);return context.baseIndent+(matchExcept?0:units*context.unit);};}var DontIndentBeyond=200;function indentOnInput(){return EditorState.transactionFilter.of(tr=>{if(!tr.docChanged||!tr.isUserEvent(\"input.type\")&&!tr.isUserEvent(\"input.complete\"))return tr;let rules=tr.startState.languageDataAt(\"indentOnInput\",tr.startState.selection.main.head);if(!rules.length)return tr;let doc=tr.newDoc,{head}=tr.newSelection.main,line=doc.lineAt(head);if(head>line.from+DontIndentBeyond)return tr;let lineStart=doc.sliceString(line.from,head);if(!rules.some(r=>r.test(lineStart)))return tr;let{state}=tr,last=-1,changes=[];for(let{head:head2}of state.selection.ranges){let line2=state.doc.lineAt(head2);if(line2.from==last)continue;last=line2.from;let indent=getIndentation(state,line2.from);if(indent==null)continue;let cur=/^\\s*/.exec(line2.text)[0];let norm=indentString(state,indent);if(cur!=norm)changes.push({from:line2.from,to:line2.from+cur.length,insert:norm});}return changes.length?[tr,{changes,sequential:true}]:tr;});}var foldService=/* @__PURE__ */Facet.define();var foldNodeProp=/* @__PURE__ */new NodeProp;function foldInside(node){let first=node.firstChild,last=node.lastChild;return first&&first.to<last.from?{from:first.to,to:last.type.isError?node.to:last.from}:null;}function syntaxFolding(state,start,end){let tree=syntaxTree(state);if(tree.length<end)return null;let inner=tree.resolveInner(end,1);let found=null;for(let cur=inner;cur;cur=cur.parent){if(cur.to<=end||cur.from>end)continue;if(found&&cur.from<start)break;let prop=cur.type.prop(foldNodeProp);if(prop&&(cur.to<tree.length-50||tree.length==state.doc.length||!isUnfinished(cur))){let value=prop(cur,state);if(value&&value.from<=end&&value.from>=start&&value.to>end)found=value;}}return found;}function isUnfinished(node){let ch=node.lastChild;return ch&&ch.to==node.to&&ch.type.isError;}function foldable(state,lineStart,lineEnd){for(let service of state.facet(foldService)){let result=service(state,lineStart,lineEnd);if(result)return result;}return syntaxFolding(state,lineStart,lineEnd);}function mapRange(range,mapping){let from=mapping.mapPos(range.from,1),to=mapping.mapPos(range.to,-1);return from>=to?void 0:{from,to};}var foldEffect=/* @__PURE__ */StateEffect.define({map:mapRange});var unfoldEffect=/* @__PURE__ */StateEffect.define({map:mapRange});function selectedLines(view){let lines=[];for(let{head}of view.state.selection.ranges){if(lines.some(l=>l.from<=head&&l.to>=head))continue;lines.push(view.lineBlockAt(head));}return lines;}var foldState=/* @__PURE__ */StateField.define({create(){return Decoration.none;},update(folded,tr){folded=folded.map(tr.changes);for(let e of tr.effects){if(e.is(foldEffect)&&!foldExists(folded,e.value.from,e.value.to))folded=folded.update({add:[foldWidget.range(e.value.from,e.value.to)]});else if(e.is(unfoldEffect))folded=folded.update({filter:(from,to)=>e.value.from!=from||e.value.to!=to,filterFrom:e.value.from,filterTo:e.value.to});}if(tr.selection){let onSelection=false,{head}=tr.selection.main;folded.between(head,head,(a,b)=>{if(a<head&&b>head)onSelection=true;});if(onSelection)folded=folded.update({filterFrom:head,filterTo:head,filter:(a,b)=>b<=head||a>=head});}return folded;},provide:f=>EditorView.decorations.from(f),toJSON(folded,state){let ranges=[];folded.between(0,state.doc.length,(from,to)=>{ranges.push(from,to);});return ranges;},fromJSON(value){if(!Array.isArray(value)||value.length%2)throw new RangeError(\"Invalid JSON for fold state\");let ranges=[];for(let i=0;i<value.length;){let from=value[i++],to=value[i++];if(typeof from!=\"number\"||typeof to!=\"number\")throw new RangeError(\"Invalid JSON for fold state\");ranges.push(foldWidget.range(from,to));}return Decoration.set(ranges,true);}});function foldedRanges(state){return state.field(foldState,false)||RangeSet.empty;}function findFold(state,from,to){var _a2;let found=null;(_a2=state.field(foldState,false))===null||_a2===void 0?void 0:_a2.between(from,to,(from2,to2)=>{if(!found||found.from>from2)found={from:from2,to:to2};});return found;}function foldExists(folded,from,to){let found=false;folded.between(from,from,(a,b)=>{if(a==from&&b==to)found=true;});return found;}function maybeEnable(state,other){return state.field(foldState,false)?other:other.concat(StateEffect.appendConfig.of(codeFolding()));}var foldCode=view=>{for(let line of selectedLines(view)){let range=foldable(view.state,line.from,line.to);if(range){view.dispatch({effects:maybeEnable(view.state,[foldEffect.of(range),announceFold(view,range)])});return true;}}return false;};var unfoldCode=view=>{if(!view.state.field(foldState,false))return false;let effects=[];for(let line of selectedLines(view)){let folded=findFold(view.state,line.from,line.to);if(folded)effects.push(unfoldEffect.of(folded),announceFold(view,folded,false));}if(effects.length)view.dispatch({effects});return effects.length>0;};function announceFold(view,range,fold=true){let lineFrom=view.state.doc.lineAt(range.from).number,lineTo=view.state.doc.lineAt(range.to).number;return EditorView.announce.of(`${view.state.phrase(fold?\"Folded lines\":\"Unfolded lines\")} ${lineFrom} ${view.state.phrase(\"to\")} ${lineTo}.`);}var foldAll=view=>{let{state}=view,effects=[];for(let pos=0;pos<state.doc.length;){let line=view.lineBlockAt(pos),range=foldable(state,line.from,line.to);if(range)effects.push(foldEffect.of(range));pos=(range?view.lineBlockAt(range.to):line).to+1;}if(effects.length)view.dispatch({effects:maybeEnable(view.state,effects)});return!!effects.length;};var unfoldAll=view=>{let field=view.state.field(foldState,false);if(!field||!field.size)return false;let effects=[];field.between(0,view.state.doc.length,(from,to)=>{effects.push(unfoldEffect.of({from,to}));});view.dispatch({effects});return true;};function foldableContainer(view,lineBlock){for(let line=lineBlock;;){let foldableRegion=foldable(view.state,line.from,line.to);if(foldableRegion&&foldableRegion.to>lineBlock.from)return foldableRegion;if(!line.from)return null;line=view.lineBlockAt(line.from-1);}}var toggleFold=view=>{let effects=[];for(let line of selectedLines(view)){let folded=findFold(view.state,line.from,line.to);if(folded){effects.push(unfoldEffect.of(folded),announceFold(view,folded,false));}else{let foldRange=foldableContainer(view,line);if(foldRange)effects.push(foldEffect.of(foldRange),announceFold(view,foldRange));}}if(effects.length>0)view.dispatch({effects:maybeEnable(view.state,effects)});return!!effects.length;};var foldKeymap=[{key:\"Ctrl-Shift-[\",mac:\"Cmd-Alt-[\",run:foldCode},{key:\"Ctrl-Shift-]\",mac:\"Cmd-Alt-]\",run:unfoldCode},{key:\"Ctrl-Alt-[\",run:foldAll},{key:\"Ctrl-Alt-]\",run:unfoldAll}];var defaultConfig={placeholderDOM:null,placeholderText:\"…\"};var foldConfig=/* @__PURE__ */Facet.define({combine(values){return combineConfig(values,defaultConfig);}});function codeFolding(config){let result=[foldState,baseTheme$1];if(config)result.push(foldConfig.of(config));return result;}var foldWidget=/* @__PURE__ */Decoration.replace({widget:/* @__PURE__ */new class extends WidgetType{toDOM(view){let{state}=view,conf=state.facet(foldConfig);let onclick=event=>{let line=view.lineBlockAt(view.posAtDOM(event.target));let folded=findFold(view.state,line.from,line.to);if(folded)view.dispatch({effects:unfoldEffect.of(folded)});event.preventDefault();};if(conf.placeholderDOM)return conf.placeholderDOM(view,onclick);let element=document.createElement(\"span\");element.textContent=conf.placeholderText;element.setAttribute(\"aria-label\",state.phrase(\"folded code\"));element.title=state.phrase(\"unfold\");element.className=\"cm-foldPlaceholder\";element.onclick=onclick;return element;}}});var foldGutterDefaults={openText:\"⌄\",closedText:\"›\",markerDOM:null,domEventHandlers:{},foldingChanged:()=>false};var FoldMarker=class extends GutterMarker{eq(other){return this.config==other.config&&this.open==other.open;}toDOM(view){if(this.config.markerDOM)return this.config.markerDOM(this.open);let span=document.createElement(\"span\");span.textContent=this.open?this.config.openText:this.config.closedText;span.title=view.state.phrase(this.open?\"Fold line\":\"Unfold line\");return span;}constructor(config,open){super();this.config=config;this.open=open;}};function foldGutter(config={}){let fullConfig=Object.assign(Object.assign({},foldGutterDefaults),config);let canFold=new FoldMarker(fullConfig,true),canUnfold=new FoldMarker(fullConfig,false);let markers=ViewPlugin.fromClass(class{update(update){if(update.docChanged||update.viewportChanged||update.startState.facet(language)!=update.state.facet(language)||update.startState.field(foldState,false)!=update.state.field(foldState,false)||syntaxTree(update.startState)!=syntaxTree(update.state)||fullConfig.foldingChanged(update))this.markers=this.buildMarkers(update.view);}buildMarkers(view){let builder=new RangeSetBuilder;for(let line of view.viewportLineBlocks){let mark=findFold(view.state,line.from,line.to)?canUnfold:foldable(view.state,line.from,line.to)?canFold:null;if(mark)builder.add(line.from,line.from,mark);}return builder.finish();}constructor(view){this.from=view.viewport.from;this.markers=this.buildMarkers(view);}});let{domEventHandlers}=fullConfig;return[markers,gutter({class:\"cm-foldGutter\",markers(view){var _a2;return((_a2=view.plugin(markers))===null||_a2===void 0?void 0:_a2.markers)||RangeSet.empty;},initialSpacer(){return new FoldMarker(fullConfig,false);},domEventHandlers:Object.assign(Object.assign({},domEventHandlers),{click:(view,line,event)=>{if(domEventHandlers.click&&domEventHandlers.click(view,line,event))return true;let folded=findFold(view.state,line.from,line.to);if(folded){view.dispatch({effects:unfoldEffect.of(folded)});return true;}let range=foldable(view.state,line.from,line.to);if(range){view.dispatch({effects:foldEffect.of(range)});return true;}return false;}})}),codeFolding()];}var baseTheme$1=/* @__PURE__ */EditorView.baseTheme({\".cm-foldPlaceholder\":{backgroundColor:\"#eee\",border:\"1px solid #ddd\",color:\"#888\",borderRadius:\".2em\",margin:\"0 1px\",padding:\"0 1px\",cursor:\"pointer\"},\".cm-foldGutter span\":{padding:\"0 1px\",cursor:\"pointer\"}});var HighlightStyle=class{/**\n  Create a highlighter style that associates the given styles to\n  the given tags. The specs must be objects that hold a style tag\n  or array of tags in their `tag` property, and either a single\n  `class` property providing a static CSS class (for highlighter\n  that rely on external styling), or a\n  [`style-mod`](https://github.com/marijnh/style-mod#documentation)-style\n  set of CSS properties (which define the styling for those tags).\n  \n  The CSS rules created for a highlighter will be emitted in the\n  order of the spec's properties. That means that for elements that\n  have multiple tags associated with them, styles defined further\n  down in the list will have a higher CSS precedence than styles\n  defined earlier.\n  */static define(specs,options){return new HighlightStyle(specs,options||{});}constructor(specs,options){this.specs=specs;let modSpec;function def(spec){let cls=StyleModule.newName();(modSpec||(modSpec=/* @__PURE__ */Object.create(null)))[\".\"+cls]=spec;return cls;}const all=typeof options.all==\"string\"?options.all:options.all?def(options.all):void 0;const scopeOpt=options.scope;this.scope=scopeOpt instanceof Language?type=>type.prop(languageDataProp)==scopeOpt.data:scopeOpt?type=>type==scopeOpt:void 0;this.style=tagHighlighter(specs.map(style=>({tag:style.tag,class:style.class||def(Object.assign({},style,{tag:null}))})),{all}).style;this.module=modSpec?new StyleModule(modSpec):null;this.themeType=options.themeType;}};var highlighterFacet=/* @__PURE__ */Facet.define();var fallbackHighlighter=/* @__PURE__ */Facet.define({combine(values){return values.length?[values[0]]:null;}});function getHighlighters(state){let main=state.facet(highlighterFacet);return main.length?main:state.facet(fallbackHighlighter);}function syntaxHighlighting(highlighter,options){let ext=[treeHighlighter],themeType;if(highlighter instanceof HighlightStyle){if(highlighter.module)ext.push(EditorView.styleModule.of(highlighter.module));themeType=highlighter.themeType;}if(options===null||options===void 0?void 0:options.fallback)ext.push(fallbackHighlighter.of(highlighter));else if(themeType)ext.push(highlighterFacet.computeN([EditorView.darkTheme],state=>{return state.facet(EditorView.darkTheme)==(themeType==\"dark\")?[highlighter]:[];}));else ext.push(highlighterFacet.of(highlighter));return ext;}function highlightingFor(state,tags2,scope){let highlighters=getHighlighters(state);let result=null;if(highlighters)for(let highlighter of highlighters){if(!highlighter.scope||scope&&highlighter.scope(scope)){let cls=highlighter.style(tags2);if(cls)result=result?result+\" \"+cls:cls;}}return result;}var TreeHighlighter=class{update(update){let tree=syntaxTree(update.state),highlighters=getHighlighters(update.state);let styleChange=highlighters!=getHighlighters(update.startState);if(tree.length<update.view.viewport.to&&!styleChange&&tree.type==this.tree.type){this.decorations=this.decorations.map(update.changes);}else if(tree!=this.tree||update.viewportChanged||styleChange){this.tree=tree;this.decorations=this.buildDeco(update.view,highlighters);}}buildDeco(view,highlighters){if(!highlighters||!this.tree.length)return Decoration.none;let builder=new RangeSetBuilder;for(let{from,to}of view.visibleRanges){highlightTree(this.tree,highlighters,(from2,to2,style)=>{builder.add(from2,to2,this.markCache[style]||(this.markCache[style]=Decoration.mark({class:style})));},from,to);}return builder.finish();}constructor(view){this.markCache=/* @__PURE__ */Object.create(null);this.tree=syntaxTree(view.state);this.decorations=this.buildDeco(view,getHighlighters(view.state));}};var treeHighlighter=/* @__PURE__ */Prec.high(/* @__PURE__ */ViewPlugin.fromClass(TreeHighlighter,{decorations:v=>v.decorations}));var defaultHighlightStyle=/* @__PURE__ */HighlightStyle.define([{tag:tags.meta,color:\"#404740\"},{tag:tags.link,textDecoration:\"underline\"},{tag:tags.heading,textDecoration:\"underline\",fontWeight:\"bold\"},{tag:tags.emphasis,fontStyle:\"italic\"},{tag:tags.strong,fontWeight:\"bold\"},{tag:tags.strikethrough,textDecoration:\"line-through\"},{tag:tags.keyword,color:\"#708\"},{tag:[tags.atom,tags.bool,tags.url,tags.contentSeparator,tags.labelName],color:\"#219\"},{tag:[tags.literal,tags.inserted],color:\"#164\"},{tag:[tags.string,tags.deleted],color:\"#a11\"},{tag:[tags.regexp,tags.escape,/* @__PURE__ */tags.special(tags.string)],color:\"#e40\"},{tag:/* @__PURE__ */tags.definition(tags.variableName),color:\"#00f\"},{tag:/* @__PURE__ */tags.local(tags.variableName),color:\"#30a\"},{tag:[tags.typeName,tags.namespace],color:\"#085\"},{tag:tags.className,color:\"#167\"},{tag:[/* @__PURE__ */tags.special(tags.variableName),tags.macroName],color:\"#256\"},{tag:/* @__PURE__ */tags.definition(tags.propertyName),color:\"#00c\"},{tag:tags.comment,color:\"#940\"},{tag:tags.invalid,color:\"#f00\"}]);var baseTheme=/* @__PURE__ */EditorView.baseTheme({\"&.cm-focused .cm-matchingBracket\":{backgroundColor:\"#328c8252\"},\"&.cm-focused .cm-nonmatchingBracket\":{backgroundColor:\"#bb555544\"}});var DefaultScanDist=1e4;var DefaultBrackets=\"()[]{}\";var bracketMatchingConfig=/* @__PURE__ */Facet.define({combine(configs){return combineConfig(configs,{afterCursor:true,brackets:DefaultBrackets,maxScanDistance:DefaultScanDist,renderMatch:defaultRenderMatch});}});var matchingMark=/* @__PURE__ */Decoration.mark({class:\"cm-matchingBracket\"});var nonmatchingMark=/* @__PURE__ */Decoration.mark({class:\"cm-nonmatchingBracket\"});function defaultRenderMatch(match){let decorations=[];let mark=match.matched?matchingMark:nonmatchingMark;decorations.push(mark.range(match.start.from,match.start.to));if(match.end)decorations.push(mark.range(match.end.from,match.end.to));return decorations;}var bracketMatchingState=/* @__PURE__ */StateField.define({create(){return Decoration.none;},update(deco,tr){if(!tr.docChanged&&!tr.selection)return deco;let decorations=[];let config=tr.state.facet(bracketMatchingConfig);for(let range of tr.state.selection.ranges){if(!range.empty)continue;let match=matchBrackets(tr.state,range.head,-1,config)||range.head>0&&matchBrackets(tr.state,range.head-1,1,config)||config.afterCursor&&(matchBrackets(tr.state,range.head,1,config)||range.head<tr.state.doc.length&&matchBrackets(tr.state,range.head+1,-1,config));if(match)decorations=decorations.concat(config.renderMatch(match,tr.state));}return Decoration.set(decorations,true);},provide:f=>EditorView.decorations.from(f)});var bracketMatchingUnique=[bracketMatchingState,baseTheme];function bracketMatching(config={}){return[bracketMatchingConfig.of(config),bracketMatchingUnique];}var bracketMatchingHandle=/* @__PURE__ */new NodeProp;function matchingNodes(node,dir,brackets){let byProp=node.prop(dir<0?NodeProp.openedBy:NodeProp.closedBy);if(byProp)return byProp;if(node.name.length==1){let index=brackets.indexOf(node.name);if(index>-1&&index%2==(dir<0?1:0))return[brackets[index+dir]];}return null;}function findHandle(node){let hasHandle=node.type.prop(bracketMatchingHandle);return hasHandle?hasHandle(node.node):node;}function matchBrackets(state,pos,dir,config={}){let maxScanDistance=config.maxScanDistance||DefaultScanDist,brackets=config.brackets||DefaultBrackets;let tree=syntaxTree(state),node=tree.resolveInner(pos,dir);for(let cur=node;cur;cur=cur.parent){let matches=matchingNodes(cur.type,dir,brackets);if(matches&&cur.from<cur.to){let handle=findHandle(cur);if(handle&&(dir>0?pos>=handle.from&&pos<handle.to:pos>handle.from&&pos<=handle.to))return matchMarkedBrackets(state,pos,dir,cur,handle,matches,brackets);}}return matchPlainBrackets(state,pos,dir,tree,node.type,maxScanDistance,brackets);}function matchMarkedBrackets(_state,_pos,dir,token,handle,matching,brackets){let parent=token.parent,firstToken={from:handle.from,to:handle.to};let depth=0,cursor=parent===null||parent===void 0?void 0:parent.cursor();if(cursor&&(dir<0?cursor.childBefore(token.from):cursor.childAfter(token.to)))do{if(dir<0?cursor.to<=token.from:cursor.from>=token.to){if(depth==0&&matching.indexOf(cursor.type.name)>-1&&cursor.from<cursor.to){let endHandle=findHandle(cursor);return{start:firstToken,end:endHandle?{from:endHandle.from,to:endHandle.to}:void 0,matched:true};}else if(matchingNodes(cursor.type,dir,brackets)){depth++;}else if(matchingNodes(cursor.type,-dir,brackets)){if(depth==0){let endHandle=findHandle(cursor);return{start:firstToken,end:endHandle&&endHandle.from<endHandle.to?{from:endHandle.from,to:endHandle.to}:void 0,matched:false};}depth--;}}}while(dir<0?cursor.prevSibling():cursor.nextSibling())return{start:firstToken,matched:false};}function matchPlainBrackets(state,pos,dir,tree,tokenType,maxScanDistance,brackets){let startCh=dir<0?state.sliceDoc(pos-1,pos):state.sliceDoc(pos,pos+1);let bracket=brackets.indexOf(startCh);if(bracket<0||bracket%2==0!=dir>0)return null;let startToken={from:dir<0?pos-1:pos,to:dir>0?pos+1:pos};let iter=state.doc.iterRange(pos,dir>0?state.doc.length:0),depth=0;for(let distance=0;!iter.next().done&&distance<=maxScanDistance;){let text=iter.value;if(dir<0)distance+=text.length;let basePos=pos+distance*dir;for(let pos2=dir>0?0:text.length-1,end=dir>0?text.length:-1;pos2!=end;pos2+=dir){let found=brackets.indexOf(text[pos2]);if(found<0||tree.resolveInner(basePos+pos2,1).type!=tokenType)continue;if(found%2==0==dir>0){depth++;}else if(depth==1){return{start:startToken,end:{from:basePos+pos2,to:basePos+pos2+1},matched:found>>1==bracket>>1};}else{depth--;}}if(dir>0)distance+=text.length;}return iter.done?{start:startToken,matched:false}:null;}function countCol(string,end,tabSize,startIndex=0,startValue=0){if(end==null){end=string.search(/[^\\s\\u00a0]/);if(end==-1)end=string.length;}let n=startValue;for(let i=startIndex;i<end;i++){if(string.charCodeAt(i)==9)n+=tabSize-n%tabSize;else n++;}return n;}var StringStream=class{/**\n  True if we are at the end of the line.\n  */eol(){return this.pos>=this.string.length;}/**\n  True if we are at the start of the line.\n  */sol(){return this.pos==0;}/**\n  Get the next code unit after the current position, or undefined\n  if we're at the end of the line.\n  */peek(){return this.string.charAt(this.pos)||void 0;}/**\n  Read the next code unit and advance `this.pos`.\n  */next(){if(this.pos<this.string.length)return this.string.charAt(this.pos++);}/**\n  Match the next character against the given string, regular\n  expression, or predicate. Consume and return it if it matches.\n  */eat(match){let ch=this.string.charAt(this.pos);let ok;if(typeof match==\"string\")ok=ch==match;else ok=ch&&(match instanceof RegExp?match.test(ch):match(ch));if(ok){++this.pos;return ch;}}/**\n  Continue matching characters that match the given string,\n  regular expression, or predicate function. Return true if any\n  characters were consumed.\n  */eatWhile(match){let start=this.pos;while(this.eat(match)){}return this.pos>start;}/**\n  Consume whitespace ahead of `this.pos`. Return true if any was\n  found.\n  */eatSpace(){let start=this.pos;while(/[\\s\\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>start;}/**\n  Move to the end of the line.\n  */skipToEnd(){this.pos=this.string.length;}/**\n  Move to directly before the given character, if found on the\n  current line.\n  */skipTo(ch){let found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true;}}/**\n  Move back `n` characters.\n  */backUp(n){this.pos-=n;}/**\n  Get the column position at `this.pos`.\n  */column(){if(this.lastColumnPos<this.start){this.lastColumnValue=countCol(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue);this.lastColumnPos=this.start;}return this.lastColumnValue;}/**\n  Get the indentation column of the current line.\n  */indentation(){var _a2;return(_a2=this.overrideIndent)!==null&&_a2!==void 0?_a2:countCol(this.string,null,this.tabSize);}/**\n  Match the input against the given string or regular expression\n  (which should start with a `^`). Return true or the regexp match\n  if it matches.\n  \n  Unless `consume` is set to `false`, this will move `this.pos`\n  past the matched text.\n  \n  When matching a string `caseInsensitive` can be set to true to\n  make the match case-insensitive.\n  */match(pattern,consume,caseInsensitive){if(typeof pattern==\"string\"){let cased=str=>caseInsensitive?str.toLowerCase():str;let substr=this.string.substr(this.pos,pattern.length);if(cased(substr)==cased(pattern)){if(consume!==false)this.pos+=pattern.length;return true;}else return null;}else{let match=this.string.slice(this.pos).match(pattern);if(match&&match.index>0)return null;if(match&&consume!==false)this.pos+=match[0].length;return match;}}/**\n  Get the current token.\n  */current(){return this.string.slice(this.start,this.pos);}/**\n  Create a stream.\n  */constructor(string,tabSize,indentUnit2,overrideIndent){this.string=string;this.tabSize=tabSize;this.indentUnit=indentUnit2;this.overrideIndent=overrideIndent;this.pos=0;this.start=0;this.lastColumnPos=0;this.lastColumnValue=0;}};function fullParser(spec){return{name:spec.name||\"\",token:spec.token,blankLine:spec.blankLine||(()=>{}),startState:spec.startState||(()=>true),copyState:spec.copyState||defaultCopyState,indent:spec.indent||(()=>null),languageData:spec.languageData||{},tokenTable:spec.tokenTable||noTokens};}function defaultCopyState(state){if(typeof state!=\"object\")return state;let newState={};for(let prop in state){let val=state[prop];newState[prop]=val instanceof Array?val.slice():val;}return newState;}var IndentedFrom=/* @__PURE__ */new WeakMap;var StreamLanguage=class extends Language{/**\n  Define a stream language.\n  */static define(spec){return new StreamLanguage(spec);}getIndent(cx,pos){let tree=syntaxTree(cx.state),at=tree.resolve(pos);while(at&&at.type!=this.topNode)at=at.parent;if(!at)return null;let from=void 0;let{overrideIndentation}=cx.options;if(overrideIndentation){from=IndentedFrom.get(cx.state);if(from!=null&&from<pos-1e4)from=void 0;}let start=findState(this,tree,0,at.from,from!==null&&from!==void 0?from:pos),statePos,state;if(start){state=start.state;statePos=start.pos+1;}else{state=this.streamParser.startState(cx.unit);statePos=0;}if(pos-statePos>1e4)return null;while(statePos<pos){let line2=cx.state.doc.lineAt(statePos),end=Math.min(pos,line2.to);if(line2.length){let indentation=overrideIndentation?overrideIndentation(line2.from):-1;let stream=new StringStream(line2.text,cx.state.tabSize,cx.unit,indentation<0?void 0:indentation);while(stream.pos<end-line2.from)readToken(this.streamParser.token,stream,state);}else{this.streamParser.blankLine(state,cx.unit);}if(end==pos)break;statePos=line2.to+1;}let line=cx.lineAt(pos);if(overrideIndentation&&from==null)IndentedFrom.set(cx.state,line.from);return this.streamParser.indent(state,/^\\s*(.*)/.exec(line.text)[1],cx);}get allowsNesting(){return false;}constructor(parser){let data=defineLanguageFacet(parser.languageData);let p=fullParser(parser),self;let impl=new class extends Parser{createParse(input,fragments,ranges){return new Parse(self,input,fragments,ranges);}};super(data,impl,[indentService.of((cx,pos)=>this.getIndent(cx,pos))],parser.name);this.topNode=docID(data);self=this;this.streamParser=p;this.stateAfter=new NodeProp({perNode:true});this.tokenTable=parser.tokenTable?new TokenTable(p.tokenTable):defaultTokenTable;}};function findState(lang,tree,off,startPos,before){let state=off>=startPos&&off+tree.length<=before&&tree.prop(lang.stateAfter);if(state)return{state:lang.streamParser.copyState(state),pos:off+tree.length};for(let i=tree.children.length-1;i>=0;i--){let child=tree.children[i],pos=off+tree.positions[i];let found=child instanceof Tree&&pos<before&&findState(lang,child,pos,startPos,before);if(found)return found;}return null;}function cutTree(lang,tree,from,to,inside){if(inside&&from<=0&&to>=tree.length)return tree;if(!inside&&tree.type==lang.topNode)inside=true;for(let i=tree.children.length-1;i>=0;i--){let pos=tree.positions[i],child=tree.children[i],inner;if(pos<to&&child instanceof Tree){if(!(inner=cutTree(lang,child,from-pos,to-pos,inside)))break;return!inside?inner:new Tree(tree.type,tree.children.slice(0,i).concat(inner),tree.positions.slice(0,i+1),pos+inner.length);}}return null;}function findStartInFragments(lang,fragments,startPos,editorState){for(let f of fragments){let from=f.from+(f.openStart?25:0),to=f.to-(f.openEnd?25:0);let found=from<=startPos&&to>startPos&&findState(lang,f.tree,0-f.offset,startPos,to),tree;if(found&&(tree=cutTree(lang,f.tree,startPos+f.offset,found.pos+f.offset,false)))return{state:found.state,tree};}return{state:lang.streamParser.startState(editorState?getIndentUnit(editorState):4),tree:Tree.empty};}var Parse=class{advance(){let context=ParseContext.get();let parseEnd=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt);let end=Math.min(parseEnd,this.chunkStart+2048);if(context)end=Math.min(end,context.viewport.to);while(this.parsedPos<end)this.parseLine(context);if(this.chunkStart<this.parsedPos)this.finishChunk();if(this.parsedPos>=parseEnd)return this.finish();if(context&&this.parsedPos>=context.viewport.to){context.skipUntilInView(this.parsedPos,parseEnd);return this.finish();}return null;}stopAt(pos){this.stoppedAt=pos;}lineAfter(pos){let chunk=this.input.chunk(pos);if(!this.input.lineChunks){let eol=chunk.indexOf(\"\\n\");if(eol>-1)chunk=chunk.slice(0,eol);}else if(chunk==\"\\n\"){chunk=\"\";}return pos+chunk.length<=this.to?chunk:chunk.slice(0,this.to-pos);}nextLine(){let from=this.parsedPos,line=this.lineAfter(from),end=from+line.length;for(let index=this.rangeIndex;;){let rangeEnd=this.ranges[index].to;if(rangeEnd>=end)break;line=line.slice(0,rangeEnd-(end-line.length));index++;if(index==this.ranges.length)break;let rangeStart=this.ranges[index].from;let after=this.lineAfter(rangeStart);line+=after;end=rangeStart+after.length;}return{line,end};}skipGapsTo(pos,offset,side){for(;;){let end=this.ranges[this.rangeIndex].to,offPos=pos+offset;if(side>0?end>offPos:end>=offPos)break;let start=this.ranges[++this.rangeIndex].from;offset+=start-end;}return offset;}moveRangeIndex(){while(this.ranges[this.rangeIndex].to<this.parsedPos)this.rangeIndex++;}emitToken(id,from,to,size,offset){if(this.ranges.length>1){offset=this.skipGapsTo(from,offset,1);from+=offset;let len0=this.chunk.length;offset=this.skipGapsTo(to,offset,-1);to+=offset;size+=this.chunk.length-len0;}this.chunk.push(id,from,to,size);return offset;}parseLine(context){let{line,end}=this.nextLine(),offset=0,{streamParser}=this.lang;let stream=new StringStream(line,context?context.state.tabSize:4,context?getIndentUnit(context.state):2);if(stream.eol()){streamParser.blankLine(this.state,stream.indentUnit);}else{while(!stream.eol()){let token=readToken(streamParser.token,stream,this.state);if(token)offset=this.emitToken(this.lang.tokenTable.resolve(token),this.parsedPos+stream.start,this.parsedPos+stream.pos,4,offset);if(stream.start>1e4)break;}}this.parsedPos=end;this.moveRangeIndex();if(this.parsedPos<this.to)this.parsedPos++;}finishChunk(){let tree=Tree.build({buffer:this.chunk,start:this.chunkStart,length:this.parsedPos-this.chunkStart,nodeSet,topID:0,maxBufferLength:2048,reused:this.chunkReused});tree=new Tree(tree.type,tree.children,tree.positions,tree.length,[[this.lang.stateAfter,this.lang.streamParser.copyState(this.state)]]);this.chunks.push(tree);this.chunkPos.push(this.chunkStart-this.ranges[0].from);this.chunk=[];this.chunkReused=void 0;this.chunkStart=this.parsedPos;}finish(){return new Tree(this.lang.topNode,this.chunks,this.chunkPos,this.parsedPos-this.ranges[0].from).balance();}constructor(lang,input,fragments,ranges){this.lang=lang;this.input=input;this.fragments=fragments;this.ranges=ranges;this.stoppedAt=null;this.chunks=[];this.chunkPos=[];this.chunk=[];this.chunkReused=void 0;this.rangeIndex=0;this.to=ranges[ranges.length-1].to;let context=ParseContext.get(),from=ranges[0].from;let{state,tree}=findStartInFragments(lang,fragments,from,context===null||context===void 0?void 0:context.state);this.state=state;this.parsedPos=this.chunkStart=from+tree.length;for(let i=0;i<tree.children.length;i++){this.chunks.push(tree.children[i]);this.chunkPos.push(tree.positions[i]);}if(context&&this.parsedPos<context.viewport.from-1e5){this.state=this.lang.streamParser.startState(getIndentUnit(context.state));context.skipUntilInView(this.parsedPos,context.viewport.from);this.parsedPos=context.viewport.from;}this.moveRangeIndex();}};function readToken(token,stream,state){stream.start=stream.pos;for(let i=0;i<10;i++){let result=token(stream,state);if(stream.pos>stream.start)return result;}throw new Error(\"Stream parser failed to advance stream.\");}var noTokens=/* @__PURE__ */Object.create(null);var typeArray=[NodeType.none];var nodeSet=/* @__PURE__ */new NodeSet(typeArray);var warned=[];var defaultTable=/* @__PURE__ */Object.create(null);for(let[legacyName,name]of[[\"variable\",\"variableName\"],[\"variable-2\",\"variableName.special\"],[\"string-2\",\"string.special\"],[\"def\",\"variableName.definition\"],[\"tag\",\"tagName\"],[\"attribute\",\"attributeName\"],[\"type\",\"typeName\"],[\"builtin\",\"variableName.standard\"],[\"qualifier\",\"modifier\"],[\"error\",\"invalid\"],[\"header\",\"heading\"],[\"property\",\"propertyName\"]])defaultTable[legacyName]=/* @__PURE__ */createTokenType(noTokens,name);var TokenTable=class{resolve(tag){return!tag?0:this.table[tag]||(this.table[tag]=createTokenType(this.extra,tag));}constructor(extra){this.extra=extra;this.table=Object.assign(/* @__PURE__ */Object.create(null),defaultTable);}};var defaultTokenTable=/* @__PURE__ */new TokenTable(noTokens);function warnForPart(part,msg){if(warned.indexOf(part)>-1)return;warned.push(part);console.warn(msg);}function createTokenType(extra,tagStr){let tag=null;for(let part of tagStr.split(\".\")){let value=extra[part]||tags[part];if(!value){warnForPart(part,`Unknown highlighting tag ${part}`);}else if(typeof value==\"function\"){if(!tag)warnForPart(part,`Modifier ${part} used at start of tag`);else tag=value(tag);}else{if(tag)warnForPart(part,`Tag ${part} used as modifier`);else tag=value;}}if(!tag)return 0;let name=tagStr.replace(/ /g,\"_\"),type=NodeType.define({id:typeArray.length,name,props:[styleTags({[name]:tag})]});typeArray.push(type);return type.id;}function docID(data){let type=NodeType.define({id:typeArray.length,name:\"Document\",props:[languageDataProp.add(()=>data)]});typeArray.push(type);return type;}export{DocInput,HighlightStyle,IndentContext,LRLanguage,Language,LanguageDescription,LanguageSupport,ParseContext,StreamLanguage,StringStream,TreeIndentContext,bracketMatching,bracketMatchingHandle,codeFolding,continuedIndent,defaultHighlightStyle,defineLanguageFacet,delimitedIndent,ensureSyntaxTree,flatIndent,foldAll,foldCode,foldEffect,foldGutter,foldInside,foldKeymap,foldNodeProp,foldService,foldState,foldable,foldedRanges,forceParsing,getIndentUnit,getIndentation,highlightingFor,indentNodeProp,indentOnInput,indentRange,indentService,indentString,indentUnit,language,languageDataProp,matchBrackets,sublanguageProp,syntaxHighlighting,syntaxParserRunning,syntaxTree,syntaxTreeAvailable,toggleFold,unfoldAll,unfoldCode,unfoldEffect,};\nexport const __FramerMetadata__ = {\"exports\":{\"sublanguageProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentService\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldInside\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldCode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldable\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"toggleFold\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ParseContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxTree\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxHighlighting\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"highlightingFor\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"bracketMatchingHandle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentUnit\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LRLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defineLanguageFacet\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"DocInput\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Language\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getIndentation\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentOnInput\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"unfoldEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentString\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StringStream\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldState\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentNodeProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldAll\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldNodeProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxParserRunning\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"syntaxTreeAvailable\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"IndentContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"StreamLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"language\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ensureSyntaxTree\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"indentRange\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"bracketMatching\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LanguageSupport\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"languageDataProp\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"delimitedIndent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TreeIndentContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"unfoldAll\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldEffect\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"HighlightStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"forceParsing\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LanguageDescription\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldService\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"matchBrackets\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"getIndentUnit\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldGutter\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"foldedRanges\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"codeFolding\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"unfoldCode\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"continuedIndent\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"flatIndent\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultHighlightStyle\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/autocomplete/dist/index.js\nimport{Annotation,StateEffect,EditorSelection,codePointAt,codePointSize,fromCodePoint,Facet,combineConfig,StateField,Prec,Text,MapMode,RangeValue,RangeSet,CharCategory}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/772bfdCR3vXAPJJXnNsc/codemirror_state.js\";import{Direction,logException,showTooltip,EditorView,ViewPlugin,getTooltip,Decoration,WidgetType,keymap}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/QTymt9nRixOIrUSZrfIJ/codemirror_view.js\";import{syntaxTree,indentUnit}from\"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/O6D7zESNv8FU9mcfHZ5S/codemirror_language.js\";var CompletionContext=class{/**\n  Get the extent, content, and (if there is a token) type of the\n  token before `this.pos`.\n  */tokenBefore(types){let token=syntaxTree(this.state).resolveInner(this.pos,-1);while(token&&types.indexOf(token.name)<0)token=token.parent;return token?{from:token.from,to:this.pos,text:this.state.sliceDoc(token.from,this.pos),type:token.type}:null;}/**\n  Get the match of the given expression directly before the\n  cursor.\n  */matchBefore(expr){let line=this.state.doc.lineAt(this.pos);let start=Math.max(line.from,this.pos-250);let str=line.text.slice(start-line.from,this.pos-line.from);let found=str.search(ensureAnchor(expr,false));return found<0?null:{from:start+found,to:this.pos,text:str.slice(found)};}/**\n  Yields true when the query has been aborted. Can be useful in\n  asynchronous queries to avoid doing work that will be ignored.\n  */get aborted(){return this.abortListeners==null;}/**\n  Allows you to register abort handlers, which will be called when\n  the query is\n  [aborted](https://codemirror.net/6/docs/ref/#autocomplete.CompletionContext.aborted).\n  */addEventListener(type,listener){if(type==\"abort\"&&this.abortListeners)this.abortListeners.push(listener);}/**\n  Create a new completion context. (Mostly useful for testing\n  completion sources—in the editor, the extension will create\n  these for you.)\n  */constructor(state,pos,explicit){this.state=state;this.pos=pos;this.explicit=explicit;this.abortListeners=[];}};function toSet(chars){let flat=Object.keys(chars).join(\"\");let words=/\\w/.test(flat);if(words)flat=flat.replace(/\\w/g,\"\");return`[${words?\"\\\\w\":\"\"}${flat.replace(/[^\\w\\s]/g,\"\\\\$&\")}]`;}function prefixMatch(options){let first=/* @__PURE__ */Object.create(null),rest=/* @__PURE__ */Object.create(null);for(let{label}of options){first[label[0]]=true;for(let i=1;i<label.length;i++)rest[label[i]]=true;}let source=toSet(first)+toSet(rest)+\"*$\";return[new RegExp(\"^\"+source),new RegExp(source)];}function completeFromList(list){let options=list.map(o=>typeof o==\"string\"?{label:o}:o);let[validFor,match]=options.every(o=>/^\\w+$/.test(o.label))?[/\\w*$/,/\\w+$/]:prefixMatch(options);return context=>{let token=context.matchBefore(match);return token||context.explicit?{from:token?token.from:context.pos,options,validFor}:null;};}function ifIn(nodes,source){return context=>{for(let pos=syntaxTree(context.state).resolveInner(context.pos,-1);pos;pos=pos.parent){if(nodes.indexOf(pos.name)>-1)return source(context);if(pos.type.isTop)break;}return null;};}function ifNotIn(nodes,source){return context=>{for(let pos=syntaxTree(context.state).resolveInner(context.pos,-1);pos;pos=pos.parent){if(nodes.indexOf(pos.name)>-1)return null;if(pos.type.isTop)break;}return source(context);};}var Option=class{constructor(completion,source,match,score2){this.completion=completion;this.source=source;this.match=match;this.score=score2;}};function cur(state){return state.selection.main.from;}function ensureAnchor(expr,start){var _a;let{source}=expr;let addStart=start&&source[0]!=\"^\",addEnd=source[source.length-1]!=\"$\";if(!addStart&&!addEnd)return expr;return new RegExp(`${addStart?\"^\":\"\"}(?:${source})${addEnd?\"$\":\"\"}`,(_a=expr.flags)!==null&&_a!==void 0?_a:expr.ignoreCase?\"i\":\"\");}var pickedCompletion=/* @__PURE__ */Annotation.define();function insertCompletionText(state,text,from,to){let{main}=state.selection,fromOff=from-main.from,toOff=to-main.from;return Object.assign(Object.assign({},state.changeByRange(range=>{if(range!=main&&from!=to&&state.sliceDoc(range.from+fromOff,range.from+toOff)!=state.sliceDoc(from,to))return{range};return{changes:{from:range.from+fromOff,to:to==main.from?range.to:range.from+toOff,insert:text},range:EditorSelection.cursor(range.from+fromOff+text.length)};})),{userEvent:\"input.complete\"});}var SourceCache=/* @__PURE__ */new WeakMap;function asSource(source){if(!Array.isArray(source))return source;let known=SourceCache.get(source);if(!known)SourceCache.set(source,known=completeFromList(source));return known;}var startCompletionEffect=/* @__PURE__ */StateEffect.define();var closeCompletionEffect=/* @__PURE__ */StateEffect.define();var FuzzyMatcher=class{// Matches a given word (completion) against the pattern (input).\n// Will return null for no match, and otherwise an array that starts\n// with the match score, followed by any number of `from, to` pairs\n// indicating the matched parts of `word`.\n//\n// The score is a number that is more negative the worse the match\n// is. See `Penalty` above.\nmatch(word){if(this.pattern.length==0)return[-100];if(word.length<this.pattern.length)return null;let{chars,folded,any,precise,byWord}=this;if(chars.length==1){let first=codePointAt(word,0),firstSize=codePointSize(first);let score2=firstSize==word.length?0:-100;if(first==chars[0]);else if(first==folded[0])score2+=-200;else return null;return[score2,0,firstSize];}let direct=word.indexOf(this.pattern);if(direct==0)return[word.length==this.pattern.length?0:-100,0,this.pattern.length];let len=chars.length,anyTo=0;if(direct<0){for(let i=0,e=Math.min(word.length,200);i<e&&anyTo<len;){let next=codePointAt(word,i);if(next==chars[anyTo]||next==folded[anyTo])any[anyTo++]=i;i+=codePointSize(next);}if(anyTo<len)return null;}let preciseTo=0;let byWordTo=0,byWordFolded=false;let adjacentTo=0,adjacentStart=-1,adjacentEnd=-1;let hasLower=/[a-z]/.test(word),wordAdjacent=true;for(let i=0,e=Math.min(word.length,200),prevType=0;i<e&&byWordTo<len;){let next=codePointAt(word,i);if(direct<0){if(preciseTo<len&&next==chars[preciseTo])precise[preciseTo++]=i;if(adjacentTo<len){if(next==chars[adjacentTo]||next==folded[adjacentTo]){if(adjacentTo==0)adjacentStart=i;adjacentEnd=i+1;adjacentTo++;}else{adjacentTo=0;}}}let ch,type=next<255?next>=48&&next<=57||next>=97&&next<=122?2:next>=65&&next<=90?1:0:(ch=fromCodePoint(next))!=ch.toLowerCase()?1:ch!=ch.toUpperCase()?2:0;if(!i||type==1&&hasLower||prevType==0&&type!=0){if(chars[byWordTo]==next||folded[byWordTo]==next&&(byWordFolded=true))byWord[byWordTo++]=i;else if(byWord.length)wordAdjacent=false;}prevType=type;i+=codePointSize(next);}if(byWordTo==len&&byWord[0]==0&&wordAdjacent)return this.result(-100+(byWordFolded?-200:0),byWord,word);if(adjacentTo==len&&adjacentStart==0)return[-200-word.length+(adjacentEnd==word.length?0:-100),0,adjacentEnd];if(direct>-1)return[-700-word.length,direct,direct+this.pattern.length];if(adjacentTo==len)return[-200+-700-word.length,adjacentStart,adjacentEnd];if(byWordTo==len)return this.result(-100+(byWordFolded?-200:0)+-700+(wordAdjacent?0:-1100),byWord,word);return chars.length==2?null:this.result((any[0]?-700:0)+-200+-1100,any,word);}result(score2,positions,word){let result=[score2-word.length],i=1;for(let pos of positions){let to=pos+(this.astral?codePointSize(codePointAt(word,pos)):1);if(i>1&&result[i-1]==pos)result[i-1]=to;else{result[i++]=pos;result[i++]=to;}}return result;}constructor(pattern){this.pattern=pattern;this.chars=[];this.folded=[];this.any=[];this.precise=[];this.byWord=[];for(let p=0;p<pattern.length;){let char=codePointAt(pattern,p),size=codePointSize(char);this.chars.push(char);let part=pattern.slice(p,p+size),upper=part.toUpperCase();this.folded.push(codePointAt(upper==part?part.toLowerCase():upper,0));p+=size;}this.astral=pattern.length!=this.chars.length;}};var completionConfig=/* @__PURE__ */Facet.define({combine(configs){return combineConfig(configs,{activateOnTyping:true,selectOnOpen:true,override:null,closeOnBlur:true,maxRenderedOptions:100,defaultKeymap:true,tooltipClass:()=>\"\",optionClass:()=>\"\",aboveCursor:false,icons:true,addToOptions:[],positionInfo:defaultPositionInfo,compareCompletions:(a,b)=>a.label.localeCompare(b.label),interactionDelay:75},{defaultKeymap:(a,b)=>a&&b,closeOnBlur:(a,b)=>a&&b,icons:(a,b)=>a&&b,tooltipClass:(a,b)=>c=>joinClass(a(c),b(c)),optionClass:(a,b)=>c=>joinClass(a(c),b(c)),addToOptions:(a,b)=>a.concat(b)});}});function joinClass(a,b){return a?b?a+\" \"+b:a:b;}function defaultPositionInfo(view,list,option,info,space){let rtl=view.textDirection==Direction.RTL,left=rtl,narrow=false;let side=\"top\",offset,maxWidth;let spaceLeft=list.left-space.left,spaceRight=space.right-list.right;let infoWidth=info.right-info.left,infoHeight=info.bottom-info.top;if(left&&spaceLeft<Math.min(infoWidth,spaceRight))left=false;else if(!left&&spaceRight<Math.min(infoWidth,spaceLeft))left=true;if(infoWidth<=(left?spaceLeft:spaceRight)){offset=Math.max(space.top,Math.min(option.top,space.bottom-infoHeight))-list.top;maxWidth=Math.min(400,left?spaceLeft:spaceRight);}else{narrow=true;maxWidth=Math.min(400,(rtl?list.right:space.right-list.left)-30);let spaceBelow=space.bottom-list.bottom;if(spaceBelow>=infoHeight||spaceBelow>list.top){offset=option.bottom-list.top;}else{side=\"bottom\";offset=list.bottom-option.top;}}return{style:`${side}: ${offset}px; max-width: ${maxWidth}px`,class:\"cm-completionInfo-\"+(narrow?rtl?\"left-narrow\":\"right-narrow\":left?\"left\":\"right\")};}function optionContent(config2){let content=config2.addToOptions.slice();if(config2.icons)content.push({render(completion){let icon=document.createElement(\"div\");icon.classList.add(\"cm-completionIcon\");if(completion.type)icon.classList.add(...completion.type.split(/\\s+/g).map(cls=>\"cm-completionIcon-\"+cls));icon.setAttribute(\"aria-hidden\",\"true\");return icon;},position:20});content.push({render(completion,_s,match){let labelElt=document.createElement(\"span\");labelElt.className=\"cm-completionLabel\";let{label}=completion,off=0;for(let j=1;j<match.length;){let from=match[j++],to=match[j++];if(from>off)labelElt.appendChild(document.createTextNode(label.slice(off,from)));let span=labelElt.appendChild(document.createElement(\"span\"));span.appendChild(document.createTextNode(label.slice(from,to)));span.className=\"cm-completionMatchedText\";off=to;}if(off<label.length)labelElt.appendChild(document.createTextNode(label.slice(off)));return labelElt;},position:50},{render(completion){if(!completion.detail)return null;let detailElt=document.createElement(\"span\");detailElt.className=\"cm-completionDetail\";detailElt.textContent=completion.detail;return detailElt;},position:80});return content.sort((a,b)=>a.position-b.position).map(a=>a.render);}function rangeAroundSelected(total,selected,max){if(total<=max)return{from:0,to:total};if(selected<0)selected=0;if(selected<=total>>1){let off2=Math.floor(selected/max);return{from:off2*max,to:(off2+1)*max};}let off=Math.floor((total-selected)/max);return{from:total-(off+1)*max,to:total-off*max};}var CompletionTooltip=class{mount(){this.updateSel();}update(update){var _a,_b,_c;let cState=update.state.field(this.stateField);let prevState=update.startState.field(this.stateField);this.updateTooltipClass(update.state);if(cState!=prevState){this.updateSel();if(((_a=cState.open)===null||_a===void 0?void 0:_a.disabled)!=((_b=prevState.open)===null||_b===void 0?void 0:_b.disabled))this.dom.classList.toggle(\"cm-tooltip-autocomplete-disabled\",!!((_c=cState.open)===null||_c===void 0?void 0:_c.disabled));}}updateTooltipClass(state){let cls=this.tooltipClass(state);if(cls!=this.currentClass){for(let c of this.currentClass.split(\" \"))if(c)this.dom.classList.remove(c);for(let c of cls.split(\" \"))if(c)this.dom.classList.add(c);this.currentClass=cls;}}positioned(space){this.space=space;if(this.info)this.view.requestMeasure(this.placeInfoReq);}updateSel(){let cState=this.view.state.field(this.stateField),open=cState.open;if(open.selected>-1&&open.selected<this.range.from||open.selected>=this.range.to){this.range=rangeAroundSelected(open.options.length,open.selected,this.view.state.facet(completionConfig).maxRenderedOptions);this.list.remove();this.list=this.dom.appendChild(this.createListBox(open.options,cState.id,this.range));this.list.addEventListener(\"scroll\",()=>{if(this.info)this.view.requestMeasure(this.placeInfoReq);});}if(this.updateSelectedOption(open.selected)){this.destroyInfo();let{completion}=open.options[open.selected];let{info}=completion;if(!info)return;let infoResult=typeof info===\"string\"?document.createTextNode(info):info(completion);if(!infoResult)return;if(\"then\"in infoResult){infoResult.then(obj=>{if(obj&&this.view.state.field(this.stateField,false)==cState)this.addInfoPane(obj,completion);}).catch(e=>logException(this.view.state,e,\"completion info\"));}else{this.addInfoPane(infoResult,completion);}}}addInfoPane(content,completion){this.destroyInfo();let wrap=this.info=document.createElement(\"div\");wrap.className=\"cm-tooltip cm-completionInfo\";if(content.nodeType!=null){wrap.appendChild(content);this.infoDestroy=null;}else{let{dom,destroy}=content;wrap.appendChild(dom);this.infoDestroy=destroy||null;}this.dom.appendChild(wrap);this.view.requestMeasure(this.placeInfoReq);}updateSelectedOption(selected){let set=null;for(let opt=this.list.firstChild,i=this.range.from;opt;opt=opt.nextSibling,i++){if(opt.nodeName!=\"LI\"||!opt.id){i--;}else if(i==selected){if(!opt.hasAttribute(\"aria-selected\")){opt.setAttribute(\"aria-selected\",\"true\");set=opt;}}else{if(opt.hasAttribute(\"aria-selected\"))opt.removeAttribute(\"aria-selected\");}}if(set)scrollIntoView(this.list,set);return set;}measureInfo(){let sel=this.dom.querySelector(\"[aria-selected]\");if(!sel||!this.info)return null;let listRect=this.dom.getBoundingClientRect();let infoRect=this.info.getBoundingClientRect();let selRect=sel.getBoundingClientRect();let space=this.space;if(!space){let win=this.dom.ownerDocument.defaultView||window;space={left:0,top:0,right:win.innerWidth,bottom:win.innerHeight};}if(selRect.top>Math.min(space.bottom,listRect.bottom)-10||selRect.bottom<Math.max(space.top,listRect.top)+10)return null;return this.view.state.facet(completionConfig).positionInfo(this.view,listRect,selRect,infoRect,space);}placeInfo(pos){if(this.info){if(pos){if(pos.style)this.info.style.cssText=pos.style;this.info.className=\"cm-tooltip cm-completionInfo \"+(pos.class||\"\");}else{this.info.style.cssText=\"top: -1e6px\";}}}createListBox(options,id,range){const ul=document.createElement(\"ul\");ul.id=id;ul.setAttribute(\"role\",\"listbox\");ul.setAttribute(\"aria-expanded\",\"true\");ul.setAttribute(\"aria-label\",this.view.state.phrase(\"Completions\"));let curSection=null;for(let i=range.from;i<range.to;i++){let{completion,match}=options[i],{section}=completion;if(section){let name=typeof section==\"string\"?section:section.name;if(name!=curSection&&(i>range.from||range.from==0)){curSection=name;if(typeof section!=\"string\"&&section.header){ul.appendChild(section.header(section));}else{let header=ul.appendChild(document.createElement(\"completion-section\"));header.textContent=name;}}}const li=ul.appendChild(document.createElement(\"li\"));li.id=id+\"-\"+i;li.setAttribute(\"role\",\"option\");let cls=this.optionClass(completion);if(cls)li.className=cls;for(let source of this.optionContent){let node=source(completion,this.view.state,match);if(node)li.appendChild(node);}}if(range.from)ul.classList.add(\"cm-completionListIncompleteTop\");if(range.to<options.length)ul.classList.add(\"cm-completionListIncompleteBottom\");return ul;}destroyInfo(){if(this.info){if(this.infoDestroy)this.infoDestroy();this.info.remove();this.info=null;}}destroy(){this.destroyInfo();}constructor(view,stateField,applyCompletion2){this.view=view;this.stateField=stateField;this.applyCompletion=applyCompletion2;this.info=null;this.infoDestroy=null;this.placeInfoReq={read:()=>this.measureInfo(),write:pos=>this.placeInfo(pos),key:this};this.space=null;this.currentClass=\"\";let cState=view.state.field(stateField);let{options,selected}=cState.open;let config2=view.state.facet(completionConfig);this.optionContent=optionContent(config2);this.optionClass=config2.optionClass;this.tooltipClass=config2.tooltipClass;this.range=rangeAroundSelected(options.length,selected,config2.maxRenderedOptions);this.dom=document.createElement(\"div\");this.dom.className=\"cm-tooltip-autocomplete\";this.updateTooltipClass(view.state);this.dom.addEventListener(\"mousedown\",e=>{for(let dom=e.target,match;dom&&dom!=this.dom;dom=dom.parentNode){if(dom.nodeName==\"LI\"&&(match=/-(\\d+)$/.exec(dom.id))&&+match[1]<options.length){this.applyCompletion(view,options[+match[1]]);e.preventDefault();return;}}});this.dom.addEventListener(\"focusout\",e=>{let state=view.state.field(this.stateField,false);if(state&&state.tooltip&&view.state.facet(completionConfig).closeOnBlur&&e.relatedTarget!=view.contentDOM)view.dispatch({effects:closeCompletionEffect.of(null)});});this.list=this.dom.appendChild(this.createListBox(options,cState.id,this.range));this.list.addEventListener(\"scroll\",()=>{if(this.info)this.view.requestMeasure(this.placeInfoReq);});}};function completionTooltip(stateField,applyCompletion2){return view=>new CompletionTooltip(view,stateField,applyCompletion2);}function scrollIntoView(container,element){let parent=container.getBoundingClientRect();let self=element.getBoundingClientRect();if(self.top<parent.top)container.scrollTop-=parent.top-self.top;else if(self.bottom>parent.bottom)container.scrollTop+=self.bottom-parent.bottom;}function score(option){return(option.boost||0)*100+(option.apply?10:0)+(option.info?5:0)+(option.type?1:0);}function sortOptions(active,state){let options=[];let sections=null;let addOption=option=>{options.push(option);let{section}=option.completion;if(section){if(!sections)sections=[];let name=typeof section==\"string\"?section:section.name;if(!sections.some(s=>s.name==name))sections.push(typeof section==\"string\"?{name}:section);}};for(let a of active)if(a.hasResult()){if(a.result.filter===false){let getMatch=a.result.getMatch;for(let option of a.result.options){let match=[1e9-options.length];if(getMatch)for(let n of getMatch(option))match.push(n);addOption(new Option(option,a.source,match,match[0]));}}else{let matcher=new FuzzyMatcher(state.sliceDoc(a.from,a.to)),match;for(let option of a.result.options)if(match=matcher.match(option.label)){addOption(new Option(option,a.source,match,match[0]+(option.boost||0)));}}}if(sections){let sectionOrder=/* @__PURE__ */Object.create(null),pos=0;let cmp=(a,b)=>{var _a,_b;return((_a=a.rank)!==null&&_a!==void 0?_a:1e9)-((_b=b.rank)!==null&&_b!==void 0?_b:1e9)||(a.name<b.name?-1:1);};for(let s of sections.sort(cmp)){pos-=1e5;sectionOrder[s.name]=pos;}for(let option of options){let{section}=option.completion;if(section)option.score+=sectionOrder[typeof section==\"string\"?section:section.name];}}let result=[],prev=null;let compare=state.facet(completionConfig).compareCompletions;for(let opt of options.sort((a,b)=>b.score-a.score||compare(a.completion,b.completion))){if(!prev||prev.label!=opt.completion.label||prev.detail!=opt.completion.detail||prev.type!=null&&opt.completion.type!=null&&prev.type!=opt.completion.type||prev.apply!=opt.completion.apply)result.push(opt);else if(score(opt.completion)>score(prev))result[result.length-1]=opt;prev=opt.completion;}return result;}var CompletionDialog=class{setSelected(selected,id){return selected==this.selected||selected>=this.options.length?this:new CompletionDialog(this.options,makeAttrs(id,selected),this.tooltip,this.timestamp,selected,this.disabled);}static build(active,state,id,prev,conf){let options=sortOptions(active,state);if(!options.length){return prev&&active.some(a=>a.state==1)?new CompletionDialog(prev.options,prev.attrs,prev.tooltip,prev.timestamp,prev.selected,true):null;}let selected=state.facet(completionConfig).selectOnOpen?0:-1;if(prev&&prev.selected!=selected&&prev.selected!=-1){let selectedValue=prev.options[prev.selected].completion;for(let i=0;i<options.length;i++)if(options[i].completion==selectedValue){selected=i;break;}}return new CompletionDialog(options,makeAttrs(id,selected),{pos:active.reduce((a,b)=>b.hasResult()?Math.min(a,b.from):a,1e8),create:completionTooltip(completionState,applyCompletion),above:conf.aboveCursor},prev?prev.timestamp:Date.now(),selected,false);}map(changes){return new CompletionDialog(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:changes.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled);}constructor(options,attrs,tooltip,timestamp,selected,disabled){this.options=options;this.attrs=attrs;this.tooltip=tooltip;this.timestamp=timestamp;this.selected=selected;this.disabled=disabled;}};var CompletionState=class{static start(){return new CompletionState(none,\"cm-ac-\"+Math.floor(Math.random()*2e6).toString(36),null);}update(tr){let{state}=tr,conf=state.facet(completionConfig);let sources=conf.override||state.languageDataAt(\"autocomplete\",cur(state)).map(asSource);let active=sources.map(source=>{let value=this.active.find(s=>s.source==source)||new ActiveSource(source,this.active.some(a=>a.state!=0)?1:0);return value.update(tr,conf);});if(active.length==this.active.length&&active.every((a,i)=>a==this.active[i]))active=this.active;let open=this.open;if(open&&tr.docChanged)open=open.map(tr.changes);if(tr.selection||active.some(a=>a.hasResult()&&tr.changes.touchesRange(a.from,a.to))||!sameResults(active,this.active))open=CompletionDialog.build(active,state,this.id,open,conf);else if(open&&open.disabled&&!active.some(a=>a.state==1))open=null;if(!open&&active.every(a=>a.state!=1)&&active.some(a=>a.hasResult()))active=active.map(a=>a.hasResult()?new ActiveSource(a.source,0):a);for(let effect of tr.effects)if(effect.is(setSelectedEffect))open=open&&open.setSelected(effect.value,this.id);return active==this.active&&open==this.open?this:new CompletionState(active,this.id,open);}get tooltip(){return this.open?this.open.tooltip:null;}get attrs(){return this.open?this.open.attrs:baseAttrs;}constructor(active,id,open){this.active=active;this.id=id;this.open=open;}};function sameResults(a,b){if(a==b)return true;for(let iA=0,iB=0;;){while(iA<a.length&&!a[iA].hasResult)iA++;while(iB<b.length&&!b[iB].hasResult)iB++;let endA=iA==a.length,endB=iB==b.length;if(endA||endB)return endA==endB;if(a[iA++].result!=b[iB++].result)return false;}}var baseAttrs={\"aria-autocomplete\":\"list\"};function makeAttrs(id,selected){let result={\"aria-autocomplete\":\"list\",\"aria-haspopup\":\"listbox\",\"aria-controls\":id};if(selected>-1)result[\"aria-activedescendant\"]=id+\"-\"+selected;return result;}var none=[];function getUserEvent(tr){return tr.isUserEvent(\"input.type\")?\"input\":tr.isUserEvent(\"delete.backward\")?\"delete\":null;}var ActiveSource=class{hasResult(){return false;}update(tr,conf){let event=getUserEvent(tr),value=this;if(event)value=value.handleUserEvent(tr,event,conf);else if(tr.docChanged)value=value.handleChange(tr);else if(tr.selection&&value.state!=0)value=new ActiveSource(value.source,0);for(let effect of tr.effects){if(effect.is(startCompletionEffect))value=new ActiveSource(value.source,1,effect.value?cur(tr.state):-1);else if(effect.is(closeCompletionEffect))value=new ActiveSource(value.source,0);else if(effect.is(setActiveEffect)){for(let active of effect.value)if(active.source==value.source)value=active;}}return value;}handleUserEvent(tr,type,conf){return type==\"delete\"||!conf.activateOnTyping?this.map(tr.changes):new ActiveSource(this.source,1);}handleChange(tr){return tr.changes.touchesRange(cur(tr.startState))?new ActiveSource(this.source,0):this.map(tr.changes);}map(changes){return changes.empty||this.explicitPos<0?this:new ActiveSource(this.source,this.state,changes.mapPos(this.explicitPos));}constructor(source,state,explicitPos=-1){this.source=source;this.state=state;this.explicitPos=explicitPos;}};var ActiveResult=class extends ActiveSource{hasResult(){return true;}handleUserEvent(tr,type,conf){var _a;let from=tr.changes.mapPos(this.from),to=tr.changes.mapPos(this.to,1);let pos=cur(tr.state);if((this.explicitPos<0?pos<=from:pos<this.from)||pos>to||type==\"delete\"&&cur(tr.startState)==this.from)return new ActiveSource(this.source,type==\"input\"&&conf.activateOnTyping?1:0);let explicitPos=this.explicitPos<0?-1:tr.changes.mapPos(this.explicitPos),updated;if(checkValid(this.result.validFor,tr.state,from,to))return new ActiveResult(this.source,explicitPos,this.result,from,to);if(this.result.update&&(updated=this.result.update(this.result,from,to,new CompletionContext(tr.state,pos,explicitPos>=0))))return new ActiveResult(this.source,explicitPos,updated,updated.from,(_a=updated.to)!==null&&_a!==void 0?_a:cur(tr.state));return new ActiveSource(this.source,1,explicitPos);}handleChange(tr){return tr.changes.touchesRange(this.from,this.to)?new ActiveSource(this.source,0):this.map(tr.changes);}map(mapping){return mapping.empty?this:new ActiveResult(this.source,this.explicitPos<0?-1:mapping.mapPos(this.explicitPos),this.result,mapping.mapPos(this.from),mapping.mapPos(this.to,1));}constructor(source,explicitPos,result,from,to){super(source,2,explicitPos);this.result=result;this.from=from;this.to=to;}};function checkValid(validFor,state,from,to){if(!validFor)return false;let text=state.sliceDoc(from,to);return typeof validFor==\"function\"?validFor(text,from,to,state):ensureAnchor(validFor,true).test(text);}var setActiveEffect=/* @__PURE__ */StateEffect.define({map(sources,mapping){return sources.map(s=>s.map(mapping));}});var setSelectedEffect=/* @__PURE__ */StateEffect.define();var completionState=/* @__PURE__ */StateField.define({create(){return CompletionState.start();},update(value,tr){return value.update(tr);},provide:f=>[showTooltip.from(f,val=>val.tooltip),EditorView.contentAttributes.from(f,state=>state.attrs)]});function applyCompletion(view,option){const apply=option.completion.apply||option.completion.label;let result=view.state.field(completionState).active.find(a=>a.source==option.source);if(!(result instanceof ActiveResult))return false;if(typeof apply==\"string\")view.dispatch(Object.assign(Object.assign({},insertCompletionText(view.state,apply,result.from,result.to)),{annotations:pickedCompletion.of(option.completion)}));else apply(view,option.completion,result.from,result.to);return true;}function moveCompletionSelection(forward,by=\"option\"){return view=>{let cState=view.state.field(completionState,false);if(!cState||!cState.open||cState.open.disabled||Date.now()-cState.open.timestamp<view.state.facet(completionConfig).interactionDelay)return false;let step=1,tooltip;if(by==\"page\"&&(tooltip=getTooltip(view,cState.open.tooltip)))step=Math.max(2,Math.floor(tooltip.dom.offsetHeight/tooltip.dom.querySelector(\"li\").offsetHeight)-1);let{length}=cState.open.options;let selected=cState.open.selected>-1?cState.open.selected+step*(forward?1:-1):forward?0:length-1;if(selected<0)selected=by==\"page\"?0:length-1;else if(selected>=length)selected=by==\"page\"?length-1:0;view.dispatch({effects:setSelectedEffect.of(selected)});return true;};}var acceptCompletion=view=>{let cState=view.state.field(completionState,false);if(view.state.readOnly||!cState||!cState.open||cState.open.selected<0||Date.now()-cState.open.timestamp<view.state.facet(completionConfig).interactionDelay)return false;if(!cState.open.disabled)return applyCompletion(view,cState.open.options[cState.open.selected]);return true;};var startCompletion=view=>{let cState=view.state.field(completionState,false);if(!cState)return false;view.dispatch({effects:startCompletionEffect.of(true)});return true;};var closeCompletion=view=>{let cState=view.state.field(completionState,false);if(!cState||!cState.active.some(a=>a.state!=0))return false;view.dispatch({effects:closeCompletionEffect.of(null)});return true;};var RunningQuery=class{constructor(active,context){this.active=active;this.context=context;this.time=Date.now();this.updates=[];this.done=void 0;}};var DebounceTime=50;var MaxUpdateCount=50;var MinAbortTime=1e3;var completionPlugin=/* @__PURE__ */ViewPlugin.fromClass(class{update(update){let cState=update.state.field(completionState);if(!update.selectionSet&&!update.docChanged&&update.startState.field(completionState)==cState)return;let doesReset=update.transactions.some(tr=>{return(tr.selection||tr.docChanged)&&!getUserEvent(tr);});for(let i=0;i<this.running.length;i++){let query=this.running[i];if(doesReset||query.updates.length+update.transactions.length>MaxUpdateCount&&Date.now()-query.time>MinAbortTime){for(let handler of query.context.abortListeners){try{handler();}catch(e){logException(this.view.state,e);}}query.context.abortListeners=null;this.running.splice(i--,1);}else{query.updates.push(...update.transactions);}}if(this.debounceUpdate>-1)clearTimeout(this.debounceUpdate);this.debounceUpdate=cState.active.some(a=>a.state==1&&!this.running.some(q=>q.active.source==a.source))?setTimeout(()=>this.startUpdate(),DebounceTime):-1;if(this.composing!=0)for(let tr of update.transactions){if(getUserEvent(tr)==\"input\")this.composing=2;else if(this.composing==2&&tr.selection)this.composing=3;}}startUpdate(){this.debounceUpdate=-1;let{state}=this.view,cState=state.field(completionState);for(let active of cState.active){if(active.state==1&&!this.running.some(r=>r.active.source==active.source))this.startQuery(active);}}startQuery(active){let{state}=this.view,pos=cur(state);let context=new CompletionContext(state,pos,active.explicitPos==pos);let pending=new RunningQuery(active,context);this.running.push(pending);Promise.resolve(active.source(context)).then(result=>{if(!pending.context.aborted){pending.done=result||null;this.scheduleAccept();}},err=>{this.view.dispatch({effects:closeCompletionEffect.of(null)});logException(this.view.state,err);});}scheduleAccept(){if(this.running.every(q=>q.done!==void 0))this.accept();else if(this.debounceAccept<0)this.debounceAccept=setTimeout(()=>this.accept(),DebounceTime);}// For each finished query in this.running, try to create a result\n// or, if appropriate, restart the query.\naccept(){var _a;if(this.debounceAccept>-1)clearTimeout(this.debounceAccept);this.debounceAccept=-1;let updated=[];let conf=this.view.state.facet(completionConfig);for(let i=0;i<this.running.length;i++){let query=this.running[i];if(query.done===void 0)continue;this.running.splice(i--,1);if(query.done){let active=new ActiveResult(query.active.source,query.active.explicitPos,query.done,query.done.from,(_a=query.done.to)!==null&&_a!==void 0?_a:cur(query.updates.length?query.updates[0].startState:this.view.state));for(let tr of query.updates)active=active.update(tr,conf);if(active.hasResult()){updated.push(active);continue;}}let current=this.view.state.field(completionState).active.find(a=>a.source==query.active.source);if(current&&current.state==1){if(query.done==null){let active=new ActiveSource(query.active.source,0);for(let tr of query.updates)active=active.update(tr,conf);if(active.state!=1)updated.push(active);}else{this.startQuery(current);}}}if(updated.length)this.view.dispatch({effects:setActiveEffect.of(updated)});}constructor(view){this.view=view;this.debounceUpdate=-1;this.running=[];this.debounceAccept=-1;this.composing=0;for(let active of view.state.field(completionState).active)if(active.state==1)this.startQuery(active);}},{eventHandlers:{blur(event){let state=this.view.state.field(completionState,false);if(state&&state.tooltip&&this.view.state.facet(completionConfig).closeOnBlur){let dialog=state.open&&getTooltip(this.view,state.open.tooltip);if(!dialog||!dialog.dom.contains(event.relatedTarget))this.view.dispatch({effects:closeCompletionEffect.of(null)});}},compositionstart(){this.composing=1;},compositionend(){if(this.composing==3){setTimeout(()=>this.view.dispatch({effects:startCompletionEffect.of(false)}),20);}this.composing=0;}}});var baseTheme=/* @__PURE__ */EditorView.baseTheme({\".cm-tooltip.cm-tooltip-autocomplete\":{\"& > ul\":{fontFamily:\"monospace\",whiteSpace:\"nowrap\",overflow:\"hidden auto\",maxWidth_fallback:\"700px\",maxWidth:\"min(700px, 95vw)\",minWidth:\"250px\",maxHeight:\"10em\",height:\"100%\",listStyle:\"none\",margin:0,padding:0,\"& > li, & > completion-section\":{padding:\"1px 3px\",lineHeight:1.2},\"& > li\":{overflowX:\"hidden\",textOverflow:\"ellipsis\",cursor:\"pointer\"},\"& > completion-section\":{display:\"list-item\",borderBottom:\"1px solid silver\",paddingLeft:\"0.5em\",opacity:.7}}},\"&light .cm-tooltip-autocomplete ul li[aria-selected]\":{background:\"#17c\",color:\"white\"},\"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]\":{background:\"#777\"},\"&dark .cm-tooltip-autocomplete ul li[aria-selected]\":{background:\"#347\",color:\"white\"},\"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]\":{background:\"#444\"},\".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after\":{content:'\"\\xb7\\xb7\\xb7\"',opacity:.5,display:\"block\",textAlign:\"center\"},\".cm-tooltip.cm-completionInfo\":{position:\"absolute\",padding:\"3px 9px\",width:\"max-content\",maxWidth:`${400}px`,boxSizing:\"border-box\"},\".cm-completionInfo.cm-completionInfo-left\":{right:\"100%\"},\".cm-completionInfo.cm-completionInfo-right\":{left:\"100%\"},\".cm-completionInfo.cm-completionInfo-left-narrow\":{right:`${30}px`},\".cm-completionInfo.cm-completionInfo-right-narrow\":{left:`${30}px`},\"&light .cm-snippetField\":{backgroundColor:\"#00000022\"},\"&dark .cm-snippetField\":{backgroundColor:\"#ffffff22\"},\".cm-snippetFieldPosition\":{verticalAlign:\"text-top\",width:0,height:\"1.15em\",display:\"inline-block\",margin:\"0 -0.7px -.7em\",borderLeft:\"1.4px dotted #888\"},\".cm-completionMatchedText\":{textDecoration:\"underline\"},\".cm-completionDetail\":{marginLeft:\"0.5em\",fontStyle:\"italic\"},\".cm-completionIcon\":{fontSize:\"90%\",width:\".8em\",display:\"inline-block\",textAlign:\"center\",paddingRight:\".6em\",opacity:\"0.6\",boxSizing:\"content-box\"},\".cm-completionIcon-function, .cm-completionIcon-method\":{\"&:after\":{content:\"'ƒ'\"}},\".cm-completionIcon-class\":{\"&:after\":{content:\"'○'\"}},\".cm-completionIcon-interface\":{\"&:after\":{content:\"'◌'\"}},\".cm-completionIcon-variable\":{\"&:after\":{content:\"'𝑥'\"}},\".cm-completionIcon-constant\":{\"&:after\":{content:\"'𝐶'\"}},\".cm-completionIcon-type\":{\"&:after\":{content:\"'𝑡'\"}},\".cm-completionIcon-enum\":{\"&:after\":{content:\"'∪'\"}},\".cm-completionIcon-property\":{\"&:after\":{content:\"'□'\"}},\".cm-completionIcon-keyword\":{\"&:after\":{content:\"'🔑︎'\"}},\".cm-completionIcon-namespace\":{\"&:after\":{content:\"'▢'\"}},\".cm-completionIcon-text\":{\"&:after\":{content:\"'abc'\",fontSize:\"50%\",verticalAlign:\"middle\"}}});var FieldPos=class{constructor(field,line,from,to){this.field=field;this.line=line;this.from=from;this.to=to;}};var FieldRange=class{map(changes){let from=changes.mapPos(this.from,-1,MapMode.TrackDel);let to=changes.mapPos(this.to,1,MapMode.TrackDel);return from==null||to==null?null:new FieldRange(this.field,from,to);}constructor(field,from,to){this.field=field;this.from=from;this.to=to;}};var Snippet=class{instantiate(state,pos){let text=[],lineStart=[pos];let lineObj=state.doc.lineAt(pos),baseIndent=/^\\s*/.exec(lineObj.text)[0];for(let line of this.lines){if(text.length){let indent=baseIndent,tabs=/^\\t*/.exec(line)[0].length;for(let i=0;i<tabs;i++)indent+=state.facet(indentUnit);lineStart.push(pos+indent.length-tabs);line=indent+line.slice(tabs);}text.push(line);pos+=line.length+1;}let ranges=this.fieldPositions.map(pos2=>new FieldRange(pos2.field,lineStart[pos2.line]+pos2.from,lineStart[pos2.line]+pos2.to));return{text,ranges};}static parse(template){let fields=[];let lines=[],positions=[],m;for(let line of template.split(/\\r\\n?|\\n/)){while(m=/[#$]\\{(?:(\\d+)(?::([^}]*))?|([^}]*))\\}/.exec(line)){let seq=m[1]?+m[1]:null,name=m[2]||m[3]||\"\",found=-1;for(let i=0;i<fields.length;i++){if(seq!=null?fields[i].seq==seq:name?fields[i].name==name:false)found=i;}if(found<0){let i=0;while(i<fields.length&&(seq==null||fields[i].seq!=null&&fields[i].seq<seq))i++;fields.splice(i,0,{seq,name});found=i;for(let pos of positions)if(pos.field>=found)pos.field++;}positions.push(new FieldPos(found,lines.length,m.index,m.index+name.length));line=line.slice(0,m.index)+name+line.slice(m.index+m[0].length);}for(let esc;esc=/\\\\([{}])/.exec(line);){line=line.slice(0,esc.index)+esc[1]+line.slice(esc.index+esc[0].length);for(let pos of positions)if(pos.line==lines.length&&pos.from>esc.index){pos.from--;pos.to--;}}lines.push(line);}return new Snippet(lines,positions);}constructor(lines,fieldPositions){this.lines=lines;this.fieldPositions=fieldPositions;}};var fieldMarker=/* @__PURE__ */Decoration.widget({widget:/* @__PURE__ */new class extends WidgetType{toDOM(){let span=document.createElement(\"span\");span.className=\"cm-snippetFieldPosition\";return span;}ignoreEvent(){return false;}}});var fieldRange=/* @__PURE__ */Decoration.mark({class:\"cm-snippetField\"});var ActiveSnippet=class{map(changes){let ranges=[];for(let r of this.ranges){let mapped=r.map(changes);if(!mapped)return null;ranges.push(mapped);}return new ActiveSnippet(ranges,this.active);}selectionInsideField(sel){return sel.ranges.every(range=>this.ranges.some(r=>r.field==this.active&&r.from<=range.from&&r.to>=range.to));}constructor(ranges,active){this.ranges=ranges;this.active=active;this.deco=Decoration.set(ranges.map(r=>(r.from==r.to?fieldMarker:fieldRange).range(r.from,r.to)));}};var setActive=/* @__PURE__ */StateEffect.define({map(value,changes){return value&&value.map(changes);}});var moveToField=/* @__PURE__ */StateEffect.define();var snippetState=/* @__PURE__ */StateField.define({create(){return null;},update(value,tr){for(let effect of tr.effects){if(effect.is(setActive))return effect.value;if(effect.is(moveToField)&&value)return new ActiveSnippet(value.ranges,effect.value);}if(value&&tr.docChanged)value=value.map(tr.changes);if(value&&tr.selection&&!value.selectionInsideField(tr.selection))value=null;return value;},provide:f=>EditorView.decorations.from(f,val=>val?val.deco:Decoration.none)});function fieldSelection(ranges,field){return EditorSelection.create(ranges.filter(r=>r.field==field).map(r=>EditorSelection.range(r.from,r.to)));}function snippet(template){let snippet2=Snippet.parse(template);return(editor,completion,from,to)=>{let{text,ranges}=snippet2.instantiate(editor.state,from);let spec={changes:{from,to,insert:Text.of(text)},scrollIntoView:true,annotations:completion?pickedCompletion.of(completion):void 0};if(ranges.length)spec.selection=fieldSelection(ranges,0);if(ranges.length>1){let active=new ActiveSnippet(ranges,0);let effects=spec.effects=[setActive.of(active)];if(editor.state.field(snippetState,false)===void 0)effects.push(StateEffect.appendConfig.of([snippetState,addSnippetKeymap,snippetPointerHandler,baseTheme]));}editor.dispatch(editor.state.update(spec));};}function moveField(dir){return({state,dispatch})=>{let active=state.field(snippetState,false);if(!active||dir<0&&active.active==0)return false;let next=active.active+dir,last=dir>0&&!active.ranges.some(r=>r.field==next+dir);dispatch(state.update({selection:fieldSelection(active.ranges,next),effects:setActive.of(last?null:new ActiveSnippet(active.ranges,next))}));return true;};}var clearSnippet=({state,dispatch})=>{let active=state.field(snippetState,false);if(!active)return false;dispatch(state.update({effects:setActive.of(null)}));return true;};var nextSnippetField=/* @__PURE__ */moveField(1);var prevSnippetField=/* @__PURE__ */moveField(-1);function hasNextSnippetField(state){let active=state.field(snippetState,false);return!!(active&&active.ranges.some(r=>r.field==active.active+1));}function hasPrevSnippetField(state){let active=state.field(snippetState,false);return!!(active&&active.active>0);}var defaultSnippetKeymap=[{key:\"Tab\",run:nextSnippetField,shift:prevSnippetField},{key:\"Escape\",run:clearSnippet}];var snippetKeymap=/* @__PURE__ */Facet.define({combine(maps){return maps.length?maps[0]:defaultSnippetKeymap;}});var addSnippetKeymap=/* @__PURE__ */Prec.highest(/* @__PURE__ */keymap.compute([snippetKeymap],state=>state.facet(snippetKeymap)));function snippetCompletion(template,completion){return Object.assign(Object.assign({},completion),{apply:snippet(template)});}var snippetPointerHandler=/* @__PURE__ */EditorView.domEventHandlers({mousedown(event,view){let active=view.state.field(snippetState,false),pos;if(!active||(pos=view.posAtCoords({x:event.clientX,y:event.clientY}))==null)return false;let match=active.ranges.find(r=>r.from<=pos&&r.to>=pos);if(!match||match.field==active.active)return false;view.dispatch({selection:fieldSelection(active.ranges,match.field),effects:setActive.of(active.ranges.some(r=>r.field>match.field)?new ActiveSnippet(active.ranges,match.field):null)});return true;}});function wordRE(wordChars){let escaped=wordChars.replace(/[\\\\[.+*?(){|^$]/g,\"\\\\$&\");try{return new RegExp(`[\\\\p{Alphabetic}\\\\p{Number}_${escaped}]+`,\"ug\");}catch(_a){return new RegExp(`[w${escaped}]`,\"g\");}}function mapRE(re,f){return new RegExp(f(re.source),re.unicode?\"u\":\"\");}var wordCaches=/* @__PURE__ */Object.create(null);function wordCache(wordChars){return wordCaches[wordChars]||(wordCaches[wordChars]=/* @__PURE__ */new WeakMap);}function storeWords(doc,wordRE2,result,seen,ignoreAt){for(let lines=doc.iterLines(),pos=0;!lines.next().done;){let{value}=lines,m;wordRE2.lastIndex=0;while(m=wordRE2.exec(value)){if(!seen[m[0]]&&pos+m.index!=ignoreAt){result.push({type:\"text\",label:m[0]});seen[m[0]]=true;if(result.length>=2e3)return;}}pos+=value.length+1;}}function collectWords(doc,cache,wordRE2,to,ignoreAt){let big=doc.length>=1e3;let cached=big&&cache.get(doc);if(cached)return cached;let result=[],seen=/* @__PURE__ */Object.create(null);if(doc.children){let pos=0;for(let ch of doc.children){if(ch.length>=1e3){for(let c of collectWords(ch,cache,wordRE2,to-pos,ignoreAt-pos)){if(!seen[c.label]){seen[c.label]=true;result.push(c);}}}else{storeWords(ch,wordRE2,result,seen,ignoreAt-pos);}pos+=ch.length+1;}}else{storeWords(doc,wordRE2,result,seen,ignoreAt);}if(big&&result.length<2e3)cache.set(doc,result);return result;}var completeAnyWord=context=>{let wordChars=context.state.languageDataAt(\"wordChars\",context.pos).join(\"\");let re=wordRE(wordChars);let token=context.matchBefore(mapRE(re,s=>s+\"$\"));if(!token&&!context.explicit)return null;let from=token?token.from:context.pos;let options=collectWords(context.state.doc,wordCache(wordChars),re,5e4,from);return{from,options,validFor:mapRE(re,s=>\"^\"+s)};};var defaults={brackets:[\"(\",\"[\",\"{\",\"'\",'\"'],before:\")]}:;>\",stringPrefixes:[]};var closeBracketEffect=/* @__PURE__ */StateEffect.define({map(value,mapping){let mapped=mapping.mapPos(value,-1,MapMode.TrackAfter);return mapped==null?void 0:mapped;}});var closedBracket=/* @__PURE__ */new class extends RangeValue{};closedBracket.startSide=1;closedBracket.endSide=-1;var bracketState=/* @__PURE__ */StateField.define({create(){return RangeSet.empty;},update(value,tr){if(tr.selection){let lineStart=tr.state.doc.lineAt(tr.selection.main.head).from;let prevLineStart=tr.startState.doc.lineAt(tr.startState.selection.main.head).from;if(lineStart!=tr.changes.mapPos(prevLineStart,-1))value=RangeSet.empty;}value=value.map(tr.changes);for(let effect of tr.effects)if(effect.is(closeBracketEffect))value=value.update({add:[closedBracket.range(effect.value,effect.value+1)]});return value;}});function closeBrackets(){return[inputHandler,bracketState];}var definedClosing=\"()[]{}<>\";function closing(ch){for(let i=0;i<definedClosing.length;i+=2)if(definedClosing.charCodeAt(i)==ch)return definedClosing.charAt(i+1);return fromCodePoint(ch<128?ch:ch+1);}function config(state,pos){return state.languageDataAt(\"closeBrackets\",pos)[0]||defaults;}var android=typeof navigator==\"object\"&&/* @__PURE__ *//Android\\b/.test(navigator.userAgent);var inputHandler=/* @__PURE__ */EditorView.inputHandler.of((view,from,to,insert)=>{if((android?view.composing:view.compositionStarted)||view.state.readOnly)return false;let sel=view.state.selection.main;if(insert.length>2||insert.length==2&&codePointSize(codePointAt(insert,0))==1||from!=sel.from||to!=sel.to)return false;let tr=insertBracket(view.state,insert);if(!tr)return false;view.dispatch(tr);return true;});var deleteBracketPair=({state,dispatch})=>{if(state.readOnly)return false;let conf=config(state,state.selection.main.head);let tokens=conf.brackets||defaults.brackets;let dont=null,changes=state.changeByRange(range=>{if(range.empty){let before=prevChar(state.doc,range.head);for(let token of tokens){if(token==before&&nextChar(state.doc,range.head)==closing(codePointAt(token,0)))return{changes:{from:range.head-token.length,to:range.head+token.length},range:EditorSelection.cursor(range.head-token.length)};}}return{range:dont=range};});if(!dont)dispatch(state.update(changes,{scrollIntoView:true,userEvent:\"delete.backward\"}));return!dont;};var closeBracketsKeymap=[{key:\"Backspace\",run:deleteBracketPair}];function insertBracket(state,bracket){let conf=config(state,state.selection.main.head);let tokens=conf.brackets||defaults.brackets;for(let tok of tokens){let closed=closing(codePointAt(tok,0));if(bracket==tok)return closed==tok?handleSame(state,tok,tokens.indexOf(tok+tok+tok)>-1,conf):handleOpen(state,tok,closed,conf.before||defaults.before);if(bracket==closed&&closedBracketAt(state,state.selection.main.from))return handleClose(state,tok,closed);}return null;}function closedBracketAt(state,pos){let found=false;state.field(bracketState).between(0,state.doc.length,from=>{if(from==pos)found=true;});return found;}function nextChar(doc,pos){let next=doc.sliceString(pos,pos+2);return next.slice(0,codePointSize(codePointAt(next,0)));}function prevChar(doc,pos){let prev=doc.sliceString(pos-2,pos);return codePointSize(codePointAt(prev,0))==prev.length?prev:prev.slice(1);}function handleOpen(state,open,close,closeBefore){let dont=null,changes=state.changeByRange(range=>{if(!range.empty)return{changes:[{insert:open,from:range.from},{insert:close,from:range.to}],effects:closeBracketEffect.of(range.to+open.length),range:EditorSelection.range(range.anchor+open.length,range.head+open.length)};let next=nextChar(state.doc,range.head);if(!next||/\\s/.test(next)||closeBefore.indexOf(next)>-1)return{changes:{insert:open+close,from:range.head},effects:closeBracketEffect.of(range.head+open.length),range:EditorSelection.cursor(range.head+open.length)};return{range:dont=range};});return dont?null:state.update(changes,{scrollIntoView:true,userEvent:\"input.type\"});}function handleClose(state,_open,close){let dont=null,changes=state.changeByRange(range=>{if(range.empty&&nextChar(state.doc,range.head)==close)return{changes:{from:range.head,to:range.head+close.length,insert:close},range:EditorSelection.cursor(range.head+close.length)};return dont={range};});return dont?null:state.update(changes,{scrollIntoView:true,userEvent:\"input.type\"});}function handleSame(state,token,allowTriple,config2){let stringPrefixes=config2.stringPrefixes||defaults.stringPrefixes;let dont=null,changes=state.changeByRange(range=>{if(!range.empty)return{changes:[{insert:token,from:range.from},{insert:token,from:range.to}],effects:closeBracketEffect.of(range.to+token.length),range:EditorSelection.range(range.anchor+token.length,range.head+token.length)};let pos=range.head,next=nextChar(state.doc,pos),start;if(next==token){if(nodeStart(state,pos)){return{changes:{insert:token+token,from:pos},effects:closeBracketEffect.of(pos+token.length),range:EditorSelection.cursor(pos+token.length)};}else if(closedBracketAt(state,pos)){let isTriple=allowTriple&&state.sliceDoc(pos,pos+token.length*3)==token+token+token;let content=isTriple?token+token+token:token;return{changes:{from:pos,to:pos+content.length,insert:content},range:EditorSelection.cursor(pos+content.length)};}}else if(allowTriple&&state.sliceDoc(pos-2*token.length,pos)==token+token&&(start=canStartStringAt(state,pos-2*token.length,stringPrefixes))>-1&&nodeStart(state,start)){return{changes:{insert:token+token+token+token,from:pos},effects:closeBracketEffect.of(pos+token.length),range:EditorSelection.cursor(pos+token.length)};}else if(state.charCategorizer(pos)(next)!=CharCategory.Word){if(canStartStringAt(state,pos,stringPrefixes)>-1&&!probablyInString(state,pos,token,stringPrefixes))return{changes:{insert:token+token,from:pos},effects:closeBracketEffect.of(pos+token.length),range:EditorSelection.cursor(pos+token.length)};}return{range:dont=range};});return dont?null:state.update(changes,{scrollIntoView:true,userEvent:\"input.type\"});}function nodeStart(state,pos){let tree=syntaxTree(state).resolveInner(pos+1);return tree.parent&&tree.from==pos;}function probablyInString(state,pos,quoteToken,prefixes){let node=syntaxTree(state).resolveInner(pos,-1);let maxPrefix=prefixes.reduce((m,p)=>Math.max(m,p.length),0);for(let i=0;i<5;i++){let start=state.sliceDoc(node.from,Math.min(node.to,node.from+quoteToken.length+maxPrefix));let quotePos=start.indexOf(quoteToken);if(!quotePos||quotePos>-1&&prefixes.indexOf(start.slice(0,quotePos))>-1){let first=node.firstChild;while(first&&first.from==node.from&&first.to-first.from>quoteToken.length+quotePos){if(state.sliceDoc(first.to-quoteToken.length,first.to)==quoteToken)return false;first=first.firstChild;}return true;}let parent=node.to==pos&&node.parent;if(!parent)break;node=parent;}return false;}function canStartStringAt(state,pos,prefixes){let charCat=state.charCategorizer(pos);if(charCat(state.sliceDoc(pos-1,pos))!=CharCategory.Word)return pos;for(let prefix of prefixes){let start=pos-prefix.length;if(state.sliceDoc(start,pos)==prefix&&charCat(state.sliceDoc(start-1,start))!=CharCategory.Word)return start;}return-1;}function autocompletion(config2={}){return[completionState,completionConfig.of(config2),completionPlugin,completionKeymapExt,baseTheme];}var completionKeymap=[{key:\"Ctrl-Space\",run:startCompletion},{key:\"Escape\",run:closeCompletion},{key:\"ArrowDown\",run:/* @__PURE__ */moveCompletionSelection(true)},{key:\"ArrowUp\",run:/* @__PURE__ */moveCompletionSelection(false)},{key:\"PageDown\",run:/* @__PURE__ */moveCompletionSelection(true,\"page\")},{key:\"PageUp\",run:/* @__PURE__ */moveCompletionSelection(false,\"page\")},{key:\"Enter\",run:acceptCompletion}];var completionKeymapExt=/* @__PURE__ */Prec.highest(/* @__PURE__ */keymap.computeN([completionConfig],state=>state.facet(completionConfig).defaultKeymap?[completionKeymap]:[]));function completionStatus(state){let cState=state.field(completionState,false);return cState&&cState.active.some(a=>a.state==1)?\"pending\":cState&&cState.active.some(a=>a.state!=0)?\"active\":null;}var completionArrayCache=/* @__PURE__ */new WeakMap;function currentCompletions(state){var _a;let open=(_a=state.field(completionState,false))===null||_a===void 0?void 0:_a.open;if(!open||open.disabled)return[];let completions=completionArrayCache.get(open.options);if(!completions)completionArrayCache.set(open.options,completions=open.options.map(o=>o.completion));return completions;}function selectedCompletion(state){var _a;let open=(_a=state.field(completionState,false))===null||_a===void 0?void 0:_a.open;return open&&!open.disabled&&open.selected>=0?open.options[open.selected].completion:null;}function selectedCompletionIndex(state){var _a;let open=(_a=state.field(completionState,false))===null||_a===void 0?void 0:_a.open;return open&&!open.disabled&&open.selected>=0?open.selected:null;}function setSelectedCompletion(index){return setSelectedEffect.of(index);}export{CompletionContext,acceptCompletion,autocompletion,clearSnippet,closeBrackets,closeBracketsKeymap,closeCompletion,completeAnyWord,completeFromList,completionKeymap,completionStatus,currentCompletions,deleteBracketPair,hasNextSnippetField,hasPrevSnippetField,ifIn,ifNotIn,insertBracket,insertCompletionText,moveCompletionSelection,nextSnippetField,pickedCompletion,prevSnippetField,selectedCompletion,selectedCompletionIndex,setSelectedCompletion,snippet,snippetCompletion,snippetKeymap,startCompletion,};\nexport const __FramerMetadata__ = {\"exports\":{\"acceptCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"setSelectedCompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ifNotIn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completeAnyWord\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completionKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasPrevSnippetField\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"hasNextSnippetField\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"nextSnippetField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"deleteBracketPair\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completeFromList\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeBrackets\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completionStatus\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippetKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"pickedCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"CompletionContext\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"currentCompletions\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"insertCompletionText\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"moveCompletionSelection\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippetCompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippet\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"selectedCompletionIndex\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"autocompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeBracketsKeymap\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ifIn\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"closeCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"insertBracket\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"selectedCompletion\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"prevSnippetField\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"clearSnippet\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"startCompletion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/lr/dist/index.js\nimport{Parser,NodeProp,NodeSet,NodeType,DefaultBufferLength,Tree,IterMode}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/ye873rtFsAyZVFu9x2He/lezer_common.js\";var Stack=class{/// @internal\ntoString(){return`[${this.stack.filter((_,i)=>i%3==0).concat(this.state)}]@${this.pos}${this.score?\"!\"+this.score:\"\"}`;}// Start an empty stack\n/// @internal\nstatic start(p,state,pos=0){let cx=p.parser.context;return new Stack(p,[],state,pos,pos,0,[],0,cx?new StackContext(cx,cx.start):null,0,null);}/// The stack's current [context](#lr.ContextTracker) value, if\n/// any. Its type will depend on the context tracker's type\n/// parameter, or it will be `null` if there is no context\n/// tracker.\nget context(){return this.curContext?this.curContext.context:null;}// Push a state onto the stack, tracking its start position as well\n// as the buffer base at that point.\n/// @internal\npushState(state,start){this.stack.push(this.state,start,this.bufferBase+this.buffer.length);this.state=state;}// Apply a reduce action\n/// @internal\nreduce(action){var _a;let depth=action>>19,type=action&65535;let{parser}=this.p;let dPrec=parser.dynamicPrecedence(type);if(dPrec)this.score+=dPrec;if(depth==0){this.pushState(parser.getGoto(this.state,type,true),this.reducePos);if(type<parser.minRepeatTerm)this.storeNode(type,this.reducePos,this.reducePos,4,true);this.reduceContext(type,this.reducePos);return;}let base=this.stack.length-(depth-1)*3-(action&262144?6:0);let start=base?this.stack[base-2]:this.p.ranges[0].from,size=this.reducePos-start;if(size>=2e3&&!((_a=this.p.parser.nodeSet.types[type])===null||_a===void 0?void 0:_a.isAnonymous)){if(start==this.p.lastBigReductionStart){this.p.bigReductionCount++;this.p.lastBigReductionSize=size;}else if(this.p.lastBigReductionSize<size){this.p.bigReductionCount=1;this.p.lastBigReductionStart=start;this.p.lastBigReductionSize=size;}}let bufferBase=base?this.stack[base-1]:0,count=this.bufferBase+this.buffer.length-bufferBase;if(type<parser.minRepeatTerm||action&131072){let pos=parser.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(type,start,pos,count+4,true);}if(action&262144){this.state=this.stack[base];}else{let baseStateID=this.stack[base-3];this.state=parser.getGoto(baseStateID,type,true);}while(this.stack.length>base)this.stack.pop();this.reduceContext(type,start);}// Shift a value into the buffer\n/// @internal\nstoreNode(term,start,end,size=4,isReduce=false){if(term==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let cur=this,top=this.buffer.length;if(top==0&&cur.parent){top=cur.bufferBase-cur.parent.bufferBase;cur=cur.parent;}if(top>0&&cur.buffer[top-4]==0&&cur.buffer[top-1]>-1){if(start==end)return;if(cur.buffer[top-2]>=start){cur.buffer[top-2]=end;return;}}}if(!isReduce||this.pos==end){this.buffer.push(term,start,end,size);}else{let index=this.buffer.length;if(index>0&&this.buffer[index-4]!=0)while(index>0&&this.buffer[index-2]>end){this.buffer[index]=this.buffer[index-4];this.buffer[index+1]=this.buffer[index-3];this.buffer[index+2]=this.buffer[index-2];this.buffer[index+3]=this.buffer[index-1];index-=4;if(size>4)size-=4;}this.buffer[index]=term;this.buffer[index+1]=start;this.buffer[index+2]=end;this.buffer[index+3]=size;}}// Apply a shift action\n/// @internal\nshift(action,next,nextEnd){let start=this.pos;if(action&131072){this.pushState(action&65535,this.pos);}else if((action&262144)==0){let nextState=action,{parser}=this.p;if(nextEnd>this.pos||next<=parser.maxNode){this.pos=nextEnd;if(!parser.stateFlag(nextState,1))this.reducePos=nextEnd;}this.pushState(nextState,start);this.shiftContext(next,start);if(next<=parser.maxNode)this.buffer.push(next,start,nextEnd,4);}else{this.pos=nextEnd;this.shiftContext(next,start);if(next<=this.p.parser.maxNode)this.buffer.push(next,start,nextEnd,4);}}// Apply an action\n/// @internal\napply(action,next,nextEnd){if(action&65536)this.reduce(action);else this.shift(action,next,nextEnd);}// Add a prebuilt (reused) node into the buffer.\n/// @internal\nuseNode(value,next){let index=this.p.reused.length-1;if(index<0||this.p.reused[index]!=value){this.p.reused.push(value);index++;}let start=this.pos;this.reducePos=this.pos=start+value.length;this.pushState(next,start);this.buffer.push(index,start,this.reducePos,-1);if(this.curContext)this.updateContext(this.curContext.tracker.reuse(this.curContext.context,value,this,this.p.stream.reset(this.pos-value.length)));}// Split the stack. Due to the buffer sharing and the fact\n// that `this.stack` tends to stay quite shallow, this isn't very\n// expensive.\n/// @internal\nsplit(){let parent=this;let off=parent.buffer.length;while(off>0&&parent.buffer[off-2]>parent.reducePos)off-=4;let buffer=parent.buffer.slice(off),base=parent.bufferBase+off;while(parent&&base==parent.bufferBase)parent=parent.parent;return new Stack(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,buffer,base,this.curContext,this.lookAhead,parent);}// Try to recover from an error by 'deleting' (ignoring) one token.\n/// @internal\nrecoverByDelete(next,nextEnd){let isNode=next<=this.p.parser.maxNode;if(isNode)this.storeNode(next,this.pos,nextEnd,4);this.storeNode(0,this.pos,nextEnd,isNode?8:4);this.pos=this.reducePos=nextEnd;this.score-=190;}/// Check if the given term would be able to be shifted (optionally\n/// after some reductions) on this stack. This can be useful for\n/// external tokenizers that want to make sure they only provide a\n/// given token when it applies.\ncanShift(term){for(let sim=new SimulatedStack(this);;){let action=this.p.parser.stateSlot(sim.state,4)||this.p.parser.hasAction(sim.state,term);if(action==0)return false;if((action&65536)==0)return true;sim.reduce(action);}}// Apply up to Recover.MaxNext recovery actions that conceptually\n// inserts some missing token or rule.\n/// @internal\nrecoverByInsert(next){if(this.stack.length>=300)return[];let nextStates=this.p.parser.nextStates(this.state);if(nextStates.length>4<<1||this.stack.length>=120){let best=[];for(let i=0,s;i<nextStates.length;i+=2){if((s=nextStates[i+1])!=this.state&&this.p.parser.hasAction(s,next))best.push(nextStates[i],s);}if(this.stack.length<120)for(let i=0;best.length<4<<1&&i<nextStates.length;i+=2){let s=nextStates[i+1];if(!best.some((v,i2)=>i2&1&&v==s))best.push(nextStates[i],s);}nextStates=best;}let result=[];for(let i=0;i<nextStates.length&&result.length<4;i+=2){let s=nextStates[i+1];if(s==this.state)continue;let stack=this.split();stack.pushState(s,this.pos);stack.storeNode(0,stack.pos,stack.pos,4,true);stack.shiftContext(nextStates[i],this.pos);stack.score-=200;result.push(stack);}return result;}// Force a reduce, if possible. Return false if that can't\n// be done.\n/// @internal\nforceReduce(){let{parser}=this.p;let reduce=parser.stateSlot(this.state,5);if((reduce&65536)==0)return false;if(!parser.validAction(this.state,reduce)){let depth=reduce>>19,term=reduce&65535;let target=this.stack.length-depth*3;if(target<0||parser.getGoto(this.stack[target],term,false)<0){let backup=this.findForcedReduction();if(backup==null)return false;reduce=backup;}this.storeNode(0,this.reducePos,this.reducePos,4,true);this.score-=100;}this.reducePos=this.pos;this.reduce(reduce);return true;}/// Try to scan through the automaton to find some kind of reduction\n/// that can be applied. Used when the regular ForcedReduce field\n/// isn't a valid action. @internal\nfindForcedReduction(){let{parser}=this.p,seen=[];let explore=(state,depth)=>{if(seen.includes(state))return;seen.push(state);return parser.allActions(state,action=>{if(action&(262144|131072));else if(action&65536){let rDepth=(action>>19)-depth;if(rDepth>1){let term=action&65535,target=this.stack.length-rDepth*3;if(target>=0&&parser.getGoto(this.stack[target],term,false)>=0)return rDepth<<19|65536|term;}}else{let found=explore(action,depth+1);if(found!=null)return found;}});};return explore(this.state,0);}/// @internal\nforceAll(){while(!this.p.parser.stateFlag(this.state,2)){if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,true);break;}}return this;}/// Check whether this state has no further actions (assumed to be a direct descendant of the\n/// top state, since any other states must be able to continue\n/// somehow). @internal\nget deadEnd(){if(this.stack.length!=3)return false;let{parser}=this.p;return parser.data[parser.stateSlot(this.state,1)]==65535&&!parser.stateSlot(this.state,4);}/// Restart the stack (put it back in its start state). Only safe\n/// when this.stack.length == 3 (state is directly below the top\n/// state). @internal\nrestart(){this.state=this.stack[0];this.stack.length=0;}/// @internal\nsameState(other){if(this.state!=other.state||this.stack.length!=other.stack.length)return false;for(let i=0;i<this.stack.length;i+=3)if(this.stack[i]!=other.stack[i])return false;return true;}/// Get the parser used by this stack.\nget parser(){return this.p.parser;}/// Test whether a given dialect (by numeric ID, as exported from\n/// the terms file) is enabled.\ndialectEnabled(dialectID){return this.p.parser.dialect.flags[dialectID];}shiftContext(term,start){if(this.curContext)this.updateContext(this.curContext.tracker.shift(this.curContext.context,term,this,this.p.stream.reset(start)));}reduceContext(term,start){if(this.curContext)this.updateContext(this.curContext.tracker.reduce(this.curContext.context,term,this,this.p.stream.reset(start)));}/// @internal\nemitContext(){let last=this.buffer.length-1;if(last<0||this.buffer[last]!=-3)this.buffer.push(this.curContext.hash,this.pos,this.pos,-3);}/// @internal\nemitLookAhead(){let last=this.buffer.length-1;if(last<0||this.buffer[last]!=-4)this.buffer.push(this.lookAhead,this.pos,this.pos,-4);}updateContext(context){if(context!=this.curContext.context){let newCx=new StackContext(this.curContext.tracker,context);if(newCx.hash!=this.curContext.hash)this.emitContext();this.curContext=newCx;}}/// @internal\nsetLookAhead(lookAhead){if(lookAhead>this.lookAhead){this.emitLookAhead();this.lookAhead=lookAhead;}}/// @internal\nclose(){if(this.curContext&&this.curContext.tracker.strict)this.emitContext();if(this.lookAhead>0)this.emitLookAhead();}/// @internal\nconstructor(p,stack,state,reducePos,pos,score,buffer,bufferBase,curContext,lookAhead=0,parent){this.p=p;this.stack=stack;this.state=state;this.reducePos=reducePos;this.pos=pos;this.score=score;this.buffer=buffer;this.bufferBase=bufferBase;this.curContext=curContext;this.lookAhead=lookAhead;this.parent=parent;}};var StackContext=class{constructor(tracker,context){this.tracker=tracker;this.context=context;this.hash=tracker.strict?tracker.hash(context):0;}};var Recover;(function(Recover2){Recover2[Recover2[\"Insert\"]=200]=\"Insert\";Recover2[Recover2[\"Delete\"]=190]=\"Delete\";Recover2[Recover2[\"Reduce\"]=100]=\"Reduce\";Recover2[Recover2[\"MaxNext\"]=4]=\"MaxNext\";Recover2[Recover2[\"MaxInsertStackDepth\"]=300]=\"MaxInsertStackDepth\";Recover2[Recover2[\"DampenInsertStackDepth\"]=120]=\"DampenInsertStackDepth\";Recover2[Recover2[\"MinBigReduction\"]=2e3]=\"MinBigReduction\";})(Recover||(Recover={}));var SimulatedStack=class{reduce(action){let term=action&65535,depth=action>>19;if(depth==0){if(this.stack==this.start.stack)this.stack=this.stack.slice();this.stack.push(this.state,0,0);this.base+=3;}else{this.base-=(depth-1)*3;}let goto=this.start.p.parser.getGoto(this.stack[this.base-3],term,true);this.state=goto;}constructor(start){this.start=start;this.state=start.state;this.stack=start.stack;this.base=this.stack.length;}};var StackBufferCursor=class{static create(stack,pos=stack.bufferBase+stack.buffer.length){return new StackBufferCursor(stack,pos,pos-stack.bufferBase);}maybeNext(){let next=this.stack.parent;if(next!=null){this.index=this.stack.bufferBase-next.bufferBase;this.stack=next;this.buffer=next.buffer;}}get id(){return this.buffer[this.index-4];}get start(){return this.buffer[this.index-3];}get end(){return this.buffer[this.index-2];}get size(){return this.buffer[this.index-1];}next(){this.index-=4;this.pos-=4;if(this.index==0)this.maybeNext();}fork(){return new StackBufferCursor(this.stack,this.pos,this.index);}constructor(stack,pos,index){this.stack=stack;this.pos=pos;this.index=index;this.buffer=stack.buffer;if(this.index==0)this.maybeNext();}};function decodeArray(input,Type=Uint16Array){if(typeof input!=\"string\")return input;let array=null;for(let pos=0,out=0;pos<input.length;){let value=0;for(;;){let next=input.charCodeAt(pos++),stop=false;if(next==126){value=65535;break;}if(next>=92)next--;if(next>=34)next--;let digit=next-32;if(digit>=46){digit-=46;stop=true;}value+=digit;if(stop)break;value*=46;}if(array)array[out++]=value;else array=new Type(value);}return array;}var CachedToken=class{constructor(){this.start=-1;this.value=-1;this.end=-1;this.extended=-1;this.lookAhead=0;this.mask=0;this.context=0;}};var nullToken=new CachedToken;var InputStream=class{/// @internal\nresolveOffset(offset,assoc){let range=this.range,index=this.rangeIndex;let pos=this.pos+offset;while(pos<range.from){if(!index)return null;let next=this.ranges[--index];pos-=range.from-next.to;range=next;}while(assoc<0?pos>range.to:pos>=range.to){if(index==this.ranges.length-1)return null;let next=this.ranges[++index];pos+=next.from-range.to;range=next;}return pos;}/// @internal\nclipPos(pos){if(pos>=this.range.from&&pos<this.range.to)return pos;for(let range of this.ranges)if(range.to>pos)return Math.max(pos,range.from);return this.end;}/// Look at a code unit near the stream position. `.peek(0)` equals\n/// `.next`, `.peek(-1)` gives you the previous character, and so\n/// on.\n///\n/// Note that looking around during tokenizing creates dependencies\n/// on potentially far-away content, which may reduce the\n/// effectiveness incremental parsing—when looking forward—or even\n/// cause invalid reparses when looking backward more than 25 code\n/// units, since the library does not track lookbehind.\npeek(offset){let idx=this.chunkOff+offset,pos,result;if(idx>=0&&idx<this.chunk.length){pos=this.pos+offset;result=this.chunk.charCodeAt(idx);}else{let resolved=this.resolveOffset(offset,1);if(resolved==null)return-1;pos=resolved;if(pos>=this.chunk2Pos&&pos<this.chunk2Pos+this.chunk2.length){result=this.chunk2.charCodeAt(pos-this.chunk2Pos);}else{let i=this.rangeIndex,range=this.range;while(range.to<=pos)range=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=pos);if(pos+this.chunk2.length>range.to)this.chunk2=this.chunk2.slice(0,range.to-pos);result=this.chunk2.charCodeAt(0);}}if(pos>=this.token.lookAhead)this.token.lookAhead=pos+1;return result;}/// Accept a token. By default, the end of the token is set to the\n/// current stream position, but you can pass an offset (relative to\n/// the stream position) to change that.\nacceptToken(token,endOffset=0){let end=endOffset?this.resolveOffset(endOffset,-1):this.pos;if(end==null||end<this.token.start)throw new RangeError(\"Token end out of bounds\");this.token.value=token;this.token.end=end;}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk,chunkPos}=this;this.chunk=this.chunk2;this.chunkPos=this.chunk2Pos;this.chunk2=chunk;this.chunk2Pos=chunkPos;this.chunkOff=this.pos-this.chunkPos;}else{this.chunk2=this.chunk;this.chunk2Pos=this.chunkPos;let nextChunk=this.input.chunk(this.pos);let end=this.pos+nextChunk.length;this.chunk=end>this.range.to?nextChunk.slice(0,this.range.to-this.pos):nextChunk;this.chunkPos=this.pos;this.chunkOff=0;}}readNext(){if(this.chunkOff>=this.chunk.length){this.getChunk();if(this.chunkOff==this.chunk.length)return this.next=-1;}return this.next=this.chunk.charCodeAt(this.chunkOff);}/// Move the stream forward N (defaults to 1) code units. Returns\n/// the new value of [`next`](#lr.InputStream.next).\nadvance(n=1){this.chunkOff+=n;while(this.pos+n>=this.range.to){if(this.rangeIndex==this.ranges.length-1)return this.setDone();n-=this.range.to-this.pos;this.range=this.ranges[++this.rangeIndex];this.pos=this.range.from;}this.pos+=n;if(this.pos>=this.token.lookAhead)this.token.lookAhead=this.pos+1;return this.readNext();}setDone(){this.pos=this.chunkPos=this.end;this.range=this.ranges[this.rangeIndex=this.ranges.length-1];this.chunk=\"\";return this.next=-1;}/// @internal\nreset(pos,token){if(token){this.token=token;token.start=pos;token.lookAhead=pos+1;token.value=token.extended=-1;}else{this.token=nullToken;}if(this.pos!=pos){this.pos=pos;if(pos==this.end){this.setDone();return this;}while(pos<this.range.from)this.range=this.ranges[--this.rangeIndex];while(pos>=this.range.to)this.range=this.ranges[++this.rangeIndex];if(pos>=this.chunkPos&&pos<this.chunkPos+this.chunk.length){this.chunkOff=pos-this.chunkPos;}else{this.chunk=\"\";this.chunkOff=0;}this.readNext();}return this;}/// @internal\nread(from,to){if(from>=this.chunkPos&&to<=this.chunkPos+this.chunk.length)return this.chunk.slice(from-this.chunkPos,to-this.chunkPos);if(from>=this.chunk2Pos&&to<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(from-this.chunk2Pos,to-this.chunk2Pos);if(from>=this.range.from&&to<=this.range.to)return this.input.read(from,to);let result=\"\";for(let r of this.ranges){if(r.from>=to)break;if(r.to>from)result+=this.input.read(Math.max(r.from,from),Math.min(r.to,to));}return result;}/// @internal\nconstructor(input,ranges){this.input=input;this.ranges=ranges;this.chunk=\"\";this.chunkOff=0;this.chunk2=\"\";this.chunk2Pos=0;this.next=-1;this.token=nullToken;this.rangeIndex=0;this.pos=this.chunkPos=ranges[0].from;this.range=ranges[0];this.end=ranges[ranges.length-1].to;this.readNext();}};var TokenGroup=class{token(input,stack){let{parser}=stack.p;readToken(this.data,input,stack,this.id,parser.data,parser.tokenPrecTable);}constructor(data,id2){this.data=data;this.id=id2;}};TokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=false;var LocalTokenGroup=class{token(input,stack){let start=input.pos,skipped=0;for(;;){readToken(this.data,input,stack,0,this.data,this.precTable);if(input.token.value>-1)break;if(this.elseToken==null)return;if(input.next<0)break;input.advance();input.reset(input.pos,input.token);skipped++;}if(skipped){input.reset(start,input.token);input.acceptToken(this.elseToken,skipped);}}constructor(data,precTable,elseToken){this.precTable=precTable;this.elseToken=elseToken;this.data=typeof data==\"string\"?decodeArray(data):data;}};LocalTokenGroup.prototype.contextual=TokenGroup.prototype.fallback=TokenGroup.prototype.extend=false;var ExternalTokenizer=class{/// Create a tokenizer. The first argument is the function that,\n/// given an input stream, scans for the types of tokens it\n/// recognizes at the stream's position, and calls\n/// [`acceptToken`](#lr.InputStream.acceptToken) when it finds\n/// one.\nconstructor(token,options={}){this.token=token;this.contextual=!!options.contextual;this.fallback=!!options.fallback;this.extend=!!options.extend;}};function readToken(data,input,stack,group,precTable,precOffset){let state=0,groupMask=1<<group,{dialect}=stack.p.parser;scan:for(;;){if((groupMask&data[state])==0)break;let accEnd=data[state+1];for(let i=state+3;i<accEnd;i+=2)if((data[i+1]&groupMask)>0){let term=data[i];if(dialect.allows(term)&&(input.token.value==-1||input.token.value==term||overrides(term,input.token.value,precTable,precOffset))){input.acceptToken(term);break;}}let next=input.next,low=0,high=data[state+2];if(input.next<0&&high>low&&data[accEnd+high*3-3]==65535&&data[accEnd+high*3-3]==65535){state=data[accEnd+high*3-1];continue scan;}for(;low<high;){let mid=low+high>>1;let index=accEnd+mid+(mid<<1);let from=data[index],to=data[index+1]||65536;if(next<from)high=mid;else if(next>=to)low=mid+1;else{state=data[index+2];input.advance();continue scan;}}break;}}function findOffset(data,start,term){for(let i=start,next;(next=data[i])!=65535;i++)if(next==term)return i-start;return-1;}function overrides(token,prev,tableData,tableOffset){let iPrev=findOffset(tableData,tableOffset,prev);return iPrev<0||findOffset(tableData,tableOffset,token)<iPrev;}var verbose=typeof process!=\"undefined\"&&process.env&&/\\bparse\\b/.test(process.env.LOG);var stackIDs=null;var Safety;(function(Safety2){Safety2[Safety2[\"Margin\"]=25]=\"Margin\";})(Safety||(Safety={}));function cutAt(tree,pos,side){let cursor=tree.cursor(IterMode.IncludeAnonymous);cursor.moveTo(pos);for(;;){if(!(side<0?cursor.childBefore(pos):cursor.childAfter(pos)))for(;;){if((side<0?cursor.to<pos:cursor.from>pos)&&!cursor.type.isError)return side<0?Math.max(0,Math.min(cursor.to-1,pos-25)):Math.min(tree.length,Math.max(cursor.from+1,pos+25));if(side<0?cursor.prevSibling():cursor.nextSibling())break;if(!cursor.parent())return side<0?0:tree.length;}}}var FragmentCursor=class{nextFragment(){let fr=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(fr){this.safeFrom=fr.openStart?cutAt(fr.tree,fr.from+fr.offset,1)-fr.offset:fr.from;this.safeTo=fr.openEnd?cutAt(fr.tree,fr.to+fr.offset,-1)-fr.offset:fr.to;while(this.trees.length){this.trees.pop();this.start.pop();this.index.pop();}this.trees.push(fr.tree);this.start.push(-fr.offset);this.index.push(0);this.nextStart=this.safeFrom;}else{this.nextStart=1e9;}}// `pos` must be >= any previously given `pos` for this cursor\nnodeAt(pos){if(pos<this.nextStart)return null;while(this.fragment&&this.safeTo<=pos)this.nextFragment();if(!this.fragment)return null;for(;;){let last=this.trees.length-1;if(last<0){this.nextFragment();return null;}let top=this.trees[last],index=this.index[last];if(index==top.children.length){this.trees.pop();this.start.pop();this.index.pop();continue;}let next=top.children[index];let start=this.start[last]+top.positions[index];if(start>pos){this.nextStart=start;return null;}if(next instanceof Tree){if(start==pos){if(start<this.safeFrom)return null;let end=start+next.length;if(end<=this.safeTo){let lookAhead=next.prop(NodeProp.lookAhead);if(!lookAhead||end+lookAhead<this.fragment.to)return next;}}this.index[last]++;if(start+next.length>=Math.max(this.safeFrom,pos)){this.trees.push(next);this.start.push(start);this.index.push(0);}}else{this.index[last]++;this.nextStart=start+next.length;}}}constructor(fragments,nodeSet){this.fragments=fragments;this.nodeSet=nodeSet;this.i=0;this.fragment=null;this.safeFrom=-1;this.safeTo=-1;this.trees=[];this.start=[];this.index=[];this.nextFragment();}};var TokenCache=class{getActions(stack){let actionIndex=0;let main=null;let{parser}=stack.p,{tokenizers}=parser;let mask=parser.stateSlot(stack.state,3);let context=stack.curContext?stack.curContext.hash:0;let lookAhead=0;for(let i=0;i<tokenizers.length;i++){if((1<<i&mask)==0)continue;let tokenizer=tokenizers[i],token=this.tokens[i];if(main&&!tokenizer.fallback)continue;if(tokenizer.contextual||token.start!=stack.pos||token.mask!=mask||token.context!=context){this.updateCachedToken(token,tokenizer,stack);token.mask=mask;token.context=context;}if(token.lookAhead>token.end+25)lookAhead=Math.max(token.lookAhead,lookAhead);if(token.value!=0){let startIndex=actionIndex;if(token.extended>-1)actionIndex=this.addActions(stack,token.extended,token.end,actionIndex);actionIndex=this.addActions(stack,token.value,token.end,actionIndex);if(!tokenizer.extend){main=token;if(actionIndex>startIndex)break;}}}while(this.actions.length>actionIndex)this.actions.pop();if(lookAhead)stack.setLookAhead(lookAhead);if(!main&&stack.pos==this.stream.end){main=new CachedToken;main.value=stack.p.parser.eofTerm;main.start=main.end=stack.pos;actionIndex=this.addActions(stack,main.value,main.end,actionIndex);}this.mainToken=main;return this.actions;}getMainToken(stack){if(this.mainToken)return this.mainToken;let main=new CachedToken,{pos,p}=stack;main.start=pos;main.end=Math.min(pos+1,p.stream.end);main.value=pos==p.stream.end?p.parser.eofTerm:0;return main;}updateCachedToken(token,tokenizer,stack){let start=this.stream.clipPos(stack.pos);tokenizer.token(this.stream.reset(start,token),stack);if(token.value>-1){let{parser}=stack.p;for(let i=0;i<parser.specialized.length;i++)if(parser.specialized[i]==token.value){let result=parser.specializers[i](this.stream.read(token.start,token.end),stack);if(result>=0&&stack.p.parser.dialect.allows(result>>1)){if((result&1)==0)token.value=result>>1;else token.extended=result>>1;break;}}}else{token.value=0;token.end=this.stream.clipPos(start+1);}}putAction(action,token,end,index){for(let i=0;i<index;i+=3)if(this.actions[i]==action)return index;this.actions[index++]=action;this.actions[index++]=token;this.actions[index++]=end;return index;}addActions(stack,token,end,index){let{state}=stack,{parser}=stack.p,{data}=parser;for(let set=0;set<2;set++){for(let i=parser.stateSlot(state,set?2:1);;i+=3){if(data[i]==65535){if(data[i+1]==1){i=pair(data,i+2);}else{if(index==0&&data[i+1]==2)index=this.putAction(pair(data,i+2),token,end,index);break;}}if(data[i]==token)index=this.putAction(pair(data,i+1),token,end,index);}}return index;}constructor(parser,stream){this.stream=stream;this.tokens=[];this.mainToken=null;this.actions=[];this.tokens=parser.tokenizers.map(_=>new CachedToken);}};var Rec;(function(Rec2){Rec2[Rec2[\"Distance\"]=5]=\"Distance\";Rec2[Rec2[\"MaxRemainingPerStep\"]=3]=\"MaxRemainingPerStep\";Rec2[Rec2[\"MinBufferLengthPrune\"]=500]=\"MinBufferLengthPrune\";Rec2[Rec2[\"ForceReduceLimit\"]=10]=\"ForceReduceLimit\";Rec2[Rec2[\"CutDepth\"]=15e3]=\"CutDepth\";Rec2[Rec2[\"CutTo\"]=9e3]=\"CutTo\";Rec2[Rec2[\"MaxLeftAssociativeReductionCount\"]=300]=\"MaxLeftAssociativeReductionCount\";Rec2[Rec2[\"MaxStackCount\"]=12]=\"MaxStackCount\";})(Rec||(Rec={}));var Parse=class{get parsedPos(){return this.minStackPos;}// Move the parser forward. This will process all parse stacks at\n// `this.pos` and try to advance them to a further position. If no\n// stack for such a position is found, it'll start error-recovery.\n//\n// When the parse is finished, this will return a syntax tree. When\n// not, it returns `null`.\nadvance(){let stacks=this.stacks,pos=this.minStackPos;let newStacks=this.stacks=[];let stopped,stoppedTokens;if(this.bigReductionCount>300&&stacks.length==1){let[s]=stacks;while(s.forceReduce()&&s.stack.length&&s.stack[s.stack.length-2]>=this.lastBigReductionStart){}this.bigReductionCount=this.lastBigReductionSize=0;}for(let i=0;i<stacks.length;i++){let stack=stacks[i];for(;;){this.tokens.mainToken=null;if(stack.pos>pos){newStacks.push(stack);}else if(this.advanceStack(stack,newStacks,stacks)){continue;}else{if(!stopped){stopped=[];stoppedTokens=[];}stopped.push(stack);let tok=this.tokens.getMainToken(stack);stoppedTokens.push(tok.value,tok.end);}break;}}if(!newStacks.length){let finished=stopped&&findFinished(stopped);if(finished)return this.stackToTree(finished);if(this.parser.strict){if(verbose&&stopped)console.log(\"Stuck with token \"+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):\"none\"));throw new SyntaxError(\"No parse at \"+pos);}if(!this.recovering)this.recovering=5;}if(this.recovering&&stopped){let finished=this.stoppedAt!=null&&stopped[0].pos>this.stoppedAt?stopped[0]:this.runRecovery(stopped,stoppedTokens,newStacks);if(finished)return this.stackToTree(finished.forceAll());}if(this.recovering){let maxRemaining=this.recovering==1?1:this.recovering*3;if(newStacks.length>maxRemaining){newStacks.sort((a,b)=>b.score-a.score);while(newStacks.length>maxRemaining)newStacks.pop();}if(newStacks.some(s=>s.reducePos>pos))this.recovering--;}else if(newStacks.length>1){outer:for(let i=0;i<newStacks.length-1;i++){let stack=newStacks[i];for(let j=i+1;j<newStacks.length;j++){let other=newStacks[j];if(stack.sameState(other)||stack.buffer.length>500&&other.buffer.length>500){if((stack.score-other.score||stack.buffer.length-other.buffer.length)>0){newStacks.splice(j--,1);}else{newStacks.splice(i--,1);continue outer;}}}}if(newStacks.length>12)newStacks.splice(12,newStacks.length-12);}this.minStackPos=newStacks[0].pos;for(let i=1;i<newStacks.length;i++)if(newStacks[i].pos<this.minStackPos)this.minStackPos=newStacks[i].pos;return null;}stopAt(pos){if(this.stoppedAt!=null&&this.stoppedAt<pos)throw new RangeError(\"Can't move stoppedAt forward\");this.stoppedAt=pos;}// Returns an updated version of the given stack, or null if the\n// stack can't advance normally. When `split` and `stacks` are\n// given, stacks split off by ambiguous operations will be pushed to\n// `split`, or added to `stacks` if they move `pos` forward.\nadvanceStack(stack,stacks,split){let start=stack.pos,{parser}=this;let base=verbose?this.stackID(stack)+\" -> \":\"\";if(this.stoppedAt!=null&&start>this.stoppedAt)return stack.forceReduce()?stack:null;if(this.fragments){let strictCx=stack.curContext&&stack.curContext.tracker.strict,cxHash=strictCx?stack.curContext.hash:0;for(let cached=this.fragments.nodeAt(start);cached;){let match=this.parser.nodeSet.types[cached.type.id]==cached.type?parser.getGoto(stack.state,cached.type.id):-1;if(match>-1&&cached.length&&(!strictCx||(cached.prop(NodeProp.contextHash)||0)==cxHash)){stack.useNode(cached,match);if(verbose)console.log(base+this.stackID(stack)+` (via reuse of ${parser.getName(cached.type.id)})`);return true;}if(!(cached instanceof Tree)||cached.children.length==0||cached.positions[0]>0)break;let inner=cached.children[0];if(inner instanceof Tree&&cached.positions[0]==0)cached=inner;else break;}}let defaultReduce=parser.stateSlot(stack.state,4);if(defaultReduce>0){stack.reduce(defaultReduce);if(verbose)console.log(base+this.stackID(stack)+` (via always-reduce ${parser.getName(defaultReduce&65535)})`);return true;}if(stack.stack.length>=15e3){while(stack.stack.length>9e3&&stack.forceReduce()){}}let actions=this.tokens.getActions(stack);for(let i=0;i<actions.length;){let action=actions[i++],term=actions[i++],end=actions[i++];let last=i==actions.length||!split;let localStack=last?stack:stack.split();localStack.apply(action,term,end);if(verbose)console.log(base+this.stackID(localStack)+` (via ${(action&65536)==0?\"shift\":`reduce of ${parser.getName(action&65535)}`} for ${parser.getName(term)} @ ${start}${localStack==stack?\"\":\", split\"})`);if(last)return true;else if(localStack.pos>start)stacks.push(localStack);else split.push(localStack);}return false;}// Advance a given stack forward as far as it will go. Returns the\n// (possibly updated) stack if it got stuck, or null if it moved\n// forward and was given to `pushStackDedup`.\nadvanceFully(stack,newStacks){let pos=stack.pos;for(;;){if(!this.advanceStack(stack,null,null))return false;if(stack.pos>pos){pushStackDedup(stack,newStacks);return true;}}}runRecovery(stacks,tokens,newStacks){let finished=null,restarted=false;for(let i=0;i<stacks.length;i++){let stack=stacks[i],token=tokens[i<<1],tokenEnd=tokens[(i<<1)+1];let base=verbose?this.stackID(stack)+\" -> \":\"\";if(stack.deadEnd){if(restarted)continue;restarted=true;stack.restart();if(verbose)console.log(base+this.stackID(stack)+\" (restarted)\");let done=this.advanceFully(stack,newStacks);if(done)continue;}let force=stack.split(),forceBase=base;for(let j=0;force.forceReduce()&&j<10;j++){if(verbose)console.log(forceBase+this.stackID(force)+\" (via force-reduce)\");let done=this.advanceFully(force,newStacks);if(done)break;if(verbose)forceBase=this.stackID(force)+\" -> \";}for(let insert of stack.recoverByInsert(token)){if(verbose)console.log(base+this.stackID(insert)+\" (via recover-insert)\");this.advanceFully(insert,newStacks);}if(this.stream.end>stack.pos){if(tokenEnd==stack.pos){tokenEnd++;token=0;}stack.recoverByDelete(token,tokenEnd);if(verbose)console.log(base+this.stackID(stack)+` (via recover-delete ${this.parser.getName(token)})`);pushStackDedup(stack,newStacks);}else if(!finished||finished.score<stack.score){finished=stack;}}return finished;}// Convert the stack's buffer to a syntax tree.\nstackToTree(stack){stack.close();return Tree.build({buffer:StackBufferCursor.create(stack),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:stack.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm});}stackID(stack){let id2=(stackIDs||(stackIDs=/* @__PURE__ */new WeakMap)).get(stack);if(!id2)stackIDs.set(stack,id2=String.fromCodePoint(this.nextStackID++));return id2+stack;}constructor(parser,input,fragments,ranges){this.parser=parser;this.input=input;this.ranges=ranges;this.recovering=0;this.nextStackID=9812;this.minStackPos=0;this.reused=[];this.stoppedAt=null;this.lastBigReductionStart=-1;this.lastBigReductionSize=0;this.bigReductionCount=0;this.stream=new InputStream(input,ranges);this.tokens=new TokenCache(parser,this.stream);this.topTerm=parser.top[1];let{from}=ranges[0];this.stacks=[Stack.start(this,parser.top[0],from)];this.fragments=fragments.length&&this.stream.end-from>parser.bufferLength*4?new FragmentCursor(fragments,parser.nodeSet):null;}};function pushStackDedup(stack,newStacks){for(let i=0;i<newStacks.length;i++){let other=newStacks[i];if(other.pos==stack.pos&&other.sameState(stack)){if(newStacks[i].score<stack.score)newStacks[i]=stack;return;}}newStacks.push(stack);}var Dialect=class{allows(term){return!this.disabled||this.disabled[term]==0;}constructor(source,flags,disabled){this.source=source;this.flags=flags;this.disabled=disabled;}};var id=x=>x;var ContextTracker=class{/// Define a context tracker.\nconstructor(spec){this.start=spec.start;this.shift=spec.shift||id;this.reduce=spec.reduce||id;this.reuse=spec.reuse||id;this.hash=spec.hash||(()=>0);this.strict=spec.strict!==false;}};var LRParser=class extends Parser{createParse(input,fragments,ranges){let parse=new Parse(this,input,fragments,ranges);for(let w of this.wrappers)parse=w(parse,input,fragments,ranges);return parse;}/// Get a goto table entry @internal\ngetGoto(state,term,loose=false){let table=this.goto;if(term>=table[0])return-1;for(let pos=table[term+1];;){let groupTag=table[pos++],last=groupTag&1;let target=table[pos++];if(last&&loose)return target;for(let end=pos+(groupTag>>1);pos<end;pos++)if(table[pos]==state)return target;if(last)return-1;}}/// Check if this state has an action for a given terminal @internal\nhasAction(state,terminal){let data=this.data;for(let set=0;set<2;set++){for(let i=this.stateSlot(state,set?2:1),next;;i+=3){if((next=data[i])==65535){if(data[i+1]==1)next=data[i=pair(data,i+2)];else if(data[i+1]==2)return pair(data,i+2);else break;}if(next==terminal||next==0)return pair(data,i+1);}}return 0;}/// @internal\nstateSlot(state,slot){return this.states[state*6+slot];}/// @internal\nstateFlag(state,flag){return(this.stateSlot(state,0)&flag)>0;}/// @internal\nvalidAction(state,action){return!!this.allActions(state,a=>a==action?true:null);}/// @internal\nallActions(state,action){let deflt=this.stateSlot(state,4);let result=deflt?action(deflt):void 0;for(let i=this.stateSlot(state,1);result==null;i+=3){if(this.data[i]==65535){if(this.data[i+1]==1)i=pair(this.data,i+2);else break;}result=action(pair(this.data,i+1));}return result;}/// Get the states that can follow this one through shift actions or\n/// goto jumps. @internal\nnextStates(state){let result=[];for(let i=this.stateSlot(state,1);;i+=3){if(this.data[i]==65535){if(this.data[i+1]==1)i=pair(this.data,i+2);else break;}if((this.data[i+2]&65536>>16)==0){let value=this.data[i+1];if(!result.some((v,i2)=>i2&1&&v==value))result.push(this.data[i],value);}}return result;}/// Configure the parser. Returns a new parser instance that has the\n/// given settings modified. Settings not provided in `config` are\n/// kept from the original parser.\nconfigure(config){let copy=Object.assign(Object.create(LRParser.prototype),this);if(config.props)copy.nodeSet=this.nodeSet.extend(...config.props);if(config.top){let info=this.topRules[config.top];if(!info)throw new RangeError(`Invalid top rule name ${config.top}`);copy.top=info;}if(config.tokenizers)copy.tokenizers=this.tokenizers.map(t=>{let found=config.tokenizers.find(r=>r.from==t);return found?found.to:t;});if(config.specializers){copy.specializers=this.specializers.slice();copy.specializerSpecs=this.specializerSpecs.map((s,i)=>{let found=config.specializers.find(r=>r.from==s.external);if(!found)return s;let spec=Object.assign(Object.assign({},s),{external:found.to});copy.specializers[i]=getSpecializer(spec);return spec;});}if(config.contextTracker)copy.context=config.contextTracker;if(config.dialect)copy.dialect=this.parseDialect(config.dialect);if(config.strict!=null)copy.strict=config.strict;if(config.wrap)copy.wrappers=copy.wrappers.concat(config.wrap);if(config.bufferLength!=null)copy.bufferLength=config.bufferLength;return copy;}/// Tells you whether any [parse wrappers](#lr.ParserConfig.wrap)\n/// are registered for this parser.\nhasWrappers(){return this.wrappers.length>0;}/// Returns the name associated with a given term. This will only\n/// work for all terms when the parser was generated with the\n/// `--names` option. By default, only the names of tagged terms are\n/// stored.\ngetName(term){return this.termNames?this.termNames[term]:String(term<=this.maxNode&&this.nodeSet.types[term].name||term);}/// The eof term id is always allocated directly after the node\n/// types. @internal\nget eofTerm(){return this.maxNode+1;}/// The type of top node produced by the parser.\nget topNode(){return this.nodeSet.types[this.top[1]];}/// @internal\ndynamicPrecedence(term){let prec=this.dynamicPrecedences;return prec==null?0:prec[term]||0;}/// @internal\nparseDialect(dialect){let values=Object.keys(this.dialects),flags=values.map(()=>false);if(dialect)for(let part of dialect.split(\" \")){let id2=values.indexOf(part);if(id2>=0)flags[id2]=true;}let disabled=null;for(let i=0;i<values.length;i++)if(!flags[i]){for(let j=this.dialects[values[i]],id2;(id2=this.data[j++])!=65535;)(disabled||(disabled=new Uint8Array(this.maxTerm+1)))[id2]=1;}return new Dialect(dialect,flags,disabled);}/// Used by the output of the parser generator. Not available to\n/// user code. @hide\nstatic deserialize(spec){return new LRParser(spec);}/// @internal\nconstructor(spec){super();this.wrappers=[];if(spec.version!=14)throw new RangeError(`Parser version (${spec.version}) doesn't match runtime version (${14})`);let nodeNames=spec.nodeNames.split(\" \");this.minRepeatTerm=nodeNames.length;for(let i=0;i<spec.repeatNodeCount;i++)nodeNames.push(\"\");let topTerms=Object.keys(spec.topRules).map(r=>spec.topRules[r][1]);let nodeProps=[];for(let i=0;i<nodeNames.length;i++)nodeProps.push([]);function setProp(nodeID,prop,value){nodeProps[nodeID].push([prop,prop.deserialize(String(value))]);}if(spec.nodeProps)for(let propSpec of spec.nodeProps){let prop=propSpec[0];if(typeof prop==\"string\")prop=NodeProp[prop];for(let i=1;i<propSpec.length;){let next=propSpec[i++];if(next>=0){setProp(next,prop,propSpec[i++]);}else{let value=propSpec[i+-next];for(let j=-next;j>0;j--)setProp(propSpec[i++],prop,value);i++;}}}this.nodeSet=new NodeSet(nodeNames.map((name,i)=>NodeType.define({name:i>=this.minRepeatTerm?void 0:name,id:i,props:nodeProps[i],top:topTerms.indexOf(i)>-1,error:i==0,skipped:spec.skippedNodes&&spec.skippedNodes.indexOf(i)>-1})));if(spec.propSources)this.nodeSet=this.nodeSet.extend(...spec.propSources);this.strict=false;this.bufferLength=DefaultBufferLength;let tokenArray=decodeArray(spec.tokenData);this.context=spec.context;this.specializerSpecs=spec.specialized||[];this.specialized=new Uint16Array(this.specializerSpecs.length);for(let i=0;i<this.specializerSpecs.length;i++)this.specialized[i]=this.specializerSpecs[i].term;this.specializers=this.specializerSpecs.map(getSpecializer);this.states=decodeArray(spec.states,Uint32Array);this.data=decodeArray(spec.stateData);this.goto=decodeArray(spec.goto);this.maxTerm=spec.maxTerm;this.tokenizers=spec.tokenizers.map(value=>typeof value==\"number\"?new TokenGroup(tokenArray,value):value);this.topRules=spec.topRules;this.dialects=spec.dialects||{};this.dynamicPrecedences=spec.dynamicPrecedences||null;this.tokenPrecTable=spec.tokenPrec;this.termNames=spec.termNames||null;this.maxNode=this.nodeSet.types.length-1;this.dialect=this.parseDialect();this.top=this.topRules[Object.keys(this.topRules)[0]];}};function pair(data,off){return data[off]|data[off+1]<<16;}function findFinished(stacks){let best=null;for(let stack of stacks){let stopped=stack.p.stoppedAt;if((stack.pos==stack.p.stream.end||stopped!=null&&stack.pos>stopped)&&stack.p.parser.stateFlag(stack.state,2)&&(!best||best.score<stack.score))best=stack;}return best;}function getSpecializer(spec){if(spec.external){let mask=spec.extend?1:0;return(value,stack)=>spec.external(value,stack)<<1|mask;}return spec.get;}export{ContextTracker,ExternalTokenizer,InputStream,LRParser,LocalTokenGroup,Stack,};\nexport const __FramerMetadata__ = {\"exports\":{\"InputStream\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LocalTokenGroup\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ExternalTokenizer\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LRParser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"Stack\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ContextTracker\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./lezer_lr.map","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/css/dist/index.es.js\nimport{ExternalTokenizer,LRParser}from\"https://framerusercontent.com/modules/MiFWyNBz6FaRwOOEYJ4H/nqI70oaHl4AhH5rIUMv4/lezer_lr.js\";import{styleTags,tags}from\"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/seDszB8oQDQQyH7PIqkK/lezer_highlight.js\";var descendantOp=95;var Unit=1;var callee=96;var identifier=97;var VariableName=2;var space=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];var colon=58;var parenL=40;var underscore=95;var bracketL=91;var dash=45;var period=46;var hash=35;var percent=37;function isAlpha(ch){return ch>=65&&ch<=90||ch>=97&&ch<=122||ch>=161;}function isDigit(ch){return ch>=48&&ch<=57;}var identifiers=new ExternalTokenizer((input,stack)=>{for(let inside=false,dashes=0,i=0;;i++){let{next}=input;if(isAlpha(next)||next==dash||next==underscore||inside&&isDigit(next)){if(!inside&&(next!=dash||i>0))inside=true;if(dashes===i&&next==dash)dashes++;input.advance();}else{if(inside)input.acceptToken(next==parenL?callee:dashes==2&&stack.canShift(VariableName)?VariableName:identifier);break;}}});var descendant=new ExternalTokenizer(input=>{if(space.includes(input.peek(-1))){let{next}=input;if(isAlpha(next)||next==underscore||next==hash||next==period||next==bracketL||next==colon||next==dash)input.acceptToken(descendantOp);}});var unitToken=new ExternalTokenizer(input=>{if(!space.includes(input.peek(-1))){let{next}=input;if(next==percent){input.advance();input.acceptToken(Unit);}if(isAlpha(next)){do{input.advance();}while(isAlpha(input.next))input.acceptToken(Unit);}}});var cssHighlighting=styleTags({\"AtKeyword import charset namespace keyframes media supports\":tags.definitionKeyword,\"from to selector\":tags.keyword,NamespaceName:tags.namespace,KeyframeName:tags.labelName,KeyframeRangeName:tags.operatorKeyword,TagName:tags.tagName,ClassName:tags.className,PseudoClassName:tags.constant(tags.className),IdName:tags.labelName,\"FeatureName PropertyName\":tags.propertyName,AttributeName:tags.attributeName,NumberLiteral:tags.number,KeywordQuery:tags.keyword,UnaryQueryOp:tags.operatorKeyword,\"CallTag ValueName\":tags.atom,VariableName:tags.variableName,Callee:tags.operatorKeyword,Unit:tags.unit,\"UniversalSelector NestingSelector\":tags.definitionOperator,MatchOp:tags.compareOperator,\"ChildOp SiblingOp, LogicOp\":tags.logicOperator,BinOp:tags.arithmeticOperator,Important:tags.modifier,Comment:tags.blockComment,ColorLiteral:tags.color,\"ParenthesizedContent StringLiteral\":tags.string,\":\":tags.punctuation,\"PseudoOp #\":tags.derefOperator,\"; ,\":tags.separator,\"( )\":tags.paren,\"[ ]\":tags.squareBracket,\"{ }\":tags.brace});var spec_callee={__proto__:null,lang:32,\"nth-child\":32,\"nth-last-child\":32,\"nth-of-type\":32,\"nth-last-of-type\":32,dir:32,\"host-context\":32,url:60,\"url-prefix\":60,domain:60,regexp:60,selector:134};var spec_AtKeyword={__proto__:null,\"@import\":114,\"@media\":138,\"@charset\":142,\"@namespace\":146,\"@keyframes\":152,\"@supports\":164};var spec_identifier={__proto__:null,not:128,only:128};var parser=LRParser.deserialize({version:14,states:\"8`QYQ[OOO#_Q[OOOOQP'#Cd'#CdOOQP'#Cc'#CcO#fQ[O'#CfO$YQXO'#CaO$aQ[O'#ChO$lQ[O'#DPO$qQ[O'#DTOOQP'#Ee'#EeO$vQdO'#DeO%bQ[O'#DrO$vQdO'#DtO%sQ[O'#DvO&OQ[O'#DyO&WQ[O'#EPO&fQ[O'#EROOQS'#Ed'#EdOOQS'#ET'#ETQYQ[OOO&mQXO'#CdO'bQWO'#DaO'gQWO'#EkO'rQ[O'#EkQOQWOOOOQP'#Cg'#CgOOQP,59Q,59QO#fQ[O,59QO'|Q[O'#EWO(hQWO,58{O(pQ[O,59SO$lQ[O,59kO$qQ[O,59oO'|Q[O,59sO'|Q[O,59uO'|Q[O,59vO({Q[O'#D`OOQS,58{,58{OOQP'#Ck'#CkOOQO'#C}'#C}OOQP,59S,59SO)SQWO,59SO)XQWO,59SOOQP'#DR'#DROOQP,59k,59kOOQO'#DV'#DVO)^Q`O,59oOOQS'#Cp'#CpO$vQdO'#CqO)fQvO'#CsO*sQtO,5:POOQO'#Cx'#CxO)XQWO'#CwO+XQWO'#CyOOQS'#Eh'#EhOOQO'#Dh'#DhO+^Q[O'#DoO+lQWO'#ElO&WQ[O'#DmO+zQWO'#DpOOQO'#Em'#EmO(kQWO,5:^O,PQpO,5:`OOQS'#Dx'#DxO,XQWO,5:bO,^Q[O,5:bOOQO'#D{'#D{O,fQWO,5:eO,kQWO,5:kO,sQWO,5:mOOQS-E8R-E8RO$vQdO,59{O,{Q[O'#EYO-YQWO,5;VO-YQWO,5;VOOQP1G.l1G.lO.PQXO,5:rOOQO-E8U-E8UOOQS1G.g1G.gOOQP1G.n1G.nO)SQWO1G.nO)XQWO1G.nOOQP1G/V1G/VO.^Q`O1G/ZO.wQXO1G/_O/_QXO1G/aO/uQXO1G/bO0]QWO,59zO0bQ[O'#DOO0iQdO'#CoOOQP1G/Z1G/ZO$vQdO1G/ZO0pQpO,59]OOQS,59_,59_O$vQdO,59aO0xQWO1G/kOOQS,59c,59cO0}Q!bO,59eO1VQWO'#DhO1bQWO,5:TO1gQWO,5:ZO&WQ[O,5:VO&WQ[O'#EZO1oQWO,5;WO1zQWO,5:XO'|Q[O,5:[OOQS1G/x1G/xOOQS1G/z1G/zOOQS1G/|1G/|O2]QWO1G/|O2bQdO'#D|OOQS1G0P1G0POOQS1G0V1G0VOOQS1G0X1G0XO2mQtO1G/gOOQO,5:t,5:tO3TQ[O,5:tOOQO-E8W-E8WO3bQWO1G0qOOQP7+$Y7+$YOOQP7+$u7+$uO$vQdO7+$uOOQS1G/f1G/fO3mQXO'#EjO3tQWO,59jO3yQtO'#EUO4nQdO'#EgO4xQWO,59ZO4}QpO7+$uOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%V7+%VO5VQWO1G/PO$vQdO1G/oOOQO1G/u1G/uOOQO1G/q1G/qO5[QWO,5:uOOQO-E8X-E8XO5jQXO1G/vOOQS7+%h7+%hO5qQYO'#CsOOQO'#EO'#EOO5|Q`O'#D}OOQO'#D}'#D}O6XQWO'#E[O6aQdO,5:hOOQS,5:h,5:hO6lQtO'#EXO$vQdO'#EXO7jQdO7+%ROOQO7+%R7+%ROOQO1G0`1G0`O7}QpO<<HaO8VQWO,5;UOOQP1G/U1G/UOOQS-E8S-E8SO$vQdO'#EVO8_QWO,5;ROOQT1G.u1G.uOOQP<<Ha<<HaOOQS7+$k7+$kO8gQdO7+%ZOOQO7+%b7+%bOOQO,5:i,5:iO2eQdO'#E]O6XQWO,5:vOOQS,5:v,5:vOOQS-E8Y-E8YOOQS1G0S1G0SO8nQtO,5:sOOQS-E8V-E8VOOQO<<Hm<<HmOOQPAN={AN={O9lQdO,5:qOOQO-E8T-E8TOOQO<<Hu<<HuOOQO,5:w,5:wOOQO-E8Z-E8ZOOQS1G0b1G0b\",stateData:\":O~O#VOSROS~OUXOXXO]UO^UOtVOxWO!Y`O!ZYO!gZO!i[O!k]O!n^O!t_O#TQO#YSO~OQeOUXOXXO]UO^UOtVOxWO!Y`O!ZYO!gZO!i[O!k]O!n^O!t_O#TdO#YSO~O#Q#_P~P!ZO#TiO~O]nO^nOplOtoOxpO|qO!PsO#RrO#YkO~O!RtO~P#kO`zO#SwO#TvO~O#T{O~O#T}O~OQ!WOb!QOf!WOh!WOn!VO#S!TO#T!PO#]!RO~Ob!YO!b![O!e!]O#T!XO!R#`P~Oh!bOn!VO#T!aO~Oh!dO#T!dO~Ob!YO!b![O!e!]O#T!XO~O!W#`P~P%bO]WX]!UX^WXpWXtWXxWX|WX!PWX!RWX#RWX#YWX~O]!iO~O!W!jO#Q#_X!Q#_X~O#Q#_X!Q#_X~P!ZOUXOXXO]UO^UOtVOxWO#TQO#YSO~OplO!RtO~O`!sO#SwO#TvO~O!Q#_P~P!ZOb!zO~Ob!{O~Ov!|Oz!}O~OP#PObgXjgX!WgX!bgX!egX#TgXagXQgXfgXhgXngXpgX!VgX#QgX#SgX#]gXvgX!QgX~Ob!YOj#QO!b![O!e!]O#T!XO!W#`P~Ob#TO~Ob!YO!b![O!e!]O#T#UO~Op#YO!`#XO!R#`X!W#`X~Ob#]O~Oj#QO!W#_O~O!W#`O~Oh#aOn!VO~O!R#bO~O!RtO!`#XO~O!RtO!W#eO~O!W!|X#Q!|X!Q!|X~P!ZO!W!jO#Q#_a!Q#_a~O]nO^nOtoOxpO|qO!PsO#RrO#YkO~Op!za!R!zaa!za~P-eOv#lOz#mO~O]nO^nOtoOxpO#YkO~Op{i|{i!P{i!R{i#R{ia{i~P.fOp}i|}i!P}i!R}i#R}ia}i~P.fOp!Oi|!Oi!P!Oi!R!Oi#R!Oia!Oi~P.fO!Q#nO~Oa#^P~P'|Oa#ZP~P$vOa#uOj#QO~O!W#wO~Oh#xOo#xO~O]!^Xa![X!`![X~O]#yO~Oa#zO!`#XO~Op#YO!R#`a!W#`a~O!`#XOp!aa!R!aa!W!aaa!aa~O!W$PO~O!Q$WO#T$RO#]$QO~Oj#QOp$YO!V$[O!W!Ti#Q!Ti!Q!Ti~P$vO!W!|a#Q!|a!Q!|a~P!ZO!W!jO#Q#_i!Q#_i~Oa#^X~P#kOa$`O~Oj#QOQ!xXa!xXb!xXf!xXh!xXn!xXp!xX#S!xX#T!xX#]!xX~Op$bOa#ZX~P$vOa$dO~Oj#QOv$eO~Oa$fO~O!`#XOp!}a!R!}a!W!}a~Oa$hO~P-eOP#POpgX!RgX~O#]$QOp!qX!R!qX~Op$jO!RtO~O!Q$nO#T$RO#]$QO~Oj#QOQ!{Xb!{Xf!{Xh!{Xn!{Xp!{X!V!{X!W!{X#Q!{X#S!{X#T!{X#]!{X!Q!{X~Op$YO!V$qO!W!Tq#Q!Tq!Q!Tq~P$vOj#QOv$rO~OplOa#^a~Op$bOa#Za~Oa$uO~P$vOj#QOQ!{ab!{af!{ah!{an!{ap!{a!V!{a!W!{a#Q!{a#S!{a#T!{a#]!{a!Q!{a~Oa!yap!ya~P$vO#VoR#]j!Pj~\",goto:\",z#bPPPPP#cP#l#{P#l$[#lPP$bPPP$h$q$qP%TP$qP$q%o&RPPP&k&q#lP&wP#lP&}P#lP#l#lPPP'T'j'wPP#cPP(O(O(Y(OP(OP(O(OP#cP#cP#cP(]#cP(`(c(f(m#cP#cP(r)R)a)g)q)w*R*X*_PPPPPP*e*nP+Z+^P,S,V,],f_aOPcgt!j#hkXOPcglqrst!j!z#]#hkROPcglqrst!j!z#]#hQjSR!mkQxUR!qnQ!qzQ#S!UR#k!sq!WY[!Q!i!{!}#Q#f#m#r#y$Y$Z$b$g$sp!WY[!Q!i!{!}#Q#f#m#r#y$Y$Z$b$g$sU$T#b$V$jR$i$Sq!UY[!Q!i!{!}#Q#f#m#r#y$Y$Z$b$g$sp!WY[!Q!i!{!}#Q#f#m#r#y$Y$Z$b$g$sQ!b]R#a!cQyUR!rnQ!qyR#k!rQ|VR!toQ!OWR!upQuTQ!pmQ#^!_Q#d!fQ#e!gQ$l$UR$x$kSfPtQ!lgQ#g!jR$]#hZePgt!j#ha!^Z_`!S!Y![#X#YR#V!YR!c]R!e^R#c!eS$U#b$VR$v$jV$S#b$V$jQcOSgPtU!hcg#hR#h!jQ#r!{U$a#r$g$sQ$g#yR$s$bQ$c#rR$t$cQmTS!om$_R$_#oQ$Z#fR$p$ZQ!kfS#i!k#jR#j!lQ#Z!ZR#}#ZQ$V#bR$m$VQ$k$UR$w$k_bOPcgt!j#h^TOPcgt!j#hQ!nlQ!vqQ!wrQ!xsQ#o!zR$O#]R#s!{Q!SYQ!`[Q#O!QQ#f!i[#q!{#r#y$b$g$sQ#t!}Q#v#QS$X#f$ZQ$^#mR$o$YR#p!zQhPR!ytQ!_ZQ!g`R#R!SU!ZZ`!SQ!f_Q#W!YQ#[![Q#{#XR#|#Y\",nodeNames:\"⚠ Unit VariableName Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee CallLiteral CallTag ParenthesizedContent , PseudoClassName ArgList IdSelector # IdName ] AttributeSelector [ AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp } { Block Declaration PropertyName Important ; ImportStatement AtKeyword import KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports AtRule Styles\",maxTerm:109,nodeProps:[[\"openedBy\",17,\"(\",48,\"{\"],[\"closedBy\",18,\")\",49,\"}\"]],propSources:[cssHighlighting],skippedNodes:[0,3],repeatNodeCount:9,tokenData:\"Lq~R!^OX$}X^%u^p$}pq%uqr)Xrs.Rst/utu6duv$}vw7^wx7oxy9^yz9oz{9t{|:_|}?Q}!O?c!O!P@Q!P!Q@i!Q![Cu![!]Dp!]!^El!^!_$}!_!`E}!`!aF`!a!b$}!b!cG[!c!}$}!}#OHt#O#P$}#P#QIV#Q#R6d#R#T$}#T#UIh#U#c$}#c#dJy#d#o$}#o#pK`#p#q6d#q#rKq#r#sLS#s#y$}#y#z%u#z$f$}$f$g%u$g#BY$}#BY#BZ%u#BZ$IS$}$IS$I_%u$I_$I|$}$I|$JO%u$JO$JT$}$JT$JU%u$JU$KV$}$KV$KW%u$KW&FU$}&FU&FV%u&FV;'S$};'S;=`Lk<%lO$}W%QSOy%^z;'S%^;'S;=`%o<%lO%^W%cSoWOy%^z;'S%^;'S;=`%o<%lO%^W%rP;=`<%l%^~%zh#V~OX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^~'mh#V~oWOX%^X^'f^p%^pq'fqy%^z#y%^#y#z'f#z$f%^$f$g'f$g#BY%^#BY#BZ'f#BZ$IS%^$IS$I_'f$I_$I|%^$I|$JO'f$JO$JT%^$JT$JU'f$JU$KV%^$KV$KW'f$KW&FU%^&FU&FV'f&FV;'S%^;'S;=`%o<%lO%^^)[UOy%^z#]%^#]#^)n#^;'S%^;'S;=`%o<%lO%^^)sUoWOy%^z#a%^#a#b*V#b;'S%^;'S;=`%o<%lO%^^*[UoWOy%^z#d%^#d#e*n#e;'S%^;'S;=`%o<%lO%^^*sUoWOy%^z#c%^#c#d+V#d;'S%^;'S;=`%o<%lO%^^+[UoWOy%^z#f%^#f#g+n#g;'S%^;'S;=`%o<%lO%^^+sUoWOy%^z#h%^#h#i,V#i;'S%^;'S;=`%o<%lO%^^,[UoWOy%^z#T%^#T#U,n#U;'S%^;'S;=`%o<%lO%^^,sUoWOy%^z#b%^#b#c-V#c;'S%^;'S;=`%o<%lO%^^-[UoWOy%^z#h%^#h#i-n#i;'S%^;'S;=`%o<%lO%^^-uS!VUoWOy%^z;'S%^;'S;=`%o<%lO%^~.UWOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o<%lO.R~.sOh~~.vRO;'S.R;'S;=`/P;=`O.R~/SXOY.RZr.Rrs.ns#O.R#O#P.s#P;'S.R;'S;=`/o;=`<%l.R<%lO.R~/rP;=`<%l.R_/zYtPOy%^z!Q%^!Q![0j![!c%^!c!i0j!i#T%^#T#Z0j#Z;'S%^;'S;=`%o<%lO%^^0oYoWOy%^z!Q%^!Q![1_![!c%^!c!i1_!i#T%^#T#Z1_#Z;'S%^;'S;=`%o<%lO%^^1dYoWOy%^z!Q%^!Q![2S![!c%^!c!i2S!i#T%^#T#Z2S#Z;'S%^;'S;=`%o<%lO%^^2ZYfUoWOy%^z!Q%^!Q![2y![!c%^!c!i2y!i#T%^#T#Z2y#Z;'S%^;'S;=`%o<%lO%^^3QYfUoWOy%^z!Q%^!Q![3p![!c%^!c!i3p!i#T%^#T#Z3p#Z;'S%^;'S;=`%o<%lO%^^3uYoWOy%^z!Q%^!Q![4e![!c%^!c!i4e!i#T%^#T#Z4e#Z;'S%^;'S;=`%o<%lO%^^4lYfUoWOy%^z!Q%^!Q![5[![!c%^!c!i5[!i#T%^#T#Z5[#Z;'S%^;'S;=`%o<%lO%^^5aYoWOy%^z!Q%^!Q![6P![!c%^!c!i6P!i#T%^#T#Z6P#Z;'S%^;'S;=`%o<%lO%^^6WSfUoWOy%^z;'S%^;'S;=`%o<%lO%^Y6gUOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^Y7QSzQoWOy%^z;'S%^;'S;=`%o<%lO%^X7cSXPOy%^z;'S%^;'S;=`%o<%lO%^~7rWOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W<%lO7o~8_RO;'S7o;'S;=`8h;=`O7o~8kXOY7oZw7owx.nx#O7o#O#P8[#P;'S7o;'S;=`9W;=`<%l7o<%lO7o~9ZP;=`<%l7o_9cSbVOy%^z;'S%^;'S;=`%o<%lO%^~9tOa~_9{UUPjSOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^_:fWjS!PPOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^^;TUoWOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^^;nYoW#]UOy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^^<cYoWOy%^z{%^{|=R|}%^}!O=R!O!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^^=WUoWOy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^^=qUoW#]UOy%^z!Q%^!Q![=j![;'S%^;'S;=`%o<%lO%^^>[[oW#]UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^_?VSpVOy%^z;'S%^;'S;=`%o<%lO%^^?hWjSOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^_@VU#YPOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjSOy%^z{@}{;'S%^;'S;=`%o<%lO%^~ASUoWOy@}yzAfz{Bm{;'S@};'S;=`Co<%lO@}~AiTOzAfz{Ax{;'SAf;'S;=`Bg<%lOAf~A{VOzAfz{Ax{!PAf!P!QBb!Q;'SAf;'S;=`Bg<%lOAf~BgOR~~BjP;=`<%lAf~BrWoWOy@}yzAfz{Bm{!P@}!P!QC[!Q;'S@};'S;=`Co<%lO@}~CcSoWR~Oy%^z;'S%^;'S;=`%o<%lO%^~CrP;=`<%l@}^Cz[#]UOy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^XDuU]POy%^z![%^![!]EX!];'S%^;'S;=`%o<%lO%^XE`S^PoWOy%^z;'S%^;'S;=`%o<%lO%^_EqS!WVOy%^z;'S%^;'S;=`%o<%lO%^YFSSzQOy%^z;'S%^;'S;=`%o<%lO%^XFeU|POy%^z!`%^!`!aFw!a;'S%^;'S;=`%o<%lO%^XGOS|PoWOy%^z;'S%^;'S;=`%o<%lO%^XG_WOy%^z!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHO[!YPoWOy%^z}%^}!OGw!O!Q%^!Q![Gw![!c%^!c!}Gw!}#T%^#T#oGw#o;'S%^;'S;=`%o<%lO%^XHySxPOy%^z;'S%^;'S;=`%o<%lO%^^I[SvUOy%^z;'S%^;'S;=`%o<%lO%^XIkUOy%^z#b%^#b#cI}#c;'S%^;'S;=`%o<%lO%^XJSUoWOy%^z#W%^#W#XJf#X;'S%^;'S;=`%o<%lO%^XJmS!`PoWOy%^z;'S%^;'S;=`%o<%lO%^XJ|UOy%^z#f%^#f#gJf#g;'S%^;'S;=`%o<%lO%^ZKeS!RROy%^z;'S%^;'S;=`%o<%lO%^_KvS!QVOy%^z;'S%^;'S;=`%o<%lO%^ZLXU!PPOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^WLnP;=`<%l$}\",tokenizers:[descendant,unitToken,identifiers,0,1,2,3],topRules:{StyleSheet:[0,4],Styles:[1,84]},specialized:[{term:96,get:value=>spec_callee[value]||-1},{term:56,get:value=>spec_AtKeyword[value]||-1},{term:97,get:value=>spec_identifier[value]||-1}],tokenPrec:1142});export{parser};\nexport const __FramerMetadata__ = {\"exports\":{\"parser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/lang-css/dist/index.js\nimport{parser}from\"https://framerusercontent.com/modules/baxvQBtmpZ5GFXZ1GP2Q/H0MWM2nOs0wKqaypim0h/lezer_css.js\";import{syntaxTree,LRLanguage,indentNodeProp,continuedIndent,foldNodeProp,foldInside,LanguageSupport}from\"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/O6D7zESNv8FU9mcfHZ5S/codemirror_language.js\";import{NodeWeakMap,IterMode}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/ye873rtFsAyZVFu9x2He/lezer_common.js\";var _properties=null;function properties(){if(!_properties&&typeof document==\"object\"&&document.body){let{style}=document.body,names=[],seen=/* @__PURE__ */new Set;for(let prop in style)if(prop!=\"cssText\"&&prop!=\"cssFloat\"){if(typeof style[prop]==\"string\"){if(/[A-Z]/.test(prop))prop=prop.replace(/[A-Z]/g,ch=>\"-\"+ch.toLowerCase());if(!seen.has(prop)){names.push(prop);seen.add(prop);}}}_properties=names.sort().map(name=>({type:\"property\",label:name}));}return _properties||[];}var pseudoClasses=/* @__PURE__ */[\"active\",\"after\",\"any-link\",\"autofill\",\"backdrop\",\"before\",\"checked\",\"cue\",\"default\",\"defined\",\"disabled\",\"empty\",\"enabled\",\"file-selector-button\",\"first\",\"first-child\",\"first-letter\",\"first-line\",\"first-of-type\",\"focus\",\"focus-visible\",\"focus-within\",\"fullscreen\",\"has\",\"host\",\"host-context\",\"hover\",\"in-range\",\"indeterminate\",\"invalid\",\"is\",\"lang\",\"last-child\",\"last-of-type\",\"left\",\"link\",\"marker\",\"modal\",\"not\",\"nth-child\",\"nth-last-child\",\"nth-last-of-type\",\"nth-of-type\",\"only-child\",\"only-of-type\",\"optional\",\"out-of-range\",\"part\",\"placeholder\",\"placeholder-shown\",\"read-only\",\"read-write\",\"required\",\"right\",\"root\",\"scope\",\"selection\",\"slotted\",\"target\",\"target-text\",\"valid\",\"visited\",\"where\"].map(name=>({type:\"class\",label:name}));var values=/* @__PURE__ */[\"above\",\"absolute\",\"activeborder\",\"additive\",\"activecaption\",\"after-white-space\",\"ahead\",\"alias\",\"all\",\"all-scroll\",\"alphabetic\",\"alternate\",\"always\",\"antialiased\",\"appworkspace\",\"asterisks\",\"attr\",\"auto\",\"auto-flow\",\"avoid\",\"avoid-column\",\"avoid-page\",\"avoid-region\",\"axis-pan\",\"background\",\"backwards\",\"baseline\",\"below\",\"bidi-override\",\"blink\",\"block\",\"block-axis\",\"bold\",\"bolder\",\"border\",\"border-box\",\"both\",\"bottom\",\"break\",\"break-all\",\"break-word\",\"bullets\",\"button\",\"button-bevel\",\"buttonface\",\"buttonhighlight\",\"buttonshadow\",\"buttontext\",\"calc\",\"capitalize\",\"caps-lock-indicator\",\"caption\",\"captiontext\",\"caret\",\"cell\",\"center\",\"checkbox\",\"circle\",\"cjk-decimal\",\"clear\",\"clip\",\"close-quote\",\"col-resize\",\"collapse\",\"color\",\"color-burn\",\"color-dodge\",\"column\",\"column-reverse\",\"compact\",\"condensed\",\"contain\",\"content\",\"contents\",\"content-box\",\"context-menu\",\"continuous\",\"copy\",\"counter\",\"counters\",\"cover\",\"crop\",\"cross\",\"crosshair\",\"currentcolor\",\"cursive\",\"cyclic\",\"darken\",\"dashed\",\"decimal\",\"decimal-leading-zero\",\"default\",\"default-button\",\"dense\",\"destination-atop\",\"destination-in\",\"destination-out\",\"destination-over\",\"difference\",\"disc\",\"discard\",\"disclosure-closed\",\"disclosure-open\",\"document\",\"dot-dash\",\"dot-dot-dash\",\"dotted\",\"double\",\"down\",\"e-resize\",\"ease\",\"ease-in\",\"ease-in-out\",\"ease-out\",\"element\",\"ellipse\",\"ellipsis\",\"embed\",\"end\",\"ethiopic-abegede-gez\",\"ethiopic-halehame-aa-er\",\"ethiopic-halehame-gez\",\"ew-resize\",\"exclusion\",\"expanded\",\"extends\",\"extra-condensed\",\"extra-expanded\",\"fantasy\",\"fast\",\"fill\",\"fill-box\",\"fixed\",\"flat\",\"flex\",\"flex-end\",\"flex-start\",\"footnotes\",\"forwards\",\"from\",\"geometricPrecision\",\"graytext\",\"grid\",\"groove\",\"hand\",\"hard-light\",\"help\",\"hidden\",\"hide\",\"higher\",\"highlight\",\"highlighttext\",\"horizontal\",\"hsl\",\"hsla\",\"hue\",\"icon\",\"ignore\",\"inactiveborder\",\"inactivecaption\",\"inactivecaptiontext\",\"infinite\",\"infobackground\",\"infotext\",\"inherit\",\"initial\",\"inline\",\"inline-axis\",\"inline-block\",\"inline-flex\",\"inline-grid\",\"inline-table\",\"inset\",\"inside\",\"intrinsic\",\"invert\",\"italic\",\"justify\",\"keep-all\",\"landscape\",\"large\",\"larger\",\"left\",\"level\",\"lighter\",\"lighten\",\"line-through\",\"linear\",\"linear-gradient\",\"lines\",\"list-item\",\"listbox\",\"listitem\",\"local\",\"logical\",\"loud\",\"lower\",\"lower-hexadecimal\",\"lower-latin\",\"lower-norwegian\",\"lowercase\",\"ltr\",\"luminosity\",\"manipulation\",\"match\",\"matrix\",\"matrix3d\",\"medium\",\"menu\",\"menutext\",\"message-box\",\"middle\",\"min-intrinsic\",\"mix\",\"monospace\",\"move\",\"multiple\",\"multiple_mask_images\",\"multiply\",\"n-resize\",\"narrower\",\"ne-resize\",\"nesw-resize\",\"no-close-quote\",\"no-drop\",\"no-open-quote\",\"no-repeat\",\"none\",\"normal\",\"not-allowed\",\"nowrap\",\"ns-resize\",\"numbers\",\"numeric\",\"nw-resize\",\"nwse-resize\",\"oblique\",\"opacity\",\"open-quote\",\"optimizeLegibility\",\"optimizeSpeed\",\"outset\",\"outside\",\"outside-shape\",\"overlay\",\"overline\",\"padding\",\"padding-box\",\"painted\",\"page\",\"paused\",\"perspective\",\"pinch-zoom\",\"plus-darker\",\"plus-lighter\",\"pointer\",\"polygon\",\"portrait\",\"pre\",\"pre-line\",\"pre-wrap\",\"preserve-3d\",\"progress\",\"push-button\",\"radial-gradient\",\"radio\",\"read-only\",\"read-write\",\"read-write-plaintext-only\",\"rectangle\",\"region\",\"relative\",\"repeat\",\"repeating-linear-gradient\",\"repeating-radial-gradient\",\"repeat-x\",\"repeat-y\",\"reset\",\"reverse\",\"rgb\",\"rgba\",\"ridge\",\"right\",\"rotate\",\"rotate3d\",\"rotateX\",\"rotateY\",\"rotateZ\",\"round\",\"row\",\"row-resize\",\"row-reverse\",\"rtl\",\"run-in\",\"running\",\"s-resize\",\"sans-serif\",\"saturation\",\"scale\",\"scale3d\",\"scaleX\",\"scaleY\",\"scaleZ\",\"screen\",\"scroll\",\"scrollbar\",\"scroll-position\",\"se-resize\",\"self-start\",\"self-end\",\"semi-condensed\",\"semi-expanded\",\"separate\",\"serif\",\"show\",\"single\",\"skew\",\"skewX\",\"skewY\",\"skip-white-space\",\"slide\",\"slider-horizontal\",\"slider-vertical\",\"sliderthumb-horizontal\",\"sliderthumb-vertical\",\"slow\",\"small\",\"small-caps\",\"small-caption\",\"smaller\",\"soft-light\",\"solid\",\"source-atop\",\"source-in\",\"source-out\",\"source-over\",\"space\",\"space-around\",\"space-between\",\"space-evenly\",\"spell-out\",\"square\",\"start\",\"static\",\"status-bar\",\"stretch\",\"stroke\",\"stroke-box\",\"sub\",\"subpixel-antialiased\",\"svg_masks\",\"super\",\"sw-resize\",\"symbolic\",\"symbols\",\"system-ui\",\"table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row\",\"table-row-group\",\"text\",\"text-bottom\",\"text-top\",\"textarea\",\"textfield\",\"thick\",\"thin\",\"threeddarkshadow\",\"threedface\",\"threedhighlight\",\"threedlightshadow\",\"threedshadow\",\"to\",\"top\",\"transform\",\"translate\",\"translate3d\",\"translateX\",\"translateY\",\"translateZ\",\"transparent\",\"ultra-condensed\",\"ultra-expanded\",\"underline\",\"unidirectional-pan\",\"unset\",\"up\",\"upper-latin\",\"uppercase\",\"url\",\"var\",\"vertical\",\"vertical-text\",\"view-box\",\"visible\",\"visibleFill\",\"visiblePainted\",\"visibleStroke\",\"visual\",\"w-resize\",\"wait\",\"wave\",\"wider\",\"window\",\"windowframe\",\"windowtext\",\"words\",\"wrap\",\"wrap-reverse\",\"x-large\",\"x-small\",\"xor\",\"xx-large\",\"xx-small\"].map(name=>({type:\"keyword\",label:name})).concat(/* @__PURE__ */[\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"grey\",\"green\",\"greenyellow\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"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\",\"rebeccapurple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\"].map(name=>({type:\"constant\",label:name})));var tags=/* @__PURE__ */[\"a\",\"abbr\",\"address\",\"article\",\"aside\",\"b\",\"bdi\",\"bdo\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"figcaption\",\"figure\",\"footer\",\"form\",\"header\",\"hgroup\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"label\",\"legend\",\"li\",\"main\",\"meter\",\"nav\",\"ol\",\"output\",\"p\",\"pre\",\"ruby\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"tr\",\"u\",\"ul\"].map(name=>({type:\"type\",label:name}));var identifier=/^(\\w[\\w-]*|-\\w[\\w-]*|)$/;var variable=/^-(-[\\w-]*)?$/;function isVarArg(node,doc){var _a;if(node.name==\"(\"||node.type.isError)node=node.parent||node;if(node.name!=\"ArgList\")return false;let callee=(_a=node.parent)===null||_a===void 0?void 0:_a.firstChild;if((callee===null||callee===void 0?void 0:callee.name)!=\"Callee\")return false;return doc.sliceString(callee.from,callee.to)==\"var\";}var VariablesByNode=/* @__PURE__ */new NodeWeakMap;var declSelector=[\"Declaration\"];function astTop(node){for(let cur=node;;){if(cur.type.isTop)return cur;if(!(cur=cur.parent))return node;}}function variableNames(doc,node,isVariable){if(node.to-node.from>4096){let known=VariablesByNode.get(node);if(known)return known;let result=[],seen=/* @__PURE__ */new Set,cursor=node.cursor(IterMode.IncludeAnonymous);if(cursor.firstChild())do{for(let option of variableNames(doc,cursor.node,isVariable))if(!seen.has(option.label)){seen.add(option.label);result.push(option);}}while(cursor.nextSibling())VariablesByNode.set(node,result);return result;}else{let result=[],seen=/* @__PURE__ */new Set;node.cursor().iterate(node2=>{var _a;if(isVariable(node2)&&node2.matchContext(declSelector)&&((_a=node2.node.nextSibling)===null||_a===void 0?void 0:_a.name)==\":\"){let name=doc.sliceString(node2.from,node2.to);if(!seen.has(name)){seen.add(name);result.push({label:name,type:\"variable\"});}}});return result;}}var defineCSSCompletionSource=isVariable=>context=>{let{state,pos}=context,node=syntaxTree(state).resolveInner(pos,-1);let isDash=node.type.isError&&node.from==node.to-1&&state.doc.sliceString(node.from,node.to)==\"-\";if(node.name==\"PropertyName\"||(isDash||node.name==\"TagName\")&&/^(Block|Styles)$/.test(node.resolve(node.to).name))return{from:node.from,options:properties(),validFor:identifier};if(node.name==\"ValueName\")return{from:node.from,options:values,validFor:identifier};if(node.name==\"PseudoClassName\")return{from:node.from,options:pseudoClasses,validFor:identifier};if(isVariable(node)||(context.explicit||isDash)&&isVarArg(node,state.doc))return{from:isVariable(node)||isDash?node.from:pos,options:variableNames(state.doc,astTop(node),isVariable),validFor:variable};if(node.name==\"TagName\"){for(let{parent}=node;parent;parent=parent.parent)if(parent.name==\"Block\")return{from:node.from,options:properties(),validFor:identifier};return{from:node.from,options:tags,validFor:identifier};}if(!context.explicit)return null;let above=node.resolve(pos),before=above.childBefore(pos);if(before&&before.name==\":\"&&above.name==\"PseudoClassSelector\")return{from:pos,options:pseudoClasses,validFor:identifier};if(before&&before.name==\":\"&&above.name==\"Declaration\"||above.name==\"ArgList\")return{from:pos,options:values,validFor:identifier};if(above.name==\"Block\"||above.name==\"Styles\")return{from:pos,options:properties(),validFor:identifier};return null;};var cssCompletionSource=/* @__PURE__ */defineCSSCompletionSource(n=>n.name==\"VariableName\");var cssLanguage=/* @__PURE__ */LRLanguage.define({name:\"css\",parser:/* @__PURE__ */parser.configure({props:[/* @__PURE__ */indentNodeProp.add({Declaration:/* @__PURE__ */continuedIndent()}),/* @__PURE__ */foldNodeProp.add({Block:foldInside})]}),languageData:{commentTokens:{block:{open:\"/*\",close:\"*/\"}},indentOnInput:/^\\s*\\}$/,wordChars:\"-\"}});function css(){return new LanguageSupport(cssLanguage,cssLanguage.data.of({autocomplete:cssCompletionSource}));}export{css,cssCompletionSource,cssLanguage,defineCSSCompletionSource};\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"cssCompletionSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defineCSSCompletionSource\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"cssLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/html/dist/index.es.js\nimport{ContextTracker,ExternalTokenizer,LRParser}from\"https://framerusercontent.com/modules/MiFWyNBz6FaRwOOEYJ4H/nqI70oaHl4AhH5rIUMv4/lezer_lr.js\";import{styleTags,tags}from\"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/seDszB8oQDQQyH7PIqkK/lezer_highlight.js\";import{parseMixed}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/ye873rtFsAyZVFu9x2He/lezer_common.js\";var scriptText=54;var StartCloseScriptTag=1;var styleText=55;var StartCloseStyleTag=2;var textareaText=56;var StartCloseTextareaTag=3;var EndTag=4;var SelfClosingEndTag=5;var StartTag=6;var StartScriptTag=7;var StartStyleTag=8;var StartTextareaTag=9;var StartSelfClosingTag=10;var StartCloseTag=11;var NoMatchStartCloseTag=12;var MismatchedStartCloseTag=13;var missingCloseTag=57;var IncompleteCloseTag=14;var commentContent$1=58;var Element=20;var TagName=22;var Attribute=23;var AttributeName=24;var AttributeValue=26;var UnquotedAttributeValue=27;var ScriptText=28;var StyleText=31;var TextareaText=34;var OpenTag=36;var CloseTag=37;var Dialect_noMatch=0;var Dialect_selfClosing=1;var selfClosers={area:true,base:true,br:true,col:true,command:true,embed:true,frame:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true,menuitem:true};var implicitlyClosed={dd:true,li:true,optgroup:true,option:true,p:true,rp:true,rt:true,tbody:true,td:true,tfoot:true,th:true,tr:true};var closeOnOpen={dd:{dd:true,dt:true},dt:{dd:true,dt:true},li:{li:true},option:{option:true,optgroup:true},optgroup:{optgroup:true},p:{address:true,article:true,aside:true,blockquote:true,dir:true,div:true,dl:true,fieldset:true,footer:true,form:true,h1:true,h2:true,h3:true,h4:true,h5:true,h6:true,header:true,hgroup:true,hr:true,menu:true,nav:true,ol:true,p:true,pre:true,section:true,table:true,ul:true},rp:{rp:true,rt:true},rt:{rp:true,rt:true},tbody:{tbody:true,tfoot:true},td:{td:true,th:true},tfoot:{tbody:true},th:{td:true,th:true},thead:{tbody:true,tfoot:true},tr:{tr:true}};function nameChar(ch){return ch==45||ch==46||ch==58||ch>=65&&ch<=90||ch==95||ch>=97&&ch<=122||ch>=161;}function isSpace(ch){return ch==9||ch==10||ch==13||ch==32;}var cachedName=null;var cachedInput=null;var cachedPos=0;function tagNameAfter(input,offset){let pos=input.pos+offset;if(cachedPos==pos&&cachedInput==input)return cachedName;let next=input.peek(offset);while(isSpace(next))next=input.peek(++offset);let name=\"\";for(;;){if(!nameChar(next))break;name+=String.fromCharCode(next);next=input.peek(++offset);}cachedInput=input;cachedPos=pos;return cachedName=name?name.toLowerCase():next==question||next==bang?void 0:null;}var lessThan=60;var greaterThan=62;var slash=47;var question=63;var bang=33;var dash=45;function ElementContext(name,parent){this.name=name;this.parent=parent;this.hash=parent?parent.hash:0;for(let i=0;i<name.length;i++)this.hash+=(this.hash<<4)+name.charCodeAt(i)+(name.charCodeAt(i)<<8);}var startTagTerms=[StartTag,StartSelfClosingTag,StartScriptTag,StartStyleTag,StartTextareaTag];var elementContext=new ContextTracker({start:null,shift(context,term,stack,input){return startTagTerms.indexOf(term)>-1?new ElementContext(tagNameAfter(input,1)||\"\",context):context;},reduce(context,term){return term==Element&&context?context.parent:context;},reuse(context,node,stack,input){let type=node.type.id;return type==StartTag||type==OpenTag?new ElementContext(tagNameAfter(input,1)||\"\",context):context;},hash(context){return context?context.hash:0;},strict:false});var tagStart=new ExternalTokenizer((input,stack)=>{if(input.next!=lessThan){if(input.next<0&&stack.context)input.acceptToken(missingCloseTag);return;}input.advance();let close=input.next==slash;if(close)input.advance();let name=tagNameAfter(input,0);if(name===void 0)return;if(!name)return input.acceptToken(close?IncompleteCloseTag:StartTag);let parent=stack.context?stack.context.name:null;if(close){if(name==parent)return input.acceptToken(StartCloseTag);if(parent&&implicitlyClosed[parent])return input.acceptToken(missingCloseTag,-2);if(stack.dialectEnabled(Dialect_noMatch))return input.acceptToken(NoMatchStartCloseTag);for(let cx=stack.context;cx;cx=cx.parent)if(cx.name==name)return;input.acceptToken(MismatchedStartCloseTag);}else{if(name==\"script\")return input.acceptToken(StartScriptTag);if(name==\"style\")return input.acceptToken(StartStyleTag);if(name==\"textarea\")return input.acceptToken(StartTextareaTag);if(selfClosers.hasOwnProperty(name))return input.acceptToken(StartSelfClosingTag);if(parent&&closeOnOpen[parent]&&closeOnOpen[parent][name])input.acceptToken(missingCloseTag,-1);else input.acceptToken(StartTag);}},{contextual:true});var commentContent=new ExternalTokenizer(input=>{for(let dashes=0,i=0;;i++){if(input.next<0){if(i)input.acceptToken(commentContent$1);break;}if(input.next==dash){dashes++;}else if(input.next==greaterThan&&dashes>=2){if(i>3)input.acceptToken(commentContent$1,-2);break;}else{dashes=0;}input.advance();}});function inForeignElement(context){for(;context;context=context.parent)if(context.name==\"svg\"||context.name==\"math\")return true;return false;}var endTag=new ExternalTokenizer((input,stack)=>{if(input.next==slash&&input.peek(1)==greaterThan){let selfClosing=stack.dialectEnabled(Dialect_selfClosing)||inForeignElement(stack.context);input.acceptToken(selfClosing?SelfClosingEndTag:EndTag,2);}else if(input.next==greaterThan){input.acceptToken(EndTag,1);}});function contentTokenizer(tag,textToken,endToken){let lastState=2+tag.length;return new ExternalTokenizer(input=>{for(let state=0,matchedLen=0,i=0;;i++){if(input.next<0){if(i)input.acceptToken(textToken);break;}if(state==0&&input.next==lessThan||state==1&&input.next==slash||state>=2&&state<lastState&&input.next==tag.charCodeAt(state-2)){state++;matchedLen++;}else if((state==2||state==lastState)&&isSpace(input.next)){matchedLen++;}else if(state==lastState&&input.next==greaterThan){if(i>matchedLen)input.acceptToken(textToken,-matchedLen);else input.acceptToken(endToken,-(matchedLen-2));break;}else if((input.next==10||input.next==13)&&i){input.acceptToken(textToken,1);break;}else{state=matchedLen=0;}input.advance();}});}var scriptTokens=contentTokenizer(\"script\",scriptText,StartCloseScriptTag);var styleTokens=contentTokenizer(\"style\",styleText,StartCloseStyleTag);var textareaTokens=contentTokenizer(\"textarea\",textareaText,StartCloseTextareaTag);var htmlHighlighting=styleTags({\"Text RawText\":tags.content,\"StartTag StartCloseTag SelfClosingEndTag EndTag\":tags.angleBracket,TagName:tags.tagName,\"MismatchedCloseTag/TagName\":[tags.tagName,tags.invalid],AttributeName:tags.attributeName,\"AttributeValue UnquotedAttributeValue\":tags.attributeValue,Is:tags.definitionOperator,\"EntityReference CharacterReference\":tags.character,Comment:tags.blockComment,ProcessingInst:tags.processingInstruction,DoctypeDecl:tags.documentMeta});var parser=LRParser.deserialize({version:14,states:\",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%WQ&rO,59fO%`Q&rO,59iO%hQ&rO,59lO%sQ&rO,59nOOOa'#D^'#D^O%{OaO'#CxO&WOaO,59[OOOb'#D_'#D_O&`ObO'#C{O&kObO,59[OOOd'#D`'#D`O&sOdO'#DOO'OOdO,59[OOO`'#Da'#DaO'WO!rO,59[O'_Q#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'dO$fO,59oOOO`,59o,59oO'lQ#|O,59qO'qQ#|O,59rOOO`-E7W-E7WO'vQ&rO'#CsOOQW'#DZ'#DZO(UQ&rO1G.wOOOa1G.w1G.wO(^Q&rO1G/QOOOb1G/Q1G/QO(fQ&rO1G/TOOOd1G/T1G/TO(nQ&rO1G/WOOO`1G/W1G/WOOO`1G/Y1G/YO(yQ&rO1G/YOOOa-E7[-E7[O)RQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)WQ#tO'#C|OOOd-E7^-E7^O)]Q#tO'#DPOOO`-E7_-E7_O)bQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O)gQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rOOO`7+$t7+$tO)rQ#|O,59eO)wQ#|O,59hO)|Q#|O,59kOOO`1G/X1G/XO*RO7[O'#CvO*dOMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O*uO7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+WOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z\",stateData:\"+s~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OhyO~OS!OOhyO~OS!QOhyO~OS!SOT!TOhyO~OS!TOhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXhgXTgX~OS!fOhyO~OS!gOhyO~OS!hOhyO~OS!iOT!jOhyO~OS!jOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~\",goto:\"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{}!P!R!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ}bQ!PcQ!RdQ!UeZ!e{}!P!R!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp\",nodeNames:\"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl\",maxTerm:67,context:elementContext,nodeProps:[[\"closedBy\",-10,1,2,3,7,8,9,10,11,12,13,\"EndTag\",6,\"EndTag SelfClosingEndTag\",-4,21,30,33,36,\"CloseTag\"],[\"openedBy\",4,\"StartTag StartCloseTag\",5,\"StartTag\",-4,29,32,35,37,\"OpenTag\"],[\"group\",-9,14,17,18,19,20,39,40,41,42,\"Entity\",16,\"Entity TextContent\",-3,28,31,34,\"TextContent Entity\"]],propSources:[htmlHighlighting],skippedNodes:[0],repeatNodeCount:9,tokenData:\"#%g!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs4ysv-_vw5iwxJ^x}-_}!OKP!O!P-_!P!Q$q!Q![-_![!]!!O!]!^-_!^!_!&W!_!`#$o!`!a&X!a!c-_!c!}!!O!}#R-_#R#S!!O#S#T3V#T#o!!O#o#s-_#s$f$q$f%W-_%W%o!!O%o%p-_%p&a!!O&a&b-_&b1p!!O1p4U-_4U4d!!O4d4e-_4e$IS!!O$IS$I`-_$I`$Ib!!O$Ib$Kh-_$Kh%#t!!O%#t&/x-_&/x&Et!!O&Et&FV-_&FV;'S!!O;'S;:j!&Q;:j;=`4s<%l?&r-_?&r?Ah!!O?Ah?BY$q?BY?Mn!!O?MnO$q!Z$|c`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bX`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UV`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pT`POv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!cpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({W`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!a`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!a`!cpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYkWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]``P!a`!cp!^^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_1n!_!a&X!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/echSkWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0uXhSqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0pS1eP;=`<%l0p[1kP;=`<%l/^!U1wbhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!U3SP;=`<%l1n!V3bchS`P!a`!cpOq&Xqr3Vrs&}sv3Vvw0pwx(tx!P3V!P!Q&X!Q!^3V!^!_1n!_!a&X!a#s3V#s$f&X$f;'S3V;'S;=`4m<%l?Ah3V?Ah?BY&X?BY?Mn3V?MnO&X!V4pP;=`<%l3V!_4vP;=`<%l-_!Z5SV!`h`P!cpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_5rjhSkWc!ROX7dXZ8qZ[7d[^8q^p7dqr:crs8qst@Ttw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^/^!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!Z7ibkWOX7dXZ8qZ[7d[^8q^p7dqr7drs8qst+Ptw7dwx8qx!]7d!]!^9f!^!a8q!a#S7d#S#T8q#T;'S7d;'S;=`:]<%lO7d!R8tVOp8qqs8qt!]8q!]!^9Z!^;'S8q;'S;=`9`<%lO8q!R9`Oa!R!R9cP;=`<%l8q!Z9mYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z:`P;=`<%l7d!_:jjhSkWOX7dXZ8qZ[7d[^8q^p7dqr:crs8qst/^tw:cwx8qx!P:c!P!Q7d!Q!]:c!]!^<[!^!_=p!_!a8q!a#S:c#S#T=p#T#s:c#s$f7d$f;'S:c;'S;=`?}<%l?Ah:c?Ah?BY7d?BY?Mn:c?MnO7d!_<echSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V=udhSOp8qqr=prs8qst0ptw=pwx8qx!P=p!P!Q8q!Q!]=p!]!^?T!^!_=p!_!a8q!a#s=p#s$f8q$f;'S=p;'S;=`?w<%l?Ah=p?Ah?BY8q?BY?Mn=p?MnO8q!V?[XhSa!Rqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0p!V?zP;=`<%l=p!_@QP;=`<%l:c!_@[ihSkWOXAyXZCTZ[Ay[^CT^pAyqrDrrsCTswDrwxCTx!PDr!P!QAy!Q!]Dr!]!^/^!^!_G|!_!aCT!a#SDr#S#TG|#T#sDr#s$fAy$f;'SDr;'S;=`JW<%l?AhDr?Ah?BYAy?BY?MnDr?MnOAy!ZBOakWOXAyXZCTZ[Ay[^CT^pAyqrAyrsCTswAywxCTx!]Ay!]!^Cu!^!aCT!a#SAy#S#TCT#T;'SAy;'S;=`Dl<%lOAy!RCWUOpCTq!]CT!]!^Cj!^;'SCT;'S;=`Co<%lOCT!RCoOb!R!RCrP;=`<%lCT!ZC|YkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZDoP;=`<%lAy!_DyihSkWOXAyXZCTZ[Ay[^CT^pAyqrDrrsCTswDrwxCTx!PDr!P!QAy!Q!]Dr!]!^Fh!^!_G|!_!aCT!a#SDr#S#TG|#T#sDr#s$fAy$f;'SDr;'S;=`JW<%l?AhDr?Ah?BYAy?BY?MnDr?MnOAy!_FqchSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!^!_0p!a#S/^#S#T0p#T#s/^#s$f+P$f;'S/^;'S;=`1h<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VHRchSOpCTqrG|rsCTswG|wxCTx!PG|!P!QCT!Q!]G|!]!^I^!^!_G|!_!aCT!a#sG|#s$fCT$f;'SG|;'S;=`JQ<%l?AhG|?Ah?BYCT?BY?MnG|?MnOCT!VIeXhSb!Rqr0psw0px!P0p!Q!_0p!a#s0p$f;'S0p;'S;=`1b<%l?Ah0p?BY?Mn0p!VJTP;=`<%lG|!_JZP;=`<%lDr!ZJgW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aK^lhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMU!O!P-_!P!Q$q!Q!^-_!^!_1n!_!a&X!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aMckhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_1n!_!`&X!`!a! W!a#S-_#S#T3V#T#s-_#s$f$q$f;'S-_;'S;=`4s<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!T! cX`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!a!!_!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!O!!O!O!P!!O!P!Q$q!Q![!!O![!]!!O!]!^-_!^!_1n!_!a&X!a!c-_!c!}!!O!}#R-_#R#S!!O#S#T3V#T#o!!O#o#s-_#s$f$q$f$}-_$}%O!!O%O%W-_%W%o!!O%o%p-_%p&a!!O&a&b-_&b1p!!O1p4U!!O4U4d!!O4d4e-_4e$IS!!O$IS$I`-_$I`$Ib!!O$Ib$Je-_$Je$Jg!!O$Jg$Kh-_$Kh%#t!!O%#t&/x-_&/x&Et!!O&Et&FV-_&FV;'S!!O;'S;:j!&Q;:j;=`4s<%l?&r-_?&r?Ah!!O?Ah?BY$q?BY?Mn!!O?MnO$q!a!&TP;=`<%l!!O!V!&achS!a`!cpOq*Vqr!'lrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!b!Ey!b#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!'uhhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex}1n}!O!)a!O!P1n!P!Q*V!Q!_1n!_!a*V!a!f1n!f!g!,]!g#W1n#W#X!<y#X#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!)jdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex}1n}!O!*x!O!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!+TbhS!a`!cp!dPOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!,fdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!q1n!q!r!-t!r#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!-}dhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!e1n!e!f!/]!f#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!/fdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!v1n!v!w!0t!w#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!0}dhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!{1n!{!|!2]!|#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!2fdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!r1n!r!s!3t!s#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!3}dhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a!g1n!g!h!5]!h#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!5fchS!a`!cpOq!6qqr!5]rs!7hsv!5]vw!;`wx!9[x!P!5]!P!Q!6q!Q!_!5]!_!`!6q!`!a!:j!a#s!5]#s$f!6q$f;'S!5];'S;=`!<s<%l?Ah!5]?Ah?BY!6q?BY?Mn!5]?MnO!6q!R!6xY!a`!cpOr!6qrs!7hsv!6qvw!8Swx!9[x!`!6q!`!a!:j!a;'S!6q;'S;=`!;Y<%lO!6qq!7mV!cpOv!7hvx!8Sx!`!7h!`!a!8q!a;'S!7h;'S;=`!9U<%lO!7hP!8VTO!`!8S!`!a!8f!a;'S!8S;'S;=`!8k<%lO!8SP!8kO{PP!8nP;=`<%l!8Sq!8xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!9XP;=`<%l!7ha!9aX!a`Or!9[rs!8Ssv!9[vw!8Sw!`!9[!`!a!9|!a;'S!9[;'S;=`!:d<%lO!9[a!:TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!:gP;=`<%l!9[!R!:sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;]P;=`<%l!6qT!;ebhSOq!8Sqr!;`rs!8Ssw!;`wx!8Sx!P!;`!P!Q!8S!Q!_!;`!_!`!8S!`!a!8f!a#s!;`#s$f!8S$f;'S!;`;'S;=`!<m<%l?Ah!;`?Ah?BY!8S?BY?Mn!;`?MnO!8ST!<pP;=`<%l!;`!V!<vP;=`<%l!5]!V!=SdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#c1n#c#d!>b#d#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!>kdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#V1n#V#W!?y#W#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!@SdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#h1n#h#i!Ab#i#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!AkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#m1n#m#n!By#n#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!CSdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#d1n#d#e!Db#e#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!DkdhS!a`!cpOq*Vqr1nrs(Vsv1nvw0pwx)ex!P1n!P!Q*V!Q!_1n!_!a*V!a#X1n#X#Y!5]#Y#s1n#s$f*V$f;'S1n;'S;=`3P<%l?Ah1n?Ah?BY*V?BY?Mn1n?MnO*V!V!FSchS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!a!G_!a!b##T!b#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!R!GfY!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!a!G_!a!b!Lv!b;'S!G_;'S;=`!N]<%lO!G_q!HZV!cpOv!HUvx!Hpx!a!HU!a!b!Iq!b;'S!HU;'S;=`!Jp<%lO!HUP!HsTO!a!Hp!a!b!IS!b;'S!Hp;'S;=`!Ik<%lO!HpP!IVTO!`!Hp!`!a!If!a;'S!Hp;'S;=`!Ik<%lO!HpP!IkOxPP!InP;=`<%l!Hpq!IvV!cpOv!HUvx!Hpx!`!HU!`!a!J]!a;'S!HU;'S;=`!Jp<%lO!HUq!JdS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!JsP;=`<%l!HUa!J{X!a`Or!Jvrs!Hpsv!Jvvw!Hpw!a!Jv!a!b!Kh!b;'S!Jv;'S;=`!Lp<%lO!Jva!KmX!a`Or!Jvrs!Hpsv!Jvvw!Hpw!`!Jv!`!a!LY!a;'S!Jv;'S;=`!Lp<%lO!Jva!LaT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!LsP;=`<%l!Jv!R!L}Y!a`!cpOr!G_rs!HUsv!G_vw!Hpwx!Jvx!`!G_!`!a!Mm!a;'S!G_;'S;=`!N]<%lO!G_!R!MvV!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!N`P;=`<%l!G_T!NhbhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!a!Hp!a!b# p!b#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT# ubhSOq!Hpqr!Ncrs!Hpsw!Ncwx!Hpx!P!Nc!P!Q!Hp!Q!_!Nc!_!`!Hp!`!a!If!a#s!Nc#s$f!Hp$f;'S!Nc;'S;=`#!}<%l?Ah!Nc?Ah?BY!Hp?BY?Mn!Nc?MnO!HpT##QP;=`<%l!Nc!V##^chS!a`!cpOq!G_qr!Eyrs!HUsv!Eyvw!Ncwx!Jvx!P!Ey!P!Q!G_!Q!_!Ey!_!`!G_!`!a!Mm!a#s!Ey#s$f!G_$f;'S!Ey;'S;=`#$i<%l?Ah!Ey?Ah?BY!G_?BY?Mn!Ey?MnO!G_!V#$lP;=`<%l!Ey!V#$zXiS`P!a`!cpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X\",tokenizers:[scriptTokens,styleTokens,textareaTokens,endTag,tagStart,commentContent,0,1,2,3,4,5],topRules:{Document:[0,15]},dialects:{noMatch:0,selfClosing:485},tokenPrec:487});function getAttrs(openTag,input){let attrs=/* @__PURE__ */Object.create(null);for(let att of openTag.getChildren(Attribute)){let name=att.getChild(AttributeName),value=att.getChild(AttributeValue)||att.getChild(UnquotedAttributeValue);if(name)attrs[input.read(name.from,name.to)]=!value?\"\":value.type.id==AttributeValue?input.read(value.from+1,value.to-1):input.read(value.from,value.to);}return attrs;}function findTagName(openTag,input){let tagNameNode=openTag.getChild(TagName);return tagNameNode?input.read(tagNameNode.from,tagNameNode.to):\" \";}function maybeNest(node,input,tags2){let attrs;for(let tag of tags2){if(!tag.attrs||tag.attrs(attrs||(attrs=getAttrs(node.node.parent.firstChild,input))))return{parser:tag.parser};}return null;}function configureNesting(tags2=[],attributes=[]){let script=[],style=[],textarea=[],other=[];for(let tag of tags2){let array=tag.tag==\"script\"?script:tag.tag==\"style\"?style:tag.tag==\"textarea\"?textarea:other;array.push(tag);}let attrs=attributes.length?/* @__PURE__ */Object.create(null):null;for(let attr of attributes)(attrs[attr.name]||(attrs[attr.name]=[])).push(attr);return parseMixed((node,input)=>{let id=node.type.id;if(id==ScriptText)return maybeNest(node,input,script);if(id==StyleText)return maybeNest(node,input,style);if(id==TextareaText)return maybeNest(node,input,textarea);if(id==Element&&other.length){let n=node.node,open=n.firstChild,tagName=open&&findTagName(open,input),attrs2;if(tagName)for(let tag of other){if(tag.tag==tagName&&(!tag.attrs||tag.attrs(attrs2||(attrs2=getAttrs(n,input))))){let close=n.lastChild;return{parser:tag.parser,overlay:[{from:open.to,to:close.type.id==CloseTag?close.from:n.to}]};}}}if(attrs&&id==Attribute){let n=node.node,nameNode;if(nameNode=n.firstChild){let matches=attrs[input.read(nameNode.from,nameNode.to)];if(matches)for(let attr of matches){if(attr.tagName&&attr.tagName!=findTagName(n.parent,input))continue;let value=n.lastChild;if(value.type.id==AttributeValue){let from=value.from+1;let last=value.lastChild,to=value.to-(last&&last.isError?0:1);if(to>from)return{parser:attr.parser,overlay:[{from,to}]};}else if(value.type.id==UnquotedAttributeValue){return{parser:attr.parser,overlay:[{from:value.from,to:value.to}]};}}}}return null;});}export{configureNesting,parser};\nexport const __FramerMetadata__ = {\"exports\":{\"configureNesting\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"parser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@lezer/javascript/dist/index.es.js\nimport{ContextTracker,ExternalTokenizer,LRParser,LocalTokenGroup}from\"https://framerusercontent.com/modules/MiFWyNBz6FaRwOOEYJ4H/nqI70oaHl4AhH5rIUMv4/lezer_lr.js\";import{styleTags,tags}from\"https://framerusercontent.com/modules/rOWwbZHN39cczduPnzmw/seDszB8oQDQQyH7PIqkK/lezer_highlight.js\";var noSemi=302;var incdec=1;var incdecPrefix=2;var insertSemi=303;var spaces=305;var newline=306;var LineComment=3;var BlockComment=4;var space=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];var braceR=125;var semicolon=59;var slash=47;var star=42;var plus=43;var minus=45;var trackNewline=new ContextTracker({start:false,shift(context,term){return term==LineComment||term==BlockComment||term==spaces?context:term==newline;},strict:false});var insertSemicolon=new ExternalTokenizer((input,stack)=>{let{next}=input;if((next==braceR||next==-1||stack.context)&&stack.canShift(insertSemi))input.acceptToken(insertSemi);},{contextual:true,fallback:true});var noSemicolon=new ExternalTokenizer((input,stack)=>{let{next}=input,after;if(space.indexOf(next)>-1)return;if(next==slash&&((after=input.peek(1))==slash||after==star))return;if(next!=braceR&&next!=semicolon&&next!=-1&&!stack.context&&stack.canShift(noSemi))input.acceptToken(noSemi);},{contextual:true});var incdecToken=new ExternalTokenizer((input,stack)=>{let{next}=input;if(next==plus||next==minus){input.advance();if(next==input.next){input.advance();let mayPostfix=!stack.context&&stack.canShift(incdec);input.acceptToken(mayPostfix?incdec:incdecPrefix);}}},{contextual:true});var jsHighlight=styleTags({\"get set async static\":tags.modifier,\"for while do if else switch try catch finally return throw break continue default case\":tags.controlKeyword,\"in of await yield void typeof delete instanceof\":tags.operatorKeyword,\"let var const function class extends\":tags.definitionKeyword,\"import export from\":tags.moduleKeyword,\"with debugger as new\":tags.keyword,TemplateString:tags.special(tags.string),super:tags.atom,BooleanLiteral:tags.bool,this:tags.self,null:tags.null,Star:tags.modifier,VariableName:tags.variableName,\"CallExpression/VariableName TaggedTemplateExpression/VariableName\":tags.function(tags.variableName),VariableDefinition:tags.definition(tags.variableName),Label:tags.labelName,PropertyName:tags.propertyName,PrivatePropertyName:tags.special(tags.propertyName),\"CallExpression/MemberExpression/PropertyName\":tags.function(tags.propertyName),\"FunctionDeclaration/VariableDefinition\":tags.function(tags.definition(tags.variableName)),\"ClassDeclaration/VariableDefinition\":tags.definition(tags.className),PropertyDefinition:tags.definition(tags.propertyName),PrivatePropertyDefinition:tags.definition(tags.special(tags.propertyName)),UpdateOp:tags.updateOperator,LineComment:tags.lineComment,BlockComment:tags.blockComment,Number:tags.number,String:tags.string,Escape:tags.escape,ArithOp:tags.arithmeticOperator,LogicOp:tags.logicOperator,BitOp:tags.bitwiseOperator,CompareOp:tags.compareOperator,RegExp:tags.regexp,Equals:tags.definitionOperator,Arrow:tags.function(tags.punctuation),\": Spread\":tags.punctuation,\"( )\":tags.paren,\"[ ]\":tags.squareBracket,\"{ }\":tags.brace,\"InterpolationStart InterpolationEnd\":tags.special(tags.brace),\".\":tags.derefOperator,\", ;\":tags.separator,\"@\":tags.meta,TypeName:tags.typeName,TypeDefinition:tags.definition(tags.typeName),\"type enum interface implements namespace module declare\":tags.definitionKeyword,\"abstract global Privacy readonly override\":tags.modifier,\"is keyof unique infer\":tags.operatorKeyword,JSXAttributeValue:tags.attributeValue,JSXText:tags.content,\"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag\":tags.angleBracket,\"JSXIdentifier JSXNameSpacedName\":tags.tagName,\"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName\":tags.attributeName,\"JSXBuiltin/JSXIdentifier\":tags.standard(tags.tagName)});var spec_identifier={__proto__:null,export:14,as:19,from:27,default:30,async:35,function:36,extends:46,this:50,true:58,false:58,null:70,void:74,typeof:78,super:96,new:130,delete:146,yield:155,await:159,class:164,public:221,private:221,protected:221,readonly:223,instanceof:242,satisfies:245,in:246,const:248,import:280,keyof:335,unique:339,infer:345,is:381,abstract:401,implements:403,type:405,let:408,var:410,interface:417,enum:421,namespace:427,module:429,declare:433,global:437,for:456,of:465,while:468,with:472,do:476,if:480,else:482,switch:486,case:492,try:498,catch:502,finally:506,return:510,throw:514,break:518,continue:522,debugger:526};var spec_word={__proto__:null,async:117,get:119,set:121,declare:181,public:183,private:183,protected:183,static:185,abstract:187,override:189,readonly:195,accessor:197,new:385};var spec_LessThan={__proto__:null,\"<\":137};var parser=LRParser.deserialize({version:14,states:\"$6[O`QUOOO%QQUOOO'TQWOOP(bOSOOO*pQ(CjO'#CfO*wOpO'#CgO+VO!bO'#CgO+eO07`O'#DZO-vQUO'#DaO.WQUO'#DlO%QQUO'#DvO0[QUO'#EOOOQ(CY'#EW'#EWO0uQSO'#ETOOQO'#Ei'#EiOOQO'#Ib'#IbO0}QSO'#GkO1YQSO'#EhO1_QSO'#EhO3aQ(CjO'#JcO6QQ(CjO'#JdO6nQSO'#FWO6sQ#tO'#FoOOQ(CY'#F`'#F`O7OO&jO'#F`O7^Q,UO'#FvO8tQSO'#FuOOQ(CY'#Jd'#JdOOQ(CW'#Jc'#JcOOQQ'#KO'#KOO8yQSO'#IOO9OQ(C[O'#IPOOQQ'#JP'#JPOOQQ'#IT'#ITQ`QUOOO%QQUO'#DnO9WQUO'#DzO%QQUO'#D|O9_QSO'#GkO9dQ,UO'#ClO9rQSO'#EgO9}QSO'#ErO:SQ,UO'#F_O:qQSO'#GkO:vQSO'#GoO;RQSO'#GoO;aQSO'#GrO;aQSO'#GsO;aQSO'#GuO9_QSO'#GxO<QQSO'#G{O=cQSO'#CbO=sQSO'#HXO={QSO'#H_O={QSO'#HaO`QUO'#HcO={QSO'#HeO={QSO'#HhO>QQSO'#HnO>VQ(C]O'#HtO%QQUO'#HvO>bQ(C]O'#HxO>mQ(C]O'#HzO9OQ(C[O'#H|O>xQ(CjO'#CfO?zQWO'#DfQOQSOOO@bQSO'#EPO9dQ,UO'#EgO@mQSO'#EgO@xQ`O'#F_OOQQ'#Cd'#CdOOQ(CW'#Dk'#DkOOQ(CW'#Jg'#JgO%QQUO'#JgOOQO'#Jk'#JkOOQO'#I_'#I_OAxQWO'#E`OOQ(CW'#E_'#E_OBtQ(C`O'#E`OCOQWO'#ESOOQO'#Jj'#JjOCdQWO'#JkODqQWO'#ESOCOQWO'#E`PEOO?MpO'#C`POOO)CDn)CDnOOOO'#IU'#IUOEZOpO,59ROOQ(CY,59R,59ROOOO'#IV'#IVOEiO!bO,59RO%QQUO'#D]OOOO'#IX'#IXOEwO07`O,59uOOQ(CY,59u,59uOFVQUO'#IYOFjQSO'#JeOHlQbO'#JeO+sQUO'#JeOHsQSO,59{OIZQSO'#EiOIhQSO'#JsOIsQSO'#JrOIsQSO'#JrOI{QSO,5;VOJQQSO'#JqOOQ(CY,5:W,5:WOJXQUO,5:WOLYQ(CjO,5:bOLyQSO,5:jOMdQ(C[O'#JpOMkQSO'#JoO:vQSO'#JoONPQSO'#JoONXQSO,5;UON^QSO'#JoO!!fQbO'#JdOOQ(CY'#Cf'#CfO%QQUO'#EOO!#UQ`O,5:oOOQO'#Jl'#JlOOQO-E<`-E<`O9_QSO,5=VO!#lQSO,5=VO!#qQUO,5;SO!%tQ,UO'#EdO!'XQSO,5;SO!(qQ,UO'#DpO!(xQUO'#DuO!)SQWO,5;]O!)[QWO,5;]O%QQUO,5;]OOQQ'#FO'#FOOOQQ'#FQ'#FQO%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^OOQQ'#FU'#FUO!)jQUO,5;oOOQ(CY,5;t,5;tOOQ(CY,5;u,5;uO!+mQSO,5;uOOQ(CY,5;v,5;vO%QQUO'#IfO!+uQ(C[O,5<cO!%tQ,UO,5;^O!,dQ,UO,5;^O%QQUO,5;rO!,kQ#tO'#FeO!-hQ#tO'#JwO!-SQ#tO'#JwO!-oQ#tO'#JwOOQO'#Jw'#JwO!.TQ#tO,5;}OOOO,5<Z,5<ZO!.fQUO'#FqOOOO'#Ie'#IeO7OO&jO,5;zO!.mQ#tO'#FsOOQ(CY,5;z,5;zO!/^Q7[O'#CrOOQ(CY'#Cv'#CvO!/qQSO'#CvO!/vO07`O'#CzO!0dQ,UO,5<`O!0kQSO,5<bO!2QQMhO'#GQO!2_QSO'#GRO!2dQSO'#GRO!2iQMhO'#GVO!3hQWO'#GZO!4ZQ7[O'#J^OOQ(CY'#J^'#J^O!4eQSO'#J]O!4sQSO'#J[O!4{QSO'#CqOOQ(CY'#Ct'#CtOOQ(CY'#DO'#DOOOQ(CY'#DQ'#DQO0xQSO'#DSO!'^Q,UO'#FxO!'^Q,UO'#FzO!5TQSO'#F|O!5YQSO'#F}O!2dQSO'#GTO!'^Q,UO'#GYO!5_QSO'#EjO!5|QSO,5<aO`QUO,5>jOOQQ'#JX'#JXOOQQ,5>k,5>kOOQQ-E<R-E<RO!7{Q(CjO,5:YO!:iQ(CjO,5:fO%QQUO,5:fO!=SQ(CjO,5:hOOQ(CW'#Co'#CoO!=sQ,UO,5=VO!>RQ(C[O'#JYO8tQSO'#JYO!>dQ(C[O,59WO!>oQWO,59WO!>wQ,UO,59WO9dQ,UO,59WO!?SQSO,5;SO!?[QSO'#HWO!?mQSO'#KSO%QQUO,5;wO!?uQWO,5;yO!?zQSO,5=qO!@PQSO,5=qO!@UQSO,5=qO9OQ(C[O,5=qO!@dQSO'#EkO!A^QWO'#ElOOQ(CW'#Jq'#JqO!AeQ(C[O'#KPO9OQ(C[O,5=ZO;aQSO,5=aOOQO'#Cr'#CrO!ApQWO,5=^O!AxQ,UO,5=_O!BTQSO,5=aO!BYQ`O,5=dO>QQSO'#G}O9_QSO'#HPO!BbQSO'#HPO9dQ,UO'#HRO!BgQSO'#HROOQQ,5=g,5=gO!BlQSO'#HSO!BtQSO'#ClO!ByQSO,58|O!CTQSO,58|O!E]QUO,58|OOQQ,58|,58|O!EjQ(C[O,58|O%QQUO,58|O!EuQUO'#HZOOQQ'#H['#H[OOQQ'#H]'#H]O`QUO,5=sO!FVQSO,5=sO`QUO,5=yO`QUO,5={O!F[QSO,5=}O`QUO,5>PO!FaQSO,5>SO!FfQUO,5>YOOQQ,5>`,5>`O%QQUO,5>`O9OQ(C[O,5>bOOQQ,5>d,5>dO!JmQSO,5>dOOQQ,5>f,5>fO!JmQSO,5>fOOQQ,5>h,5>hO!JrQWO'#DXO%QQUO'#JgO!KaQWO'#JgO!LOQWO'#DgO!LaQWO'#DgO!NrQUO'#DgO!NyQSO'#JfO# RQSO,5:QO# WQSO'#EmO# fQSO'#JtO# nQSO,5;WO# sQWO'#DgO#!QQWO'#EROOQ(CY,5:k,5:kO%QQUO,5:kO#!XQSO,5:kO>QQSO,5;RO!>oQWO,5;RO!>wQ,UO,5;RO9dQ,UO,5;RO#!aQSO,5@RO#!fQ!LQO,5:oOOQO-E<]-E<]O##lQ(C`O,5:zOCOQWO,5:nO##vQWO,5:nOCOQWO,5:zO!>dQ(C[O,5:nOOQ(CW'#Ec'#EcOOQO,5:z,5:zO%QQUO,5:zO#$TQ(C[O,5:zO#$`Q(C[O,5:zO!>oQWO,5:nOOQO,5;Q,5;QO#$nQ(C[O,5:zPOOO'#IS'#ISP#%SO?MpO,58zPOOO,58z,58zOOOO-E<S-E<SOOQ(CY1G.m1G.mOOOO-E<T-E<TO#%_Q`O,59wOOOO-E<V-E<VOOQ(CY1G/a1G/aO#%dQbO,5>tO+sQUO,5>tOOQO,5>z,5>zO#%nQUO'#IYOOQO-E<W-E<WO#%{QSO,5@PO#&TQbO,5@PO#&[QSO,5@^OOQ(CY1G/g1G/gO%QQUO,5@_O#&dQSO'#I`OOQO-E<^-E<^O#&[QSO,5@^OOQ(CW1G0q1G0qOOQ(CY1G/r1G/rOOQ(CY1G0U1G0UO%QQUO,5@[O#&xQ(C[O,5@[O#'ZQ(C[O,5@[O#'bQSO,5@ZO:vQSO,5@ZO#'jQSO,5@ZO#'xQSO'#IcO#'bQSO,5@ZOOQ(CW1G0p1G0pO!)SQWO,5:qO!)_QWO,5:qOOQO,5:s,5:sO#(jQSO,5:sO#(rQ,UO1G2qO9_QSO1G2qOOQ(CY1G0n1G0nO#)QQ(CjO1G0nO#*VQ(ChO,5;OOOQ(CY'#GP'#GPO#*sQ(CjO'#J^O!#qQUO1G0nO#,{Q,UO'#JhO#-VQSO,5:[O#-[QbO'#JiO%QQUO'#JiO#-fQSO,5:aOOQ(CY'#DX'#DXOOQ(CY1G0w1G0wO%QQUO1G0wOOQ(CY1G1a1G1aO#-kQSO1G0wO#0SQ(CjO1G0xO#0ZQ(CjO1G0xO#2tQ(CjO1G0xO#2{Q(CjO1G0xO#5VQ(CjO1G0xO#5mQ(CjO1G0xO#8gQ(CjO1G0xO#8nQ(CjO1G0xO#;XQ(CjO1G0xO#;`Q(CjO1G0xO#=WQ(CjO1G0xO#@WQ$IUO'#CfO#BUQ$IUO1G1ZO#B]Q$IUO'#JdO!+pQSO1G1aO#BmQ(CjO,5?QOOQ(CW-E<d-E<dO#CaQ(CjO1G0xOOQ(CY1G0x1G0xO#ElQ(CjO1G1^O#F`Q#tO,5<RO#FhQ#tO,5<SO#FpQ#tO'#FjO#GXQSO'#FiOOQO'#Jx'#JxOOQO'#Id'#IdO#G^Q#tO1G1iOOQ(CY1G1i1G1iOOOO1G1t1G1tO#GoQ$IUO'#JcO#GyQSO,5<]O!)jQUO,5<]OOOO-E<c-E<cOOQ(CY1G1f1G1fO#HOQWO'#JwOOQ(CY,5<_,5<_O#HWQWO,5<_OOQ(CY,59b,59bO!%tQ,UO'#C|OOOO'#IW'#IWO#H]O07`O,59fOOQ(CY,59f,59fO%QQUO1G1zO!5YQSO'#IhO#HhQSO,5<sOOQ(CY,5<p,5<pOOQO'#Gf'#GfO!'^Q,UO,5=POOQO'#Gh'#GhO!'^Q,UO,5=RO!%tQ,UO,5=TOOQO1G1|1G1|O#HvQ`O'#CoO#IZQ`O,5<lO#IbQSO'#J{O9_QSO'#J{O#IpQSO,5<nO!'^Q,UO,5<mO#IuQSO'#GSO#JQQSO,5<mO#JVQ`O'#GPO#JdQ`O'#J|O#JnQSO'#J|O!%tQ,UO'#J|O#JsQSO,5<qO#JxQWO'#G[O!3cQWO'#G[O#KZQSO'#G^O#K`QSO'#G`O!2dQSO'#GcO#KeQ(C[O'#IjO#KpQWO,5<uOOQ(CY,5<u,5<uO#KwQWO'#G[O#LVQWO'#G]O#L_QWO'#G]OOQ(CY,5=U,5=UO!'^Q,UO,5?wO!'^Q,UO,5?wO#LdQSO'#IkO#LoQSO,5?vO#LwQSO,59]O#MhQ,UO,59nOOQ(CY,59n,59nO#NZQ,UO,5<dO#N|Q,UO,5<fO?rQSO,5<hOOQ(CY,5<i,5<iO$ WQSO,5<oO$ ]Q,UO,5<tO$ mQSO'#JoO!#qQUO1G1{O$ rQSO1G1{OOQQ1G4U1G4UOOQ(CY1G/t1G/tO!+mQSO1G/tO$#qQ(CjO1G0QOOQQ1G2q1G2qO!%tQ,UO1G2qO%QQUO1G2qO$$bQSO1G2qO$$mQ,UO'#EdOOQ(CW,5?t,5?tO$$wQ(C[O,5?tOOQQ1G.r1G.rO!>dQ(C[O1G.rO!>oQWO1G.rO!>wQ,UO1G.rO$%YQSO1G0nO$%_QSO'#CfO$%jQSO'#KTO$%rQSO,5=rO$%wQSO'#KTO$%|QSO'#KTO$&XQSO'#IsO$&gQSO,5@nO$&oQbO1G1cOOQ(CY1G1e1G1eO9_QSO1G3]O?rQSO1G3]O$&vQSO1G3]O$&{QSO1G3]OOQQ1G3]1G3]O:vQSO'#JrO:vQSO'#EmO%QQUO'#EmO:vQSO'#ImO$'QQ(C[O,5@kOOQQ1G2u1G2uO!BTQSO1G2{O!%tQ,UO1G2xO$']QSO1G2xOOQQ1G2y1G2yO!%tQ,UO1G2yO$'bQSO1G2yO$'jQWO'#GwOOQQ1G2{1G2{O!3cQWO'#IoO!BYQ`O1G3OOOQQ1G3O1G3OOOQQ,5=i,5=iO$'rQ,UO,5=kO9_QSO,5=kO#K`QSO,5=mO8tQSO,5=mO!>oQWO,5=mO!>wQ,UO,5=mO9dQ,UO,5=mO$(QQSO'#KRO$(]QSO,5=nOOQQ1G.h1G.hO$(bQ(C[O1G.hO?rQSO1G.hO$(mQSO1G.hO9OQ(C[O1G.hO$*rQbO,5@pO$+SQSO,5@pO$+_QUO,5=uO$+fQSO,5=uO:vQSO,5@pOOQQ1G3_1G3_O`QUO1G3_OOQQ1G3e1G3eOOQQ1G3g1G3gO={QSO1G3iO$+kQUO1G3kO$/lQUO'#HjOOQQ1G3n1G3nO$/yQSO'#HpO>QQSO'#HrOOQQ1G3t1G3tO$0RQUO1G3tO9OQ(C[O1G3zOOQQ1G3|1G3|OOQ(CW'#GW'#GWO9OQ(C[O1G4OO9OQ(C[O1G4QO$4VQSO,5@RO!)jQUO,5;XO:vQSO,5;XO>QQSO,5:RO!)jQUO,5:RO!>oQWO,5:RO$4[Q$IUO,5:ROOQO,5;X,5;XO$4fQWO'#IZO$4|QSO,5@QOOQ(CY1G/l1G/lO$5UQWO'#IaO$5`QSO,5@`OOQ(CW1G0r1G0rO!LaQWO,5:ROOQO'#I^'#I^O$5hQWO,5:mOOQ(CY,5:m,5:mO#![QSO1G0VOOQ(CY1G0V1G0VO%QQUO1G0VOOQ(CY1G0m1G0mO>QQSO1G0mO!>oQWO1G0mO!>wQ,UO1G0mOOQ(CW1G5m1G5mO!>dQ(C[O1G0YOOQO1G0f1G0fO%QQUO1G0fO$5oQ(C[O1G0fO$5zQ(C[O1G0fO!>oQWO1G0YOCOQWO1G0YO$6YQ(C[O1G0fOOQO1G0Y1G0YO$6nQ(CjO1G0fPOOO-E<Q-E<QPOOO1G.f1G.fOOOO1G/c1G/cO$6xQ`O,5<cO$7QQbO1G4`OOQO1G4f1G4fO%QQUO,5>tO$7[QSO1G5kO$7dQSO1G5xO$7lQbO1G5yO:vQSO,5>zO$7vQ(CjO1G5vO%QQUO1G5vO$8WQ(C[O1G5vO$8iQSO1G5uO$8iQSO1G5uO:vQSO1G5uO$8qQSO,5>}O:vQSO,5>}OOQO,5>},5>}O$9VQSO,5>}O$ mQSO,5>}OOQO-E<a-E<aOOQO1G0]1G0]OOQO1G0_1G0_O!+pQSO1G0_OOQQ7+(]7+(]O!%tQ,UO7+(]O%QQUO7+(]O$9eQSO7+(]O$9pQ,UO7+(]O$:OQ(CjO,59nO$<WQ(CjO,5<dO$>cQ(CjO,5<fO$@nQ(CjO,5<tOOQ(CY7+&Y7+&YO$CPQ(CjO7+&YO$CsQ,UO'#I[O$C}QSO,5@SOOQ(CY1G/v1G/vO$DVQUO'#I]O$DdQSO,5@TO$DlQbO,5@TOOQ(CY1G/{1G/{O$DvQSO7+&cOOQ(CY7+&c7+&cO$D{Q$IUO,5:bO%QQUO7+&uO$EVQ$IUO,5:YO$EdQ$IUO,5:fO$EnQ$IUO,5:hOOQ(CY7+&{7+&{OOQO1G1m1G1mOOQO1G1n1G1nO$ExQ#tO,5<UO!)jQUO,5<TOOQO-E<b-E<bOOQ(CY7+'T7+'TOOOO7+'`7+'`OOOO1G1w1G1wO$FTQSO1G1wOOQ(CY1G1y1G1yO$FYQ`O,59hOOOO-E<U-E<UOOQ(CY1G/Q1G/QO$FaQ(CjO7+'fOOQ(CY,5?S,5?SO$GTQSO,5?SOOQ(CY1G2_1G2_P$GYQSO'#IhPOQ(CY-E<f-E<fO$G|Q,UO1G2kO$HoQ,UO1G2mO$HyQ`O1G2oOOQ(CY1G2W1G2WO$IQQSO'#IgO$I`QSO,5@gO$I`QSO,5@gO$IhQSO,5@gO$IsQSO,5@gOOQO1G2Y1G2YO$JRQ,UO1G2XO!'^Q,UO1G2XO$JcQMhO'#IiO$JsQSO,5@hO!%tQ,UO,5@hO$J{Q`O,5@hOOQ(CY1G2]1G2]OOQ(CW,5<v,5<vOOQ(CW,5<w,5<wO$ mQSO,5<wOBoQSO,5<wO!>oQWO,5<vOOQO'#G_'#G_O$KVQSO,5<xOOQ(CW,5<z,5<zO$ mQSO,5<}OOQO,5?U,5?UOOQO-E<h-E<hOOQ(CY1G2a1G2aO!3cQWO,5<vO$K_QSO,5<wO#KZQSO,5<xO!3cQWO,5<wO$KjQ,UO1G5cO$KtQ,UO1G5cOOQO,5?V,5?VOOQO-E<i-E<iOOQO1G.w1G.wO!?uQWO,59pO%QQUO,59pO$LRQSO1G2SO!'^Q,UO1G2ZO$LWQ(CjO7+'gOOQ(CY7+'g7+'gO!#qQUO7+'gOOQ(CY7+%`7+%`O$LzQ`O'#J}O#![QSO7+(]O$MUQbO7+(]O$9hQSO7+(]O$M]Q(ChO'#CfO$MpQ(ChO,5<{O$NbQSO,5<{OOQ(CW1G5`1G5`OOQQ7+$^7+$^O!>dQ(C[O7+$^O!>oQWO7+$^O!#qQUO7+&YO$NgQSO'#IrO$N{QSO,5@oOOQO1G3^1G3^O9_QSO,5@oO$N{QSO,5@oO% TQSO,5@oOOQO,5?_,5?_OOQO-E<q-E<qOOQ(CY7+&}7+&}O% YQSO7+(wO9OQ(C[O7+(wO9_QSO7+(wO?rQSO7+(wO% _QSO,5;XOOQ(CW,5?X,5?XOOQ(CW-E<k-E<kOOQQ7+(g7+(gO% dQ(ChO7+(dO!%tQ,UO7+(dO% nQ`O7+(eOOQQ7+(e7+(eO!%tQ,UO7+(eO% uQSO'#KQO%!QQSO,5=cOOQO,5?Z,5?ZOOQO-E<m-E<mOOQQ7+(j7+(jO%#aQWO'#HQOOQQ1G3V1G3VO!%tQ,UO1G3VO%QQUO1G3VO%#hQSO1G3VO%#sQ,UO1G3VO9OQ(C[O1G3XO#K`QSO1G3XO8tQSO1G3XO!>oQWO1G3XO!>wQ,UO1G3XO%$RQSO'#IqO%$^QSO,5@mO%$fQWO,5@mOOQ(CW1G3Y1G3YOOQQ7+$S7+$SO?rQSO7+$SO9OQ(C[O7+$SO%$qQSO7+$SO%QQUO1G6[O%QQUO1G6]O%$vQUO1G3aO%$}QSO1G3aO%%SQUO1G3aO%%ZQ(C[O1G6[OOQQ7+(y7+(yO9OQ(C[O7+)TO`QUO7+)VOOQQ'#KW'#KWOOQQ'#It'#ItO%%eQUO,5>UOOQQ,5>U,5>UO%QQUO'#HkO%%rQSO'#HmOOQQ,5>[,5>[O:vQSO,5>[OOQQ,5>^,5>^OOQQ7+)`7+)`OOQQ7+)f7+)fOOQQ7+)j7+)jOOQQ7+)l7+)lO%%wQWO1G5mO%&]Q$IUO1G0sO%&gQSO1G0sOOQO1G/m1G/mO%&rQ$IUO1G/mO>QQSO1G/mO!)jQUO'#DgOOQO,5>u,5>uOOQO-E<X-E<XOOQO,5>{,5>{OOQO-E<_-E<_O!>oQWO1G/mOOQO-E<[-E<[OOQ(CY1G0X1G0XOOQ(CY7+%q7+%qO#![QSO7+%qOOQ(CY7+&X7+&XO>QQSO7+&XO!>oQWO7+&XOOQO7+%t7+%tO$6nQ(CjO7+&QOOQO7+&Q7+&QO%QQUO7+&QO%&|Q(C[O7+&QO!>dQ(C[O7+%tO!>oQWO7+%tO%'XQ(C[O7+&QO%'gQ(CjO7++bO%QQUO7++bO%'wQSO7++aO%'wQSO7++aOOQO1G4i1G4iO:vQSO1G4iO%(PQSO1G4iOOQO7+%y7+%yO#![QSO<<KwO$MUQbO<<KwO%(_QSO<<KwOOQQ<<Kw<<KwO!%tQ,UO<<KwO%QQUO<<KwO%(gQSO<<KwO%(rQ(CjO1G2kO%*}Q(CjO1G2mO%-YQ(CjO1G2XO%/kQ,UO,5>vOOQO-E<Y-E<YO%/uQbO,5>wO%QQUO,5>wOOQO-E<Z-E<ZO%0PQSO1G5oOOQ(CY<<I}<<I}O%0XQ$IUO1G0nO%2cQ$IUO1G0xO%2jQ$IUO1G0xO%4nQ$IUO1G0xO%4uQ$IUO1G0xO%6jQ$IUO1G0xO%7QQ$IUO1G0xO%9eQ$IUO1G0xO%9lQ$IUO1G0xO%;pQ$IUO1G0xO%;wQ$IUO1G0xO%=oQ$IUO1G0xO%>SQ(CjO<<JaO%?XQ$IUO1G0xO%@}Q$IUO'#J^O%CQQ$IUO1G1^O%C_Q$IUO1G0QO!)jQUO'#FlOOQO'#Jy'#JyOOQO1G1p1G1pO%CiQSO1G1oO%CnQ$IUO,5?QOOOO7+'c7+'cOOOO1G/S1G/SOOQ(CY1G4n1G4nO!'^Q,UO7+(ZO%CxQSO,5?RO9_QSO,5?ROOQO-E<e-E<eO%DWQSO1G6RO%DWQSO1G6RO%D`QSO1G6RO%DkQ,UO7+'sO%D{Q`O,5?TO%EVQSO,5?TO!%tQ,UO,5?TOOQO-E<g-E<gO%E[Q`O1G6SO%EfQSO1G6SOOQ(CW1G2c1G2cO$ mQSO1G2cOOQ(CW1G2b1G2bO%EnQSO1G2dO!%tQ,UO1G2dOOQ(CW1G2i1G2iO!>oQWO1G2bOBoQSO1G2cO%EsQSO1G2dO%E{QSO1G2cO!'^Q,UO7+*}OOQ(CY1G/[1G/[O%FWQSO1G/[OOQ(CY7+'n7+'nO%F]Q,UO7+'uO%FmQ(CjO<<KROOQ(CY<<KR<<KRO!%tQ,UO'#IlO%GaQSO,5@iO!%tQ,UO1G2gOOQQ<<Gx<<GxO!>dQ(C[O<<GxO%GiQ(CjO<<ItOOQ(CY<<It<<ItOOQO,5?^,5?^O%H]QSO,5?^O$%|QSO,5?^OOQO-E<p-E<pO%HbQSO1G6ZO%HbQSO1G6ZO9_QSO1G6ZO?rQSO<<LcOOQQ<<Lc<<LcO%HjQSO<<LcO9OQ(C[O<<LcO%HoQSO1G0sOOQQ<<LO<<LOO% dQ(ChO<<LOOOQQ<<LP<<LPO% nQ`O<<LPO%HtQWO'#InO%IPQSO,5@lO!)jQUO,5@lOOQQ1G2}1G2}O%IXQUO'#JgOOQO'#Ip'#IpO9OQ(C[O'#IpO%IcQWO,5=lOOQQ,5=l,5=lO%IjQWO'#E`O%JOQSO7+(qO%JTQSO7+(qOOQQ7+(q7+(qO!%tQ,UO7+(qO%QQUO7+(qO%J]QSO7+(qOOQQ7+(s7+(sO9OQ(C[O7+(sO#K`QSO7+(sO8tQSO7+(sO!>oQWO7+(sO%JhQSO,5?]OOQO-E<o-E<oOOQO'#HT'#HTO%JsQSO1G6XO9OQ(C[O<<GnOOQQ<<Gn<<GnO?rQSO<<GnO%J{QSO7++vO%KQQSO7++wOOQQ7+({7+({O%KVQSO7+({O%K[QUO7+({O%KcQSO7+({O%QQUO7++vO%QQUO7++wOOQQ<<Lo<<LoOOQQ<<Lq<<LqOOQQ-E<r-E<rOOQQ1G3p1G3pO%KhQSO,5>VOOQQ,5>X,5>XO%KmQSO1G3vO:vQSO7+&_O!)jQUO7+&_OOQO7+%X7+%XO%KrQ$IUO1G5yO>QQSO7+%XOOQ(CY<<I]<<I]OOQ(CY<<Is<<IsO>QQSO<<IsOOQO<<Il<<IlO$6nQ(CjO<<IlO%QQUO<<IlOOQO<<I`<<I`O!>dQ(C[O<<I`O%K|Q(C[O<<IlO%LXQ(CjO<<N|O%LiQSO<<N{OOQO7+*T7+*TO:vQSO7+*TOOQQANAcANAcO%LqQSOANAcO!%tQ,UOANAcO#![QSOANAcO$MUQbOANAcO%QQUOANAcO%LyQ(CjO7+'sO& [Q(CjO7+'uO&#mQbO1G4cO&#wQ$IUO7+&YO&$UQ$IUO,59nO&&XQ$IUO,5<dO&([Q$IUO,5<fO&*_Q$IUO,5<tO&,TQ$IUO7+'fO&,bQ$IUO7+'gO&,oQSO,5<WOOQO7+'Z7+'ZO&,tQ,UO<<KuOOQO1G4m1G4mO&,{QSO1G4mO&-WQSO1G4mO&-fQSO7++mO&-fQSO7++mO!%tQ,UO1G4oO&-nQ`O1G4oO&-xQSO7++nOOQ(CW7+'}7+'}O$ mQSO7+(OO&.QQ`O7+(OOOQ(CW7+'|7+'|O$ mQSO7+'}O&.XQSO7+(OO!%tQ,UO7+(OOBoQSO7+'}O&.^Q,UO<<NiOOQ(CY7+$v7+$vO&.hQ`O,5?WOOQO-E<j-E<jO&.rQ(ChO7+(ROOQQAN=dAN=dO9_QSO1G4xOOQO1G4x1G4xO&/SQSO1G4xO&/XQSO7++uO&/XQSO7++uO9OQ(C[OANA}O?rQSOANA}OOQQANA}ANA}OOQQANAjANAjOOQQANAkANAkO&/aQSO,5?YOOQO-E<l-E<lO&/lQ$IUO1G6WO&1|QbO'#CfOOQO,5?[,5?[OOQO-E<n-E<nOOQQ1G3W1G3WO%IXQUO,5<xOOQQ<<L]<<L]O!%tQ,UO<<L]O%JOQSO<<L]O&2WQSO<<L]O%QQUO<<L]OOQQ<<L_<<L_O9OQ(C[O<<L_O#K`QSO<<L_O8tQSO<<L_O&2`QWO1G4wO&2kQSO7++sOOQQAN=YAN=YO9OQ(C[OAN=YOOQQ<= b<= bOOQQ<= c<= cOOQQ<<Lg<<LgO&2sQSO<<LgO&2xQUO<<LgO&3PQSO<= bO&3UQSO<= cOOQQ1G3q1G3qO>QQSO7+)bO&3ZQSO<<IyO&3fQ$IUO<<IyOOQO<<Hs<<HsOOQ(CYAN?_AN?_OOQOAN?WAN?WO$6nQ(CjOAN?WOOQOAN>zAN>zO%QQUOAN?WOOQO<<Mo<<MoOOQQG26}G26}O!%tQ,UOG26}O#![QSOG26}O&3pQSOG26}O$MUQbOG26}O&3xQ$IUO<<JaO&4VQ$IUO1G2XO&5{Q$IUO1G2kO&8OQ$IUO1G2mO&:RQ$IUO<<KRO&:`Q$IUO<<ItOOQO1G1r1G1rO!'^Q,UOANAaOOQO7+*X7+*XO&:mQSO7+*XO&:xQSO<= XO&;QQ`O7+*ZOOQ(CW<<Kj<<KjO$ mQSO<<KjOOQ(CW<<Ki<<KiO&;[Q`O<<KjO$ mQSO<<KiOOQO7+*d7+*dO9_QSO7+*dO&;cQSO<= aOOQQG27iG27iO9OQ(C[OG27iO!)jQUO1G4tO&;kQSO7++rO%JOQSOANAwOOQQANAwANAwO!%tQ,UOANAwO&;sQSOANAwOOQQANAyANAyO9OQ(C[OANAyO#K`QSOANAyOOQO'#HU'#HUOOQO7+*c7+*cOOQQG22tG22tOOQQANBRANBRO&;{QSOANBROOQQAND|AND|OOQQAND}AND}OOQQ<<L|<<L|O!)jQUOAN?eOOQOG24rG24rO$6nQ(CjOG24rO#![QSOLD,iOOQQLD,iLD,iO!%tQ,UOLD,iO&<QQSOLD,iO&<YQ$IUO7+'sO&>OQ$IUO7+'uO&?tQ,UOG26{OOQO<<Ms<<MsOOQ(CWANAUANAUO$ mQSOANAUOOQ(CWANATANATOOQO<<NO<<NOOOQQLD-TLD-TO&@UQ$IUO7+*`OOQQG27cG27cO%JOQSOG27cO!%tQ,UOG27cOOQQG27eG27eO9OQ(C[OG27eOOQQG27mG27mO&@`Q$IUOG25POOQOLD*^LD*^OOQQ!$(!T!$(!TO#![QSO!$(!TO!%tQ,UO!$(!TO&@jQ(CjOG26{OOQ(CWG26pG26pOOQQLD,}LD,}O%JOQSOLD,}OOQQLD-PLD-POOQQ!)9Eo!)9EoO#![QSO!)9EoOOQQ!$(!i!$(!iOOQQ!.K;Z!.K;ZO&B{Q$IUOG26{O!)jQUO'#DvO0uQSO'#ETO&DqQbO'#JcO!)jQUO'#DnO&DxQUO'#DzO!)jQUO'#D|O&EPQbO'#CfO&GgQbO'#CfO&GwQUO,5;SO!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO,5;^O!)jQUO'#IfO&IzQSO,5<cO&JSQ,UO,5;^O&KgQ,UO,5;^O!)jQUO,5;rO0xQSO'#DSO0xQSO'#DSO!%tQ,UO'#FxO&JSQ,UO'#FxO!%tQ,UO'#FzO&JSQ,UO'#FzO!%tQ,UO'#GYO&JSQ,UO'#GYO!)jQUO,5:fO!)jQUO,5@_O&GwQUO1G0nO&KnQ$IUO'#CfO!)jQUO1G1zO!%tQ,UO,5=PO&JSQ,UO,5=PO!%tQ,UO,5=RO&JSQ,UO,5=RO!%tQ,UO,5<mO&JSQ,UO,5<mO&GwQUO1G1{O!)jQUO7+&uO!%tQ,UO1G2XO&JSQ,UO1G2XO!%tQ,UO1G2ZO&JSQ,UO1G2ZO&GwQUO7+'gO&GwQUO7+&YO!%tQ,UOANAaO&JSQ,UOANAaO&KxQSO'#EhO&K}QSO'#EhO&LVQSO'#FWO&L[QSO'#ErO&LaQSO'#JsO&LlQSO'#JqO&LwQSO,5;SO&L|Q,UO,5<`O&MTQSO'#GRO&MYQSO'#GRO&M_QSO,5<aO&MgQSO,5;SO&MoQ$IUO1G1ZO&MvQSO,5<mO&M{QSO,5<mO&NQQSO,5<oO&NVQSO,5<oO&N[QSO1G1{O&NaQSO1G0nO&NfQ,UO<<KuO&NmQ,UO<<KuO7^Q,UO'#FvO8tQSO'#FuO@mQSO'#EgO!)jQUO,5;oO!2dQSO'#GRO!2dQSO'#GRO!2dQSO'#GTO!2dQSO'#GTO!'^Q,UO7+(ZO!'^Q,UO7+(ZO$HyQ`O1G2oO$HyQ`O1G2oO!%tQ,UO,5=TO!%tQ,UO,5=T\",stateData:\"' v~O'mOS'nOSROS'oRQ~OPYOQYOV!TO^pOaxObwOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!XXO!csO!hZO!kYO!lYO!mYO!otO!quO!tvO!x]O#p}O$QzO$UfO%`{O%b!OO%d|O%e|O%h!PO%j!QO%m!RO%n!RO%p!SO%|!UO&S!VO&U!WO&W!XO&Y!YO&]!ZO&c![O&i!]O&k!^O&m!_O&o!`O&q!aO'tSO'vTO'yUO(RVO(a[O(niO~OPYOQYOa!gOb!fOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!X!cO!csO!hZO!kYO!lYO!mYO!otO!quO!t!eO$Q!hO$UfO't!bO'vTO'yUO(RVO(a[O(niO~O^!sOl!kO|!lO![!uO!]!rO!^!rO!x9mO!|!mO!}!mO#O!tO#P!mO#Q!mO#T!vO#U!vO'u!iO'vTO'yUO(U!jO(a!pO~O'o!wO~OPYXXYX^YXkYXyYXzYX|YX!VYX!eYX!fYX!hYX!lYX#XYX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX'kYX(RYX(bYX(iYX(jYX~O!a$zX~P(gO[!yO'v!{O'w!yO'x!{O~O[!|O'x!{O'y!{O'z!|O~Oq#OO!O#PO(S#PO(T#RO~OPYOQYOa!gOb!fOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!X!cO!csO!hZO!kYO!lYO!mYO!otO!quO!t!eO$Q!hO$UfO't9rO'vTO'yUO(RVO(a[O(niO~O!U#VO!V#SO!S(XP!S(fP~P+sO!W#_O~P`OPYOQYOa!gOb!fOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!X!cO!csO!hZO!kYO!lYO!mYO!otO!quO!t!eO$Q!hO$UfO'vTO'yUO(RVO(a[O(niO~Oi#iO!U#eO!x]O#b#hO#c#eO't9sO!g(cP~P._O!h#kO't#jO~O!t#oO!x]O%`#pO~O#d#qO~O!a#rO#d#qO~OP$YOX$aOk#}Oy#vOz#wO|#xO!V$^O!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO#u$UO#v$VO(RVO(b$WO(i#yO(j#zO~O^(VX'k(VX'i(VX!g(VX!S(VX!X(VX%a(VX!a(VX~P1gO#X$bO#{$bOP(WXX(WXk(WXy(WXz(WX|(WX!V(WX!e(WX!h(WX!l(WX#g(WX#h(WX#i(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#q(WX#s(WX#u(WX#v(WX(R(WX(b(WX(i(WX(j(WX!X(WX%a(WX~O^(WX!f(WX'k(WX'i(WX!S(WX!g(WXo(WX!a(WX~P3}O#X$bO~O$W$dO$Y$cO$a$iO~O!X$jO$UfO$d$kO$f$mO~Oi%POk$qOl$pOm$pOs%QOu%ROw%SO|$xO!X$yO!c%XO!h$uO#c%YO$Q%VO$m%TO$o%UO$r%WO't$oO'vTO'yUO'}%OO(R$rOd(OP~O!h%ZO~O!a%]O~O^%^O'k%^O~O'u!iO~P%QO't%eO~O!h%ZO't%eO'u!iO'}%OO~Ob%lO!h%ZO't%eO~O#o$PO~Oy%qO!X%nO!h%pO%b%tO't%eO'u!iO'vTO'yUO](vP~O!t#oO~O|%vO!X%wO't%eO~O|%vO!X%wO%j%{O't%eO~O't%|O~O#p}O%b!OO%d|O%e|O%h!PO%j!QO%m!RO%n!RO~Oa&VOb&UO!t&SO%`&TO%r&RO~P;fOa&YObwO!X&XO!tvO!x]O#p}O%`{O%d|O%e|O%h!PO%j!QO%m!RO%n!RO%p!SO~O_&]O#X&`O%b&ZO'u!iO~P<eO!h&aO!q&eO~O!h#kO~O!XXO~O^%^O'j&mO'k%^O~O^%^O'j&pO'k%^O~O^%^O'j&rO'k%^O~O'iYX!SYXoYX!gYX&QYX!XYX%aYX!aYX~P(gO!['PO!]&xO!^&xO'u!iO'vTO'yUO~Ol&vO|&uO!U&yO(U&tO!W(YP!W(hP~P?fOg'SO!X'QO't%eO~Ob'XO!h%ZO't%eO~Oy%qO!h%pO~Ol!kO|!lO!x9mO!|!mO!}!mO#P!mO#Q!mO'u!iO'vTO'yUO(U!jO(a!pO~O!['_O!]'^O!^'^O#O!mO#T'`O#U'`O~PAQO^%^O!a#rO!h%ZO'k%^O'}%OO(b'bO~O!l'fO#X'dO~PB`Ol!kO|!lO'vTO'yUO(U!jO(a!pO~O!XXOl(_X|(_X![(_X!](_X!^(_X!x(_X!|(_X!}(_X#O(_X#P(_X#Q(_X#T(_X#U(_X'u(_X'v(_X'y(_X(U(_X(a(_X~O!]'^O!^'^O'u!iO~PCOO'p'jO'q'jO'r'lO~O[!yO'v'nO'w!yO'x'nO~O[!|O'x'nO'y'nO'z!|O~Oq#OO!O#PO(S#PO(T'rO~O!U'tO!S&|X!S'SX!V&|X!V'SX~P+sO!V'vO!S(XX~OP$YOX$aOk#}Oy#vOz#wO|#xO!V'vO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO#u$UO#v$VO(RVO(b$WO(i#yO(j#zO~O!S(XX~PFrO!S'{O~O!S(eX!V(eX!a(eX!g(eX(b(eX~O#X(eX#d#]X!W(eX~PHxO#X'|O!S(gX!V(gX~O!V'}O!S(fX~O!S(QO~O#X$bO~PHxO!W(RO~P`Oy#vOz#wO|#xO!f#tO!h#uO(RVOP!jaX!jak!ja!V!ja!e!ja!l!ja#g!ja#h!ja#i!ja#j!ja#k!ja#l!ja#m!ja#n!ja#o!ja#q!ja#s!ja#u!ja#v!ja(b!ja(i!ja(j!ja~O^!ja'k!ja'i!ja!S!ja!g!jao!ja!X!ja%a!ja!a!ja~PJ`O!g(SO~O!a#rO#X(TO(b'bO!V(dX^(dX'k(dX~O!g(dX~PMOO|%vO!X%wO!x]O#b(YO#c(XO't%eO~O!V(ZO!g(cX~O!g(]O~O|%vO!X%wO#c(XO't%eO~OP(WXX(WXk(WXy(WXz(WX|(WX!V(WX!e(WX!f(WX!h(WX!l(WX#g(WX#h(WX#i(WX#j(WX#k(WX#l(WX#m(WX#n(WX#o(WX#q(WX#s(WX#u(WX#v(WX(R(WX(b(WX(i(WX(j(WX~O!a#rO!g(WX~PNlOy(^Oz(_O!f#tO!h#uO!x!wa|!wa~O!t!wa%`!wa!X!wa#b!wa#c!wa't!wa~P!!pO!t(cO~OPYOQYOa!gOb!fOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!XXO!csO!hZO!kYO!lYO!mYO!otO!quO!t!eO$Q!hO$UfO't!bO'vTO'yUO(RVO(a[O(niO~Oi%POk$qOl$pOm$pOs%QOu%ROw:VO|$xO!X$yO!c;aO!h$uO#c:]O$Q%VO$m:XO$o:ZO$r%WO't(gO'vTO'yUO'}%OO(R$rO~O#d(iO~Oi%POk$qOl$pOm$pOs%QOu%ROw%SO|$xO!X$yO!c%XO!h$uO#c%YO$Q%VO$m%TO$o%UO$r%WO't(gO'vTO'yUO'}%OO(R$rO~Od([P~P!'^O!U(mO!g(]P~P%QO(U(oO(a[O~O|(qO!h#uO(U(oO(a[O~OP9lOQ9lOa;]Ob!fOikOk9lOlkOmkOskOu9lOw9lO|WO!QkO!RkO!X!cO!c9oO!hZO!k9lO!l9lO!m9lO!o9pO!q9qO!t!eO$Q!hO$UfO't)PO'vTO'yUO(RVO(a[O(n;ZO~Oz)SO!h#uO~O!V$^O^$ka'k$ka'i$ka!g$ka!S$ka!X$ka%a$ka!a$ka~O#p)WO~P!%tOy)ZO!a)YO!X$XX$T$XX$W$XX$Y$XX$a$XX~O!a)YO!X(kX$T(kX$W(kX$Y(kX$a(kX~Oy)ZO~P!-SOy)ZO!X(kX$T(kX$W(kX$Y(kX$a(kX~O!X)]O$T)aO$W)[O$Y)[O$a)bO~O!U)eO~P!)jO$W$dO$Y$cO$a)iO~Og$sXy$sX|$sX!f$sX(i$sX(j$sX~OdfXd$sXgfX!VfX#XfX~P!.xOl)kO~Oq)lO(S)mO(T)oO~Og)xOy)qO|)rO(i)tO(j)vO~Od)pO~P!0ROd)yO~Oi%POk$qOl$pOm$pOs%QOu%ROw:VO|$xO!X$yO!c;aO!h$uO#c:]O$Q%VO$m:XO$o:ZO$r%WO'vTO'yUO'}%OO(R$rO~O!U)}O't)zO!g(oP~P!0pO#d*PO~O!h*QO~O!U*VO't*SO!S(pP~P!0pOk*cO|*ZO![*aO!]*YO!^*YO!h*QO#T*bO%W*]O'u!iO(U!jO~O!W*`O~P!2vO!f#tOg(QXy(QX|(QX(i(QX(j(QX!V(QX#X(QX~Od(QX#y(QX~P!3oOg*fO#X*eOd(PX!V(PX~O!V*gOd(OX~O't%|Od(OP~O!h*nO~O't(gO~Oi*rO|%vO!U#eO!X%wO!x]O#b#hO#c#eO't%eO!g(cP~O!a#rO#d*sO~OP$YOX$aOk#}Oy#vOz#wO|#xO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO#u$UO#v$VO(RVO(b$WO(i#yO(j#zO~O^!ba!V!ba'k!ba'i!ba!S!ba!g!bao!ba!X!ba%a!ba!a!ba~P!6UOy#vOz#wO|#xO!f#tO!h#uO(RVOP!naX!nak!na!V!na!e!na!l!na#g!na#h!na#i!na#j!na#k!na#l!na#m!na#n!na#o!na#q!na#s!na#u!na#v!na(b!na(i!na(j!na~O^!na'k!na'i!na!S!na!g!nao!na!X!na%a!na!a!na~P!8oOy#vOz#wO|#xO!f#tO!h#uO(RVOP!paX!pak!pa!V!pa!e!pa!l!pa#g!pa#h!pa#i!pa#j!pa#k!pa#l!pa#m!pa#n!pa#o!pa#q!pa#s!pa#u!pa#v!pa(b!pa(i!pa(j!pa~O^!pa'k!pa'i!pa!S!pa!g!pao!pa!X!pa%a!pa!a!pa~P!;YOg*{O!X'QO%a*zO'}%OO~O!a*}O^'|X!X'|X'k'|X!V'|X~O^%^O!XXO'k%^O~O!h%ZO'}%OO~O!h%ZO't%eO'}%OO~O!a#rO#d(iO~O%b+ZO't+VO'vTO'yUO!W(wP~O!V+[O](vX~O(U(oO~OX+`O~O]+aO~O!X%nO't%eO'u!iO](vP~O|%vO!U+eO!V'}O!X%wO't%eO!S(fP~Ol&|O|+gO!U+fO'vTO'yUO(U(oO~O!W(hP~P!@xO!V+hO^(sX'k(sX~O#X+lO'}%OO~Og+oO!X$yO'}%OO~O!X+qO~Oy+sO!XXO~O!t+xO~Ob+}O~O't#jO!W(uP~Ob%lO~O%b!OO't%|O~P<eOX,TO],SO~OPYOQYOaxObwOikOkYOlkOmkOskOuYOwYO|WO!QkO!RkO!csO!hZO!kYO!lYO!mYO!otO!quO!tvO!x]O$UfO%`{O'vTO'yUO(RVO(a[O(niO~O!X!cO$Q!hO't!bO~P!C]O],SO^%^O'k%^O~O^,XO#p,ZO%d,ZO%e,ZO~P%QO!h&aO~O&S,`O~O!X,bO~O&e,dO&g,eOP&baQ&baV&ba^&baa&bab&bai&bak&bal&bam&bas&bau&baw&ba|&ba!Q&ba!R&ba!X&ba!c&ba!h&ba!k&ba!l&ba!m&ba!o&ba!q&ba!t&ba!x&ba#p&ba$Q&ba$U&ba%`&ba%b&ba%d&ba%e&ba%h&ba%j&ba%m&ba%n&ba%p&ba%|&ba&S&ba&U&ba&W&ba&Y&ba&]&ba&c&ba&i&ba&k&ba&m&ba&o&ba&q&ba'i&ba't&ba'v&ba'y&ba(R&ba(a&ba(n&ba!W&ba&Z&ba_&ba&`&ba~O't,jO~O!V{X!V!_X!W{X!W!_X!a{X!a!_X!h!_X#X{X'}!_X~O!a,oO#X,nO!V#aX!V(ZX!W#aX!W(ZX!a(ZX!h(ZX'}(ZX~O!a,qO!h%ZO'}%OO!V!ZX!W!ZX~Ol!kO|!lO'vTO'yUO(U!jO~OP9lOQ9lOa;]Ob!fOikOk9lOlkOmkOskOu9lOw9lO|WO!QkO!RkO!X!cO!c9oO!hZO!k9lO!l9lO!m9lO!o9pO!q9qO!t!eO$Q!hO$UfO'vTO'yUO(RVO(a[O(n;ZO~O't:bO~P!LrO!V,uO!W(YX~O!W,wO~O!a,oO#X,nO!V#aX!W#aX~O!V,xO!W(hX~O!W,zO~O!],{O!^,{O'u!iO~P!LaO!W-OO~P'TOg-RO!X'QO~O!S-WO~Ol!wa![!wa!]!wa!^!wa!|!wa!}!wa#O!wa#P!wa#Q!wa#T!wa#U!wa'u!wa'v!wa'y!wa(U!wa(a!wa~P!!pO!l-]O#X-ZO~PB`O!]-_O!^-_O'u!iO~PCOO^%^O#X-ZO'k%^O~O^%^O!a#rO#X-ZO'k%^O~O^%^O!a#rO!l-]O#X-ZO'k%^O(b'bO~O'p'jO'q'jO'r-dO~Oo-eO~O!S&|a!V&|a~P!6UO!U-iO!S&|X!V&|X~P%QO!V'vO!S(Xa~O!S(Xa~PFrO!V'}O!S(fa~O|%vO!U-mO!X%wO't%eO!S'SX!V'SX~O#X-oO!V(da!g(da^(da'k(da~O!a#rO~P#&xO!V(ZO!g(ca~O|%vO!X%wO#c-sO't%eO~Oi-xO|%vO!U-uO!X%wO!x]O#b-wO#c-uO't%eO!V'VX!g'VX~Oz-|O!h#uO~Og.PO!X'QO%a.OO'}%OO~O^#[i!V#[i'k#[i'i#[i!S#[i!g#[io#[i!X#[i%a#[i!a#[i~P!6UOg;gOy)qO|)rO(i)tO(j)vO~O#d#Wa^#Wa#X#Wa'k#Wa!V#Wa!g#Wa!X#Wa!S#Wa~P#)tO#d(QXP(QXX(QX^(QXk(QXz(QX!e(QX!h(QX!l(QX#g(QX#h(QX#i(QX#j(QX#k(QX#l(QX#m(QX#n(QX#o(QX#q(QX#s(QX#u(QX#v(QX'k(QX(R(QX(b(QX!g(QX!S(QX'i(QXo(QX!X(QX%a(QX!a(QX~P!3oO!V.YOd([X~P!0ROd.[O~O!V.]O!g(]X~P!6UO!g.`O~O!S.bO~OP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO(RVOX#fi^#fik#fi!V#fi!e#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi'k#fi(b#fi(i#fi(j#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~O#g#fi~P#-pO#g#{O~P#-pOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O(RVOX#fi^#fi!V#fi!e#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi'k#fi(b#fi(i#fi(j#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~Ok#fi~P#0bOk#}O~P#0bOP$YOk#}Oy#vOz#wO|#xO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO(RVO^#fi!V#fi#q#fi#s#fi#u#fi#v#fi'k#fi(b#fi(i#fi(j#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~OX#fi!e#fi#l#fi#m#fi#n#fi#o#fi~P#3SOX$aO!e$PO#l$PO#m$PO#n$`O#o$PO~P#3SOP$YOX$aOk#}Oy#vOz#wO|#xO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO(RVO^#fi!V#fi#s#fi#u#fi#v#fi'k#fi(b#fi(j#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~O(i#fi~P#6TO(i#yO~P#6TOP$YOX$aOk#}Oy#vOz#wO|#xO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO(RVO(i#yO^#fi!V#fi#u#fi#v#fi'k#fi(b#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~O(j#fi~P#8uO(j#zO~P#8uOP$YOX$aOk#}Oy#vOz#wO|#xO!e$PO!f#tO!h#uO!l$YO#g#{O#h#|O#i#|O#j#|O#k$OO#l$PO#m$PO#n$`O#o$PO#q$QO#s$SO#u$UO(RVO(i#yO(j#zO~O^#fi!V#fi#v#fi'k#fi(b#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~P#;gOPYXXYXkYXyYXzYX|YX!eYX!fYX!hYX!lYX#XYX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX(RYX(bYX(iYX(jYX!VYX!WYX~O#yYX~P#>QOP$YOX:TOk9wOy#vOz#wO|#xO!e9yO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO#l9yO#m9yO#n:SO#o9yO#q9zO#s9|O#u:OO#v:PO(RVO(b$WO(i#yO(j#zO~O#y.dO~P#@_O#X:UO#{:UO#y(WX!W(WX~PNlO^'Ya!V'Ya'k'Ya'i'Ya!g'Ya!S'Yao'Ya!X'Ya%a'Ya!a'Ya~P!6UOP#fiX#fi^#fik#fiz#fi!V#fi!e#fi!f#fi!h#fi!l#fi#g#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi'k#fi(R#fi(b#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~P#)tO^#zi!V#zi'k#zi'i#zi!S#zi!g#zio#zi!X#zi%a#zi!a#zi~P!6UO$W.iO$Y.iO~O$W.jO$Y.jO~O!a)YO#X.kO!X$^X$T$^X$W$^X$Y$^X$a$^X~O!U.lO~O!X)]O$T.nO$W)[O$Y)[O$a.oO~O!V:QO!W(VX~P#@_O!W.pO~O!a)YO$a(kX~O$a.rO~Oq)lO(S)mO(T.uO~Ol.xO!S.yO'vTO'yUO~O!VcX!acX!gcX!g$sX(bcX~P!.xO!g/PO~P#)tO!V/QO!a#rO(b'bO!g(oX~O!g/VO~O!U)}O't%eO!g(oP~O#d/XO~O!S$sX!V$sX!a$zX~P!.xO!V/YO!S(pX~P#)tO!a/[O~O!S/^O~Ok/bO!a#rO!h%ZO'}%OO(b'bO~O't/dO~O!a*}O~O^%^O!V/hO'k%^O~O!W/jO~P!2vO!]/kO!^/kO'u!iO(U!jO~O|/mO(U!jO~O#T/nO~O't%|Od'_X!V'_X~O!V*gOd(Oa~Od/sO~Oy/tOz/tO|/uOgva(iva(jva!Vva#Xva~Odva#yva~P#L|Oy)qO|)rOg$la(i$la(j$la!V$la#X$la~Od$la#y$la~P#MrOy)qO|)rOg$na(i$na(j$na!V$na#X$na~Od$na#y$na~P#NeO#d/wO~Od$|a!V$|a#X$|a#y$|a~P!0RO!a#rO~O#d/zO~Oy#vOz#wO|#xO!f#tO!h#uO(RVOP!niX!nik!ni!V!ni!e!ni!l!ni#g!ni#h!ni#i!ni#j!ni#k!ni#l!ni#m!ni#n!ni#o!ni#q!ni#s!ni#u!ni#v!ni(b!ni(i!ni(j!ni~O^!ni'k!ni'i!ni!S!ni!g!nio!ni!X!ni%a!ni!a!ni~P$ wOg.PO!X'QO%a.OO~Oi0RO't0QO~P!0sO!a*}O^'|a!X'|a'k'|a!V'|a~O#d0XO~OXYX!VcX!WcX~O!V0YO!W(wX~O!W0[O~OX0]O~O't+VO'vTO'yUO~O!X%nO't%eO]'gX!V'gX~O!V+[O](va~O!g0bO~P!6UOX0eO~O]0fO~O!V+hO^(sa'k(sa~O#X0lO~Og0oO!X$yO~O(U(oO!W(tP~Og0xO!X0uO%a0wO'}%OO~OX1SO!V1QO!W(uX~O!W1TO~O]1VO^%^O'k%^O~O't#jO'vTO'yUO~O#X$bO#{$bOP(WXX(WXk(WXy(WXz(WX|(WX!V(WX!e(WX!h(WX!l(WX#g(WX#h(WX#i(WX#j(WX#k(WX#l(WX#m(WX#n(WX#q(WX#s(WX#u(WX#v(WX(R(WX(b(WX(i(WX(j(WX~O#o1YO&Q1ZO^(WX!f(WX~P$(xO#X$bO#o1YO&Q1ZO~O^1[O~P%QO^1^O~O&Z1bOP&XiQ&XiV&Xi^&Xia&Xib&Xii&Xik&Xil&Xim&Xis&Xiu&Xiw&Xi|&Xi!Q&Xi!R&Xi!X&Xi!c&Xi!h&Xi!k&Xi!l&Xi!m&Xi!o&Xi!q&Xi!t&Xi!x&Xi#p&Xi$Q&Xi$U&Xi%`&Xi%b&Xi%d&Xi%e&Xi%h&Xi%j&Xi%m&Xi%n&Xi%p&Xi%|&Xi&S&Xi&U&Xi&W&Xi&Y&Xi&]&Xi&c&Xi&i&Xi&k&Xi&m&Xi&o&Xi&q&Xi'i&Xi't&Xi'v&Xi'y&Xi(R&Xi(a&Xi(n&Xi!W&Xi_&Xi&`&Xi~O_1hO!W1fO&`1gO~P`O!XXO!h1jO~O&g,eOP&biQ&biV&bi^&bia&bib&bii&bik&bil&bim&bis&biu&biw&bi|&bi!Q&bi!R&bi!X&bi!c&bi!h&bi!k&bi!l&bi!m&bi!o&bi!q&bi!t&bi!x&bi#p&bi$Q&bi$U&bi%`&bi%b&bi%d&bi%e&bi%h&bi%j&bi%m&bi%n&bi%p&bi%|&bi&S&bi&U&bi&W&bi&Y&bi&]&bi&c&bi&i&bi&k&bi&m&bi&o&bi&q&bi'i&bi't&bi'v&bi'y&bi(R&bi(a&bi(n&bi!W&bi&Z&bi_&bi&`&bi~O!S1pO~O!V!Za!W!Za~P#@_Ol!kO|!lO!U1vO(U!jO!V&}X!W&}X~P?fO!V,uO!W(Ya~O!V'TX!W'TX~P!@xO!V,xO!W(ha~O!W1}O~P'TO^%^O#X2WO'k%^O~O^%^O!a#rO#X2WO'k%^O~O^%^O!a#rO!l2[O#X2WO'k%^O(b'bO~O^%^O'k%^O~P!6UO!V$^Oo$ka~O!S&|i!V&|i~P!6UO!V'vO!S(Xi~O!V'}O!S(fi~O!S(gi!V(gi~P!6UO!V(di!g(di^(di'k(di~P!6UO#X2^O!V(di!g(di^(di'k(di~O!V(ZO!g(ci~O|%vO!X%wO!x]O#b2cO#c2bO't%eO~O|%vO!X%wO#c2bO't%eO~Og2jO!X'QO%a2iO~Og2jO!X'QO%a2iO'}%OO~O#dvaPvaXva^vakva!eva!fva!hva!lva#gva#hva#iva#jva#kva#lva#mva#nva#ova#qva#sva#uva#vva'kva(Rva(bva!gva!Sva'ivaova!Xva%ava!ava~P#L|O#d$laP$laX$la^$lak$laz$la!e$la!f$la!h$la!l$la#g$la#h$la#i$la#j$la#k$la#l$la#m$la#n$la#o$la#q$la#s$la#u$la#v$la'k$la(R$la(b$la!g$la!S$la'i$lao$la!X$la%a$la!a$la~P#MrO#d$naP$naX$na^$nak$naz$na!e$na!f$na!h$na!l$na#g$na#h$na#i$na#j$na#k$na#l$na#m$na#n$na#o$na#q$na#s$na#u$na#v$na'k$na(R$na(b$na!g$na!S$na'i$nao$na!X$na%a$na!a$na~P#NeO#d$|aP$|aX$|a^$|ak$|az$|a!V$|a!e$|a!f$|a!h$|a!l$|a#g$|a#h$|a#i$|a#j$|a#k$|a#l$|a#m$|a#n$|a#o$|a#q$|a#s$|a#u$|a#v$|a'k$|a(R$|a(b$|a!g$|a!S$|a'i$|a#X$|ao$|a!X$|a%a$|a!a$|a~P#)tO^#[q!V#[q'k#[q'i#[q!S#[q!g#[qo#[q!X#[q%a#[q!a#[q~P!6UOd'OX!V'OX~P!'^O!V.YOd([a~O!U2rO!V'PX!g'PX~P%QO!V.]O!g(]a~O!V.]O!g(]a~P!6UO!S2uO~O#y!ja!W!ja~PJ`O#y!ba!V!ba!W!ba~P#@_O#y!na!W!na~P!8oO#y!pa!W!pa~P!;YO!X3XO$UfO$_3YO~O!W3^O~Oo3_O~P#)tO^$hq!V$hq'k$hq'i$hq!S$hq!g$hqo$hq!X$hq%a$hq!a$hq~P!6UO!S3`O~Ol.xO'vTO'yUO~Oy)qO|)rO(j)vOg%Xi(i%Xi!V%Xi#X%Xi~Od%Xi#y%Xi~P$GeOy)qO|)rOg%Zi(i%Zi(j%Zi!V%Zi#X%Zi~Od%Zi#y%Zi~P$HWO(b$WO~P#)tO!U3cO't%eO!V'ZX!g'ZX~O!V/QO!g(oa~O!V/QO!a#rO!g(oa~O!V/QO!a#rO(b'bO!g(oa~Od$ui!V$ui#X$ui#y$ui~P!0RO!U3kO't*SO!S']X!V']X~P!0pO!V/YO!S(pa~O!V/YO!S(pa~P#)tO!a#rO#o3sO~Ok3vO!a#rO(b'bO~Od(Pi!V(Pi~P!0RO#X3yOd(Pi!V(Pi~P!0RO!g3|O~O^$iq!V$iq'k$iq'i$iq!S$iq!g$iqo$iq!X$iq%a$iq!a$iq~P!6UO!V4QO!X(qX~P#)tO!f#tO~P3}O^$sX!X$sX%UYX'k$sX!V$sX~P!.xO%U4SO^hXghXyhX|hX!XhX'khX(ihX(jhX!VhX~O%U4SO~O%b4ZO't+VO'vTO'yUO!V'fX!W'fX~O!V0YO!W(wa~OX4_O~O]4`O~O!S4dO~O^%^O'k%^O~P#)tO!X$yO~P#)tO!V4iO#X4kO!W(tX~O!W4lO~Ol!kO|4mO![!uO!]!rO!^!rO!x9mO!|!mO!}!mO#O!mO#P!mO#Q!mO#T4rO#U!vO'u!iO'vTO'yUO(U!jO(a!pO~O!W4qO~P%!VOg4wO!X0uO%a4vO~Og4wO!X0uO%a4vO'}%OO~O't#jO!V'eX!W'eX~O!V1QO!W(ua~O'vTO'yUO(U5QO~O]5UO~O!g5XO~P%QO^5ZO~O^5ZO~P%QO#o5]O&Q5^O~PMOO_1hO!W5bO&`1gO~P`O!a5dO~O!a5fO!V(Zi!W(Zi!a(Zi!h(Zi'}(Zi~O!V#ai!W#ai~P#@_O#X5gO!V#ai!W#ai~O!V!Zi!W!Zi~P#@_O^%^O#X5pO'k%^O~O^%^O!a#rO#X5pO'k%^O~O!V(dq!g(dq^(dq'k(dq~P!6UO!V(ZO!g(cq~O|%vO!X%wO#c5wO't%eO~O!X'QO%a5zO~Og5}O!X'QO%a5zO~O#d%XiP%XiX%Xi^%Xik%Xiz%Xi!e%Xi!f%Xi!h%Xi!l%Xi#g%Xi#h%Xi#i%Xi#j%Xi#k%Xi#l%Xi#m%Xi#n%Xi#o%Xi#q%Xi#s%Xi#u%Xi#v%Xi'k%Xi(R%Xi(b%Xi!g%Xi!S%Xi'i%Xio%Xi!X%Xi%a%Xi!a%Xi~P$GeO#d%ZiP%ZiX%Zi^%Zik%Ziz%Zi!e%Zi!f%Zi!h%Zi!l%Zi#g%Zi#h%Zi#i%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#q%Zi#s%Zi#u%Zi#v%Zi'k%Zi(R%Zi(b%Zi!g%Zi!S%Zi'i%Zio%Zi!X%Zi%a%Zi!a%Zi~P$HWO#d$uiP$uiX$ui^$uik$uiz$ui!V$ui!e$ui!f$ui!h$ui!l$ui#g$ui#h$ui#i$ui#j$ui#k$ui#l$ui#m$ui#n$ui#o$ui#q$ui#s$ui#u$ui#v$ui'k$ui(R$ui(b$ui!g$ui!S$ui'i$ui#X$uio$ui!X$ui%a$ui!a$ui~P#)tOd'Oa!V'Oa~P!0RO!V'Pa!g'Pa~P!6UO!V.]O!g(]i~O#y#[i!V#[i!W#[i~P#@_OP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO(RVOX#fik#fi!e#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi#y#fi(b#fi(i#fi(j#fi!V#fi!W#fi~O#g#fi~P%0fO#g9uO~P%0fOP$YOy#vOz#wO|#xO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO(RVOX#fi!e#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi#y#fi(b#fi(i#fi(j#fi!V#fi!W#fi~Ok#fi~P%2qOk9wO~P%2qOP$YOk9wOy#vOz#wO|#xO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO(RVO#q#fi#s#fi#u#fi#v#fi#y#fi(b#fi(i#fi(j#fi!V#fi!W#fi~OX#fi!e#fi#l#fi#m#fi#n#fi#o#fi~P%4|OX:TO!e9yO#l9yO#m9yO#n:SO#o9yO~P%4|OP$YOX:TOk9wOy#vOz#wO|#xO!e9yO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO#l9yO#m9yO#n:SO#o9yO#q9zO(RVO#s#fi#u#fi#v#fi#y#fi(b#fi(j#fi!V#fi!W#fi~O(i#fi~P%7hO(i#yO~P%7hOP$YOX:TOk9wOy#vOz#wO|#xO!e9yO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO#l9yO#m9yO#n:SO#o9yO#q9zO#s9|O(RVO(i#yO#u#fi#v#fi#y#fi(b#fi!V#fi!W#fi~O(j#fi~P%9sO(j#zO~P%9sOP$YOX:TOk9wOy#vOz#wO|#xO!e9yO!f#tO!h#uO!l$YO#g9uO#h9vO#i9vO#j9vO#k9xO#l9yO#m9yO#n:SO#o9yO#q9zO#s9|O#u:OO(RVO(i#yO(j#zO~O#v#fi#y#fi(b#fi!V#fi!W#fi~P%<OO^#wy!V#wy'k#wy'i#wy!S#wy!g#wyo#wy!X#wy%a#wy!a#wy~P!6UOg;hOy)qO|)rO(i)tO(j)vO~OP#fiX#fik#fiz#fi!e#fi!f#fi!h#fi!l#fi#g#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi#y#fi(R#fi(b#fi!V#fi!W#fi~P%>vO!f#tOP(QXX(QXg(QXk(QXy(QXz(QX|(QX!e(QX!h(QX!l(QX#g(QX#h(QX#i(QX#j(QX#k(QX#l(QX#m(QX#n(QX#o(QX#q(QX#s(QX#u(QX#v(QX#y(QX(R(QX(b(QX(i(QX(j(QX!V(QX!W(QX~O#y#zi!V#zi!W#zi~P#@_O#y!ni!W!ni~P$ wO!W6ZO~O!V'Ya!W'Ya~P#@_O!a#rO(b'bO!V'Za!g'Za~O!V/QO!g(oi~O!V/QO!a#rO!g(oi~Od$uq!V$uq#X$uq#y$uq~P!0RO!S']a!V']a~P#)tO!a6bO~O!V/YO!S(pi~P#)tO!V/YO!S(pi~O!S6fO~O!a#rO#o6kO~Ok6lO!a#rO(b'bO~O!S6nO~Od$wq!V$wq#X$wq#y$wq~P!0RO^$iy!V$iy'k$iy'i$iy!S$iy!g$iyo$iy!X$iy%a$iy!a$iy~P!6UO!V4QO!X(qa~O^#[y!V#[y'k#[y'i#[y!S#[y!g#[yo#[y!X#[y%a#[y!a#[y~P!6UOX6sO~O!V0YO!W(wi~O]6yO~O!a5fO~O(U(oO!V'bX!W'bX~O!V4iO!W(ta~OikO't7QO~P._O!W7TO~P%!VOl!kO|7UO'vTO'yUO(U!jO(a!pO~O!X0uO~O!X0uO%a7WO~Og7ZO!X0uO%a7WO~OX7`O!V'ea!W'ea~O!V1QO!W(ui~O!g7dO~O!g7eO~O!g7fO~O!g7fO~P%QO^7hO~O!a7kO~O!g7lO~O!V(gi!W(gi~P#@_O^%^O#X7tO'k%^O~O!V(dy!g(dy^(dy'k(dy~P!6UO!V(ZO!g(cy~O!X'QO%a7wO~O#d$uqP$uqX$uq^$uqk$uqz$uq!V$uq!e$uq!f$uq!h$uq!l$uq#g$uq#h$uq#i$uq#j$uq#k$uq#l$uq#m$uq#n$uq#o$uq#q$uq#s$uq#u$uq#v$uq'k$uq(R$uq(b$uq!g$uq!S$uq'i$uq#X$uqo$uq!X$uq%a$uq!a$uq~P#)tO#d$wqP$wqX$wq^$wqk$wqz$wq!V$wq!e$wq!f$wq!h$wq!l$wq#g$wq#h$wq#i$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#q$wq#s$wq#u$wq#v$wq'k$wq(R$wq(b$wq!g$wq!S$wq'i$wq#X$wqo$wq!X$wq%a$wq!a$wq~P#)tO!V'Pi!g'Pi~P!6UO#y#[q!V#[q!W#[q~P#@_Oy/tOz/tO|/uOPvaXvagvakva!eva!fva!hva!lva#gva#hva#iva#jva#kva#lva#mva#nva#ova#qva#sva#uva#vva#yva(Rva(bva(iva(jva!Vva!Wva~Oy)qO|)rOP$laX$lag$lak$laz$la!e$la!f$la!h$la!l$la#g$la#h$la#i$la#j$la#k$la#l$la#m$la#n$la#o$la#q$la#s$la#u$la#v$la#y$la(R$la(b$la(i$la(j$la!V$la!W$la~Oy)qO|)rOP$naX$nag$nak$naz$na!e$na!f$na!h$na!l$na#g$na#h$na#i$na#j$na#k$na#l$na#m$na#n$na#o$na#q$na#s$na#u$na#v$na#y$na(R$na(b$na(i$na(j$na!V$na!W$na~OP$|aX$|ak$|az$|a!e$|a!f$|a!h$|a!l$|a#g$|a#h$|a#i$|a#j$|a#k$|a#l$|a#m$|a#n$|a#o$|a#q$|a#s$|a#u$|a#v$|a#y$|a(R$|a(b$|a!V$|a!W$|a~P%>vO#y$hq!V$hq!W$hq~P#@_O#y$iq!V$iq!W$iq~P#@_O!W8RO~O#y8SO~P!0RO!a#rO!V'Zi!g'Zi~O!a#rO(b'bO!V'Zi!g'Zi~O!V/QO!g(oq~O!S']i!V']i~P#)tO!V/YO!S(pq~O!S8YO~P#)tO!S8YO~Od(Py!V(Py~P!0RO!V'`a!X'`a~P#)tO^%Tq!X%Tq'k%Tq!V%Tq~P#)tOX8_O~O!V0YO!W(wq~O#X8cO!V'ba!W'ba~O!V4iO!W(ti~P#@_OPYXXYXkYXyYXzYX|YX!SYX!VYX!eYX!fYX!hYX!lYX#XYX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX(RYX(bYX(iYX(jYX~O!a%RX#o%RX~P&/vO!X0uO%a8gO~O'vTO'yUO(U8lO~O!V1QO!W(uq~O!g8oO~O!g8oO~P%QO!g8qO~O!g8rO~O#X8tO!V#ay!W#ay~O!V#ay!W#ay~P#@_O!X'QO%a8yO~O#y#wy!V#wy!W#wy~P#@_OP$uiX$uik$uiz$ui!e$ui!f$ui!h$ui!l$ui#g$ui#h$ui#i$ui#j$ui#k$ui#l$ui#m$ui#n$ui#o$ui#q$ui#s$ui#u$ui#v$ui#y$ui(R$ui(b$ui!V$ui!W$ui~P%>vOy)qO|)rO(j)vOP%XiX%Xig%Xik%Xiz%Xi!e%Xi!f%Xi!h%Xi!l%Xi#g%Xi#h%Xi#i%Xi#j%Xi#k%Xi#l%Xi#m%Xi#n%Xi#o%Xi#q%Xi#s%Xi#u%Xi#v%Xi#y%Xi(R%Xi(b%Xi(i%Xi!V%Xi!W%Xi~Oy)qO|)rOP%ZiX%Zig%Zik%Ziz%Zi!e%Zi!f%Zi!h%Zi!l%Zi#g%Zi#h%Zi#i%Zi#j%Zi#k%Zi#l%Zi#m%Zi#n%Zi#o%Zi#q%Zi#s%Zi#u%Zi#v%Zi#y%Zi(R%Zi(b%Zi(i%Zi(j%Zi!V%Zi!W%Zi~O#y$iy!V$iy!W$iy~P#@_O#y#[y!V#[y!W#[y~P#@_O!a#rO!V'Zq!g'Zq~O!V/QO!g(oy~O!S']q!V']q~P#)tO!S9QO~P#)tO!V0YO!W(wy~O!V4iO!W(tq~O!X0uO%a9XO~O!g9[O~O!X'QO%a9aO~OP$uqX$uqk$uqz$uq!e$uq!f$uq!h$uq!l$uq#g$uq#h$uq#i$uq#j$uq#k$uq#l$uq#m$uq#n$uq#o$uq#q$uq#s$uq#u$uq#v$uq#y$uq(R$uq(b$uq!V$uq!W$uq~P%>vOP$wqX$wqk$wqz$wq!e$wq!f$wq!h$wq!l$wq#g$wq#h$wq#i$wq#j$wq#k$wq#l$wq#m$wq#n$wq#o$wq#q$wq#s$wq#u$wq#v$wq#y$wq(R$wq(b$wq!V$wq!W$wq~P%>vOd%]!Z!V%]!Z#X%]!Z#y%]!Z~P!0RO!V'bq!W'bq~P#@_O!V#a!Z!W#a!Z~P#@_O#d%]!ZP%]!ZX%]!Z^%]!Zk%]!Zz%]!Z!V%]!Z!e%]!Z!f%]!Z!h%]!Z!l%]!Z#g%]!Z#h%]!Z#i%]!Z#j%]!Z#k%]!Z#l%]!Z#m%]!Z#n%]!Z#o%]!Z#q%]!Z#s%]!Z#u%]!Z#v%]!Z'k%]!Z(R%]!Z(b%]!Z!g%]!Z!S%]!Z'i%]!Z#X%]!Zo%]!Z!X%]!Z%a%]!Z!a%]!Z~P#)tOP%]!ZX%]!Zk%]!Zz%]!Z!e%]!Z!f%]!Z!h%]!Z!l%]!Z#g%]!Z#h%]!Z#i%]!Z#j%]!Z#k%]!Z#l%]!Z#m%]!Z#n%]!Z#o%]!Z#q%]!Z#s%]!Z#u%]!Z#v%]!Z#y%]!Z(R%]!Z(b%]!Z!V%]!Z!W%]!Z~P%>vOo(VX~P1gO'u!iO~P!)jO!ScX!VcX#XcX~P&/vOPYXXYXkYXyYXzYX|YX!VYX!VcX!eYX!fYX!hYX!lYX#XYX#XcX#dcX#gYX#hYX#iYX#jYX#kYX#lYX#mYX#nYX#oYX#qYX#sYX#uYX#vYX#{YX(RYX(bYX(iYX(jYX~O!acX!gYX!gcX(bcX~P&E^OP9lOQ9lOa;]Ob!fOikOk9lOlkOmkOskOu9lOw9lO|WO!QkO!RkO!XXO!c9oO!hZO!k9lO!l9lO!m9lO!o9pO!q9qO!t!eO$Q!hO$UfO't)PO'vTO'yUO(RVO(a[O(n;ZO~O!V:QO!W$ka~Oi%POk$qOl$pOm$pOs%QOu%ROw:WO|$xO!X$yO!c;bO!h$uO#c:^O$Q%VO$m:YO$o:[O$r%WO't(gO'vTO'yUO'}%OO(R$rO~O#p)WO~P&JSO!WYX!WcX~P&E^O#d9tO~O!a#rO#d9tO~O#X:UO~O#o9yO~O#X:`O!V(gX!W(gX~O#X:UO!V(eX!W(eX~O#d:aO~Od:cO~P!0RO#d:hO~O#d:iO~O!a#rO#d:jO~O!a#rO#d:aO~O#y:kO~P#@_O#d:lO~O#d:mO~O#d:nO~O#d:oO~O#d:pO~O#d:qO~O#y:rO~P!0RO#y:sO~P!0RO$U~!f!|!}#P#Q#T#b#c#n(n$m$o$r%U%`%a%b%h%j%m%n%p%r~'oR$U(n#h!R'm'u#il#g#jky'n(U'n't$W$Y$W~\",goto:\"$%Z({PPPP(|P)PP)aP*p.rPPPP5SPP5iP;d>iP>|P>|PPP>|P@lP>|P>|P>|P@pPP@uPA`PFUPPPFYPPPPFYIXPPPI_JYPFYPLgPPPPNuFYPPPFYPFYP!#TFYP!&g!'i!'rP!(e!(i!(ePPPPP!+r!'iPP!,`!-YP!/|FYFY!0R!3Z!7n!7n!;cPPP!;jFYPPPPPPPPPPP!>uP!@WPPFY!AePFYPFYFYFYFYPFY!BwPP!E}P!IPP!IT!I_!Ic!IcP!EzP!Ig!IgP!LiP!LmFYFY!Ls# t>|P>|P>|>|P##O>|>|#$x>|#'V>|#(y>|>|#)g#+c#+c#+g#+o#+c#+wP#+cP>|#,a>|#-i>|>|5SPPP#.tPP#/^#/^P#/^P#/s#/^PP#/yP#/pP#/p#0]#/p#0w#0}5P)P#1Q)PP#1X#1X#1XP)PP)PP)PP)PPP)PP#1_#1bP#1b)PP#1fP#1iP)PP)PP)PP)PP)PP)P)PPP#1o#1u#2P#2V#2]#2c#2i#2w#2}#3T#3_#3e#3o#4O#4U#4u#5X#5_#5e#5s#6Y#7j#7x#8O#8U#8[#8b#8l#8r#8x#9S#9f#9lPPPPPPPPPP#9rPPPPPPP#:f#=mP#>|#?T#?]PPPP#Cg#F]#Lr#Lu#Lx#Mq#Mt#Mw#NO#NWPP#N^#Nb$ Z$!Z$!_$!sPP$!w$!}$#RP$#U$#Y$#]$$R$$i$$n$$q$$t$$z$$}$%R$%VR!xRmpOXr!X#`%]&d&f&g&i,],b1b1eY!rQ'Q,}0u4pQ%ctQ%kwQ%rzQ&[!TS&x!c,uQ'W!fS'^!o!uS*Y$y*_Q+T%lQ+b%tQ+|&UQ,{'PQ-V'XQ-_'_Q/k*aQ1P+}R:_9p$zdOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s+g,X,],b-R-Z-i-o.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2r4m4w5Z5]5^5p7U7Z7h7tS#m]9m!r)R$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Q*j%SQ+Y%nQ,O&XQ,V&aQ.S:VQ0O*{Q0S*}Q0_+ZQ1X,TQ2f.PQ4Y0YQ5O1QQ5|2jQ6S:WQ6u4ZR7z5}&xkOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^t!kQ!o!r!u!v&x'P'Q'^'_'`,u,{,}-_0u4p4r$Y$pi#r#t$`$a$u$x%T%U%Y)l)u)w)x*P*V*e*f*z*}+l+o.O.Y/X/Y/[/w0l0o0w2i3a3k3s3y4Q4S4v5z6b6k7W7w8S8g8y9X9a:S:T:X:Y:Z:[:]:^:d:e:f:g:h:i:l:m:n:o:r:s;Z;c;d;g;hQ%uzQ&v!cS&|%w,xQ+Y%nS.x)r.zQ/v*nQ0_+ZQ0d+aQ1W,SQ1X,TQ4Y0YQ4c0fQ5R1SQ5S1VQ6u4ZQ6x4`Q7c5UQ8b6yR8m7`pmOXr!T!X#`%]&Z&d&f&g&i,],b1b1eR,Q&]&r^OPXYrstux!X!^!g!l#O#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u'S'd'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;];^[#XWZ#S#V&y'tQ%fvQ%jwS%oz%t!U%x|}#d#e#h%Z%v'}(X(Y(Z+e+f+h,Z,o-m-s-t-u-w1j2b2c5f5wQ&Q!RQ'T!eQ'V!fQ(b#oS)|$u*QS+S%k%lQ+W%nQ+w&SQ+{&US-U'W'XQ.R(cQ/U)}Q0W+TQ0^+ZQ0`+[Q0c+`Q0z+xS1O+|+}Q2S-VQ3b/QQ4X0YQ4]0]Q4b0eQ4}1PQ6_3cQ6t4ZQ6w4_Q8^6sR9S8_v$wi#t%T%U%Y)u)w*P*e*f.Y/X/w3a3y8S;Z;c;d!S%hw!f!q%j%k%l&w'V'W'X']'g*X+S+T,r-U-V-^/c0W1{2S2Z3uQ*|%fQ+m%}Q+p&OQ+z&UQ.Q(bQ0y+wU0}+{+|+}Q2k.RQ4x0zS4|1O1PQ7_4}!z;_#r$`$a$u$x)l)x*V*z*}+l+o.O/Y/[0l0o0w2i3k3s4Q4S4v5z6b6k7W7w8g8y9X9a:X:Z:]:d:f:h:l:n:r;g;hg;`:S:T:Y:[:^:e:g:i:m:o:sW$|i%O*g;ZS%}!O&ZQ&O!PQ&P!QR+k%{$Z${i#r#t$`$a$u$x%T%U%Y)l)u)w)x*P*V*e*f*z*}+l+o.O.Y/X/Y/[/w0l0o0w2i3a3k3s3y4Q4S4v5z6b6k7W7w8S8g8y9X9a:S:T:X:Y:Z:[:]:^:d:e:f:g:h:i:l:m:n:o:r:s;Z;c;d;g;hT)m$r)nV*k%S:V:WU&|!c%w,xS(p#v#wQ+_%qS-z(^(_Q0p+qQ3z/tR6}4i&xkOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^$i$]c#U#a%a%b%d's'y(e(l(t(u(v(w(x(y(z({(|(})O)Q)T)X)c*x+^,s-b-g-l-n.X._.c.e.f.g.v/x1q1t2U2]2q2v2w2x2y2z2{2|2}3O3P3Q3R3S3V3W3]4O4V5i5o5t6Q6R6W6X7P7n7r7{8P8Q8v9U9]9n;QT#PV#Q&ykOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Q&z!cR1w,uv!kQ!c!o!r!u!v&x'P'Q'^'_'`,u,{,}-_0u4p4rS*X$y*_S/c*Y*aQ/l*bQ0r+sQ3u/kR3x/nlpOXr!X#`%]&d&f&g&i,],b1b1eQ&k![Q'h!tS(d#q9tQ+Q%iQ+u&QQ+v&RQ-S'UQ-a'aS.W(i:aS/y*s:jQ0U+RQ0t+tQ1i,dQ1k,eQ1s,pQ2Q-TQ2T-XS4P/z:pQ4T0VS4W0X:qQ5h1uQ5l2RQ5q2YQ6r4UQ7o5jQ7p5mQ7s5rR8s7l$d$[c#U#a%b%d's'y(e(l(t(u(v(w(x(y(z({(|(})O)Q)T)X)c*x+^,s-b-g-l-n.X._.c.f.g.v/x1q1t2U2]2q2v2w2x2y2z2{2|2}3O3P3Q3R3S3V3W3]4O4V5i5o5t6Q6R6W6X7P7n7r7{8P8Q8v9U9]9n;QS(a#l'ZU*d$z(h3US*w%a.eQ2g0OQ5y2fQ7y5|R8z7z$d$Zc#U#a%b%d's'y(e(l(t(u(v(w(x(y(z({(|(})O)Q)T)X)c*x+^,s-b-g-l-n.X._.c.f.g.v/x1q1t2U2]2q2v2w2x2y2z2{2|2}3O3P3Q3R3S3V3W3]4O4V5i5o5t6Q6R6W6X7P7n7r7{8P8Q8v9U9]9n;QS(`#l'ZS(r#w$[S*v%a.eS-{(_(aQ.h)SQ/{*wR2d-|&xkOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^S#m]9mQ&f!VQ&g!WQ&i!YQ&j!ZR1a,`Q'R!eQ*y%fQ-Q'TS-}(b*|Q2O-PW2h.Q.R/}0PQ5k2PU5x2e2g2kS7v5y5{S8x7x7yS9_8w8zQ9g9`R9j9hU!sQ'Q,}T4n0u4p!O_OXZ`r!T!X#`#d%Z%]&Z&]&d&f&g&i(Z,],b-t1b1e]!mQ!o'Q,}0u4pT#m]9m%UyOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&a&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7tS(p#v#wS-z(^(_!s:w$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Y!qQ'Q,}0u4pQ']!oS'g!r!uS'i!v4rS-^'^'_Q-`'`R2Z-_Q'f!qS(V#c1_S-]']'iQ/T)|Q/a*XQ2[-`Q3g/US3p/b/lQ6^3bS6i3v3xQ8U6_R8]6lQ#sbQ'e!qS(U#c1_S(W#i*rQ*t%[Q+O%gQ+U%mU-[']'f'iQ-p(VQ/S)|Q/`*XQ/f*[Q0T+PQ0{+yS2X-]-`Q2a-xS3f/T/US3o/a/lQ3r/eQ3t/gQ4z0|Q5s2[Q6]3bQ6a3gS6e3p3xQ6j3wQ7]4{S8T6^6_Q8X6fQ8Z6iQ8j7^Q9O8UQ9P8YQ9R8]Q9Z8kQ9c9QQ:z:uQ;V;OR;W;PV!sQ'Q,}%UaOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&a&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7tS#sx!g!r:t$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^R:z;]%UbOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&a&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7tQ%[j!S%gw!f!q%j%k%l&w'V'W'X']'g*X+S+T,r-U-V-^/c0W1{2S2Z3uS%mx!gQ+P%hQ+y&UW0|+z+{+|+}U4{0}1O1PS7^4|4}Q8k7_!r:u$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Q;O;[R;P;]$xeOPXYrstu!X!^!l#O#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&d&f&g&i&m&u'S'd'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7tY#^WZ#S#V't!U%x|}#d#e#h%Z%v'}(X(Y(Z+e+f+h,Z,o-m-s-t-u-w1j2b2c5f5wQ,W&a!p:v$X$j)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^R:y&yS&}!c%wR1y,x$zdOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s+g,X,],b-R-Z-i-o.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2r4m4w5Z5]5^5p7U7Z7h7t!r)R$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^Q,V&aQ0O*{Q2f.PQ5|2jR7z5}!f$Rc#U%a's'y(e(l({(|(})O)T)X+^-b-g-l-n.X._.v/x2U2]2q3S4O4V5o5t6Q7r8v9n!T9{)Q)c,s.e1q1t2v3O3P3Q3R3V3]5i6R6W6X7P7n7{8P8Q9U9];Q!b$Tc#U%a's'y(e(l(})O)T)X+^-b-g-l-n.X._.v/x2U2]2q3S4O4V5o5t6Q7r8v9n!P9})Q)c,s.e1q1t2v3Q3R3V3]5i6R6W6X7P7n7{8P8Q9U9];Q!^$Xc#U%a's'y(e(l)T)X+^-b-g-l-n.X._.v/x2U2]2q3S4O4V5o5t6Q7r8v9nQ3a/Oz;^)Q)c,s.e1q1t2v3V3]5i6R6W6X7P7n7{8P8Q9U9];QQ;c;eR;d;f&xkOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^S$kh$lR3Y.k'PgOPWXYZhrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j$l%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.k.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^T$gf$mQ$efS)[$h)`R)h$mT$ff$mT)^$h)`'PhOPWXYZhrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$X$^$b$j$l%]%c%p&]&`&a&d&f&g&i&m&u&y'S'd't'v'|(T(i(m(q)e)p*s*{+g,X,],b,n,q-R-Z-i-o.P.].d.k.l/u/z0X0x1Y1Z1[1^1b1e1g1v2W2^2j2r3X4k4m4w5Z5]5^5g5p5}7U7Z7h7t8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^T$kh$lQ$nhR)g$l%UjOPWXYZrstu!X!^!l#O#S#V#`#k#q#u#x#{#|#}$O$P$Q$R$S$T$U$V$^$b%]%c%p&]&`&a&d&f&g&i&m&u'S'd't'v'|(T(i(m(q)p*s*{+g,X,],b-R-Z-i-o.P.].d/u/z0X0x1Y1Z1[1^1b1e1g2W2^2j2r4m4w5Z5]5^5p5}7U7Z7h7t!s;[$X$j&y)e,n,q.l1v3X4k5g8c8t9l9o9p9q9t9u9v9w9x9y9z9{9|9}:O:P:Q:U:_:`:a:c:j:k:p:q;^#alOPXZr!X!^!l#O#`#k#x$j%]&]&`&a&d&f&g&i&m&u'S(q)e*{+g,X,],b-R.P.l/u0x1Y1Z1[1^1b1e1g2j3X4m4w5Z5]5^5}7U7Z7hv$zi#t%T%U%Y)u)w*P*e*f.Y/X/w3a3y8S;Z;c;d!z(h#r$`$a$u$x)l)x*V*z*}+l+o.O/Y/[0l0o0w2i3k3s4Q4S4v5z6b6k7W7w8g8y9X9a:X:Z:]:d:f:h:l:n:r;g;hQ*o%WQ.w)qg3U:S:T:Y:[:^:e:g:i:m:o:sv$vi#t%T%U%Y)u)w*P*e*f.Y/X/w3a3y8S;Z;c;dQ*R$wS*[$y*_Q*p%XQ/g*]!z:|#r$`$a$u$x)l)x*V*z*}+l+o.O/Y/[0l0o0w2i3k3s4Q4S4v5z6b6k7W7w8g8y9X9a:X:Z:]:d:f:h:l:n:r;g;hf:}:S:T:Y:[:^:e:g:i:m:o:sQ;R;_Q;S;`Q;T;aR;U;bv$zi#t%T%U%Y)u)w*P*e*f.Y/X/w3a3y8S;Z;c;d!z(h#r$`$a$u$x)l)x*V*z*}+l+o.O/Y/[0l0o0w2i3k3s4Q4S4v5z6b6k7W7w8g8y9X9a:X:Z:]:d:f:h:l:n:r;g;hg3U:S:T:Y:[:^:e:g:i:m:o:slnOXr!X#`%]&d&f&g&i,],b1b1eQ*U$xQ,k&pQ,l&rR3j/Y$Y${i#r#t$`$a$u$x%T%U%Y)l)u)w)x*P*V*e*f*z*}+l+o.O.Y/X/Y/[/w0l0o0w2i3a3k3s3y4Q4S4v5z6b6k7W7w8S8g8y9X9a:S:T:X:Y:Z:[:]:^:d:e:f:g:h:i:l:m:n:o:r:s;Z;c;d;g;hQ+n&OQ0n+pQ4g0mR6|4hT*^$y*_S*^$y*_T4o0u4pS/e*Z4mT3w/m7UQ+O%gQ/f*[Q0T+PQ0{+yQ4z0|Q7]4{Q8j7^R9Z8kn)u$s(j*q/W/o/p2o3h3}6[6m8}:{;X;Y!W:d(f)V){*T.V.s/O/]/|0k0m2n3i3m4f4h6O6P6c6g6o6q8W8[9b;e;f]:e3T6V7|8{8|9kp)w$s(j*q.|/W/o/p2o3h3}6[6m8}:{;X;Y!Y:f(f)V){*T.V.s/O/]/|0k0m2l2n3i3m4f4h6O6P6c6g6o6q8W8[9b;e;f_:g3T6V7|7}8{8|9kpmOXr!T!X#`%]&Z&d&f&g&i,],b1b1eQ&W!SR,X&apmOXr!T!X#`%]&Z&d&f&g&i,],b1b1eR&W!SQ+r&PR0j+kqmOXr!T!X#`%]&Z&d&f&g&i,],b1b1eQ0v+wS4u0y0zU7V4s4t4xS8f7X7YS9V8e8hQ9d9WR9i9eQ&_!TR,R&ZR5R1SS%oz%tR0`+[Q&d!UR,]&eR,c&jT1c,b1eR,g&kQ,f&kR1l,gQ'k!wR-c'kQrOQ#`XT%`r#`Q!zTR'm!zQ!}UR'o!}Q)n$rR.t)nQ#QVR'q#QQ#TWU'w#T'x-jQ'x#UR-j'yQ,v&zR1x,vQ.Z(jR2p.ZQ.^(lS2s.^2tR2t._Q,}'QR1|,}Y!oQ'Q,}0u4pR'[!oS#ZW%vU(O#Z(P-kQ(P#[R-k'zQ,y&}R1z,yr`OXr!T!X#`%]&Z&]&d&f&g&i,],b1b1eS#dZ%ZU#n`#d-tR-t(ZQ([#fQ-q(WW-y([-q2_5uQ2_-rR5u2`Q)`$hR.m)`Q$lhR)f$lQ$_cU)U$_-f:RQ-f9nR:R)cQ/R)|W3d/R3e6`8VU3e/S/T/US6`3f3gR8V6a#m)s$s(f(j)V){*T*l*m*q.T.U.V.s.|.}/O/W/]/o/p/|0k0m2l2m2n2o3T3h3i3m3}4f4h6O6P6T6U6V6[6c6g6m6o6q7|7}8O8W8[8{8|8}9b9k:{;X;Y;e;fQ/Z*TU3l/Z3n6dQ3n/]R6d3mQ*_$yR/i*_Q*h$}R/r*hQ4R/|R6p4RQ+i%yR0i+iQ4j0pS7O4j8dR8d7PQ+t&QR0s+tQ4p0uR7S4pQ1R,OS5P1R7aR7a5RQ0Z+WW4[0Z4^6v8`Q4^0^Q6v4]R8`6wQ+]%oR0a+]Q1e,bR5a1eWqOXr#`Q&h!XQ*u%]Q,[&dQ,^&fQ,_&gQ,a&iQ1`,]S1c,b1eR5`1bQ%_oQ&l!]Q&o!_Q&q!`Q&s!aQ'c!qQ+Q%iQ+d%uQ+j%zQ,Q&_Q,i&nW-Y']'e'f'iQ-a'aQ/h*^Q0U+RS1U,R,UQ1m,hQ1n,kQ1o,lQ2T-XW2V-[-]-`-bQ4T0VQ4a0dQ4e0kQ4y0{Q5T1WQ5_1aU5n2U2X2[Q5q2YQ6r4UQ6z4cQ6{4fQ7R4oQ7[4zQ7b5SS7q5o5sQ7s5rQ8a6xQ8i7]Q8n7cQ8u7rQ9T8bQ9Y8jQ9^8vR9f9ZQ%iwQ'U!fQ'a!qU+R%j%k%lQ,p&wU-T'V'W'XS-X']'gQ/_*XS0V+S+TQ1u,rS2R-U-VQ2Y-^Q3q/cQ4U0WQ5j1{Q5m2SQ5r2ZR6h3uS$ti;ZR*i%OU$}i%O;ZR/q*gQ$siS(f#r*}Q(j#tS)V$`$aQ){$uQ*T$xQ*l%TQ*m%UQ*q%YQ.T:XQ.U:ZQ.V:]Q.s)lQ.|)uQ.})wQ/O)xQ/W*PQ/]*VQ/o*eQ/p*fh/|*z.O0w2i4v5z7W7w8g8y9X9aQ0k+lQ0m+oQ2l:dQ2m:fQ2n:hQ2o.YS3T:S:TQ3h/XQ3i/YQ3m/[Q3}/wQ4f0lQ4h0oQ6O:lQ6P:nQ6T:YQ6U:[Q6V:^Q6[3aQ6c3kQ6g3sQ6m3yQ6o4QQ6q4SQ7|:iQ7}:eQ8O:gQ8W6bQ8[6kQ8{:mQ8|:oQ8}8SQ9b:rQ9k:sQ:{;ZQ;X;cQ;Y;dQ;e;gR;f;hloOXr!X#`%]&d&f&g&i,],b1b1eQ!dPS#bZ#kQ&n!^U'Y!l4m7UQ'p#OQ(s#xQ)d$jS,U&]&`Q,Y&aQ,h&mQ,m&uQ-P'SQ.a(qQ.q)eQ0P*{Q0g+gQ1],XQ2P-RQ2g.PQ3[.lQ3{/uQ4t0xQ5V1YQ5W1ZQ5Y1[Q5[1^Q5c1gQ5y2jQ6Y3XQ7Y4wQ7g5ZQ7i5]Q7j5^Q7y5}Q8h7ZR8p7h#UcOPXZr!X!^!l#`#k#x%]&]&`&a&d&f&g&i&m&u'S(q*{+g,X,],b-R.P/u0x1Y1Z1[1^1b1e1g2j4m4w5Z5]5^5}7U7Z7hQ#UWQ#aYQ%asQ%btQ%duS's#S'vQ'y#VQ(e#qQ(l#uQ(t#{Q(u#|Q(v#}Q(w$OQ(x$PQ(y$QQ(z$RQ({$SQ(|$TQ(}$UQ)O$VQ)Q$XQ)T$^Q)X$bW)c$j)e.l3XQ*x%cQ+^%pS,s&y1vQ-b'dS-g't-iQ-l'|Q-n(TQ.X(iQ._(mQ.c9lQ.e9oQ.f9pQ.g9qQ.v)pQ/x*sQ1q,nQ1t,qQ2U-ZQ2]-oQ2q.]Q2v9tQ2w9uQ2x9vQ2y9wQ2z9xQ2{9yQ2|9zQ2}9{Q3O9|Q3P9}Q3Q:OQ3R:PQ3S.dQ3V:UQ3W:_Q3]:QQ4O/zQ4V0XQ5i:`Q5o2WQ5t2^Q6Q2rQ6R:aQ6W:cQ6X:jQ7P4kQ7n5gQ7r5pQ7{:kQ8P:pQ8Q:qQ8v7tQ9U8cQ9]8tQ9n#OR;Q;^R#WWR&{!cY!qQ'Q,}0u4pS&w!c,uQ']!oS'g!r!uS'i!v4rS,r&x'PS-^'^'_Q-`'`Q1{,{R2Z-_R(k#tR(n#uQ!dQT,|'Q,}]!nQ!o'Q,}0u4pQ#l]R'Z9mT#gZ%ZS#fZ%ZU%y|},ZU(W#d#e#hS-r(X(YQ-v(ZQ0h+hQ2`-sU2a-t-u-wS5v2b2cR7u5w`#YW#S#V%v't'}+e-mt#cZ|}#d#e#h%Z(X(Y(Z+h-s-t-u-w2b2c5wQ1_,ZQ1r,oQ5e1jQ7m5fT:x&y+fT#]W%vS#[W%vS'u#S'}S'z#V+eS,t&y+fT-h't-mT'O!c%wQ$hfR)j$mT)_$h)`R3Z.kT*O$u*QR*W$xQ/}*zQ2e.OQ4s0wQ5{2iQ7X4vQ7x5zQ8e7WQ8w7wQ9W8gQ9`8yQ9e9XR9h9alpOXr!X#`%]&d&f&g&i,],b1b1eQ&^!TR,Q&ZV%z|},ZR0q+qR,P&XQ%szR+c%tR+X%nT&b!U&eT&c!U&eT1d,b1e\",nodeNames:\"⚠ ArithOp ArithOp LineComment BlockComment Script ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem\",maxTerm:364,context:trackNewline,nodeProps:[[\"group\",-26,6,14,16,62,199,203,206,207,209,212,215,225,227,233,235,237,239,242,248,254,256,258,260,262,264,265,\"Statement\",-32,10,11,25,28,29,35,45,48,49,51,56,64,72,76,78,80,81,103,104,113,114,131,134,136,137,138,139,141,142,162,163,165,\"Expression\",-23,24,26,30,34,36,38,166,168,170,171,173,174,175,177,178,179,181,182,183,193,195,197,198,\"Type\",-3,84,96,102,\"ClassItem\"],[\"openedBy\",31,\"InterpolationStart\",50,\"[\",54,\"{\",69,\"(\",143,\"JSXStartTag\",155,\"JSXStartTag JSXStartCloseTag\"],[\"closedBy\",33,\"InterpolationEnd\",44,\"]\",55,\"}\",70,\")\",144,\"JSXSelfCloseEndTag JSXEndTag\",160,\"JSXEndTag\"]],propSources:[jsHighlight],skippedNodes:[0,3,4,268],repeatNodeCount:33,tokenData:\"$>y(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tu>PuvBavwDxwxGgxyMvyz! Qz{!![{|!%O|}!&]}!O!%O!O!P!'g!P!Q!1w!Q!R#0t!R![#3T![!]#@T!]!^#Aa!^!_#Bk!_!`#GS!`!a#In!a!b#N{!b!c$$z!c!}>P!}#O$&U#O#P$'`#P#Q$,w#Q#R$.R#R#S>P#S#T$/`#T#o$0j#o#p$4z#p#q$5p#q#r$7Q#r#s$8^#s$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$I|>P$I|$I}$<s$I}$JO$<s$JO$JT>P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(n%d_$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$d&j'z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU'z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$d&j'wpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'wpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$d&j'wp'z!b'm(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST'x#S$d&j'n(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$d&j'wp'z!b'n(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$d&j!l$Ip'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#q$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#q$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'v$(n$d&j'z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$d&j'z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$d&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$_#t$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$_#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$_#t$d&j'z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ'z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$_#t'z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hg$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}st%Ztu<Puw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}<P!}#O%Z#O#P&c#P#R%Z#R#S<P#S#T%Z#T#o<P#o#p*g#p$g%Z$g;'S<P;'S;=`=y<%lO<P#%|<[i$d&j(a!L^'wp'z!bOY%ZYZ&cZr%Zrs&}st%Ztu<Puw%Zwx(rx!Q%Z!Q![<P![!^%Z!^!_*g!_!c%Z!c!}<P!}#O%Z#O#P&c#P#R%Z#R#S<P#S#T%Z#T#o<P#o#p*g#p$g%Z$g;'S<P;'S;=`=y<%lO<P#%|=|P;=`<%l<P(CS>`k$d&j'wp'z!b(U!LY't&;d$W#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P+d@`k$d&j'wp'z!b$W#tOY%ZYZ&cZr%Zrs&}st%Ztu@Tuw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![@T![!^%Z!^!_*g!_!c%Z!c!}@T!}#O%Z#O#P&c#P#R%Z#R#S@T#S#T%Z#T#o@T#o#p*g#p$g%Z$g;'S@T;'S;=`BT<%lO@T+dBWP;=`<%l@T(CSB^P;=`<%l>P%#SBl`$d&j'wp'z!b#i$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SCy_$d&j#{$Id'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%DfETa(j%<v$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sv%ZvwFYwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SFe`$d&j#u$Id'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2bGp_'y$)`$d&j'wpOYHoYZIuZrHorsIuswHowxKVx!^Ho!^!_LX!_#OHo#O#PIu#P#oHo#o#pLX#p;'SHo;'S;=`Mp<%lOHo*QHv_$d&j'wpOYHoYZIuZrHorsIuswHowxKVx!^Ho!^!_LX!_#OHo#O#PIu#P#oHo#o#pLX#p;'SHo;'S;=`Mp<%lOHo)`IzX$d&jOwIuwx6cx!^Iu!^!_Jg!_#oIu#o#pJg#p;'SIu;'S;=`KP<%lOIu#tJjTOwJgwx7]x;'SJg;'S;=`Jy<%lOJg#tJ|P;=`<%lJg)`KSP;=`<%lIu*QK`]$_#t$d&j'wpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r$fL^Z'wpOYLXYZJgZrLXrsJgswLXwxMPx#OLX#O#PJg#P;'SLX;'S;=`Mj<%lOLX$fMWU$_#t'wpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r$fMmP;=`<%lLX*QMsP;=`<%lHo(*QNR_!h(!b$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'l! ]_!gM|$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h!!ib$d&j'wp'z!b'u#)d#j$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!#q{!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S!#|`$d&j'wp'z!b#g$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&-O!%Z`$d&j'wp'z!bk&%`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&C[!&h_!V&;l$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!'rc$d&j'wp'z!by'<nOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!(}!P!Q%Z!Q![!+g![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!)Wa$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!*]!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z!'d!*h_!UMt$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!+rg$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!+g![!^%Z!^!_*g!_!g%Z!g!h!-Z!h#O%Z#O#P&c#P#R%Z#R#S!+g#S#X%Z#X#Y!-Z#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!-dg$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!.{|}%Z}!O!.{!O!Q%Z!Q![!0a![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!0a#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!/Uc$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!0a![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!0a#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l!0lc$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!0a![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!0a#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS!2Sf$d&j'wp'z!b#h$IdOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}xz!3hz{#$s{!P!3h!P!Q#&Y!Q!^!3h!^!_!Mh!_!`#-x!`!a#/_!a!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h(r!3sb$d&j'wp'z!b!RSOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}x!P!3h!P!Q!Kh!Q!^!3h!^!_!Mh!_!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h(Q!5U`$d&j'z!b!RSOY!4{YZ&cZw!4{wx!6Wx!P!4{!P!Q!=o!Q!^!4{!^!_!?g!_!}!4{!}#O!Bn#O#P!<w#P#o!4{#o#p!?g#p;'S!4{;'S;=`!Cw<%lO!4{&n!6_^$d&j!RSOY!6WYZ&cZ!P!6W!P!Q!7Z!Q!^!6W!^!_!8g!_!}!6W!}#O!;U#O#P!<w#P#o!6W#o#p!8g#p;'S!6W;'S;=`!=i<%lO!6W&n!7ba$d&j!RSO!^&c!_#Z&c#Z#[!7Z#[#]&c#]#^!7Z#^#a&c#a#b!7Z#b#g&c#g#h!7Z#h#i&c#i#j!7Z#j#m&c#m#n!7Z#n#o&c#p;'S&c;'S;=`&w<%lO&cS!8lX!RSOY!8gZ!P!8g!P!Q!9X!Q!}!8g!}#O!9p#O#P!:o#P;'S!8g;'S;=`!;O<%lO!8gS!9^U!RS#Z#[!9X#]#^!9X#a#b!9X#g#h!9X#i#j!9X#m#n!9XS!9sVOY!9pZ#O!9p#O#P!:Y#P#Q!8g#Q;'S!9p;'S;=`!:i<%lO!9pS!:]SOY!9pZ;'S!9p;'S;=`!:i<%lO!9pS!:lP;=`<%l!9pS!:rSOY!8gZ;'S!8g;'S;=`!;O<%lO!8gS!;RP;=`<%l!8g&n!;Z[$d&jOY!;UYZ&cZ!^!;U!^!_!9p!_#O!;U#O#P!<P#P#Q!6W#Q#o!;U#o#p!9p#p;'S!;U;'S;=`!<q<%lO!;U&n!<UX$d&jOY!;UYZ&cZ!^!;U!^!_!9p!_#o!;U#o#p!9p#p;'S!;U;'S;=`!<q<%lO!;U&n!<tP;=`<%l!;U&n!<|X$d&jOY!6WYZ&cZ!^!6W!^!_!8g!_#o!6W#o#p!8g#p;'S!6W;'S;=`!=i<%lO!6W&n!=lP;=`<%l!6W(Q!=xi$d&j'z!b!RSOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#Z&}#Z#[!=o#[#]&}#]#^!=o#^#a&}#a#b!=o#b#g&}#g#h!=o#h#i&}#i#j!=o#j#m&}#m#n!=o#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!f!?nZ'z!b!RSOY!?gZw!?gwx!8gx!P!?g!P!Q!@a!Q!}!?g!}#O!Ap#O#P!:o#P;'S!?g;'S;=`!Bh<%lO!?g!f!@hb'z!b!RSOY'}Zw'}x#O'}#P#Z'}#Z#[!@a#[#]'}#]#^!@a#^#a'}#a#b!@a#b#g'}#g#h!@a#h#i'}#i#j!@a#j#m'}#m#n!@a#n;'S'};'S;=`(f<%lO'}!f!AuX'z!bOY!ApZw!Apwx!9px#O!Ap#O#P!:Y#P#Q!?g#Q;'S!Ap;'S;=`!Bb<%lO!Ap!f!BeP;=`<%l!Ap!f!BkP;=`<%l!?g(Q!Bu^$d&j'z!bOY!BnYZ&cZw!Bnwx!;Ux!^!Bn!^!_!Ap!_#O!Bn#O#P!<P#P#Q!4{#Q#o!Bn#o#p!Ap#p;'S!Bn;'S;=`!Cq<%lO!Bn(Q!CtP;=`<%l!Bn(Q!CzP;=`<%l!4{'`!DW`$d&j'wp!RSOY!C}YZ&cZr!C}rs!6Ws!P!C}!P!Q!EY!Q!^!C}!^!_!GQ!_!}!C}!}#O!JX#O#P!<w#P#o!C}#o#p!GQ#p;'S!C};'S;=`!Kb<%lO!C}'`!Eci$d&j'wp!RSOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#Z(r#Z#[!EY#[#](r#]#^!EY#^#a(r#a#b!EY#b#g(r#g#h!EY#h#i(r#i#j!EY#j#m(r#m#n!EY#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rt!GXZ'wp!RSOY!GQZr!GQrs!8gs!P!GQ!P!Q!Gz!Q!}!GQ!}#O!IZ#O#P!:o#P;'S!GQ;'S;=`!JR<%lO!GQt!HRb'wp!RSOY)rZr)rs#O)r#P#Z)r#Z#[!Gz#[#])r#]#^!Gz#^#a)r#a#b!Gz#b#g)r#g#h!Gz#h#i)r#i#j!Gz#j#m)r#m#n!Gz#n;'S)r;'S;=`*Z<%lO)rt!I`X'wpOY!IZZr!IZrs!9ps#O!IZ#O#P!:Y#P#Q!GQ#Q;'S!IZ;'S;=`!I{<%lO!IZt!JOP;=`<%l!IZt!JUP;=`<%l!GQ'`!J`^$d&j'wpOY!JXYZ&cZr!JXrs!;Us!^!JX!^!_!IZ!_#O!JX#O#P!<P#P#Q!C}#Q#o!JX#o#p!IZ#p;'S!JX;'S;=`!K[<%lO!JX'`!K_P;=`<%l!JX'`!KeP;=`<%l!C}(r!Ksk$d&j'wp'z!b!RSOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#Z%Z#Z#[!Kh#[#]%Z#]#^!Kh#^#a%Z#a#b!Kh#b#g%Z#g#h!Kh#h#i%Z#i#j!Kh#j#m%Z#m#n!Kh#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#W!Mq]'wp'z!b!RSOY!MhZr!Mhrs!?gsw!Mhwx!GQx!P!Mh!P!Q!Nj!Q!}!Mh!}#O#!U#O#P!:o#P;'S!Mh;'S;=`##U<%lO!Mh#W!Nse'wp'z!b!RSOY*gZr*grs'}sw*gwx)rx#O*g#P#Z*g#Z#[!Nj#[#]*g#]#^!Nj#^#a*g#a#b!Nj#b#g*g#g#h!Nj#h#i*g#i#j!Nj#j#m*g#m#n!Nj#n;'S*g;'S;=`+Z<%lO*g#W#!]Z'wp'z!bOY#!UZr#!Urs!Apsw#!Uwx!IZx#O#!U#O#P!:Y#P#Q!Mh#Q;'S#!U;'S;=`##O<%lO#!U#W##RP;=`<%l#!U#W##XP;=`<%l!Mh(r##e`$d&j'wp'z!bOY##[YZ&cZr##[rs!Bnsw##[wx!JXx!^##[!^!_#!U!_#O##[#O#P!<P#P#Q!3h#Q#o##[#o#p#!U#p;'S##[;'S;=`#$g<%lO##[(r#$jP;=`<%l##[(r#$pP;=`<%l!3h(CS#%Qb$d&j'wp'z!b'o(;d!RSOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}x!P!3h!P!Q!Kh!Q!^!3h!^!_!Mh!_!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h(CS#&e_$d&j'wp'z!bR(;dOY#&YYZ&cZr#&Yrs#'dsw#&Ywx#*tx!^#&Y!^!_#,s!_#O#&Y#O#P#(f#P#o#&Y#o#p#,s#p;'S#&Y;'S;=`#-r<%lO#&Y(Bb#'m]$d&j'z!bR(;dOY#'dYZ&cZw#'dwx#(fx!^#'d!^!_#)w!_#O#'d#O#P#(f#P#o#'d#o#p#)w#p;'S#'d;'S;=`#*n<%lO#'d(AO#(mX$d&jR(;dOY#(fYZ&cZ!^#(f!^!_#)Y!_#o#(f#o#p#)Y#p;'S#(f;'S;=`#)q<%lO#(f(;d#)_SR(;dOY#)YZ;'S#)Y;'S;=`#)k<%lO#)Y(;d#)nP;=`<%l#)Y(AO#)tP;=`<%l#(f(<v#*OW'z!bR(;dOY#)wZw#)wwx#)Yx#O#)w#O#P#)Y#P;'S#)w;'S;=`#*h<%lO#)w(<v#*kP;=`<%l#)w(Bb#*qP;=`<%l#'d(Ap#*}]$d&j'wpR(;dOY#*tYZ&cZr#*trs#(fs!^#*t!^!_#+v!_#O#*t#O#P#(f#P#o#*t#o#p#+v#p;'S#*t;'S;=`#,m<%lO#*t(<U#+}W'wpR(;dOY#+vZr#+vrs#)Ys#O#+v#O#P#)Y#P;'S#+v;'S;=`#,g<%lO#+v(<U#,jP;=`<%l#+v(Ap#,pP;=`<%l#*t(=h#,|Y'wp'z!bR(;dOY#,sZr#,srs#)wsw#,swx#+vx#O#,s#O#P#)Y#P;'S#,s;'S;=`#-l<%lO#,s(=h#-oP;=`<%l#,s(CS#-uP;=`<%l#&Y%#W#.Vb$d&j#{$Id'wp'z!b!RSOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}x!P!3h!P!Q!Kh!Q!^!3h!^!_!Mh!_!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h+h#/lb$T#t$d&j'wp'z!b!RSOY!3hYZ&cZr!3hrs!4{sw!3hwx!C}x!P!3h!P!Q!Kh!Q!^!3h!^!_!Mh!_!}!3h!}#O##[#O#P!<w#P#o!3h#o#p!Mh#p;'S!3h;'S;=`#$m<%lO!3h$/l#1Pp$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!+g!P!Q%Z!Q![#3T![!^%Z!^!_*g!_!g%Z!g!h!-Z!h#O%Z#O#P&c#P#R%Z#R#S#3T#S#U%Z#U#V#6_#V#X%Z#X#Y!-Z#Y#b%Z#b#c#5T#c#d#9g#d#l%Z#l#m#<i#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#3`k$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!+g!P!Q%Z!Q![#3T![!^%Z!^!_*g!_!g%Z!g!h!-Z!h#O%Z#O#P&c#P#R%Z#R#S#3T#S#X%Z#X#Y!-Z#Y#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#5`_$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#6hd$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#7v!R!S#7v!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#7v#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#8Rf$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#7v!R!S#7v!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#7v#S#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#9pc$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#:{!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#:{#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#;We$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#:{!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#:{#S#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#<rg$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#>Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>fi$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#>Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#@b_!a$b$d&j#y%<f'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Al_^l$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS#Bz^'}!*v!e'.r'wp'z!b$U)d(nSOY*gZr*grs'}sw*gwx)rx!P*g!P!Q#Cv!Q!^*g!^!_#Dl!_!`#F^!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#DPX$f&j'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#DuZ#k$Id'wp'z!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Eh!`#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#EqX#{$Id'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g$Kh#FgX#l$Id'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g%Gh#G_a#X%?x$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a#Hd!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#W#Ho_#d$Ih$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#I}adBf#l$Id$a#|$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`#KS!`!a#L^!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S#K__#l$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S#Lia#k$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`!a#Mn!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S#My`#k$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+h$ Wc(b$Ip$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P$!c!P!^%Z!^!_*g!_!a%Z!a!b$#m!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'+`$!n_z'#p$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$#x`$d&j#v$Id'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&^$%V_!x!Ln$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(@^$&a_|(8n$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$'eZ$d&jO!^$(W!^!_$(n!_#i$(W#i#j$(s#j#l$(W#l#m$*f#m#o$(W#o#p$(n#p;'S$(W;'S;=`$,q<%lO$(W(n$(_T[#S$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$(sO[#S(n$(x[$d&jO!Q&c!Q![$)n![!^&c!_!c&c!c!i$)n!i#T&c#T#Z$)n#Z#o&c#o#p$,U#p;'S&c;'S;=`&w<%lO&c(n$)sZ$d&jO!Q&c!Q![$*f![!^&c!_!c&c!c!i$*f!i#T&c#T#Z$*f#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$*kZ$d&jO!Q&c!Q![$+^![!^&c!_!c&c!c!i$+^!i#T&c#T#Z$+^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$+cZ$d&jO!Q&c!Q![$(W![!^&c!_!c&c!c!i$(W!i#T&c#T#Z$(W#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$,XR!Q![$,b!c!i$,b#T#Z$,b#S$,eS!Q![$,b!c!i$,b#T#Z$,b#q#r$(n(n$,tP;=`<%l$(W!'l$-S_!SM|$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S$.^`#s$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&,v$/k_$d&j'wp'z!b(R&%WOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$0yk$d&j'wp'z!b(U!LY't&;d$Y#tOY%ZYZ&cZr%Zrs&}st%Ztu$0juw%Zwx(rx}%Z}!O$2n!O!Q%Z!Q![$0j![!^%Z!^!_*g!_!c%Z!c!}$0j!}#O%Z#O#P&c#P#R%Z#R#S$0j#S#T%Z#T#o$0j#o#p*g#p$g%Z$g;'S$0j;'S;=`$4t<%lO$0j+d$2yk$d&j'wp'z!b$Y#tOY%ZYZ&cZr%Zrs&}st%Ztu$2nuw%Zwx(rx}%Z}!O$2n!O!Q%Z!Q![$2n![!^%Z!^!_*g!_!c%Z!c!}$2n!}#O%Z#O#P&c#P#R%Z#R#S$2n#S#T%Z#T#o$2n#o#p*g#p$g%Z$g;'S$2n;'S;=`$4n<%lO$2n+d$4qP;=`<%l$2n(CS$4wP;=`<%l$0j!5p$5TX!X!3l'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g%Df$5{a(i%<v$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$#m#q;'S%Z;'S;=`+a<%lO%Z%#`$7__!W$I`o`$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(r$8i_!mS$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(CS$9y|$d&j'wp'z!b'm(;d(U!LY't&;d$W#tOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$JT>P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(CS$=Uk$d&j'wp'z!b'n(;d(U!LY't&;d$W#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P\",tokenizers:[noSemicolon,incdecToken,2,3,4,5,6,7,8,9,10,11,12,13,insertSemicolon,new LocalTokenGroup(\"$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOq~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!O~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(T~~\",141,326),new LocalTokenGroup(\"j~RQYZXz{^~^O'q~~aP!P!Qd~iO'r~~\",25,308)],topRules:{Script:[0,5],SingleExpression:[1,266],SingleClassItem:[2,267]},dialects:{jsx:12686,ts:12688},dynamicPrecedences:{76:1,78:1,163:1,191:1},specialized:[{term:312,get:value=>spec_identifier[value]||-1},{term:328,get:value=>spec_word[value]||-1},{term:67,get:value=>spec_LessThan[value]||-1}],tokenPrec:12712});export{parser};\nexport const __FramerMetadata__ = {\"exports\":{\"parser\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/lang-javascript/dist/index.js\nimport{parser}from\"https://framerusercontent.com/modules/2B1yVjX9TEUbuHzHLnih/slPptusM3aarmySLiAK2/lezer_javascript.js\";import{syntaxTree,LRLanguage,indentNodeProp,continuedIndent,flatIndent,delimitedIndent,foldNodeProp,foldInside,defineLanguageFacet,sublanguageProp,LanguageSupport}from\"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/O6D7zESNv8FU9mcfHZ5S/codemirror_language.js\";import{EditorSelection}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/772bfdCR3vXAPJJXnNsc/codemirror_state.js\";import{EditorView}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/QTymt9nRixOIrUSZrfIJ/codemirror_view.js\";import{snippetCompletion,ifNotIn,completeFromList}from\"https://framerusercontent.com/modules/iHAg5NNDzB38uLRZmObL/Tp4ybLDPsW6vDjKld7g7/codemirror_autocomplete.js\";import{NodeWeakMap,IterMode}from\"https://framerusercontent.com/modules/CO9ruPlVDRTCLVInyri7/ye873rtFsAyZVFu9x2He/lezer_common.js\";var snippets=[/* @__PURE__ */snippetCompletion(\"function ${name}(${params}) {\\n\t${}\\n}\",{label:\"function\",detail:\"definition\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\\n\t${}\\n}\",{label:\"for\",detail:\"loop\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"for (let ${name} of ${collection}) {\\n\t${}\\n}\",{label:\"for\",detail:\"of loop\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"do {\\n\t${}\\n} while (${})\",{label:\"do\",detail:\"loop\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"while (${}) {\\n\t${}\\n}\",{label:\"while\",detail:\"loop\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"try {\\n\t${}\\n} catch (${error}) {\\n\t${}\\n}\",{label:\"try\",detail:\"/ catch block\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"if (${}) {\\n\t${}\\n}\",{label:\"if\",detail:\"block\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"if (${}) {\\n\t${}\\n} else {\\n\t${}\\n}\",{label:\"if\",detail:\"/ else block\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion(\"class ${name} {\\n\tconstructor(${params}) {\\n\t\t${}\\n\t}\\n}\",{label:\"class\",detail:\"definition\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion('import {${names}} from \"${module}\"\\n${}',{label:\"import\",detail:\"named\",type:\"keyword\"}),/* @__PURE__ */snippetCompletion('import ${name} from \"${module}\"\\n${}',{label:\"import\",detail:\"default\",type:\"keyword\"})];var cache=/* @__PURE__ */new NodeWeakMap;var ScopeNodes=/* @__PURE__ */new Set([\"Script\",\"Block\",\"FunctionExpression\",\"FunctionDeclaration\",\"ArrowFunction\",\"MethodDeclaration\",\"ForStatement\"]);function defID(type){return(node,def)=>{let id=node.node.getChild(\"VariableDefinition\");if(id)def(id,type);return true;};}var functionContext=[\"FunctionDeclaration\"];var gatherCompletions={FunctionDeclaration:/* @__PURE__ */defID(\"function\"),ClassDeclaration:/* @__PURE__ */defID(\"class\"),ClassExpression:()=>true,EnumDeclaration:/* @__PURE__ */defID(\"constant\"),TypeAliasDeclaration:/* @__PURE__ */defID(\"type\"),NamespaceDeclaration:/* @__PURE__ */defID(\"namespace\"),VariableDefinition(node,def){if(!node.matchContext(functionContext))def(node,\"variable\");},TypeDefinition(node,def){def(node,\"type\");},__proto__:null};function getScope(doc,node){let cached=cache.get(node);if(cached)return cached;let completions=[],top=true;function def(node2,type){let name=doc.sliceString(node2.from,node2.to);completions.push({label:name,type});}node.cursor(IterMode.IncludeAnonymous).iterate(node2=>{if(top){top=false;}else if(node2.name){let gather=gatherCompletions[node2.name];if(gather&&gather(node2,def)||ScopeNodes.has(node2.name))return false;}else if(node2.to-node2.from>8192){for(let c of getScope(doc,node2.node))completions.push(c);return false;}});cache.set(node,completions);return completions;}var Identifier=/^[\\w$\\xa1-\\uffff][\\w$\\d\\xa1-\\uffff]*$/;var dontComplete=[\"TemplateString\",\"String\",\"RegExp\",\"LineComment\",\"BlockComment\",\"VariableDefinition\",\"TypeDefinition\",\"Label\",\"PropertyDefinition\",\"PropertyName\",\"PrivatePropertyDefinition\",\"PrivatePropertyName\",\".\",\"?.\"];function localCompletionSource(context){let inner=syntaxTree(context.state).resolveInner(context.pos,-1);if(dontComplete.indexOf(inner.name)>-1)return null;let isWord=inner.name==\"VariableName\"||inner.to-inner.from<20&&Identifier.test(context.state.sliceDoc(inner.from,inner.to));if(!isWord&&!context.explicit)return null;let options=[];for(let pos=inner;pos;pos=pos.parent){if(ScopeNodes.has(pos.name))options=options.concat(getScope(context.state.doc,pos));}return{options,from:isWord?inner.from:context.pos,validFor:Identifier};}function pathFor(read,member,name){var _a;let path=[];for(;;){let obj=member.firstChild,prop;if((obj===null||obj===void 0?void 0:obj.name)==\"VariableName\"){path.push(read(obj));return{path:path.reverse(),name};}else if((obj===null||obj===void 0?void 0:obj.name)==\"MemberExpression\"&&((_a=prop=obj.lastChild)===null||_a===void 0?void 0:_a.name)==\"PropertyName\"){path.push(read(prop));member=obj;}else{return null;}}}function completionPath(context){let read=node=>context.state.doc.sliceString(node.from,node.to);let inner=syntaxTree(context.state).resolveInner(context.pos,-1);if(inner.name==\"PropertyName\"){return pathFor(read,inner.parent,read(inner));}else if((inner.name==\".\"||inner.name==\"?.\")&&inner.parent.name==\"MemberExpression\"){return pathFor(read,inner.parent,\"\");}else if(dontComplete.indexOf(inner.name)>-1){return null;}else if(inner.name==\"VariableName\"||inner.to-inner.from<20&&Identifier.test(read(inner))){return{path:[],name:read(inner)};}else if(inner.name==\"MemberExpression\"){return pathFor(read,inner,\"\");}else{return context.explicit?{path:[],name:\"\"}:null;}}function enumeratePropertyCompletions(obj,top){let options=[],seen=/* @__PURE__ */new Set;for(let depth=0;;depth++){for(let name of(Object.getOwnPropertyNames||Object.keys)(obj)){if(!/^[a-zA-Z_$][\\w$]*$/.test(name)||seen.has(name))continue;seen.add(name);let value;try{value=obj[name];}catch(_){continue;}options.push({label:name,type:typeof value==\"function\"?/^[A-Z]/.test(name)?\"class\":top?\"function\":\"method\":top?\"variable\":\"property\",boost:-depth});}let next=Object.getPrototypeOf(obj);if(!next)return options;obj=next;}}function scopeCompletionSource(scope){let cache2=/* @__PURE__ */new Map;return context=>{let path=completionPath(context);if(!path)return null;let target=scope;for(let step of path.path){target=target[step];if(!target)return null;}let options=cache2.get(target);if(!options)cache2.set(target,options=enumeratePropertyCompletions(target,!path.path.length));return{from:context.pos-path.name.length,options,validFor:Identifier};};}var javascriptLanguage=/* @__PURE__ */LRLanguage.define({name:\"javascript\",parser:/* @__PURE__ */parser.configure({props:[/* @__PURE__ */indentNodeProp.add({IfStatement:/* @__PURE__ */continuedIndent({except:/^\\s*({|else\\b)/}),TryStatement:/* @__PURE__ */continuedIndent({except:/^\\s*({|catch\\b|finally\\b)/}),LabeledStatement:flatIndent,SwitchBody:context=>{let after=context.textAfter,closed=/^\\s*\\}/.test(after),isCase=/^\\s*(case|default)\\b/.test(after);return context.baseIndent+(closed?0:isCase?1:2)*context.unit;},Block:/* @__PURE__ */delimitedIndent({closing:\"}\"}),ArrowFunction:cx=>cx.baseIndent+cx.unit,\"TemplateString BlockComment\":()=>null,\"Statement Property\":/* @__PURE__ */continuedIndent({except:/^{/}),JSXElement(context){let closed=/^\\s*<\\//.test(context.textAfter);return context.lineIndent(context.node.from)+(closed?0:context.unit);},JSXEscape(context){let closed=/\\s*\\}/.test(context.textAfter);return context.lineIndent(context.node.from)+(closed?0:context.unit);},\"JSXOpenTag JSXSelfClosingTag\"(context){return context.column(context.node.from)+context.unit;}}),/* @__PURE__ */foldNodeProp.add({\"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType\":foldInside,BlockComment(tree){return{from:tree.from+2,to:tree.to-2};}})]}),languageData:{closeBrackets:{brackets:[\"(\",\"[\",\"{\",\"'\",'\"',\"`\"]},commentTokens:{line:\"//\",block:{open:\"/*\",close:\"*/\"}},indentOnInput:/^\\s*(?:case |default:|\\{|\\}|<\\/)$/,wordChars:\"$\"}});var jsxSublanguage={test:node=>/^JSX/.test(node.name),facet:/* @__PURE__ */defineLanguageFacet({commentTokens:{block:{open:\"{/*\",close:\"*/}\"}}})};var typescriptLanguage=/* @__PURE__ */javascriptLanguage.configure({dialect:\"ts\"},\"typescript\");var jsxLanguage=/* @__PURE__ */javascriptLanguage.configure({dialect:\"jsx\",props:[/* @__PURE__ */sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]});var tsxLanguage=/* @__PURE__ */javascriptLanguage.configure({dialect:\"jsx ts\",props:[/* @__PURE__ */sublanguageProp.add(n=>n.isTop?[jsxSublanguage]:void 0)]},\"typescript\");var keywords=/* @__PURE__ */\"break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield\".split(\" \").map(kw=>({label:kw,type:\"keyword\"}));function javascript(config={}){let lang=config.jsx?config.typescript?tsxLanguage:jsxLanguage:config.typescript?typescriptLanguage:javascriptLanguage;return new LanguageSupport(lang,[javascriptLanguage.data.of({autocomplete:ifNotIn(dontComplete,completeFromList(snippets.concat(keywords)))}),javascriptLanguage.data.of({autocomplete:localCompletionSource}),config.jsx?autoCloseTags:[]]);}function findOpenTag(node){for(;;){if(node.name==\"JSXOpenTag\"||node.name==\"JSXSelfClosingTag\"||node.name==\"JSXFragmentTag\")return node;if(node.name==\"JSXEscape\"||!node.parent)return null;node=node.parent;}}function elementName(doc,tree,max=doc.length){for(let ch=tree===null||tree===void 0?void 0:tree.firstChild;ch;ch=ch.nextSibling){if(ch.name==\"JSXIdentifier\"||ch.name==\"JSXBuiltin\"||ch.name==\"JSXNamespacedName\"||ch.name==\"JSXMemberExpression\")return doc.sliceString(ch.from,Math.min(ch.to,max));}return\"\";}function isEndTag(node){return node&&(node.name==\"JSXEndTag\"||node.name==\"JSXSelfCloseEndTag\");}var android=typeof navigator==\"object\"&&/* @__PURE__ *//Android\\b/.test(navigator.userAgent);var autoCloseTags=/* @__PURE__ */EditorView.inputHandler.of((view,from,to,text)=>{if((android?view.composing:view.compositionStarted)||view.state.readOnly||from!=to||text!=\">\"&&text!=\"/\"||!javascriptLanguage.isActiveAt(view.state,from,-1))return false;let{state}=view;let changes=state.changeByRange(range=>{var _a;let{head}=range,around=syntaxTree(state).resolveInner(head,-1),name;if(around.name==\"JSXStartTag\")around=around.parent;if(around.name==\"JSXAttributeValue\"&&around.to>head);else if(text==\">\"&&around.name==\"JSXFragmentTag\"){return{range:EditorSelection.cursor(head+1),changes:{from:head,insert:`></>`}};}else if(text==\"/\"&&around.name==\"JSXFragmentTag\"){let empty=around.parent,base=empty===null||empty===void 0?void 0:empty.parent;if(empty.from==head-1&&((_a=base.lastChild)===null||_a===void 0?void 0:_a.name)!=\"JSXEndTag\"&&(name=elementName(state.doc,base===null||base===void 0?void 0:base.firstChild,head))){let insert=`/${name}>`;return{range:EditorSelection.cursor(head+insert.length),changes:{from:head,insert}};}}else if(text==\">\"){let openTag=findOpenTag(around);if(openTag&&!isEndTag(openTag.lastChild)&&state.sliceDoc(head,head+2)!=\"</\"&&(name=elementName(state.doc,openTag,head)))return{range:EditorSelection.cursor(head+1),changes:{from:head,insert:`></${name}>`}};}return{range};});if(changes.changes.empty)return false;view.dispatch(changes,{userEvent:\"input.type\",scrollIntoView:true});return true;});function esLint(eslint,config){if(!config){config={parserOptions:{ecmaVersion:2019,sourceType:\"module\"},env:{browser:true,node:true,es6:true,es2015:true,es2017:true,es2020:true},rules:{}};eslint.getRules().forEach((desc,name)=>{if(desc.meta.docs.recommended)config.rules[name]=2;});}return view=>{let{state}=view,found=[];for(let{from,to}of javascriptLanguage.findRegions(state)){let fromLine=state.doc.lineAt(from),offset={line:fromLine.number-1,col:from-fromLine.from,pos:from};for(let d of eslint.verify(state.sliceDoc(from,to),config))found.push(translateDiagnostic(d,state.doc,offset));}return found;};}function mapPos(line,col,doc,offset){return doc.line(line+offset.line).from+col+(line==1?offset.col-1:-1);}function translateDiagnostic(input,doc,offset){let start=mapPos(input.line,input.column,doc,offset);let result={from:start,to:input.endLine!=null&&input.endColumn!=1?mapPos(input.endLine,input.endColumn,doc,offset):start,message:input.message,source:input.ruleId?\"eslint:\"+input.ruleId:\"eslint\",severity:input.severity==1?\"warning\":\"error\"};if(input.fix){let{range,text}=input.fix,from=range[0]+offset.pos-start,to=range[1]+offset.pos-start;result.actions=[{name:\"fix\",apply(view,start2){view.dispatch({changes:{from:start2+from,to:start2+to,insert:text},scrollIntoView:true});}}];}return result;}export{autoCloseTags,completionPath,esLint,javascript,javascriptLanguage,jsxLanguage,localCompletionSource,scopeCompletionSource,snippets,tsxLanguage,typescriptLanguage,};\nexport const __FramerMetadata__ = {\"exports\":{\"tsxLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"javascript\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"localCompletionSource\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"jsxLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"snippets\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"javascriptLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"scopeCompletionSource\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"esLint\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"typescriptLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"autoCloseTags\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"completionPath\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// @ts-nocheck\n/**\n * This file is generated inside FramerStudio. To update it run \"make build\"\n * inside \"./src/codeblock-dependencies\" and copy the file from \"./modules\".\n */// ../../node_modules/@codemirror/lang-html/dist/index.js\nimport{parser,configureNesting}from\"https://framerusercontent.com/modules/GrkjcC7Ol5LkBvrp44De/6z7UMqAq3iGnlCYUf9GL/lezer_html.js\";import{cssLanguage,css}from\"https://framerusercontent.com/modules/Gg5hLFaRxQ2EaXSWb101/NVSL3b7ItCp8LKQ0X8xX/codemirror_lang_css.js\";import{typescriptLanguage,jsxLanguage,tsxLanguage,javascriptLanguage,javascript}from\"https://framerusercontent.com/modules/YrJiUSsP9WZPvnJAGTTV/lsyxtesB0g1ydwxUh1t0/codemirror_lang_javascript.js\";import{EditorView}from\"https://framerusercontent.com/modules/wKCR2JyUW8wZdYweJrou/QTymt9nRixOIrUSZrfIJ/codemirror_view.js\";import{EditorSelection}from\"https://framerusercontent.com/modules/wFkXxZqfKOPeEQtsYrsa/772bfdCR3vXAPJJXnNsc/codemirror_state.js\";import{syntaxTree,LRLanguage,indentNodeProp,foldNodeProp,bracketMatchingHandle,LanguageSupport}from\"https://framerusercontent.com/modules/aJsTBlWNkIaM900KNIXT/O6D7zESNv8FU9mcfHZ5S/codemirror_language.js\";var Targets=[\"_blank\",\"_self\",\"_top\",\"_parent\"];var Charsets=[\"ascii\",\"utf-8\",\"utf-16\",\"latin1\",\"latin1\"];var Methods=[\"get\",\"post\",\"put\",\"delete\"];var Encs=[\"application/x-www-form-urlencoded\",\"multipart/form-data\",\"text/plain\"];var Bool=[\"true\",\"false\"];var S={};var Tags={a:{attrs:{href:null,ping:null,type:null,media:null,target:Targets,hreflang:null}},abbr:S,address:S,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:[\"default\",\"rect\",\"circle\",\"poly\"]}},article:S,aside:S,audio:{attrs:{src:null,mediagroup:null,crossorigin:[\"anonymous\",\"use-credentials\"],preload:[\"none\",\"metadata\",\"auto\"],autoplay:[\"autoplay\"],loop:[\"loop\"],controls:[\"controls\"]}},b:S,base:{attrs:{href:null,target:Targets}},bdi:S,bdo:S,blockquote:{attrs:{cite:null}},body:S,br:S,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:[\"autofocus\"],disabled:[\"autofocus\"],formenctype:Encs,formmethod:Methods,formnovalidate:[\"novalidate\"],formtarget:Targets,type:[\"submit\",\"reset\",\"button\"]}},canvas:{attrs:{width:null,height:null}},caption:S,center:S,cite:S,code:S,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:[\"command\",\"checkbox\",\"radio\"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:[\"disabled\"],checked:[\"checked\"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:[\"disabled\"],multiple:[\"multiple\"]}},datalist:{attrs:{data:null}},dd:S,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:[\"open\"]}},dfn:S,div:S,dl:S,dt:S,em:S,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:[\"disabled\"],form:null,name:null}},figcaption:S,figure:S,footer:S,form:{attrs:{action:null,name:null,\"accept-charset\":Charsets,autocomplete:[\"on\",\"off\"],enctype:Encs,method:Methods,novalidate:[\"novalidate\"],target:Targets}},h1:S,h2:S,h3:S,h4:S,h5:S,h6:S,head:{children:[\"title\",\"base\",\"link\",\"style\",\"meta\",\"script\",\"noscript\",\"command\"]},header:S,hgroup:S,hr:S,html:{attrs:{manifest:null}},i:S,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:[\"allow-top-navigation\",\"allow-same-origin\",\"allow-forms\",\"allow-scripts\"],seamless:[\"seamless\"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:[\"anonymous\",\"use-credentials\"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:[\"audio/*\",\"video/*\",\"image/*\"],autocomplete:[\"on\",\"off\"],autofocus:[\"autofocus\"],checked:[\"checked\"],disabled:[\"disabled\"],formenctype:Encs,formmethod:Methods,formnovalidate:[\"novalidate\"],formtarget:Targets,multiple:[\"multiple\"],readonly:[\"readonly\"],required:[\"required\"],type:[\"hidden\",\"text\",\"search\",\"tel\",\"url\",\"email\",\"password\",\"datetime\",\"date\",\"month\",\"week\",\"time\",\"datetime-local\",\"number\",\"range\",\"color\",\"checkbox\",\"radio\",\"file\",\"submit\",\"image\",\"reset\",\"button\"]}},ins:{attrs:{cite:null,datetime:null}},kbd:S,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:[\"autofocus\"],disabled:[\"disabled\"],keytype:[\"RSA\"]}},label:{attrs:{for:null,form:null}},legend:S,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:[\"all\",\"16x16\",\"16x16 32x32\",\"16x16 32x32 64x64\"]}},map:{attrs:{name:null}},mark:S,menu:{attrs:{label:null,type:[\"list\",\"context\",\"toolbar\"]}},meta:{attrs:{content:null,charset:Charsets,name:[\"viewport\",\"application-name\",\"author\",\"description\",\"generator\",\"keywords\"],\"http-equiv\":[\"content-language\",\"content-type\",\"default-style\",\"refresh\"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:S,noscript:S,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:[\"typemustmatch\"]}},ol:{attrs:{reversed:[\"reversed\"],start:null,type:[\"1\",\"a\",\"A\",\"i\",\"I\"]},children:[\"li\",\"script\",\"template\",\"ul\",\"ol\"]},optgroup:{attrs:{disabled:[\"disabled\"],label:null}},option:{attrs:{disabled:[\"disabled\"],label:null,selected:[\"selected\"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:S,param:{attrs:{name:null,value:null}},pre:S,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:S,rt:S,ruby:S,samp:S,script:{attrs:{type:[\"text/javascript\"],src:null,async:[\"async\"],defer:[\"defer\"],charset:Charsets}},section:S,select:{attrs:{form:null,name:null,size:null,autofocus:[\"autofocus\"],disabled:[\"disabled\"],multiple:[\"multiple\"]}},slot:{attrs:{name:null}},small:S,source:{attrs:{src:null,type:null,media:null}},span:S,strong:S,style:{attrs:{type:[\"text/css\"],media:null,scoped:null}},sub:S,summary:S,sup:S,table:S,tbody:S,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:S,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:[\"autofocus\"],disabled:[\"disabled\"],readonly:[\"readonly\"],required:[\"required\"],wrap:[\"soft\",\"hard\"]}},tfoot:S,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:[\"row\",\"col\",\"rowgroup\",\"colgroup\"]}},thead:S,time:{attrs:{datetime:null}},title:S,tr:S,track:{attrs:{src:null,label:null,default:null,kind:[\"subtitles\",\"captions\",\"descriptions\",\"chapters\",\"metadata\"],srclang:null}},ul:{children:[\"li\",\"script\",\"template\",\"ul\",\"ol\"]},var:S,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:[\"anonymous\",\"use-credentials\"],preload:[\"auto\",\"metadata\",\"none\"],autoplay:[\"autoplay\"],mediagroup:[\"movie\"],muted:[\"muted\"],controls:[\"controls\"]}},wbr:S};var GlobalAttrs={accesskey:null,class:null,contenteditable:Bool,contextmenu:null,dir:[\"ltr\",\"rtl\",\"auto\"],draggable:[\"true\",\"false\",\"auto\"],dropzone:[\"copy\",\"move\",\"link\",\"string:\",\"file:\"],hidden:[\"hidden\"],id:null,inert:[\"inert\"],itemid:null,itemprop:null,itemref:null,itemscope:[\"itemscope\"],itemtype:null,lang:[\"ar\",\"bn\",\"de\",\"en-GB\",\"en-US\",\"es\",\"fr\",\"hi\",\"id\",\"ja\",\"pa\",\"pt\",\"ru\",\"tr\",\"zh\"],spellcheck:Bool,autocorrect:Bool,autocapitalize:Bool,style:null,tabindex:null,title:null,translate:[\"yes\",\"no\"],rel:[\"stylesheet\",\"alternate\",\"author\",\"bookmark\",\"help\",\"license\",\"next\",\"nofollow\",\"noreferrer\",\"prefetch\",\"prev\",\"search\",\"tag\"],role:/* @__PURE__ */\"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer\".split(\" \"),\"aria-activedescendant\":null,\"aria-atomic\":Bool,\"aria-autocomplete\":[\"inline\",\"list\",\"both\",\"none\"],\"aria-busy\":Bool,\"aria-checked\":[\"true\",\"false\",\"mixed\",\"undefined\"],\"aria-controls\":null,\"aria-describedby\":null,\"aria-disabled\":Bool,\"aria-dropeffect\":null,\"aria-expanded\":[\"true\",\"false\",\"undefined\"],\"aria-flowto\":null,\"aria-grabbed\":[\"true\",\"false\",\"undefined\"],\"aria-haspopup\":Bool,\"aria-hidden\":Bool,\"aria-invalid\":[\"true\",\"false\",\"grammar\",\"spelling\"],\"aria-label\":null,\"aria-labelledby\":null,\"aria-level\":null,\"aria-live\":[\"off\",\"polite\",\"assertive\"],\"aria-multiline\":Bool,\"aria-multiselectable\":Bool,\"aria-owns\":null,\"aria-posinset\":null,\"aria-pressed\":[\"true\",\"false\",\"mixed\",\"undefined\"],\"aria-readonly\":Bool,\"aria-relevant\":null,\"aria-required\":Bool,\"aria-selected\":[\"true\",\"false\",\"undefined\"],\"aria-setsize\":null,\"aria-sort\":[\"ascending\",\"descending\",\"none\",\"other\"],\"aria-valuemax\":null,\"aria-valuemin\":null,\"aria-valuenow\":null,\"aria-valuetext\":null};var eventAttributes=/* @__PURE__ */\"beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload\".split(\" \").map(n=>\"on\"+n);for(let a of eventAttributes)GlobalAttrs[a]=null;var Schema=class{constructor(extraTags,extraAttrs){this.tags=Object.assign(Object.assign({},Tags),extraTags);this.globalAttrs=Object.assign(Object.assign({},GlobalAttrs),extraAttrs);this.allTags=Object.keys(this.tags);this.globalAttrNames=Object.keys(this.globalAttrs);}};Schema.default=/* @__PURE__ */new Schema;function elementName(doc,tree,max=doc.length){if(!tree)return\"\";let tag=tree.firstChild;let name=tag&&tag.getChild(\"TagName\");return name?doc.sliceString(name.from,Math.min(name.to,max)):\"\";}function findParentElement(tree,skip=false){for(;tree;tree=tree.parent)if(tree.name==\"Element\"){if(skip)skip=false;else return tree;}return null;}function allowedChildren(doc,tree,schema){let parentInfo=schema.tags[elementName(doc,findParentElement(tree))];return(parentInfo===null||parentInfo===void 0?void 0:parentInfo.children)||schema.allTags;}function openTags(doc,tree){let open=[];for(let parent=findParentElement(tree);parent&&!parent.type.isTop;parent=findParentElement(parent.parent)){let tagName=elementName(doc,parent);if(tagName&&parent.lastChild.name==\"CloseTag\")break;if(tagName&&open.indexOf(tagName)<0&&(tree.name==\"EndTag\"||tree.from>=parent.firstChild.to))open.push(tagName);}return open;}var identifier=/^[:\\-\\.\\w\\u00b7-\\uffff]*$/;function completeTag(state,schema,tree,from,to){let end=/\\s*>/.test(state.sliceDoc(to,to+5))?\"\":\">\";let parent=findParentElement(tree,true);return{from,to,options:allowedChildren(state.doc,parent,schema).map(tagName=>({label:tagName,type:\"type\"})).concat(openTags(state.doc,tree).map((tag,i)=>({label:\"/\"+tag,apply:\"/\"+tag+end,type:\"type\",boost:99-i}))),validFor:/^\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/};}function completeCloseTag(state,tree,from,to){let end=/\\s*>/.test(state.sliceDoc(to,to+5))?\"\":\">\";return{from,to,options:openTags(state.doc,tree).map((tag,i)=>({label:tag,apply:tag+end,type:\"type\",boost:99-i})),validFor:identifier};}function completeStartTag(state,schema,tree,pos){let options=[],level=0;for(let tagName of allowedChildren(state.doc,tree,schema))options.push({label:\"<\"+tagName,type:\"type\"});for(let open of openTags(state.doc,tree))options.push({label:\"</\"+open+\">\",type:\"type\",boost:99-level++});return{from:pos,to:pos,options,validFor:/^<\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/};}function completeAttrName(state,schema,tree,from,to){let elt=findParentElement(tree),info=elt?schema.tags[elementName(state.doc,elt)]:null;let localAttrs=info&&info.attrs?Object.keys(info.attrs):[];let names=info&&info.globalAttrs===false?localAttrs:localAttrs.length?localAttrs.concat(schema.globalAttrNames):schema.globalAttrNames;return{from,to,options:names.map(attrName=>({label:attrName,type:\"property\"})),validFor:identifier};}function completeAttrValue(state,schema,tree,from,to){var _a;let nameNode=(_a=tree.parent)===null||_a===void 0?void 0:_a.getChild(\"AttributeName\");let options=[],token=void 0;if(nameNode){let attrName=state.sliceDoc(nameNode.from,nameNode.to);let attrs=schema.globalAttrs[attrName];if(!attrs){let elt=findParentElement(tree),info=elt?schema.tags[elementName(state.doc,elt)]:null;attrs=(info===null||info===void 0?void 0:info.attrs)&&info.attrs[attrName];}if(attrs){let base=state.sliceDoc(from,to).toLowerCase(),quoteStart='\"',quoteEnd='\"';if(/^['\"]/.test(base)){token=base[0]=='\"'?/^[^\"]*$/:/^[^']*$/;quoteStart=\"\";quoteEnd=state.sliceDoc(to,to+1)==base[0]?\"\":base[0];base=base.slice(1);from++;}else{token=/^[^\\s<>='\"]*$/;}for(let value of attrs)options.push({label:value,apply:quoteStart+value+quoteEnd,type:\"constant\"});}}return{from,to,options,validFor:token};}function htmlCompletionFor(schema,context){let{state,pos}=context,around=syntaxTree(state).resolveInner(pos),tree=around.resolve(pos,-1);for(let scan=pos,before;around==tree&&(before=tree.childBefore(scan));){let last=before.lastChild;if(!last||!last.type.isError||last.from<last.to)break;around=tree=before;scan=last.from;}if(tree.name==\"TagName\"){return tree.parent&&/CloseTag$/.test(tree.parent.name)?completeCloseTag(state,tree,tree.from,pos):completeTag(state,schema,tree,tree.from,pos);}else if(tree.name==\"StartTag\"){return completeTag(state,schema,tree,pos,pos);}else if(tree.name==\"StartCloseTag\"||tree.name==\"IncompleteCloseTag\"){return completeCloseTag(state,tree,pos,pos);}else if(context.explicit&&(tree.name==\"OpenTag\"||tree.name==\"SelfClosingTag\")||tree.name==\"AttributeName\"){return completeAttrName(state,schema,tree,tree.name==\"AttributeName\"?tree.from:pos,pos);}else if(tree.name==\"Is\"||tree.name==\"AttributeValue\"||tree.name==\"UnquotedAttributeValue\"){return completeAttrValue(state,schema,tree,tree.name==\"Is\"?pos:tree.from,pos);}else if(context.explicit&&(around.name==\"Element\"||around.name==\"Text\"||around.name==\"Document\")){return completeStartTag(state,schema,tree,pos);}else{return null;}}function htmlCompletionSource(context){return htmlCompletionFor(Schema.default,context);}function htmlCompletionSourceWith(config){let{extraTags,extraGlobalAttributes:extraAttrs}=config;let schema=extraAttrs||extraTags?new Schema(extraTags,extraAttrs):Schema.default;return context=>htmlCompletionFor(schema,context);}var defaultNesting=[{tag:\"script\",attrs:attrs=>attrs.type==\"text/typescript\"||attrs.lang==\"ts\",parser:typescriptLanguage.parser},{tag:\"script\",attrs:attrs=>attrs.type==\"text/babel\"||attrs.type==\"text/jsx\",parser:jsxLanguage.parser},{tag:\"script\",attrs:attrs=>attrs.type==\"text/typescript-jsx\",parser:tsxLanguage.parser},{tag:\"script\",attrs(attrs){return!attrs.type||/^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type);},parser:javascriptLanguage.parser},{tag:\"style\",attrs(attrs){return(!attrs.lang||attrs.lang==\"css\")&&(!attrs.type||/^(text\\/)?(x-)?(stylesheet|css)$/i.test(attrs.type));},parser:cssLanguage.parser}];var defaultAttrs=/* @__PURE__ */[{name:\"style\",parser:/* @__PURE__ */cssLanguage.parser.configure({top:\"Styles\"})}].concat(/* @__PURE__ */eventAttributes.map(name=>({name,parser:javascriptLanguage.parser})));var htmlPlain=/* @__PURE__ */LRLanguage.define({name:\"html\",parser:/* @__PURE__ */parser.configure({props:[/* @__PURE__ */indentNodeProp.add({Element(context){let after=/^(\\s*)(<\\/)?/.exec(context.textAfter);if(context.node.to<=context.pos+after[0].length)return context.continue();return context.lineIndent(context.node.from)+(after[2]?0:context.unit);},\"OpenTag CloseTag SelfClosingTag\"(context){return context.column(context.node.from)+context.unit;},Document(context){if(context.pos+/\\s*/.exec(context.textAfter)[0].length<context.node.to)return context.continue();let endElt=null,close;for(let cur=context.node;;){let last=cur.lastChild;if(!last||last.name!=\"Element\"||last.to!=cur.to)break;endElt=cur=last;}if(endElt&&!((close=endElt.lastChild)&&(close.name==\"CloseTag\"||close.name==\"SelfClosingTag\")))return context.lineIndent(endElt.from)+context.unit;return null;}}),/* @__PURE__ */foldNodeProp.add({Element(node){let first=node.firstChild,last=node.lastChild;if(!first||first.name!=\"OpenTag\")return null;return{from:first.to,to:last.name==\"CloseTag\"?last.from:node.to};}}),/* @__PURE__ */bracketMatchingHandle.add({\"OpenTag CloseTag\":node=>node.getChild(\"TagName\")})]}),languageData:{commentTokens:{block:{open:\"<!--\",close:\"-->\"}},indentOnInput:/^\\s*<\\/\\w+\\W$/,wordChars:\"-._\"}});var htmlLanguage=/* @__PURE__ */htmlPlain.configure({wrap:/* @__PURE__ */configureNesting(defaultNesting,defaultAttrs)});function html(config={}){let dialect=\"\",wrap;if(config.matchClosingTags===false)dialect=\"noMatch\";if(config.selfClosingTags===true)dialect=(dialect?dialect+\" \":\"\")+\"selfClosing\";if(config.nestedLanguages&&config.nestedLanguages.length||config.nestedAttributes&&config.nestedAttributes.length)wrap=configureNesting((config.nestedLanguages||[]).concat(defaultNesting),(config.nestedAttributes||[]).concat(defaultAttrs));let lang=wrap?htmlPlain.configure({wrap,dialect}):dialect?htmlLanguage.configure({dialect}):htmlLanguage;return new LanguageSupport(lang,[htmlLanguage.data.of({autocomplete:htmlCompletionSourceWith(config)}),config.autoCloseTags!==false?autoCloseTags:[],javascript().support,css().support]);}var selfClosers=/* @__PURE__ */new Set(/* @__PURE__ */\"area base br col command embed frame hr img input keygen link meta param source track wbr menuitem\".split(\" \"));var autoCloseTags=/* @__PURE__ */EditorView.inputHandler.of((view,from,to,text)=>{if(view.composing||view.state.readOnly||from!=to||text!=\">\"&&text!=\"/\"||!htmlLanguage.isActiveAt(view.state,from,-1))return false;let{state}=view;let changes=state.changeByRange(range=>{var _a,_b,_c;let{head}=range,around=syntaxTree(state).resolveInner(head,-1),name;if(around.name==\"TagName\"||around.name==\"StartTag\")around=around.parent;if(text==\">\"&&around.name==\"OpenTag\"){if(((_b=(_a=around.parent)===null||_a===void 0?void 0:_a.lastChild)===null||_b===void 0?void 0:_b.name)!=\"CloseTag\"&&(name=elementName(state.doc,around.parent,head))&&!selfClosers.has(name)){let hasRightBracket=view.state.doc.sliceString(head,head+1)===\">\";let insert=`${hasRightBracket?\"\":\">\"}</${name}>`;return{range:EditorSelection.cursor(head+1),changes:{from:head+(hasRightBracket?1:0),insert}};}}else if(text==\"/\"&&around.name==\"OpenTag\"){let empty=around.parent,base=empty===null||empty===void 0?void 0:empty.parent;if(empty.from==head-1&&((_c=base.lastChild)===null||_c===void 0?void 0:_c.name)!=\"CloseTag\"&&(name=elementName(state.doc,base,head))&&!selfClosers.has(name)){let hasRightBracket=view.state.doc.sliceString(head,head+1)===\">\";let insert=`/${name}${hasRightBracket?\"\":\">\"}`;let pos=head+insert.length+(hasRightBracket?1:0);return{range:EditorSelection.cursor(pos),changes:{from:head,insert}};}}return{range};});if(changes.changes.empty)return false;view.dispatch(changes,{userEvent:\"input.type\",scrollIntoView:true});return true;});export{autoCloseTags,html,htmlCompletionSource,htmlCompletionSourceWith,htmlLanguage,htmlPlain,};\nexport const __FramerMetadata__ = {\"exports\":{\"htmlPlain\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"htmlCompletionSource\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"htmlLanguage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"htmlCompletionSourceWith\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"autoCloseTags\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"html\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}