1 line
2.9 MiB
1 line
2.9 MiB
{"version":3,"file":"compiler.mjs","sources":["src/compiler/Stats.ts","node_modules/acorn/dist/acorn.mjs","src/compiler/utils/flatten.ts","src/compiler/utils/patterns.ts","src/compiler/utils/extract_svelte_ignore.ts","src/compiler/utils/fuzzymatch.ts","src/shared/utils/names.ts","src/compiler/utils/list.ts","src/compiler/parse/errors.ts","node_modules/estree-walker/src/walker.js","node_modules/estree-walker/src/sync.js","node_modules/estree-walker/src/index.js","node_modules/code-red/src/utils/id.js","node_modules/code-red/src/utils/comments.js","node_modules/is-reference/src/index.js","node_modules/periscopic/src/index.js","node_modules/code-red/src/utils/push_array.js","node_modules/code-red/src/print/handlers.js","node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs","node_modules/code-red/src/print/index.js","node_modules/code-red/src/index.js","src/compiler/parse/acorn.ts","src/compiler/parse/read/expression.ts","src/compiler/parse/read/script.ts","node_modules/css-tree/lib/utils/List.js","node_modules/css-tree/lib/utils/create-custom-error.js","node_modules/css-tree/lib/parser/SyntaxError.js","node_modules/css-tree/lib/tokenizer/types.js","node_modules/css-tree/lib/tokenizer/char-code-definitions.js","node_modules/css-tree/lib/tokenizer/utils.js","node_modules/css-tree/lib/tokenizer/names.js","node_modules/css-tree/lib/tokenizer/adopt-buffer.js","node_modules/css-tree/lib/tokenizer/OffsetToLocation.js","node_modules/css-tree/lib/tokenizer/TokenStream.js","node_modules/css-tree/lib/tokenizer/index.js","node_modules/css-tree/lib/parser/sequence.js","node_modules/css-tree/lib/parser/create.js","node_modules/css-tree/lib/syntax/scope/default.js","node_modules/css-tree/lib/syntax/scope/atrulePrelude.js","node_modules/css-tree/lib/syntax/scope/selector.js","node_modules/css-tree/lib/syntax/function/expression.js","node_modules/css-tree/lib/syntax/function/var.js","node_modules/css-tree/lib/syntax/scope/value.js","node_modules/css-tree/lib/syntax/atrule/font-face.js","node_modules/css-tree/lib/syntax/atrule/import.js","node_modules/css-tree/lib/syntax/atrule/media.js","node_modules/css-tree/lib/syntax/atrule/nest.js","node_modules/css-tree/lib/syntax/atrule/page.js","node_modules/css-tree/lib/syntax/atrule/supports.js","node_modules/css-tree/lib/syntax/atrule/index.js","node_modules/css-tree/lib/syntax/pseudo/index.js","node_modules/css-tree/lib/syntax/node/AnPlusB.js","node_modules/css-tree/lib/syntax/node/Atrule.js","node_modules/css-tree/lib/syntax/node/AtrulePrelude.js","node_modules/css-tree/lib/syntax/node/AttributeSelector.js","node_modules/css-tree/lib/syntax/node/Block.js","node_modules/css-tree/lib/syntax/node/Brackets.js","node_modules/css-tree/lib/syntax/node/CDC.js","node_modules/css-tree/lib/syntax/node/CDO.js","node_modules/css-tree/lib/syntax/node/ClassSelector.js","node_modules/css-tree/lib/syntax/node/Combinator.js","node_modules/css-tree/lib/syntax/node/Comment.js","node_modules/css-tree/lib/utils/names.js","node_modules/css-tree/lib/syntax/node/Declaration.js","node_modules/css-tree/lib/syntax/node/DeclarationList.js","node_modules/css-tree/lib/syntax/node/Dimension.js","node_modules/css-tree/lib/syntax/node/Function.js","node_modules/css-tree/lib/syntax/node/Hash.js","node_modules/css-tree/lib/syntax/node/Identifier.js","node_modules/css-tree/lib/syntax/node/IdSelector.js","node_modules/css-tree/lib/syntax/node/MediaFeature.js","node_modules/css-tree/lib/syntax/node/MediaQuery.js","node_modules/css-tree/lib/syntax/node/MediaQueryList.js","node_modules/css-tree/lib/syntax/node/NestingSelector.js","node_modules/css-tree/lib/syntax/node/Nth.js","node_modules/css-tree/lib/syntax/node/Number.js","node_modules/css-tree/lib/syntax/node/Operator.js","node_modules/css-tree/lib/syntax/node/Parentheses.js","node_modules/css-tree/lib/syntax/node/Percentage.js","node_modules/css-tree/lib/syntax/node/PseudoClassSelector.js","node_modules/css-tree/lib/syntax/node/PseudoElementSelector.js","node_modules/css-tree/lib/syntax/node/Ratio.js","node_modules/css-tree/lib/syntax/node/Raw.js","node_modules/css-tree/lib/syntax/node/Rule.js","node_modules/css-tree/lib/syntax/node/Selector.js","node_modules/css-tree/lib/syntax/node/SelectorList.js","node_modules/css-tree/lib/utils/string.js","node_modules/css-tree/lib/syntax/node/String.js","node_modules/css-tree/lib/syntax/node/StyleSheet.js","node_modules/css-tree/lib/syntax/node/TypeSelector.js","node_modules/css-tree/lib/syntax/node/UnicodeRange.js","node_modules/css-tree/lib/utils/url.js","node_modules/css-tree/lib/syntax/node/Url.js","node_modules/css-tree/lib/syntax/node/Value.js","node_modules/css-tree/lib/syntax/node/WhiteSpace.js","node_modules/css-tree/lib/syntax/config/parser.js","node_modules/css-tree/lib/parser/index.js","src/compiler/parse/read/style.ts","src/compiler/parse/utils/entities.ts","src/compiler/parse/utils/html.ts","src/compiler/parse/state/tag.ts","src/compiler/utils/full_char_code_at.ts","src/compiler/parse/utils/bracket.ts","src/compiler/parse/read/context.ts","src/compiler/utils/trim.ts","src/compiler/parse/utils/node.ts","src/compiler/parse/state/mustache.ts","src/compiler/parse/state/text.ts","src/compiler/parse/state/fragment.ts","src/compiler/utils/names.ts","node_modules/locate-character/dist/locate-character.es.js","src/compiler/utils/get_code_frame.ts","src/compiler/utils/error.ts","src/compiler/parse/index.ts","src/compiler/compile/render_dom/wrappers/shared/is_head.ts","src/compiler/compile/render_dom/Block.ts","src/compiler/compile/render_dom/wrappers/shared/Wrapper.ts","src/compiler/compile/render_dom/wrappers/shared/create_debugging_comment.ts","src/compiler/compile/nodes/shared/Node.ts","src/compiler/compile/compiler_warnings.ts","src/compiler/compile/nodes/shared/AbstractBlock.ts","src/compiler/compile/utils/flatten_reference.ts","src/compiler/compile/utils/scope.ts","src/compiler/compile/utils/get_object.ts","src/compiler/compile/utils/reserved_keywords.ts","src/compiler/compile/render_dom/wrappers/shared/is_dynamic.ts","src/compiler/utils/nodes_match.ts","src/compiler/compile/render_dom/invalidate.ts","src/compiler/compile/utils/replace_object.ts","src/compiler/compile/nodes/shared/is_contextual.ts","src/compiler/utils/clone.ts","src/compiler/compile/compiler_errors.ts","src/compiler/compile/nodes/shared/Expression.ts","src/compiler/compile/nodes/shared/Context.ts","src/compiler/compile/nodes/ConstTag.ts","src/compiler/compile/nodes/PendingBlock.ts","src/compiler/compile/nodes/CatchBlock.ts","src/compiler/compile/nodes/AwaitBlock.ts","src/compiler/compile/nodes/EventHandler.ts","src/compiler/compile/nodes/Action.ts","src/compiler/compile/nodes/Body.ts","src/compiler/compile/nodes/Comment.ts","src/compiler/compile/nodes/ElseBlock.ts","src/compiler/compile/nodes/EachBlock.ts","src/compiler/compile/utils/stringify.ts","src/compiler/compile/utils/add_to_set.ts","src/compiler/compile/nodes/Attribute.ts","src/compiler/compile/nodes/Binding.ts","src/compiler/compile/nodes/Transition.ts","src/compiler/compile/nodes/Animation.ts","src/compiler/compile/nodes/Class.ts","src/compiler/compile/utils/nodes_to_template_literal.ts","src/compiler/compile/nodes/StyleDirective.ts","src/compiler/compile/nodes/Text.ts","src/compiler/utils/namespaces.ts","src/compiler/compile/nodes/Let.ts","node_modules/aria-query/lib/util/iteratorProxy.js","node_modules/aria-query/lib/util/iterationDecorator.js","node_modules/aria-query/lib/ariaPropsMap.js","node_modules/aria-query/lib/domMap.js","node_modules/aria-query/lib/etc/roles/abstract/commandRole.js","node_modules/aria-query/lib/etc/roles/abstract/compositeRole.js","node_modules/aria-query/lib/etc/roles/abstract/inputRole.js","node_modules/aria-query/lib/etc/roles/abstract/landmarkRole.js","node_modules/aria-query/lib/etc/roles/abstract/rangeRole.js","node_modules/aria-query/lib/etc/roles/abstract/roletypeRole.js","node_modules/aria-query/lib/etc/roles/abstract/sectionRole.js","node_modules/aria-query/lib/etc/roles/abstract/sectionheadRole.js","node_modules/aria-query/lib/etc/roles/abstract/selectRole.js","node_modules/aria-query/lib/etc/roles/abstract/structureRole.js","node_modules/aria-query/lib/etc/roles/abstract/widgetRole.js","node_modules/aria-query/lib/etc/roles/abstract/windowRole.js","node_modules/aria-query/lib/etc/roles/ariaAbstractRoles.js","node_modules/aria-query/lib/etc/roles/literal/alertRole.js","node_modules/aria-query/lib/etc/roles/literal/alertdialogRole.js","node_modules/aria-query/lib/etc/roles/literal/applicationRole.js","node_modules/aria-query/lib/etc/roles/literal/articleRole.js","node_modules/aria-query/lib/etc/roles/literal/bannerRole.js","node_modules/aria-query/lib/etc/roles/literal/blockquoteRole.js","node_modules/aria-query/lib/etc/roles/literal/buttonRole.js","node_modules/aria-query/lib/etc/roles/literal/captionRole.js","node_modules/aria-query/lib/etc/roles/literal/cellRole.js","node_modules/aria-query/lib/etc/roles/literal/checkboxRole.js","node_modules/aria-query/lib/etc/roles/literal/codeRole.js","node_modules/aria-query/lib/etc/roles/literal/columnheaderRole.js","node_modules/aria-query/lib/etc/roles/literal/comboboxRole.js","node_modules/aria-query/lib/etc/roles/literal/complementaryRole.js","node_modules/aria-query/lib/etc/roles/literal/contentinfoRole.js","node_modules/aria-query/lib/etc/roles/literal/definitionRole.js","node_modules/aria-query/lib/etc/roles/literal/deletionRole.js","node_modules/aria-query/lib/etc/roles/literal/dialogRole.js","node_modules/aria-query/lib/etc/roles/literal/directoryRole.js","node_modules/aria-query/lib/etc/roles/literal/documentRole.js","node_modules/aria-query/lib/etc/roles/literal/emphasisRole.js","node_modules/aria-query/lib/etc/roles/literal/feedRole.js","node_modules/aria-query/lib/etc/roles/literal/figureRole.js","node_modules/aria-query/lib/etc/roles/literal/formRole.js","node_modules/aria-query/lib/etc/roles/literal/genericRole.js","node_modules/aria-query/lib/etc/roles/literal/gridRole.js","node_modules/aria-query/lib/etc/roles/literal/gridcellRole.js","node_modules/aria-query/lib/etc/roles/literal/groupRole.js","node_modules/aria-query/lib/etc/roles/literal/headingRole.js","node_modules/aria-query/lib/etc/roles/literal/imgRole.js","node_modules/aria-query/lib/etc/roles/literal/insertionRole.js","node_modules/aria-query/lib/etc/roles/literal/linkRole.js","node_modules/aria-query/lib/etc/roles/literal/listRole.js","node_modules/aria-query/lib/etc/roles/literal/listboxRole.js","node_modules/aria-query/lib/etc/roles/literal/listitemRole.js","node_modules/aria-query/lib/etc/roles/literal/logRole.js","node_modules/aria-query/lib/etc/roles/literal/mainRole.js","node_modules/aria-query/lib/etc/roles/literal/marqueeRole.js","node_modules/aria-query/lib/etc/roles/literal/mathRole.js","node_modules/aria-query/lib/etc/roles/literal/menuRole.js","node_modules/aria-query/lib/etc/roles/literal/menubarRole.js","node_modules/aria-query/lib/etc/roles/literal/menuitemRole.js","node_modules/aria-query/lib/etc/roles/literal/menuitemcheckboxRole.js","node_modules/aria-query/lib/etc/roles/literal/menuitemradioRole.js","node_modules/aria-query/lib/etc/roles/literal/meterRole.js","node_modules/aria-query/lib/etc/roles/literal/navigationRole.js","node_modules/aria-query/lib/etc/roles/literal/noneRole.js","node_modules/aria-query/lib/etc/roles/literal/noteRole.js","node_modules/aria-query/lib/etc/roles/literal/optionRole.js","node_modules/aria-query/lib/etc/roles/literal/paragraphRole.js","node_modules/aria-query/lib/etc/roles/literal/presentationRole.js","node_modules/aria-query/lib/etc/roles/literal/progressbarRole.js","node_modules/aria-query/lib/etc/roles/literal/radioRole.js","node_modules/aria-query/lib/etc/roles/literal/radiogroupRole.js","node_modules/aria-query/lib/etc/roles/literal/regionRole.js","node_modules/aria-query/lib/etc/roles/literal/rowRole.js","node_modules/aria-query/lib/etc/roles/literal/rowgroupRole.js","node_modules/aria-query/lib/etc/roles/literal/rowheaderRole.js","node_modules/aria-query/lib/etc/roles/literal/scrollbarRole.js","node_modules/aria-query/lib/etc/roles/literal/searchRole.js","node_modules/aria-query/lib/etc/roles/literal/searchboxRole.js","node_modules/aria-query/lib/etc/roles/literal/separatorRole.js","node_modules/aria-query/lib/etc/roles/literal/sliderRole.js","node_modules/aria-query/lib/etc/roles/literal/spinbuttonRole.js","node_modules/aria-query/lib/etc/roles/literal/statusRole.js","node_modules/aria-query/lib/etc/roles/literal/strongRole.js","node_modules/aria-query/lib/etc/roles/literal/subscriptRole.js","node_modules/aria-query/lib/etc/roles/literal/superscriptRole.js","node_modules/aria-query/lib/etc/roles/literal/switchRole.js","node_modules/aria-query/lib/etc/roles/literal/tabRole.js","node_modules/aria-query/lib/etc/roles/literal/tableRole.js","node_modules/aria-query/lib/etc/roles/literal/tablistRole.js","node_modules/aria-query/lib/etc/roles/literal/tabpanelRole.js","node_modules/aria-query/lib/etc/roles/literal/termRole.js","node_modules/aria-query/lib/etc/roles/literal/textboxRole.js","node_modules/aria-query/lib/etc/roles/literal/timeRole.js","node_modules/aria-query/lib/etc/roles/literal/timerRole.js","node_modules/aria-query/lib/etc/roles/literal/toolbarRole.js","node_modules/aria-query/lib/etc/roles/literal/tooltipRole.js","node_modules/aria-query/lib/etc/roles/literal/treeRole.js","node_modules/aria-query/lib/etc/roles/literal/treegridRole.js","node_modules/aria-query/lib/etc/roles/literal/treeitemRole.js","node_modules/aria-query/lib/etc/roles/ariaLiteralRoles.js","node_modules/aria-query/lib/etc/roles/dpub/docAbstractRole.js","node_modules/aria-query/lib/etc/roles/dpub/docAcknowledgmentsRole.js","node_modules/aria-query/lib/etc/roles/dpub/docAfterwordRole.js","node_modules/aria-query/lib/etc/roles/dpub/docAppendixRole.js","node_modules/aria-query/lib/etc/roles/dpub/docBacklinkRole.js","node_modules/aria-query/lib/etc/roles/dpub/docBiblioentryRole.js","node_modules/aria-query/lib/etc/roles/dpub/docBibliographyRole.js","node_modules/aria-query/lib/etc/roles/dpub/docBibliorefRole.js","node_modules/aria-query/lib/etc/roles/dpub/docChapterRole.js","node_modules/aria-query/lib/etc/roles/dpub/docColophonRole.js","node_modules/aria-query/lib/etc/roles/dpub/docConclusionRole.js","node_modules/aria-query/lib/etc/roles/dpub/docCoverRole.js","node_modules/aria-query/lib/etc/roles/dpub/docCreditRole.js","node_modules/aria-query/lib/etc/roles/dpub/docCreditsRole.js","node_modules/aria-query/lib/etc/roles/dpub/docDedicationRole.js","node_modules/aria-query/lib/etc/roles/dpub/docEndnoteRole.js","node_modules/aria-query/lib/etc/roles/dpub/docEndnotesRole.js","node_modules/aria-query/lib/etc/roles/dpub/docEpigraphRole.js","node_modules/aria-query/lib/etc/roles/dpub/docEpilogueRole.js","node_modules/aria-query/lib/etc/roles/dpub/docErrataRole.js","node_modules/aria-query/lib/etc/roles/dpub/docExampleRole.js","node_modules/aria-query/lib/etc/roles/dpub/docFootnoteRole.js","node_modules/aria-query/lib/etc/roles/dpub/docForewordRole.js","node_modules/aria-query/lib/etc/roles/dpub/docGlossaryRole.js","node_modules/aria-query/lib/etc/roles/dpub/docGlossrefRole.js","node_modules/aria-query/lib/etc/roles/dpub/docIndexRole.js","node_modules/aria-query/lib/etc/roles/dpub/docIntroductionRole.js","node_modules/aria-query/lib/etc/roles/dpub/docNoterefRole.js","node_modules/aria-query/lib/etc/roles/dpub/docNoticeRole.js","node_modules/aria-query/lib/etc/roles/dpub/docPagebreakRole.js","node_modules/aria-query/lib/etc/roles/dpub/docPagelistRole.js","node_modules/aria-query/lib/etc/roles/dpub/docPartRole.js","node_modules/aria-query/lib/etc/roles/dpub/docPrefaceRole.js","node_modules/aria-query/lib/etc/roles/dpub/docPrologueRole.js","node_modules/aria-query/lib/etc/roles/dpub/docPullquoteRole.js","node_modules/aria-query/lib/etc/roles/dpub/docQnaRole.js","node_modules/aria-query/lib/etc/roles/dpub/docSubtitleRole.js","node_modules/aria-query/lib/etc/roles/dpub/docTipRole.js","node_modules/aria-query/lib/etc/roles/dpub/docTocRole.js","node_modules/aria-query/lib/etc/roles/ariaDpubRoles.js","node_modules/aria-query/lib/etc/roles/graphics/graphicsDocumentRole.js","node_modules/aria-query/lib/etc/roles/graphics/graphicsObjectRole.js","node_modules/aria-query/lib/etc/roles/graphics/graphicsSymbolRole.js","node_modules/aria-query/lib/etc/roles/ariaGraphicsRoles.js","node_modules/aria-query/lib/rolesMap.js","node_modules/object-keys/isArguments.js","node_modules/object-keys/implementation.js","node_modules/object-keys/index.js","node_modules/has-symbols/shams.js","node_modules/has-tostringtag/shams.js","node_modules/has-symbols/index.js","node_modules/function-bind/implementation.js","node_modules/function-bind/index.js","node_modules/has/src/index.js","node_modules/get-intrinsic/index.js","node_modules/call-bind/index.js","node_modules/call-bind/callBound.js","node_modules/is-arguments/index.js","node_modules/has-property-descriptors/index.js","node_modules/define-properties/index.js","node_modules/object-is/implementation.js","node_modules/object-is/polyfill.js","node_modules/object-is/shim.js","node_modules/object-is/index.js","node_modules/is-regex/index.js","node_modules/functions-have-names/index.js","node_modules/regexp.prototype.flags/implementation.js","node_modules/regexp.prototype.flags/polyfill.js","node_modules/regexp.prototype.flags/shim.js","node_modules/regexp.prototype.flags/index.js","node_modules/deep-equal/node_modules/isarray/index.js","node_modules/is-date-object/index.js","node_modules/is-string/index.js","node_modules/is-number-object/index.js","node_modules/is-boolean-object/index.js","node_modules/is-symbol/index.js","node_modules/has-bigints/index.js","node_modules/is-bigint/index.js","node_modules/which-boxed-primitive/index.js","node_modules/is-map/index.js","node_modules/is-set/index.js","node_modules/is-weakmap/index.js","node_modules/is-weakset/index.js","node_modules/which-collection/index.js","node_modules/es-get-iterator/node.mjs","node_modules/is-generator-function/index.js","node_modules/is-callable/index.js","node_modules/for-each/index.js","node_modules/available-typed-arrays/index.js","node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js","node_modules/is-typed-array/index.js","node_modules/which-typed-array/index.js","node_modules/util/support/types.js","node_modules/util/support/isBuffer.js","node_modules/inherits/inherits_browser.js","node_modules/inherits/inherits.js","node_modules/util/util.js","node_modules/object-inspect/util.inspect.js","node_modules/object-inspect/index.js","node_modules/side-channel/index.js","node_modules/deep-equal/node_modules/object.assign/implementation.js","node_modules/deep-equal/node_modules/object.assign/polyfill.js","node_modules/deep-equal/node_modules/object.assign/shim.js","node_modules/deep-equal/node_modules/object.assign/index.js","node_modules/deep-equal/index.js","node_modules/aria-query/lib/elementRoleMap.js","node_modules/aria-query/lib/roleElementMap.js","node_modules/aria-query/lib/index.js","node_modules/axobject-query/lib/util/iteratorProxy.js","node_modules/axobject-query/lib/util/iterationDecorator.js","node_modules/axobject-query/lib/etc/objects/AbbrRole.js","node_modules/axobject-query/lib/etc/objects/AlertDialogRole.js","node_modules/axobject-query/lib/etc/objects/AlertRole.js","node_modules/axobject-query/lib/etc/objects/AnnotationRole.js","node_modules/axobject-query/lib/etc/objects/ApplicationRole.js","node_modules/axobject-query/lib/etc/objects/ArticleRole.js","node_modules/axobject-query/lib/etc/objects/AudioRole.js","node_modules/axobject-query/lib/etc/objects/BannerRole.js","node_modules/axobject-query/lib/etc/objects/BlockquoteRole.js","node_modules/axobject-query/lib/etc/objects/BusyIndicatorRole.js","node_modules/axobject-query/lib/etc/objects/ButtonRole.js","node_modules/axobject-query/lib/etc/objects/CanvasRole.js","node_modules/axobject-query/lib/etc/objects/CaptionRole.js","node_modules/axobject-query/lib/etc/objects/CellRole.js","node_modules/axobject-query/lib/etc/objects/CheckBoxRole.js","node_modules/axobject-query/lib/etc/objects/ColorWellRole.js","node_modules/axobject-query/lib/etc/objects/ColumnHeaderRole.js","node_modules/axobject-query/lib/etc/objects/ColumnRole.js","node_modules/axobject-query/lib/etc/objects/ComboBoxRole.js","node_modules/axobject-query/lib/etc/objects/ComplementaryRole.js","node_modules/axobject-query/lib/etc/objects/ContentInfoRole.js","node_modules/axobject-query/lib/etc/objects/DateRole.js","node_modules/axobject-query/lib/etc/objects/DateTimeRole.js","node_modules/axobject-query/lib/etc/objects/DefinitionRole.js","node_modules/axobject-query/lib/etc/objects/DescriptionListDetailRole.js","node_modules/axobject-query/lib/etc/objects/DescriptionListRole.js","node_modules/axobject-query/lib/etc/objects/DescriptionListTermRole.js","node_modules/axobject-query/lib/etc/objects/DetailsRole.js","node_modules/axobject-query/lib/etc/objects/DialogRole.js","node_modules/axobject-query/lib/etc/objects/DirectoryRole.js","node_modules/axobject-query/lib/etc/objects/DisclosureTriangleRole.js","node_modules/axobject-query/lib/etc/objects/DivRole.js","node_modules/axobject-query/lib/etc/objects/DocumentRole.js","node_modules/axobject-query/lib/etc/objects/EmbeddedObjectRole.js","node_modules/axobject-query/lib/etc/objects/FeedRole.js","node_modules/axobject-query/lib/etc/objects/FigcaptionRole.js","node_modules/axobject-query/lib/etc/objects/FigureRole.js","node_modules/axobject-query/lib/etc/objects/FooterRole.js","node_modules/axobject-query/lib/etc/objects/FormRole.js","node_modules/axobject-query/lib/etc/objects/GridRole.js","node_modules/axobject-query/lib/etc/objects/GroupRole.js","node_modules/axobject-query/lib/etc/objects/HeadingRole.js","node_modules/axobject-query/lib/etc/objects/IframePresentationalRole.js","node_modules/axobject-query/lib/etc/objects/IframeRole.js","node_modules/axobject-query/lib/etc/objects/IgnoredRole.js","node_modules/axobject-query/lib/etc/objects/ImageMapLinkRole.js","node_modules/axobject-query/lib/etc/objects/ImageMapRole.js","node_modules/axobject-query/lib/etc/objects/ImageRole.js","node_modules/axobject-query/lib/etc/objects/InlineTextBoxRole.js","node_modules/axobject-query/lib/etc/objects/InputTimeRole.js","node_modules/axobject-query/lib/etc/objects/LabelRole.js","node_modules/axobject-query/lib/etc/objects/LegendRole.js","node_modules/axobject-query/lib/etc/objects/LineBreakRole.js","node_modules/axobject-query/lib/etc/objects/LinkRole.js","node_modules/axobject-query/lib/etc/objects/ListBoxOptionRole.js","node_modules/axobject-query/lib/etc/objects/ListBoxRole.js","node_modules/axobject-query/lib/etc/objects/ListItemRole.js","node_modules/axobject-query/lib/etc/objects/ListMarkerRole.js","node_modules/axobject-query/lib/etc/objects/ListRole.js","node_modules/axobject-query/lib/etc/objects/LogRole.js","node_modules/axobject-query/lib/etc/objects/MainRole.js","node_modules/axobject-query/lib/etc/objects/MarkRole.js","node_modules/axobject-query/lib/etc/objects/MarqueeRole.js","node_modules/axobject-query/lib/etc/objects/MathRole.js","node_modules/axobject-query/lib/etc/objects/MenuBarRole.js","node_modules/axobject-query/lib/etc/objects/MenuButtonRole.js","node_modules/axobject-query/lib/etc/objects/MenuItemRole.js","node_modules/axobject-query/lib/etc/objects/MenuItemCheckBoxRole.js","node_modules/axobject-query/lib/etc/objects/MenuItemRadioRole.js","node_modules/axobject-query/lib/etc/objects/MenuListOptionRole.js","node_modules/axobject-query/lib/etc/objects/MenuListPopupRole.js","node_modules/axobject-query/lib/etc/objects/MenuRole.js","node_modules/axobject-query/lib/etc/objects/MeterRole.js","node_modules/axobject-query/lib/etc/objects/NavigationRole.js","node_modules/axobject-query/lib/etc/objects/NoneRole.js","node_modules/axobject-query/lib/etc/objects/NoteRole.js","node_modules/axobject-query/lib/etc/objects/OutlineRole.js","node_modules/axobject-query/lib/etc/objects/ParagraphRole.js","node_modules/axobject-query/lib/etc/objects/PopUpButtonRole.js","node_modules/axobject-query/lib/etc/objects/PreRole.js","node_modules/axobject-query/lib/etc/objects/PresentationalRole.js","node_modules/axobject-query/lib/etc/objects/ProgressIndicatorRole.js","node_modules/axobject-query/lib/etc/objects/RadioButtonRole.js","node_modules/axobject-query/lib/etc/objects/RadioGroupRole.js","node_modules/axobject-query/lib/etc/objects/RegionRole.js","node_modules/axobject-query/lib/etc/objects/RootWebAreaRole.js","node_modules/axobject-query/lib/etc/objects/RowHeaderRole.js","node_modules/axobject-query/lib/etc/objects/RowRole.js","node_modules/axobject-query/lib/etc/objects/RubyRole.js","node_modules/axobject-query/lib/etc/objects/RulerRole.js","node_modules/axobject-query/lib/etc/objects/ScrollAreaRole.js","node_modules/axobject-query/lib/etc/objects/ScrollBarRole.js","node_modules/axobject-query/lib/etc/objects/SeamlessWebAreaRole.js","node_modules/axobject-query/lib/etc/objects/SearchRole.js","node_modules/axobject-query/lib/etc/objects/SearchBoxRole.js","node_modules/axobject-query/lib/etc/objects/SliderRole.js","node_modules/axobject-query/lib/etc/objects/SliderThumbRole.js","node_modules/axobject-query/lib/etc/objects/SpinButtonRole.js","node_modules/axobject-query/lib/etc/objects/SpinButtonPartRole.js","node_modules/axobject-query/lib/etc/objects/SplitterRole.js","node_modules/axobject-query/lib/etc/objects/StaticTextRole.js","node_modules/axobject-query/lib/etc/objects/StatusRole.js","node_modules/axobject-query/lib/etc/objects/SVGRootRole.js","node_modules/axobject-query/lib/etc/objects/SwitchRole.js","node_modules/axobject-query/lib/etc/objects/TabGroupRole.js","node_modules/axobject-query/lib/etc/objects/TabRole.js","node_modules/axobject-query/lib/etc/objects/TableHeaderContainerRole.js","node_modules/axobject-query/lib/etc/objects/TableRole.js","node_modules/axobject-query/lib/etc/objects/TabListRole.js","node_modules/axobject-query/lib/etc/objects/TabPanelRole.js","node_modules/axobject-query/lib/etc/objects/TermRole.js","node_modules/axobject-query/lib/etc/objects/TextFieldRole.js","node_modules/axobject-query/lib/etc/objects/TimeRole.js","node_modules/axobject-query/lib/etc/objects/TimerRole.js","node_modules/axobject-query/lib/etc/objects/ToggleButtonRole.js","node_modules/axobject-query/lib/etc/objects/ToolbarRole.js","node_modules/axobject-query/lib/etc/objects/TreeRole.js","node_modules/axobject-query/lib/etc/objects/TreeGridRole.js","node_modules/axobject-query/lib/etc/objects/TreeItemRole.js","node_modules/axobject-query/lib/etc/objects/UserInterfaceTooltipRole.js","node_modules/axobject-query/lib/etc/objects/VideoRole.js","node_modules/axobject-query/lib/etc/objects/WebAreaRole.js","node_modules/axobject-query/lib/etc/objects/WindowRole.js","node_modules/axobject-query/lib/AXObjectsMap.js","node_modules/axobject-query/lib/AXObjectElementMap.js","node_modules/axobject-query/lib/AXObjectRoleMap.js","node_modules/axobject-query/lib/elementAXObjectMap.js","node_modules/axobject-query/lib/index.js","src/compiler/compile/utils/a11y.ts","src/compiler/compile/nodes/Element.ts","src/compiler/compile/utils/hash.ts","src/compiler/compile/nodes/Head.ts","src/compiler/compile/nodes/IfBlock.ts","src/compiler/compile/nodes/InlineComponent.ts","src/compiler/compile/nodes/KeyBlock.ts","src/compiler/compile/nodes/shared/Tag.ts","src/compiler/compile/nodes/MustacheTag.ts","src/compiler/compile/nodes/Options.ts","src/compiler/compile/nodes/RawMustacheTag.ts","src/compiler/compile/nodes/DebugTag.ts","src/compiler/compile/nodes/Slot.ts","src/compiler/compile/nodes/SlotTemplate.ts","src/compiler/compile/nodes/Title.ts","src/compiler/compile/nodes/Window.ts","src/compiler/utils/push_array.ts","src/compiler/compile/nodes/shared/map_children.ts","src/compiler/compile/utils/check_graph_for_cycles.ts","src/compiler/compile/nodes/shared/get_const_tags.ts","src/compiler/compile/nodes/ThenBlock.ts","src/compiler/compile/render_dom/wrappers/shared/add_const_tags.ts","src/compiler/compile/render_dom/wrappers/AwaitBlock.ts","src/compiler/compile/render_dom/wrappers/Element/EventHandler.ts","src/compiler/compile/render_dom/wrappers/shared/add_event_handlers.ts","src/compiler/compile/render_dom/wrappers/shared/add_actions.ts","src/compiler/compile/render_dom/wrappers/Body.ts","src/compiler/compile/render_dom/wrappers/DebugTag.ts","src/compiler/compile/render_dom/wrappers/EachBlock.ts","src/compiler/compile/render_dom/wrappers/Text.ts","src/compiler/compile/render_dom/wrappers/Element/fix_attribute_casing.ts","src/compiler/compile/render_dom/wrappers/Element/handle_select_value_binding.ts","src/shared/boolean_attributes.ts","src/compiler/compile/render_dom/wrappers/Element/Attribute.ts","src/compiler/compile/render_dom/wrappers/Element/StyleAttribute.ts","src/compiler/compile/render_dom/wrappers/Element/SpreadAttribute.ts","src/compiler/compile/render_dom/wrappers/shared/mark_each_block_bindings.ts","src/compiler/compile/render_dom/wrappers/Element/Binding.ts","src/compiler/compile/utils/compare_node.ts","src/compiler/compile/render_dom/wrappers/shared/bind_this.ts","src/compiler/compile/render_dom/wrappers/shared/Tag.ts","src/compiler/compile/render_dom/wrappers/MustacheTag.ts","src/compiler/compile/render_dom/wrappers/RawMustacheTag.ts","src/compiler/compile/render_dom/wrappers/Element/index.ts","src/compiler/compile/render_dom/wrappers/Head.ts","src/compiler/compile/render_dom/wrappers/IfBlock.ts","src/compiler/compile/render_dom/wrappers/KeyBlock.ts","src/compiler/compile/render_dom/wrappers/shared/get_slot_definition.ts","src/compiler/compile/render_dom/wrappers/SlotTemplate.ts","src/compiler/compile/utils/string_to_member_expression.ts","src/compiler/compile/render_dom/wrappers/InlineComponent/index.ts","src/compiler/compile/utils/get_slot_data.ts","src/compiler/compile/render_dom/wrappers/Slot.ts","src/compiler/compile/render_dom/wrappers/Title.ts","src/compiler/compile/render_dom/wrappers/Window.ts","src/compiler/utils/link.ts","src/compiler/compile/render_dom/wrappers/Fragment.ts","src/compiler/compile/render_dom/Renderer.ts","node_modules/@ampproject/remapping/dist/remapping.mjs","src/compiler/utils/mapped_code.ts","src/compiler/compile/utils/check_enable_sourcemap.ts","src/compiler/compile/render_dom/index.ts","src/compiler/compile/render_ssr/handlers/shared/get_const_tags.ts","src/compiler/compile/render_ssr/handlers/AwaitBlock.ts","src/compiler/compile/render_ssr/handlers/Comment.ts","src/compiler/compile/render_ssr/handlers/DebugTag.ts","src/compiler/compile/render_ssr/handlers/EachBlock.ts","src/compiler/compile/render_ssr/handlers/shared/get_attribute_value.ts","src/compiler/compile/render_ssr/handlers/utils/remove_whitespace_children.ts","src/compiler/compile/render_ssr/handlers/Element.ts","src/compiler/compile/render_ssr/handlers/Head.ts","src/compiler/compile/render_ssr/handlers/HtmlTag.ts","src/compiler/compile/render_ssr/handlers/IfBlock.ts","src/compiler/compile/render_ssr/handlers/InlineComponent.ts","src/compiler/compile/render_ssr/handlers/KeyBlock.ts","src/compiler/compile/render_ssr/handlers/shared/get_slot_scope.ts","src/compiler/compile/render_ssr/handlers/Slot.ts","src/compiler/compile/render_ssr/handlers/SlotTemplate.ts","src/compiler/compile/render_ssr/handlers/Tag.ts","src/compiler/compile/render_ssr/handlers/Text.ts","src/compiler/compile/render_ssr/handlers/Title.ts","src/compiler/compile/utils/collapse_template_literal.ts","src/compiler/compile/render_ssr/Renderer.ts","src/compiler/compile/render_ssr/index.ts","src/compiler/utils/globals.ts","src/compiler/compile/create_module.ts","node_modules/magic-string/dist/magic-string.es.mjs","src/compiler/compile/css/gather_possible_values.ts","src/compiler/compile/css/Selector.ts","src/compiler/compile/css/Stylesheet.ts","src/compiler/config.ts","src/compiler/compile/nodes/shared/TemplateScope.ts","src/compiler/compile/nodes/Fragment.ts","src/compiler/compile/internal_exports.ts","src/compiler/compile/utils/is_used_as_reference.ts","src/compiler/compile/Component.ts","src/compiler/compile/utils/get_name_from_filename.ts","src/compiler/compile/index.ts","src/compiler/preprocess/decode_sourcemap.ts","src/compiler/preprocess/replace_in_code.ts","src/compiler/preprocess/index.ts","src/compiler/index.ts"],"sourcesContent":["const now = (typeof process !== 'undefined' && process.hrtime)\n\t? () => {\n\t\tconst t = process.hrtime();\n\t\treturn t[0] * 1e3 + t[1] / 1e6;\n\t}\n\t: () => self.performance.now();\n\ninterface Timing {\n\tlabel: string;\n\tstart: number;\n\tend: number;\n\tchildren: Timing[];\n}\n\nfunction collapse_timings(timings) {\n\tconst result = {};\n\ttimings.forEach(timing => {\n\t\tresult[timing.label] = Object.assign({\n\t\t\ttotal: timing.end - timing.start\n\t\t}, timing.children && collapse_timings(timing.children));\n\t});\n\treturn result;\n}\n\nexport default class Stats {\n\tstart_time: number;\n\tcurrent_timing: Timing;\n\tcurrent_children: Timing[];\n\ttimings: Timing[];\n\tstack: Timing[];\n\n\tconstructor() {\n\t\tthis.start_time = now();\n\t\tthis.stack = [];\n\t\tthis.current_children = this.timings = [];\n\t}\n\n\tstart(label) {\n\t\tconst timing = {\n\t\t\tlabel,\n\t\t\tstart: now(),\n\t\t\tend: null,\n\t\t\tchildren: []\n\t\t};\n\n\t\tthis.current_children.push(timing);\n\t\tthis.stack.push(timing);\n\n\t\tthis.current_timing = timing;\n\t\tthis.current_children = timing.children;\n\t}\n\n\tstop(label) {\n\t\tif (label !== this.current_timing.label) {\n\t\t\tthrow new Error(`Mismatched timing labels (expected ${this.current_timing.label}, got ${label})`);\n\t\t}\n\n\t\tthis.current_timing.end = now();\n\t\tthis.stack.pop();\n\t\tthis.current_timing = this.stack[this.stack.length - 1];\n\t\tthis.current_children = this.current_timing ? this.current_timing.children : this.timings;\n\t}\n\n\trender() {\n\t\tconst timings = Object.assign({\n\t\t\ttotal: now() - this.start_time\n\t\t}, collapse_timings(this.timings));\n\n\t\treturn {\n\t\t\ttimings\n\t\t};\n\t}\n}\n","// This file was generated. Do not modify manually!\nvar astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];\n\n// This file was generated. Do not modify manually!\nvar astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938, 6, 4191];\n\n// This file was generated. Do not modify manually!\nvar nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0898-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1ace\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\n// This file was generated. Do not modify manually!\nvar nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088e\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7ca\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7d9\\ua7f2-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n\n// These are a run-length and offset encoded representation of the\n\n// Reserved word lists for various dialects of the language\n\nvar reservedWords = {\n 3: \"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile\",\n 5: \"class enum extends super const export import\",\n 6: \"enum\",\n strict: \"implements interface let package private protected public static yield\",\n strictBind: \"eval arguments\"\n};\n\n// And the keywords\n\nvar ecma5AndLessKeywords = \"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this\";\n\nvar keywords$1 = {\n 5: ecma5AndLessKeywords,\n \"5module\": ecma5AndLessKeywords + \" export import\",\n 6: ecma5AndLessKeywords + \" const class extends export import super\"\n};\n\nvar keywordRelationalOperator = /^in(stanceof)?$/;\n\n// ## Character categories\n\nvar nonASCIIidentifierStart = new RegExp(\"[\" + nonASCIIidentifierStartChars + \"]\");\nvar nonASCIIidentifier = new RegExp(\"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\");\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code, set) {\n var pos = 0x10000;\n for (var i = 0; i < set.length; i += 2) {\n pos += set[i];\n if (pos > code) { return false }\n pos += set[i + 1];\n if (pos >= code) { return true }\n }\n return false\n}\n\n// Test whether a given character code starts an identifier.\n\nfunction isIdentifierStart(code, astral) {\n if (code < 65) { return code === 36 }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes)\n}\n\n// Test whether a given character is part of an identifier.\n\nfunction isIdentifierChar(code, astral) {\n if (code < 48) { return code === 36 }\n if (code < 58) { return true }\n if (code < 65) { return false }\n if (code < 91) { return true }\n if (code < 97) { return code === 95 }\n if (code < 123) { return true }\n if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) }\n if (astral === false) { return false }\n return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes)\n}\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n//\n// The `startsExpr` property is used to check if the token ends a\n// `yield` expression. It is set on all token types that either can\n// directly start an expression (like a quotation mark) or can\n// continue an expression (like the body of a string).\n//\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nvar TokenType = function TokenType(label, conf) {\n if ( conf === void 0 ) conf = {};\n\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop || null;\n this.updateContext = null;\n};\n\nfunction binop(name, prec) {\n return new TokenType(name, {beforeExpr: true, binop: prec})\n}\nvar beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true};\n\n// Map keyword names to token types.\n\nvar keywords = {};\n\n// Succinct definitions of keyword token types\nfunction kw(name, options) {\n if ( options === void 0 ) options = {};\n\n options.keyword = name;\n return keywords[name] = new TokenType(name, options)\n}\n\nvar types$1 = {\n num: new TokenType(\"num\", startsExpr),\n regexp: new TokenType(\"regexp\", startsExpr),\n string: new TokenType(\"string\", startsExpr),\n name: new TokenType(\"name\", startsExpr),\n privateId: new TokenType(\"privateId\", startsExpr),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", {beforeExpr: true, startsExpr: true}),\n bracketR: new TokenType(\"]\"),\n braceL: new TokenType(\"{\", {beforeExpr: true, startsExpr: true}),\n braceR: new TokenType(\"}\"),\n parenL: new TokenType(\"(\", {beforeExpr: true, startsExpr: true}),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", beforeExpr),\n semi: new TokenType(\";\", beforeExpr),\n colon: new TokenType(\":\", beforeExpr),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", beforeExpr),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", beforeExpr),\n template: new TokenType(\"template\"),\n invalidTemplate: new TokenType(\"invalidTemplate\"),\n ellipsis: new TokenType(\"...\", beforeExpr),\n backQuote: new TokenType(\"`\", startsExpr),\n dollarBraceL: new TokenType(\"${\", {beforeExpr: true, startsExpr: true}),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", {beforeExpr: true, isAssign: true}),\n assign: new TokenType(\"_=\", {beforeExpr: true, isAssign: true}),\n incDec: new TokenType(\"++/--\", {prefix: true, postfix: true, startsExpr: true}),\n prefix: new TokenType(\"!/~\", {beforeExpr: true, prefix: true, startsExpr: true}),\n logicalOR: binop(\"||\", 1),\n logicalAND: binop(\"&&\", 2),\n bitwiseOR: binop(\"|\", 3),\n bitwiseXOR: binop(\"^\", 4),\n bitwiseAND: binop(\"&\", 5),\n equality: binop(\"==/!=/===/!==\", 6),\n relational: binop(\"</>/<=/>=\", 7),\n bitShift: binop(\"<</>>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}),\n modulo: binop(\"%\", 10),\n star: binop(\"*\", 10),\n slash: binop(\"/\", 10),\n starstar: new TokenType(\"**\", {beforeExpr: true}),\n coalesce: binop(\"??\", 1),\n\n // Keyword token types.\n _break: kw(\"break\"),\n _case: kw(\"case\", beforeExpr),\n _catch: kw(\"catch\"),\n _continue: kw(\"continue\"),\n _debugger: kw(\"debugger\"),\n _default: kw(\"default\", beforeExpr),\n _do: kw(\"do\", {isLoop: true, beforeExpr: true}),\n _else: kw(\"else\", beforeExpr),\n _finally: kw(\"finally\"),\n _for: kw(\"for\", {isLoop: true}),\n _function: kw(\"function\", startsExpr),\n _if: kw(\"if\"),\n _return: kw(\"return\", beforeExpr),\n _switch: kw(\"switch\"),\n _throw: kw(\"throw\", beforeExpr),\n _try: kw(\"try\"),\n _var: kw(\"var\"),\n _const: kw(\"const\"),\n _while: kw(\"while\", {isLoop: true}),\n _with: kw(\"with\"),\n _new: kw(\"new\", {beforeExpr: true, startsExpr: true}),\n _this: kw(\"this\", startsExpr),\n _super: kw(\"super\", startsExpr),\n _class: kw(\"class\", startsExpr),\n _extends: kw(\"extends\", beforeExpr),\n _export: kw(\"export\"),\n _import: kw(\"import\", startsExpr),\n _null: kw(\"null\", startsExpr),\n _true: kw(\"true\", startsExpr),\n _false: kw(\"false\", startsExpr),\n _in: kw(\"in\", {beforeExpr: true, binop: 7}),\n _instanceof: kw(\"instanceof\", {beforeExpr: true, binop: 7}),\n _typeof: kw(\"typeof\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _void: kw(\"void\", {beforeExpr: true, prefix: true, startsExpr: true}),\n _delete: kw(\"delete\", {beforeExpr: true, prefix: true, startsExpr: true})\n};\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\n\nvar lineBreak = /\\r\\n?|\\n|\\u2028|\\u2029/;\nvar lineBreakG = new RegExp(lineBreak.source, \"g\");\n\nfunction isNewLine(code) {\n return code === 10 || code === 13 || code === 0x2028 || code === 0x2029\n}\n\nfunction nextLineBreak(code, from, end) {\n if ( end === void 0 ) end = code.length;\n\n for (var i = from; i < end; i++) {\n var next = code.charCodeAt(i);\n if (isNewLine(next))\n { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 }\n }\n return -1\n}\n\nvar nonASCIIwhitespace = /[\\u1680\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/;\n\nvar skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nvar ref = Object.prototype;\nvar hasOwnProperty = ref.hasOwnProperty;\nvar toString = ref.toString;\n\nvar hasOwn = Object.hasOwn || (function (obj, propName) { return (\n hasOwnProperty.call(obj, propName)\n); });\n\nvar isArray = Array.isArray || (function (obj) { return (\n toString.call(obj) === \"[object Array]\"\n); });\n\nfunction wordsRegexp(words) {\n return new RegExp(\"^(?:\" + words.replace(/ /g, \"|\") + \")$\")\n}\n\nfunction codePointToString(code) {\n // UTF-16 Decoding\n if (code <= 0xFFFF) { return String.fromCharCode(code) }\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)\n}\n\nvar loneSurrogate = /(?:[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/;\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nvar Position = function Position(line, col) {\n this.line = line;\n this.column = col;\n};\n\nPosition.prototype.offset = function offset (n) {\n return new Position(this.line, this.column + n)\n};\n\nvar SourceLocation = function SourceLocation(p, start, end) {\n this.start = start;\n this.end = end;\n if (p.sourceFile !== null) { this.source = p.sourceFile; }\n};\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nfunction getLineInfo(input, offset) {\n for (var line = 1, cur = 0;;) {\n var nextBreak = nextLineBreak(input, cur, offset);\n if (nextBreak < 0) { return new Position(line, offset - cur) }\n ++line;\n cur = nextBreak;\n }\n}\n\n// A second argument must be given to configure the parser process.\n// These options are recognized (only `ecmaVersion` is required):\n\nvar defaultOptions = {\n // `ecmaVersion` indicates the ECMAScript version to parse. Must be\n // either 3, 5, 6 (or 2015), 7 (2016), 8 (2017), 9 (2018), 10\n // (2019), 11 (2020), 12 (2021), 13 (2022), 14 (2023), or `\"latest\"`\n // (the latest version the library supports). This influences\n // support for strict mode, the set of reserved words, and support\n // for new syntax features.\n ecmaVersion: null,\n // `sourceType` indicates the mode the code should be parsed in.\n // Can be either `\"script\"` or `\"module\"`. This influences global\n // strict mode and parsing of `import` and `export` declarations.\n sourceType: \"script\",\n // `onInsertedSemicolon` can be a callback that will be called\n // when a semicolon is automatically inserted. It will be passed\n // the position of the comma as an offset, and if `locations` is\n // enabled, it is given the location as a `{line, column}` object\n // as second argument.\n onInsertedSemicolon: null,\n // `onTrailingComma` is similar to `onInsertedSemicolon`, but for\n // trailing commas.\n onTrailingComma: null,\n // By default, reserved words are only enforced if ecmaVersion >= 5.\n // Set `allowReserved` to a boolean value to explicitly turn this on\n // an off. When this option has the value \"never\", reserved words\n // and keywords can also not be used as property names.\n allowReserved: null,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program, and an import.meta expression\n // in a script isn't considered an error.\n allowImportExportEverywhere: false,\n // By default, await identifiers are allowed to appear at the top-level scope only if ecmaVersion >= 2022.\n // When enabled, await identifiers are allowed to appear at the top-level scope,\n // but they are still not allowed in non-async functions.\n allowAwaitOutsideFunction: null,\n // When enabled, super identifiers are not constrained to\n // appearing in methods and do not raise an error when they appear elsewhere.\n allowSuperOutsideMethod: null,\n // When enabled, hashbang directive in the beginning of file is\n // allowed and treated as a line comment. Enabled by default when\n // `ecmaVersion` >= 2023.\n allowHashBang: false,\n // When `locations` is on, `loc` properties holding objects with\n // `start` and `end` properties in `{line, column}` form (with\n // line being 1-based and column 0-based) will be attached to the\n // nodes.\n locations: false,\n // A function can be passed as `onToken` option, which will\n // cause Acorn to call that function with object in the same\n // format as tokens returned from `tokenizer().getToken()`. Note\n // that you are not allowed to call the parser from the\n // callback—that will corrupt its internal state.\n onToken: null,\n // A function can be passed as `onComment` option, which will\n // cause Acorn to call that function with `(block, text, start,\n // end)` parameters whenever a comment is skipped. `block` is a\n // boolean indicating whether this is a block (`/* */`) comment,\n // `text` is the content of the comment, and `start` and `end` are\n // character offsets that denote the start and end of the comment.\n // When the `locations` option is on, two more parameters are\n // passed, the full `{line, column}` locations of the start and\n // end of the comments. Note that you are not allowed to call the\n // parser from the callback—that will corrupt its internal state.\n onComment: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // It is possible to parse multiple files into a single AST by\n // passing the tree produced by parsing the first file as\n // `program` option in subsequent parses. This will add the\n // toplevel forms of the parsed file to the `Program` (top) node\n // of an existing parse tree.\n program: null,\n // When `locations` is on, you can pass this to record the source\n // file in every node's `loc` object.\n sourceFile: null,\n // This value, if given, is stored in every node, whether\n // `locations` is on or off.\n directSourceFile: null,\n // When enabled, parenthesized expressions are represented by\n // (non-standard) ParenthesizedExpression nodes\n preserveParens: false\n};\n\n// Interpret and default an options object\n\nvar warnedAboutEcmaVersion = false;\n\nfunction getOptions(opts) {\n var options = {};\n\n for (var opt in defaultOptions)\n { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; }\n\n if (options.ecmaVersion === \"latest\") {\n options.ecmaVersion = 1e8;\n } else if (options.ecmaVersion == null) {\n if (!warnedAboutEcmaVersion && typeof console === \"object\" && console.warn) {\n warnedAboutEcmaVersion = true;\n console.warn(\"Since Acorn 8.0.0, options.ecmaVersion is required.\\nDefaulting to 2020, but this will stop working in the future.\");\n }\n options.ecmaVersion = 11;\n } else if (options.ecmaVersion >= 2015) {\n options.ecmaVersion -= 2009;\n }\n\n if (options.allowReserved == null)\n { options.allowReserved = options.ecmaVersion < 5; }\n\n if (!opts || opts.allowHashBang == null)\n { options.allowHashBang = options.ecmaVersion >= 14; }\n\n if (isArray(options.onToken)) {\n var tokens = options.onToken;\n options.onToken = function (token) { return tokens.push(token); };\n }\n if (isArray(options.onComment))\n { options.onComment = pushComment(options, options.onComment); }\n\n return options\n}\n\nfunction pushComment(options, array) {\n return function(block, text, start, end, startLoc, endLoc) {\n var comment = {\n type: block ? \"Block\" : \"Line\",\n value: text,\n start: start,\n end: end\n };\n if (options.locations)\n { comment.loc = new SourceLocation(this, startLoc, endLoc); }\n if (options.ranges)\n { comment.range = [start, end]; }\n array.push(comment);\n }\n}\n\n// Each scope gets a bitset that may contain these flags\nvar\n SCOPE_TOP = 1,\n SCOPE_FUNCTION = 2,\n SCOPE_ASYNC = 4,\n SCOPE_GENERATOR = 8,\n SCOPE_ARROW = 16,\n SCOPE_SIMPLE_CATCH = 32,\n SCOPE_SUPER = 64,\n SCOPE_DIRECT_SUPER = 128,\n SCOPE_CLASS_STATIC_BLOCK = 256,\n SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK;\n\nfunction functionFlags(async, generator) {\n return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0)\n}\n\n// Used in checkLVal* and declareName to determine the type of a binding\nvar\n BIND_NONE = 0, // Not a binding\n BIND_VAR = 1, // Var-style binding\n BIND_LEXICAL = 2, // Let- or const-style binding\n BIND_FUNCTION = 3, // Function declaration\n BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding\n BIND_OUTSIDE = 5; // Special case for function names as bound inside the function\n\nvar Parser = function Parser(options, input, startPos) {\n this.options = options = getOptions(options);\n this.sourceFile = options.sourceFile;\n this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === \"module\" ? \"5module\" : 5]);\n var reserved = \"\";\n if (options.allowReserved !== true) {\n reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3];\n if (options.sourceType === \"module\") { reserved += \" await\"; }\n }\n this.reservedWords = wordsRegexp(reserved);\n var reservedStrict = (reserved ? reserved + \" \" : \"\") + reservedWords.strict;\n this.reservedWordsStrict = wordsRegexp(reservedStrict);\n this.reservedWordsStrictBind = wordsRegexp(reservedStrict + \" \" + reservedWords.strictBind);\n this.input = String(input);\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n this.containsEsc = false;\n\n // Set up token state\n\n // The current position of the tokenizer in the input.\n if (startPos) {\n this.pos = startPos;\n this.lineStart = this.input.lastIndexOf(\"\\n\", startPos - 1) + 1;\n this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;\n } else {\n this.pos = this.lineStart = 0;\n this.curLine = 1;\n }\n\n // Properties of the current token:\n // Its type\n this.type = types$1.eof;\n // For tokens that include more information than their type, the value\n this.value = null;\n // Its start and end offset\n this.start = this.end = this.pos;\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n this.startLoc = this.endLoc = this.curPosition();\n\n // Position information for the previous token\n this.lastTokEndLoc = this.lastTokStartLoc = null;\n this.lastTokStart = this.lastTokEnd = this.pos;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n this.context = this.initialContext();\n this.exprAllowed = true;\n\n // Figure out if it's a module code.\n this.inModule = options.sourceType === \"module\";\n this.strict = this.inModule || this.strictDirective(this.pos);\n\n // Used to signify the start of a potential arrow function\n this.potentialArrowAt = -1;\n this.potentialArrowInForAwait = false;\n\n // Positions to delayed-check that yield/await does not exist in default parameters.\n this.yieldPos = this.awaitPos = this.awaitIdentPos = 0;\n // Labels in scope.\n this.labels = [];\n // Thus-far undefined exports.\n this.undefinedExports = Object.create(null);\n\n // If enabled, skip leading hashbang line.\n if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === \"#!\")\n { this.skipLineComment(2); }\n\n // Scope tracking for duplicate variable names (see scope.js)\n this.scopeStack = [];\n this.enterScope(SCOPE_TOP);\n\n // For RegExp validation\n this.regexpState = null;\n\n // The stack of private names.\n // Each element has two properties: 'declared' and 'used'.\n // When it exited from the outermost class definition, all used private names must be declared.\n this.privateNameStack = [];\n};\n\nvar prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },canAwait: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true },allowNewDotTarget: { configurable: true },inClassStaticBlock: { configurable: true } };\n\nParser.prototype.parse = function parse () {\n var node = this.options.program || this.startNode();\n this.nextToken();\n return this.parseTopLevel(node)\n};\n\nprototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 };\n\nprototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit };\n\nprototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit };\n\nprototypeAccessors.canAwait.get = function () {\n for (var i = this.scopeStack.length - 1; i >= 0; i--) {\n var scope = this.scopeStack[i];\n if (scope.inClassFieldInit || scope.flags & SCOPE_CLASS_STATIC_BLOCK) { return false }\n if (scope.flags & SCOPE_FUNCTION) { return (scope.flags & SCOPE_ASYNC) > 0 }\n }\n return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction\n};\n\nprototypeAccessors.allowSuper.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n var inClassFieldInit = ref.inClassFieldInit;\n return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod\n};\n\nprototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 };\n\nprototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) };\n\nprototypeAccessors.allowNewDotTarget.get = function () {\n var ref = this.currentThisScope();\n var flags = ref.flags;\n var inClassFieldInit = ref.inClassFieldInit;\n return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit\n};\n\nprototypeAccessors.inClassStaticBlock.get = function () {\n return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0\n};\n\nParser.extend = function extend () {\n var plugins = [], len = arguments.length;\n while ( len-- ) plugins[ len ] = arguments[ len ];\n\n var cls = this;\n for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); }\n return cls\n};\n\nParser.parse = function parse (input, options) {\n return new this(options, input).parse()\n};\n\nParser.parseExpressionAt = function parseExpressionAt (input, pos, options) {\n var parser = new this(options, input, pos);\n parser.nextToken();\n return parser.parseExpression()\n};\n\nParser.tokenizer = function tokenizer (input, options) {\n return new this(options, input)\n};\n\nObject.defineProperties( Parser.prototype, prototypeAccessors );\n\nvar pp$9 = Parser.prototype;\n\n// ## Parser utilities\n\nvar literal = /^(?:'((?:\\\\.|[^'\\\\])*?)'|\"((?:\\\\.|[^\"\\\\])*?)\")/;\npp$9.strictDirective = function(start) {\n if (this.options.ecmaVersion < 5) { return false }\n for (;;) {\n // Try to find string literal.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n var match = literal.exec(this.input.slice(start));\n if (!match) { return false }\n if ((match[1] || match[2]) === \"use strict\") {\n skipWhiteSpace.lastIndex = start + match[0].length;\n var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length;\n var next = this.input.charAt(end);\n return next === \";\" || next === \"}\" ||\n (lineBreak.test(spaceAfter[0]) &&\n !(/[(`.[+\\-/*%<>=,?^&]/.test(next) || next === \"!\" && this.input.charAt(end + 1) === \"=\"))\n }\n start += match[0].length;\n\n // Skip semicolon, if any.\n skipWhiteSpace.lastIndex = start;\n start += skipWhiteSpace.exec(this.input)[0].length;\n if (this.input[start] === \";\")\n { start++; }\n }\n};\n\n// Predicate that tests whether the next token is of the given\n// type, and if yes, consumes it as a side effect.\n\npp$9.eat = function(type) {\n if (this.type === type) {\n this.next();\n return true\n } else {\n return false\n }\n};\n\n// Tests whether parsed token is a contextual keyword.\n\npp$9.isContextual = function(name) {\n return this.type === types$1.name && this.value === name && !this.containsEsc\n};\n\n// Consumes contextual keyword if possible.\n\npp$9.eatContextual = function(name) {\n if (!this.isContextual(name)) { return false }\n this.next();\n return true\n};\n\n// Asserts that following token is given contextual keyword.\n\npp$9.expectContextual = function(name) {\n if (!this.eatContextual(name)) { this.unexpected(); }\n};\n\n// Test whether a semicolon can be inserted at the current position.\n\npp$9.canInsertSemicolon = function() {\n return this.type === types$1.eof ||\n this.type === types$1.braceR ||\n lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\npp$9.insertSemicolon = function() {\n if (this.canInsertSemicolon()) {\n if (this.options.onInsertedSemicolon)\n { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); }\n return true\n }\n};\n\n// Consume a semicolon, or, failing that, see if we are allowed to\n// pretend that there is a semicolon at this position.\n\npp$9.semicolon = function() {\n if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); }\n};\n\npp$9.afterTrailingComma = function(tokType, notNext) {\n if (this.type === tokType) {\n if (this.options.onTrailingComma)\n { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); }\n if (!notNext)\n { this.next(); }\n return true\n }\n};\n\n// Expect a token of a given type. If found, consume it, otherwise,\n// raise an unexpected token error.\n\npp$9.expect = function(type) {\n this.eat(type) || this.unexpected();\n};\n\n// Raise an unexpected token error.\n\npp$9.unexpected = function(pos) {\n this.raise(pos != null ? pos : this.start, \"Unexpected token\");\n};\n\nvar DestructuringErrors = function DestructuringErrors() {\n this.shorthandAssign =\n this.trailingComma =\n this.parenthesizedAssign =\n this.parenthesizedBind =\n this.doubleProto =\n -1;\n};\n\npp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {\n if (!refDestructuringErrors) { return }\n if (refDestructuringErrors.trailingComma > -1)\n { this.raiseRecoverable(refDestructuringErrors.trailingComma, \"Comma is not permitted after the rest element\"); }\n var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind;\n if (parens > -1) { this.raiseRecoverable(parens, isAssign ? \"Assigning to rvalue\" : \"Parenthesized pattern\"); }\n};\n\npp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) {\n if (!refDestructuringErrors) { return false }\n var shorthandAssign = refDestructuringErrors.shorthandAssign;\n var doubleProto = refDestructuringErrors.doubleProto;\n if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 }\n if (shorthandAssign >= 0)\n { this.raise(shorthandAssign, \"Shorthand property assignments are valid only in destructuring patterns\"); }\n if (doubleProto >= 0)\n { this.raiseRecoverable(doubleProto, \"Redefinition of __proto__ property\"); }\n};\n\npp$9.checkYieldAwaitInDefaultParams = function() {\n if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos))\n { this.raise(this.yieldPos, \"Yield expression cannot be a default value\"); }\n if (this.awaitPos)\n { this.raise(this.awaitPos, \"Await expression cannot be a default value\"); }\n};\n\npp$9.isSimpleAssignTarget = function(expr) {\n if (expr.type === \"ParenthesizedExpression\")\n { return this.isSimpleAssignTarget(expr.expression) }\n return expr.type === \"Identifier\" || expr.type === \"MemberExpression\"\n};\n\nvar pp$8 = Parser.prototype;\n\n// ### Statement parsing\n\n// Parse a program. Initializes the parser, reads any number of\n// statements, and wraps them in a Program node. Optionally takes a\n// `program` argument. If present, the statements will be appended\n// to its body instead of creating a new node.\n\npp$8.parseTopLevel = function(node) {\n var exports = Object.create(null);\n if (!node.body) { node.body = []; }\n while (this.type !== types$1.eof) {\n var stmt = this.parseStatement(null, true, exports);\n node.body.push(stmt);\n }\n if (this.inModule)\n { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1)\n {\n var name = list[i];\n\n this.raiseRecoverable(this.undefinedExports[name].start, (\"Export '\" + name + \"' is not defined\"));\n } }\n this.adaptDirectivePrologue(node.body);\n this.next();\n node.sourceType = this.options.sourceType;\n return this.finishNode(node, \"Program\")\n};\n\nvar loopLabel = {kind: \"loop\"}, switchLabel = {kind: \"switch\"};\n\npp$8.isLet = function(context) {\n if (this.options.ecmaVersion < 6 || !this.isContextual(\"let\")) { return false }\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n // For ambiguous cases, determine if a LexicalDeclaration (or only a\n // Statement) is allowed here. If context is not empty then only a Statement\n // is allowed. However, `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n if (nextCh === 91 || nextCh === 92) { return true } // '[', '/'\n if (context) { return false }\n\n if (nextCh === 123 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true } // '{', astral\n if (isIdentifierStart(nextCh, true)) {\n var pos = next + 1;\n while (isIdentifierChar(nextCh = this.input.charCodeAt(pos), true)) { ++pos; }\n if (nextCh === 92 || nextCh > 0xd7ff && nextCh < 0xdc00) { return true }\n var ident = this.input.slice(next, pos);\n if (!keywordRelationalOperator.test(ident)) { return true }\n }\n return false\n};\n\n// check 'async [no LineTerminator here] function'\n// - 'async /*foo*/ function' is OK.\n// - 'async /*\\n*/ function' is invalid.\npp$8.isAsyncFunction = function() {\n if (this.options.ecmaVersion < 8 || !this.isContextual(\"async\"))\n { return false }\n\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, after;\n return !lineBreak.test(this.input.slice(this.pos, next)) &&\n this.input.slice(next, next + 8) === \"function\" &&\n (next + 8 === this.input.length ||\n !(isIdentifierChar(after = this.input.charCodeAt(next + 8)) || after > 0xd7ff && after < 0xdc00))\n};\n\n// Parse a single statement.\n//\n// If expecting a statement and finding a slash operator, parse a\n// regular expression literal. This is to handle cases like\n// `if (foo) /blah/.exec(foo)`, where looking at the previous token\n// does not help.\n\npp$8.parseStatement = function(context, topLevel, exports) {\n var starttype = this.type, node = this.startNode(), kind;\n\n if (this.isLet(context)) {\n starttype = types$1._var;\n kind = \"let\";\n }\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword)\n case types$1._debugger: return this.parseDebuggerStatement(node)\n case types$1._do: return this.parseDoStatement(node)\n case types$1._for: return this.parseForStatement(node)\n case types$1._function:\n // Function as sole body of either an if statement or a labeled statement\n // works, but not when it is part of a labeled statement that is the sole\n // body of an if statement.\n if ((context && (this.strict || context !== \"if\" && context !== \"label\")) && this.options.ecmaVersion >= 6) { this.unexpected(); }\n return this.parseFunctionStatement(node, false, !context)\n case types$1._class:\n if (context) { this.unexpected(); }\n return this.parseClass(node, true)\n case types$1._if: return this.parseIfStatement(node)\n case types$1._return: return this.parseReturnStatement(node)\n case types$1._switch: return this.parseSwitchStatement(node)\n case types$1._throw: return this.parseThrowStatement(node)\n case types$1._try: return this.parseTryStatement(node)\n case types$1._const: case types$1._var:\n kind = kind || this.value;\n if (context && kind !== \"var\") { this.unexpected(); }\n return this.parseVarStatement(node, kind)\n case types$1._while: return this.parseWhileStatement(node)\n case types$1._with: return this.parseWithStatement(node)\n case types$1.braceL: return this.parseBlock(true, node)\n case types$1.semi: return this.parseEmptyStatement(node)\n case types$1._export:\n case types$1._import:\n if (this.options.ecmaVersion > 10 && starttype === types$1._import) {\n skipWhiteSpace.lastIndex = this.pos;\n var skip = skipWhiteSpace.exec(this.input);\n var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next);\n if (nextCh === 40 || nextCh === 46) // '(' or '.'\n { return this.parseExpressionStatement(node, this.parseExpression()) }\n }\n\n if (!this.options.allowImportExportEverywhere) {\n if (!topLevel)\n { this.raise(this.start, \"'import' and 'export' may only appear at the top level\"); }\n if (!this.inModule)\n { this.raise(this.start, \"'import' and 'export' may appear only with 'sourceType: module'\"); }\n }\n return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports)\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n default:\n if (this.isAsyncFunction()) {\n if (context) { this.unexpected(); }\n this.next();\n return this.parseFunctionStatement(node, true, !context)\n }\n\n var maybeName = this.value, expr = this.parseExpression();\n if (starttype === types$1.name && expr.type === \"Identifier\" && this.eat(types$1.colon))\n { return this.parseLabeledStatement(node, maybeName, expr, context) }\n else { return this.parseExpressionStatement(node, expr) }\n }\n};\n\npp$8.parseBreakContinueStatement = function(node, keyword) {\n var isBreak = keyword === \"break\";\n this.next();\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; }\n else if (this.type !== types$1.name) { this.unexpected(); }\n else {\n node.label = this.parseIdent();\n this.semicolon();\n }\n\n // Verify that there is an actual destination to break or\n // continue to.\n var i = 0;\n for (; i < this.labels.length; ++i) {\n var lab = this.labels[i];\n if (node.label == null || lab.name === node.label.name) {\n if (lab.kind != null && (isBreak || lab.kind === \"loop\")) { break }\n if (node.label && isBreak) { break }\n }\n }\n if (i === this.labels.length) { this.raise(node.start, \"Unsyntactic \" + keyword); }\n return this.finishNode(node, isBreak ? \"BreakStatement\" : \"ContinueStatement\")\n};\n\npp$8.parseDebuggerStatement = function(node) {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\")\n};\n\npp$8.parseDoStatement = function(node) {\n this.next();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"do\");\n this.labels.pop();\n this.expect(types$1._while);\n node.test = this.parseParenExpression();\n if (this.options.ecmaVersion >= 6)\n { this.eat(types$1.semi); }\n else\n { this.semicolon(); }\n return this.finishNode(node, \"DoWhileStatement\")\n};\n\n// Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n// loop is non-trivial. Basically, we have to parse the init `var`\n// statement or expression, disallowing the `in` operator (see\n// the second parameter to `parseExpression`), and then check\n// whether the next token is `in` or `of`. When there is no init\n// part (semicolon immediately after the opening parenthesis), it\n// is a regular `for` loop.\n\npp$8.parseForStatement = function(node) {\n this.next();\n var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual(\"await\")) ? this.lastTokStart : -1;\n this.labels.push(loopLabel);\n this.enterScope(0);\n this.expect(types$1.parenL);\n if (this.type === types$1.semi) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, null)\n }\n var isLet = this.isLet();\n if (this.type === types$1._var || this.type === types$1._const || isLet) {\n var init$1 = this.startNode(), kind = isLet ? \"let\" : this.value;\n this.next();\n this.parseVar(init$1, true, kind);\n this.finishNode(init$1, \"VariableDeclaration\");\n if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) && init$1.declarations.length === 1) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types$1._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n return this.parseForIn(node, init$1)\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init$1)\n }\n var startsWithLet = this.isContextual(\"let\"), isForOf = false;\n var refDestructuringErrors = new DestructuringErrors;\n var init = this.parseExpression(awaitAt > -1 ? \"await\" : true, refDestructuringErrors);\n if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual(\"of\"))) {\n if (this.options.ecmaVersion >= 9) {\n if (this.type === types$1._in) {\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n } else { node.await = awaitAt > -1; }\n }\n if (startsWithLet && isForOf) { this.raise(init.start, \"The left-hand side of a for-of loop may not start with 'let'.\"); }\n this.toAssignable(init, false, refDestructuringErrors);\n this.checkLValPattern(init);\n return this.parseForIn(node, init)\n } else {\n this.checkExpressionErrors(refDestructuringErrors, true);\n }\n if (awaitAt > -1) { this.unexpected(awaitAt); }\n return this.parseFor(node, init)\n};\n\npp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) {\n this.next();\n return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync)\n};\n\npp$8.parseIfStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n // allow function declarations in branches, but only in non-strict mode\n node.consequent = this.parseStatement(\"if\");\n node.alternate = this.eat(types$1._else) ? this.parseStatement(\"if\") : null;\n return this.finishNode(node, \"IfStatement\")\n};\n\npp$8.parseReturnStatement = function(node) {\n if (!this.inFunction && !this.options.allowReturnOutsideFunction)\n { this.raise(this.start, \"'return' outside of function\"); }\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; }\n else { node.argument = this.parseExpression(); this.semicolon(); }\n return this.finishNode(node, \"ReturnStatement\")\n};\n\npp$8.parseSwitchStatement = function(node) {\n this.next();\n node.discriminant = this.parseParenExpression();\n node.cases = [];\n this.expect(types$1.braceL);\n this.labels.push(switchLabel);\n this.enterScope(0);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n var cur;\n for (var sawDefault = false; this.type !== types$1.braceR;) {\n if (this.type === types$1._case || this.type === types$1._default) {\n var isCase = this.type === types$1._case;\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n node.cases.push(cur = this.startNode());\n cur.consequent = [];\n this.next();\n if (isCase) {\n cur.test = this.parseExpression();\n } else {\n if (sawDefault) { this.raiseRecoverable(this.lastTokStart, \"Multiple default clauses\"); }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(types$1.colon);\n } else {\n if (!cur) { this.unexpected(); }\n cur.consequent.push(this.parseStatement(null));\n }\n }\n this.exitScope();\n if (cur) { this.finishNode(cur, \"SwitchCase\"); }\n this.next(); // Closing brace\n this.labels.pop();\n return this.finishNode(node, \"SwitchStatement\")\n};\n\npp$8.parseThrowStatement = function(node) {\n this.next();\n if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start)))\n { this.raise(this.lastTokEnd, \"Illegal newline after throw\"); }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\")\n};\n\n// Reused empty array added for node fields that are always empty.\n\nvar empty$1 = [];\n\npp$8.parseTryStatement = function(node) {\n this.next();\n node.block = this.parseBlock();\n node.handler = null;\n if (this.type === types$1._catch) {\n var clause = this.startNode();\n this.next();\n if (this.eat(types$1.parenL)) {\n clause.param = this.parseBindingAtom();\n var simple = clause.param.type === \"Identifier\";\n this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0);\n this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL);\n this.expect(types$1.parenR);\n } else {\n if (this.options.ecmaVersion < 10) { this.unexpected(); }\n clause.param = null;\n this.enterScope(0);\n }\n clause.body = this.parseBlock(false);\n this.exitScope();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null;\n if (!node.handler && !node.finalizer)\n { this.raise(node.start, \"Missing catch or finally clause\"); }\n return this.finishNode(node, \"TryStatement\")\n};\n\npp$8.parseVarStatement = function(node, kind) {\n this.next();\n this.parseVar(node, false, kind);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\")\n};\n\npp$8.parseWhileStatement = function(node) {\n this.next();\n node.test = this.parseParenExpression();\n this.labels.push(loopLabel);\n node.body = this.parseStatement(\"while\");\n this.labels.pop();\n return this.finishNode(node, \"WhileStatement\")\n};\n\npp$8.parseWithStatement = function(node) {\n if (this.strict) { this.raise(this.start, \"'with' in strict mode\"); }\n this.next();\n node.object = this.parseParenExpression();\n node.body = this.parseStatement(\"with\");\n return this.finishNode(node, \"WithStatement\")\n};\n\npp$8.parseEmptyStatement = function(node) {\n this.next();\n return this.finishNode(node, \"EmptyStatement\")\n};\n\npp$8.parseLabeledStatement = function(node, maybeName, expr, context) {\n for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1)\n {\n var label = list[i$1];\n\n if (label.name === maybeName)\n { this.raise(expr.start, \"Label '\" + maybeName + \"' is already declared\");\n } }\n var kind = this.type.isLoop ? \"loop\" : this.type === types$1._switch ? \"switch\" : null;\n for (var i = this.labels.length - 1; i >= 0; i--) {\n var label$1 = this.labels[i];\n if (label$1.statementStart === node.start) {\n // Update information about previous labels on this node\n label$1.statementStart = this.start;\n label$1.kind = kind;\n } else { break }\n }\n this.labels.push({name: maybeName, kind: kind, statementStart: this.start});\n node.body = this.parseStatement(context ? context.indexOf(\"label\") === -1 ? context + \"label\" : context : \"label\");\n this.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\")\n};\n\npp$8.parseExpressionStatement = function(node, expr) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\")\n};\n\n// Parse a semicolon-enclosed block of statements, handling `\"use\n// strict\"` declarations when `allowStrict` is true (used for\n// function bodies).\n\npp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) {\n if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true;\n if ( node === void 0 ) node = this.startNode();\n\n node.body = [];\n this.expect(types$1.braceL);\n if (createNewLexicalScope) { this.enterScope(0); }\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n if (exitStrict) { this.strict = false; }\n this.next();\n if (createNewLexicalScope) { this.exitScope(); }\n return this.finishNode(node, \"BlockStatement\")\n};\n\n// Parse a regular `for` loop. The disambiguation code in\n// `parseStatement` will already have parsed the init statement or\n// expression.\n\npp$8.parseFor = function(node, init) {\n node.init = init;\n this.expect(types$1.semi);\n node.test = this.type === types$1.semi ? null : this.parseExpression();\n this.expect(types$1.semi);\n node.update = this.type === types$1.parenR ? null : this.parseExpression();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, \"ForStatement\")\n};\n\n// Parse a `for`/`in` and `for`/`of` loop, which are almost\n// same from parser's perspective.\n\npp$8.parseForIn = function(node, init) {\n var isForIn = this.type === types$1._in;\n this.next();\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (\n !isForIn ||\n this.options.ecmaVersion < 8 ||\n this.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\"\n )\n ) {\n this.raise(\n init.start,\n ((isForIn ? \"for-in\" : \"for-of\") + \" loop variable declaration may not have an initializer\")\n );\n }\n node.left = init;\n node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign();\n this.expect(types$1.parenR);\n node.body = this.parseStatement(\"for\");\n this.exitScope();\n this.labels.pop();\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\")\n};\n\n// Parse a list of variable declarations.\n\npp$8.parseVar = function(node, isFor, kind) {\n node.declarations = [];\n node.kind = kind;\n for (;;) {\n var decl = this.startNode();\n this.parseVarId(decl, kind);\n if (this.eat(types$1.eq)) {\n decl.init = this.parseMaybeAssign(isFor);\n } else if (kind === \"const\" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual(\"of\")))) {\n this.unexpected();\n } else if (decl.id.type !== \"Identifier\" && !(isFor && (this.type === types$1._in || this.isContextual(\"of\")))) {\n this.raise(this.lastTokEnd, \"Complex binding patterns require an initialization value\");\n } else {\n decl.init = null;\n }\n node.declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(types$1.comma)) { break }\n }\n return node\n};\n\npp$8.parseVarId = function(decl, kind) {\n decl.id = this.parseBindingAtom();\n this.checkLValPattern(decl.id, kind === \"var\" ? BIND_VAR : BIND_LEXICAL, false);\n};\n\nvar FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4;\n\n// Parse a function declaration or literal (depending on the\n// `statement & FUNC_STATEMENT`).\n\n// Remove `allowExpressionBody` for 7.0.0, as it is only called with false\npp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) {\n this.initFunction(node);\n if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) {\n if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT))\n { this.unexpected(); }\n node.generator = this.eat(types$1.star);\n }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n if (statement & FUNC_STATEMENT) {\n node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent();\n if (node.id && !(statement & FUNC_HANGING_STATEMENT))\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n { this.checkLValSimple(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); }\n }\n\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(node.async, node.generator));\n\n if (!(statement & FUNC_STATEMENT))\n { node.id = this.type === types$1.name ? this.parseIdent() : null; }\n\n this.parseFunctionParams(node);\n this.parseFunctionBody(node, allowExpressionBody, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, (statement & FUNC_STATEMENT) ? \"FunctionDeclaration\" : \"FunctionExpression\")\n};\n\npp$8.parseFunctionParams = function(node) {\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n};\n\n// Parse a class declaration or literal (depending on the\n// `isStatement` parameter).\n\npp$8.parseClass = function(node, isStatement) {\n this.next();\n\n // ecma-262 14.6 Class Definitions\n // A class definition is always strict mode code.\n var oldStrict = this.strict;\n this.strict = true;\n\n this.parseClassId(node, isStatement);\n this.parseClassSuper(node);\n var privateNameMap = this.enterClassBody();\n var classBody = this.startNode();\n var hadConstructor = false;\n classBody.body = [];\n this.expect(types$1.braceL);\n while (this.type !== types$1.braceR) {\n var element = this.parseClassElement(node.superClass !== null);\n if (element) {\n classBody.body.push(element);\n if (element.type === \"MethodDefinition\" && element.kind === \"constructor\") {\n if (hadConstructor) { this.raise(element.start, \"Duplicate constructor in the same class\"); }\n hadConstructor = true;\n } else if (element.key && element.key.type === \"PrivateIdentifier\" && isPrivateNameConflicted(privateNameMap, element)) {\n this.raiseRecoverable(element.key.start, (\"Identifier '#\" + (element.key.name) + \"' has already been declared\"));\n }\n }\n }\n this.strict = oldStrict;\n this.next();\n node.body = this.finishNode(classBody, \"ClassBody\");\n this.exitClassBody();\n return this.finishNode(node, isStatement ? \"ClassDeclaration\" : \"ClassExpression\")\n};\n\npp$8.parseClassElement = function(constructorAllowsSuper) {\n if (this.eat(types$1.semi)) { return null }\n\n var ecmaVersion = this.options.ecmaVersion;\n var node = this.startNode();\n var keyName = \"\";\n var isGenerator = false;\n var isAsync = false;\n var kind = \"method\";\n var isStatic = false;\n\n if (this.eatContextual(\"static\")) {\n // Parse static init block\n if (ecmaVersion >= 13 && this.eat(types$1.braceL)) {\n this.parseClassStaticBlock(node);\n return node\n }\n if (this.isClassElementNameStart() || this.type === types$1.star) {\n isStatic = true;\n } else {\n keyName = \"static\";\n }\n }\n node.static = isStatic;\n if (!keyName && ecmaVersion >= 8 && this.eatContextual(\"async\")) {\n if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) {\n isAsync = true;\n } else {\n keyName = \"async\";\n }\n }\n if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) {\n isGenerator = true;\n }\n if (!keyName && !isAsync && !isGenerator) {\n var lastValue = this.value;\n if (this.eatContextual(\"get\") || this.eatContextual(\"set\")) {\n if (this.isClassElementNameStart()) {\n kind = lastValue;\n } else {\n keyName = lastValue;\n }\n }\n }\n\n // Parse element name\n if (keyName) {\n // 'async', 'get', 'set', or 'static' were not a keyword contextually.\n // The last token is any of those. Make it the element name.\n node.computed = false;\n node.key = this.startNodeAt(this.lastTokStart, this.lastTokStartLoc);\n node.key.name = keyName;\n this.finishNode(node.key, \"Identifier\");\n } else {\n this.parseClassElementName(node);\n }\n\n // Parse element value\n if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== \"method\" || isGenerator || isAsync) {\n var isConstructor = !node.static && checkKeyName(node, \"constructor\");\n var allowsDirectSuper = isConstructor && constructorAllowsSuper;\n // Couldn't move this check into the 'parseClassMethod' method for backward compatibility.\n if (isConstructor && kind !== \"method\") { this.raise(node.key.start, \"Constructor can't have get/set modifier\"); }\n node.kind = isConstructor ? \"constructor\" : kind;\n this.parseClassMethod(node, isGenerator, isAsync, allowsDirectSuper);\n } else {\n this.parseClassField(node);\n }\n\n return node\n};\n\npp$8.isClassElementNameStart = function() {\n return (\n this.type === types$1.name ||\n this.type === types$1.privateId ||\n this.type === types$1.num ||\n this.type === types$1.string ||\n this.type === types$1.bracketL ||\n this.type.keyword\n )\n};\n\npp$8.parseClassElementName = function(element) {\n if (this.type === types$1.privateId) {\n if (this.value === \"constructor\") {\n this.raise(this.start, \"Classes can't have an element named '#constructor'\");\n }\n element.computed = false;\n element.key = this.parsePrivateIdent();\n } else {\n this.parsePropertyName(element);\n }\n};\n\npp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) {\n // Check key and flags\n var key = method.key;\n if (method.kind === \"constructor\") {\n if (isGenerator) { this.raise(key.start, \"Constructor can't be a generator\"); }\n if (isAsync) { this.raise(key.start, \"Constructor can't be an async method\"); }\n } else if (method.static && checkKeyName(method, \"prototype\")) {\n this.raise(key.start, \"Classes may not have a static property named prototype\");\n }\n\n // Parse value\n var value = method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper);\n\n // Check value\n if (method.kind === \"get\" && value.params.length !== 0)\n { this.raiseRecoverable(value.start, \"getter should have no params\"); }\n if (method.kind === \"set\" && value.params.length !== 1)\n { this.raiseRecoverable(value.start, \"setter should have exactly one param\"); }\n if (method.kind === \"set\" && value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(value.params[0].start, \"Setter cannot use rest params\"); }\n\n return this.finishNode(method, \"MethodDefinition\")\n};\n\npp$8.parseClassField = function(field) {\n if (checkKeyName(field, \"constructor\")) {\n this.raise(field.key.start, \"Classes can't have a field named 'constructor'\");\n } else if (field.static && checkKeyName(field, \"prototype\")) {\n this.raise(field.key.start, \"Classes can't have a static field named 'prototype'\");\n }\n\n if (this.eat(types$1.eq)) {\n // To raise SyntaxError if 'arguments' exists in the initializer.\n var scope = this.currentThisScope();\n var inClassFieldInit = scope.inClassFieldInit;\n scope.inClassFieldInit = true;\n field.value = this.parseMaybeAssign();\n scope.inClassFieldInit = inClassFieldInit;\n } else {\n field.value = null;\n }\n this.semicolon();\n\n return this.finishNode(field, \"PropertyDefinition\")\n};\n\npp$8.parseClassStaticBlock = function(node) {\n node.body = [];\n\n var oldLabels = this.labels;\n this.labels = [];\n this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER);\n while (this.type !== types$1.braceR) {\n var stmt = this.parseStatement(null);\n node.body.push(stmt);\n }\n this.next();\n this.exitScope();\n this.labels = oldLabels;\n\n return this.finishNode(node, \"StaticBlock\")\n};\n\npp$8.parseClassId = function(node, isStatement) {\n if (this.type === types$1.name) {\n node.id = this.parseIdent();\n if (isStatement)\n { this.checkLValSimple(node.id, BIND_LEXICAL, false); }\n } else {\n if (isStatement === true)\n { this.unexpected(); }\n node.id = null;\n }\n};\n\npp$8.parseClassSuper = function(node) {\n node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(null, false) : null;\n};\n\npp$8.enterClassBody = function() {\n var element = {declared: Object.create(null), used: []};\n this.privateNameStack.push(element);\n return element.declared\n};\n\npp$8.exitClassBody = function() {\n var ref = this.privateNameStack.pop();\n var declared = ref.declared;\n var used = ref.used;\n var len = this.privateNameStack.length;\n var parent = len === 0 ? null : this.privateNameStack[len - 1];\n for (var i = 0; i < used.length; ++i) {\n var id = used[i];\n if (!hasOwn(declared, id.name)) {\n if (parent) {\n parent.used.push(id);\n } else {\n this.raiseRecoverable(id.start, (\"Private field '#\" + (id.name) + \"' must be declared in an enclosing class\"));\n }\n }\n }\n};\n\nfunction isPrivateNameConflicted(privateNameMap, element) {\n var name = element.key.name;\n var curr = privateNameMap[name];\n\n var next = \"true\";\n if (element.type === \"MethodDefinition\" && (element.kind === \"get\" || element.kind === \"set\")) {\n next = (element.static ? \"s\" : \"i\") + element.kind;\n }\n\n // `class { get #a(){}; static set #a(_){} }` is also conflict.\n if (\n curr === \"iget\" && next === \"iset\" ||\n curr === \"iset\" && next === \"iget\" ||\n curr === \"sget\" && next === \"sset\" ||\n curr === \"sset\" && next === \"sget\"\n ) {\n privateNameMap[name] = \"true\";\n return false\n } else if (!curr) {\n privateNameMap[name] = next;\n return false\n } else {\n return true\n }\n}\n\nfunction checkKeyName(node, name) {\n var computed = node.computed;\n var key = node.key;\n return !computed && (\n key.type === \"Identifier\" && key.name === name ||\n key.type === \"Literal\" && key.value === name\n )\n}\n\n// Parses module export declaration.\n\npp$8.parseExport = function(node, exports) {\n this.next();\n // export * from '...'\n if (this.eat(types$1.star)) {\n if (this.options.ecmaVersion >= 11) {\n if (this.eatContextual(\"as\")) {\n node.exported = this.parseModuleExportName();\n this.checkExport(exports, node.exported, this.lastTokStart);\n } else {\n node.exported = null;\n }\n }\n this.expectContextual(\"from\");\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n this.semicolon();\n return this.finishNode(node, \"ExportAllDeclaration\")\n }\n if (this.eat(types$1._default)) { // export default ...\n this.checkExport(exports, \"default\", this.lastTokStart);\n var isAsync;\n if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) {\n var fNode = this.startNode();\n this.next();\n if (isAsync) { this.next(); }\n node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync);\n } else if (this.type === types$1._class) {\n var cNode = this.startNode();\n node.declaration = this.parseClass(cNode, \"nullableID\");\n } else {\n node.declaration = this.parseMaybeAssign();\n this.semicolon();\n }\n return this.finishNode(node, \"ExportDefaultDeclaration\")\n }\n // export var|const|let|function|class ...\n if (this.shouldParseExportStatement()) {\n node.declaration = this.parseStatement(null);\n if (node.declaration.type === \"VariableDeclaration\")\n { this.checkVariableExport(exports, node.declaration.declarations); }\n else\n { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }\n node.specifiers = [];\n node.source = null;\n } else { // export { x, y as z } [from '...']\n node.declaration = null;\n node.specifiers = this.parseExportSpecifiers(exports);\n if (this.eatContextual(\"from\")) {\n if (this.type !== types$1.string) { this.unexpected(); }\n node.source = this.parseExprAtom();\n } else {\n for (var i = 0, list = node.specifiers; i < list.length; i += 1) {\n // check for keywords used as local names\n var spec = list[i];\n\n this.checkUnreserved(spec.local);\n // check if export is defined\n this.checkLocalExport(spec.local);\n\n if (spec.local.type === \"Literal\") {\n this.raise(spec.local.start, \"A string literal cannot be used as an exported binding without `from`.\");\n }\n }\n\n node.source = null;\n }\n this.semicolon();\n }\n return this.finishNode(node, \"ExportNamedDeclaration\")\n};\n\npp$8.checkExport = function(exports, name, pos) {\n if (!exports) { return }\n if (typeof name !== \"string\")\n { name = name.type === \"Identifier\" ? name.name : name.value; }\n if (hasOwn(exports, name))\n { this.raiseRecoverable(pos, \"Duplicate export '\" + name + \"'\"); }\n exports[name] = true;\n};\n\npp$8.checkPatternExport = function(exports, pat) {\n var type = pat.type;\n if (type === \"Identifier\")\n { this.checkExport(exports, pat, pat.start); }\n else if (type === \"ObjectPattern\")\n { for (var i = 0, list = pat.properties; i < list.length; i += 1)\n {\n var prop = list[i];\n\n this.checkPatternExport(exports, prop);\n } }\n else if (type === \"ArrayPattern\")\n { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) {\n var elt = list$1[i$1];\n\n if (elt) { this.checkPatternExport(exports, elt); }\n } }\n else if (type === \"Property\")\n { this.checkPatternExport(exports, pat.value); }\n else if (type === \"AssignmentPattern\")\n { this.checkPatternExport(exports, pat.left); }\n else if (type === \"RestElement\")\n { this.checkPatternExport(exports, pat.argument); }\n else if (type === \"ParenthesizedExpression\")\n { this.checkPatternExport(exports, pat.expression); }\n};\n\npp$8.checkVariableExport = function(exports, decls) {\n if (!exports) { return }\n for (var i = 0, list = decls; i < list.length; i += 1)\n {\n var decl = list[i];\n\n this.checkPatternExport(exports, decl.id);\n }\n};\n\npp$8.shouldParseExportStatement = function() {\n return this.type.keyword === \"var\" ||\n this.type.keyword === \"const\" ||\n this.type.keyword === \"class\" ||\n this.type.keyword === \"function\" ||\n this.isLet() ||\n this.isAsyncFunction()\n};\n\n// Parses a comma-separated list of module exports.\n\npp$8.parseExportSpecifiers = function(exports) {\n var nodes = [], first = true;\n // export { x, y as z } [from '...']\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var node = this.startNode();\n node.local = this.parseModuleExportName();\n node.exported = this.eatContextual(\"as\") ? this.parseModuleExportName() : node.local;\n this.checkExport(\n exports,\n node.exported,\n node.exported.start\n );\n nodes.push(this.finishNode(node, \"ExportSpecifier\"));\n }\n return nodes\n};\n\n// Parses import declaration.\n\npp$8.parseImport = function(node) {\n this.next();\n // import '...'\n if (this.type === types$1.string) {\n node.specifiers = empty$1;\n node.source = this.parseExprAtom();\n } else {\n node.specifiers = this.parseImportSpecifiers();\n this.expectContextual(\"from\");\n node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected();\n }\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\")\n};\n\n// Parses a comma-separated list of module imports.\n\npp$8.parseImportSpecifiers = function() {\n var nodes = [], first = true;\n if (this.type === types$1.name) {\n // import defaultObj, { x, y as z } from '...'\n var node = this.startNode();\n node.local = this.parseIdent();\n this.checkLValSimple(node.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node, \"ImportDefaultSpecifier\"));\n if (!this.eat(types$1.comma)) { return nodes }\n }\n if (this.type === types$1.star) {\n var node$1 = this.startNode();\n this.next();\n this.expectContextual(\"as\");\n node$1.local = this.parseIdent();\n this.checkLValSimple(node$1.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$1, \"ImportNamespaceSpecifier\"));\n return nodes\n }\n this.expect(types$1.braceL);\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var node$2 = this.startNode();\n node$2.imported = this.parseModuleExportName();\n if (this.eatContextual(\"as\")) {\n node$2.local = this.parseIdent();\n } else {\n this.checkUnreserved(node$2.imported);\n node$2.local = node$2.imported;\n }\n this.checkLValSimple(node$2.local, BIND_LEXICAL);\n nodes.push(this.finishNode(node$2, \"ImportSpecifier\"));\n }\n return nodes\n};\n\npp$8.parseModuleExportName = function() {\n if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {\n var stringLiteral = this.parseLiteral(this.value);\n if (loneSurrogate.test(stringLiteral.value)) {\n this.raise(stringLiteral.start, \"An export name cannot include a lone surrogate.\");\n }\n return stringLiteral\n }\n return this.parseIdent(true)\n};\n\n// Set `ExpressionStatement#directive` property for directive prologues.\npp$8.adaptDirectivePrologue = function(statements) {\n for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {\n statements[i].directive = statements[i].expression.raw.slice(1, -1);\n }\n};\npp$8.isDirectiveCandidate = function(statement) {\n return (\n this.options.ecmaVersion >= 5 &&\n statement.type === \"ExpressionStatement\" &&\n statement.expression.type === \"Literal\" &&\n typeof statement.expression.value === \"string\" &&\n // Reject parenthesized strings.\n (this.input[statement.start] === \"\\\"\" || this.input[statement.start] === \"'\")\n )\n};\n\nvar pp$7 = Parser.prototype;\n\n// Convert existing expression atom to assignable pattern\n// if possible.\n\npp$7.toAssignable = function(node, isBinding, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 6 && node) {\n switch (node.type) {\n case \"Identifier\":\n if (this.inAsync && node.name === \"await\")\n { this.raise(node.start, \"Cannot use 'await' as identifier inside an async function\"); }\n break\n\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n for (var i = 0, list = node.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.toAssignable(prop, isBinding);\n // Early error:\n // AssignmentRestProperty[Yield, Await] :\n // `...` DestructuringAssignmentTarget[Yield, Await]\n //\n // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|.\n if (\n prop.type === \"RestElement\" &&\n (prop.argument.type === \"ArrayPattern\" || prop.argument.type === \"ObjectPattern\")\n ) {\n this.raise(prop.argument.start, \"Unexpected token\");\n }\n }\n break\n\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n if (node.kind !== \"init\") { this.raise(node.key.start, \"Object pattern can't contain getter or setter\"); }\n this.toAssignable(node.value, isBinding);\n break\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n this.toAssignableList(node.elements, isBinding);\n break\n\n case \"SpreadElement\":\n node.type = \"RestElement\";\n this.toAssignable(node.argument, isBinding);\n if (node.argument.type === \"AssignmentPattern\")\n { this.raise(node.argument.start, \"Rest elements cannot have a default value\"); }\n break\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") { this.raise(node.left.end, \"Only '=' operator can be used for specifying default value.\"); }\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isBinding);\n break\n\n case \"ParenthesizedExpression\":\n this.toAssignable(node.expression, isBinding, refDestructuringErrors);\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(node.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (!isBinding) { break }\n\n default:\n this.raise(node.start, \"Assigning to rvalue\");\n }\n } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); }\n return node\n};\n\n// Convert list of expression atoms to binding list.\n\npp$7.toAssignableList = function(exprList, isBinding) {\n var end = exprList.length;\n for (var i = 0; i < end; i++) {\n var elt = exprList[i];\n if (elt) { this.toAssignable(elt, isBinding); }\n }\n if (end) {\n var last = exprList[end - 1];\n if (this.options.ecmaVersion === 6 && isBinding && last && last.type === \"RestElement\" && last.argument.type !== \"Identifier\")\n { this.unexpected(last.argument.start); }\n }\n return exprList\n};\n\n// Parses spread element.\n\npp$7.parseSpread = function(refDestructuringErrors) {\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n return this.finishNode(node, \"SpreadElement\")\n};\n\npp$7.parseRestBinding = function() {\n var node = this.startNode();\n this.next();\n\n // RestElement inside of a function parameter must be an identifier\n if (this.options.ecmaVersion === 6 && this.type !== types$1.name)\n { this.unexpected(); }\n\n node.argument = this.parseBindingAtom();\n\n return this.finishNode(node, \"RestElement\")\n};\n\n// Parses lvalue (assignable) atom.\n\npp$7.parseBindingAtom = function() {\n if (this.options.ecmaVersion >= 6) {\n switch (this.type) {\n case types$1.bracketL:\n var node = this.startNode();\n this.next();\n node.elements = this.parseBindingList(types$1.bracketR, true, true);\n return this.finishNode(node, \"ArrayPattern\")\n\n case types$1.braceL:\n return this.parseObj(true)\n }\n }\n return this.parseIdent()\n};\n\npp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (first) { first = false; }\n else { this.expect(types$1.comma); }\n if (allowEmpty && this.type === types$1.comma) {\n elts.push(null);\n } else if (allowTrailingComma && this.afterTrailingComma(close)) {\n break\n } else if (this.type === types$1.ellipsis) {\n var rest = this.parseRestBinding();\n this.parseBindingListItem(rest);\n elts.push(rest);\n if (this.type === types$1.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n this.expect(close);\n break\n } else {\n var elem = this.parseMaybeDefault(this.start, this.startLoc);\n this.parseBindingListItem(elem);\n elts.push(elem);\n }\n }\n return elts\n};\n\npp$7.parseBindingListItem = function(param) {\n return param\n};\n\n// Parses assignment pattern around given atom if possible.\n\npp$7.parseMaybeDefault = function(startPos, startLoc, left) {\n left = left || this.parseBindingAtom();\n if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.right = this.parseMaybeAssign();\n return this.finishNode(node, \"AssignmentPattern\")\n};\n\n// The following three functions all verify that a node is an lvalue —\n// something that can be bound, or assigned to. In order to do so, they perform\n// a variety of checks:\n//\n// - Check that none of the bound/assigned-to identifiers are reserved words.\n// - Record name declarations for bindings in the appropriate scope.\n// - Check duplicate argument names, if checkClashes is set.\n//\n// If a complex binding pattern is encountered (e.g., object and array\n// destructuring), the entire pattern is recursively checked.\n//\n// There are three versions of checkLVal*() appropriate for different\n// circumstances:\n//\n// - checkLValSimple() shall be used if the syntactic construct supports\n// nothing other than identifiers and member expressions. Parenthesized\n// expressions are also correctly handled. This is generally appropriate for\n// constructs for which the spec says\n//\n// > It is a Syntax Error if AssignmentTargetType of [the production] is not\n// > simple.\n//\n// It is also appropriate for checking if an identifier is valid and not\n// defined elsewhere, like import declarations or function/class identifiers.\n//\n// Examples where this is used include:\n// a += …;\n// import a from '…';\n// where a is the node to be checked.\n//\n// - checkLValPattern() shall be used if the syntactic construct supports\n// anything checkLValSimple() supports, as well as object and array\n// destructuring patterns. This is generally appropriate for constructs for\n// which the spec says\n//\n// > It is a Syntax Error if [the production] is neither an ObjectLiteral nor\n// > an ArrayLiteral and AssignmentTargetType of [the production] is not\n// > simple.\n//\n// Examples where this is used include:\n// (a = …);\n// const a = …;\n// try { … } catch (a) { … }\n// where a is the node to be checked.\n//\n// - checkLValInnerPattern() shall be used if the syntactic construct supports\n// anything checkLValPattern() supports, as well as default assignment\n// patterns, rest elements, and other constructs that may appear within an\n// object or array destructuring pattern.\n//\n// As a special case, function parameters also use checkLValInnerPattern(),\n// as they also support defaults and rest constructs.\n//\n// These functions deliberately support both assignment and binding constructs,\n// as the logic for both is exceedingly similar. If the node is the target of\n// an assignment, then bindingType should be set to BIND_NONE. Otherwise, it\n// should be set to the appropriate BIND_* constant, like BIND_VAR or\n// BIND_LEXICAL.\n//\n// If the function is called with a non-BIND_NONE bindingType, then\n// additionally a checkClashes object may be specified to allow checking for\n// duplicate argument names. checkClashes is ignored if the provided construct\n// is an assignment (i.e., bindingType is BIND_NONE).\n\npp$7.checkLValSimple = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n var isBind = bindingType !== BIND_NONE;\n\n switch (expr.type) {\n case \"Identifier\":\n if (this.strict && this.reservedWordsStrictBind.test(expr.name))\n { this.raiseRecoverable(expr.start, (isBind ? \"Binding \" : \"Assigning to \") + expr.name + \" in strict mode\"); }\n if (isBind) {\n if (bindingType === BIND_LEXICAL && expr.name === \"let\")\n { this.raiseRecoverable(expr.start, \"let is disallowed as a lexically bound name\"); }\n if (checkClashes) {\n if (hasOwn(checkClashes, expr.name))\n { this.raiseRecoverable(expr.start, \"Argument name clash\"); }\n checkClashes[expr.name] = true;\n }\n if (bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); }\n }\n break\n\n case \"ChainExpression\":\n this.raiseRecoverable(expr.start, \"Optional chaining cannot appear in left-hand side\");\n break\n\n case \"MemberExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding member expression\"); }\n break\n\n case \"ParenthesizedExpression\":\n if (isBind) { this.raiseRecoverable(expr.start, \"Binding parenthesized expression\"); }\n return this.checkLValSimple(expr.expression, bindingType, checkClashes)\n\n default:\n this.raise(expr.start, (isBind ? \"Binding\" : \"Assigning to\") + \" rvalue\");\n }\n};\n\npp$7.checkLValPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"ObjectPattern\":\n for (var i = 0, list = expr.properties; i < list.length; i += 1) {\n var prop = list[i];\n\n this.checkLValInnerPattern(prop, bindingType, checkClashes);\n }\n break\n\n case \"ArrayPattern\":\n for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) {\n var elem = list$1[i$1];\n\n if (elem) { this.checkLValInnerPattern(elem, bindingType, checkClashes); }\n }\n break\n\n default:\n this.checkLValSimple(expr, bindingType, checkClashes);\n }\n};\n\npp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) {\n if ( bindingType === void 0 ) bindingType = BIND_NONE;\n\n switch (expr.type) {\n case \"Property\":\n // AssignmentProperty has type === \"Property\"\n this.checkLValInnerPattern(expr.value, bindingType, checkClashes);\n break\n\n case \"AssignmentPattern\":\n this.checkLValPattern(expr.left, bindingType, checkClashes);\n break\n\n case \"RestElement\":\n this.checkLValPattern(expr.argument, bindingType, checkClashes);\n break\n\n default:\n this.checkLValPattern(expr, bindingType, checkClashes);\n }\n};\n\n// The algorithm used to determine whether a regexp can appear at a\n\nvar TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n this.generator = !!generator;\n};\n\nvar types = {\n b_stat: new TokContext(\"{\", false),\n b_expr: new TokContext(\"{\", true),\n b_tmpl: new TokContext(\"${\", false),\n p_stat: new TokContext(\"(\", false),\n p_expr: new TokContext(\"(\", true),\n q_tmpl: new TokContext(\"`\", true, true, function (p) { return p.tryReadTemplateToken(); }),\n f_stat: new TokContext(\"function\", false),\n f_expr: new TokContext(\"function\", true),\n f_expr_gen: new TokContext(\"function\", true, false, null, true),\n f_gen: new TokContext(\"function\", false, false, null, true)\n};\n\nvar pp$6 = Parser.prototype;\n\npp$6.initialContext = function() {\n return [types.b_stat]\n};\n\npp$6.curContext = function() {\n return this.context[this.context.length - 1]\n};\n\npp$6.braceIsBlock = function(prevType) {\n var parent = this.curContext();\n if (parent === types.f_expr || parent === types.f_stat)\n { return true }\n if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr))\n { return !parent.isExpr }\n\n // The check for `tt.name && exprAllowed` detects whether we are\n // after a `yield` or `of` construct. See the `updateContext` for\n // `tt.name`.\n if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed)\n { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }\n if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow)\n { return true }\n if (prevType === types$1.braceL)\n { return parent === types.b_stat }\n if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name)\n { return false }\n return !this.exprAllowed\n};\n\npp$6.inGeneratorContext = function() {\n for (var i = this.context.length - 1; i >= 1; i--) {\n var context = this.context[i];\n if (context.token === \"function\")\n { return context.generator }\n }\n return false\n};\n\npp$6.updateContext = function(prevType) {\n var update, type = this.type;\n if (type.keyword && prevType === types$1.dot)\n { this.exprAllowed = false; }\n else if (update = type.updateContext)\n { update.call(this, prevType); }\n else\n { this.exprAllowed = type.beforeExpr; }\n};\n\n// Used to handle egde cases when token context could not be inferred correctly during tokenization phase\n\npp$6.overrideContext = function(tokenCtx) {\n if (this.curContext() !== tokenCtx) {\n this.context[this.context.length - 1] = tokenCtx;\n }\n};\n\n// Token-specific context update code\n\ntypes$1.parenR.updateContext = types$1.braceR.updateContext = function() {\n if (this.context.length === 1) {\n this.exprAllowed = true;\n return\n }\n var out = this.context.pop();\n if (out === types.b_stat && this.curContext().token === \"function\") {\n out = this.context.pop();\n }\n this.exprAllowed = !out.isExpr;\n};\n\ntypes$1.braceL.updateContext = function(prevType) {\n this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr);\n this.exprAllowed = true;\n};\n\ntypes$1.dollarBraceL.updateContext = function() {\n this.context.push(types.b_tmpl);\n this.exprAllowed = true;\n};\n\ntypes$1.parenL.updateContext = function(prevType) {\n var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while;\n this.context.push(statementParens ? types.p_stat : types.p_expr);\n this.exprAllowed = true;\n};\n\ntypes$1.incDec.updateContext = function() {\n // tokExprAllowed stays unchanged\n};\n\ntypes$1._function.updateContext = types$1._class.updateContext = function(prevType) {\n if (prevType.beforeExpr && prevType !== types$1._else &&\n !(prevType === types$1.semi && this.curContext() !== types.p_stat) &&\n !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) &&\n !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat))\n { this.context.push(types.f_expr); }\n else\n { this.context.push(types.f_stat); }\n this.exprAllowed = false;\n};\n\ntypes$1.backQuote.updateContext = function() {\n if (this.curContext() === types.q_tmpl)\n { this.context.pop(); }\n else\n { this.context.push(types.q_tmpl); }\n this.exprAllowed = false;\n};\n\ntypes$1.star.updateContext = function(prevType) {\n if (prevType === types$1._function) {\n var index = this.context.length - 1;\n if (this.context[index] === types.f_expr)\n { this.context[index] = types.f_expr_gen; }\n else\n { this.context[index] = types.f_gen; }\n }\n this.exprAllowed = true;\n};\n\ntypes$1.name.updateContext = function(prevType) {\n var allowed = false;\n if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) {\n if (this.value === \"of\" && !this.exprAllowed ||\n this.value === \"yield\" && this.inGeneratorContext())\n { allowed = true; }\n }\n this.exprAllowed = allowed;\n};\n\n// A recursive descent parser operates by defining functions for all\n\nvar pp$5 = Parser.prototype;\n\n// Check if property name clashes with already added.\n// Object/class getters and setters are not allowed to clash —\n// either with each other or with an init property — and in\n// strict mode, init properties are also not allowed to be repeated.\n\npp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) {\n if (this.options.ecmaVersion >= 9 && prop.type === \"SpreadElement\")\n { return }\n if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand))\n { return }\n var key = prop.key;\n var name;\n switch (key.type) {\n case \"Identifier\": name = key.name; break\n case \"Literal\": name = String(key.value); break\n default: return\n }\n var kind = prop.kind;\n if (this.options.ecmaVersion >= 6) {\n if (name === \"__proto__\" && kind === \"init\") {\n if (propHash.proto) {\n if (refDestructuringErrors) {\n if (refDestructuringErrors.doubleProto < 0) {\n refDestructuringErrors.doubleProto = key.start;\n }\n } else {\n this.raiseRecoverable(key.start, \"Redefinition of __proto__ property\");\n }\n }\n propHash.proto = true;\n }\n return\n }\n name = \"$\" + name;\n var other = propHash[name];\n if (other) {\n var redefinition;\n if (kind === \"init\") {\n redefinition = this.strict && other.init || other.get || other.set;\n } else {\n redefinition = other.init || other[kind];\n }\n if (redefinition)\n { this.raiseRecoverable(key.start, \"Redefinition of property\"); }\n } else {\n other = propHash[name] = {\n init: false,\n get: false,\n set: false\n };\n }\n other[kind] = true;\n};\n\n// ### Expression parsing\n\n// These nest, from the most general expression type at the top to\n// 'atomic', nondivisible expression types at the bottom. Most of\n// the functions will simply let the function(s) below them parse,\n// and, *if* the syntactic construct they handle is present, wrap\n// the AST node that the inner parser gave them in another node.\n\n// Parse a full expression. The optional arguments are used to\n// forbid the `in` operator (in for loops initalization expressions)\n// and provide reference for storing '=' operator inside shorthand\n// property assignment in contexts where both object expression\n// and object pattern might appear (so it's possible to raise\n// delayed syntax error at correct position).\n\npp$5.parseExpression = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeAssign(forInit, refDestructuringErrors);\n if (this.type === types$1.comma) {\n var node = this.startNodeAt(startPos, startLoc);\n node.expressions = [expr];\n while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); }\n return this.finishNode(node, \"SequenceExpression\")\n }\n return expr\n};\n\n// Parse an assignment expression. This includes applications of\n// operators like `+=`.\n\npp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) {\n if (this.isContextual(\"yield\")) {\n if (this.inGenerator) { return this.parseYield(forInit) }\n // The tokenizer will assume an expression is allowed after\n // `yield`, but this isn't that kind of yield\n else { this.exprAllowed = false; }\n }\n\n var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1;\n if (refDestructuringErrors) {\n oldParenAssign = refDestructuringErrors.parenthesizedAssign;\n oldTrailingComma = refDestructuringErrors.trailingComma;\n oldDoubleProto = refDestructuringErrors.doubleProto;\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1;\n } else {\n refDestructuringErrors = new DestructuringErrors;\n ownDestructuringErrors = true;\n }\n\n var startPos = this.start, startLoc = this.startLoc;\n if (this.type === types$1.parenL || this.type === types$1.name) {\n this.potentialArrowAt = this.start;\n this.potentialArrowInForAwait = forInit === \"await\";\n }\n var left = this.parseMaybeConditional(forInit, refDestructuringErrors);\n if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); }\n if (this.type.isAssign) {\n var node = this.startNodeAt(startPos, startLoc);\n node.operator = this.value;\n if (this.type === types$1.eq)\n { left = this.toAssignable(left, false, refDestructuringErrors); }\n if (!ownDestructuringErrors) {\n refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1;\n }\n if (refDestructuringErrors.shorthandAssign >= left.start)\n { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly\n if (this.type === types$1.eq)\n { this.checkLValPattern(left); }\n else\n { this.checkLValSimple(left); }\n node.left = left;\n this.next();\n node.right = this.parseMaybeAssign(forInit);\n if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; }\n return this.finishNode(node, \"AssignmentExpression\")\n } else {\n if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); }\n }\n if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; }\n if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; }\n return left\n};\n\n// Parse a ternary conditional (`?:`) operator.\n\npp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprOps(forInit, refDestructuringErrors);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n if (this.eat(types$1.question)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssign();\n this.expect(types$1.colon);\n node.alternate = this.parseMaybeAssign(forInit);\n return this.finishNode(node, \"ConditionalExpression\")\n }\n return expr\n};\n\n// Start the precedence parser.\n\npp$5.parseExprOps = function(forInit, refDestructuringErrors) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n return expr.start === startPos && expr.type === \"ArrowFunctionExpression\" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, forInit)\n};\n\n// Parse binary operators with the operator precedence parsing\n// algorithm. `left` is the left-hand side of the operator.\n// `minPrec` provides context that allows the function to stop and\n// defer further parser to one of its callers when it encounters an\n// operator that has a lower precedence than the set it is parsing.\n\npp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) {\n var prec = this.type.binop;\n if (prec != null && (!forInit || this.type !== types$1._in)) {\n if (prec > minPrec) {\n var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND;\n var coalesce = this.type === types$1.coalesce;\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = types$1.logicalAND.binop;\n }\n var op = this.value;\n this.next();\n var startPos = this.start, startLoc = this.startLoc;\n var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit);\n var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce);\n if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) {\n this.raiseRecoverable(this.start, \"Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses\");\n }\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit)\n }\n }\n return left\n};\n\npp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) {\n if (right.type === \"PrivateIdentifier\") { this.raise(right.start, \"Private identifier can only be left side of binary expression\"); }\n var node = this.startNodeAt(startPos, startLoc);\n node.left = left;\n node.operator = op;\n node.right = right;\n return this.finishNode(node, logical ? \"LogicalExpression\" : \"BinaryExpression\")\n};\n\n// Parse unary operators, both prefix and postfix.\n\npp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) {\n var startPos = this.start, startLoc = this.startLoc, expr;\n if (this.isContextual(\"await\") && this.canAwait) {\n expr = this.parseAwait(forInit);\n sawUnary = true;\n } else if (this.type.prefix) {\n var node = this.startNode(), update = this.type === types$1.incDec;\n node.operator = this.value;\n node.prefix = true;\n this.next();\n node.argument = this.parseMaybeUnary(null, true, update, forInit);\n this.checkExpressionErrors(refDestructuringErrors, true);\n if (update) { this.checkLValSimple(node.argument); }\n else if (this.strict && node.operator === \"delete\" &&\n node.argument.type === \"Identifier\")\n { this.raiseRecoverable(node.start, \"Deleting local variable in strict mode\"); }\n else if (node.operator === \"delete\" && isPrivateFieldAccess(node.argument))\n { this.raiseRecoverable(node.start, \"Private fields can not be deleted\"); }\n else { sawUnary = true; }\n expr = this.finishNode(node, update ? \"UpdateExpression\" : \"UnaryExpression\");\n } else if (!sawUnary && this.type === types$1.privateId) {\n if (forInit || this.privateNameStack.length === 0) { this.unexpected(); }\n expr = this.parsePrivateIdent();\n // only could be private fields in 'in', such as #x in obj\n if (this.type !== types$1._in) { this.unexpected(); }\n } else {\n expr = this.parseExprSubscripts(refDestructuringErrors, forInit);\n if (this.checkExpressionErrors(refDestructuringErrors)) { return expr }\n while (this.type.postfix && !this.canInsertSemicolon()) {\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.operator = this.value;\n node$1.prefix = false;\n node$1.argument = expr;\n this.checkLValSimple(expr);\n this.next();\n expr = this.finishNode(node$1, \"UpdateExpression\");\n }\n }\n\n if (!incDec && this.eat(types$1.starstar)) {\n if (sawUnary)\n { this.unexpected(this.lastTokStart); }\n else\n { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false, false, forInit), \"**\", false) }\n } else {\n return expr\n }\n};\n\nfunction isPrivateFieldAccess(node) {\n return (\n node.type === \"MemberExpression\" && node.property.type === \"PrivateIdentifier\" ||\n node.type === \"ChainExpression\" && isPrivateFieldAccess(node.expression)\n )\n}\n\n// Parse call, dot, and `[]`-subscript expressions.\n\npp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) {\n var startPos = this.start, startLoc = this.startLoc;\n var expr = this.parseExprAtom(refDestructuringErrors, forInit);\n if (expr.type === \"ArrowFunctionExpression\" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== \")\")\n { return expr }\n var result = this.parseSubscripts(expr, startPos, startLoc, false, forInit);\n if (refDestructuringErrors && result.type === \"MemberExpression\") {\n if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; }\n if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; }\n if (refDestructuringErrors.trailingComma >= result.start) { refDestructuringErrors.trailingComma = -1; }\n }\n return result\n};\n\npp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) {\n var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === \"Identifier\" && base.name === \"async\" &&\n this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 &&\n this.potentialArrowAt === base.start;\n var optionalChained = false;\n\n while (true) {\n var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit);\n\n if (element.optional) { optionalChained = true; }\n if (element === base || element.type === \"ArrowFunctionExpression\") {\n if (optionalChained) {\n var chainNode = this.startNodeAt(startPos, startLoc);\n chainNode.expression = element;\n element = this.finishNode(chainNode, \"ChainExpression\");\n }\n return element\n }\n\n base = element;\n }\n};\n\npp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) {\n var optionalSupported = this.options.ecmaVersion >= 11;\n var optional = optionalSupported && this.eat(types$1.questionDot);\n if (noCalls && optional) { this.raise(this.lastTokStart, \"Optional chaining cannot appear in the callee of new expressions\"); }\n\n var computed = this.eat(types$1.bracketL);\n if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) {\n var node = this.startNodeAt(startPos, startLoc);\n node.object = base;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(types$1.bracketR);\n } else if (this.type === types$1.privateId && base.type !== \"Super\") {\n node.property = this.parsePrivateIdent();\n } else {\n node.property = this.parseIdent(this.options.allowReserved !== \"never\");\n }\n node.computed = !!computed;\n if (optionalSupported) {\n node.optional = optional;\n }\n base = this.finishNode(node, \"MemberExpression\");\n } else if (!noCalls && this.eat(types$1.parenL)) {\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors);\n if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types$1.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n if (this.awaitIdentPos > 0)\n { this.raise(this.awaitIdentPos, \"Cannot use 'await' as identifier inside an async function\"); }\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true, forInit)\n }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos;\n var node$1 = this.startNodeAt(startPos, startLoc);\n node$1.callee = base;\n node$1.arguments = exprList;\n if (optionalSupported) {\n node$1.optional = optional;\n }\n base = this.finishNode(node$1, \"CallExpression\");\n } else if (this.type === types$1.backQuote) {\n if (optional || optionalChained) {\n this.raise(this.start, \"Optional chaining cannot appear in the tag of tagged template expressions\");\n }\n var node$2 = this.startNodeAt(startPos, startLoc);\n node$2.tag = base;\n node$2.quasi = this.parseTemplate({isTagged: true});\n base = this.finishNode(node$2, \"TaggedTemplateExpression\");\n }\n return base\n};\n\n// Parse an atomic expression — either a single token that is an\n// expression, an expression started by a keyword like `function` or\n// `new`, or an expression wrapped in punctuation like `()`, `[]`,\n// or `{}`.\n\npp$5.parseExprAtom = function(refDestructuringErrors, forInit) {\n // If a division operator appears in an expression position, the\n // tokenizer got confused, and we force it to read a regexp instead.\n if (this.type === types$1.slash) { this.readRegexp(); }\n\n var node, canBeArrow = this.potentialArrowAt === this.start;\n switch (this.type) {\n case types$1._super:\n if (!this.allowSuper)\n { this.raise(this.start, \"'super' keyword outside a method\"); }\n node = this.startNode();\n this.next();\n if (this.type === types$1.parenL && !this.allowDirectSuper)\n { this.raise(node.start, \"super() call outside constructor of a subclass\"); }\n // The `super` keyword can appear at below:\n // SuperProperty:\n // super [ Expression ]\n // super . IdentifierName\n // SuperCall:\n // super ( Arguments )\n if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL)\n { this.unexpected(); }\n return this.finishNode(node, \"Super\")\n\n case types$1._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\")\n\n case types$1.name:\n var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc;\n var id = this.parseIdent(false);\n if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === \"async\" && !this.canInsertSemicolon() && this.eat(types$1._function)) {\n this.overrideContext(types.f_expr);\n return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit)\n }\n if (canBeArrow && !this.canInsertSemicolon()) {\n if (this.eat(types$1.arrow))\n { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) }\n if (this.options.ecmaVersion >= 8 && id.name === \"async\" && this.type === types$1.name && !containsEsc &&\n (!this.potentialArrowInForAwait || this.value !== \"of\" || this.containsEsc)) {\n id = this.parseIdent(false);\n if (this.canInsertSemicolon() || !this.eat(types$1.arrow))\n { this.unexpected(); }\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit)\n }\n }\n return id\n\n case types$1.regexp:\n var value = this.value;\n node = this.parseLiteral(value.value);\n node.regex = {pattern: value.pattern, flags: value.flags};\n return node\n\n case types$1.num: case types$1.string:\n return this.parseLiteral(this.value)\n\n case types$1._null: case types$1._true: case types$1._false:\n node = this.startNode();\n node.value = this.type === types$1._null ? null : this.type === types$1._true;\n node.raw = this.type.keyword;\n this.next();\n return this.finishNode(node, \"Literal\")\n\n case types$1.parenL:\n var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit);\n if (refDestructuringErrors) {\n if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr))\n { refDestructuringErrors.parenthesizedAssign = start; }\n if (refDestructuringErrors.parenthesizedBind < 0)\n { refDestructuringErrors.parenthesizedBind = start; }\n }\n return expr\n\n case types$1.bracketL:\n node = this.startNode();\n this.next();\n node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors);\n return this.finishNode(node, \"ArrayExpression\")\n\n case types$1.braceL:\n this.overrideContext(types.b_expr);\n return this.parseObj(false, refDestructuringErrors)\n\n case types$1._function:\n node = this.startNode();\n this.next();\n return this.parseFunction(node, 0)\n\n case types$1._class:\n return this.parseClass(this.startNode(), false)\n\n case types$1._new:\n return this.parseNew()\n\n case types$1.backQuote:\n return this.parseTemplate()\n\n case types$1._import:\n if (this.options.ecmaVersion >= 11) {\n return this.parseExprImport()\n } else {\n return this.unexpected()\n }\n\n default:\n this.unexpected();\n }\n};\n\npp$5.parseExprImport = function() {\n var node = this.startNode();\n\n // Consume `import` as an identifier for `import.meta`.\n // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`.\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword import\"); }\n var meta = this.parseIdent(true);\n\n switch (this.type) {\n case types$1.parenL:\n return this.parseDynamicImport(node)\n case types$1.dot:\n node.meta = meta;\n return this.parseImportMeta(node)\n default:\n this.unexpected();\n }\n};\n\npp$5.parseDynamicImport = function(node) {\n this.next(); // skip `(`\n\n // Parse node.source.\n node.source = this.parseMaybeAssign();\n\n // Verify ending.\n if (!this.eat(types$1.parenR)) {\n var errorPos = this.start;\n if (this.eat(types$1.comma) && this.eat(types$1.parenR)) {\n this.raiseRecoverable(errorPos, \"Trailing comma is not allowed in import()\");\n } else {\n this.unexpected(errorPos);\n }\n }\n\n return this.finishNode(node, \"ImportExpression\")\n};\n\npp$5.parseImportMeta = function(node) {\n this.next(); // skip `.`\n\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n\n if (node.property.name !== \"meta\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for import is 'import.meta'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'import.meta' must not contain escaped characters\"); }\n if (this.options.sourceType !== \"module\" && !this.options.allowImportExportEverywhere)\n { this.raiseRecoverable(node.start, \"Cannot use 'import.meta' outside a module\"); }\n\n return this.finishNode(node, \"MetaProperty\")\n};\n\npp$5.parseLiteral = function(value) {\n var node = this.startNode();\n node.value = value;\n node.raw = this.input.slice(this.start, this.end);\n if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, \"\"); }\n this.next();\n return this.finishNode(node, \"Literal\")\n};\n\npp$5.parseParenExpression = function() {\n this.expect(types$1.parenL);\n var val = this.parseExpression();\n this.expect(types$1.parenR);\n return val\n};\n\npp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) {\n var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8;\n if (this.options.ecmaVersion >= 6) {\n this.next();\n\n var innerStartPos = this.start, innerStartLoc = this.startLoc;\n var exprList = [], first = true, lastIsComma = false;\n var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart;\n this.yieldPos = 0;\n this.awaitPos = 0;\n // Do not save awaitIdentPos to allow checking awaits nested in parameters\n while (this.type !== types$1.parenR) {\n first ? first = false : this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) {\n lastIsComma = true;\n break\n } else if (this.type === types$1.ellipsis) {\n spreadStart = this.start;\n exprList.push(this.parseParenItem(this.parseRestBinding()));\n if (this.type === types$1.comma) { this.raise(this.start, \"Comma is not permitted after the rest element\"); }\n break\n } else {\n exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem));\n }\n }\n var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc;\n this.expect(types$1.parenR);\n\n if (canBeArrow && !this.canInsertSemicolon() && this.eat(types$1.arrow)) {\n this.checkPatternErrors(refDestructuringErrors, false);\n this.checkYieldAwaitInDefaultParams();\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n return this.parseParenArrowList(startPos, startLoc, exprList, forInit)\n }\n\n if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); }\n if (spreadStart) { this.unexpected(spreadStart); }\n this.checkExpressionErrors(refDestructuringErrors, true);\n this.yieldPos = oldYieldPos || this.yieldPos;\n this.awaitPos = oldAwaitPos || this.awaitPos;\n\n if (exprList.length > 1) {\n val = this.startNodeAt(innerStartPos, innerStartLoc);\n val.expressions = exprList;\n this.finishNodeAt(val, \"SequenceExpression\", innerEndPos, innerEndLoc);\n } else {\n val = exprList[0];\n }\n } else {\n val = this.parseParenExpression();\n }\n\n if (this.options.preserveParens) {\n var par = this.startNodeAt(startPos, startLoc);\n par.expression = val;\n return this.finishNode(par, \"ParenthesizedExpression\")\n } else {\n return val\n }\n};\n\npp$5.parseParenItem = function(item) {\n return item\n};\n\npp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) {\n return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit)\n};\n\n// New's precedence is slightly tricky. It must allow its argument to\n// be a `[]` or dot subscript expression, but not a call — at least,\n// not without wrapping it in parentheses. Thus, it uses the noCalls\n// argument to parseSubscripts to prevent it from consuming the\n// argument list.\n\nvar empty = [];\n\npp$5.parseNew = function() {\n if (this.containsEsc) { this.raiseRecoverable(this.start, \"Escape sequence in keyword new\"); }\n var node = this.startNode();\n var meta = this.parseIdent(true);\n if (this.options.ecmaVersion >= 6 && this.eat(types$1.dot)) {\n node.meta = meta;\n var containsEsc = this.containsEsc;\n node.property = this.parseIdent(true);\n if (node.property.name !== \"target\")\n { this.raiseRecoverable(node.property.start, \"The only valid meta property for new is 'new.target'\"); }\n if (containsEsc)\n { this.raiseRecoverable(node.start, \"'new.target' must not contain escaped characters\"); }\n if (!this.allowNewDotTarget)\n { this.raiseRecoverable(node.start, \"'new.target' can only be used in functions and class static block\"); }\n return this.finishNode(node, \"MetaProperty\")\n }\n var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types$1._import;\n node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true, false);\n if (isImport && node.callee.type === \"ImportExpression\") {\n this.raise(startPos, \"Cannot use new with import()\");\n }\n if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); }\n else { node.arguments = empty; }\n return this.finishNode(node, \"NewExpression\")\n};\n\n// Parse template expression.\n\npp$5.parseTemplateElement = function(ref) {\n var isTagged = ref.isTagged;\n\n var elem = this.startNode();\n if (this.type === types$1.invalidTemplate) {\n if (!isTagged) {\n this.raiseRecoverable(this.start, \"Bad escape sequence in untagged template literal\");\n }\n elem.value = {\n raw: this.value,\n cooked: null\n };\n } else {\n elem.value = {\n raw: this.input.slice(this.start, this.end).replace(/\\r\\n?/g, \"\\n\"),\n cooked: this.value\n };\n }\n this.next();\n elem.tail = this.type === types$1.backQuote;\n return this.finishNode(elem, \"TemplateElement\")\n};\n\npp$5.parseTemplate = function(ref) {\n if ( ref === void 0 ) ref = {};\n var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false;\n\n var node = this.startNode();\n this.next();\n node.expressions = [];\n var curElt = this.parseTemplateElement({isTagged: isTagged});\n node.quasis = [curElt];\n while (!curElt.tail) {\n if (this.type === types$1.eof) { this.raise(this.pos, \"Unterminated template literal\"); }\n this.expect(types$1.dollarBraceL);\n node.expressions.push(this.parseExpression());\n this.expect(types$1.braceR);\n node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged}));\n }\n this.next();\n return this.finishNode(node, \"TemplateLiteral\")\n};\n\npp$5.isAsyncProp = function(prop) {\n return !prop.computed && prop.key.type === \"Identifier\" && prop.key.name === \"async\" &&\n (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) &&\n !lineBreak.test(this.input.slice(this.lastTokEnd, this.start))\n};\n\n// Parse an object literal or binding pattern.\n\npp$5.parseObj = function(isPattern, refDestructuringErrors) {\n var node = this.startNode(), first = true, propHash = {};\n node.properties = [];\n this.next();\n while (!this.eat(types$1.braceR)) {\n if (!first) {\n this.expect(types$1.comma);\n if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break }\n } else { first = false; }\n\n var prop = this.parseProperty(isPattern, refDestructuringErrors);\n if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); }\n node.properties.push(prop);\n }\n return this.finishNode(node, isPattern ? \"ObjectPattern\" : \"ObjectExpression\")\n};\n\npp$5.parseProperty = function(isPattern, refDestructuringErrors) {\n var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc;\n if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) {\n if (isPattern) {\n prop.argument = this.parseIdent(false);\n if (this.type === types$1.comma) {\n this.raise(this.start, \"Comma is not permitted after the rest element\");\n }\n return this.finishNode(prop, \"RestElement\")\n }\n // Parse argument.\n prop.argument = this.parseMaybeAssign(false, refDestructuringErrors);\n // To disallow trailing comma via `this.toAssignable()`.\n if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) {\n refDestructuringErrors.trailingComma = this.start;\n }\n // Finish\n return this.finishNode(prop, \"SpreadElement\")\n }\n if (this.options.ecmaVersion >= 6) {\n prop.method = false;\n prop.shorthand = false;\n if (isPattern || refDestructuringErrors) {\n startPos = this.start;\n startLoc = this.startLoc;\n }\n if (!isPattern)\n { isGenerator = this.eat(types$1.star); }\n }\n var containsEsc = this.containsEsc;\n this.parsePropertyName(prop);\n if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) {\n isAsync = true;\n isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star);\n this.parsePropertyName(prop);\n } else {\n isAsync = false;\n }\n this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc);\n return this.finishNode(prop, \"Property\")\n};\n\npp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) {\n if ((isGenerator || isAsync) && this.type === types$1.colon)\n { this.unexpected(); }\n\n if (this.eat(types$1.colon)) {\n prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors);\n prop.kind = \"init\";\n } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) {\n if (isPattern) { this.unexpected(); }\n prop.kind = \"init\";\n prop.method = true;\n prop.value = this.parseMethod(isGenerator, isAsync);\n } else if (!isPattern && !containsEsc &&\n this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === \"Identifier\" &&\n (prop.key.name === \"get\" || prop.key.name === \"set\") &&\n (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) {\n if (isGenerator || isAsync) { this.unexpected(); }\n prop.kind = prop.key.name;\n this.parsePropertyName(prop);\n prop.value = this.parseMethod(false);\n var paramCount = prop.kind === \"get\" ? 0 : 1;\n if (prop.value.params.length !== paramCount) {\n var start = prop.value.start;\n if (prop.kind === \"get\")\n { this.raiseRecoverable(start, \"getter should have no params\"); }\n else\n { this.raiseRecoverable(start, \"setter should have exactly one param\"); }\n } else {\n if (prop.kind === \"set\" && prop.value.params[0].type === \"RestElement\")\n { this.raiseRecoverable(prop.value.params[0].start, \"Setter cannot use rest params\"); }\n }\n } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === \"Identifier\") {\n if (isGenerator || isAsync) { this.unexpected(); }\n this.checkUnreserved(prop.key);\n if (prop.key.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = startPos; }\n prop.kind = \"init\";\n if (isPattern) {\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else if (this.type === types$1.eq && refDestructuringErrors) {\n if (refDestructuringErrors.shorthandAssign < 0)\n { refDestructuringErrors.shorthandAssign = this.start; }\n prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key));\n } else {\n prop.value = this.copyNode(prop.key);\n }\n prop.shorthand = true;\n } else { this.unexpected(); }\n};\n\npp$5.parsePropertyName = function(prop) {\n if (this.options.ecmaVersion >= 6) {\n if (this.eat(types$1.bracketL)) {\n prop.computed = true;\n prop.key = this.parseMaybeAssign();\n this.expect(types$1.bracketR);\n return prop.key\n } else {\n prop.computed = false;\n }\n }\n return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== \"never\")\n};\n\n// Initialize empty function node.\n\npp$5.initFunction = function(node) {\n node.id = null;\n if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; }\n if (this.options.ecmaVersion >= 8) { node.async = false; }\n};\n\n// Parse object or class method.\n\npp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) {\n var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.initFunction(node);\n if (this.options.ecmaVersion >= 6)\n { node.generator = isGenerator; }\n if (this.options.ecmaVersion >= 8)\n { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0));\n\n this.expect(types$1.parenL);\n node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8);\n this.checkYieldAwaitInDefaultParams();\n this.parseFunctionBody(node, false, true, false);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"FunctionExpression\")\n};\n\n// Parse arrow function expression with given parameters.\n\npp$5.parseArrowExpression = function(node, params, isAsync, forInit) {\n var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos;\n\n this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW);\n this.initFunction(node);\n if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; }\n\n this.yieldPos = 0;\n this.awaitPos = 0;\n this.awaitIdentPos = 0;\n\n node.params = this.toAssignableList(params, true);\n this.parseFunctionBody(node, true, false, forInit);\n\n this.yieldPos = oldYieldPos;\n this.awaitPos = oldAwaitPos;\n this.awaitIdentPos = oldAwaitIdentPos;\n return this.finishNode(node, \"ArrowFunctionExpression\")\n};\n\n// Parse function body and check parameters.\n\npp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) {\n var isExpression = isArrowFunction && this.type !== types$1.braceL;\n var oldStrict = this.strict, useStrict = false;\n\n if (isExpression) {\n node.body = this.parseMaybeAssign(forInit);\n node.expression = true;\n this.checkParams(node, false);\n } else {\n var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params);\n if (!oldStrict || nonSimple) {\n useStrict = this.strictDirective(this.end);\n // If this is a strict mode function, verify that argument names\n // are not repeated, and it does not try to bind the words `eval`\n // or `arguments`.\n if (useStrict && nonSimple)\n { this.raiseRecoverable(node.start, \"Illegal 'use strict' directive in function with non-simple parameter list\"); }\n }\n // Start a new scope with regard to labels and the `inFunction`\n // flag (restore them to their old value afterwards).\n var oldLabels = this.labels;\n this.labels = [];\n if (useStrict) { this.strict = true; }\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params));\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.strict && node.id) { this.checkLValSimple(node.id, BIND_OUTSIDE); }\n node.body = this.parseBlock(false, undefined, useStrict && !oldStrict);\n node.expression = false;\n this.adaptDirectivePrologue(node.body.body);\n this.labels = oldLabels;\n }\n this.exitScope();\n};\n\npp$5.isSimpleParamList = function(params) {\n for (var i = 0, list = params; i < list.length; i += 1)\n {\n var param = list[i];\n\n if (param.type !== \"Identifier\") { return false\n } }\n return true\n};\n\n// Checks function params for various disallowed patterns such as using \"eval\"\n// or \"arguments\" and duplicate parameters.\n\npp$5.checkParams = function(node, allowDuplicates) {\n var nameHash = Object.create(null);\n for (var i = 0, list = node.params; i < list.length; i += 1)\n {\n var param = list[i];\n\n this.checkLValInnerPattern(param, BIND_VAR, allowDuplicates ? null : nameHash);\n }\n};\n\n// Parses a comma-separated list of expressions, and returns them as\n// an array. `close` is the token type that ends the list, and\n// `allowEmpty` can be turned on to allow subsequent commas with\n// nothing in between them to be parsed as `null` (which is needed\n// for array literals).\n\npp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) {\n var elts = [], first = true;\n while (!this.eat(close)) {\n if (!first) {\n this.expect(types$1.comma);\n if (allowTrailingComma && this.afterTrailingComma(close)) { break }\n } else { first = false; }\n\n var elt = (void 0);\n if (allowEmpty && this.type === types$1.comma)\n { elt = null; }\n else if (this.type === types$1.ellipsis) {\n elt = this.parseSpread(refDestructuringErrors);\n if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0)\n { refDestructuringErrors.trailingComma = this.start; }\n } else {\n elt = this.parseMaybeAssign(false, refDestructuringErrors);\n }\n elts.push(elt);\n }\n return elts\n};\n\npp$5.checkUnreserved = function(ref) {\n var start = ref.start;\n var end = ref.end;\n var name = ref.name;\n\n if (this.inGenerator && name === \"yield\")\n { this.raiseRecoverable(start, \"Cannot use 'yield' as identifier inside a generator\"); }\n if (this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use 'await' as identifier inside an async function\"); }\n if (this.currentThisScope().inClassFieldInit && name === \"arguments\")\n { this.raiseRecoverable(start, \"Cannot use 'arguments' in class field initializer\"); }\n if (this.inClassStaticBlock && (name === \"arguments\" || name === \"await\"))\n { this.raise(start, (\"Cannot use \" + name + \" in class static initialization block\")); }\n if (this.keywords.test(name))\n { this.raise(start, (\"Unexpected keyword '\" + name + \"'\")); }\n if (this.options.ecmaVersion < 6 &&\n this.input.slice(start, end).indexOf(\"\\\\\") !== -1) { return }\n var re = this.strict ? this.reservedWordsStrict : this.reservedWords;\n if (re.test(name)) {\n if (!this.inAsync && name === \"await\")\n { this.raiseRecoverable(start, \"Cannot use keyword 'await' outside an async function\"); }\n this.raiseRecoverable(start, (\"The keyword '\" + name + \"' is reserved\"));\n }\n};\n\n// Parse the next token as an identifier. If `liberal` is true (used\n// when parsing properties), it will also convert keywords into\n// identifiers.\n\npp$5.parseIdent = function(liberal) {\n var node = this.startNode();\n if (this.type === types$1.name) {\n node.name = this.value;\n } else if (this.type.keyword) {\n node.name = this.type.keyword;\n\n // To fix https://github.com/acornjs/acorn/issues/575\n // `class` and `function` keywords push new context into this.context.\n // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name.\n // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword\n if ((node.name === \"class\" || node.name === \"function\") &&\n (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) {\n this.context.pop();\n }\n } else {\n this.unexpected();\n }\n this.next(!!liberal);\n this.finishNode(node, \"Identifier\");\n if (!liberal) {\n this.checkUnreserved(node);\n if (node.name === \"await\" && !this.awaitIdentPos)\n { this.awaitIdentPos = node.start; }\n }\n return node\n};\n\npp$5.parsePrivateIdent = function() {\n var node = this.startNode();\n if (this.type === types$1.privateId) {\n node.name = this.value;\n } else {\n this.unexpected();\n }\n this.next();\n this.finishNode(node, \"PrivateIdentifier\");\n\n // For validating existence\n if (this.privateNameStack.length === 0) {\n this.raise(node.start, (\"Private field '#\" + (node.name) + \"' must be declared in an enclosing class\"));\n } else {\n this.privateNameStack[this.privateNameStack.length - 1].used.push(node);\n }\n\n return node\n};\n\n// Parses yield expression inside generator.\n\npp$5.parseYield = function(forInit) {\n if (!this.yieldPos) { this.yieldPos = this.start; }\n\n var node = this.startNode();\n this.next();\n if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) {\n node.delegate = false;\n node.argument = null;\n } else {\n node.delegate = this.eat(types$1.star);\n node.argument = this.parseMaybeAssign(forInit);\n }\n return this.finishNode(node, \"YieldExpression\")\n};\n\npp$5.parseAwait = function(forInit) {\n if (!this.awaitPos) { this.awaitPos = this.start; }\n\n var node = this.startNode();\n this.next();\n node.argument = this.parseMaybeUnary(null, true, false, forInit);\n return this.finishNode(node, \"AwaitExpression\")\n};\n\nvar pp$4 = Parser.prototype;\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\npp$4.raise = function(pos, message) {\n var loc = getLineInfo(this.input, pos);\n message += \" (\" + loc.line + \":\" + loc.column + \")\";\n var err = new SyntaxError(message);\n err.pos = pos; err.loc = loc; err.raisedAt = this.pos;\n throw err\n};\n\npp$4.raiseRecoverable = pp$4.raise;\n\npp$4.curPosition = function() {\n if (this.options.locations) {\n return new Position(this.curLine, this.pos - this.lineStart)\n }\n};\n\nvar pp$3 = Parser.prototype;\n\nvar Scope = function Scope(flags) {\n this.flags = flags;\n // A list of var-declared names in the current lexical scope\n this.var = [];\n // A list of lexically-declared names in the current lexical scope\n this.lexical = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n this.functions = [];\n // A switch to disallow the identifier reference 'arguments'\n this.inClassFieldInit = false;\n};\n\n// The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names.\n\npp$3.enterScope = function(flags) {\n this.scopeStack.push(new Scope(flags));\n};\n\npp$3.exitScope = function() {\n this.scopeStack.pop();\n};\n\n// The spec says:\n// > At the top level of a function, or script, function declarations are\n// > treated like var declarations rather than like lexical declarations.\npp$3.treatFunctionsAsVarInScope = function(scope) {\n return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP)\n};\n\npp$3.declareName = function(name, bindingType, pos) {\n var redeclared = false;\n if (bindingType === BIND_LEXICAL) {\n var scope = this.currentScope();\n redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1;\n scope.lexical.push(name);\n if (this.inModule && (scope.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n } else if (bindingType === BIND_SIMPLE_CATCH) {\n var scope$1 = this.currentScope();\n scope$1.lexical.push(name);\n } else if (bindingType === BIND_FUNCTION) {\n var scope$2 = this.currentScope();\n if (this.treatFunctionsAsVar)\n { redeclared = scope$2.lexical.indexOf(name) > -1; }\n else\n { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; }\n scope$2.functions.push(name);\n } else {\n for (var i = this.scopeStack.length - 1; i >= 0; --i) {\n var scope$3 = this.scopeStack[i];\n if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) ||\n !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) {\n redeclared = true;\n break\n }\n scope$3.var.push(name);\n if (this.inModule && (scope$3.flags & SCOPE_TOP))\n { delete this.undefinedExports[name]; }\n if (scope$3.flags & SCOPE_VAR) { break }\n }\n }\n if (redeclared) { this.raiseRecoverable(pos, (\"Identifier '\" + name + \"' has already been declared\")); }\n};\n\npp$3.checkLocalExport = function(id) {\n // scope.functions must be empty as Module code is always strict.\n if (this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1) {\n this.undefinedExports[id.name] = id;\n }\n};\n\npp$3.currentScope = function() {\n return this.scopeStack[this.scopeStack.length - 1]\n};\n\npp$3.currentVarScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR) { return scope }\n }\n};\n\n// Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\npp$3.currentThisScope = function() {\n for (var i = this.scopeStack.length - 1;; i--) {\n var scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope }\n }\n};\n\nvar Node = function Node(parser, pos, loc) {\n this.type = \"\";\n this.start = pos;\n this.end = 0;\n if (parser.options.locations)\n { this.loc = new SourceLocation(parser, loc); }\n if (parser.options.directSourceFile)\n { this.sourceFile = parser.options.directSourceFile; }\n if (parser.options.ranges)\n { this.range = [pos, 0]; }\n};\n\n// Start an AST node, attaching a start offset.\n\nvar pp$2 = Parser.prototype;\n\npp$2.startNode = function() {\n return new Node(this, this.start, this.startLoc)\n};\n\npp$2.startNodeAt = function(pos, loc) {\n return new Node(this, pos, loc)\n};\n\n// Finish an AST node, adding `type` and `end` properties.\n\nfunction finishNodeAt(node, type, pos, loc) {\n node.type = type;\n node.end = pos;\n if (this.options.locations)\n { node.loc.end = loc; }\n if (this.options.ranges)\n { node.range[1] = pos; }\n return node\n}\n\npp$2.finishNode = function(node, type) {\n return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc)\n};\n\n// Finish node at given position\n\npp$2.finishNodeAt = function(node, type, pos, loc) {\n return finishNodeAt.call(this, node, type, pos, loc)\n};\n\npp$2.copyNode = function(node) {\n var newNode = new Node(this, node.start, this.startLoc);\n for (var prop in node) { newNode[prop] = node[prop]; }\n return newNode\n};\n\n// This file contains Unicode properties extracted from the ECMAScript specification.\n// The lists are extracted like so:\n// $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText)\n\n// #table-binary-unicode-properties\nvar ecma9BinaryProperties = \"ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS\";\nvar ecma10BinaryProperties = ecma9BinaryProperties + \" Extended_Pictographic\";\nvar ecma11BinaryProperties = ecma10BinaryProperties;\nvar ecma12BinaryProperties = ecma11BinaryProperties + \" EBase EComp EMod EPres ExtPict\";\nvar ecma13BinaryProperties = ecma12BinaryProperties;\nvar ecma14BinaryProperties = ecma13BinaryProperties;\n\nvar unicodeBinaryProperties = {\n 9: ecma9BinaryProperties,\n 10: ecma10BinaryProperties,\n 11: ecma11BinaryProperties,\n 12: ecma12BinaryProperties,\n 13: ecma13BinaryProperties,\n 14: ecma14BinaryProperties\n};\n\n// #table-unicode-general-category-values\nvar unicodeGeneralCategoryValues = \"Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu\";\n\n// #table-unicode-script-values\nvar ecma9ScriptValues = \"Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb\";\nvar ecma10ScriptValues = ecma9ScriptValues + \" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd\";\nvar ecma11ScriptValues = ecma10ScriptValues + \" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho\";\nvar ecma12ScriptValues = ecma11ScriptValues + \" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi\";\nvar ecma13ScriptValues = ecma12ScriptValues + \" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith\";\nvar ecma14ScriptValues = ecma13ScriptValues + \" Kawi Nag_Mundari Nagm\";\n\nvar unicodeScriptValues = {\n 9: ecma9ScriptValues,\n 10: ecma10ScriptValues,\n 11: ecma11ScriptValues,\n 12: ecma12ScriptValues,\n 13: ecma13ScriptValues,\n 14: ecma14ScriptValues\n};\n\nvar data = {};\nfunction buildUnicodeData(ecmaVersion) {\n var d = data[ecmaVersion] = {\n binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + \" \" + unicodeGeneralCategoryValues),\n nonBinary: {\n General_Category: wordsRegexp(unicodeGeneralCategoryValues),\n Script: wordsRegexp(unicodeScriptValues[ecmaVersion])\n }\n };\n d.nonBinary.Script_Extensions = d.nonBinary.Script;\n\n d.nonBinary.gc = d.nonBinary.General_Category;\n d.nonBinary.sc = d.nonBinary.Script;\n d.nonBinary.scx = d.nonBinary.Script_Extensions;\n}\n\nfor (var i = 0, list = [9, 10, 11, 12, 13, 14]; i < list.length; i += 1) {\n var ecmaVersion = list[i];\n\n buildUnicodeData(ecmaVersion);\n}\n\nvar pp$1 = Parser.prototype;\n\nvar RegExpValidationState = function RegExpValidationState(parser) {\n this.parser = parser;\n this.validFlags = \"gim\" + (parser.options.ecmaVersion >= 6 ? \"uy\" : \"\") + (parser.options.ecmaVersion >= 9 ? \"s\" : \"\") + (parser.options.ecmaVersion >= 13 ? \"d\" : \"\");\n this.unicodeProperties = data[parser.options.ecmaVersion >= 14 ? 14 : parser.options.ecmaVersion];\n this.source = \"\";\n this.flags = \"\";\n this.start = 0;\n this.switchU = false;\n this.switchN = false;\n this.pos = 0;\n this.lastIntValue = 0;\n this.lastStringValue = \"\";\n this.lastAssertionIsQuantifiable = false;\n this.numCapturingParens = 0;\n this.maxBackReference = 0;\n this.groupNames = [];\n this.backReferenceNames = [];\n};\n\nRegExpValidationState.prototype.reset = function reset (start, pattern, flags) {\n var unicode = flags.indexOf(\"u\") !== -1;\n this.start = start | 0;\n this.source = pattern + \"\";\n this.flags = flags;\n this.switchU = unicode && this.parser.options.ecmaVersion >= 6;\n this.switchN = unicode && this.parser.options.ecmaVersion >= 9;\n};\n\nRegExpValidationState.prototype.raise = function raise (message) {\n this.parser.raiseRecoverable(this.start, (\"Invalid regular expression: /\" + (this.source) + \"/: \" + message));\n};\n\n// If u flag is given, this returns the code point at the index (it combines a surrogate pair).\n// Otherwise, this returns the code unit of the index (can be a part of a surrogate pair).\nRegExpValidationState.prototype.at = function at (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return -1\n }\n var c = s.charCodeAt(i);\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) {\n return c\n }\n var next = s.charCodeAt(i + 1);\n return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c\n};\n\nRegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var s = this.source;\n var l = s.length;\n if (i >= l) {\n return l\n }\n var c = s.charCodeAt(i), next;\n if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l ||\n (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) {\n return i + 1\n }\n return i + 2\n};\n\nRegExpValidationState.prototype.current = function current (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.pos, forceU)\n};\n\nRegExpValidationState.prototype.lookahead = function lookahead (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n return this.at(this.nextIndex(this.pos, forceU), forceU)\n};\n\nRegExpValidationState.prototype.advance = function advance (forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n this.pos = this.nextIndex(this.pos, forceU);\n};\n\nRegExpValidationState.prototype.eat = function eat (ch, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n if (this.current(forceU) === ch) {\n this.advance(forceU);\n return true\n }\n return false\n};\n\n/**\n * Validate the flags part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpFlags = function(state) {\n var validFlags = state.validFlags;\n var flags = state.flags;\n\n for (var i = 0; i < flags.length; i++) {\n var flag = flags.charAt(i);\n if (validFlags.indexOf(flag) === -1) {\n this.raise(state.start, \"Invalid regular expression flag\");\n }\n if (flags.indexOf(flag, i + 1) > -1) {\n this.raise(state.start, \"Duplicate regular expression flag\");\n }\n }\n};\n\n/**\n * Validate the pattern part of a given RegExpLiteral.\n *\n * @param {RegExpValidationState} state The state to validate RegExp.\n * @returns {void}\n */\npp$1.validateRegExpPattern = function(state) {\n this.regexp_pattern(state);\n\n // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of\n // parsing contains a |GroupName|, reparse with the goal symbol\n // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError*\n // exception if _P_ did not conform to the grammar, if any elements of _P_\n // were not matched by the parse, or if any Early Error conditions exist.\n if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) {\n state.switchN = true;\n this.regexp_pattern(state);\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern\npp$1.regexp_pattern = function(state) {\n state.pos = 0;\n state.lastIntValue = 0;\n state.lastStringValue = \"\";\n state.lastAssertionIsQuantifiable = false;\n state.numCapturingParens = 0;\n state.maxBackReference = 0;\n state.groupNames.length = 0;\n state.backReferenceNames.length = 0;\n\n this.regexp_disjunction(state);\n\n if (state.pos !== state.source.length) {\n // Make the same messages as V8.\n if (state.eat(0x29 /* ) */)) {\n state.raise(\"Unmatched ')'\");\n }\n if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n }\n if (state.maxBackReference > state.numCapturingParens) {\n state.raise(\"Invalid escape\");\n }\n for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) {\n var name = list[i];\n\n if (state.groupNames.indexOf(name) === -1) {\n state.raise(\"Invalid named capture referenced\");\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction\npp$1.regexp_disjunction = function(state) {\n this.regexp_alternative(state);\n while (state.eat(0x7C /* | */)) {\n this.regexp_alternative(state);\n }\n\n // Make the same message as V8.\n if (this.regexp_eatQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n if (state.eat(0x7B /* { */)) {\n state.raise(\"Lone quantifier brackets\");\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative\npp$1.regexp_alternative = function(state) {\n while (state.pos < state.source.length && this.regexp_eatTerm(state))\n { }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term\npp$1.regexp_eatTerm = function(state) {\n if (this.regexp_eatAssertion(state)) {\n // Handle `QuantifiableAssertion Quantifier` alternative.\n // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion\n // is a QuantifiableAssertion.\n if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) {\n // Make the same message as V8.\n if (state.switchU) {\n state.raise(\"Invalid quantifier\");\n }\n }\n return true\n }\n\n if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) {\n this.regexp_eatQuantifier(state);\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion\npp$1.regexp_eatAssertion = function(state) {\n var start = state.pos;\n state.lastAssertionIsQuantifiable = false;\n\n // ^, $\n if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) {\n return true\n }\n\n // \\b \\B\n if (state.eat(0x5C /* \\ */)) {\n if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) {\n return true\n }\n state.pos = start;\n }\n\n // Lookahead / Lookbehind\n if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) {\n var lookbehind = false;\n if (this.options.ecmaVersion >= 9) {\n lookbehind = state.eat(0x3C /* < */);\n }\n if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) {\n this.regexp_disjunction(state);\n if (!state.eat(0x29 /* ) */)) {\n state.raise(\"Unterminated group\");\n }\n state.lastAssertionIsQuantifiable = !lookbehind;\n return true\n }\n }\n\n state.pos = start;\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier\npp$1.regexp_eatQuantifier = function(state, noError) {\n if ( noError === void 0 ) noError = false;\n\n if (this.regexp_eatQuantifierPrefix(state, noError)) {\n state.eat(0x3F /* ? */);\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix\npp$1.regexp_eatQuantifierPrefix = function(state, noError) {\n return (\n state.eat(0x2A /* * */) ||\n state.eat(0x2B /* + */) ||\n state.eat(0x3F /* ? */) ||\n this.regexp_eatBracedQuantifier(state, noError)\n )\n};\npp$1.regexp_eatBracedQuantifier = function(state, noError) {\n var start = state.pos;\n if (state.eat(0x7B /* { */)) {\n var min = 0, max = -1;\n if (this.regexp_eatDecimalDigits(state)) {\n min = state.lastIntValue;\n if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) {\n max = state.lastIntValue;\n }\n if (state.eat(0x7D /* } */)) {\n // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term\n if (max !== -1 && max < min && !noError) {\n state.raise(\"numbers out of order in {} quantifier\");\n }\n return true\n }\n }\n if (state.switchU && !noError) {\n state.raise(\"Incomplete quantifier\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Atom\npp$1.regexp_eatAtom = function(state) {\n return (\n this.regexp_eatPatternCharacters(state) ||\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state)\n )\n};\npp$1.regexp_eatReverseSolidusAtomEscape = function(state) {\n var start = state.pos;\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatAtomEscape(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatUncapturingGroup = function(state) {\n var start = state.pos;\n if (state.eat(0x28 /* ( */)) {\n if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) {\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n return true\n }\n state.raise(\"Unterminated group\");\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatCapturingGroup = function(state) {\n if (state.eat(0x28 /* ( */)) {\n if (this.options.ecmaVersion >= 9) {\n this.regexp_groupSpecifier(state);\n } else if (state.current() === 0x3F /* ? */) {\n state.raise(\"Invalid group\");\n }\n this.regexp_disjunction(state);\n if (state.eat(0x29 /* ) */)) {\n state.numCapturingParens += 1;\n return true\n }\n state.raise(\"Unterminated group\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom\npp$1.regexp_eatExtendedAtom = function(state) {\n return (\n state.eat(0x2E /* . */) ||\n this.regexp_eatReverseSolidusAtomEscape(state) ||\n this.regexp_eatCharacterClass(state) ||\n this.regexp_eatUncapturingGroup(state) ||\n this.regexp_eatCapturingGroup(state) ||\n this.regexp_eatInvalidBracedQuantifier(state) ||\n this.regexp_eatExtendedPatternCharacter(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier\npp$1.regexp_eatInvalidBracedQuantifier = function(state) {\n if (this.regexp_eatBracedQuantifier(state, true)) {\n state.raise(\"Nothing to repeat\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter\npp$1.regexp_eatSyntaxCharacter = function(state) {\n var ch = state.current();\n if (isSyntaxCharacter(ch)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n return false\n};\nfunction isSyntaxCharacter(ch) {\n return (\n ch === 0x24 /* $ */ ||\n ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ ||\n ch === 0x2E /* . */ ||\n ch === 0x3F /* ? */ ||\n ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ ||\n ch >= 0x7B /* { */ && ch <= 0x7D /* } */\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter\n// But eat eager.\npp$1.regexp_eatPatternCharacters = function(state) {\n var start = state.pos;\n var ch = 0;\n while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) {\n state.advance();\n }\n return state.pos !== start\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter\npp$1.regexp_eatExtendedPatternCharacter = function(state) {\n var ch = state.current();\n if (\n ch !== -1 &&\n ch !== 0x24 /* $ */ &&\n !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) &&\n ch !== 0x2E /* . */ &&\n ch !== 0x3F /* ? */ &&\n ch !== 0x5B /* [ */ &&\n ch !== 0x5E /* ^ */ &&\n ch !== 0x7C /* | */\n ) {\n state.advance();\n return true\n }\n return false\n};\n\n// GroupSpecifier ::\n// [empty]\n// `?` GroupName\npp$1.regexp_groupSpecifier = function(state) {\n if (state.eat(0x3F /* ? */)) {\n if (this.regexp_eatGroupName(state)) {\n if (state.groupNames.indexOf(state.lastStringValue) !== -1) {\n state.raise(\"Duplicate capture group name\");\n }\n state.groupNames.push(state.lastStringValue);\n return\n }\n state.raise(\"Invalid group\");\n }\n};\n\n// GroupName ::\n// `<` RegExpIdentifierName `>`\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatGroupName = function(state) {\n state.lastStringValue = \"\";\n if (state.eat(0x3C /* < */)) {\n if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) {\n return true\n }\n state.raise(\"Invalid capture group name\");\n }\n return false\n};\n\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierPart\n// Note: this updates `state.lastStringValue` property with the eaten name.\npp$1.regexp_eatRegExpIdentifierName = function(state) {\n state.lastStringValue = \"\";\n if (this.regexp_eatRegExpIdentifierStart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n while (this.regexp_eatRegExpIdentifierPart(state)) {\n state.lastStringValue += codePointToString(state.lastIntValue);\n }\n return true\n }\n return false\n};\n\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\npp$1.regexp_eatRegExpIdentifierStart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierStart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierStart(ch) {\n return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */\n}\n\n// RegExpIdentifierPart ::\n// UnicodeIDContinue\n// `$`\n// `_`\n// `\\` RegExpUnicodeEscapeSequence[+U]\n// <ZWNJ>\n// <ZWJ>\npp$1.regexp_eatRegExpIdentifierPart = function(state) {\n var start = state.pos;\n var forceU = this.options.ecmaVersion >= 11;\n var ch = state.current(forceU);\n state.advance(forceU);\n\n if (ch === 0x5C /* \\ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) {\n ch = state.lastIntValue;\n }\n if (isRegExpIdentifierPart(ch)) {\n state.lastIntValue = ch;\n return true\n }\n\n state.pos = start;\n return false\n};\nfunction isRegExpIdentifierPart(ch) {\n return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* <ZWNJ> */ || ch === 0x200D /* <ZWJ> */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape\npp$1.regexp_eatAtomEscape = function(state) {\n if (\n this.regexp_eatBackReference(state) ||\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state) ||\n (state.switchN && this.regexp_eatKGroupName(state))\n ) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n if (state.current() === 0x63 /* c */) {\n state.raise(\"Invalid unicode escape\");\n }\n state.raise(\"Invalid escape\");\n }\n return false\n};\npp$1.regexp_eatBackReference = function(state) {\n var start = state.pos;\n if (this.regexp_eatDecimalEscape(state)) {\n var n = state.lastIntValue;\n if (state.switchU) {\n // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape\n if (n > state.maxBackReference) {\n state.maxBackReference = n;\n }\n return true\n }\n if (n <= state.numCapturingParens) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatKGroupName = function(state) {\n if (state.eat(0x6B /* k */)) {\n if (this.regexp_eatGroupName(state)) {\n state.backReferenceNames.push(state.lastStringValue);\n return true\n }\n state.raise(\"Invalid named reference\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape\npp$1.regexp_eatCharacterEscape = function(state) {\n return (\n this.regexp_eatControlEscape(state) ||\n this.regexp_eatCControlLetter(state) ||\n this.regexp_eatZero(state) ||\n this.regexp_eatHexEscapeSequence(state) ||\n this.regexp_eatRegExpUnicodeEscapeSequence(state, false) ||\n (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) ||\n this.regexp_eatIdentityEscape(state)\n )\n};\npp$1.regexp_eatCControlLetter = function(state) {\n var start = state.pos;\n if (state.eat(0x63 /* c */)) {\n if (this.regexp_eatControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n return false\n};\npp$1.regexp_eatZero = function(state) {\n if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) {\n state.lastIntValue = 0;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape\npp$1.regexp_eatControlEscape = function(state) {\n var ch = state.current();\n if (ch === 0x74 /* t */) {\n state.lastIntValue = 0x09; /* \\t */\n state.advance();\n return true\n }\n if (ch === 0x6E /* n */) {\n state.lastIntValue = 0x0A; /* \\n */\n state.advance();\n return true\n }\n if (ch === 0x76 /* v */) {\n state.lastIntValue = 0x0B; /* \\v */\n state.advance();\n return true\n }\n if (ch === 0x66 /* f */) {\n state.lastIntValue = 0x0C; /* \\f */\n state.advance();\n return true\n }\n if (ch === 0x72 /* r */) {\n state.lastIntValue = 0x0D; /* \\r */\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter\npp$1.regexp_eatControlLetter = function(state) {\n var ch = state.current();\n if (isControlLetter(ch)) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\nfunction isControlLetter(ch) {\n return (\n (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) ||\n (ch >= 0x61 /* a */ && ch <= 0x7A /* z */)\n )\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence\npp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) {\n if ( forceU === void 0 ) forceU = false;\n\n var start = state.pos;\n var switchU = forceU || state.switchU;\n\n if (state.eat(0x75 /* u */)) {\n if (this.regexp_eatFixedHexDigits(state, 4)) {\n var lead = state.lastIntValue;\n if (switchU && lead >= 0xD800 && lead <= 0xDBFF) {\n var leadSurrogateEnd = state.pos;\n if (state.eat(0x5C /* \\ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) {\n var trail = state.lastIntValue;\n if (trail >= 0xDC00 && trail <= 0xDFFF) {\n state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000;\n return true\n }\n }\n state.pos = leadSurrogateEnd;\n state.lastIntValue = lead;\n }\n return true\n }\n if (\n switchU &&\n state.eat(0x7B /* { */) &&\n this.regexp_eatHexDigits(state) &&\n state.eat(0x7D /* } */) &&\n isValidUnicode(state.lastIntValue)\n ) {\n return true\n }\n if (switchU) {\n state.raise(\"Invalid unicode escape\");\n }\n state.pos = start;\n }\n\n return false\n};\nfunction isValidUnicode(ch) {\n return ch >= 0 && ch <= 0x10FFFF\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape\npp$1.regexp_eatIdentityEscape = function(state) {\n if (state.switchU) {\n if (this.regexp_eatSyntaxCharacter(state)) {\n return true\n }\n if (state.eat(0x2F /* / */)) {\n state.lastIntValue = 0x2F; /* / */\n return true\n }\n return false\n }\n\n var ch = state.current();\n if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape\npp$1.regexp_eatDecimalEscape = function(state) {\n state.lastIntValue = 0;\n var ch = state.current();\n if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) {\n do {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */)\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape\npp$1.regexp_eatCharacterClassEscape = function(state) {\n var ch = state.current();\n\n if (isCharacterClassEscape(ch)) {\n state.lastIntValue = -1;\n state.advance();\n return true\n }\n\n if (\n state.switchU &&\n this.options.ecmaVersion >= 9 &&\n (ch === 0x50 /* P */ || ch === 0x70 /* p */)\n ) {\n state.lastIntValue = -1;\n state.advance();\n if (\n state.eat(0x7B /* { */) &&\n this.regexp_eatUnicodePropertyValueExpression(state) &&\n state.eat(0x7D /* } */)\n ) {\n return true\n }\n state.raise(\"Invalid property name\");\n }\n\n return false\n};\nfunction isCharacterClassEscape(ch) {\n return (\n ch === 0x64 /* d */ ||\n ch === 0x44 /* D */ ||\n ch === 0x73 /* s */ ||\n ch === 0x53 /* S */ ||\n ch === 0x77 /* w */ ||\n ch === 0x57 /* W */\n )\n}\n\n// UnicodePropertyValueExpression ::\n// UnicodePropertyName `=` UnicodePropertyValue\n// LoneUnicodePropertyNameOrValue\npp$1.regexp_eatUnicodePropertyValueExpression = function(state) {\n var start = state.pos;\n\n // UnicodePropertyName `=` UnicodePropertyValue\n if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) {\n var name = state.lastStringValue;\n if (this.regexp_eatUnicodePropertyValue(state)) {\n var value = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameAndValue(state, name, value);\n return true\n }\n }\n state.pos = start;\n\n // LoneUnicodePropertyNameOrValue\n if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) {\n var nameOrValue = state.lastStringValue;\n this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue);\n return true\n }\n return false\n};\npp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {\n if (!hasOwn(state.unicodeProperties.nonBinary, name))\n { state.raise(\"Invalid property name\"); }\n if (!state.unicodeProperties.nonBinary[name].test(value))\n { state.raise(\"Invalid property value\"); }\n};\npp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) {\n if (!state.unicodeProperties.binary.test(nameOrValue))\n { state.raise(\"Invalid property name\"); }\n};\n\n// UnicodePropertyName ::\n// UnicodePropertyNameCharacters\npp$1.regexp_eatUnicodePropertyName = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyNameCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyNameCharacter(ch) {\n return isControlLetter(ch) || ch === 0x5F /* _ */\n}\n\n// UnicodePropertyValue ::\n// UnicodePropertyValueCharacters\npp$1.regexp_eatUnicodePropertyValue = function(state) {\n var ch = 0;\n state.lastStringValue = \"\";\n while (isUnicodePropertyValueCharacter(ch = state.current())) {\n state.lastStringValue += codePointToString(ch);\n state.advance();\n }\n return state.lastStringValue !== \"\"\n};\nfunction isUnicodePropertyValueCharacter(ch) {\n return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch)\n}\n\n// LoneUnicodePropertyNameOrValue ::\n// UnicodePropertyValueCharacters\npp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) {\n return this.regexp_eatUnicodePropertyValue(state)\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass\npp$1.regexp_eatCharacterClass = function(state) {\n if (state.eat(0x5B /* [ */)) {\n state.eat(0x5E /* ^ */);\n this.regexp_classRanges(state);\n if (state.eat(0x5D /* ] */)) {\n return true\n }\n // Unreachable since it threw \"unterminated regular expression\" error before.\n state.raise(\"Unterminated character class\");\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges\n// https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash\npp$1.regexp_classRanges = function(state) {\n while (this.regexp_eatClassAtom(state)) {\n var left = state.lastIntValue;\n if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) {\n var right = state.lastIntValue;\n if (state.switchU && (left === -1 || right === -1)) {\n state.raise(\"Invalid character class\");\n }\n if (left !== -1 && right !== -1 && left > right) {\n state.raise(\"Range out of order in character class\");\n }\n }\n }\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom\n// https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash\npp$1.regexp_eatClassAtom = function(state) {\n var start = state.pos;\n\n if (state.eat(0x5C /* \\ */)) {\n if (this.regexp_eatClassEscape(state)) {\n return true\n }\n if (state.switchU) {\n // Make the same message as V8.\n var ch$1 = state.current();\n if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) {\n state.raise(\"Invalid class escape\");\n }\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n\n var ch = state.current();\n if (ch !== 0x5D /* ] */) {\n state.lastIntValue = ch;\n state.advance();\n return true\n }\n\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape\npp$1.regexp_eatClassEscape = function(state) {\n var start = state.pos;\n\n if (state.eat(0x62 /* b */)) {\n state.lastIntValue = 0x08; /* <BS> */\n return true\n }\n\n if (state.switchU && state.eat(0x2D /* - */)) {\n state.lastIntValue = 0x2D; /* - */\n return true\n }\n\n if (!state.switchU && state.eat(0x63 /* c */)) {\n if (this.regexp_eatClassControlLetter(state)) {\n return true\n }\n state.pos = start;\n }\n\n return (\n this.regexp_eatCharacterClassEscape(state) ||\n this.regexp_eatCharacterEscape(state)\n )\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter\npp$1.regexp_eatClassControlLetter = function(state) {\n var ch = state.current();\n if (isDecimalDigit(ch) || ch === 0x5F /* _ */) {\n state.lastIntValue = ch % 0x20;\n state.advance();\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatHexEscapeSequence = function(state) {\n var start = state.pos;\n if (state.eat(0x78 /* x */)) {\n if (this.regexp_eatFixedHexDigits(state, 2)) {\n return true\n }\n if (state.switchU) {\n state.raise(\"Invalid escape\");\n }\n state.pos = start;\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits\npp$1.regexp_eatDecimalDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isDecimalDigit(ch = state.current())) {\n state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isDecimalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits\npp$1.regexp_eatHexDigits = function(state) {\n var start = state.pos;\n var ch = 0;\n state.lastIntValue = 0;\n while (isHexDigit(ch = state.current())) {\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return state.pos !== start\n};\nfunction isHexDigit(ch) {\n return (\n (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) ||\n (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) ||\n (ch >= 0x61 /* a */ && ch <= 0x66 /* f */)\n )\n}\nfunction hexToInt(ch) {\n if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) {\n return 10 + (ch - 0x41 /* A */)\n }\n if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) {\n return 10 + (ch - 0x61 /* a */)\n }\n return ch - 0x30 /* 0 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence\n// Allows only 0-377(octal) i.e. 0-255(decimal).\npp$1.regexp_eatLegacyOctalEscapeSequence = function(state) {\n if (this.regexp_eatOctalDigit(state)) {\n var n1 = state.lastIntValue;\n if (this.regexp_eatOctalDigit(state)) {\n var n2 = state.lastIntValue;\n if (n1 <= 3 && this.regexp_eatOctalDigit(state)) {\n state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue;\n } else {\n state.lastIntValue = n1 * 8 + n2;\n }\n } else {\n state.lastIntValue = n1;\n }\n return true\n }\n return false\n};\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit\npp$1.regexp_eatOctalDigit = function(state) {\n var ch = state.current();\n if (isOctalDigit(ch)) {\n state.lastIntValue = ch - 0x30; /* 0 */\n state.advance();\n return true\n }\n state.lastIntValue = 0;\n return false\n};\nfunction isOctalDigit(ch) {\n return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */\n}\n\n// https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits\n// https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit\n// And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence\npp$1.regexp_eatFixedHexDigits = function(state, length) {\n var start = state.pos;\n state.lastIntValue = 0;\n for (var i = 0; i < length; ++i) {\n var ch = state.current();\n if (!isHexDigit(ch)) {\n state.pos = start;\n return false\n }\n state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch);\n state.advance();\n }\n return true\n};\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nvar Token = function Token(p) {\n this.type = p.type;\n this.value = p.value;\n this.start = p.start;\n this.end = p.end;\n if (p.options.locations)\n { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); }\n if (p.options.ranges)\n { this.range = [p.start, p.end]; }\n};\n\n// ## Tokenizer\n\nvar pp = Parser.prototype;\n\n// Move to the next token\n\npp.next = function(ignoreEscapeSequenceInKeyword) {\n if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc)\n { this.raiseRecoverable(this.start, \"Escape sequence in keyword \" + this.type.keyword); }\n if (this.options.onToken)\n { this.options.onToken(new Token(this)); }\n\n this.lastTokEnd = this.end;\n this.lastTokStart = this.start;\n this.lastTokEndLoc = this.endLoc;\n this.lastTokStartLoc = this.startLoc;\n this.nextToken();\n};\n\npp.getToken = function() {\n this.next();\n return new Token(this)\n};\n\n// If we're in an ES6 environment, make parsers iterable\nif (typeof Symbol !== \"undefined\")\n { pp[Symbol.iterator] = function() {\n var this$1$1 = this;\n\n return {\n next: function () {\n var token = this$1$1.getToken();\n return {\n done: token.type === types$1.eof,\n value: token\n }\n }\n }\n }; }\n\n// Toggle strict mode. Re-reads the next number or string to please\n// pedantic tests (`\"use strict\"; 010;` should fail).\n\n// Read a single token, updating the parser object's token-related\n// properties.\n\npp.nextToken = function() {\n var curContext = this.curContext();\n if (!curContext || !curContext.preserveSpace) { this.skipSpace(); }\n\n this.start = this.pos;\n if (this.options.locations) { this.startLoc = this.curPosition(); }\n if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) }\n\n if (curContext.override) { return curContext.override(this) }\n else { this.readToken(this.fullCharCodeAtPos()); }\n};\n\npp.readToken = function(code) {\n // Identifier or keyword. '\\uXXXX' sequences are allowed in\n // identifiers, so '\\' also dispatches to that.\n if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\\' */)\n { return this.readWord() }\n\n return this.getTokenFromCode(code)\n};\n\npp.fullCharCodeAtPos = function() {\n var code = this.input.charCodeAt(this.pos);\n if (code <= 0xd7ff || code >= 0xdc00) { return code }\n var next = this.input.charCodeAt(this.pos + 1);\n return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00\n};\n\npp.skipBlockComment = function() {\n var startLoc = this.options.onComment && this.curPosition();\n var start = this.pos, end = this.input.indexOf(\"*/\", this.pos += 2);\n if (end === -1) { this.raise(this.pos - 2, \"Unterminated comment\"); }\n this.pos = end + 2;\n if (this.options.locations) {\n for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {\n ++this.curLine;\n pos = this.lineStart = nextBreak;\n }\n }\n if (this.options.onComment)\n { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\npp.skipLineComment = function(startSkip) {\n var start = this.pos;\n var startLoc = this.options.onComment && this.curPosition();\n var ch = this.input.charCodeAt(this.pos += startSkip);\n while (this.pos < this.input.length && !isNewLine(ch)) {\n ch = this.input.charCodeAt(++this.pos);\n }\n if (this.options.onComment)\n { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos,\n startLoc, this.curPosition()); }\n};\n\n// Called at the start of the parse and after every token. Skips\n// whitespace and comments, and.\n\npp.skipSpace = function() {\n loop: while (this.pos < this.input.length) {\n var ch = this.input.charCodeAt(this.pos);\n switch (ch) {\n case 32: case 160: // ' '\n ++this.pos;\n break\n case 13:\n if (this.input.charCodeAt(this.pos + 1) === 10) {\n ++this.pos;\n }\n case 10: case 8232: case 8233:\n ++this.pos;\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n break\n case 47: // '/'\n switch (this.input.charCodeAt(this.pos + 1)) {\n case 42: // '*'\n this.skipBlockComment();\n break\n case 47:\n this.skipLineComment(2);\n break\n default:\n break loop\n }\n break\n default:\n if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) {\n ++this.pos;\n } else {\n break loop\n }\n }\n }\n};\n\n// Called at the end of every token. Sets `end`, `val`, and\n// maintains `context` and `exprAllowed`, and skips the space after\n// the token, so that the next one's `start` will point at the\n// right position.\n\npp.finishToken = function(type, val) {\n this.end = this.pos;\n if (this.options.locations) { this.endLoc = this.curPosition(); }\n var prevType = this.type;\n this.type = type;\n this.value = val;\n\n this.updateContext(prevType);\n};\n\n// ### Token reading\n\n// This is the function that is called to fetch the next token. It\n// is somewhat obscure, because it works in character codes rather\n// than characters, and because operator parsing has been inlined\n// into it.\n//\n// All in the name of speed.\n//\npp.readToken_dot = function() {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next >= 48 && next <= 57) { return this.readNumber(true) }\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.'\n this.pos += 3;\n return this.finishToken(types$1.ellipsis)\n } else {\n ++this.pos;\n return this.finishToken(types$1.dot)\n }\n};\n\npp.readToken_slash = function() { // '/'\n var next = this.input.charCodeAt(this.pos + 1);\n if (this.exprAllowed) { ++this.pos; return this.readRegexp() }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.slash, 1)\n};\n\npp.readToken_mult_modulo_exp = function(code) { // '%*'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n var tokentype = code === 42 ? types$1.star : types$1.modulo;\n\n // exponentiation operator ** and **=\n if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) {\n ++size;\n tokentype = types$1.starstar;\n next = this.input.charCodeAt(this.pos + 2);\n }\n\n if (next === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(tokentype, size)\n};\n\npp.readToken_pipe_amp = function(code) { // '|&'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (this.options.ecmaVersion >= 12) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1)\n};\n\npp.readToken_caret = function() { // '^'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.bitwiseXOR, 1)\n};\n\npp.readToken_plus_min = function(code) { // '+-'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === code) {\n if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 &&\n (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n return this.nextToken()\n }\n return this.finishOp(types$1.incDec, 2)\n }\n if (next === 61) { return this.finishOp(types$1.assign, 2) }\n return this.finishOp(types$1.plusMin, 1)\n};\n\npp.readToken_lt_gt = function(code) { // '<>'\n var next = this.input.charCodeAt(this.pos + 1);\n var size = 1;\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2;\n if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) }\n return this.finishOp(types$1.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n this.skipLineComment(4);\n this.skipSpace();\n return this.nextToken()\n }\n if (next === 61) { size = 2; }\n return this.finishOp(types$1.relational, size)\n};\n\npp.readToken_eq_excl = function(code) { // '=!'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) }\n if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>'\n this.pos += 2;\n return this.finishToken(types$1.arrow)\n }\n return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1)\n};\n\npp.readToken_question = function() { // '?'\n var ecmaVersion = this.options.ecmaVersion;\n if (ecmaVersion >= 11) {\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 46) {\n var next2 = this.input.charCodeAt(this.pos + 2);\n if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) }\n }\n if (next === 63) {\n if (ecmaVersion >= 12) {\n var next2$1 = this.input.charCodeAt(this.pos + 2);\n if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) }\n }\n return this.finishOp(types$1.coalesce, 2)\n }\n }\n return this.finishOp(types$1.question, 1)\n};\n\npp.readToken_numberSign = function() { // '#'\n var ecmaVersion = this.options.ecmaVersion;\n var code = 35; // '#'\n if (ecmaVersion >= 13) {\n ++this.pos;\n code = this.fullCharCodeAtPos();\n if (isIdentifierStart(code, true) || code === 92 /* '\\' */) {\n return this.finishToken(types$1.privateId, this.readWord1())\n }\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.getTokenFromCode = function(code) {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n case 46: // '.'\n return this.readToken_dot()\n\n // Punctuation tokens.\n case 40: ++this.pos; return this.finishToken(types$1.parenL)\n case 41: ++this.pos; return this.finishToken(types$1.parenR)\n case 59: ++this.pos; return this.finishToken(types$1.semi)\n case 44: ++this.pos; return this.finishToken(types$1.comma)\n case 91: ++this.pos; return this.finishToken(types$1.bracketL)\n case 93: ++this.pos; return this.finishToken(types$1.bracketR)\n case 123: ++this.pos; return this.finishToken(types$1.braceL)\n case 125: ++this.pos; return this.finishToken(types$1.braceR)\n case 58: ++this.pos; return this.finishToken(types$1.colon)\n\n case 96: // '`'\n if (this.options.ecmaVersion < 6) { break }\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n\n case 48: // '0'\n var next = this.input.charCodeAt(this.pos + 1);\n if (next === 120 || next === 88) { return this.readRadixNumber(16) } // '0x', '0X' - hex number\n if (this.options.ecmaVersion >= 6) {\n if (next === 111 || next === 79) { return this.readRadixNumber(8) } // '0o', '0O' - octal number\n if (next === 98 || next === 66) { return this.readRadixNumber(2) } // '0b', '0B' - binary number\n }\n\n // Anything else beginning with a digit is an integer, octal\n // number, or float.\n case 49: case 50: case 51: case 52: case 53: case 54: case 55: case 56: case 57: // 1-9\n return this.readNumber(false)\n\n // Quotes produce strings.\n case 34: case 39: // '\"', \"'\"\n return this.readString(code)\n\n // Operators are parsed inline in tiny state machines. '=' (61) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n case 47: // '/'\n return this.readToken_slash()\n\n case 37: case 42: // '%*'\n return this.readToken_mult_modulo_exp(code)\n\n case 124: case 38: // '|&'\n return this.readToken_pipe_amp(code)\n\n case 94: // '^'\n return this.readToken_caret()\n\n case 43: case 45: // '+-'\n return this.readToken_plus_min(code)\n\n case 60: case 62: // '<>'\n return this.readToken_lt_gt(code)\n\n case 61: case 33: // '=!'\n return this.readToken_eq_excl(code)\n\n case 63: // '?'\n return this.readToken_question()\n\n case 126: // '~'\n return this.finishOp(types$1.prefix, 1)\n\n case 35: // '#'\n return this.readToken_numberSign()\n }\n\n this.raise(this.pos, \"Unexpected character '\" + codePointToString(code) + \"'\");\n};\n\npp.finishOp = function(type, size) {\n var str = this.input.slice(this.pos, this.pos + size);\n this.pos += size;\n return this.finishToken(type, str)\n};\n\npp.readRegexp = function() {\n var escaped, inClass, start = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(start, \"Unterminated regular expression\"); }\n var ch = this.input.charAt(this.pos);\n if (lineBreak.test(ch)) { this.raise(start, \"Unterminated regular expression\"); }\n if (!escaped) {\n if (ch === \"[\") { inClass = true; }\n else if (ch === \"]\" && inClass) { inClass = false; }\n else if (ch === \"/\" && !inClass) { break }\n escaped = ch === \"\\\\\";\n } else { escaped = false; }\n ++this.pos;\n }\n var pattern = this.input.slice(start, this.pos);\n ++this.pos;\n var flagsStart = this.pos;\n var flags = this.readWord1();\n if (this.containsEsc) { this.unexpected(flagsStart); }\n\n // Validate pattern\n var state = this.regexpState || (this.regexpState = new RegExpValidationState(this));\n state.reset(start, pattern, flags);\n this.validateRegExpFlags(state);\n this.validateRegExpPattern(state);\n\n // Create Literal#value property value.\n var value = null;\n try {\n value = new RegExp(pattern, flags);\n } catch (e) {\n // ESTree requires null if it failed to instantiate RegExp object.\n // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral\n }\n\n return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value})\n};\n\n// Read an integer in the given radix. Return null if zero digits\n// were read, the integer value otherwise. When `len` is given, this\n// will return `null` unless the integer has exactly `len` digits.\n\npp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) {\n // `len` is used for character escape sequences. In that case, disallow separators.\n var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined;\n\n // `maybeLegacyOctalNumericLiteral` is true if it doesn't have prefix (0x,0o,0b)\n // and isn't fraction part nor exponent part. In that case, if the first digit\n // is zero then disallow separators.\n var isLegacyOctalNumericLiteral = maybeLegacyOctalNumericLiteral && this.input.charCodeAt(this.pos) === 48;\n\n var start = this.pos, total = 0, lastCode = 0;\n for (var i = 0, e = len == null ? Infinity : len; i < e; ++i, ++this.pos) {\n var code = this.input.charCodeAt(this.pos), val = (void 0);\n\n if (allowSeparators && code === 95) {\n if (isLegacyOctalNumericLiteral) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed in legacy octal numeric literals\"); }\n if (lastCode === 95) { this.raiseRecoverable(this.pos, \"Numeric separator must be exactly one underscore\"); }\n if (i === 0) { this.raiseRecoverable(this.pos, \"Numeric separator is not allowed at the first of digits\"); }\n lastCode = code;\n continue\n }\n\n if (code >= 97) { val = code - 97 + 10; } // a\n else if (code >= 65) { val = code - 65 + 10; } // A\n else if (code >= 48 && code <= 57) { val = code - 48; } // 0-9\n else { val = Infinity; }\n if (val >= radix) { break }\n lastCode = code;\n total = total * radix + val;\n }\n\n if (allowSeparators && lastCode === 95) { this.raiseRecoverable(this.pos - 1, \"Numeric separator is not allowed at the last of digits\"); }\n if (this.pos === start || len != null && this.pos - start !== len) { return null }\n\n return total\n};\n\nfunction stringToNumber(str, isLegacyOctalNumericLiteral) {\n if (isLegacyOctalNumericLiteral) {\n return parseInt(str, 8)\n }\n\n // `parseFloat(value)` stops parsing at the first numeric separator then returns a wrong value.\n return parseFloat(str.replace(/_/g, \"\"))\n}\n\nfunction stringToBigInt(str) {\n if (typeof BigInt !== \"function\") {\n return null\n }\n\n // `BigInt(value)` throws syntax error if the string contains numeric separators.\n return BigInt(str.replace(/_/g, \"\"))\n}\n\npp.readRadixNumber = function(radix) {\n var start = this.pos;\n this.pos += 2; // 0x\n var val = this.readInt(radix);\n if (val == null) { this.raise(this.start + 2, \"Expected number in radix \" + radix); }\n if (this.options.ecmaVersion >= 11 && this.input.charCodeAt(this.pos) === 110) {\n val = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val)\n};\n\n// Read an integer, octal integer, or floating-point number.\n\npp.readNumber = function(startsWithDot) {\n var start = this.pos;\n if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, \"Invalid number\"); }\n var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48;\n if (octal && this.strict) { this.raise(start, \"Invalid number\"); }\n var next = this.input.charCodeAt(this.pos);\n if (!octal && !startsWithDot && this.options.ecmaVersion >= 11 && next === 110) {\n var val$1 = stringToBigInt(this.input.slice(start, this.pos));\n ++this.pos;\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n return this.finishToken(types$1.num, val$1)\n }\n if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; }\n if (next === 46 && !octal) { // '.'\n ++this.pos;\n this.readInt(10);\n next = this.input.charCodeAt(this.pos);\n }\n if ((next === 69 || next === 101) && !octal) { // 'eE'\n next = this.input.charCodeAt(++this.pos);\n if (next === 43 || next === 45) { ++this.pos; } // '+-'\n if (this.readInt(10) === null) { this.raise(start, \"Invalid number\"); }\n }\n if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, \"Identifier directly after number\"); }\n\n var val = stringToNumber(this.input.slice(start, this.pos), octal);\n return this.finishToken(types$1.num, val)\n};\n\n// Read a string value, interpreting backslash-escapes.\n\npp.readCodePoint = function() {\n var ch = this.input.charCodeAt(this.pos), code;\n\n if (ch === 123) { // '{'\n if (this.options.ecmaVersion < 6) { this.unexpected(); }\n var codePos = ++this.pos;\n code = this.readHexChar(this.input.indexOf(\"}\", this.pos) - this.pos);\n ++this.pos;\n if (code > 0x10FFFF) { this.invalidStringToken(codePos, \"Code point out of bounds\"); }\n } else {\n code = this.readHexChar(4);\n }\n return code\n};\n\npp.readString = function(quote) {\n var out = \"\", chunkStart = ++this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated string constant\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === quote) { break }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(false);\n chunkStart = this.pos;\n } else if (ch === 0x2028 || ch === 0x2029) {\n if (this.options.ecmaVersion < 10) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n if (this.options.locations) {\n this.curLine++;\n this.lineStart = this.pos;\n }\n } else {\n if (isNewLine(ch)) { this.raise(this.start, \"Unterminated string constant\"); }\n ++this.pos;\n }\n }\n out += this.input.slice(chunkStart, this.pos++);\n return this.finishToken(types$1.string, out)\n};\n\n// Reads template string tokens.\n\nvar INVALID_TEMPLATE_ESCAPE_ERROR = {};\n\npp.tryReadTemplateToken = function() {\n this.inTemplateElement = true;\n try {\n this.readTmplToken();\n } catch (err) {\n if (err === INVALID_TEMPLATE_ESCAPE_ERROR) {\n this.readInvalidTemplateToken();\n } else {\n throw err\n }\n }\n\n this.inTemplateElement = false;\n};\n\npp.invalidStringToken = function(position, message) {\n if (this.inTemplateElement && this.options.ecmaVersion >= 9) {\n throw INVALID_TEMPLATE_ESCAPE_ERROR\n } else {\n this.raise(position, message);\n }\n};\n\npp.readTmplToken = function() {\n var out = \"\", chunkStart = this.pos;\n for (;;) {\n if (this.pos >= this.input.length) { this.raise(this.start, \"Unterminated template\"); }\n var ch = this.input.charCodeAt(this.pos);\n if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${'\n if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) {\n if (ch === 36) {\n this.pos += 2;\n return this.finishToken(types$1.dollarBraceL)\n } else {\n ++this.pos;\n return this.finishToken(types$1.backQuote)\n }\n }\n out += this.input.slice(chunkStart, this.pos);\n return this.finishToken(types$1.template, out)\n }\n if (ch === 92) { // '\\'\n out += this.input.slice(chunkStart, this.pos);\n out += this.readEscapedChar(true);\n chunkStart = this.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.pos);\n ++this.pos;\n switch (ch) {\n case 13:\n if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; }\n case 10:\n out += \"\\n\";\n break\n default:\n out += String.fromCharCode(ch);\n break\n }\n if (this.options.locations) {\n ++this.curLine;\n this.lineStart = this.pos;\n }\n chunkStart = this.pos;\n } else {\n ++this.pos;\n }\n }\n};\n\n// Reads a template token to search for the end, without validating any escape sequences\npp.readInvalidTemplateToken = function() {\n for (; this.pos < this.input.length; this.pos++) {\n switch (this.input[this.pos]) {\n case \"\\\\\":\n ++this.pos;\n break\n\n case \"$\":\n if (this.input[this.pos + 1] !== \"{\") {\n break\n }\n\n // falls through\n case \"`\":\n return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos))\n\n // no default\n }\n }\n this.raise(this.start, \"Unterminated template\");\n};\n\n// Used to read escaped characters\n\npp.readEscapedChar = function(inTemplate) {\n var ch = this.input.charCodeAt(++this.pos);\n ++this.pos;\n switch (ch) {\n case 110: return \"\\n\" // 'n' -> '\\n'\n case 114: return \"\\r\" // 'r' -> '\\r'\n case 120: return String.fromCharCode(this.readHexChar(2)) // 'x'\n case 117: return codePointToString(this.readCodePoint()) // 'u'\n case 116: return \"\\t\" // 't' -> '\\t'\n case 98: return \"\\b\" // 'b' -> '\\b'\n case 118: return \"\\u000b\" // 'v' -> '\\u000b'\n case 102: return \"\\f\" // 'f' -> '\\f'\n case 13: if (this.input.charCodeAt(this.pos) === 10) { ++this.pos; } // '\\r\\n'\n case 10: // ' \\n'\n if (this.options.locations) { this.lineStart = this.pos; ++this.curLine; }\n return \"\"\n case 56:\n case 57:\n if (this.strict) {\n this.invalidStringToken(\n this.pos - 1,\n \"Invalid escape sequence\"\n );\n }\n if (inTemplate) {\n var codePos = this.pos - 1;\n\n this.invalidStringToken(\n codePos,\n \"Invalid escape sequence in template string\"\n );\n }\n default:\n if (ch >= 48 && ch <= 55) {\n var octalStr = this.input.substr(this.pos - 1, 3).match(/^[0-7]+/)[0];\n var octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n this.pos += octalStr.length - 1;\n ch = this.input.charCodeAt(this.pos);\n if ((octalStr !== \"0\" || ch === 56 || ch === 57) && (this.strict || inTemplate)) {\n this.invalidStringToken(\n this.pos - 1 - octalStr.length,\n inTemplate\n ? \"Octal literal in template string\"\n : \"Octal literal in strict mode\"\n );\n }\n return String.fromCharCode(octal)\n }\n if (isNewLine(ch)) {\n // Unicode new line characters after \\ get removed from output in both\n // template literals and strings\n return \"\"\n }\n return String.fromCharCode(ch)\n }\n};\n\n// Used to read character escape sequences ('\\x', '\\u', '\\U').\n\npp.readHexChar = function(len) {\n var codePos = this.pos;\n var n = this.readInt(16, len);\n if (n === null) { this.invalidStringToken(codePos, \"Bad character escape sequence\"); }\n return n\n};\n\n// Read an identifier, and return it as a string. Sets `this.containsEsc`\n// to whether the word contained a '\\u' escape.\n//\n// Incrementally adds only escaped chars, adding other chunks as-is\n// as a micro-optimization.\n\npp.readWord1 = function() {\n this.containsEsc = false;\n var word = \"\", first = true, chunkStart = this.pos;\n var astral = this.options.ecmaVersion >= 6;\n while (this.pos < this.input.length) {\n var ch = this.fullCharCodeAtPos();\n if (isIdentifierChar(ch, astral)) {\n this.pos += ch <= 0xffff ? 1 : 2;\n } else if (ch === 92) { // \"\\\"\n this.containsEsc = true;\n word += this.input.slice(chunkStart, this.pos);\n var escStart = this.pos;\n if (this.input.charCodeAt(++this.pos) !== 117) // \"u\"\n { this.invalidStringToken(this.pos, \"Expecting Unicode escape sequence \\\\uXXXX\"); }\n ++this.pos;\n var esc = this.readCodePoint();\n if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral))\n { this.invalidStringToken(escStart, \"Invalid Unicode escape\"); }\n word += codePointToString(esc);\n chunkStart = this.pos;\n } else {\n break\n }\n first = false;\n }\n return word + this.input.slice(chunkStart, this.pos)\n};\n\n// Read an identifier or keyword token. Will check for reserved\n// words when necessary.\n\npp.readWord = function() {\n var word = this.readWord1();\n var type = types$1.name;\n if (this.keywords.test(word)) {\n type = keywords[word];\n }\n return this.finishToken(type, word)\n};\n\n// Acorn is a tiny, fast JavaScript parser written in JavaScript.\n\nvar version = \"8.8.2\";\n\nParser.acorn = {\n Parser: Parser,\n version: version,\n defaultOptions: defaultOptions,\n Position: Position,\n SourceLocation: SourceLocation,\n getLineInfo: getLineInfo,\n Node: Node,\n TokenType: TokenType,\n tokTypes: types$1,\n keywordTypes: keywords,\n TokContext: TokContext,\n tokContexts: types,\n isIdentifierChar: isIdentifierChar,\n isIdentifierStart: isIdentifierStart,\n Token: Token,\n isNewLine: isNewLine,\n lineBreak: lineBreak,\n lineBreakG: lineBreakG,\n nonASCIIwhitespace: nonASCIIwhitespace\n};\n\n// The main exported interface (under `self.acorn` when in the\n// browser) is a `parse` function that takes a code string and\n// returns an abstract syntax tree as specified by [Mozilla parser\n// API][api].\n//\n// [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API\n\nfunction parse(input, options) {\n return Parser.parse(input, options)\n}\n\n// This function tries to parse a single expression at a given\n// offset in a string. Useful for parsing mixed-language formats\n// that embed JavaScript expressions.\n\nfunction parseExpressionAt(input, pos, options) {\n return Parser.parseExpressionAt(input, pos, options)\n}\n\n// Acorn is organized as a tokenizer and a recursive-descent parser.\n// The `tokenizer` export provides an interface to the tokenizer.\n\nfunction tokenizer(input, options) {\n return Parser.tokenizer(input, options)\n}\n\nexport { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types as tokContexts, types$1 as tokTypes, tokenizer, version };\n","export function flatten<T>(nodes: T[][], target?: T[]): T[];\nexport function flatten<T>(nodes: T[], target?: T[]): T[];\nexport function flatten(nodes: any[], target: any[] = []): any[] {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\t\tif (Array.isArray(node)) {\n\t\t\tflatten(node, target);\n\t\t} else {\n\t\t\ttarget.push(node);\n\t\t}\n\t}\n\n\treturn target;\n}\n","export const regex_whitespace = /\\s/;\nexport const regex_whitespaces = /\\s+/;\nexport const regex_starts_with_whitespace = /^\\s/;\nexport const regex_starts_with_whitespaces = /^[ \\t\\r\\n]*/;\nexport const regex_ends_with_whitespace = /\\s$/;\nexport const regex_ends_with_whitespaces = /[ \\t\\r\\n]*$/;\nexport const regex_only_whitespaces = /^\\s+$/;\n\nexport const regex_whitespace_characters = /\\s/g;\nexport const regex_non_whitespace_character = /\\S/;\n\nexport const regex_starts_with_newline = /^\\r?\\n/;\nexport const regex_not_newline_characters = /[^\\n]/g;\n\nexport const regex_double_quotes = /\"/g;\n\nexport const regex_backslashes = /\\\\/g;\n\nexport const regex_starts_with_underscore = /^_/;\nexport const regex_ends_with_underscore = /_$/;\n\nexport const regex_invalid_variable_identifier_characters = /[^a-zA-Z0-9_$]/g;\n\nexport const regex_dimensions = /^(?:offset|client)(?:Width|Height)$/;\n","import { TemplateNode } from '../interfaces';\nimport { flatten } from './flatten';\nimport { regex_whitespace } from './patterns';\nimport { INode } from '../compile/nodes/interfaces';\n\nconst regex_svelte_ignore = /^\\s*svelte-ignore\\s+([\\s\\S]+)\\s*$/m;\n\nexport function extract_svelte_ignore(text: string): string[] {\n\tconst match = regex_svelte_ignore.exec(text);\n\treturn match ? match[1].split(regex_whitespace).map(x => x.trim()).filter(Boolean) : [];\n}\n\nexport function extract_svelte_ignore_from_comments<Node extends { leadingComments?: Array<{value: string}> }>(node: Node): string[] {\n\treturn flatten((node.leadingComments || []).map(comment => extract_svelte_ignore(comment.value)));\n}\n\nexport function extract_ignores_above_position(position: number, template_nodes: TemplateNode[]): string[] {\n\tconst previous_node_idx = template_nodes.findIndex(child => child.end === position);\n\tif (previous_node_idx === -1) {\n\t\treturn [];\n\t}\n\n\tfor (let i = previous_node_idx; i >= 0; i--) {\n\t\tconst node = template_nodes[i];\n\t\tif (node.type !== 'Comment' && node.type !== 'Text') {\n\t\t\treturn [];\n\t\t}\n\t\tif (node.type === 'Comment') {\n\t\t\tif (node.ignores.length) {\n\t\t\t\treturn node.ignores;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn [];\n}\n\nexport function extract_ignores_above_node(node: INode): string[] {\n /**\n * This utilizes the fact that node has a prev and a next attribute\n * which means that it can find svelte-ignores along\n * the nodes on the same level as itself who share the same parent. \n */\n let cur_node = node.prev;\n while (cur_node) {\n if (cur_node.type !== 'Comment' && cur_node.type !== 'Text') {\n return [];\n\t }\n\n\t if (cur_node.type === 'Comment' && cur_node.ignores.length) {\n return cur_node.ignores;\n\t }\n\n cur_node = cur_node.prev;\n }\n\n return [];\n}\n","export default function fuzzymatch(name: string, names: string[]) {\n\tconst set = new FuzzySet(names);\n\tconst matches = set.get(name);\n\n\treturn matches && matches[0] && matches[0][0] > 0.7 ? matches[0][1] : null;\n}\n\n// adapted from https://github.com/Glench/fuzzyset.js/blob/master/lib/fuzzyset.js\n// BSD Licensed\n\nconst GRAM_SIZE_LOWER = 2;\nconst GRAM_SIZE_UPPER = 3;\n\n// return an edit distance from 0 to 1\nfunction _distance(str1: string, str2: string) {\n\tif (str1 === null && str2 === null) {\n\t\tthrow 'Trying to compare two null values';\n\t}\n\tif (str1 === null || str2 === null) return 0;\n\tstr1 = String(str1);\n\tstr2 = String(str2);\n\n\tconst distance = levenshtein(str1, str2);\n\tif (str1.length > str2.length) {\n\t\treturn 1 - distance / str1.length;\n\t} else {\n\t\treturn 1 - distance / str2.length;\n\t}\n}\n\n// helper functions\nfunction levenshtein(str1: string, str2: string) {\n\tconst current: number[] = [];\n\tlet prev;\n\tlet value;\n\n\tfor (let i = 0; i <= str2.length; i++) {\n\t\tfor (let j = 0; j <= str1.length; j++) {\n\t\t\tif (i && j) {\n\t\t\t\tif (str1.charAt(j - 1) === str2.charAt(i - 1)) {\n\t\t\t\t\tvalue = prev;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = Math.min(current[j], current[j - 1], prev) + 1;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalue = i + j;\n\t\t\t}\n\n\t\t\tprev = current[j];\n\t\t\tcurrent[j] = value;\n\t\t}\n\t}\n\n\treturn current.pop();\n}\n\nconst non_word_regex = /[^\\w, ]+/;\n\nfunction iterate_grams(value: string, gram_size = 2) {\n\tconst simplified = '-' + value.toLowerCase().replace(non_word_regex, '') + '-';\n\tconst len_diff = gram_size - simplified.length;\n\tconst results = [];\n\n\tif (len_diff > 0) {\n\t\tfor (let i = 0; i < len_diff; ++i) {\n\t\t\tvalue += '-';\n\t\t}\n\t}\n\tfor (let i = 0; i < simplified.length - gram_size + 1; ++i) {\n\t\tresults.push(simplified.slice(i, i + gram_size));\n\t}\n\treturn results;\n}\n\nfunction gram_counter(value: string, gram_size = 2) {\n\t// return an object where key=gram, value=number of occurrences\n\tconst result = {};\n\tconst grams = iterate_grams(value, gram_size);\n\tlet i = 0;\n\n\tfor (i; i < grams.length; ++i) {\n\t\tif (grams[i] in result) {\n\t\t\tresult[grams[i]] += 1;\n\t\t} else {\n\t\t\tresult[grams[i]] = 1;\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction sort_descending(a, b) {\n\treturn b[0] - a[0];\n}\n\nclass FuzzySet {\n\texact_set = {};\n\tmatch_dict = {};\n\titems = {};\n\n\tconstructor(arr: string[]) {\n\t\t// initialization\n\t\tfor (let i = GRAM_SIZE_LOWER; i < GRAM_SIZE_UPPER + 1; ++i) {\n\t\t\tthis.items[i] = [];\n\t\t}\n\n\t\t// add all the items to the set\n\t\tfor (let i = 0; i < arr.length; ++i) {\n\t\t\tthis.add(arr[i]);\n\t\t}\n\t}\n\n\tadd(value: string) {\n\t\tconst normalized_value = value.toLowerCase();\n\t\tif (normalized_value in this.exact_set) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet i = GRAM_SIZE_LOWER;\n\t\tfor (i; i < GRAM_SIZE_UPPER + 1; ++i) {\n\t\t\tthis._add(value, i);\n\t\t}\n\t}\n\n\t_add(value: string, gram_size: number) {\n\t\tconst normalized_value = value.toLowerCase();\n\t\tconst items = this.items[gram_size] || [];\n\t\tconst index = items.length;\n\n\t\titems.push(0);\n\t\tconst gram_counts = gram_counter(normalized_value, gram_size);\n\t\tlet sum_of_square_gram_counts = 0;\n\t\tlet gram;\n\t\tlet gram_count;\n\n\t\tfor (gram in gram_counts) {\n\t\t\tgram_count = gram_counts[gram];\n\t\t\tsum_of_square_gram_counts += Math.pow(gram_count, 2);\n\t\t\tif (gram in this.match_dict) {\n\t\t\t\tthis.match_dict[gram].push([index, gram_count]);\n\t\t\t} else {\n\t\t\t\tthis.match_dict[gram] = [[index, gram_count]];\n\t\t\t}\n\t\t}\n\t\tconst vector_normal = Math.sqrt(sum_of_square_gram_counts);\n\t\titems[index] = [vector_normal, normalized_value];\n\t\tthis.items[gram_size] = items;\n\t\tthis.exact_set[normalized_value] = value;\n\t}\n\n\tget(value: string) {\n\t\tconst normalized_value = value.toLowerCase();\n\t\tconst result = this.exact_set[normalized_value];\n\n\t\tif (result) {\n\t\t\treturn [[1, result]];\n\t\t}\n\n\t\tlet results = [];\n\t\t// start with high gram size and if there are no results, go to lower gram sizes\n\t\tfor (\n\t\t\tlet gram_size = GRAM_SIZE_UPPER;\n\t\t\tgram_size >= GRAM_SIZE_LOWER;\n\t\t\t--gram_size\n\t\t) {\n\t\t\tresults = this.__get(value, gram_size);\n\t\t\tif (results) {\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n\n\t__get(value: string, gram_size: number) {\n\t\tconst normalized_value = value.toLowerCase();\n\t\tconst matches = {};\n\t\tconst gram_counts = gram_counter(normalized_value, gram_size);\n\t\tconst items = this.items[gram_size];\n\t\tlet sum_of_square_gram_counts = 0;\n\t\tlet gram;\n\t\tlet gram_count;\n\t\tlet i;\n\t\tlet index;\n\t\tlet other_gram_count;\n\n\t\tfor (gram in gram_counts) {\n\t\t\tgram_count = gram_counts[gram];\n\t\t\tsum_of_square_gram_counts += Math.pow(gram_count, 2);\n\t\t\tif (gram in this.match_dict) {\n\t\t\t\tfor (i = 0; i < this.match_dict[gram].length; ++i) {\n\t\t\t\t\tindex = this.match_dict[gram][i][0];\n\t\t\t\t\tother_gram_count = this.match_dict[gram][i][1];\n\t\t\t\t\tif (index in matches) {\n\t\t\t\t\t\tmatches[index] += gram_count * other_gram_count;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatches[index] = gram_count * other_gram_count;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst vector_normal = Math.sqrt(sum_of_square_gram_counts);\n\t\tlet results = [];\n\t\tlet match_score;\n\n\t\t// build a results list of [score, str]\n\t\tfor (const match_index in matches) {\n\t\t\tmatch_score = matches[match_index];\n\t\t\tresults.push([\n\t\t\t\tmatch_score / (vector_normal * items[match_index][0]),\n\t\t\t\titems[match_index][1]\n\t\t\t]);\n\t\t}\n\n\t\tresults.sort(sort_descending);\n\n\t\tlet new_results = [];\n\t\tconst end_index = Math.min(50, results.length);\n\t\t// truncate somewhat arbitrarily to 50\n\t\tfor (let i = 0; i < end_index; ++i) {\n\t\t\tnew_results.push([\n\t\t\t\t_distance(results[i][1], normalized_value),\n\t\t\t\tresults[i][1]\n\t\t\t]);\n\t\t}\n\t\tresults = new_results;\n\t\tresults.sort(sort_descending);\n\n\t\tnew_results = [];\n\t\tfor (let i = 0; i < results.length; ++i) {\n\t\t\tif (results[i][0] == results[0][0]) {\n\t\t\t\tnew_results.push([results[i][0], this.exact_set[results[i][1]]]);\n\t\t\t}\n\t\t}\n\n\t\treturn new_results;\n\t}\n}\n","/** regex of all html void element names */\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\n/** regex of all html element names. svg and math are omitted because they belong to the svg elements namespace */\nconst html_element_names = /^(?:a|abbr|address|area|article|aside|audio|b|base|bdi|bdo|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|head|header|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|main|map|mark|meta|meter|nav|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|small|source|span|strong|style|sub|summary|sup|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|u|ul|var|video|wbr)$/;\n/** regex of all svg element names */\nconst svg = /^(?:altGlyph|altGlyphDef|altGlyphItem|animate|animateColor|animateMotion|animateTransform|circle|clipPath|color-profile|cursor|defs|desc|discard|ellipse|feBlend|feColorMatrix|feComponentTransfer|feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feImage|feMerge|feMergeNode|feMorphology|feOffset|fePointLight|feSpecularLighting|feSpotLight|feTile|feTurbulence|filter|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|foreignObject|g|glyph|glyphRef|hatch|hatchpath|hkern|image|line|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|metadata|missing-glyph|mpath|path|pattern|polygon|polyline|radialGradient|rect|set|solidcolor|stop|svg|switch|symbol|text|textPath|tref|tspan|unknown|use|view|vkern)$/;\n\nexport function is_void(name: string) {\n\treturn void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nexport function is_html(name: string) {\n\treturn html_element_names.test(name);\n}\n\nexport function is_svg(name: string) {\n\treturn svg.test(name);\n}\n","export default function list(items: string[], conjunction = 'or') {\n\tif (items.length === 1) return items[0];\n\treturn `${items.slice(0, -1).join(', ')} ${conjunction} ${items[\n\t\titems.length - 1\n\t]}`;\n}\n","// All parser errors should be listed and accessed from here\n\nimport list from '../utils/list';\n\n/**\n * @internal\n */\nexport default {\n\tcss_syntax_error: (message) => ({\n\t\tcode: 'css-syntax-error',\n\t\tmessage\n\t}),\n\tduplicate_attribute: {\n\t\tcode: 'duplicate-attribute',\n\t\tmessage: 'Attributes need to be unique'\n\t},\n\tduplicate_element: (slug: string, name: string) => ({\n\t\tcode: `duplicate-${slug}`,\n\t\tmessage: `A component can only have one <${name}> tag`\n\t}),\n\tduplicate_style: {\n\t\tcode: 'duplicate-style',\n\t\tmessage: 'You can only have one top-level <style> tag per component'\n\t},\n\tempty_attribute_shorthand: {\n\t\tcode: 'empty-attribute-shorthand',\n\t\tmessage: 'Attribute shorthand cannot be empty'\n\t},\n\tempty_directive_name: (type: string) => ({\n\t\tcode: 'empty-directive-name',\n\t\tmessage: `${type} name cannot be empty`\n\t}),\n\tempty_global_selector: {\n\t\tcode: 'css-syntax-error',\n\t\tmessage: ':global() must contain a selector'\n\t},\n\texpected_block_type: {\n\t\tcode: 'expected-block-type',\n\t\tmessage: 'Expected if, each or await'\n\t},\n\texpected_name: {\n\t\tcode: 'expected-name',\n\t\tmessage: 'Expected name'\n\t},\n\tinvalid_catch_placement_unclosed_block: (block) => ({\n\t\tcode: 'invalid-catch-placement',\n\t\tmessage: `Expected to close ${block} before seeing {:catch} block`\n\t}),\n\tinvalid_catch_placement_without_await: {\n\t\tcode: 'invalid-catch-placement',\n\t\tmessage: 'Cannot have an {:catch} block outside an {#await ...} block'\n\t},\n\tinvalid_component_definition: {\n\t\tcode: 'invalid-component-definition',\n\t\tmessage: 'invalid component definition'\n\t},\n\tinvalid_closing_tag_unopened: (name: string) => ({\n\t\tcode: 'invalid-closing-tag',\n\t\tmessage: `</${name}> attempted to close an element that was not open`\n\t}),\n\tinvalid_closing_tag_autoclosed: (name: string, reason: string) => ({\n\t\tcode: 'invalid-closing-tag',\n\t\tmessage: `</${name}> attempted to close <${name}> that was already automatically closed by <${reason}>`\n\t}),\n\tinvalid_debug_args: {\n\t\tcode: 'invalid-debug-args',\n\t\tmessage:\n\t\t\t'{@debug ...} arguments must be identifiers, not arbitrary expressions'\n\t},\n\tinvalid_declaration: {\n\t\tcode: 'invalid-declaration',\n\t\tmessage: 'Declaration cannot be empty'\n\t},\n\tinvalid_directive_value: {\n\t\tcode: 'invalid-directive-value',\n\t\tmessage: 'Directive value must be a JavaScript expression enclosed in curly braces'\n\t},\n\tinvalid_elseif: {\n\t\tcode: 'invalid-elseif',\n\t\tmessage: '\\'elseif\\' should be \\'else if\\''\n\t},\n\tinvalid_elseif_placement_outside_if: {\n\t\tcode: 'invalid-elseif-placement',\n\t\tmessage: 'Cannot have an {:else if ...} block outside an {#if ...} block'\n\t},\n\tinvalid_elseif_placement_unclosed_block: (block) => ({\n\t\tcode: 'invalid-elseif-placement',\n\t\tmessage: `Expected to close ${block} before seeing {:else if ...} block`\n\t}),\n\tinvalid_else_placement_outside_if: {\n\t\tcode: 'invalid-else-placement',\n\t\tmessage: 'Cannot have an {:else} block outside an {#if ...} or {#each ...} block'\n\t},\n\tinvalid_else_placement_unclosed_block: (block) => ({\n\t\tcode: 'invalid-else-placement',\n\t\tmessage: `Expected to close ${block} before seeing {:else} block`\n\t}),\n\tinvalid_element_content: (slug: string, name: string) => ({\n\t\tcode: `invalid-${slug}-content`,\n\t\tmessage: `<${name}> cannot have children`\n\t}),\n\tinvalid_element_definition: {\n\t\tcode: 'invalid-element-definition',\n\t\tmessage: 'Invalid element definition'\n\t},\n\tinvalid_element_placement: (slug: string, name: string) => ({\n\t\tcode: `invalid-${slug}-placement`,\n\t\tmessage: `<${name}> tags cannot be inside elements or blocks`\n\t}),\n\tinvalid_logic_block_placement: (location: string, name: string) => ({\n\t\tcode: 'invalid-logic-block-placement',\n\t\tmessage: `{#${name}} logic block cannot be ${location}`\n\t}),\n\tinvalid_tag_placement: (location: string, name: string) => ({\n\t\tcode: 'invalid-tag-placement',\n\t\tmessage: `{@${name}} tag cannot be ${location}`\n\t}),\n\tinvalid_ref_directive: (name: string) => ({\n\t\tcode: 'invalid-ref-directive',\n\t\tmessage: `The ref directive is no longer supported — use \\`bind:this={${name}}\\` instead`\n\t}),\n\tinvalid_ref_selector: {\n\t\tcode: 'invalid-ref-selector',\n\t\tmessage: 'ref selectors are no longer supported'\n\t},\n\tinvalid_self_placement: {\n\t\tcode: 'invalid-self-placement',\n\t\tmessage: '<svelte:self> components can only exist inside {#if} blocks, {#each} blocks, or slots passed to components'\n\t},\n\tinvalid_script_instance: {\n\t\tcode: 'invalid-script',\n\t\tmessage: 'A component can only have one instance-level <script> element'\n\t},\n\tinvalid_script_module: {\n\t\tcode: 'invalid-script',\n\t\tmessage: 'A component can only have one <script context=\"module\"> element'\n\t},\n\tinvalid_script_context_attribute: {\n\t\tcode: 'invalid-script',\n\t\tmessage: 'context attribute must be static'\n\t},\n\tinvalid_script_context_value: {\n\t\tcode: 'invalid-script',\n\t\tmessage: 'If the context attribute is supplied, its value must be \"module\"'\n\t},\n\tinvalid_tag_name: {\n\t\tcode: 'invalid-tag-name',\n\t\tmessage: 'Expected valid tag name'\n\t},\n\tinvalid_tag_name_svelte_element: (tags: string[], match: string) => ({\n\t\tcode: 'invalid-tag-name',\n\t\tmessage: `Valid <svelte:...> tag names are ${list(tags)}${\n\t\t\tmatch ? ' (did you mean ' + match + '?)' : ''\n\t\t}`\n\t}),\n\tinvalid_then_placement_unclosed_block: (block) => ({\n\t\tcode: 'invalid-then-placement',\n\t\tmessage: `Expected to close ${block} before seeing {:then} block`\n\t}),\n\tinvalid_then_placement_without_await: {\n\t\tcode: 'invalid-then-placement',\n\t\tmessage: 'Cannot have an {:then} block outside an {#await ...} block'\n\t},\n\tinvalid_void_content: (name: string) => ({\n\t\tcode: 'invalid-void-content',\n\t\tmessage: `<${name}> is a void element and cannot have children, or a closing tag`\n\t}),\n\tmissing_component_definition: {\n\t\tcode: 'missing-component-definition',\n\t\tmessage: '<svelte:component> must have a \\'this\\' attribute'\n\t},\n\tmissing_attribute_value: {\n\t\tcode: 'missing-attribute-value',\n\t\tmessage: 'Expected value for the attribute'\n\t},\n\tmissing_element_definition: {\n\t\tcode: 'missing-element-definition',\n\t\tmessage: '<svelte:element> must have a \\'this\\' attribute'\n\t},\n\tunclosed_script: {\n\t\tcode: 'unclosed-script',\n\t\tmessage: '<script> must have a closing tag'\n\t},\n\tunclosed_style: {\n\t\tcode: 'unclosed-style',\n\t\tmessage: '<style> must have a closing tag'\n\t},\n\tunclosed_comment: {\n\t\tcode: 'unclosed-comment',\n\t\tmessage: 'comment was left open, expected -->'\n\t},\n\tunclosed_attribute_value: (token: string) => ({\n\t\tcode: 'unclosed-attribute-value',\n\t\tmessage: `Expected to close the attribute value with ${token}`\n\t}),\n\tunexpected_block_close: {\n\t\tcode: 'unexpected-block-close',\n\t\tmessage: 'Unexpected block closing tag'\n\t},\n\tunexpected_eof: {\n\t\tcode: 'unexpected-eof',\n\t\tmessage: 'Unexpected end of input'\n\t},\n\tunexpected_eof_token: (token: string) => ({\n\t\tcode: 'unexpected-eof',\n\t\tmessage: `Unexpected ${token}`\n\t}),\n\tunexpected_token: (token: string) => ({\n\t\tcode: 'unexpected-token',\n\t\tmessage: `Expected ${token}`\n\t}),\n\tunexpected_token_destructure: {\n\t\tcode: 'unexpected-token',\n\t\tmessage: 'Expected identifier or destructure pattern'\n\t}\n};\n","/**\n * @typedef { import('estree').Node} Node\n * @typedef {{\n * skip: () => void;\n * remove: () => void;\n * replace: (node: Node) => void;\n * }} WalkerContext\n */\n\nexport class WalkerBase {\n\tconstructor() {\n\t\t/** @type {boolean} */\n\t\tthis.should_skip = false;\n\n\t\t/** @type {boolean} */\n\t\tthis.should_remove = false;\n\n\t\t/** @type {Node | null} */\n\t\tthis.replacement = null;\n\n\t\t/** @type {WalkerContext} */\n\t\tthis.context = {\n\t\t\tskip: () => (this.should_skip = true),\n\t\t\tremove: () => (this.should_remove = true),\n\t\t\treplace: (node) => (this.replacement = node)\n\t\t};\n\t}\n\n\t/**\n\t * @template {Node} Parent\n\t * @param {Parent | null | undefined} parent\n\t * @param {keyof Parent | null | undefined} prop\n\t * @param {number | null | undefined} index\n\t * @param {Node} node\n\t */\n\treplace(parent, prop, index, node) {\n\t\tif (parent && prop) {\n\t\t\tif (index != null) {\n\t\t\t\t/** @type {Array<Node>} */ (parent[prop])[index] = node;\n\t\t\t} else {\n\t\t\t\t/** @type {Node} */ (parent[prop]) = node;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @template {Node} Parent\n\t * @param {Parent | null | undefined} parent\n\t * @param {keyof Parent | null | undefined} prop\n\t * @param {number | null | undefined} index\n\t */\n\tremove(parent, prop, index) {\n\t\tif (parent && prop) {\n\t\t\tif (index !== null && index !== undefined) {\n\t\t\t\t/** @type {Array<Node>} */ (parent[prop]).splice(index, 1);\n\t\t\t} else {\n\t\t\t\tdelete parent[prop];\n\t\t\t}\n\t\t}\n\t}\n}\n","import { WalkerBase } from './walker.js';\n\n/**\n * @typedef { import('estree').Node} Node\n * @typedef { import('./walker.js').WalkerContext} WalkerContext\n * @typedef {(\n * this: WalkerContext,\n * node: Node,\n * parent: Node | null,\n * key: string | number | symbol | null | undefined,\n * index: number | null | undefined\n * ) => void} SyncHandler\n */\n\nexport class SyncWalker extends WalkerBase {\n\t/**\n\t *\n\t * @param {SyncHandler} [enter]\n\t * @param {SyncHandler} [leave]\n\t */\n\tconstructor(enter, leave) {\n\t\tsuper();\n\n\t\t/** @type {boolean} */\n\t\tthis.should_skip = false;\n\n\t\t/** @type {boolean} */\n\t\tthis.should_remove = false;\n\n\t\t/** @type {Node | null} */\n\t\tthis.replacement = null;\n\n\t\t/** @type {WalkerContext} */\n\t\tthis.context = {\n\t\t\tskip: () => (this.should_skip = true),\n\t\t\tremove: () => (this.should_remove = true),\n\t\t\treplace: (node) => (this.replacement = node)\n\t\t};\n\n\t\t/** @type {SyncHandler | undefined} */\n\t\tthis.enter = enter;\n\n\t\t/** @type {SyncHandler | undefined} */\n\t\tthis.leave = leave;\n\t}\n\n\t/**\n\t * @template {Node} Parent\n\t * @param {Node} node\n\t * @param {Parent | null} parent\n\t * @param {keyof Parent} [prop]\n\t * @param {number | null} [index]\n\t * @returns {Node | null}\n\t */\n\tvisit(node, parent, prop, index) {\n\t\tif (node) {\n\t\t\tif (this.enter) {\n\t\t\t\tconst _should_skip = this.should_skip;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tthis.should_skip = false;\n\t\t\t\tthis.should_remove = false;\n\t\t\t\tthis.replacement = null;\n\n\t\t\t\tthis.enter.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst skipped = this.should_skip;\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.should_skip = _should_skip;\n\t\t\t\tthis.should_remove = _should_remove;\n\t\t\t\tthis.replacement = _replacement;\n\n\t\t\t\tif (skipped) return node;\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\n\t\t\t/** @type {keyof Node} */\n\t\t\tlet key;\n\n\t\t\tfor (key in node) {\n\t\t\t\t/** @type {unknown} */\n\t\t\t\tconst value = node[key];\n\n\t\t\t\tif (value && typeof value === 'object') {\n\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\tconst nodes = /** @type {Array<unknown>} */ (value);\n\t\t\t\t\t\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\t\t\t\t\t\tconst item = nodes[i];\n\t\t\t\t\t\t\tif (isNode(item)) {\n\t\t\t\t\t\t\t\tif (!this.visit(item, node, key, i)) {\n\t\t\t\t\t\t\t\t\t// removed\n\t\t\t\t\t\t\t\t\ti--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (isNode(value)) {\n\t\t\t\t\t\tthis.visit(value, node, key, null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.leave) {\n\t\t\t\tconst _replacement = this.replacement;\n\t\t\t\tconst _should_remove = this.should_remove;\n\t\t\t\tthis.replacement = null;\n\t\t\t\tthis.should_remove = false;\n\n\t\t\t\tthis.leave.call(this.context, node, parent, prop, index);\n\n\t\t\t\tif (this.replacement) {\n\t\t\t\t\tnode = this.replacement;\n\t\t\t\t\tthis.replace(parent, prop, index, node);\n\t\t\t\t}\n\n\t\t\t\tif (this.should_remove) {\n\t\t\t\t\tthis.remove(parent, prop, index);\n\t\t\t\t}\n\n\t\t\t\tconst removed = this.should_remove;\n\n\t\t\t\tthis.replacement = _replacement;\n\t\t\t\tthis.should_remove = _should_remove;\n\n\t\t\t\tif (removed) return null;\n\t\t\t}\n\t\t}\n\n\t\treturn node;\n\t}\n}\n\n/**\n * Ducktype a node.\n *\n * @param {unknown} value\n * @returns {value is Node}\n */\nfunction isNode(value) {\n\treturn (\n\t\tvalue !== null && typeof value === 'object' && 'type' in value && typeof value.type === 'string'\n\t);\n}\n","import { SyncWalker } from './sync.js';\nimport { AsyncWalker } from './async.js';\n\n/**\n * @typedef {import('estree').Node} Node\n * @typedef {import('./sync.js').SyncHandler} SyncHandler\n * @typedef {import('./async.js').AsyncHandler} AsyncHandler\n */\n\n/**\n * @param {Node} ast\n * @param {{\n * enter?: SyncHandler\n * leave?: SyncHandler\n * }} walker\n * @returns {Node | null}\n */\nexport function walk(ast, { enter, leave }) {\n\tconst instance = new SyncWalker(enter, leave);\n\treturn instance.visit(ast, null);\n}\n\n/**\n * @param {Node} ast\n * @param {{\n * enter?: AsyncHandler\n * leave?: AsyncHandler\n * }} walker\n * @returns {Promise<Node | null>}\n */\nexport async function asyncWalk(ast, { enter, leave }) {\n\tconst instance = new AsyncWalker(enter, leave);\n\treturn await instance.visit(ast, null);\n}\n","// generate an ID that is, to all intents and purposes, unique\nexport const id = Math.round(Math.random() * 1e20).toString(36);\nexport const re = new RegExp(`_${id}_(?:(\\\\d+)|(AT)|(HASH))_(\\\\w+)?`, 'g');\n","import { re } from './id.js';\n\n/** @typedef {import('estree').Comment} Comment */\n/** @typedef {import('estree').Node} Node */\n\n/**\n * @typedef {Node & {\n * start: number;\n * end: number;\n * has_trailing_newline?: boolean\n * }} NodeWithLocation\n */\n\n/**\n * @typedef {Comment & {\n * start: number;\n * end: number;\n * has_trailing_newline?: boolean\n * }} CommentWithLocation\n */\n\n/**\n * @param {CommentWithLocation[]} comments\n * @param {string} raw\n */\nexport const get_comment_handlers = (comments, raw) => ({\n\t// pass to acorn options\n\t/**\n\t * @param {boolean} block\n\t * @param {string} value\n\t * @param {number} start\n\t * @param {number} end\n\t */\n\tonComment: (block, value, start, end) => {\n\t\tif (block && /\\n/.test(value)) {\n\t\t\tlet a = start;\n\t\t\twhile (a > 0 && raw[a - 1] !== '\\n') a -= 1;\n\n\t\t\tlet b = a;\n\t\t\twhile (/[ \\t]/.test(raw[b])) b += 1;\n\n\t\t\tconst indentation = raw.slice(a, b);\n\t\t\tvalue = value.replace(new RegExp(`^${indentation}`, 'gm'), '');\n\t\t}\n\n\t\tcomments.push({ type: block ? 'Block' : 'Line', value, start, end });\n\t},\n\n\t// pass to estree-walker options\n\t/** @param {NodeWithLocation} node */\n\tenter(node) {\n\t\tlet comment;\n\n\t\twhile (comments[0] && comments[0].start < node.start) {\n\t\t\tcomment = comments.shift();\n\n\t\t\tcomment.value = comment.value.replace(\n\t\t\t\tre,\n\t\t\t\t(match, id, at, hash, value) => {\n\t\t\t\t\tif (hash) return `#${value}`;\n\t\t\t\t\tif (at) return `@${value}`;\n\n\t\t\t\t\treturn match;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tconst next = comments[0] || node;\n\t\t\tcomment.has_trailing_newline =\n\t\t\t\tcomment.type === 'Line' ||\n\t\t\t\t/\\n/.test(raw.slice(comment.end, next.start));\n\n\t\t\t(node.leadingComments || (node.leadingComments = [])).push(comment);\n\t\t}\n\t},\n\n\t/** @param {NodeWithLocation} node */\n\tleave(node) {\n\t\tif (comments[0]) {\n\t\t\tconst slice = raw.slice(node.end, comments[0].start);\n\n\t\t\tif (/^[,) \\t]*$/.test(slice)) {\n\t\t\t\tnode.trailingComments = [comments.shift()];\n\t\t\t}\n\t\t}\n\t}\n});\n","/** @typedef { import('estree').Node} Node */\n/** @typedef {Node | {\n * type: 'PropertyDefinition';\n * computed: boolean;\n * value: Node\n * }} NodeWithPropertyDefinition */\n\n/**\n *\n * @param {NodeWithPropertyDefinition} node\n * @param {NodeWithPropertyDefinition} parent\n * @returns {boolean}\n */\nexport default function is_reference (node, parent) {\n\tif (node.type === 'MemberExpression') {\n\t\treturn !node.computed && is_reference(node.object, node);\n\t}\n\n\tif (node.type === 'Identifier') {\n\t\tif (!parent) return true;\n\n\t\tswitch (parent.type) {\n\t\t\t// disregard `bar` in `foo.bar`\n\t\t\tcase 'MemberExpression': return parent.computed || node === parent.object;\n\n\t\t\t// disregard the `foo` in `class {foo(){}}` but keep it in `class {[foo](){}}`\n\t\t\tcase 'MethodDefinition': return parent.computed;\n\n\t\t\t// disregard the `foo` in `class {foo=bar}` but keep it in `class {[foo]=bar}` and `class {bar=foo}`\n\t\t\tcase 'PropertyDefinition': return parent.computed || node === parent.value;\n\n\t\t\t// disregard the `bar` in `{ bar: foo }`, but keep it in `{ [bar]: foo }`\n\t\t\tcase 'Property': return parent.computed || node === parent.value;\n\n\t\t\t// disregard the `bar` in `export { foo as bar }` or\n\t\t\t// the foo in `import { foo as bar }`\n\t\t\tcase 'ExportSpecifier':\n\t\t\tcase 'ImportSpecifier': return node === parent.local;\n\n\t\t\t// disregard the `foo` in `foo: while (...) { ... break foo; ... continue foo;}`\n\t\t\tcase 'LabeledStatement':\n\t\t\tcase 'BreakStatement':\n\t\t\tcase 'ContinueStatement': return false;\n\t\t\tdefault: return true;\n\t\t}\n\t}\n\n\treturn false;\n}\n","import { walk } from 'estree-walker';\nimport is_reference from 'is-reference';\n\n/** @param {import('estree').Node} expression */\nexport function analyze(expression) {\n\t/** @typedef {import('estree').Node} Node */\n\n\t/** @type {WeakMap<Node, Scope>} */\n\tconst map = new WeakMap();\n\n\t/** @type {Map<string, Node>} */\n\tconst globals = new Map();\n\n\tconst scope = new Scope(null, false);\n\n\t/** @type {[Scope, import('estree').Identifier][]} */\n\tconst references = [];\n\t/** @type {Scope} */\n\tlet current_scope = scope;\n\n\twalk(expression, {\n\t\tenter(node, parent) {\n\t\t\tswitch (node.type) {\n\t\t\t\tcase 'Identifier':\n\t\t\t\t\tif (parent && is_reference(node, parent)) {\n\t\t\t\t\t\treferences.push([current_scope, node]);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ImportDeclaration':\n\t\t\t\t\tnode.specifiers.forEach((specifier) => {\n\t\t\t\t\t\tcurrent_scope.declarations.set(specifier.local.name, specifier);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'FunctionExpression':\n\t\t\t\tcase 'FunctionDeclaration':\n\t\t\t\tcase 'ArrowFunctionExpression':\n\t\t\t\t\tif (node.type === 'FunctionDeclaration') {\n\t\t\t\t\t\tif (node.id) {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(node.id.name, node);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, false));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, false));\n\n\t\t\t\t\t\tif (node.type === 'FunctionExpression' && node.id) {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(node.id.name, node);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tnode.params.forEach(param => {\n\t\t\t\t\t\textract_names(param).forEach(name => {\n\t\t\t\t\t\t\tcurrent_scope.declarations.set(name, node);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ForStatement':\n\t\t\t\tcase 'ForInStatement':\n\t\t\t\tcase 'ForOfStatement':\n\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, true));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'BlockStatement':\n\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, true));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'ClassDeclaration':\n\t\t\t\tcase 'VariableDeclaration':\n\t\t\t\t\tcurrent_scope.add_declaration(node);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'CatchClause':\n\t\t\t\t\tmap.set(node, current_scope = new Scope(current_scope, true));\n\n\t\t\t\t\tif (node.param) {\n\t\t\t\t\t\textract_names(node.param).forEach(name => {\n\t\t\t\t\t\t\tif (node.param) {\n\t\t\t\t\t\t\t\tcurrent_scope.declarations.set(name, node.param);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\tleave(node) {\n\t\t\tif (map.has(node) && current_scope !== null && current_scope.parent) {\n\t\t\t\tcurrent_scope = current_scope.parent;\n\t\t\t}\n\t\t}\n\t});\n\n\tfor (let i = references.length - 1; i >= 0; --i) {\n\t\tconst [scope, reference] = references[i];\n\n\t\tif (!scope.references.has(reference.name)) {\n\t\t\tadd_reference(scope, reference.name);\n\t\t}\n\t\tif (!scope.find_owner(reference.name)) {\n\t\t\tglobals.set(reference.name, reference);\n\t\t}\n\t}\n\n\treturn { map, scope, globals };\n}\n\n/**\n * @param {Scope} scope\n * @param {string} name\n */\nfunction add_reference(scope, name) {\n\tscope.references.add(name);\n\tif (scope.parent) add_reference(scope.parent, name);\n}\n\nexport class Scope {\n\t/**\n\t * @param {Scope | null} parent \n\t * @param {boolean} block \n\t */\n\tconstructor(parent, block) {\n\t\t/** @type {Scope | null} */\n\t\tthis.parent = parent;\n\n\t\t/** @type {boolean} */\n\t\tthis.block = block;\n\n\t\t/** @type {Map<string, import('estree').Node>} */\n\t\tthis.declarations = new Map();\n\n\t\t/** @type {Set<string>} */\n\t\tthis.initialised_declarations = new Set();\n\n\t\t/** @type {Set<string>} */\n\t\tthis.references = new Set();\n\t}\n\n\t/**\n\t * @param {import('estree').VariableDeclaration | import('estree').ClassDeclaration} node\n\t */\n\tadd_declaration(node) {\n\t\tif (node.type === 'VariableDeclaration') {\n\t\t\tif (node.kind === 'var' && this.block && this.parent) {\n\t\t\t\tthis.parent.add_declaration(node);\n\t\t\t} else {\n\t\t\t\t/** @param {import('estree').VariableDeclarator} declarator */\n\t\t\t\tconst handle_declarator = (declarator) => {\n\t\t\t\t\textract_names(declarator.id).forEach(name => {\n\t\t\t\t\t\tthis.declarations.set(name, node);\n\t\t\t\t\t\tif (declarator.init) this.initialised_declarations.add(name);\n\t\t\t\t\t});;\n\t\t\t\t}\n\n\t\t\t\tnode.declarations.forEach(handle_declarator);\n\t\t\t}\n\t\t} else if (node.id) {\n\t\t\tthis.declarations.set(node.id.name, node);\n\t\t}\n\t}\n\n\t/**\n\t * @param {string} name\n\t * @returns {Scope | null}\n\t */\n\tfind_owner(name) {\n\t\tif (this.declarations.has(name)) return this;\n\t\treturn this.parent && this.parent.find_owner(name);\n\t}\n\n\t/**\n\t * @param {string} name\n\t * @returns {boolean}\n\t */\n\thas(name) {\n\t\treturn (\n\t\t\tthis.declarations.has(name) || (!!this.parent && this.parent.has(name))\n\t\t);\n\t}\n}\n\n/**\n * @param {import('estree').Node} param\n * @returns {string[]}\n */\nexport function extract_names(param) {\n\treturn extract_identifiers(param).map(node => node.name);\n}\n\n/**\n * @param {import('estree').Node} param\n * @param {import('estree').Identifier[]} nodes\n * @returns {import('estree').Identifier[]}\n */\nexport function extract_identifiers(param, nodes = []) {\n\tswitch (param.type) {\n\t\tcase 'Identifier':\n\t\t\tnodes.push(param);\n\t\t\tbreak;\n\n\t\tcase 'MemberExpression':\n\t\t\tlet object = param;\n\t\t\twhile (object.type === 'MemberExpression') {\n\t\t\t\tobject = /** @type {any} */ (object.object);\n\t\t\t}\n\t\t\tnodes.push(/** @type {any} */ (object));\n\t\t\tbreak;\n\n\t\tcase 'ObjectPattern':\n\t\t\t/** @param {import('estree').Property | import('estree').RestElement} prop */\n\t\t\tconst handle_prop = (prop) => {\n\t\t\t\tif (prop.type === 'RestElement') {\n\t\t\t\t\textract_identifiers(prop.argument, nodes);\n\t\t\t\t} else {\n\t\t\t\t\textract_identifiers(prop.value, nodes);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tparam.properties.forEach(handle_prop);\n\t\t\tbreak;\n\n\t\tcase 'ArrayPattern':\n\t\t\t/** @param {import('estree').Node} element */\n\t\t\tconst handle_element = (element) => {\n\t\t\t\tif (element) extract_identifiers(element, nodes);\n\t\t\t};\n\n\t\t\tparam.elements.forEach((element) => {\n\t\t\t\tif (element) {\n\t\t\t\t\thandle_element(element)\n\t\t\t\t}\n\t\t\t});\n\t\t\tbreak;\n\n\t\tcase 'RestElement':\n\t\t\textract_identifiers(param.argument, nodes);\n\t\t\tbreak;\n\n\t\tcase 'AssignmentPattern':\n\t\t\textract_identifiers(param.left, nodes);\n\t\t\tbreak;\n\t}\n\n\treturn nodes;\n}\n","/**\n * Does `array.push` for all `items`. Needed because `array.push(...items)` throws\n * \"Maximum call stack size exceeded\" when `items` is too big of an array.\n *\n * @param {any[]} array\n * @param {any[]} items\n */\nexport function push_array(array, items) {\n\tfor (let i = 0; i < items.length; i++) {\n\t\tarray.push(items[i]);\n\t}\n}\n","// heavily based on https://github.com/davidbonnet/astring\n// released under MIT license https://github.com/davidbonnet/astring/blob/master/LICENSE\n\nimport { re } from '../utils/id.js';\nimport { push_array } from '../utils/push_array.js';\n\n/** @typedef {import('estree').ArrowFunctionExpression} ArrowFunctionExpression */\n/** @typedef {import('estree').BinaryExpression} BinaryExpression */\n/** @typedef {import('estree').CallExpression} CallExpression */\n/** @typedef {import('estree').Comment} Comment */\n/** @typedef {import('estree').ExportSpecifier} ExportSpecifier */\n/** @typedef {import('estree').Expression} Expression */\n/** @typedef {import('estree').FunctionDeclaration} FunctionDeclaration */\n/** @typedef {import('estree').ImportDeclaration} ImportDeclaration */\n/** @typedef {import('estree').ImportSpecifier} ImportSpecifier */\n/** @typedef {import('estree').Literal} Literal */\n/** @typedef {import('estree').LogicalExpression} LogicalExpression */\n/** @typedef {import('estree').NewExpression} NewExpression */\n/** @typedef {import('estree').Node} Node */\n/** @typedef {import('estree').ObjectExpression} ObjectExpression */\n/** @typedef {import('estree').Pattern} Pattern */\n/** @typedef {import('estree').Property} Property */\n/** @typedef {import('estree').PropertyDefinition} PropertyDefinition */\n/** @typedef {import('estree').SequenceExpression} SequenceExpression */\n/** @typedef {import('estree').SimpleCallExpression} SimpleCallExpression */\n/** @typedef {import('estree').SwitchStatement} SwitchStatement */\n/** @typedef {import('estree').VariableDeclaration} VariableDeclaration */\n/** @typedef {import('estree').StaticBlock} StaticBlock */\n/** @typedef {import('estree').PrivateIdentifier} PrivateIdenifier*/\n\n/**\n * @typedef {{\n * content: string;\n * loc?: {\n * start: { line: number; column: number; };\n * end: { line: number; column: number; };\n * };\n * has_newline: boolean;\n * }} Chunk\n */\n\n/**\n * @typedef {(node: any, state: State) => Chunk[]} Handler\n */\n\n/**\n * @typedef {{\n * indent: string;\n * scope: any; // TODO import from periscopic\n * scope_map: WeakMap<Node, any>;\n * getName: (name: string) => string;\n * deconflicted: WeakMap<Node, Map<string, string>>;\n * comments: Comment[];\n * }} State\n */\n\n/**\n * @param {Node} node\n * @param {State} state\n * @returns {Chunk[]}\n */\nexport function handle(node, state) {\n\tconst handler = handlers[node.type];\n\n\tif (!handler) {\n\t\tthrow new Error(`Not implemented ${node.type}`);\n\t}\n\n\tconst result = handler(node, state);\n\n\tif (node.leadingComments) {\n\t\tresult.unshift(\n\t\t\tc(\n\t\t\t\tnode.leadingComments\n\t\t\t\t\t.map((comment) =>\n\t\t\t\t\t\tcomment.type === 'Block'\n\t\t\t\t\t\t\t? `/*${comment.value}*/${\n\t\t\t\t\t\t\t\t\t/** @type {any} */ (comment).has_trailing_newline\n\t\t\t\t\t\t\t\t\t\t? `\\n${state.indent}`\n\t\t\t\t\t\t\t\t\t\t: ` `\n\t\t\t\t\t\t\t }`\n\t\t\t\t\t\t\t: `//${comment.value}${\n\t\t\t\t\t\t\t\t\t/** @type {any} */ (comment).has_trailing_newline\n\t\t\t\t\t\t\t\t\t\t? `\\n${state.indent}`\n\t\t\t\t\t\t\t\t\t\t: ` `\n\t\t\t\t\t\t\t }`\n\t\t\t\t\t)\n\t\t\t\t\t.join(``)\n\t\t\t)\n\t\t);\n\t}\n\n\tif (node.trailingComments) {\n\t\tstate.comments.push(node.trailingComments[0]); // there is only ever one\n\t}\n\n\treturn result;\n}\n\n/**\n * @param {string} content\n * @param {Node} [node]\n * @returns {Chunk}\n */\nfunction c(content, node) {\n\treturn {\n\t\tcontent,\n\t\tloc: node && node.loc,\n\t\thas_newline: /\\n/.test(content)\n\t};\n}\n\nconst OPERATOR_PRECEDENCE = {\n\t'||': 2,\n\t'&&': 3,\n\t'??': 4,\n\t'|': 5,\n\t'^': 6,\n\t'&': 7,\n\t'==': 8,\n\t'!=': 8,\n\t'===': 8,\n\t'!==': 8,\n\t'<': 9,\n\t'>': 9,\n\t'<=': 9,\n\t'>=': 9,\n\tin: 9,\n\tinstanceof: 9,\n\t'<<': 10,\n\t'>>': 10,\n\t'>>>': 10,\n\t'+': 11,\n\t'-': 11,\n\t'*': 12,\n\t'%': 12,\n\t'/': 12,\n\t'**': 13\n};\n\n/** @type {Record<string, number>} */\nconst EXPRESSIONS_PRECEDENCE = {\n\tArrayExpression: 20,\n\tTaggedTemplateExpression: 20,\n\tThisExpression: 20,\n\tIdentifier: 20,\n\tLiteral: 18,\n\tTemplateLiteral: 20,\n\tSuper: 20,\n\tSequenceExpression: 20,\n\tMemberExpression: 19,\n\tCallExpression: 19,\n\tNewExpression: 19,\n\tAwaitExpression: 17,\n\tClassExpression: 17,\n\tFunctionExpression: 17,\n\tObjectExpression: 17,\n\tUpdateExpression: 16,\n\tUnaryExpression: 15,\n\tBinaryExpression: 14,\n\tLogicalExpression: 13,\n\tConditionalExpression: 4,\n\tArrowFunctionExpression: 3,\n\tAssignmentExpression: 3,\n\tYieldExpression: 2,\n\tRestElement: 1\n};\n\n/**\n *\n * @param {Expression} node\n * @param {BinaryExpression | LogicalExpression} parent\n * @param {boolean} is_right\n * @returns\n */\nfunction needs_parens(node, parent, is_right) {\n\t// special case where logical expressions and coalesce expressions cannot be mixed,\n\t// either of them need to be wrapped with parentheses\n\tif (\n\t\tnode.type === 'LogicalExpression' &&\n\t\tparent.type === 'LogicalExpression' &&\n\t\t((parent.operator === '??' && node.operator !== '??') ||\n\t\t\t(parent.operator !== '??' && node.operator === '??'))\n\t) {\n\t\treturn true;\n\t}\n\n\tconst precedence = EXPRESSIONS_PRECEDENCE[node.type];\n\tconst parent_precedence = EXPRESSIONS_PRECEDENCE[parent.type];\n\n\tif (precedence !== parent_precedence) {\n\t\t// Different node types\n\t\treturn (\n\t\t\t(!is_right &&\n\t\t\t\tprecedence === 15 &&\n\t\t\t\tparent_precedence === 14 &&\n\t\t\t\tparent.operator === '**') ||\n\t\t\tprecedence < parent_precedence\n\t\t);\n\t}\n\n\tif (precedence !== 13 && precedence !== 14) {\n\t\t// Not a `LogicalExpression` or `BinaryExpression`\n\t\treturn false;\n\t}\n\n\tif (\n\t\t/** @type {BinaryExpression} */ (node).operator === '**' &&\n\t\tparent.operator === '**'\n\t) {\n\t\t// Exponentiation operator has right-to-left associativity\n\t\treturn !is_right;\n\t}\n\n\tif (is_right) {\n\t\t// Parenthesis are used if both operators have the same precedence\n\t\treturn (\n\t\t\tOPERATOR_PRECEDENCE[/** @type {BinaryExpression} */ (node).operator] <=\n\t\t\tOPERATOR_PRECEDENCE[parent.operator]\n\t\t);\n\t}\n\n\treturn (\n\t\tOPERATOR_PRECEDENCE[/** @type {BinaryExpression} */ (node).operator] <\n\t\tOPERATOR_PRECEDENCE[parent.operator]\n\t);\n}\n\n/** @param {Node} node */\nfunction has_call_expression(node) {\n\twhile (node) {\n\t\tif (node.type[0] === 'CallExpression') {\n\t\t\treturn true;\n\t\t} else if (node.type === 'MemberExpression') {\n\t\t\tnode = node.object;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t}\n}\n\n/** @param {Chunk[]} chunks */\nconst has_newline = (chunks) => {\n\tfor (let i = 0; i < chunks.length; i += 1) {\n\t\tif (chunks[i].has_newline) return true;\n\t}\n\treturn false;\n};\n\n/** @param {Chunk[]} chunks */\nconst get_length = (chunks) => {\n\tlet total = 0;\n\tfor (let i = 0; i < chunks.length; i += 1) {\n\t\ttotal += chunks[i].content.length;\n\t}\n\treturn total;\n};\n\n/**\n * @param {number} a\n * @param {number} b\n */\nconst sum = (a, b) => a + b;\n\n/**\n * @param {Chunk[][]} nodes\n * @param {Chunk} separator\n * @returns {Chunk[]}\n */\nconst join = (nodes, separator) => {\n\tif (nodes.length === 0) return [];\n\n\tconst joined = [...nodes[0]];\n\tfor (let i = 1; i < nodes.length; i += 1) {\n\t\tjoined.push(separator);\n\t\tpush_array(joined, nodes[i]);\n\t}\n\treturn joined;\n};\n\n/**\n * @param {(node: any, state: State) => Chunk[]} fn\n */\nconst scoped = (fn) => {\n\t/**\n\t * @param {any} node\n\t * @param {State} state\n\t */\n\tconst scoped_fn = (node, state) => {\n\t\treturn fn(node, {\n\t\t\t...state,\n\t\t\tscope: state.scope_map.get(node)\n\t\t});\n\t};\n\n\treturn scoped_fn;\n};\n\n/**\n * @param {string} name\n * @param {Set<string>} names\n */\nconst deconflict = (name, names) => {\n\tconst original = name;\n\tlet i = 1;\n\n\twhile (names.has(name)) {\n\t\tname = `${original}$${i++}`;\n\t}\n\n\treturn name;\n};\n\n/**\n * @param {Node[]} nodes\n * @param {State} state\n */\nconst handle_body = (nodes, state) => {\n\tconst chunks = [];\n\n\tconst body = nodes.map((statement) => {\n\t\tconst chunks = handle(statement, {\n\t\t\t...state,\n\t\t\tindent: state.indent\n\t\t});\n\n\t\tlet add_newline = false;\n\n\t\twhile (state.comments.length) {\n\t\t\tconst comment = state.comments.shift();\n\t\t\tconst prefix = add_newline ? `\\n${state.indent}` : ` `;\n\n\t\t\tchunks.push(\n\t\t\t\tc(\n\t\t\t\t\tcomment.type === 'Block'\n\t\t\t\t\t\t? `${prefix}/*${comment.value}*/`\n\t\t\t\t\t\t: `${prefix}//${comment.value}`\n\t\t\t\t)\n\t\t\t);\n\n\t\t\tadd_newline = comment.type === 'Line';\n\t\t}\n\n\t\treturn chunks;\n\t});\n\n\tlet needed_padding = false;\n\n\tfor (let i = 0; i < body.length; i += 1) {\n\t\tconst needs_padding = has_newline(body[i]);\n\n\t\tif (i > 0) {\n\t\t\tchunks.push(\n\t\t\t\tc(\n\t\t\t\t\tneeds_padding || needed_padding\n\t\t\t\t\t\t? `\\n\\n${state.indent}`\n\t\t\t\t\t\t: `\\n${state.indent}`\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tpush_array(chunks, body[i]);\n\n\t\tneeded_padding = needs_padding;\n\t}\n\n\treturn chunks;\n};\n\n/**\n * @param {VariableDeclaration} node\n * @param {State} state\n */\nconst handle_var_declaration = (node, state) => {\n\tconst chunks = [c(`${node.kind} `)];\n\n\tconst declarators = node.declarations.map((d) =>\n\t\thandle(d, {\n\t\t\t...state,\n\t\t\tindent: state.indent + (node.declarations.length === 1 ? '' : '\\t')\n\t\t})\n\t);\n\n\tconst multiple_lines =\n\t\tdeclarators.some(has_newline) ||\n\t\tdeclarators.map(get_length).reduce(sum, 0) +\n\t\t\t(state.indent.length + declarators.length - 1) * 2 >\n\t\t\t80;\n\n\tconst separator = c(multiple_lines ? `,\\n${state.indent}\\t` : ', ');\n\n\tpush_array(chunks, join(declarators, separator));\n\n\treturn chunks;\n};\n\n/** @type {Record<string, Handler>} */\nconst handlers = {\n\tProgram(node, state) {\n\t\treturn handle_body(node.body, state);\n\t},\n\n\tBlockStatement: scoped((node, state) => {\n\t\treturn [\n\t\t\tc(`{\\n${state.indent}\\t`),\n\t\t\t...handle_body(node.body, { ...state, indent: state.indent + '\\t' }),\n\t\t\tc(`\\n${state.indent}}`)\n\t\t];\n\t}),\n\n\tEmptyStatement(node, state) {\n\t\treturn [c(';')];\n\t},\n\n\tParenthesizedExpression(node, state) {\n\t\treturn handle(node.expression, state);\n\t},\n\n\tExpressionStatement(node, state) {\n\t\tif (\n\t\t\tnode.expression.type === 'AssignmentExpression' &&\n\t\t\tnode.expression.left.type === 'ObjectPattern'\n\t\t) {\n\t\t\t// is an AssignmentExpression to an ObjectPattern\n\t\t\treturn [c('('), ...handle(node.expression, state), c(');')];\n\t\t}\n\n\t\treturn [...handle(node.expression, state), c(';')];\n\t},\n\n\tIfStatement(node, state) {\n\t\tconst chunks = [\n\t\t\tc('if ('),\n\t\t\t...handle(node.test, state),\n\t\t\tc(') '),\n\t\t\t...handle(node.consequent, state)\n\t\t];\n\n\t\tif (node.alternate) {\n\t\t\tchunks.push(c(' else '));\n\t\t\tpush_array(chunks, handle(node.alternate, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tLabeledStatement(node, state) {\n\t\treturn [...handle(node.label, state), c(': '), ...handle(node.body, state)];\n\t},\n\n\tBreakStatement(node, state) {\n\t\treturn node.label\n\t\t\t? [c('break '), ...handle(node.label, state), c(';')]\n\t\t\t: [c('break;')];\n\t},\n\n\tContinueStatement(node, state) {\n\t\treturn node.label\n\t\t\t? [c('continue '), ...handle(node.label, state), c(';')]\n\t\t\t: [c('continue;')];\n\t},\n\n\tWithStatement(node, state) {\n\t\treturn [\n\t\t\tc('with ('),\n\t\t\t...handle(node.object, state),\n\t\t\tc(') '),\n\t\t\t...handle(node.body, state)\n\t\t];\n\t},\n\n\tSwitchStatement(/** @type {SwitchStatement} */ node, state) {\n\t\tconst chunks = [\n\t\t\tc('switch ('),\n\t\t\t...handle(node.discriminant, state),\n\t\t\tc(') {')\n\t\t];\n\n\t\tnode.cases.forEach((block) => {\n\t\t\tif (block.test) {\n\t\t\t\tchunks.push(c(`\\n${state.indent}\\tcase `));\n\t\t\t\tpush_array(\n\t\t\t\t\tchunks,\n\t\t\t\t\thandle(block.test, { ...state, indent: `${state.indent}\\t` })\n\t\t\t\t);\n\t\t\t\tchunks.push(c(':'));\n\t\t\t} else {\n\t\t\t\tchunks.push(c(`\\n${state.indent}\\tdefault:`));\n\t\t\t}\n\n\t\t\tblock.consequent.forEach((statement) => {\n\t\t\t\tchunks.push(c(`\\n${state.indent}\\t\\t`));\n\t\t\t\tpush_array(\n\t\t\t\t\tchunks,\n\t\t\t\t\thandle(statement, { ...state, indent: `${state.indent}\\t\\t` })\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\n\t\tchunks.push(c(`\\n${state.indent}}`));\n\n\t\treturn chunks;\n\t},\n\n\tReturnStatement(node, state) {\n\t\tif (node.argument) {\n\t\t\tconst contains_comment =\n\t\t\t\tnode.argument.leadingComments &&\n\t\t\t\tnode.argument.leadingComments.some(\n\t\t\t\t\t(\n\t\t\t\t\t\t/** @type import('../utils/comments.js').CommentWithLocation */ comment\n\t\t\t\t\t) => comment.has_trailing_newline\n\t\t\t\t);\n\t\t\treturn [\n\t\t\t\tc(contains_comment ? 'return (' : 'return '),\n\t\t\t\t...handle(node.argument, state),\n\t\t\t\tc(contains_comment ? ');' : ';')\n\t\t\t];\n\t\t} else {\n\t\t\treturn [c('return;')];\n\t\t}\n\t},\n\n\tThrowStatement(node, state) {\n\t\treturn [c('throw '), ...handle(node.argument, state), c(';')];\n\t},\n\n\tTryStatement(node, state) {\n\t\tconst chunks = [c('try '), ...handle(node.block, state)];\n\n\t\tif (node.handler) {\n\t\t\tif (node.handler.param) {\n\t\t\t\tchunks.push(c(' catch('));\n\t\t\t\tpush_array(chunks, handle(node.handler.param, state));\n\t\t\t\tchunks.push(c(') '));\n\t\t\t} else {\n\t\t\t\tchunks.push(c(' catch '));\n\t\t\t}\n\n\t\t\tpush_array(chunks, handle(node.handler.body, state));\n\t\t}\n\n\t\tif (node.finalizer) {\n\t\t\tchunks.push(c(' finally '));\n\t\t\tpush_array(chunks, handle(node.finalizer, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tWhileStatement(node, state) {\n\t\treturn [\n\t\t\tc('while ('),\n\t\t\t...handle(node.test, state),\n\t\t\tc(') '),\n\t\t\t...handle(node.body, state)\n\t\t];\n\t},\n\n\tDoWhileStatement(node, state) {\n\t\treturn [\n\t\t\tc('do '),\n\t\t\t...handle(node.body, state),\n\t\t\tc(' while ('),\n\t\t\t...handle(node.test, state),\n\t\t\tc(');')\n\t\t];\n\t},\n\n\tForStatement: scoped((node, state) => {\n\t\tconst chunks = [c('for (')];\n\n\t\tif (node.init) {\n\t\t\tif (node.init.type === 'VariableDeclaration') {\n\t\t\t\tpush_array(chunks, handle_var_declaration(node.init, state));\n\t\t\t} else {\n\t\t\t\tpush_array(chunks, handle(node.init, state));\n\t\t\t}\n\t\t}\n\n\t\tchunks.push(c('; '));\n\t\tif (node.test) push_array(chunks, handle(node.test, state));\n\t\tchunks.push(c('; '));\n\t\tif (node.update) push_array(chunks, handle(node.update, state));\n\n\t\tchunks.push(c(') '));\n\t\tpush_array(chunks, handle(node.body, state));\n\n\t\treturn chunks;\n\t}),\n\n\tForInStatement: scoped((node, state) => {\n\t\tconst chunks = [c(`for ${node.await ? 'await ' : ''}(`)];\n\n\t\tif (node.left.type === 'VariableDeclaration') {\n\t\t\tpush_array(chunks, handle_var_declaration(node.left, state));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.left, state));\n\t\t}\n\n\t\tchunks.push(c(node.type === 'ForInStatement' ? ` in ` : ` of `));\n\t\tpush_array(chunks, handle(node.right, state));\n\t\tchunks.push(c(') '));\n\t\tpush_array(chunks, handle(node.body, state));\n\n\t\treturn chunks;\n\t}),\n\n\tDebuggerStatement(node, state) {\n\t\treturn [c('debugger', node), c(';')];\n\t},\n\n\tFunctionDeclaration: scoped(\n\t\t(/** @type {FunctionDeclaration} */ node, state) => {\n\t\t\tconst chunks = [];\n\n\t\t\tif (node.async) chunks.push(c('async '));\n\t\t\tchunks.push(c(node.generator ? 'function* ' : 'function '));\n\t\t\tif (node.id) push_array(chunks, handle(node.id, state));\n\t\t\tchunks.push(c('('));\n\n\t\t\tconst params = node.params.map((p) =>\n\t\t\t\thandle(p, {\n\t\t\t\t\t...state,\n\t\t\t\t\tindent: state.indent + '\\t'\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tconst multiple_lines =\n\t\t\t\tparams.some(has_newline) ||\n\t\t\t\tparams.map(get_length).reduce(sum, 0) +\n\t\t\t\t\t(state.indent.length + params.length - 1) * 2 >\n\t\t\t\t\t80;\n\n\t\t\tconst separator = c(multiple_lines ? `,\\n${state.indent}` : ', ');\n\n\t\t\tif (multiple_lines) {\n\t\t\t\tchunks.push(c(`\\n${state.indent}\\t`));\n\t\t\t\tpush_array(chunks, join(params, separator));\n\t\t\t\tchunks.push(c(`\\n${state.indent}`));\n\t\t\t} else {\n\t\t\t\tpush_array(chunks, join(params, separator));\n\t\t\t}\n\n\t\t\tchunks.push(c(') '));\n\t\t\tpush_array(chunks, handle(node.body, state));\n\n\t\t\treturn chunks;\n\t\t}\n\t),\n\n\tVariableDeclaration(node, state) {\n\t\treturn handle_var_declaration(node, state).concat(c(';'));\n\t},\n\n\tVariableDeclarator(node, state) {\n\t\tif (node.init) {\n\t\t\treturn [...handle(node.id, state), c(' = '), ...handle(node.init, state)];\n\t\t} else {\n\t\t\treturn handle(node.id, state);\n\t\t}\n\t},\n\n\tClassDeclaration(node, state) {\n\t\tconst chunks = [c('class ')];\n\n\t\tif (node.id) {\n\t\t\tpush_array(chunks, handle(node.id, state));\n\t\t\tchunks.push(c(' '));\n\t\t}\n\n\t\tif (node.superClass) {\n\t\t\tchunks.push(c('extends '));\n\t\t\tpush_array(chunks, handle(node.superClass, state));\n\t\t\tchunks.push(c(' '));\n\t\t}\n\n\t\tpush_array(chunks, handle(node.body, state));\n\n\t\treturn chunks;\n\t},\n\n\tImportDeclaration(/** @type {ImportDeclaration} */ node, state) {\n\t\tconst chunks = [c('import ')];\n\n\t\tconst { length } = node.specifiers;\n\t\tconst source = handle(node.source, state);\n\n\t\tif (length > 0) {\n\t\t\tlet i = 0;\n\n\t\t\twhile (i < length) {\n\t\t\t\tif (i > 0) {\n\t\t\t\t\tchunks.push(c(', '));\n\t\t\t\t}\n\n\t\t\t\tconst specifier = node.specifiers[i];\n\n\t\t\t\tif (specifier.type === 'ImportDefaultSpecifier') {\n\t\t\t\t\tchunks.push(c(specifier.local.name, specifier));\n\t\t\t\t\ti += 1;\n\t\t\t\t} else if (specifier.type === 'ImportNamespaceSpecifier') {\n\t\t\t\t\tchunks.push(c('* as ' + specifier.local.name, specifier));\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (i < length) {\n\t\t\t\t// we have named specifiers\n\t\t\t\tconst specifiers = node.specifiers\n\t\t\t\t\t.slice(i)\n\t\t\t\t\t.map((/** @type {ImportSpecifier} */ specifier) => {\n\t\t\t\t\t\tconst name = handle(specifier.imported, state)[0];\n\t\t\t\t\t\tconst as = handle(specifier.local, state)[0];\n\n\t\t\t\t\t\tif (name.content === as.content) {\n\t\t\t\t\t\t\treturn [as];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [name, c(' as '), as];\n\t\t\t\t\t});\n\n\t\t\t\tconst width =\n\t\t\t\t\tget_length(chunks) +\n\t\t\t\t\tspecifiers.map(get_length).reduce(sum, 0) +\n\t\t\t\t\t2 * specifiers.length +\n\t\t\t\t\t6 +\n\t\t\t\t\tget_length(source);\n\n\t\t\t\tif (width > 80) {\n\t\t\t\t\tchunks.push(c(`{\\n\\t`));\n\t\t\t\t\tpush_array(chunks, join(specifiers, c(',\\n\\t')));\n\t\t\t\t\tchunks.push(c('\\n}'));\n\t\t\t\t} else {\n\t\t\t\t\tchunks.push(c(`{ `));\n\t\t\t\t\tpush_array(chunks, join(specifiers, c(', ')));\n\t\t\t\t\tchunks.push(c(' }'));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchunks.push(c(' from '));\n\t\t}\n\n\t\tpush_array(chunks, source);\n\t\tchunks.push(c(';'));\n\n\t\treturn chunks;\n\t},\n\n\tImportExpression(node, state) {\n\t\treturn [c('import('), ...handle(node.source, state), c(')')];\n\t},\n\n\tExportDefaultDeclaration(node, state) {\n\t\tconst chunks = [c(`export default `), ...handle(node.declaration, state)];\n\n\t\tif (node.declaration.type !== 'FunctionDeclaration') {\n\t\t\tchunks.push(c(';'));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tExportNamedDeclaration(node, state) {\n\t\tconst chunks = [c('export ')];\n\n\t\tif (node.declaration) {\n\t\t\tpush_array(chunks, handle(node.declaration, state));\n\t\t} else {\n\t\t\tconst specifiers = node.specifiers.map(\n\t\t\t\t(/** @type {ExportSpecifier} */ specifier) => {\n\t\t\t\t\tconst name = handle(specifier.local, state)[0];\n\t\t\t\t\tconst as = handle(specifier.exported, state)[0];\n\n\t\t\t\t\tif (name.content === as.content) {\n\t\t\t\t\t\treturn [name];\n\t\t\t\t\t}\n\n\t\t\t\t\treturn [name, c(' as '), as];\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tconst width =\n\t\t\t\t7 + specifiers.map(get_length).reduce(sum, 0) + 2 * specifiers.length;\n\n\t\t\tif (width > 80) {\n\t\t\t\tchunks.push(c('{\\n\\t'));\n\t\t\t\tpush_array(chunks, join(specifiers, c(',\\n\\t')));\n\t\t\t\tchunks.push(c('\\n}'));\n\t\t\t} else {\n\t\t\t\tchunks.push(c('{ '));\n\t\t\t\tpush_array(chunks, join(specifiers, c(', ')));\n\t\t\t\tchunks.push(c(' }'));\n\t\t\t}\n\n\t\t\tif (node.source) {\n\t\t\t\tchunks.push(c(' from '));\n\t\t\t\tpush_array(chunks, handle(node.source, state));\n\t\t\t}\n\t\t}\n\n\t\tchunks.push(c(';'));\n\n\t\treturn chunks;\n\t},\n\n\tExportAllDeclaration(node, state) {\n\t\treturn [c(`export * from `), ...handle(node.source, state), c(`;`)];\n\t},\n\n\tMethodDefinition(node, state) {\n\t\tconst chunks = [];\n\n\t\tif (node.static) {\n\t\t\tchunks.push(c('static '));\n\t\t}\n\n\t\tif (node.kind === 'get' || node.kind === 'set') {\n\t\t\t// Getter or setter\n\t\t\tchunks.push(c(node.kind + ' '));\n\t\t}\n\n\t\tif (node.value.async) {\n\t\t\tchunks.push(c('async '));\n\t\t}\n\n\t\tif (node.value.generator) {\n\t\t\tchunks.push(c('*'));\n\t\t}\n\n\t\tif (node.computed) {\n\t\t\tchunks.push(c('['));\n\t\t\tpush_array(chunks, handle(node.key, state));\n\t\t\tchunks.push(c(']'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.key, state));\n\t\t}\n\n\t\tchunks.push(c('('));\n\n\t\tconst { params } = node.value;\n\t\tfor (let i = 0; i < params.length; i += 1) {\n\t\t\tpush_array(chunks, handle(params[i], state));\n\t\t\tif (i < params.length - 1) chunks.push(c(', '));\n\t\t}\n\n\t\tchunks.push(c(') '));\n\t\tpush_array(chunks, handle(node.value.body, state));\n\n\t\treturn chunks;\n\t},\n\n\tArrowFunctionExpression: scoped(\n\t\t(/** @type {ArrowFunctionExpression} */ node, state) => {\n\t\t\tconst chunks = [];\n\n\t\t\tif (node.async) chunks.push(c('async '));\n\n\t\t\tif (node.params.length === 1 && node.params[0].type === 'Identifier') {\n\t\t\t\tpush_array(chunks, handle(node.params[0], state));\n\t\t\t} else {\n\t\t\t\tconst params = node.params.map((param) =>\n\t\t\t\t\thandle(param, {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tindent: state.indent + '\\t'\n\t\t\t\t\t})\n\t\t\t\t);\n\n\t\t\t\tchunks.push(c('('));\n\t\t\t\tpush_array(chunks, join(params, c(', ')));\n\t\t\t\tchunks.push(c(')'));\n\t\t\t}\n\n\t\t\tchunks.push(c(' => '));\n\n\t\t\tif (\n\t\t\t\tnode.body.type === 'ObjectExpression' ||\n\t\t\t\t(node.body.type === 'AssignmentExpression' &&\n\t\t\t\t\tnode.body.left.type === 'ObjectPattern')\n\t\t\t) {\n\t\t\t\tchunks.push(c('('));\n\t\t\t\tpush_array(chunks, handle(node.body, state));\n\t\t\t\tchunks.push(c(')'));\n\t\t\t} else {\n\t\t\t\tpush_array(chunks, handle(node.body, state));\n\t\t\t}\n\n\t\t\treturn chunks;\n\t\t}\n\t),\n\n\tThisExpression(node, state) {\n\t\treturn [c('this', node)];\n\t},\n\n\tSuper(node, state) {\n\t\treturn [c('super', node)];\n\t},\n\n\tRestElement(node, state) {\n\t\treturn [c('...'), ...handle(node.argument, state)];\n\t},\n\n\tYieldExpression(node, state) {\n\t\tif (node.argument) {\n\t\t\treturn [\n\t\t\t\tc(node.delegate ? `yield* ` : `yield `),\n\t\t\t\t...handle(node.argument, state)\n\t\t\t];\n\t\t}\n\n\t\treturn [c(node.delegate ? `yield*` : `yield`)];\n\t},\n\n\tAwaitExpression(node, state) {\n\t\tif (node.argument) {\n\t\t\tconst precedence = EXPRESSIONS_PRECEDENCE[node.argument.type];\n\n\t\t\tif (precedence && precedence < EXPRESSIONS_PRECEDENCE.AwaitExpression) {\n\t\t\t\treturn [c('await ('), ...handle(node.argument, state), c(')')];\n\t\t\t} else {\n\t\t\t\treturn [c('await '), ...handle(node.argument, state)];\n\t\t\t}\n\t\t}\n\n\t\treturn [c('await')];\n\t},\n\n\tTemplateLiteral(node, state) {\n\t\tconst chunks = [c('`')];\n\n\t\tconst { quasis, expressions } = node;\n\n\t\tfor (let i = 0; i < expressions.length; i++) {\n\t\t\tchunks.push(c(quasis[i].value.raw), c('${'));\n\t\t\tpush_array(chunks, handle(expressions[i], state));\n\t\t\tchunks.push(c('}'));\n\t\t}\n\n\t\tchunks.push(c(quasis[quasis.length - 1].value.raw), c('`'));\n\n\t\treturn chunks;\n\t},\n\n\tTaggedTemplateExpression(node, state) {\n\t\treturn handle(node.tag, state).concat(handle(node.quasi, state));\n\t},\n\n\tArrayExpression(node, state) {\n\t\tconst chunks = [c('[')];\n\n\t\t/** @type {Chunk[][]} */\n\t\tconst elements = [];\n\n\t\t/** @type {Chunk[]} */\n\t\tlet sparse_commas = [];\n\n\t\tfor (let i = 0; i < node.elements.length; i += 1) {\n\t\t\t// can't use map/forEach because of sparse arrays\n\t\t\tconst element = node.elements[i];\n\t\t\tif (element) {\n\t\t\t\telements.push([\n\t\t\t\t\t...sparse_commas,\n\t\t\t\t\t...handle(element, {\n\t\t\t\t\t\t...state,\n\t\t\t\t\t\tindent: state.indent + '\\t'\n\t\t\t\t\t})\n\t\t\t\t]);\n\t\t\t\tsparse_commas = [];\n\t\t\t} else {\n\t\t\t\tsparse_commas.push(c(','));\n\t\t\t}\n\t\t}\n\n\t\tconst multiple_lines =\n\t\t\telements.some(has_newline) ||\n\t\t\telements.map(get_length).reduce(sum, 0) +\n\t\t\t\t(state.indent.length + elements.length - 1) * 2 >\n\t\t\t\t80;\n\n\t\tif (multiple_lines) {\n\t\t\tchunks.push(c(`\\n${state.indent}\\t`));\n\t\t\tpush_array(chunks, join(elements, c(`,\\n${state.indent}\\t`)));\n\t\t\tchunks.push(c(`\\n${state.indent}`));\n\t\t\tpush_array(chunks, sparse_commas);\n\t\t} else {\n\t\t\tpush_array(chunks, join(elements, c(', ')));\n\t\t\tpush_array(chunks, sparse_commas);\n\t\t}\n\n\t\tchunks.push(c(']'));\n\n\t\treturn chunks;\n\t},\n\n\tObjectExpression(/** @type {ObjectExpression} */ node, state) {\n\t\tif (node.properties.length === 0) {\n\t\t\treturn [c('{}')];\n\t\t}\n\n\t\tlet has_inline_comment = false;\n\n\t\t/** @type {Chunk[]} */\n\t\tconst chunks = [];\n\t\tconst separator = c(', ');\n\n\t\tnode.properties.forEach((p, i) => {\n\t\t\tpush_array(\n\t\t\t\tchunks,\n\t\t\t\thandle(p, {\n\t\t\t\t\t...state,\n\t\t\t\t\tindent: state.indent + '\\t'\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tif (state.comments.length) {\n\t\t\t\t// TODO generalise this, so it works with ArrayExpressions and other things.\n\t\t\t\t// At present, stuff will just get appended to the closest statement/declaration\n\t\t\t\tchunks.push(c(', '));\n\n\t\t\t\twhile (state.comments.length) {\n\t\t\t\t\tconst comment = state.comments.shift();\n\n\t\t\t\t\tchunks.push(\n\t\t\t\t\t\tc(\n\t\t\t\t\t\t\tcomment.type === 'Block'\n\t\t\t\t\t\t\t\t? `/*${comment.value}*/\\n${state.indent}\\t`\n\t\t\t\t\t\t\t\t: `//${comment.value}\\n${state.indent}\\t`\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\n\t\t\t\t\tif (comment.type === 'Line') {\n\t\t\t\t\t\thas_inline_comment = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (i < node.properties.length - 1) {\n\t\t\t\t\tchunks.push(separator);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tconst multiple_lines =\n\t\t\thas_inline_comment || has_newline(chunks) || get_length(chunks) > 40;\n\n\t\tif (multiple_lines) {\n\t\t\tseparator.content = `,\\n${state.indent}\\t`;\n\t\t}\n\n\t\treturn [\n\t\t\tc(multiple_lines ? `{\\n${state.indent}\\t` : `{ `),\n\t\t\t...chunks,\n\t\t\tc(multiple_lines ? `\\n${state.indent}}` : ` }`)\n\t\t];\n\t},\n\n\tProperty(node, state) {\n\t\tconst value = handle(node.value, state);\n\n\t\tif (node.key === node.value) {\n\t\t\treturn value;\n\t\t}\n\n\t\t// special case\n\t\tif (\n\t\t\t!node.computed &&\n\t\t\tnode.value.type === 'AssignmentPattern' &&\n\t\t\tnode.value.left.type === 'Identifier' &&\n\t\t\tnode.value.left.name === node.key.name\n\t\t) {\n\t\t\treturn value;\n\t\t}\n\n\t\tif (\n\t\t\t!node.computed &&\n\t\t\tnode.value.type === 'Identifier' &&\n\t\t\t((node.key.type === 'Identifier' && node.key.name === value[0].content) ||\n\t\t\t\t(node.key.type === 'Literal' && node.key.value === value[0].content))\n\t\t) {\n\t\t\treturn value;\n\t\t}\n\n\t\tconst key = handle(node.key, state);\n\n\t\tif (node.value.type === 'FunctionExpression' && !node.value.id) {\n\t\t\tstate = {\n\t\t\t\t...state,\n\t\t\t\tscope: state.scope_map.get(node.value)\n\t\t\t};\n\n\t\t\tconst chunks = node.kind !== 'init' ? [c(`${node.kind} `)] : [];\n\n\t\t\tif (node.value.async) {\n\t\t\t\tchunks.push(c('async '));\n\t\t\t}\n\t\t\tif (node.value.generator) {\n\t\t\t\tchunks.push(c('*'));\n\t\t\t}\n\n\t\t\tpush_array(chunks, node.computed ? [c('['), ...key, c(']')] : key);\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(\n\t\t\t\tchunks,\n\t\t\t\tjoin(\n\t\t\t\t\tnode.value.params.map((/** @type {Pattern} */ param) =>\n\t\t\t\t\t\thandle(param, state)\n\t\t\t\t\t),\n\t\t\t\t\tc(', ')\n\t\t\t\t)\n\t\t\t);\n\t\t\tchunks.push(c(') '));\n\t\t\tpush_array(chunks, handle(node.value.body, state));\n\n\t\t\treturn chunks;\n\t\t}\n\n\t\tif (node.computed) {\n\t\t\treturn [c('['), ...key, c(']: '), ...value];\n\t\t}\n\n\t\treturn [...key, c(': '), ...value];\n\t},\n\n\tObjectPattern(node, state) {\n\t\tconst chunks = [c('{ ')];\n\n\t\tfor (let i = 0; i < node.properties.length; i += 1) {\n\t\t\tpush_array(chunks, handle(node.properties[i], state));\n\t\t\tif (i < node.properties.length - 1) chunks.push(c(', '));\n\t\t}\n\n\t\tchunks.push(c(' }'));\n\n\t\treturn chunks;\n\t},\n\n\tSequenceExpression(/** @type {SequenceExpression} */ node, state) {\n\t\tconst expressions = node.expressions.map((e) => handle(e, state));\n\n\t\treturn [c('('), ...join(expressions, c(', ')), c(')')];\n\t},\n\n\tUnaryExpression(node, state) {\n\t\tconst chunks = [c(node.operator)];\n\n\t\tif (node.operator.length > 1) {\n\t\t\tchunks.push(c(' '));\n\t\t}\n\n\t\tif (\n\t\t\tEXPRESSIONS_PRECEDENCE[node.argument.type] <\n\t\t\tEXPRESSIONS_PRECEDENCE.UnaryExpression\n\t\t) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.argument, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.argument, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tUpdateExpression(node, state) {\n\t\treturn node.prefix\n\t\t\t? [c(node.operator), ...handle(node.argument, state)]\n\t\t\t: [...handle(node.argument, state), c(node.operator)];\n\t},\n\n\tAssignmentExpression(node, state) {\n\t\treturn [\n\t\t\t...handle(node.left, state),\n\t\t\tc(` ${node.operator || '='} `),\n\t\t\t...handle(node.right, state)\n\t\t];\n\t},\n\n\tBinaryExpression(node, state) {\n\t\t/**\n\t\t * @type any[]\n\t\t */\n\t\tconst chunks = [];\n\n\t\t// TODO\n\t\t// const is_in = node.operator === 'in';\n\t\t// if (is_in) {\n\t\t// \t// Avoids confusion in `for` loops initializers\n\t\t// \tchunks.push(c('('));\n\t\t// }\n\n\t\tif (needs_parens(node.left, node, false)) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.left, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.left, state));\n\t\t}\n\n\t\tchunks.push(c(` ${node.operator} `));\n\n\t\tif (needs_parens(node.right, node, true)) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.right, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.right, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tConditionalExpression(node, state) {\n\t\t/**\n\t\t * @type any[]\n\t\t */\n\t\tconst chunks = [];\n\n\t\tif (\n\t\t\tEXPRESSIONS_PRECEDENCE[node.test.type] >\n\t\t\tEXPRESSIONS_PRECEDENCE.ConditionalExpression\n\t\t) {\n\t\t\tpush_array(chunks, handle(node.test, state));\n\t\t} else {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.test, state));\n\t\t\tchunks.push(c(')'));\n\t\t}\n\n\t\tconst child_state = { ...state, indent: state.indent + '\\t' };\n\n\t\tconst consequent = handle(node.consequent, child_state);\n\t\tconst alternate = handle(node.alternate, child_state);\n\n\t\tconst multiple_lines =\n\t\t\thas_newline(consequent) ||\n\t\t\thas_newline(alternate) ||\n\t\t\tget_length(chunks) + get_length(consequent) + get_length(alternate) > 50;\n\n\t\tif (multiple_lines) {\n\t\t\tchunks.push(c(`\\n${state.indent}? `));\n\t\t\tpush_array(chunks, consequent);\n\t\t\tchunks.push(c(`\\n${state.indent}: `));\n\t\t\tpush_array(chunks, alternate);\n\t\t} else {\n\t\t\tchunks.push(c(` ? `));\n\t\t\tpush_array(chunks, consequent);\n\t\t\tchunks.push(c(` : `));\n\t\t\tpush_array(chunks, alternate);\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tNewExpression(/** @type {NewExpression} */ node, state) {\n\t\tconst chunks = [c('new ')];\n\n\t\tif (\n\t\t\tEXPRESSIONS_PRECEDENCE[node.callee.type] <\n\t\t\t\tEXPRESSIONS_PRECEDENCE.CallExpression ||\n\t\t\thas_call_expression(node.callee)\n\t\t) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.callee, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.callee, state));\n\t\t}\n\n\t\t// TODO this is copied from CallExpression — DRY it out\n\t\tconst args = node.arguments.map((arg) =>\n\t\t\thandle(arg, {\n\t\t\t\t...state,\n\t\t\t\tindent: state.indent + '\\t'\n\t\t\t})\n\t\t);\n\n\t\tconst separator = args.some(has_newline) // TODO or length exceeds 80\n\t\t\t? c(',\\n' + state.indent)\n\t\t\t: c(', ');\n\n\t\tchunks.push(c('('));\n\t\tpush_array(chunks, join(args, separator));\n\t\tchunks.push(c(')'));\n\n\t\treturn chunks;\n\t},\n\n\tChainExpression(node, state) {\n\t\treturn handle(node.expression, state);\n\t},\n\n\tCallExpression(/** @type {CallExpression} */ node, state) {\n\t\t/**\n\t\t * @type any[]\n\t\t */\n\t\tconst chunks = [];\n\n\t\tif (\n\t\t\tEXPRESSIONS_PRECEDENCE[node.callee.type] <\n\t\t\tEXPRESSIONS_PRECEDENCE.CallExpression\n\t\t) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.callee, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.callee, state));\n\t\t}\n\n\t\tif (/** @type {SimpleCallExpression} */ (node).optional) {\n\t\t\tchunks.push(c('?.'));\n\t\t}\n\n\t\tconst args = node.arguments.map((arg) => handle(arg, state));\n\n\t\tconst multiple_lines = args.slice(0, -1).some(has_newline); // TODO or length exceeds 80\n\n\t\tif (multiple_lines) {\n\t\t\t// need to handle args again. TODO find alternative approach?\n\t\t\tconst args = node.arguments.map((arg) =>\n\t\t\t\thandle(arg, {\n\t\t\t\t\t...state,\n\t\t\t\t\tindent: `${state.indent}\\t`\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tchunks.push(c(`(\\n${state.indent}\\t`));\n\t\t\tpush_array(chunks, join(args, c(`,\\n${state.indent}\\t`)));\n\t\t\tchunks.push(c(`\\n${state.indent})`));\n\t\t} else {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, join(args, c(', ')));\n\t\t\tchunks.push(c(')'));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tMemberExpression(node, state) {\n\t\t/**\n\t\t * @type any[]\n\t\t */\n\t\tconst chunks = [];\n\n\t\tif (\n\t\t\tEXPRESSIONS_PRECEDENCE[node.object.type] <\n\t\t\tEXPRESSIONS_PRECEDENCE.MemberExpression\n\t\t) {\n\t\t\tchunks.push(c('('));\n\t\t\tpush_array(chunks, handle(node.object, state));\n\t\t\tchunks.push(c(')'));\n\t\t} else {\n\t\t\tpush_array(chunks, handle(node.object, state));\n\t\t}\n\n\t\tif (node.computed) {\n\t\t\tif (node.optional) {\n\t\t\t\tchunks.push(c('?.'));\n\t\t\t}\n\t\t\tchunks.push(c('['));\n\t\t\tpush_array(chunks, handle(node.property, state));\n\t\t\tchunks.push(c(']'));\n\t\t} else {\n\t\t\tchunks.push(c(node.optional ? '?.' : '.'));\n\t\t\tpush_array(chunks, handle(node.property, state));\n\t\t}\n\n\t\treturn chunks;\n\t},\n\n\tMetaProperty(node, state) {\n\t\treturn [\n\t\t\t...handle(node.meta, state),\n\t\t\tc('.'),\n\t\t\t...handle(node.property, state)\n\t\t];\n\t},\n\n\tIdentifier(node, state) {\n\t\tlet name = node.name;\n\n\t\tif (name[0] === '@') {\n\t\t\tname = state.getName(name.slice(1));\n\t\t} else if (node.name[0] === '#') {\n\t\t\tconst owner = state.scope.find_owner(node.name);\n\n\t\t\tif (!owner) {\n\t\t\t\tthrow new Error(`Could not find owner for node`);\n\t\t\t}\n\n\t\t\tif (!state.deconflicted.has(owner)) {\n\t\t\t\tstate.deconflicted.set(owner, new Map());\n\t\t\t}\n\n\t\t\tconst deconflict_map = state.deconflicted.get(owner);\n\n\t\t\tif (!deconflict_map.has(node.name)) {\n\t\t\t\tdeconflict_map.set(\n\t\t\t\t\tnode.name,\n\t\t\t\t\tdeconflict(node.name.slice(1), owner.references)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tname = deconflict_map.get(node.name);\n\t\t}\n\n\t\treturn [c(name, node)];\n\t},\n\n\tLiteral(/** @type {Literal} */ node, state) {\n\t\tif (typeof node.value === 'string') {\n\t\t\treturn [\n\t\t\t\t// TODO do we need to handle weird unicode characters somehow?\n\t\t\t\t// str.replace(/\\\\u(\\d{4})/g, (m, n) => String.fromCharCode(+n))\n\t\t\t\tc(\n\t\t\t\t\t(node.raw || JSON.stringify(node.value)).replace(\n\t\t\t\t\t\tre,\n\t\t\t\t\t\t(_m, _i, at, hash, name) => {\n\t\t\t\t\t\t\tif (at) return '@' + name;\n\t\t\t\t\t\t\tif (hash) return '#' + name;\n\t\t\t\t\t\t\tthrow new Error(`this shouldn't happen`);\n\t\t\t\t\t\t}\n\t\t\t\t\t),\n\t\t\t\t\tnode\n\t\t\t\t)\n\t\t\t];\n\t\t}\n\n\t\treturn [c(node.raw || String(node.value), node)];\n\t},\n\n\tPropertyDefinition(/** @type {PropertyDefinition} */ node, state) {\n\t\tconst chunks = [];\n\n\t\tif (node.static) {\n\t\t\tchunks.push(c('static '));\n\t\t}\n\n\t\tif (node.computed) {\n\t\t\tchunks.push(c('['), ...handle(node.key, state), c(']'));\n\t\t} else {\n\t\t\tchunks.push(...handle(node.key, state));\n\t\t}\n\n\t\tif (node.value) {\n\t\t\tchunks.push(c(' = '));\n\n\t\t\tchunks.push(...handle(node.value, state));\n\t\t}\n\n\t\tchunks.push(c(';'));\n\n\t\treturn chunks;\n\t},\n\n\tStaticBlock(/** @type {StaticBlock} */ node, state) {\n\t\tconst chunks = [c('static ')];\n\n\t\tpush_array(chunks, handlers.BlockStatement(node, state));\n\n\t\treturn chunks;\n\t},\n\n\tPrivateIdentifier(/** @type {PrivateIdenifier} */ node, state) {\n\t\tconst chunks = [c('#')];\n\n\t\tpush_array(chunks, [c(node.name, node)]);\n\n\t\treturn chunks;\n\t}\n};\n\nhandlers.ForOfStatement = handlers.ForInStatement;\nhandlers.FunctionExpression = handlers.FunctionDeclaration;\nhandlers.ClassExpression = handlers.ClassDeclaration;\nhandlers.ClassBody = handlers.BlockStatement;\nhandlers.SpreadElement = handlers.RestElement;\nhandlers.ArrayPattern = handlers.ArrayExpression;\nhandlers.LogicalExpression = handlers.BinaryExpression;\nhandlers.AssignmentPattern = handlers.AssignmentExpression;\n","const comma = ','.charCodeAt(0);\nconst semicolon = ';'.charCodeAt(0);\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\nfor (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\n// Provide a fallback for older environments.\nconst td = typeof TextDecoder !== 'undefined'\n ? /* #__PURE__ */ new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf) {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\nfunction decode(mappings) {\n const state = new Int32Array(5);\n const decoded = [];\n let index = 0;\n do {\n const semi = indexOf(mappings, index);\n const line = [];\n let sorted = true;\n let lastCol = 0;\n state[0] = 0;\n for (let i = index; i < semi; i++) {\n let seg;\n i = decodeInteger(mappings, i, state, 0); // genColumn\n const col = state[0];\n if (col < lastCol)\n sorted = false;\n lastCol = col;\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 1); // sourcesIndex\n i = decodeInteger(mappings, i, state, 2); // sourceLine\n i = decodeInteger(mappings, i, state, 3); // sourceColumn\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 4); // namesIndex\n seg = [col, state[1], state[2], state[3], state[4]];\n }\n else {\n seg = [col, state[1], state[2], state[3]];\n }\n }\n else {\n seg = [col];\n }\n line.push(seg);\n }\n if (!sorted)\n sort(line);\n decoded.push(line);\n index = semi + 1;\n } while (index <= mappings.length);\n return decoded;\n}\nfunction indexOf(mappings, index) {\n const idx = mappings.indexOf(';', index);\n return idx === -1 ? mappings.length : idx;\n}\nfunction decodeInteger(mappings, pos, state, j) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = mappings.charCodeAt(pos++);\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n state[j] += value;\n return pos;\n}\nfunction hasMoreVlq(mappings, i, length) {\n if (i >= length)\n return false;\n return mappings.charCodeAt(i) !== comma;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const state = new Int32Array(5);\n const bufLength = 1024 * 16;\n const subLength = bufLength - 36;\n const buf = new Uint8Array(bufLength);\n const sub = buf.subarray(0, subLength);\n let pos = 0;\n let out = '';\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) {\n if (pos === bufLength) {\n out += td.decode(buf);\n pos = 0;\n }\n buf[pos++] = semicolon;\n }\n if (line.length === 0)\n continue;\n state[0] = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n // We can push up to 5 ints, each int can take at most 7 chars, and we\n // may push a comma.\n if (pos > subLength) {\n out += td.decode(sub);\n buf.copyWithin(0, subLength, pos);\n pos -= subLength;\n }\n if (j > 0)\n buf[pos++] = comma;\n pos = encodeInteger(buf, pos, state, segment, 0); // genColumn\n if (segment.length === 1)\n continue;\n pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex\n pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine\n pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn\n if (segment.length === 4)\n continue;\n pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex\n }\n }\n return out + td.decode(buf.subarray(0, pos));\n}\nfunction encodeInteger(buf, pos, state, segment, j) {\n const next = segment[j];\n let num = next - state[j];\n state[j] = next;\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n let clamped = num & 0b011111;\n num >>>= 5;\n if (num > 0)\n clamped |= 0b100000;\n buf[pos++] = intToChar[clamped];\n } while (num > 0);\n return pos;\n}\n\nexport { decode, encode };\n//# sourceMappingURL=sourcemap-codec.mjs.map\n","import * as perisopic from 'periscopic';\nimport { handle } from './handlers.js';\nimport { encode } from '@jridgewell/sourcemap-codec';\n\n/** @type {(str?: string) => string} str */\nlet btoa = () => {\n\tthrow new Error(\n\t\t'Unsupported environment: `window.btoa` or `Buffer` should be supported.'\n\t);\n};\n\nif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n\tbtoa = (str) => window.btoa(unescape(encodeURIComponent(str)));\n} else if (typeof Buffer === 'function') {\n\tbtoa = (str) => Buffer.from(str, 'utf-8').toString('base64');\n}\n\n/** @typedef {import('estree').Node} Node */\n\n/**\n * @typedef {{\n * file?: string;\n * sourceMapSource?: string;\n * sourceMapContent?: string;\n * sourceMapEncodeMappings?: boolean; // default true\n * getName?: (name: string) => string;\n * }} PrintOptions\n */\n\n/**\n * @param {Node} node\n * @param {PrintOptions} opts\n * @returns {{ code: string, map: any }} // TODO\n */\nexport function print(node, opts = {}) {\n\tif (Array.isArray(node)) {\n\t\treturn print(\n\t\t\t{\n\t\t\t\ttype: 'Program',\n\t\t\t\tbody: node,\n\t\t\t\tsourceType: 'module'\n\t\t\t},\n\t\t\topts\n\t\t);\n\t}\n\n\tconst {\n\t\tgetName = /** @param {string} x */ (x) => {\n\t\t\tthrow new Error(`Unhandled sigil @${x}`);\n\t\t}\n\t} = opts;\n\n\tlet { map: scope_map, scope } = perisopic.analyze(node);\n\tconst deconflicted = new WeakMap();\n\n\tconst chunks = handle(node, {\n\t\tindent: '',\n\t\tgetName,\n\t\tscope,\n\t\tscope_map,\n\t\tdeconflicted,\n\t\tcomments: []\n\t});\n\n\t/** @typedef {[number, number, number, number]} Segment */\n\n\tlet code = '';\n\tlet current_column = 0;\n\n\t/** @type {Segment[][]} */\n\tlet mappings = [];\n\n\t/** @type {Segment[]} */\n\tlet current_line = [];\n\n\tfor (let i = 0; i < chunks.length; i += 1) {\n\t\tconst chunk = chunks[i];\n\n\t\tcode += chunk.content;\n\n\t\tif (chunk.loc) {\n\t\t\tcurrent_line.push([\n\t\t\t\tcurrent_column,\n\t\t\t\t0, // source index is always zero\n\t\t\t\tchunk.loc.start.line - 1,\n\t\t\t\tchunk.loc.start.column\n\t\t\t]);\n\t\t}\n\n\t\tfor (let i = 0; i < chunk.content.length; i += 1) {\n\t\t\tif (chunk.content[i] === '\\n') {\n\t\t\t\tmappings.push(current_line);\n\t\t\t\tcurrent_line = [];\n\t\t\t\tcurrent_column = 0;\n\t\t\t} else {\n\t\t\t\tcurrent_column += 1;\n\t\t\t}\n\t\t}\n\n\t\tif (chunk.loc) {\n\t\t\tcurrent_line.push([\n\t\t\t\tcurrent_column,\n\t\t\t\t0, // source index is always zero\n\t\t\t\tchunk.loc.end.line - 1,\n\t\t\t\tchunk.loc.end.column\n\t\t\t]);\n\t\t}\n\t}\n\n\tmappings.push(current_line);\n\n\tconst map = {\n\t\tversion: 3,\n\t\t/** @type {string[]} */\n\t\tnames: [],\n\t\tsources: [opts.sourceMapSource || null],\n\t\tsourcesContent: [opts.sourceMapContent || null],\n\t\tmappings:\n\t\t\topts.sourceMapEncodeMappings == undefined || opts.sourceMapEncodeMappings\n\t\t\t\t? encode(mappings)\n\t\t\t\t: mappings\n\t};\n\n\tObject.defineProperties(map, {\n\t\ttoString: {\n\t\t\tenumerable: false,\n\t\t\tvalue: function toString() {\n\t\t\t\treturn JSON.stringify(this);\n\t\t\t}\n\t\t},\n\t\ttoUrl: {\n\t\t\tenumerable: false,\n\t\t\tvalue: function toUrl() {\n\t\t\t\treturn (\n\t\t\t\t\t'data:application/json;charset=utf-8;base64,' + btoa(this.toString())\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t});\n\n\treturn {\n\t\tcode,\n\t\tmap\n\t};\n}\n","import * as acorn from 'acorn';\nimport { walk } from 'estree-walker';\nimport { id, re } from './utils/id.js';\nimport { get_comment_handlers } from './utils/comments.js';\n\n/** @typedef {import('estree').Expression} Expression */\n/** @typedef {import('estree').Node} Node */\n/** @typedef {import('estree').ObjectExpression} ObjectExpression */\n/** @typedef {import('estree').Property} Property */\n/** @typedef {import('estree').SpreadElement} SpreadElement */\n\n/** @typedef {import('./utils/comments').CommentWithLocation} CommentWithLocation */\n\n/** @type {Record<string, string>} */\nconst sigils = {\n\t'@': 'AT',\n\t'#': 'HASH'\n};\n\n/** @param {TemplateStringsArray} strings */\nconst join = (strings) => {\n\tlet str = strings[0];\n\tfor (let i = 1; i < strings.length; i += 1) {\n\t\tstr += `_${id}_${i - 1}_${strings[i]}`;\n\t}\n\treturn str.replace(\n\t\t/([@#])(\\w+)/g,\n\t\t(_m, sigil, name) => `_${id}_${sigils[sigil]}_${name}`\n\t);\n};\n\n/**\n * @param {any[]} array\n * @param {any[]} target\n */\nconst flatten_body = (array, target) => {\n\tfor (let i = 0; i < array.length; i += 1) {\n\t\tconst statement = array[i];\n\t\tif (Array.isArray(statement)) {\n\t\t\tflatten_body(statement, target);\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (statement.type === 'ExpressionStatement') {\n\t\t\tif (statement.expression === EMPTY) continue;\n\n\t\t\tif (Array.isArray(statement.expression)) {\n\t\t\t\t// TODO this is hacktacular\n\t\t\t\tlet node = statement.expression[0];\n\t\t\t\twhile (Array.isArray(node)) node = node[0];\n\t\t\t\tif (node) node.leadingComments = statement.leadingComments;\n\n\t\t\t\tflatten_body(statement.expression, target);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (/(Expression|Literal)$/.test(statement.expression.type)) {\n\t\t\t\ttarget.push(statement);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (statement.leadingComments)\n\t\t\t\tstatement.expression.leadingComments = statement.leadingComments;\n\t\t\tif (statement.trailingComments)\n\t\t\t\tstatement.expression.trailingComments = statement.trailingComments;\n\n\t\t\ttarget.push(statement.expression);\n\t\t\tcontinue;\n\t\t}\n\n\t\ttarget.push(statement);\n\t}\n\n\treturn target;\n};\n\n/**\n * @param {any[]} array\n * @param {any[]} target\n */\nconst flatten_properties = (array, target) => {\n\tfor (let i = 0; i < array.length; i += 1) {\n\t\tconst property = array[i];\n\n\t\tif (property.value === EMPTY) continue;\n\n\t\tif (property.key === property.value && Array.isArray(property.key)) {\n\t\t\tflatten_properties(property.key, target);\n\t\t\tcontinue;\n\t\t}\n\n\t\ttarget.push(property);\n\t}\n\n\treturn target;\n};\n\n/**\n * @param {any[]} nodes\n * @param {any[]} target\n */\nconst flatten = (nodes, target) => {\n\tfor (let i = 0; i < nodes.length; i += 1) {\n\t\tconst node = nodes[i];\n\n\t\tif (node === EMPTY) continue;\n\n\t\tif (Array.isArray(node)) {\n\t\t\tflatten(node, target);\n\t\t\tcontinue;\n\t\t}\n\n\t\ttarget.push(node);\n\t}\n\n\treturn target;\n};\n\nconst EMPTY = { type: 'Empty' };\n\n/**\n *\n * @param {CommentWithLocation[]} comments\n * @param {string} raw\n * @returns {any}\n */\nconst acorn_opts = (comments, raw) => {\n\tconst { onComment } = get_comment_handlers(comments, raw);\n\treturn {\n\t\tecmaVersion: 2022,\n\t\tsourceType: 'module',\n\t\tallowAwaitOutsideFunction: true,\n\t\tallowImportExportEverywhere: true,\n\t\tallowReturnOutsideFunction: true,\n\t\tonComment\n\t};\n};\n\n/**\n * @param {string} raw\n * @param {Node} node\n * @param {any[]} values\n * @param {CommentWithLocation[]} comments\n */\nconst inject = (raw, node, values, comments) => {\n\tcomments.forEach((comment) => {\n\t\tcomment.value = comment.value.replace(re, (m, i) =>\n\t\t\t+i in values ? values[+i] : m\n\t\t);\n\t});\n\n\tconst { enter, leave } = get_comment_handlers(comments, raw);\n\n\treturn walk(node, {\n\t\tenter,\n\n\t\t/** @param {any} node */\n\t\tleave(node) {\n\t\t\tif (node.type === 'Identifier') {\n\t\t\t\tre.lastIndex = 0;\n\t\t\t\tconst match = re.exec(node.name);\n\n\t\t\t\tif (match) {\n\t\t\t\t\tif (match[1]) {\n\t\t\t\t\t\tif (+match[1] in values) {\n\t\t\t\t\t\t\tlet value = values[+match[1]];\n\n\t\t\t\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\t\ttype: 'Identifier',\n\t\t\t\t\t\t\t\t\tname: value,\n\t\t\t\t\t\t\t\t\tleadingComments: node.leadingComments,\n\t\t\t\t\t\t\t\t\ttrailingComments: node.trailingComments\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t} else if (typeof value === 'number') {\n\t\t\t\t\t\t\t\tvalue = {\n\t\t\t\t\t\t\t\t\ttype: 'Literal',\n\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t\tleadingComments: node.leadingComments,\n\t\t\t\t\t\t\t\t\ttrailingComments: node.trailingComments\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.replace(value || EMPTY);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnode.name = `${match[2] ? `@` : `#`}${match[4]}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.type === 'Literal') {\n\t\t\t\tif (typeof node.value === 'string') {\n\t\t\t\t\tre.lastIndex = 0;\n\t\t\t\t\tconst new_value = /** @type {string} */ (node.value).replace(\n\t\t\t\t\t\tre,\n\t\t\t\t\t\t(m, i) => (+i in values ? values[+i] : m)\n\t\t\t\t\t);\n\t\t\t\t\tconst has_changed = new_value !== node.value;\n\t\t\t\t\tnode.value = new_value;\n\t\t\t\t\tif (has_changed && node.raw) {\n\t\t\t\t\t\t// preserve the quotes\n\t\t\t\t\t\tnode.raw = `${node.raw[0]}${JSON.stringify(node.value).slice(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t-1\n\t\t\t\t\t\t)}${node.raw[node.raw.length - 1]}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.type === 'TemplateElement') {\n\t\t\t\tre.lastIndex = 0;\n\t\t\t\tnode.value.raw = /** @type {string} */ (node.value.raw).replace(\n\t\t\t\t\tre,\n\t\t\t\t\t(m, i) => (+i in values ? values[+i] : m)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (node.type === 'Program' || node.type === 'BlockStatement') {\n\t\t\t\tnode.body = flatten_body(node.body, []);\n\t\t\t}\n\n\t\t\tif (node.type === 'ObjectExpression' || node.type === 'ObjectPattern') {\n\t\t\t\tnode.properties = flatten_properties(node.properties, []);\n\t\t\t}\n\n\t\t\tif (node.type === 'ArrayExpression' || node.type === 'ArrayPattern') {\n\t\t\t\tnode.elements = flatten(node.elements, []);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tnode.type === 'FunctionExpression' ||\n\t\t\t\tnode.type === 'FunctionDeclaration' ||\n\t\t\t\tnode.type === 'ArrowFunctionExpression'\n\t\t\t) {\n\t\t\t\tnode.params = flatten(node.params, []);\n\t\t\t}\n\n\t\t\tif (node.type === 'CallExpression' || node.type === 'NewExpression') {\n\t\t\t\tnode.arguments = flatten(node.arguments, []);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tnode.type === 'ImportDeclaration' ||\n\t\t\t\tnode.type === 'ExportNamedDeclaration'\n\t\t\t) {\n\t\t\t\tnode.specifiers = flatten(node.specifiers, []);\n\t\t\t}\n\n\t\t\tif (node.type === 'ForStatement') {\n\t\t\t\tnode.init = node.init === EMPTY ? null : node.init;\n\t\t\t\tnode.test = node.test === EMPTY ? null : node.test;\n\t\t\t\tnode.update = node.update === EMPTY ? null : node.update;\n\t\t\t}\n\n\t\t\tleave(node);\n\t\t}\n\t});\n};\n\n/**\n *\n * @param {TemplateStringsArray} strings\n * @param {any[]} values\n * @returns {Node[]}\n */\nexport function b(strings, ...values) {\n\tconst str = join(strings);\n\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\n\ttry {\n\t\tlet ast = /** @type {any} */ (acorn.parse(str, acorn_opts(comments, str)));\n\n\t\tast = inject(str, ast, values, comments);\n\n\t\treturn ast.body;\n\t} catch (err) {\n\t\thandle_error(str, err);\n\t}\n}\n\n/**\n *\n * @param {TemplateStringsArray} strings\n * @param {any[]} values\n * @returns {Expression & { start: Number, end: number }}\n */\nexport function x(strings, ...values) {\n\tconst str = join(strings);\n\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\n\ttry {\n\t\tlet expression =\n\t\t\t/** @type {Expression & { start: Number, end: number }} */ (\n\t\t\t\tacorn.parseExpressionAt(str, 0, acorn_opts(comments, str))\n\t\t\t);\n\t\tconst match = /\\S+/.exec(str.slice(expression.end));\n\t\tif (match) {\n\t\t\tthrow new Error(`Unexpected token '${match[0]}'`);\n\t\t}\n\n\t\texpression = /** @type {Expression & { start: Number, end: number }} */ (\n\t\t\tinject(str, expression, values, comments)\n\t\t);\n\n\t\treturn expression;\n\t} catch (err) {\n\t\thandle_error(str, err);\n\t}\n}\n\n/**\n *\n * @param {TemplateStringsArray} strings\n * @param {any[]} values\n * @returns {(Property | SpreadElement) & { start: Number, end: number }}\n */\nexport function p(strings, ...values) {\n\tconst str = `{${join(strings)}}`;\n\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\n\ttry {\n\t\tlet expression = /** @type {any} */ (\n\t\t\tacorn.parseExpressionAt(str, 0, acorn_opts(comments, str))\n\t\t);\n\n\t\texpression = inject(str, expression, values, comments);\n\n\t\treturn expression.properties[0];\n\t} catch (err) {\n\t\thandle_error(str, err);\n\t}\n}\n\n/**\n * @param {string} str\n * @param {Error} err\n */\nfunction handle_error(str, err) {\n\t// TODO location/code frame\n\n\tre.lastIndex = 0;\n\n\tstr = str.replace(re, (m, i, at, hash, name) => {\n\t\tif (at) return `@${name}`;\n\t\tif (hash) return `#${name}`;\n\n\t\treturn '${...}';\n\t});\n\n\tconsole.log(`failed to parse:\\n${str}`);\n\tthrow err;\n}\n\nexport { print } from './print/index.js';\n\n/**\n * @param {string} source\n * @param {any} opts\n */\nexport const parse = (source, opts) => {\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\tconst { onComment, enter, leave } = get_comment_handlers(comments, source);\n\tconst ast = /** @type {any} */ (acorn.parse(source, { onComment, ...opts }));\n\twalk(ast, { enter, leave });\n\treturn ast;\n};\n\n/**\n * @param {string} source\n * @param {number} index\n * @param {any} opts\n */\nexport const parseExpressionAt = (source, index, opts) => {\n\t/** @type {CommentWithLocation[]} */\n\tconst comments = [];\n\tconst { onComment, enter, leave } = get_comment_handlers(comments, source);\n\tconst ast = /** @type {any} */ (\n\t\tacorn.parseExpressionAt(source, index, { onComment, ...opts })\n\t);\n\twalk(ast, { enter, leave });\n\treturn ast;\n};\n","import { Node } from 'acorn';\nimport * as code_red from 'code-red';\n\nexport const parse = (source: string): Node => code_red.parse(source, {\n\tsourceType: 'module',\n\tecmaVersion: 12,\n\tlocations: true\n});\n\nexport const parse_expression_at = (source: string, index: number): Node => code_red.parseExpressionAt(source, index, {\n\tsourceType: 'module',\n\tecmaVersion: 12,\n\tlocations: true\n});\n","import { parse_expression_at } from '../acorn';\nimport { Parser } from '../index';\nimport { Node } from 'estree';\nimport { regex_whitespace } from '../../utils/patterns';\nimport parser_errors from '../errors';\n\nexport default function read_expression(parser: Parser): Node {\n\ttry {\n\t\tconst node = parse_expression_at(parser.template, parser.index);\n\n\t\tlet num_parens = 0;\n\n\t\tfor (let i = parser.index; i < node.start; i += 1) {\n\t\t\tif (parser.template[i] === '(') num_parens += 1;\n\t\t}\n\n\t\tlet index = node.end;\n\t\twhile (num_parens > 0) {\n\t\t\tconst char = parser.template[index];\n\n\t\t\tif (char === ')') {\n\t\t\t\tnum_parens -= 1;\n\t\t\t} else if (!regex_whitespace.test(char)) {\n\t\t\t\tparser.error(parser_errors.unexpected_token(')'), index);\n\t\t\t}\n\n\t\t\tindex += 1;\n\t\t}\n\n\t\tparser.index = index;\n\n\t\treturn node as Node;\n\t} catch (err) {\n\t\tparser.acorn_error(err);\n\t}\n}\n","import * as acorn from '../acorn';\nimport { Parser } from '../index';\nimport { Script } from '../../interfaces';\nimport { Node, Program } from 'estree';\nimport parser_errors from '../errors';\nimport { regex_not_newline_characters } from '../../utils/patterns';\n\nconst regex_closing_script_tag = /<\\/script\\s*>/;\nconst regex_starts_with_closing_script_tag = /^<\\/script\\s*>/;\n\nfunction get_context(parser: Parser, attributes: any[], start: number): string {\n\tconst context = attributes.find(attribute => attribute.name === 'context');\n\tif (!context) return 'default';\n\n\tif (context.value.length !== 1 || context.value[0].type !== 'Text') {\n\t\tparser.error(parser_errors.invalid_script_context_attribute, start);\n\t}\n\n\tconst value = context.value[0].data;\n\n\tif (value !== 'module') {\n\t\tparser.error(parser_errors.invalid_script_context_value, context.start);\n\t}\n\n\treturn value;\n}\n\nexport default function read_script(parser: Parser, start: number, attributes: Node[]): Script {\n\tconst script_start = parser.index;\n\tconst data = parser.read_until(regex_closing_script_tag, parser_errors.unclosed_script);\n\tif (parser.index >= parser.template.length) {\n\t\tparser.error(parser_errors.unclosed_script);\n\t}\n\n\tconst source = parser.template.slice(0, script_start).replace(regex_not_newline_characters, ' ') + data;\n\tparser.read(regex_starts_with_closing_script_tag);\n\n\tlet ast: Program;\n\n\ttry {\n\t\tast = acorn.parse(source) as any as Program;\n\t} catch (err) {\n\t\tparser.acorn_error(err);\n\t}\n\n\t// TODO is this necessary?\n\t(ast as any).start = script_start;\n\n\treturn {\n\t\ttype: 'Script',\n\t\tstart,\n\t\tend: parser.index,\n\t\tcontext: get_context(parser, attributes, start),\n\t\tcontent: ast\n\t};\n}\n","//\n// list\n// ┌──────┐\n// ┌──────────────┼─head │\n// │ │ tail─┼──────────────┐\n// │ └──────┘ │\n// ▼ ▼\n// item item item item\n// ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐\n// null ◀──┼─prev │◀───┼─prev │◀───┼─prev │◀───┼─prev │\n// │ next─┼───▶│ next─┼───▶│ next─┼───▶│ next─┼──▶ null\n// ├──────┤ ├──────┤ ├──────┤ ├──────┤\n// │ data │ │ data │ │ data │ │ data │\n// └──────┘ └──────┘ └──────┘ └──────┘\n//\n\nlet releasedCursors = null;\n\nexport class List {\n static createItem(data) {\n return {\n prev: null,\n next: null,\n data\n };\n }\n\n constructor() {\n this.head = null;\n this.tail = null;\n this.cursor = null;\n }\n createItem(data) {\n return List.createItem(data);\n }\n\n // cursor helpers\n allocateCursor(prev, next) {\n let cursor;\n\n if (releasedCursors !== null) {\n cursor = releasedCursors;\n releasedCursors = releasedCursors.cursor;\n cursor.prev = prev;\n cursor.next = next;\n cursor.cursor = this.cursor;\n } else {\n cursor = {\n prev,\n next,\n cursor: this.cursor\n };\n }\n\n this.cursor = cursor;\n\n return cursor;\n }\n releaseCursor() {\n const { cursor } = this;\n\n this.cursor = cursor.cursor;\n cursor.prev = null;\n cursor.next = null;\n cursor.cursor = releasedCursors;\n releasedCursors = cursor;\n }\n updateCursors(prevOld, prevNew, nextOld, nextNew) {\n let { cursor } = this;\n\n while (cursor !== null) {\n if (cursor.prev === prevOld) {\n cursor.prev = prevNew;\n }\n\n if (cursor.next === nextOld) {\n cursor.next = nextNew;\n }\n\n cursor = cursor.cursor;\n }\n }\n *[Symbol.iterator]() {\n for (let cursor = this.head; cursor !== null; cursor = cursor.next) {\n yield cursor.data;\n }\n }\n\n // getters\n get size() {\n let size = 0;\n\n for (let cursor = this.head; cursor !== null; cursor = cursor.next) {\n size++;\n }\n\n return size;\n }\n get isEmpty() {\n return this.head === null;\n }\n get first() {\n return this.head && this.head.data;\n }\n get last() {\n return this.tail && this.tail.data;\n }\n\n // convertors\n fromArray(array) {\n let cursor = null;\n this.head = null;\n\n for (let data of array) {\n const item = List.createItem(data);\n\n if (cursor !== null) {\n cursor.next = item;\n } else {\n this.head = item;\n }\n\n item.prev = cursor;\n cursor = item;\n }\n\n this.tail = cursor;\n return this;\n }\n toArray() {\n return [...this];\n }\n toJSON() {\n return [...this];\n }\n\n // array-like methods\n forEach(fn, thisArg = this) {\n // push cursor\n const cursor = this.allocateCursor(null, this.head);\n\n while (cursor.next !== null) {\n const item = cursor.next;\n cursor.next = item.next;\n fn.call(thisArg, item.data, item, this);\n }\n\n // pop cursor\n this.releaseCursor();\n }\n forEachRight(fn, thisArg = this) {\n // push cursor\n const cursor = this.allocateCursor(this.tail, null);\n\n while (cursor.prev !== null) {\n const item = cursor.prev;\n cursor.prev = item.prev;\n fn.call(thisArg, item.data, item, this);\n }\n\n // pop cursor\n this.releaseCursor();\n }\n reduce(fn, initialValue, thisArg = this) {\n // push cursor\n let cursor = this.allocateCursor(null, this.head);\n let acc = initialValue;\n let item;\n\n while (cursor.next !== null) {\n item = cursor.next;\n cursor.next = item.next;\n\n acc = fn.call(thisArg, acc, item.data, item, this);\n }\n\n // pop cursor\n this.releaseCursor();\n\n return acc;\n }\n reduceRight(fn, initialValue, thisArg = this) {\n // push cursor\n let cursor = this.allocateCursor(this.tail, null);\n let acc = initialValue;\n let item;\n\n while (cursor.prev !== null) {\n item = cursor.prev;\n cursor.prev = item.prev;\n\n acc = fn.call(thisArg, acc, item.data, item, this);\n }\n\n // pop cursor\n this.releaseCursor();\n\n return acc;\n }\n some(fn, thisArg = this) {\n for (let cursor = this.head; cursor !== null; cursor = cursor.next) {\n if (fn.call(thisArg, cursor.data, cursor, this)) {\n return true;\n }\n }\n\n return false;\n }\n map(fn, thisArg = this) {\n const result = new List();\n\n for (let cursor = this.head; cursor !== null; cursor = cursor.next) {\n result.appendData(fn.call(thisArg, cursor.data, cursor, this));\n }\n\n return result;\n }\n filter(fn, thisArg = this) {\n const result = new List();\n\n for (let cursor = this.head; cursor !== null; cursor = cursor.next) {\n if (fn.call(thisArg, cursor.data, cursor, this)) {\n result.appendData(cursor.data);\n }\n }\n\n return result;\n }\n\n nextUntil(start, fn, thisArg = this) {\n if (start === null) {\n return;\n }\n\n // push cursor\n const cursor = this.allocateCursor(null, start);\n\n while (cursor.next !== null) {\n const item = cursor.next;\n cursor.next = item.next;\n if (fn.call(thisArg, item.data, item, this)) {\n break;\n }\n }\n\n // pop cursor\n this.releaseCursor();\n }\n prevUntil(start, fn, thisArg = this) {\n if (start === null) {\n return;\n }\n\n // push cursor\n const cursor = this.allocateCursor(start, null);\n\n while (cursor.prev !== null) {\n const item = cursor.prev;\n cursor.prev = item.prev;\n if (fn.call(thisArg, item.data, item, this)) {\n break;\n }\n }\n\n // pop cursor\n this.releaseCursor();\n }\n\n // mutation\n clear() {\n this.head = null;\n this.tail = null;\n }\n copy() {\n const result = new List();\n\n for (let data of this) {\n result.appendData(data);\n }\n\n return result;\n }\n prepend(item) {\n // head\n // ^\n // item\n this.updateCursors(null, item, this.head, item);\n\n // insert to the beginning of the list\n if (this.head !== null) {\n // new item <- first item\n this.head.prev = item;\n // new item -> first item\n item.next = this.head;\n } else {\n // if list has no head, then it also has no tail\n // in this case tail points to the new item\n this.tail = item;\n }\n\n // head always points to new item\n this.head = item;\n return this;\n }\n prependData(data) {\n return this.prepend(List.createItem(data));\n }\n append(item) {\n return this.insert(item);\n }\n appendData(data) {\n return this.insert(List.createItem(data));\n }\n insert(item, before = null) {\n if (before !== null) {\n // prev before\n // ^\n // item\n this.updateCursors(before.prev, item, before, item);\n\n if (before.prev === null) {\n // insert to the beginning of list\n if (this.head !== before) {\n throw new Error('before doesn\\'t belong to list');\n }\n // since head points to before therefore list doesn't empty\n // no need to check tail\n this.head = item;\n before.prev = item;\n item.next = before;\n this.updateCursors(null, item);\n } else {\n // insert between two items\n before.prev.next = item;\n item.prev = before.prev;\n before.prev = item;\n item.next = before;\n }\n } else {\n // tail\n // ^\n // item\n this.updateCursors(this.tail, item, null, item);\n\n // insert to the ending of the list\n if (this.tail !== null) {\n // last item -> new item\n this.tail.next = item;\n // last item <- new item\n item.prev = this.tail;\n } else {\n // if list has no tail, then it also has no head\n // in this case head points to new item\n this.head = item;\n }\n\n // tail always points to new item\n this.tail = item;\n }\n\n return this;\n }\n insertData(data, before) {\n return this.insert(List.createItem(data), before);\n }\n remove(item) {\n // item\n // ^\n // prev next\n this.updateCursors(item, item.prev, item, item.next);\n\n if (item.prev !== null) {\n item.prev.next = item.next;\n } else {\n if (this.head !== item) {\n throw new Error('item doesn\\'t belong to list');\n }\n\n this.head = item.next;\n }\n\n if (item.next !== null) {\n item.next.prev = item.prev;\n } else {\n if (this.tail !== item) {\n throw new Error('item doesn\\'t belong to list');\n }\n\n this.tail = item.prev;\n }\n\n item.prev = null;\n item.next = null;\n\n return item;\n }\n push(data) {\n this.insert(List.createItem(data));\n }\n pop() {\n return this.tail !== null ? this.remove(this.tail) : null;\n }\n unshift(data) {\n this.prepend(List.createItem(data));\n }\n shift() {\n return this.head !== null ? this.remove(this.head) : null;\n }\n prependList(list) {\n return this.insertList(list, this.head);\n }\n appendList(list) {\n return this.insertList(list);\n }\n insertList(list, before) {\n // ignore empty lists\n if (list.head === null) {\n return this;\n }\n\n if (before !== undefined && before !== null) {\n this.updateCursors(before.prev, list.tail, before, list.head);\n\n // insert in the middle of dist list\n if (before.prev !== null) {\n // before.prev <-> list.head\n before.prev.next = list.head;\n list.head.prev = before.prev;\n } else {\n this.head = list.head;\n }\n\n before.prev = list.tail;\n list.tail.next = before;\n } else {\n this.updateCursors(this.tail, list.tail, null, list.head);\n\n // insert to end of the list\n if (this.tail !== null) {\n // if destination list has a tail, then it also has a head,\n // but head doesn't change\n // dest tail -> source head\n this.tail.next = list.head;\n // dest tail <- source head\n list.head.prev = this.tail;\n } else {\n // if list has no a tail, then it also has no a head\n // in this case points head to new item\n this.head = list.head;\n }\n\n // tail always start point to new item\n this.tail = list.tail;\n }\n\n list.head = null;\n list.tail = null;\n return this;\n }\n replace(oldItem, newItemOrList) {\n if ('head' in newItemOrList) {\n this.insertList(newItemOrList, oldItem);\n } else {\n this.insert(newItemOrList, oldItem);\n }\n\n this.remove(oldItem);\n }\n}\n","export function createCustomError(name, message) {\n // use Object.create(), because some VMs prevent setting line/column otherwise\n // (iOS Safari 10 even throws an exception)\n const error = Object.create(SyntaxError.prototype);\n const errorStack = new Error();\n\n return Object.assign(error, {\n name,\n message,\n get stack() {\n return (errorStack.stack || '').replace(/^(.+\\n){1,3}/, `${name}: ${message}\\n`);\n }\n });\n};\n","import { createCustomError } from '../utils/create-custom-error.js';\n\nconst MAX_LINE_LENGTH = 100;\nconst OFFSET_CORRECTION = 60;\nconst TAB_REPLACEMENT = ' ';\n\nfunction sourceFragment({ source, line, column }, extraLines) {\n function processLines(start, end) {\n return lines\n .slice(start, end)\n .map((line, idx) =>\n String(start + idx + 1).padStart(maxNumLength) + ' |' + line\n ).join('\\n');\n }\n\n const lines = source.split(/\\r\\n?|\\n|\\f/);\n const startLine = Math.max(1, line - extraLines) - 1;\n const endLine = Math.min(line + extraLines, lines.length + 1);\n const maxNumLength = Math.max(4, String(endLine).length) + 1;\n let cutLeft = 0;\n\n // column correction according to replaced tab before column\n column += (TAB_REPLACEMENT.length - 1) * (lines[line - 1].substr(0, column - 1).match(/\\t/g) || []).length;\n\n if (column > MAX_LINE_LENGTH) {\n cutLeft = column - OFFSET_CORRECTION + 3;\n column = OFFSET_CORRECTION - 2;\n }\n\n for (let i = startLine; i <= endLine; i++) {\n if (i >= 0 && i < lines.length) {\n lines[i] = lines[i].replace(/\\t/g, TAB_REPLACEMENT);\n lines[i] =\n (cutLeft > 0 && lines[i].length > cutLeft ? '\\u2026' : '') +\n lines[i].substr(cutLeft, MAX_LINE_LENGTH - 2) +\n (lines[i].length > cutLeft + MAX_LINE_LENGTH - 1 ? '\\u2026' : '');\n }\n }\n\n return [\n processLines(startLine, line),\n new Array(column + maxNumLength + 2).join('-') + '^',\n processLines(line, endLine)\n ].filter(Boolean).join('\\n');\n}\n\nexport function SyntaxError(message, source, offset, line, column) {\n const error = Object.assign(createCustomError('SyntaxError', message), {\n source,\n offset,\n line,\n column,\n sourceFragment(extraLines) {\n return sourceFragment({ source, line, column }, isNaN(extraLines) ? 0 : extraLines);\n },\n get formattedMessage() {\n return (\n `Parse error: ${message}\\n` +\n sourceFragment({ source, line, column }, 2)\n );\n }\n });\n\n return error;\n}\n","// CSS Syntax Module Level 3\n// https://www.w3.org/TR/css-syntax-3/\nexport const EOF = 0; // <EOF-token>\nexport const Ident = 1; // <ident-token>\nexport const Function = 2; // <function-token>\nexport const AtKeyword = 3; // <at-keyword-token>\nexport const Hash = 4; // <hash-token>\nexport const String = 5; // <string-token>\nexport const BadString = 6; // <bad-string-token>\nexport const Url = 7; // <url-token>\nexport const BadUrl = 8; // <bad-url-token>\nexport const Delim = 9; // <delim-token>\nexport const Number = 10; // <number-token>\nexport const Percentage = 11; // <percentage-token>\nexport const Dimension = 12; // <dimension-token>\nexport const WhiteSpace = 13; // <whitespace-token>\nexport const CDO = 14; // <CDO-token>\nexport const CDC = 15; // <CDC-token>\nexport const Colon = 16; // <colon-token> :\nexport const Semicolon = 17; // <semicolon-token> ;\nexport const Comma = 18; // <comma-token> ,\nexport const LeftSquareBracket = 19; // <[-token>\nexport const RightSquareBracket = 20; // <]-token>\nexport const LeftParenthesis = 21; // <(-token>\nexport const RightParenthesis = 22; // <)-token>\nexport const LeftCurlyBracket = 23; // <{-token>\nexport const RightCurlyBracket = 24; // <}-token>\nexport const Comment = 25;\n","const EOF = 0;\n\n// https://drafts.csswg.org/css-syntax-3/\n// § 4.2. Definitions\n\n// digit\n// A code point between U+0030 DIGIT ZERO (0) and U+0039 DIGIT NINE (9).\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n\n// hex digit\n// A digit, or a code point between U+0041 LATIN CAPITAL LETTER A (A) and U+0046 LATIN CAPITAL LETTER F (F),\n// or a code point between U+0061 LATIN SMALL LETTER A (a) and U+0066 LATIN SMALL LETTER F (f).\nexport function isHexDigit(code) {\n return (\n isDigit(code) || // 0 .. 9\n (code >= 0x0041 && code <= 0x0046) || // A .. F\n (code >= 0x0061 && code <= 0x0066) // a .. f\n );\n}\n\n// uppercase letter\n// A code point between U+0041 LATIN CAPITAL LETTER A (A) and U+005A LATIN CAPITAL LETTER Z (Z).\nexport function isUppercaseLetter(code) {\n return code >= 0x0041 && code <= 0x005A;\n}\n\n// lowercase letter\n// A code point between U+0061 LATIN SMALL LETTER A (a) and U+007A LATIN SMALL LETTER Z (z).\nexport function isLowercaseLetter(code) {\n return code >= 0x0061 && code <= 0x007A;\n}\n\n// letter\n// An uppercase letter or a lowercase letter.\nexport function isLetter(code) {\n return isUppercaseLetter(code) || isLowercaseLetter(code);\n}\n\n// non-ASCII code point\n// A code point with a value equal to or greater than U+0080 <control>.\nexport function isNonAscii(code) {\n return code >= 0x0080;\n}\n\n// name-start code point\n// A letter, a non-ASCII code point, or U+005F LOW LINE (_).\nexport function isNameStart(code) {\n return isLetter(code) || isNonAscii(code) || code === 0x005F;\n}\n\n// name code point\n// A name-start code point, a digit, or U+002D HYPHEN-MINUS (-).\nexport function isName(code) {\n return isNameStart(code) || isDigit(code) || code === 0x002D;\n}\n\n// non-printable code point\n// A code point between U+0000 NULL and U+0008 BACKSPACE, or U+000B LINE TABULATION,\n// or a code point between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE, or U+007F DELETE.\nexport function isNonPrintable(code) {\n return (\n (code >= 0x0000 && code <= 0x0008) ||\n (code === 0x000B) ||\n (code >= 0x000E && code <= 0x001F) ||\n (code === 0x007F)\n );\n}\n\n// newline\n// U+000A LINE FEED. Note that U+000D CARRIAGE RETURN and U+000C FORM FEED are not included in this definition,\n// as they are converted to U+000A LINE FEED during preprocessing.\n// TODO: we doesn't do a preprocessing, so check a code point for U+000D CARRIAGE RETURN and U+000C FORM FEED\nexport function isNewline(code) {\n return code === 0x000A || code === 0x000D || code === 0x000C;\n}\n\n// whitespace\n// A newline, U+0009 CHARACTER TABULATION, or U+0020 SPACE.\nexport function isWhiteSpace(code) {\n return isNewline(code) || code === 0x0020 || code === 0x0009;\n}\n\n// § 4.3.8. Check if two code points are a valid escape\nexport function isValidEscape(first, second) {\n // If the first code point is not U+005C REVERSE SOLIDUS (\\), return false.\n if (first !== 0x005C) {\n return false;\n }\n\n // Otherwise, if the second code point is a newline or EOF, return false.\n if (isNewline(second) || second === EOF) {\n return false;\n }\n\n // Otherwise, return true.\n return true;\n}\n\n// § 4.3.9. Check if three code points would start an identifier\nexport function isIdentifierStart(first, second, third) {\n // Look at the first code point:\n\n // U+002D HYPHEN-MINUS\n if (first === 0x002D) {\n // If the second code point is a name-start code point or a U+002D HYPHEN-MINUS,\n // or the second and third code points are a valid escape, return true. Otherwise, return false.\n return (\n isNameStart(second) ||\n second === 0x002D ||\n isValidEscape(second, third)\n );\n }\n\n // name-start code point\n if (isNameStart(first)) {\n // Return true.\n return true;\n }\n\n // U+005C REVERSE SOLIDUS (\\)\n if (first === 0x005C) {\n // If the first and second code points are a valid escape, return true. Otherwise, return false.\n return isValidEscape(first, second);\n }\n\n // anything else\n // Return false.\n return false;\n}\n\n// § 4.3.10. Check if three code points would start a number\nexport function isNumberStart(first, second, third) {\n // Look at the first code point:\n\n // U+002B PLUS SIGN (+)\n // U+002D HYPHEN-MINUS (-)\n if (first === 0x002B || first === 0x002D) {\n // If the second code point is a digit, return true.\n if (isDigit(second)) {\n return 2;\n }\n\n // Otherwise, if the second code point is a U+002E FULL STOP (.)\n // and the third code point is a digit, return true.\n // Otherwise, return false.\n return second === 0x002E && isDigit(third) ? 3 : 0;\n }\n\n // U+002E FULL STOP (.)\n if (first === 0x002E) {\n // If the second code point is a digit, return true. Otherwise, return false.\n return isDigit(second) ? 2 : 0;\n }\n\n // digit\n if (isDigit(first)) {\n // Return true.\n return 1;\n }\n\n // anything else\n // Return false.\n return 0;\n}\n\n//\n// Misc\n//\n\n// detect BOM (https://en.wikipedia.org/wiki/Byte_order_mark)\nexport function isBOM(code) {\n // UTF-16BE\n if (code === 0xFEFF) {\n return 1;\n }\n\n // UTF-16LE\n if (code === 0xFFFE) {\n return 1;\n }\n\n return 0;\n}\n\n// Fast code category\n// Only ASCII code points has a special meaning, that's why we define a maps for 0..127 codes only\nconst CATEGORY = new Array(0x80);\nexport const EofCategory = 0x80;\nexport const WhiteSpaceCategory = 0x82;\nexport const DigitCategory = 0x83;\nexport const NameStartCategory = 0x84;\nexport const NonPrintableCategory = 0x85;\n\nfor (let i = 0; i < CATEGORY.length; i++) {\n CATEGORY[i] =\n isWhiteSpace(i) && WhiteSpaceCategory ||\n isDigit(i) && DigitCategory ||\n isNameStart(i) && NameStartCategory ||\n isNonPrintable(i) && NonPrintableCategory ||\n i || EofCategory;\n}\n\nexport function charCodeCategory(code) {\n return code < 0x80 ? CATEGORY[code] : NameStartCategory;\n}\n","import {\n isDigit,\n isHexDigit,\n isUppercaseLetter,\n isName,\n isWhiteSpace,\n isValidEscape\n} from './char-code-definitions.js';\n\nfunction getCharCode(source, offset) {\n return offset < source.length ? source.charCodeAt(offset) : 0;\n}\n\nexport function getNewlineLength(source, offset, code) {\n if (code === 13 /* \\r */ && getCharCode(source, offset + 1) === 10 /* \\n */) {\n return 2;\n }\n\n return 1;\n}\n\nexport function cmpChar(testStr, offset, referenceCode) {\n let code = testStr.charCodeAt(offset);\n\n // code.toLowerCase() for A..Z\n if (isUppercaseLetter(code)) {\n code = code | 32;\n }\n\n return code === referenceCode;\n}\n\nexport function cmpStr(testStr, start, end, referenceStr) {\n if (end - start !== referenceStr.length) {\n return false;\n }\n\n if (start < 0 || end > testStr.length) {\n return false;\n }\n\n for (let i = start; i < end; i++) {\n const referenceCode = referenceStr.charCodeAt(i - start);\n let testCode = testStr.charCodeAt(i);\n\n // testCode.toLowerCase() for A..Z\n if (isUppercaseLetter(testCode)) {\n testCode = testCode | 32;\n }\n\n if (testCode !== referenceCode) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function findWhiteSpaceStart(source, offset) {\n for (; offset >= 0; offset--) {\n if (!isWhiteSpace(source.charCodeAt(offset))) {\n break;\n }\n }\n\n return offset + 1;\n}\n\nexport function findWhiteSpaceEnd(source, offset) {\n for (; offset < source.length; offset++) {\n if (!isWhiteSpace(source.charCodeAt(offset))) {\n break;\n }\n }\n\n return offset;\n}\n\nexport function findDecimalNumberEnd(source, offset) {\n for (; offset < source.length; offset++) {\n if (!isDigit(source.charCodeAt(offset))) {\n break;\n }\n }\n\n return offset;\n}\n\n// § 4.3.7. Consume an escaped code point\nexport function consumeEscaped(source, offset) {\n // It assumes that the U+005C REVERSE SOLIDUS (\\) has already been consumed and\n // that the next input code point has already been verified to be part of a valid escape.\n offset += 2;\n\n // hex digit\n if (isHexDigit(getCharCode(source, offset - 1))) {\n // Consume as many hex digits as possible, but no more than 5.\n // Note that this means 1-6 hex digits have been consumed in total.\n for (const maxOffset = Math.min(source.length, offset + 5); offset < maxOffset; offset++) {\n if (!isHexDigit(getCharCode(source, offset))) {\n break;\n }\n }\n\n // If the next input code point is whitespace, consume it as well.\n const code = getCharCode(source, offset);\n if (isWhiteSpace(code)) {\n offset += getNewlineLength(source, offset, code);\n }\n }\n\n return offset;\n}\n\n// §4.3.11. Consume a name\n// Note: This algorithm does not do the verification of the first few code points that are necessary\n// to ensure the returned code points would constitute an <ident-token>. If that is the intended use,\n// ensure that the stream starts with an identifier before calling this algorithm.\nexport function consumeName(source, offset) {\n // Let result initially be an empty string.\n // Repeatedly consume the next input code point from the stream:\n for (; offset < source.length; offset++) {\n const code = source.charCodeAt(offset);\n\n // name code point\n if (isName(code)) {\n // Append the code point to result.\n continue;\n }\n\n // the stream starts with a valid escape\n if (isValidEscape(code, getCharCode(source, offset + 1))) {\n // Consume an escaped code point. Append the returned code point to result.\n offset = consumeEscaped(source, offset) - 1;\n continue;\n }\n\n // anything else\n // Reconsume the current input code point. Return result.\n break;\n }\n\n return offset;\n}\n\n// §4.3.12. Consume a number\nexport function consumeNumber(source, offset) {\n let code = source.charCodeAt(offset);\n\n // 2. If the next input code point is U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-),\n // consume it and append it to repr.\n if (code === 0x002B || code === 0x002D) {\n code = source.charCodeAt(offset += 1);\n }\n\n // 3. While the next input code point is a digit, consume it and append it to repr.\n if (isDigit(code)) {\n offset = findDecimalNumberEnd(source, offset + 1);\n code = source.charCodeAt(offset);\n }\n\n // 4. If the next 2 input code points are U+002E FULL STOP (.) followed by a digit, then:\n if (code === 0x002E && isDigit(source.charCodeAt(offset + 1))) {\n // 4.1 Consume them.\n // 4.2 Append them to repr.\n offset += 2;\n\n // 4.3 Set type to \"number\".\n // TODO\n\n // 4.4 While the next input code point is a digit, consume it and append it to repr.\n\n offset = findDecimalNumberEnd(source, offset);\n }\n\n // 5. If the next 2 or 3 input code points are U+0045 LATIN CAPITAL LETTER E (E)\n // or U+0065 LATIN SMALL LETTER E (e), ... , followed by a digit, then:\n if (cmpChar(source, offset, 101 /* e */)) {\n let sign = 0;\n code = source.charCodeAt(offset + 1);\n\n // ... optionally followed by U+002D HYPHEN-MINUS (-) or U+002B PLUS SIGN (+) ...\n if (code === 0x002D || code === 0x002B) {\n sign = 1;\n code = source.charCodeAt(offset + 2);\n }\n\n // ... followed by a digit\n if (isDigit(code)) {\n // 5.1 Consume them.\n // 5.2 Append them to repr.\n\n // 5.3 Set type to \"number\".\n // TODO\n\n // 5.4 While the next input code point is a digit, consume it and append it to repr.\n offset = findDecimalNumberEnd(source, offset + 1 + sign + 1);\n }\n }\n\n return offset;\n}\n\n// § 4.3.14. Consume the remnants of a bad url\n// ... its sole use is to consume enough of the input stream to reach a recovery point\n// where normal tokenizing can resume.\nexport function consumeBadUrlRemnants(source, offset) {\n // Repeatedly consume the next input code point from the stream:\n for (; offset < source.length; offset++) {\n const code = source.charCodeAt(offset);\n\n // U+0029 RIGHT PARENTHESIS ())\n // EOF\n if (code === 0x0029) {\n // Return.\n offset++;\n break;\n }\n\n if (isValidEscape(code, getCharCode(source, offset + 1))) {\n // Consume an escaped code point.\n // Note: This allows an escaped right parenthesis (\"\\)\") to be encountered\n // without ending the <bad-url-token>. This is otherwise identical to\n // the \"anything else\" clause.\n offset = consumeEscaped(source, offset);\n }\n }\n\n return offset;\n}\n\n// § 4.3.7. Consume an escaped code point\n// Note: This algorithm assumes that escaped is valid without leading U+005C REVERSE SOLIDUS (\\)\nexport function decodeEscaped(escaped) {\n // Single char escaped that's not a hex digit\n if (escaped.length === 1 && !isHexDigit(escaped.charCodeAt(0))) {\n return escaped[0];\n }\n\n // Interpret the hex digits as a hexadecimal number.\n let code = parseInt(escaped, 16);\n\n if (\n (code === 0) || // If this number is zero,\n (code >= 0xD800 && code <= 0xDFFF) || // or is for a surrogate,\n (code > 0x10FFFF) // or is greater than the maximum allowed code point\n ) {\n // ... return U+FFFD REPLACEMENT CHARACTER\n code = 0xFFFD;\n }\n\n // Otherwise, return the code point with that value.\n return String.fromCodePoint(code);\n}\n","export default [\n 'EOF-token',\n 'ident-token',\n 'function-token',\n 'at-keyword-token',\n 'hash-token',\n 'string-token',\n 'bad-string-token',\n 'url-token',\n 'bad-url-token',\n 'delim-token',\n 'number-token',\n 'percentage-token',\n 'dimension-token',\n 'whitespace-token',\n 'CDO-token',\n 'CDC-token',\n 'colon-token',\n 'semicolon-token',\n 'comma-token',\n '[-token',\n ']-token',\n '(-token',\n ')-token',\n '{-token',\n '}-token'\n];\n","const MIN_SIZE = 16 * 1024;\n\nexport function adoptBuffer(buffer = null, size) {\n if (buffer === null || buffer.length < size) {\n return new Uint32Array(Math.max(size + 1024, MIN_SIZE));\n }\n\n return buffer;\n};\n","import { adoptBuffer } from './adopt-buffer.js';\nimport { isBOM } from './char-code-definitions.js';\n\nconst N = 10;\nconst F = 12;\nconst R = 13;\n\nfunction computeLinesAndColumns(host) {\n const source = host.source;\n const sourceLength = source.length;\n const startOffset = source.length > 0 ? isBOM(source.charCodeAt(0)) : 0;\n const lines = adoptBuffer(host.lines, sourceLength);\n const columns = adoptBuffer(host.columns, sourceLength);\n let line = host.startLine;\n let column = host.startColumn;\n\n for (let i = startOffset; i < sourceLength; i++) {\n const code = source.charCodeAt(i);\n\n lines[i] = line;\n columns[i] = column++;\n\n if (code === N || code === R || code === F) {\n if (code === R && i + 1 < sourceLength && source.charCodeAt(i + 1) === N) {\n i++;\n lines[i] = line;\n columns[i] = column;\n }\n\n line++;\n column = 1;\n }\n }\n\n lines[sourceLength] = line;\n columns[sourceLength] = column;\n\n host.lines = lines;\n host.columns = columns;\n host.computed = true;\n}\n\nexport class OffsetToLocation {\n constructor() {\n this.lines = null;\n this.columns = null;\n this.computed = false;\n }\n setSource(source, startOffset = 0, startLine = 1, startColumn = 1) {\n this.source = source;\n this.startOffset = startOffset;\n this.startLine = startLine;\n this.startColumn = startColumn;\n this.computed = false;\n }\n getLocation(offset, filename) {\n if (!this.computed) {\n computeLinesAndColumns(this);\n }\n\n return {\n source: filename,\n offset: this.startOffset + offset,\n line: this.lines[offset],\n column: this.columns[offset]\n };\n }\n getLocationRange(start, end, filename) {\n if (!this.computed) {\n computeLinesAndColumns(this);\n }\n\n return {\n source: filename,\n start: {\n offset: this.startOffset + start,\n line: this.lines[start],\n column: this.columns[start]\n },\n end: {\n offset: this.startOffset + end,\n line: this.lines[end],\n column: this.columns[end]\n }\n };\n }\n};\n","import { adoptBuffer } from './adopt-buffer.js';\nimport { cmpStr } from './utils.js';\nimport tokenNames from './names.js';\nimport {\n WhiteSpace,\n Comment,\n Delim,\n EOF,\n Function as FunctionToken,\n LeftParenthesis,\n RightParenthesis,\n LeftSquareBracket,\n RightSquareBracket,\n LeftCurlyBracket,\n RightCurlyBracket\n} from './types.js';\n\nconst OFFSET_MASK = 0x00FFFFFF;\nconst TYPE_SHIFT = 24;\nconst balancePair = new Map([\n [FunctionToken, RightParenthesis],\n [LeftParenthesis, RightParenthesis],\n [LeftSquareBracket, RightSquareBracket],\n [LeftCurlyBracket, RightCurlyBracket]\n]);\n\nexport class TokenStream {\n constructor(source, tokenize) {\n this.setSource(source, tokenize);\n }\n reset() {\n this.eof = false;\n this.tokenIndex = -1;\n this.tokenType = 0;\n this.tokenStart = this.firstCharOffset;\n this.tokenEnd = this.firstCharOffset;\n }\n setSource(source = '', tokenize = () => {}) {\n source = String(source || '');\n\n const sourceLength = source.length;\n const offsetAndType = adoptBuffer(this.offsetAndType, source.length + 1); // +1 because of eof-token\n const balance = adoptBuffer(this.balance, source.length + 1);\n let tokenCount = 0;\n let balanceCloseType = 0;\n let balanceStart = 0;\n let firstCharOffset = -1;\n\n // capture buffers\n this.offsetAndType = null;\n this.balance = null;\n\n tokenize(source, (type, start, end) => {\n switch (type) {\n default:\n balance[tokenCount] = sourceLength;\n break;\n\n case balanceCloseType: {\n let balancePrev = balanceStart & OFFSET_MASK;\n balanceStart = balance[balancePrev];\n balanceCloseType = balanceStart >> TYPE_SHIFT;\n balance[tokenCount] = balancePrev;\n balance[balancePrev++] = tokenCount;\n for (; balancePrev < tokenCount; balancePrev++) {\n if (balance[balancePrev] === sourceLength) {\n balance[balancePrev] = tokenCount;\n }\n }\n break;\n }\n\n case LeftParenthesis:\n case FunctionToken:\n case LeftSquareBracket:\n case LeftCurlyBracket:\n balance[tokenCount] = balanceStart;\n balanceCloseType = balancePair.get(type);\n balanceStart = (balanceCloseType << TYPE_SHIFT) | tokenCount;\n break;\n }\n\n offsetAndType[tokenCount++] = (type << TYPE_SHIFT) | end;\n if (firstCharOffset === -1) {\n firstCharOffset = start;\n }\n });\n\n // finalize buffers\n offsetAndType[tokenCount] = (EOF << TYPE_SHIFT) | sourceLength; // <EOF-token>\n balance[tokenCount] = sourceLength;\n balance[sourceLength] = sourceLength; // prevents false positive balance match with any token\n while (balanceStart !== 0) {\n const balancePrev = balanceStart & OFFSET_MASK;\n balanceStart = balance[balancePrev];\n balance[balancePrev] = sourceLength;\n }\n\n this.source = source;\n this.firstCharOffset = firstCharOffset === -1 ? 0 : firstCharOffset;\n this.tokenCount = tokenCount;\n this.offsetAndType = offsetAndType;\n this.balance = balance;\n\n this.reset();\n this.next();\n }\n\n lookupType(offset) {\n offset += this.tokenIndex;\n\n if (offset < this.tokenCount) {\n return this.offsetAndType[offset] >> TYPE_SHIFT;\n }\n\n return EOF;\n }\n lookupOffset(offset) {\n offset += this.tokenIndex;\n\n if (offset < this.tokenCount) {\n return this.offsetAndType[offset - 1] & OFFSET_MASK;\n }\n\n return this.source.length;\n }\n lookupValue(offset, referenceStr) {\n offset += this.tokenIndex;\n\n if (offset < this.tokenCount) {\n return cmpStr(\n this.source,\n this.offsetAndType[offset - 1] & OFFSET_MASK,\n this.offsetAndType[offset] & OFFSET_MASK,\n referenceStr\n );\n }\n\n return false;\n }\n getTokenStart(tokenIndex) {\n if (tokenIndex === this.tokenIndex) {\n return this.tokenStart;\n }\n\n if (tokenIndex > 0) {\n return tokenIndex < this.tokenCount\n ? this.offsetAndType[tokenIndex - 1] & OFFSET_MASK\n : this.offsetAndType[this.tokenCount] & OFFSET_MASK;\n }\n\n return this.firstCharOffset;\n }\n substrToCursor(start) {\n return this.source.substring(start, this.tokenStart);\n }\n\n isBalanceEdge(pos) {\n return this.balance[this.tokenIndex] < pos;\n }\n isDelim(code, offset) {\n if (offset) {\n return (\n this.lookupType(offset) === Delim &&\n this.source.charCodeAt(this.lookupOffset(offset)) === code\n );\n }\n\n return (\n this.tokenType === Delim &&\n this.source.charCodeAt(this.tokenStart) === code\n );\n }\n\n skip(tokenCount) {\n let next = this.tokenIndex + tokenCount;\n\n if (next < this.tokenCount) {\n this.tokenIndex = next;\n this.tokenStart = this.offsetAndType[next - 1] & OFFSET_MASK;\n next = this.offsetAndType[next];\n this.tokenType = next >> TYPE_SHIFT;\n this.tokenEnd = next & OFFSET_MASK;\n } else {\n this.tokenIndex = this.tokenCount;\n this.next();\n }\n }\n next() {\n let next = this.tokenIndex + 1;\n\n if (next < this.tokenCount) {\n this.tokenIndex = next;\n this.tokenStart = this.tokenEnd;\n next = this.offsetAndType[next];\n this.tokenType = next >> TYPE_SHIFT;\n this.tokenEnd = next & OFFSET_MASK;\n } else {\n this.eof = true;\n this.tokenIndex = this.tokenCount;\n this.tokenType = EOF;\n this.tokenStart = this.tokenEnd = this.source.length;\n }\n }\n skipSC() {\n while (this.tokenType === WhiteSpace || this.tokenType === Comment) {\n this.next();\n }\n }\n skipUntilBalanced(startToken, stopConsume) {\n let cursor = startToken;\n let balanceEnd;\n let offset;\n\n loop:\n for (; cursor < this.tokenCount; cursor++) {\n balanceEnd = this.balance[cursor];\n\n // stop scanning on balance edge that points to offset before start token\n if (balanceEnd < startToken) {\n break loop;\n }\n\n offset = cursor > 0 ? this.offsetAndType[cursor - 1] & OFFSET_MASK : this.firstCharOffset;\n\n // check stop condition\n switch (stopConsume(this.source.charCodeAt(offset))) {\n case 1: // just stop\n break loop;\n\n case 2: // stop & included\n cursor++;\n break loop;\n\n default:\n // fast forward to the end of balanced block\n if (this.balance[balanceEnd] === cursor) {\n cursor = balanceEnd;\n }\n }\n }\n\n this.skip(cursor - this.tokenIndex);\n }\n\n forEachToken(fn) {\n for (let i = 0, offset = this.firstCharOffset; i < this.tokenCount; i++) {\n const start = offset;\n const item = this.offsetAndType[i];\n const end = item & OFFSET_MASK;\n const type = item >> TYPE_SHIFT;\n\n offset = end;\n\n fn(type, start, end, i);\n }\n }\n dump() {\n const tokens = new Array(this.tokenCount);\n\n this.forEachToken((type, start, end, index) => {\n tokens[index] = {\n idx: index,\n type: tokenNames[type],\n chunk: this.source.substring(start, end),\n balance: this.balance[index]\n };\n });\n\n return tokens;\n }\n};\n","import * as TYPE from './types.js';\nimport {\n isNewline,\n isName,\n isValidEscape,\n isNumberStart,\n isIdentifierStart,\n isBOM,\n charCodeCategory,\n WhiteSpaceCategory,\n DigitCategory,\n NameStartCategory,\n NonPrintableCategory\n} from './char-code-definitions.js';\nimport {\n cmpStr,\n getNewlineLength,\n findWhiteSpaceEnd,\n consumeEscaped,\n consumeName,\n consumeNumber,\n consumeBadUrlRemnants\n} from './utils.js';\n\nexport function tokenize(source, onToken) {\n function getCharCode(offset) {\n return offset < sourceLength ? source.charCodeAt(offset) : 0;\n }\n\n // § 4.3.3. Consume a numeric token\n function consumeNumericToken() {\n // Consume a number and let number be the result.\n offset = consumeNumber(source, offset);\n\n // If the next 3 input code points would start an identifier, then:\n if (isIdentifierStart(getCharCode(offset), getCharCode(offset + 1), getCharCode(offset + 2))) {\n // Create a <dimension-token> with the same value and type flag as number, and a unit set initially to the empty string.\n // Consume a name. Set the <dimension-token>’s unit to the returned value.\n // Return the <dimension-token>.\n type = TYPE.Dimension;\n offset = consumeName(source, offset);\n return;\n }\n\n // Otherwise, if the next input code point is U+0025 PERCENTAGE SIGN (%), consume it.\n if (getCharCode(offset) === 0x0025) {\n // Create a <percentage-token> with the same value as number, and return it.\n type = TYPE.Percentage;\n offset++;\n return;\n }\n\n // Otherwise, create a <number-token> with the same value and type flag as number, and return it.\n type = TYPE.Number;\n }\n\n // § 4.3.4. Consume an ident-like token\n function consumeIdentLikeToken() {\n const nameStartOffset = offset;\n\n // Consume a name, and let string be the result.\n offset = consumeName(source, offset);\n\n // If string’s value is an ASCII case-insensitive match for \"url\",\n // and the next input code point is U+0028 LEFT PARENTHESIS ((), consume it.\n if (cmpStr(source, nameStartOffset, offset, 'url') && getCharCode(offset) === 0x0028) {\n // While the next two input code points are whitespace, consume the next input code point.\n offset = findWhiteSpaceEnd(source, offset + 1);\n\n // If the next one or two input code points are U+0022 QUOTATION MARK (\"), U+0027 APOSTROPHE ('),\n // or whitespace followed by U+0022 QUOTATION MARK (\") or U+0027 APOSTROPHE ('),\n // then create a <function-token> with its value set to string and return it.\n if (getCharCode(offset) === 0x0022 ||\n getCharCode(offset) === 0x0027) {\n type = TYPE.Function;\n offset = nameStartOffset + 4;\n return;\n }\n\n // Otherwise, consume a url token, and return it.\n consumeUrlToken();\n return;\n }\n\n // Otherwise, if the next input code point is U+0028 LEFT PARENTHESIS ((), consume it.\n // Create a <function-token> with its value set to string and return it.\n if (getCharCode(offset) === 0x0028) {\n type = TYPE.Function;\n offset++;\n return;\n }\n\n // Otherwise, create an <ident-token> with its value set to string and return it.\n type = TYPE.Ident;\n }\n\n // § 4.3.5. Consume a string token\n function consumeStringToken(endingCodePoint) {\n // This algorithm may be called with an ending code point, which denotes the code point\n // that ends the string. If an ending code point is not specified,\n // the current input code point is used.\n if (!endingCodePoint) {\n endingCodePoint = getCharCode(offset++);\n }\n\n // Initially create a <string-token> with its value set to the empty string.\n type = TYPE.String;\n\n // Repeatedly consume the next input code point from the stream:\n for (; offset < source.length; offset++) {\n const code = source.charCodeAt(offset);\n\n switch (charCodeCategory(code)) {\n // ending code point\n case endingCodePoint:\n // Return the <string-token>.\n offset++;\n return;\n\n // EOF\n // case EofCategory:\n // This is a parse error. Return the <string-token>.\n // return;\n\n // newline\n case WhiteSpaceCategory:\n if (isNewline(code)) {\n // This is a parse error. Reconsume the current input code point,\n // create a <bad-string-token>, and return it.\n offset += getNewlineLength(source, offset, code);\n type = TYPE.BadString;\n return;\n }\n break;\n\n // U+005C REVERSE SOLIDUS (\\)\n case 0x005C:\n // If the next input code point is EOF, do nothing.\n if (offset === source.length - 1) {\n break;\n }\n\n const nextCode = getCharCode(offset + 1);\n\n // Otherwise, if the next input code point is a newline, consume it.\n if (isNewline(nextCode)) {\n offset += getNewlineLength(source, offset + 1, nextCode);\n } else if (isValidEscape(code, nextCode)) {\n // Otherwise, (the stream starts with a valid escape) consume\n // an escaped code point and append the returned code point to\n // the <string-token>’s value.\n offset = consumeEscaped(source, offset) - 1;\n }\n break;\n\n // anything else\n // Append the current input code point to the <string-token>’s value.\n }\n }\n }\n\n // § 4.3.6. Consume a url token\n // Note: This algorithm assumes that the initial \"url(\" has already been consumed.\n // This algorithm also assumes that it’s being called to consume an \"unquoted\" value, like url(foo).\n // A quoted value, like url(\"foo\"), is parsed as a <function-token>. Consume an ident-like token\n // automatically handles this distinction; this algorithm shouldn’t be called directly otherwise.\n function consumeUrlToken() {\n // Initially create a <url-token> with its value set to the empty string.\n type = TYPE.Url;\n\n // Consume as much whitespace as possible.\n offset = findWhiteSpaceEnd(source, offset);\n\n // Repeatedly consume the next input code point from the stream:\n for (; offset < source.length; offset++) {\n const code = source.charCodeAt(offset);\n\n switch (charCodeCategory(code)) {\n // U+0029 RIGHT PARENTHESIS ())\n case 0x0029:\n // Return the <url-token>.\n offset++;\n return;\n\n // EOF\n // case EofCategory:\n // This is a parse error. Return the <url-token>.\n // return;\n\n // whitespace\n case WhiteSpaceCategory:\n // Consume as much whitespace as possible.\n offset = findWhiteSpaceEnd(source, offset);\n\n // If the next input code point is U+0029 RIGHT PARENTHESIS ()) or EOF,\n // consume it and return the <url-token>\n // (if EOF was encountered, this is a parse error);\n if (getCharCode(offset) === 0x0029 || offset >= source.length) {\n if (offset < source.length) {\n offset++;\n }\n return;\n }\n\n // otherwise, consume the remnants of a bad url, create a <bad-url-token>,\n // and return it.\n offset = consumeBadUrlRemnants(source, offset);\n type = TYPE.BadUrl;\n return;\n\n // U+0022 QUOTATION MARK (\")\n // U+0027 APOSTROPHE (')\n // U+0028 LEFT PARENTHESIS (()\n // non-printable code point\n case 0x0022:\n case 0x0027:\n case 0x0028:\n case NonPrintableCategory:\n // This is a parse error. Consume the remnants of a bad url,\n // create a <bad-url-token>, and return it.\n offset = consumeBadUrlRemnants(source, offset);\n type = TYPE.BadUrl;\n return;\n\n // U+005C REVERSE SOLIDUS (\\)\n case 0x005C:\n // If the stream starts with a valid escape, consume an escaped code point and\n // append the returned code point to the <url-token>’s value.\n if (isValidEscape(code, getCharCode(offset + 1))) {\n offset = consumeEscaped(source, offset) - 1;\n break;\n }\n\n // Otherwise, this is a parse error. Consume the remnants of a bad url,\n // create a <bad-url-token>, and return it.\n offset = consumeBadUrlRemnants(source, offset);\n type = TYPE.BadUrl;\n return;\n\n // anything else\n // Append the current input code point to the <url-token>’s value.\n }\n }\n }\n\n // ensure source is a string\n source = String(source || '');\n\n const sourceLength = source.length;\n let start = isBOM(getCharCode(0));\n let offset = start;\n let type;\n\n // https://drafts.csswg.org/css-syntax-3/#consume-token\n // § 4.3.1. Consume a token\n while (offset < sourceLength) {\n const code = source.charCodeAt(offset);\n\n switch (charCodeCategory(code)) {\n // whitespace\n case WhiteSpaceCategory:\n // Consume as much whitespace as possible. Return a <whitespace-token>.\n type = TYPE.WhiteSpace;\n offset = findWhiteSpaceEnd(source, offset + 1);\n break;\n\n // U+0022 QUOTATION MARK (\")\n case 0x0022:\n // Consume a string token and return it.\n consumeStringToken();\n break;\n\n // U+0023 NUMBER SIGN (#)\n case 0x0023:\n // If the next input code point is a name code point or the next two input code points are a valid escape, then:\n if (isName(getCharCode(offset + 1)) || isValidEscape(getCharCode(offset + 1), getCharCode(offset + 2))) {\n // Create a <hash-token>.\n type = TYPE.Hash;\n\n // If the next 3 input code points would start an identifier, set the <hash-token>’s type flag to \"id\".\n // if (isIdentifierStart(getCharCode(offset + 1), getCharCode(offset + 2), getCharCode(offset + 3))) {\n // // TODO: set id flag\n // }\n\n // Consume a name, and set the <hash-token>’s value to the returned string.\n offset = consumeName(source, offset + 1);\n\n // Return the <hash-token>.\n } else {\n // Otherwise, return a <delim-token> with its value set to the current input code point.\n type = TYPE.Delim;\n offset++;\n }\n\n break;\n\n // U+0027 APOSTROPHE (')\n case 0x0027:\n // Consume a string token and return it.\n consumeStringToken();\n break;\n\n // U+0028 LEFT PARENTHESIS (()\n case 0x0028:\n // Return a <(-token>.\n type = TYPE.LeftParenthesis;\n offset++;\n break;\n\n // U+0029 RIGHT PARENTHESIS ())\n case 0x0029:\n // Return a <)-token>.\n type = TYPE.RightParenthesis;\n offset++;\n break;\n\n // U+002B PLUS SIGN (+)\n case 0x002B:\n // If the input stream starts with a number, ...\n if (isNumberStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) {\n // ... reconsume the current input code point, consume a numeric token, and return it.\n consumeNumericToken();\n } else {\n // Otherwise, return a <delim-token> with its value set to the current input code point.\n type = TYPE.Delim;\n offset++;\n }\n break;\n\n // U+002C COMMA (,)\n case 0x002C:\n // Return a <comma-token>.\n type = TYPE.Comma;\n offset++;\n break;\n\n // U+002D HYPHEN-MINUS (-)\n case 0x002D:\n // If the input stream starts with a number, reconsume the current input code point, consume a numeric token, and return it.\n if (isNumberStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) {\n consumeNumericToken();\n } else {\n // Otherwise, if the next 2 input code points are U+002D HYPHEN-MINUS U+003E GREATER-THAN SIGN (->), consume them and return a <CDC-token>.\n if (getCharCode(offset + 1) === 0x002D &&\n getCharCode(offset + 2) === 0x003E) {\n type = TYPE.CDC;\n offset = offset + 3;\n } else {\n // Otherwise, if the input stream starts with an identifier, ...\n if (isIdentifierStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) {\n // ... reconsume the current input code point, consume an ident-like token, and return it.\n consumeIdentLikeToken();\n } else {\n // Otherwise, return a <delim-token> with its value set to the current input code point.\n type = TYPE.Delim;\n offset++;\n }\n }\n }\n break;\n\n // U+002E FULL STOP (.)\n case 0x002E:\n // If the input stream starts with a number, ...\n if (isNumberStart(code, getCharCode(offset + 1), getCharCode(offset + 2))) {\n // ... reconsume the current input code point, consume a numeric token, and return it.\n consumeNumericToken();\n } else {\n // Otherwise, return a <delim-token> with its value set to the current input code point.\n type = TYPE.Delim;\n offset++;\n }\n\n break;\n\n // U+002F SOLIDUS (/)\n case 0x002F:\n // If the next two input code point are U+002F SOLIDUS (/) followed by a U+002A ASTERISK (*),\n if (getCharCode(offset + 1) === 0x002A) {\n // ... consume them and all following code points up to and including the first U+002A ASTERISK (*)\n // followed by a U+002F SOLIDUS (/), or up to an EOF code point.\n type = TYPE.Comment;\n offset = source.indexOf('*/', offset + 2);\n offset = offset === -1 ? source.length : offset + 2;\n } else {\n type = TYPE.Delim;\n offset++;\n }\n break;\n\n // U+003A COLON (:)\n case 0x003A:\n // Return a <colon-token>.\n type = TYPE.Colon;\n offset++;\n break;\n\n // U+003B SEMICOLON (;)\n case 0x003B:\n // Return a <semicolon-token>.\n type = TYPE.Semicolon;\n offset++;\n break;\n\n // U+003C LESS-THAN SIGN (<)\n case 0x003C:\n // If the next 3 input code points are U+0021 EXCLAMATION MARK U+002D HYPHEN-MINUS U+002D HYPHEN-MINUS (!--), ...\n if (getCharCode(offset + 1) === 0x0021 &&\n getCharCode(offset + 2) === 0x002D &&\n getCharCode(offset + 3) === 0x002D) {\n // ... consume them and return a <CDO-token>.\n type = TYPE.CDO;\n offset = offset + 4;\n } else {\n // Otherwise, return a <delim-token> with its value set to the current input code point.\n type = TYPE.Delim;\n offset++;\n }\n\n break;\n\n // U+0040 COMMERCIAL AT (@)\n case 0x0040:\n // If the next 3 input code points would start an identifier, ...\n if (isIdentifierStart(getCharCode(offset + 1), getCharCode(offset + 2), getCharCode(offset + 3))) {\n // ... consume a name, create an <at-keyword-token> with its value set to the returned value, and return it.\n type = TYPE.AtKeyword;\n offset = consumeName(source, offset + 1);\n } else {\n // Otherwise, return a <delim-token> with its value set to the current input code point.\n type = TYPE.Delim;\n offset++;\n }\n\n break;\n\n // U+005B LEFT SQUARE BRACKET ([)\n case 0x005B:\n // Return a <[-token>.\n type = TYPE.LeftSquareBracket;\n offset++;\n break;\n\n // U+005C REVERSE SOLIDUS (\\)\n case 0x005C:\n // If the input stream starts with a valid escape, ...\n if (isValidEscape(code, getCharCode(offset + 1))) {\n // ... reconsume the current input code point, consume an ident-like token, and return it.\n consumeIdentLikeToken();\n } else {\n // Otherwise, this is a parse error. Return a <delim-token> with its value set to the current input code point.\n type = TYPE.Delim;\n offset++;\n }\n break;\n\n // U+005D RIGHT SQUARE BRACKET (])\n case 0x005D:\n // Return a <]-token>.\n type = TYPE.RightSquareBracket;\n offset++;\n break;\n\n // U+007B LEFT CURLY BRACKET ({)\n case 0x007B:\n // Return a <{-token>.\n type = TYPE.LeftCurlyBracket;\n offset++;\n break;\n\n // U+007D RIGHT CURLY BRACKET (})\n case 0x007D:\n // Return a <}-token>.\n type = TYPE.RightCurlyBracket;\n offset++;\n break;\n\n // digit\n case DigitCategory:\n // Reconsume the current input code point, consume a numeric token, and return it.\n consumeNumericToken();\n break;\n\n // name-start code point\n case NameStartCategory:\n // Reconsume the current input code point, consume an ident-like token, and return it.\n consumeIdentLikeToken();\n break;\n\n // EOF\n // case EofCategory:\n // Return an <EOF-token>.\n // break;\n\n // anything else\n default:\n // Return a <delim-token> with its value set to the current input code point.\n type = TYPE.Delim;\n offset++;\n }\n\n // put token to stream\n onToken(type, start, start = offset);\n }\n}\n\nexport * from './types.js';\nexport * as tokenTypes from './types.js';\nexport { default as tokenNames } from './names.js';\nexport * from './char-code-definitions.js';\nexport * from './utils.js';\nexport * from './OffsetToLocation.js';\nexport * from './TokenStream.js';\n","import { WhiteSpace, Comment } from '../tokenizer/index.js';\n\nexport function readSequence(recognizer) {\n const children = this.createList();\n let space = false;\n const context = {\n recognizer\n };\n\n while (!this.eof) {\n switch (this.tokenType) {\n case Comment:\n this.next();\n continue;\n\n case WhiteSpace:\n space = true;\n this.next();\n continue;\n }\n\n let child = recognizer.getNode.call(this, context);\n\n if (child === undefined) {\n break;\n }\n\n if (space) {\n if (recognizer.onWhiteSpace) {\n recognizer.onWhiteSpace.call(this, child, children, context);\n }\n space = false;\n }\n\n children.push(child);\n }\n\n if (space && recognizer.onWhiteSpace) {\n recognizer.onWhiteSpace.call(this, null, children, context);\n }\n\n return children;\n};\n","import { List } from '../utils/List.js';\nimport { SyntaxError } from './SyntaxError.js';\nimport {\n tokenize,\n OffsetToLocation,\n TokenStream,\n tokenNames,\n\n consumeNumber,\n findWhiteSpaceStart,\n cmpChar,\n cmpStr,\n\n WhiteSpace,\n Comment,\n Ident,\n Function as FunctionToken,\n Url,\n Hash,\n Percentage,\n Number as NumberToken\n} from '../tokenizer/index.js';\nimport { readSequence } from './sequence.js';\n\nconst NOOP = () => {};\nconst EXCLAMATIONMARK = 0x0021; // U+0021 EXCLAMATION MARK (!)\nconst NUMBERSIGN = 0x0023; // U+0023 NUMBER SIGN (#)\nconst SEMICOLON = 0x003B; // U+003B SEMICOLON (;)\nconst LEFTCURLYBRACKET = 0x007B; // U+007B LEFT CURLY BRACKET ({)\nconst NULL = 0;\n\nfunction createParseContext(name) {\n return function() {\n return this[name]();\n };\n}\n\nfunction fetchParseValues(dict) {\n const result = Object.create(null);\n\n for (const name in dict) {\n const item = dict[name];\n const fn = item.parse || item;\n\n if (fn) {\n result[name] = fn;\n }\n }\n\n return result;\n}\n\nfunction processConfig(config) {\n const parseConfig = {\n context: Object.create(null),\n scope: Object.assign(Object.create(null), config.scope),\n atrule: fetchParseValues(config.atrule),\n pseudo: fetchParseValues(config.pseudo),\n node: fetchParseValues(config.node)\n };\n\n for (const name in config.parseContext) {\n switch (typeof config.parseContext[name]) {\n case 'function':\n parseConfig.context[name] = config.parseContext[name];\n break;\n\n case 'string':\n parseConfig.context[name] = createParseContext(config.parseContext[name]);\n break;\n }\n }\n\n return {\n config: parseConfig,\n ...parseConfig,\n ...parseConfig.node\n };\n}\n\nexport function createParser(config) {\n let source = '';\n let filename = '<unknown>';\n let needPositions = false;\n let onParseError = NOOP;\n let onParseErrorThrow = false;\n\n const locationMap = new OffsetToLocation();\n const parser = Object.assign(new TokenStream(), processConfig(config || {}), {\n parseAtrulePrelude: true,\n parseRulePrelude: true,\n parseValue: true,\n parseCustomProperty: false,\n\n readSequence,\n\n consumeUntilBalanceEnd: () => 0,\n consumeUntilLeftCurlyBracket(code) {\n return code === LEFTCURLYBRACKET ? 1 : 0;\n },\n consumeUntilLeftCurlyBracketOrSemicolon(code) {\n return code === LEFTCURLYBRACKET || code === SEMICOLON ? 1 : 0;\n },\n consumeUntilExclamationMarkOrSemicolon(code) {\n return code === EXCLAMATIONMARK || code === SEMICOLON ? 1 : 0;\n },\n consumeUntilSemicolonIncluded(code) {\n return code === SEMICOLON ? 2 : 0;\n },\n\n createList() {\n return new List();\n },\n createSingleNodeList(node) {\n return new List().appendData(node);\n },\n getFirstListNode(list) {\n return list && list.first;\n },\n getLastListNode(list) {\n return list && list.last;\n },\n\n parseWithFallback(consumer, fallback) {\n const startToken = this.tokenIndex;\n\n try {\n return consumer.call(this);\n } catch (e) {\n if (onParseErrorThrow) {\n throw e;\n }\n\n const fallbackNode = fallback.call(this, startToken);\n\n onParseErrorThrow = true;\n onParseError(e, fallbackNode);\n onParseErrorThrow = false;\n\n return fallbackNode;\n }\n },\n\n lookupNonWSType(offset) {\n let type;\n\n do {\n type = this.lookupType(offset++);\n if (type !== WhiteSpace) {\n return type;\n }\n } while (type !== NULL);\n\n return NULL;\n },\n\n charCodeAt(offset) {\n return offset >= 0 && offset < source.length ? source.charCodeAt(offset) : 0;\n },\n substring(offsetStart, offsetEnd) {\n return source.substring(offsetStart, offsetEnd);\n },\n substrToCursor(start) {\n return this.source.substring(start, this.tokenStart);\n },\n\n cmpChar(offset, charCode) {\n return cmpChar(source, offset, charCode);\n },\n cmpStr(offsetStart, offsetEnd, str) {\n return cmpStr(source, offsetStart, offsetEnd, str);\n },\n\n consume(tokenType) {\n const start = this.tokenStart;\n\n this.eat(tokenType);\n\n return this.substrToCursor(start);\n },\n consumeFunctionName() {\n const name = source.substring(this.tokenStart, this.tokenEnd - 1);\n\n this.eat(FunctionToken);\n\n return name;\n },\n consumeNumber(type) {\n const number = source.substring(this.tokenStart, consumeNumber(source, this.tokenStart));\n\n this.eat(type);\n\n return number;\n },\n\n eat(tokenType) {\n if (this.tokenType !== tokenType) {\n const tokenName = tokenNames[tokenType].slice(0, -6).replace(/-/g, ' ').replace(/^./, m => m.toUpperCase());\n let message = `${/[[\\](){}]/.test(tokenName) ? `\"${tokenName}\"` : tokenName} is expected`;\n let offset = this.tokenStart;\n\n // tweak message and offset\n switch (tokenType) {\n case Ident:\n // when identifier is expected but there is a function or url\n if (this.tokenType === FunctionToken || this.tokenType === Url) {\n offset = this.tokenEnd - 1;\n message = 'Identifier is expected but function found';\n } else {\n message = 'Identifier is expected';\n }\n break;\n\n case Hash:\n if (this.isDelim(NUMBERSIGN)) {\n this.next();\n offset++;\n message = 'Name is expected';\n }\n break;\n\n case Percentage:\n if (this.tokenType === NumberToken) {\n offset = this.tokenEnd;\n message = 'Percent sign is expected';\n }\n break;\n }\n\n this.error(message, offset);\n }\n\n this.next();\n },\n eatIdent(name) {\n if (this.tokenType !== Ident || this.lookupValue(0, name) === false) {\n this.error(`Identifier \"${name}\" is expected`);\n }\n\n this.next();\n },\n eatDelim(code) {\n if (!this.isDelim(code)) {\n this.error(`Delim \"${String.fromCharCode(code)}\" is expected`);\n }\n\n this.next();\n },\n\n getLocation(start, end) {\n if (needPositions) {\n return locationMap.getLocationRange(\n start,\n end,\n filename\n );\n }\n\n return null;\n },\n getLocationFromList(list) {\n if (needPositions) {\n const head = this.getFirstListNode(list);\n const tail = this.getLastListNode(list);\n return locationMap.getLocationRange(\n head !== null ? head.loc.start.offset - locationMap.startOffset : this.tokenStart,\n tail !== null ? tail.loc.end.offset - locationMap.startOffset : this.tokenStart,\n filename\n );\n }\n\n return null;\n },\n\n error(message, offset) {\n const location = typeof offset !== 'undefined' && offset < source.length\n ? locationMap.getLocation(offset)\n : this.eof\n ? locationMap.getLocation(findWhiteSpaceStart(source, source.length - 1))\n : locationMap.getLocation(this.tokenStart);\n\n throw new SyntaxError(\n message || 'Unexpected input',\n source,\n location.offset,\n location.line,\n location.column\n );\n }\n });\n\n const parse = function(source_, options) {\n source = source_;\n options = options || {};\n\n parser.setSource(source, tokenize);\n locationMap.setSource(\n source,\n options.offset,\n options.line,\n options.column\n );\n\n filename = options.filename || '<unknown>';\n needPositions = Boolean(options.positions);\n onParseError = typeof options.onParseError === 'function' ? options.onParseError : NOOP;\n onParseErrorThrow = false;\n\n parser.parseAtrulePrelude = 'parseAtrulePrelude' in options ? Boolean(options.parseAtrulePrelude) : true;\n parser.parseRulePrelude = 'parseRulePrelude' in options ? Boolean(options.parseRulePrelude) : true;\n parser.parseValue = 'parseValue' in options ? Boolean(options.parseValue) : true;\n parser.parseCustomProperty = 'parseCustomProperty' in options ? Boolean(options.parseCustomProperty) : false;\n\n const { context = 'default', onComment } = options;\n\n if (context in parser.context === false) {\n throw new Error('Unknown context `' + context + '`');\n }\n\n if (typeof onComment === 'function') {\n parser.forEachToken((type, start, end) => {\n if (type === Comment) {\n const loc = parser.getLocation(start, end);\n const value = cmpStr(source, end - 2, end, '*/')\n ? source.slice(start + 2, end - 2)\n : source.slice(start + 2, end);\n\n onComment(value, loc);\n }\n });\n }\n\n const ast = parser.context[context].call(parser, options);\n\n if (!parser.eof) {\n parser.error();\n }\n\n return ast;\n };\n\n return Object.assign(parse, {\n SyntaxError,\n config: parser.config\n });\n};\n","import {\n Ident,\n String as StringToken,\n Number as NumberToken,\n Function as FunctionToken,\n Url,\n Hash,\n Dimension,\n Percentage,\n LeftParenthesis,\n LeftSquareBracket,\n Comma,\n Delim\n} from '../../tokenizer/index.js';\n\nconst NUMBERSIGN = 0x0023; // U+0023 NUMBER SIGN (#)\nconst ASTERISK = 0x002A; // U+002A ASTERISK (*)\nconst PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+)\nconst HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-)\nconst SOLIDUS = 0x002F; // U+002F SOLIDUS (/)\nconst U = 0x0075; // U+0075 LATIN SMALL LETTER U (u)\n\nexport default function defaultRecognizer(context) {\n switch (this.tokenType) {\n case Hash:\n return this.Hash();\n\n case Comma:\n return this.Operator();\n\n case LeftParenthesis:\n return this.Parentheses(this.readSequence, context.recognizer);\n\n case LeftSquareBracket:\n return this.Brackets(this.readSequence, context.recognizer);\n\n case StringToken:\n return this.String();\n\n case Dimension:\n return this.Dimension();\n\n case Percentage:\n return this.Percentage();\n\n case NumberToken:\n return this.Number();\n\n case FunctionToken:\n return this.cmpStr(this.tokenStart, this.tokenEnd, 'url(')\n ? this.Url()\n : this.Function(this.readSequence, context.recognizer);\n\n case Url:\n return this.Url();\n\n case Ident:\n // check for unicode range, it should start with u+ or U+\n if (this.cmpChar(this.tokenStart, U) &&\n this.cmpChar(this.tokenStart + 1, PLUSSIGN)) {\n return this.UnicodeRange();\n } else {\n return this.Identifier();\n }\n\n case Delim: {\n const code = this.charCodeAt(this.tokenStart);\n\n if (code === SOLIDUS ||\n code === ASTERISK ||\n code === PLUSSIGN ||\n code === HYPHENMINUS) {\n return this.Operator(); // TODO: replace with Delim\n }\n\n // TODO: produce a node with Delim node type\n\n if (code === NUMBERSIGN) {\n this.error('Hex or identifier is expected', this.tokenStart + 1);\n }\n\n break;\n }\n }\n};\n","import getNode from './default.js';\n\nexport default {\n getNode\n};\n","import {\n Delim,\n Ident,\n Dimension,\n Percentage,\n Number as NumberToken,\n Hash,\n Colon,\n LeftSquareBracket\n} from '../../tokenizer/index.js';\n\nconst NUMBERSIGN = 0x0023; // U+0023 NUMBER SIGN (#)\nconst AMPERSAND = 0x0026; // U+0026 AMPERSAND (&)\nconst ASTERISK = 0x002A; // U+002A ASTERISK (*)\nconst PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+)\nconst SOLIDUS = 0x002F; // U+002F SOLIDUS (/)\nconst FULLSTOP = 0x002E; // U+002E FULL STOP (.)\nconst GREATERTHANSIGN = 0x003E; // U+003E GREATER-THAN SIGN (>)\nconst VERTICALLINE = 0x007C; // U+007C VERTICAL LINE (|)\nconst TILDE = 0x007E; // U+007E TILDE (~)\n\nfunction onWhiteSpace(next, children) {\n if (children.last !== null && children.last.type !== 'Combinator' &&\n next !== null && next.type !== 'Combinator') {\n children.push({ // FIXME: this.Combinator() should be used instead\n type: 'Combinator',\n loc: null,\n name: ' '\n });\n }\n}\n\nfunction getNode() {\n switch (this.tokenType) {\n case LeftSquareBracket:\n return this.AttributeSelector();\n\n case Hash:\n return this.IdSelector();\n\n case Colon:\n if (this.lookupType(1) === Colon) {\n return this.PseudoElementSelector();\n } else {\n return this.PseudoClassSelector();\n }\n\n case Ident:\n return this.TypeSelector();\n\n case NumberToken:\n case Percentage:\n return this.Percentage();\n\n case Dimension:\n // throws when .123ident\n if (this.charCodeAt(this.tokenStart) === FULLSTOP) {\n this.error('Identifier is expected', this.tokenStart + 1);\n }\n break;\n\n case Delim: {\n const code = this.charCodeAt(this.tokenStart);\n\n switch (code) {\n case PLUSSIGN:\n case GREATERTHANSIGN:\n case TILDE:\n case SOLIDUS: // /deep/\n return this.Combinator();\n\n case FULLSTOP:\n return this.ClassSelector();\n\n case ASTERISK:\n case VERTICALLINE:\n return this.TypeSelector();\n\n case NUMBERSIGN:\n return this.IdSelector();\n\n case AMPERSAND:\n return this.NestingSelector();\n }\n\n break;\n }\n }\n};\n\nexport default {\n onWhiteSpace,\n getNode\n};\n","// legacy IE function\n// expression( <any-value> )\nexport default function() {\n return this.createSingleNodeList(\n this.Raw(this.tokenIndex, null, false)\n );\n}\n","import { Comma, WhiteSpace } from '../../tokenizer/index.js';\n\n// var( <ident> , <value>? )\nexport default function() {\n const children = this.createList();\n\n this.skipSC();\n\n // NOTE: Don't check more than a first argument is an ident, rest checks are for lexer\n children.push(this.Identifier());\n\n this.skipSC();\n\n if (this.tokenType === Comma) {\n children.push(this.Operator());\n\n const startIndex = this.tokenIndex;\n const value = this.parseCustomProperty\n ? this.Value(null)\n : this.Raw(this.tokenIndex, this.consumeUntilExclamationMarkOrSemicolon, false);\n\n if (value.type === 'Value' && value.children.isEmpty) {\n for (let offset = startIndex - this.tokenIndex; offset <= 0; offset++) {\n if (this.lookupType(offset) === WhiteSpace) {\n value.children.appendData({\n type: 'WhiteSpace',\n loc: null,\n value: ' '\n });\n break;\n }\n }\n }\n\n children.push(value);\n }\n\n return children;\n};\n","import getNode from './default.js';\nimport expressionFn from '../function/expression.js';\nimport varFn from '../function/var.js';\n\nfunction isPlusMinusOperator(node) {\n return (\n node !== null &&\n node.type === 'Operator' &&\n (node.value[node.value.length - 1] === '-' || node.value[node.value.length - 1] === '+')\n );\n}\n\nexport default {\n getNode,\n onWhiteSpace(next, children) {\n if (isPlusMinusOperator(next)) {\n next.value = ' ' + next.value;\n }\n if (isPlusMinusOperator(children.last)) {\n children.last.value += ' ';\n }\n },\n 'expression': expressionFn,\n 'var': varFn\n};\n","export default {\n parse: {\n prelude: null,\n block() {\n return this.Block(true);\n }\n }\n};\n","import {\n String as StringToken,\n Ident,\n Url,\n Function as FunctionToken,\n LeftParenthesis\n} from '../../tokenizer/index.js';\n\nexport default {\n parse: {\n prelude() {\n const children = this.createList();\n\n this.skipSC();\n\n switch (this.tokenType) {\n case StringToken:\n children.push(this.String());\n break;\n\n case Url:\n case FunctionToken:\n children.push(this.Url());\n break;\n\n default:\n this.error('String or url() is expected');\n }\n\n if (this.lookupNonWSType(0) === Ident ||\n this.lookupNonWSType(0) === LeftParenthesis) {\n children.push(this.MediaQueryList());\n }\n\n return children;\n },\n block: null\n }\n};\n","export default {\n parse: {\n prelude() {\n return this.createSingleNodeList(\n this.MediaQueryList()\n );\n },\n block(isStyleBlock = false) {\n return this.Block(isStyleBlock);\n }\n }\n};\n","export default {\n parse: {\n prelude() {\n return this.createSingleNodeList(\n this.SelectorList()\n );\n },\n block() {\n return this.Block(true);\n }\n }\n};\n","export default {\n parse: {\n prelude() {\n return this.createSingleNodeList(\n this.SelectorList()\n );\n },\n block() {\n return this.Block(true);\n }\n }\n};\n","import {\n WhiteSpace,\n Comment,\n Ident,\n Function,\n Colon,\n LeftParenthesis\n} from '../../tokenizer/index.js';\n\nfunction consumeRaw() {\n return this.createSingleNodeList(\n this.Raw(this.tokenIndex, null, false)\n );\n}\n\nfunction parentheses() {\n this.skipSC();\n\n if (this.tokenType === Ident &&\n this.lookupNonWSType(1) === Colon) {\n return this.createSingleNodeList(\n this.Declaration()\n );\n }\n\n return readSequence.call(this);\n}\n\nfunction readSequence() {\n const children = this.createList();\n let child;\n\n this.skipSC();\n\n scan:\n while (!this.eof) {\n switch (this.tokenType) {\n case Comment:\n case WhiteSpace:\n this.next();\n continue;\n\n case Function:\n child = this.Function(consumeRaw, this.scope.AtrulePrelude);\n break;\n\n case Ident:\n child = this.Identifier();\n break;\n\n case LeftParenthesis:\n child = this.Parentheses(parentheses, this.scope.AtrulePrelude);\n break;\n\n default:\n break scan;\n }\n\n children.push(child);\n }\n\n return children;\n}\n\nexport default {\n parse: {\n prelude() {\n const children = readSequence.call(this);\n\n if (this.getFirstListNode(children) === null) {\n this.error('Condition is expected');\n }\n\n return children;\n },\n block(isStyleBlock = false) {\n return this.Block(isStyleBlock);\n }\n }\n};\n","import fontFace from './font-face.js';\nimport importAtrule from './import.js';\nimport media from './media.js';\nimport nest from './nest.js';\nimport page from './page.js';\nimport supports from './supports.js';\n\nexport default {\n 'font-face': fontFace,\n 'import': importAtrule,\n media,\n nest,\n page,\n supports\n};\n","const selectorList = {\n parse() {\n return this.createSingleNodeList(\n this.SelectorList()\n );\n }\n};\n\nconst selector = {\n parse() {\n return this.createSingleNodeList(\n this.Selector()\n );\n }\n};\n\nconst identList = {\n parse() {\n return this.createSingleNodeList(\n this.Identifier()\n );\n }\n};\n\nconst nth = {\n parse() {\n return this.createSingleNodeList(\n this.Nth()\n );\n }\n};\n\nexport default {\n 'dir': identList,\n 'has': selectorList,\n 'lang': identList,\n 'matches': selectorList,\n 'is': selectorList,\n '-moz-any': selectorList,\n '-webkit-any': selectorList,\n 'where': selectorList,\n 'not': selectorList,\n 'nth-child': nth,\n 'nth-last-child': nth,\n 'nth-last-of-type': nth,\n 'nth-of-type': nth,\n 'slotted': selector,\n 'host': selector,\n 'host-context': selector\n};\n","import {\n isDigit,\n WhiteSpace,\n Comment,\n Ident,\n Number,\n Dimension\n} from '../../tokenizer/index.js';\n\nconst PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+)\nconst HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-)\nconst N = 0x006E; // U+006E LATIN SMALL LETTER N (n)\nconst DISALLOW_SIGN = true;\nconst ALLOW_SIGN = false;\n\nfunction checkInteger(offset, disallowSign) {\n let pos = this.tokenStart + offset;\n const code = this.charCodeAt(pos);\n\n if (code === PLUSSIGN || code === HYPHENMINUS) {\n if (disallowSign) {\n this.error('Number sign is not allowed');\n }\n pos++;\n }\n\n for (; pos < this.tokenEnd; pos++) {\n if (!isDigit(this.charCodeAt(pos))) {\n this.error('Integer is expected', pos);\n }\n }\n}\n\nfunction checkTokenIsInteger(disallowSign) {\n return checkInteger.call(this, 0, disallowSign);\n}\n\nfunction expectCharCode(offset, code) {\n if (!this.cmpChar(this.tokenStart + offset, code)) {\n let msg = '';\n\n switch (code) {\n case N:\n msg = 'N is expected';\n break;\n case HYPHENMINUS:\n msg = 'HyphenMinus is expected';\n break;\n }\n\n this.error(msg, this.tokenStart + offset);\n }\n}\n\n// ... <signed-integer>\n// ... ['+' | '-'] <signless-integer>\nfunction consumeB() {\n let offset = 0;\n let sign = 0;\n let type = this.tokenType;\n\n while (type === WhiteSpace || type === Comment) {\n type = this.lookupType(++offset);\n }\n\n if (type !== Number) {\n if (this.isDelim(PLUSSIGN, offset) ||\n this.isDelim(HYPHENMINUS, offset)) {\n sign = this.isDelim(PLUSSIGN, offset) ? PLUSSIGN : HYPHENMINUS;\n\n do {\n type = this.lookupType(++offset);\n } while (type === WhiteSpace || type === Comment);\n\n if (type !== Number) {\n this.skip(offset);\n checkTokenIsInteger.call(this, DISALLOW_SIGN);\n }\n } else {\n return null;\n }\n }\n\n if (offset > 0) {\n this.skip(offset);\n }\n\n if (sign === 0) {\n type = this.charCodeAt(this.tokenStart);\n if (type !== PLUSSIGN && type !== HYPHENMINUS) {\n this.error('Number sign is expected');\n }\n }\n\n checkTokenIsInteger.call(this, sign !== 0);\n return sign === HYPHENMINUS ? '-' + this.consume(Number) : this.consume(Number);\n}\n\n// An+B microsyntax https://www.w3.org/TR/css-syntax-3/#anb\nexport const name = 'AnPlusB';\nexport const structure = {\n a: [String, null],\n b: [String, null]\n};\n\nexport function parse() {\n /* eslint-disable brace-style*/\n const start = this.tokenStart;\n let a = null;\n let b = null;\n\n // <integer>\n if (this.tokenType === Number) {\n checkTokenIsInteger.call(this, ALLOW_SIGN);\n b = this.consume(Number);\n }\n\n // -n\n // -n <signed-integer>\n // -n ['+' | '-'] <signless-integer>\n // -n- <signless-integer>\n // <dashndashdigit-ident>\n else if (this.tokenType === Ident && this.cmpChar(this.tokenStart, HYPHENMINUS)) {\n a = '-1';\n\n expectCharCode.call(this, 1, N);\n\n switch (this.tokenEnd - this.tokenStart) {\n // -n\n // -n <signed-integer>\n // -n ['+' | '-'] <signless-integer>\n case 2:\n this.next();\n b = consumeB.call(this);\n break;\n\n // -n- <signless-integer>\n case 3:\n expectCharCode.call(this, 2, HYPHENMINUS);\n\n this.next();\n this.skipSC();\n\n checkTokenIsInteger.call(this, DISALLOW_SIGN);\n\n b = '-' + this.consume(Number);\n break;\n\n // <dashndashdigit-ident>\n default:\n expectCharCode.call(this, 2, HYPHENMINUS);\n checkInteger.call(this, 3, DISALLOW_SIGN);\n this.next();\n\n b = this.substrToCursor(start + 2);\n }\n }\n\n // '+'? n\n // '+'? n <signed-integer>\n // '+'? n ['+' | '-'] <signless-integer>\n // '+'? n- <signless-integer>\n // '+'? <ndashdigit-ident>\n else if (this.tokenType === Ident || (this.isDelim(PLUSSIGN) && this.lookupType(1) === Ident)) {\n let sign = 0;\n a = '1';\n\n // just ignore a plus\n if (this.isDelim(PLUSSIGN)) {\n sign = 1;\n this.next();\n }\n\n expectCharCode.call(this, 0, N);\n\n switch (this.tokenEnd - this.tokenStart) {\n // '+'? n\n // '+'? n <signed-integer>\n // '+'? n ['+' | '-'] <signless-integer>\n case 1:\n this.next();\n b = consumeB.call(this);\n break;\n\n // '+'? n- <signless-integer>\n case 2:\n expectCharCode.call(this, 1, HYPHENMINUS);\n\n this.next();\n this.skipSC();\n\n checkTokenIsInteger.call(this, DISALLOW_SIGN);\n\n b = '-' + this.consume(Number);\n break;\n\n // '+'? <ndashdigit-ident>\n default:\n expectCharCode.call(this, 1, HYPHENMINUS);\n checkInteger.call(this, 2, DISALLOW_SIGN);\n this.next();\n\n b = this.substrToCursor(start + sign + 1);\n }\n }\n\n // <ndashdigit-dimension>\n // <ndash-dimension> <signless-integer>\n // <n-dimension>\n // <n-dimension> <signed-integer>\n // <n-dimension> ['+' | '-'] <signless-integer>\n else if (this.tokenType === Dimension) {\n const code = this.charCodeAt(this.tokenStart);\n const sign = code === PLUSSIGN || code === HYPHENMINUS;\n let i = this.tokenStart + sign;\n\n for (; i < this.tokenEnd; i++) {\n if (!isDigit(this.charCodeAt(i))) {\n break;\n }\n }\n\n if (i === this.tokenStart + sign) {\n this.error('Integer is expected', this.tokenStart + sign);\n }\n\n expectCharCode.call(this, i - this.tokenStart, N);\n a = this.substring(start, i);\n\n // <n-dimension>\n // <n-dimension> <signed-integer>\n // <n-dimension> ['+' | '-'] <signless-integer>\n if (i + 1 === this.tokenEnd) {\n this.next();\n b = consumeB.call(this);\n } else {\n expectCharCode.call(this, i - this.tokenStart + 1, HYPHENMINUS);\n\n // <ndash-dimension> <signless-integer>\n if (i + 2 === this.tokenEnd) {\n this.next();\n this.skipSC();\n checkTokenIsInteger.call(this, DISALLOW_SIGN);\n b = '-' + this.consume(Number);\n }\n // <ndashdigit-dimension>\n else {\n checkInteger.call(this, i - this.tokenStart + 2, DISALLOW_SIGN);\n this.next();\n b = this.substrToCursor(i + 1);\n }\n }\n } else {\n this.error();\n }\n\n if (a !== null && a.charCodeAt(0) === PLUSSIGN) {\n a = a.substr(1);\n }\n\n if (b !== null && b.charCodeAt(0) === PLUSSIGN) {\n b = b.substr(1);\n }\n\n return {\n type: 'AnPlusB',\n loc: this.getLocation(start, this.tokenStart),\n a,\n b\n };\n}\n\nexport function generate(node) {\n if (node.a) {\n const a =\n node.a === '+1' && 'n' ||\n node.a === '1' && 'n' ||\n node.a === '-1' && '-n' ||\n node.a + 'n';\n\n if (node.b) {\n const b = node.b[0] === '-' || node.b[0] === '+'\n ? node.b\n : '+' + node.b;\n this.tokenize(a + b);\n } else {\n this.tokenize(a);\n }\n } else {\n this.tokenize(node.b);\n }\n}\n","import {\n AtKeyword,\n Semicolon,\n LeftCurlyBracket,\n RightCurlyBracket\n} from '../../tokenizer/index.js';\n\nfunction consumeRaw(startToken) {\n return this.Raw(startToken, this.consumeUntilLeftCurlyBracketOrSemicolon, true);\n}\n\nfunction isDeclarationBlockAtrule() {\n for (let offset = 1, type; type = this.lookupType(offset); offset++) {\n if (type === RightCurlyBracket) {\n return true;\n }\n\n if (type === LeftCurlyBracket ||\n type === AtKeyword) {\n return false;\n }\n }\n\n return false;\n}\n\n\nexport const name = 'Atrule';\nexport const walkContext = 'atrule';\nexport const structure = {\n name: String,\n prelude: ['AtrulePrelude', 'Raw', null],\n block: ['Block', null]\n};\n\nexport function parse(isDeclaration = false) {\n const start = this.tokenStart;\n let name;\n let nameLowerCase;\n let prelude = null;\n let block = null;\n\n this.eat(AtKeyword);\n\n name = this.substrToCursor(start + 1);\n nameLowerCase = name.toLowerCase();\n this.skipSC();\n\n // parse prelude\n if (this.eof === false &&\n this.tokenType !== LeftCurlyBracket &&\n this.tokenType !== Semicolon) {\n if (this.parseAtrulePrelude) {\n prelude = this.parseWithFallback(this.AtrulePrelude.bind(this, name, isDeclaration), consumeRaw);\n } else {\n prelude = consumeRaw.call(this, this.tokenIndex);\n }\n\n this.skipSC();\n }\n\n switch (this.tokenType) {\n case Semicolon:\n this.next();\n break;\n\n case LeftCurlyBracket:\n if (hasOwnProperty.call(this.atrule, nameLowerCase) &&\n typeof this.atrule[nameLowerCase].block === 'function') {\n block = this.atrule[nameLowerCase].block.call(this, isDeclaration);\n } else {\n // TODO: should consume block content as Raw?\n block = this.Block(isDeclarationBlockAtrule.call(this));\n }\n\n break;\n }\n\n return {\n type: 'Atrule',\n loc: this.getLocation(start, this.tokenStart),\n name,\n prelude,\n block\n };\n}\n\nexport function generate(node) {\n this.token(AtKeyword, '@' + node.name);\n\n if (node.prelude !== null) {\n this.node(node.prelude);\n }\n\n if (node.block) {\n this.node(node.block);\n } else {\n this.token(Semicolon, ';');\n }\n}\n","import {\n Semicolon,\n LeftCurlyBracket\n} from '../../tokenizer/index.js';\n\nexport const name = 'AtrulePrelude';\nexport const walkContext = 'atrulePrelude';\nexport const structure = {\n children: [[]]\n};\n\nexport function parse(name) {\n let children = null;\n\n if (name !== null) {\n name = name.toLowerCase();\n }\n\n this.skipSC();\n\n if (hasOwnProperty.call(this.atrule, name) &&\n typeof this.atrule[name].prelude === 'function') {\n // custom consumer\n children = this.atrule[name].prelude.call(this);\n } else {\n // default consumer\n children = this.readSequence(this.scope.AtrulePrelude);\n }\n\n this.skipSC();\n\n if (this.eof !== true &&\n this.tokenType !== LeftCurlyBracket &&\n this.tokenType !== Semicolon) {\n this.error('Semicolon or block is expected');\n }\n\n return {\n type: 'AtrulePrelude',\n loc: this.getLocationFromList(children),\n children\n };\n}\n\nexport function generate(node) {\n this.children(node);\n}\n","import {\n Ident,\n String as StringToken,\n Delim,\n LeftSquareBracket,\n RightSquareBracket\n} from '../../tokenizer/index.js';\n\nconst DOLLARSIGN = 0x0024; // U+0024 DOLLAR SIGN ($)\nconst ASTERISK = 0x002A; // U+002A ASTERISK (*)\nconst EQUALSSIGN = 0x003D; // U+003D EQUALS SIGN (=)\nconst CIRCUMFLEXACCENT = 0x005E; // U+005E (^)\nconst VERTICALLINE = 0x007C; // U+007C VERTICAL LINE (|)\nconst TILDE = 0x007E; // U+007E TILDE (~)\n\nfunction getAttributeName() {\n if (this.eof) {\n this.error('Unexpected end of input');\n }\n\n const start = this.tokenStart;\n let expectIdent = false;\n\n if (this.isDelim(ASTERISK)) {\n expectIdent = true;\n this.next();\n } else if (!this.isDelim(VERTICALLINE)) {\n this.eat(Ident);\n }\n\n if (this.isDelim(VERTICALLINE)) {\n if (this.charCodeAt(this.tokenStart + 1) !== EQUALSSIGN) {\n this.next();\n this.eat(Ident);\n } else if (expectIdent) {\n this.error('Identifier is expected', this.tokenEnd);\n }\n } else if (expectIdent) {\n this.error('Vertical line is expected');\n }\n\n return {\n type: 'Identifier',\n loc: this.getLocation(start, this.tokenStart),\n name: this.substrToCursor(start)\n };\n}\n\nfunction getOperator() {\n const start = this.tokenStart;\n const code = this.charCodeAt(start);\n\n if (code !== EQUALSSIGN && // =\n code !== TILDE && // ~=\n code !== CIRCUMFLEXACCENT && // ^=\n code !== DOLLARSIGN && // $=\n code !== ASTERISK && // *=\n code !== VERTICALLINE // |=\n ) {\n this.error('Attribute selector (=, ~=, ^=, $=, *=, |=) is expected');\n }\n\n this.next();\n\n if (code !== EQUALSSIGN) {\n if (!this.isDelim(EQUALSSIGN)) {\n this.error('Equal sign is expected');\n }\n\n this.next();\n }\n\n return this.substrToCursor(start);\n}\n\n// '[' <wq-name> ']'\n// '[' <wq-name> <attr-matcher> [ <string-token> | <ident-token> ] <attr-modifier>? ']'\nexport const name = 'AttributeSelector';\nexport const structure = {\n name: 'Identifier',\n matcher: [String, null],\n value: ['String', 'Identifier', null],\n flags: [String, null]\n};\n\nexport function parse() {\n const start = this.tokenStart;\n let name;\n let matcher = null;\n let value = null;\n let flags = null;\n\n this.eat(LeftSquareBracket);\n this.skipSC();\n\n name = getAttributeName.call(this);\n this.skipSC();\n\n if (this.tokenType !== RightSquareBracket) {\n // avoid case `[name i]`\n if (this.tokenType !== Ident) {\n matcher = getOperator.call(this);\n\n this.skipSC();\n\n value = this.tokenType === StringToken\n ? this.String()\n : this.Identifier();\n\n this.skipSC();\n }\n\n // attribute flags\n if (this.tokenType === Ident) {\n flags = this.consume(Ident);\n\n this.skipSC();\n }\n }\n\n this.eat(RightSquareBracket);\n\n return {\n type: 'AttributeSelector',\n loc: this.getLocation(start, this.tokenStart),\n name,\n matcher,\n value,\n flags\n };\n}\n\nexport function generate(node) {\n this.token(Delim, '[');\n this.node(node.name);\n\n if (node.matcher !== null) {\n this.tokenize(node.matcher);\n this.node(node.value);\n }\n\n if (node.flags !== null) {\n this.token(Ident, node.flags);\n }\n\n this.token(Delim, ']');\n}\n","import {\n WhiteSpace,\n Comment,\n Semicolon,\n AtKeyword,\n LeftCurlyBracket,\n RightCurlyBracket\n} from '../../tokenizer/index.js';\n\nconst AMPERSAND = 0x0026; // U+0026 AMPERSAND (&)\n\nfunction consumeRaw(startToken) {\n return this.Raw(startToken, null, true);\n}\nfunction consumeRule() {\n return this.parseWithFallback(this.Rule, consumeRaw);\n}\nfunction consumeRawDeclaration(startToken) {\n return this.Raw(startToken, this.consumeUntilSemicolonIncluded, true);\n}\nfunction consumeDeclaration() {\n if (this.tokenType === Semicolon) {\n return consumeRawDeclaration.call(this, this.tokenIndex);\n }\n\n const node = this.parseWithFallback(this.Declaration, consumeRawDeclaration);\n\n if (this.tokenType === Semicolon) {\n this.next();\n }\n\n return node;\n}\n\nexport const name = 'Block';\nexport const walkContext = 'block';\nexport const structure = {\n children: [[\n 'Atrule',\n 'Rule',\n 'Declaration'\n ]]\n};\n\nexport function parse(isStyleBlock) {\n const consumer = isStyleBlock ? consumeDeclaration : consumeRule;\n const start = this.tokenStart;\n let children = this.createList();\n\n this.eat(LeftCurlyBracket);\n\n scan:\n while (!this.eof) {\n switch (this.tokenType) {\n case RightCurlyBracket:\n break scan;\n\n case WhiteSpace:\n case Comment:\n this.next();\n break;\n\n case AtKeyword:\n children.push(this.parseWithFallback(this.Atrule.bind(this, isStyleBlock), consumeRaw));\n break;\n\n default:\n if (isStyleBlock && this.isDelim(AMPERSAND)) {\n children.push(consumeRule.call(this));\n } else {\n children.push(consumer.call(this));\n }\n }\n }\n\n if (!this.eof) {\n this.eat(RightCurlyBracket);\n }\n\n return {\n type: 'Block',\n loc: this.getLocation(start, this.tokenStart),\n children\n };\n}\n\nexport function generate(node) {\n this.token(LeftCurlyBracket, '{');\n this.children(node, prev => {\n if (prev.type === 'Declaration') {\n this.token(Semicolon, ';');\n }\n });\n this.token(RightCurlyBracket, '}');\n}\n","import {\n Delim,\n LeftSquareBracket,\n RightSquareBracket\n} from '../../tokenizer/index.js';\n\nexport const name = 'Brackets';\nexport const structure = {\n children: [[]]\n};\n\nexport function parse(readSequence, recognizer) {\n const start = this.tokenStart;\n let children = null;\n\n this.eat(LeftSquareBracket);\n\n children = readSequence.call(this, recognizer);\n\n if (!this.eof) {\n this.eat(RightSquareBracket);\n }\n\n return {\n type: 'Brackets',\n loc: this.getLocation(start, this.tokenStart),\n children\n };\n}\n\nexport function generate(node) {\n this.token(Delim, '[');\n this.children(node);\n this.token(Delim, ']');\n}\n","import { CDC } from '../../tokenizer/index.js';\n\nexport const name = 'CDC';\nexport const structure = [];\n\nexport function parse() {\n const start = this.tokenStart;\n\n this.eat(CDC); // -->\n\n return {\n type: 'CDC',\n loc: this.getLocation(start, this.tokenStart)\n };\n}\n\nexport function generate() {\n this.token(CDC, '-->');\n}\n","import { CDO } from '../../tokenizer/index.js';\n\nexport const name = 'CDO';\nexport const structure = [];\n\nexport function parse() {\n const start = this.tokenStart;\n\n this.eat(CDO); // <!--\n\n return {\n type: 'CDO',\n loc: this.getLocation(start, this.tokenStart)\n };\n}\n\nexport function generate() {\n this.token(CDO, '<!--');\n}\n","import { Delim, Ident } from '../../tokenizer/index.js';\n\nconst FULLSTOP = 0x002E; // U+002E FULL STOP (.)\n\n// '.' ident\nexport const name = 'ClassSelector';\nexport const structure = {\n name: String\n};\n\nexport function parse() {\n this.eatDelim(FULLSTOP);\n\n return {\n type: 'ClassSelector',\n loc: this.getLocation(this.tokenStart - 1, this.tokenEnd),\n name: this.consume(Ident)\n };\n}\n\nexport function generate(node) {\n this.token(Delim, '.');\n this.token(Ident, node.name);\n}\n","import { WhiteSpace, Delim } from '../../tokenizer/index.js';\n\nconst PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+)\nconst SOLIDUS = 0x002F; // U+002F SOLIDUS (/)\nconst GREATERTHANSIGN = 0x003E; // U+003E GREATER-THAN SIGN (>)\nconst TILDE = 0x007E; // U+007E TILDE (~)\n\nexport const name = 'Combinator';\nexport const structure = {\n name: String\n};\n\n// + | > | ~ | /deep/\nexport function parse() {\n const start = this.tokenStart;\n let name;\n\n switch (this.tokenType) {\n case WhiteSpace:\n name = ' ';\n break;\n\n case Delim:\n switch (this.charCodeAt(this.tokenStart)) {\n case GREATERTHANSIGN:\n case PLUSSIGN:\n case TILDE:\n this.next();\n break;\n\n case SOLIDUS:\n this.next();\n this.eatIdent('deep');\n this.eatDelim(SOLIDUS);\n break;\n\n default:\n this.error('Combinator is expected');\n }\n\n name = this.substrToCursor(start);\n break;\n }\n\n return {\n type: 'Combinator',\n loc: this.getLocation(start, this.tokenStart),\n name\n };\n}\n\nexport function generate(node) {\n this.tokenize(node.name);\n}\n","import { Comment } from '../../tokenizer/index.js';\n\nconst ASTERISK = 0x002A; // U+002A ASTERISK (*)\nconst SOLIDUS = 0x002F; // U+002F SOLIDUS (/)\n\n\nexport const name = 'Comment';\nexport const structure = {\n value: String\n};\n\nexport function parse() {\n const start = this.tokenStart;\n let end = this.tokenEnd;\n\n this.eat(Comment);\n\n if ((end - start + 2) >= 2 &&\n this.charCodeAt(end - 2) === ASTERISK &&\n this.charCodeAt(end - 1) === SOLIDUS) {\n end -= 2;\n }\n\n return {\n type: 'Comment',\n loc: this.getLocation(start, this.tokenStart),\n value: this.substring(start + 2, end)\n };\n}\n\nexport function generate(node) {\n this.token(Comment, '/*' + node.value + '*/');\n}\n","const keywords = new Map();\nconst properties = new Map();\nconst HYPHENMINUS = 45; // '-'.charCodeAt()\n\nexport const keyword = getKeywordDescriptor;\nexport const property = getPropertyDescriptor;\nexport const vendorPrefix = getVendorPrefix;\nexport function isCustomProperty(str, offset) {\n offset = offset || 0;\n\n return str.length - offset >= 2 &&\n str.charCodeAt(offset) === HYPHENMINUS &&\n str.charCodeAt(offset + 1) === HYPHENMINUS;\n}\n\nfunction getVendorPrefix(str, offset) {\n offset = offset || 0;\n\n // verdor prefix should be at least 3 chars length\n if (str.length - offset >= 3) {\n // vendor prefix starts with hyper minus following non-hyper minus\n if (str.charCodeAt(offset) === HYPHENMINUS &&\n str.charCodeAt(offset + 1) !== HYPHENMINUS) {\n // vendor prefix should contain a hyper minus at the ending\n const secondDashIndex = str.indexOf('-', offset + 2);\n\n if (secondDashIndex !== -1) {\n return str.substring(offset, secondDashIndex + 1);\n }\n }\n }\n\n return '';\n}\n\nfunction getKeywordDescriptor(keyword) {\n if (keywords.has(keyword)) {\n return keywords.get(keyword);\n }\n\n const name = keyword.toLowerCase();\n let descriptor = keywords.get(name);\n\n if (descriptor === undefined) {\n const custom = isCustomProperty(name, 0);\n const vendor = !custom ? getVendorPrefix(name, 0) : '';\n descriptor = Object.freeze({\n basename: name.substr(vendor.length),\n name,\n prefix: vendor,\n vendor,\n custom\n });\n }\n\n keywords.set(keyword, descriptor);\n\n return descriptor;\n}\n\nfunction getPropertyDescriptor(property) {\n if (properties.has(property)) {\n return properties.get(property);\n }\n\n let name = property;\n let hack = property[0];\n\n if (hack === '/') {\n hack = property[1] === '/' ? '//' : '/';\n } else if (hack !== '_' &&\n hack !== '*' &&\n hack !== '$' &&\n hack !== '#' &&\n hack !== '+' &&\n hack !== '&') {\n hack = '';\n }\n\n const custom = isCustomProperty(name, hack.length);\n\n // re-use result when possible (the same as for lower case)\n if (!custom) {\n name = name.toLowerCase();\n if (properties.has(name)) {\n const descriptor = properties.get(name);\n properties.set(property, descriptor);\n return descriptor;\n }\n }\n\n const vendor = !custom ? getVendorPrefix(name, hack.length) : '';\n const prefix = name.substr(0, hack.length + vendor.length);\n const descriptor = Object.freeze({\n basename: name.substr(prefix.length),\n name: name.substr(hack.length),\n hack,\n vendor,\n prefix,\n custom\n });\n\n properties.set(property, descriptor);\n\n return descriptor;\n}\n","import { isCustomProperty } from '../../utils/names.js';\nimport {\n Ident,\n Hash,\n Colon,\n Semicolon,\n Delim,\n WhiteSpace\n} from '../../tokenizer/index.js';\n\nconst EXCLAMATIONMARK = 0x0021; // U+0021 EXCLAMATION MARK (!)\nconst NUMBERSIGN = 0x0023; // U+0023 NUMBER SIGN (#)\nconst DOLLARSIGN = 0x0024; // U+0024 DOLLAR SIGN ($)\nconst AMPERSAND = 0x0026; // U+0026 AMPERSAND (&)\nconst ASTERISK = 0x002A; // U+002A ASTERISK (*)\nconst PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+)\nconst SOLIDUS = 0x002F; // U+002F SOLIDUS (/)\n\nfunction consumeValueRaw(startToken) {\n return this.Raw(startToken, this.consumeUntilExclamationMarkOrSemicolon, true);\n}\n\nfunction consumeCustomPropertyRaw(startToken) {\n return this.Raw(startToken, this.consumeUntilExclamationMarkOrSemicolon, false);\n}\n\nfunction consumeValue() {\n const startValueToken = this.tokenIndex;\n const value = this.Value();\n\n if (value.type !== 'Raw' &&\n this.eof === false &&\n this.tokenType !== Semicolon &&\n this.isDelim(EXCLAMATIONMARK) === false &&\n this.isBalanceEdge(startValueToken) === false) {\n this.error();\n }\n\n return value;\n}\n\nexport const name = 'Declaration';\nexport const walkContext = 'declaration';\nexport const structure = {\n important: [Boolean, String],\n property: String,\n value: ['Value', 'Raw']\n};\n\nexport function parse() {\n const start = this.tokenStart;\n const startToken = this.tokenIndex;\n const property = readProperty.call(this);\n const customProperty = isCustomProperty(property);\n const parseValue = customProperty ? this.parseCustomProperty : this.parseValue;\n const consumeRaw = customProperty ? consumeCustomPropertyRaw : consumeValueRaw;\n let important = false;\n let value;\n\n this.skipSC();\n this.eat(Colon);\n\n const valueStart = this.tokenIndex;\n\n if (!customProperty) {\n this.skipSC();\n }\n\n if (parseValue) {\n value = this.parseWithFallback(consumeValue, consumeRaw);\n } else {\n value = consumeRaw.call(this, this.tokenIndex);\n }\n\n if (customProperty && value.type === 'Value' && value.children.isEmpty) {\n for (let offset = valueStart - this.tokenIndex; offset <= 0; offset++) {\n if (this.lookupType(offset) === WhiteSpace) {\n value.children.appendData({\n type: 'WhiteSpace',\n loc: null,\n value: ' '\n });\n break;\n }\n }\n }\n\n if (this.isDelim(EXCLAMATIONMARK)) {\n important = getImportant.call(this);\n this.skipSC();\n }\n\n // Do not include semicolon to range per spec\n // https://drafts.csswg.org/css-syntax/#declaration-diagram\n\n if (this.eof === false &&\n this.tokenType !== Semicolon &&\n this.isBalanceEdge(startToken) === false) {\n this.error();\n }\n\n return {\n type: 'Declaration',\n loc: this.getLocation(start, this.tokenStart),\n important,\n property,\n value\n };\n}\n\nexport function generate(node) {\n this.token(Ident, node.property);\n this.token(Colon, ':');\n this.node(node.value);\n\n if (node.important) {\n this.token(Delim, '!');\n this.token(Ident, node.important === true ? 'important' : node.important);\n }\n}\n\nfunction readProperty() {\n const start = this.tokenStart;\n\n // hacks\n if (this.tokenType === Delim) {\n switch (this.charCodeAt(this.tokenStart)) {\n case ASTERISK:\n case DOLLARSIGN:\n case PLUSSIGN:\n case NUMBERSIGN:\n case AMPERSAND:\n this.next();\n break;\n\n // TODO: not sure we should support this hack\n case SOLIDUS:\n this.next();\n if (this.isDelim(SOLIDUS)) {\n this.next();\n }\n break;\n }\n }\n\n if (this.tokenType === Hash) {\n this.eat(Hash);\n } else {\n this.eat(Ident);\n }\n\n return this.substrToCursor(start);\n}\n\n// ! ws* important\nfunction getImportant() {\n this.eat(Delim);\n this.skipSC();\n\n const important = this.consume(Ident);\n\n // store original value in case it differ from `important`\n // for better original source restoring and hacks like `!ie` support\n return important === 'important' ? true : important;\n}\n","import {\n WhiteSpace,\n Comment,\n Semicolon,\n AtKeyword\n} from '../../tokenizer/index.js';\n\nconst AMPERSAND = 0x0026; // U+0026 AMPERSAND (&)\n\nfunction consumeRaw(startToken) {\n return this.Raw(startToken, this.consumeUntilSemicolonIncluded, true);\n}\n\nexport const name = 'DeclarationList';\nexport const structure = {\n children: [[\n 'Declaration',\n 'Atrule',\n 'Rule'\n ]]\n};\n\nexport function parse() {\n const children = this.createList();\n\n scan:\n while (!this.eof) {\n switch (this.tokenType) {\n case WhiteSpace:\n case Comment:\n case Semicolon:\n this.next();\n break;\n\n case AtKeyword:\n children.push(this.parseWithFallback(this.Atrule.bind(this, true), consumeRaw));\n break;\n\n default:\n if (this.isDelim(AMPERSAND)) {\n children.push(this.parseWithFallback(this.Rule, consumeRaw));\n } else {\n children.push(this.parseWithFallback(this.Declaration, consumeRaw));\n }\n }\n }\n\n return {\n type: 'DeclarationList',\n loc: this.getLocationFromList(children),\n children\n };\n}\n\nexport function generate(node) {\n this.children(node, prev => {\n if (prev.type === 'Declaration') {\n this.token(Semicolon, ';');\n }\n });\n}\n\n","import { Dimension } from '../../tokenizer/index.js';\n\nexport const name = 'Dimension';\nexport const structure = {\n value: String,\n unit: String\n};\n\nexport function parse() {\n const start = this.tokenStart;\n const value = this.consumeNumber(Dimension);\n\n return {\n type: 'Dimension',\n loc: this.getLocation(start, this.tokenStart),\n value,\n unit: this.substring(start + value.length, this.tokenStart)\n };\n}\n\nexport function generate(node) {\n this.token(Dimension, node.value + node.unit);\n}\n","import {\n Function as FunctionToken,\n RightParenthesis\n} from '../../tokenizer/index.js';\n\n\nexport const name = 'Function';\nexport const walkContext = 'function';\nexport const structure = {\n name: String,\n children: [[]]\n};\n\n// <function-token> <sequence> )\nexport function parse(readSequence, recognizer) {\n const start = this.tokenStart;\n const name = this.consumeFunctionName();\n const nameLowerCase = name.toLowerCase();\n let children;\n\n children = recognizer.hasOwnProperty(nameLowerCase)\n ? recognizer[nameLowerCase].call(this, recognizer)\n : readSequence.call(this, recognizer);\n\n if (!this.eof) {\n this.eat(RightParenthesis);\n }\n\n return {\n type: 'Function',\n loc: this.getLocation(start, this.tokenStart),\n name,\n children\n };\n}\n\nexport function generate(node) {\n this.token(FunctionToken, node.name + '(');\n this.children(node);\n this.token(RightParenthesis, ')');\n}\n","import { Hash } from '../../tokenizer/index.js';\n\n// '#' ident\nexport const xxx = 'XXX';\nexport const name = 'Hash';\nexport const structure = {\n value: String\n};\nexport function parse() {\n const start = this.tokenStart;\n\n this.eat(Hash);\n\n return {\n type: 'Hash',\n loc: this.getLocation(start, this.tokenStart),\n value: this.substrToCursor(start + 1)\n };\n}\nexport function generate(node) {\n this.token(Hash, '#' + node.value);\n}\n\n","import { Ident } from '../../tokenizer/index.js';\n\nexport const name = 'Identifier';\nexport const structure = {\n name: String\n};\n\nexport function parse() {\n return {\n type: 'Identifier',\n loc: this.getLocation(this.tokenStart, this.tokenEnd),\n name: this.consume(Ident)\n };\n}\n\nexport function generate(node) {\n this.token(Ident, node.name);\n}\n","import { Hash, Delim } from '../../tokenizer/index.js';\n\nexport const name = 'IdSelector';\nexport const structure = {\n name: String\n};\n\nexport function parse() {\n const start = this.tokenStart;\n\n // TODO: check value is an ident\n this.eat(Hash);\n\n return {\n type: 'IdSelector',\n loc: this.getLocation(start, this.tokenStart),\n name: this.substrToCursor(start + 1)\n };\n}\n\nexport function generate(node) {\n // Using Delim instead of Hash is a hack to avoid for a whitespace between ident and id-selector\n // in safe mode (e.g. \"a#id\"), because IE11 doesn't allow a sequence <ident-token> <hash-token>\n // without a whitespace in values (e.g. \"1px solid#000\")\n this.token(Delim, '#' + node.name);\n}\n","import {\n Ident,\n Number,\n Dimension,\n LeftParenthesis,\n RightParenthesis,\n Colon,\n Delim\n} from '../../tokenizer/index.js';\n\nexport const name = 'MediaFeature';\nexport const structure = {\n name: String,\n value: ['Identifier', 'Number', 'Dimension', 'Ratio', null]\n};\n\nexport function parse() {\n const start = this.tokenStart;\n let name;\n let value = null;\n\n this.eat(LeftParenthesis);\n this.skipSC();\n\n name = this.consume(Ident);\n this.skipSC();\n\n if (this.tokenType !== RightParenthesis) {\n this.eat(Colon);\n this.skipSC();\n\n switch (this.tokenType) {\n case Number:\n if (this.lookupNonWSType(1) === Delim) {\n value = this.Ratio();\n } else {\n value = this.Number();\n }\n\n break;\n\n case Dimension:\n value = this.Dimension();\n break;\n\n case Ident:\n value = this.Identifier();\n break;\n\n default:\n this.error('Number, dimension, ratio or identifier is expected');\n }\n\n this.skipSC();\n }\n\n this.eat(RightParenthesis);\n\n return {\n type: 'MediaFeature',\n loc: this.getLocation(start, this.tokenStart),\n name,\n value\n };\n}\n\nexport function generate(node) {\n this.token(LeftParenthesis, '(');\n this.token(Ident, node.name);\n\n if (node.value !== null) {\n this.token(Colon, ':');\n this.node(node.value);\n }\n\n this.token(RightParenthesis, ')');\n}\n","import {\n WhiteSpace,\n Comment,\n Ident,\n LeftParenthesis\n} from '../../tokenizer/index.js';\n\nexport const name = 'MediaQuery';\nexport const structure = {\n children: [[\n 'Identifier',\n 'MediaFeature',\n 'WhiteSpace'\n ]]\n};\n\nexport function parse() {\n const children = this.createList();\n let child = null;\n\n this.skipSC();\n\n scan:\n while (!this.eof) {\n switch (this.tokenType) {\n case Comment:\n case WhiteSpace:\n this.next();\n continue;\n\n case Ident:\n child = this.Identifier();\n break;\n\n case LeftParenthesis:\n child = this.MediaFeature();\n break;\n\n default:\n break scan;\n }\n\n children.push(child);\n }\n\n if (child === null) {\n this.error('Identifier or parenthesis is expected');\n }\n\n return {\n type: 'MediaQuery',\n loc: this.getLocationFromList(children),\n children\n };\n}\n\nexport function generate(node) {\n this.children(node);\n}\n\n","import { Comma } from '../../tokenizer/index.js';\n\nexport const name = 'MediaQueryList';\nexport const structure = {\n children: [[\n 'MediaQuery'\n ]]\n};\n\nexport function parse() {\n const children = this.createList();\n\n this.skipSC();\n\n while (!this.eof) {\n children.push(this.MediaQuery());\n\n if (this.tokenType !== Comma) {\n break;\n }\n\n this.next();\n }\n\n return {\n type: 'MediaQueryList',\n loc: this.getLocationFromList(children),\n children\n };\n}\n\nexport function generate(node) {\n this.children(node, () => this.token(Comma, ','));\n}\n","import { Delim } from '../../tokenizer/index.js';\n\nconst AMPERSAND = 0x0026; // U+0026 AMPERSAND (&)\n\nexport const name = 'NestingSelector';\nexport const structure = {\n};\n\nexport function parse() {\n const start = this.tokenStart;\n\n this.eatDelim(AMPERSAND);\n\n return {\n type: 'NestingSelector',\n loc: this.getLocation(start, this.tokenStart)\n };\n}\n\nexport function generate() {\n this.token(Delim, '&');\n}\n","import { Ident } from '../../tokenizer/index.js';\n\nexport const name = 'Nth';\nexport const structure = {\n nth: ['AnPlusB', 'Identifier'],\n selector: ['SelectorList', null]\n};\n\nexport function parse() {\n this.skipSC();\n\n const start = this.tokenStart;\n let end = start;\n let selector = null;\n let nth;\n\n if (this.lookupValue(0, 'odd') || this.lookupValue(0, 'even')) {\n nth = this.Identifier();\n } else {\n nth = this.AnPlusB();\n }\n\n end = this.tokenStart;\n this.skipSC();\n\n if (this.lookupValue(0, 'of')) {\n this.next();\n\n selector = this.SelectorList();\n end = this.tokenStart;\n }\n\n return {\n type: 'Nth',\n loc: this.getLocation(start, end),\n nth,\n selector\n };\n}\n\nexport function generate(node) {\n this.node(node.nth);\n if (node.selector !== null) {\n this.token(Ident, 'of');\n this.node(node.selector);\n }\n}\n","import { Number as NumberToken } from '../../tokenizer/index.js';\n\nexport const name = 'Number';\nexport const structure = {\n value: String\n};\n\nexport function parse() {\n return {\n type: 'Number',\n loc: this.getLocation(this.tokenStart, this.tokenEnd),\n value: this.consume(NumberToken)\n };\n}\n\nexport function generate(node) {\n this.token(NumberToken, node.value);\n}\n","// '/' | '*' | ',' | ':' | '+' | '-'\nexport const name = 'Operator';\nexport const structure = {\n value: String\n};\n\nexport function parse() {\n const start = this.tokenStart;\n\n this.next();\n\n return {\n type: 'Operator',\n loc: this.getLocation(start, this.tokenStart),\n value: this.substrToCursor(start)\n };\n}\n\nexport function generate(node) {\n this.tokenize(node.value);\n}\n","import {\n LeftParenthesis,\n RightParenthesis\n} from '../../tokenizer/index.js';\n\nexport const name = 'Parentheses';\nexport const structure = {\n children: [[]]\n};\n\nexport function parse(readSequence, recognizer) {\n const start = this.tokenStart;\n let children = null;\n\n this.eat(LeftParenthesis);\n\n children = readSequence.call(this, recognizer);\n\n if (!this.eof) {\n this.eat(RightParenthesis);\n }\n\n return {\n type: 'Parentheses',\n loc: this.getLocation(start, this.tokenStart),\n children\n };\n}\n\nexport function generate(node) {\n this.token(LeftParenthesis, '(');\n this.children(node);\n this.token(RightParenthesis, ')');\n}\n","import { Percentage } from '../../tokenizer/index.js';\n\nexport const name = 'Percentage';\nexport const structure = {\n value: String\n};\n\nexport function parse() {\n return {\n type: 'Percentage',\n loc: this.getLocation(this.tokenStart, this.tokenEnd),\n value: this.consumeNumber(Percentage)\n };\n}\n\nexport function generate(node) {\n this.token(Percentage, node.value + '%');\n}\n","import {\n Ident,\n Function as FunctionToken,\n Colon,\n RightParenthesis\n} from '../../tokenizer/index.js';\n\n\nexport const name = 'PseudoClassSelector';\nexport const walkContext = 'function';\nexport const structure = {\n name: String,\n children: [['Raw'], null]\n};\n\n// : [ <ident> | <function-token> <any-value>? ) ]\nexport function parse() {\n const start = this.tokenStart;\n let children = null;\n let name;\n let nameLowerCase;\n\n this.eat(Colon);\n\n if (this.tokenType === FunctionToken) {\n name = this.consumeFunctionName();\n nameLowerCase = name.toLowerCase();\n\n if (hasOwnProperty.call(this.pseudo, nameLowerCase)) {\n this.skipSC();\n children = this.pseudo[nameLowerCase].call(this);\n this.skipSC();\n } else {\n children = this.createList();\n children.push(\n this.Raw(this.tokenIndex, null, false)\n );\n }\n\n this.eat(RightParenthesis);\n } else {\n name = this.consume(Ident);\n }\n\n return {\n type: 'PseudoClassSelector',\n loc: this.getLocation(start, this.tokenStart),\n name,\n children\n };\n}\n\nexport function generate(node) {\n this.token(Colon, ':');\n\n if (node.children === null) {\n this.token(Ident, node.name);\n } else {\n this.token(FunctionToken, node.name + '(');\n this.children(node);\n this.token(RightParenthesis, ')');\n }\n}\n","import {\n Ident,\n Function as FunctionToken,\n Colon,\n RightParenthesis\n} from '../../tokenizer/index.js';\n\nexport const name = 'PseudoElementSelector';\nexport const walkContext = 'function';\nexport const structure = {\n name: String,\n children: [['Raw'], null]\n};\n\n// :: [ <ident> | <function-token> <any-value>? ) ]\nexport function parse() {\n const start = this.tokenStart;\n let children = null;\n let name;\n let nameLowerCase;\n\n this.eat(Colon);\n this.eat(Colon);\n\n if (this.tokenType === FunctionToken) {\n name = this.consumeFunctionName();\n nameLowerCase = name.toLowerCase();\n\n if (hasOwnProperty.call(this.pseudo, nameLowerCase)) {\n this.skipSC();\n children = this.pseudo[nameLowerCase].call(this);\n this.skipSC();\n } else {\n children = this.createList();\n children.push(\n this.Raw(this.tokenIndex, null, false)\n );\n }\n\n this.eat(RightParenthesis);\n } else {\n name = this.consume(Ident);\n }\n\n return {\n type: 'PseudoElementSelector',\n loc: this.getLocation(start, this.tokenStart),\n name,\n children\n };\n}\n\nexport function generate(node) {\n this.token(Colon, ':');\n this.token(Colon, ':');\n\n if (node.children === null) {\n this.token(Ident, node.name);\n } else {\n this.token(FunctionToken, node.name + '(');\n this.children(node);\n this.token(RightParenthesis, ')');\n }\n}\n","import { isDigit, Delim, Number as NumberToken } from '../../tokenizer/index.js';\n\nconst SOLIDUS = 0x002F; // U+002F SOLIDUS (/)\nconst FULLSTOP = 0x002E; // U+002E FULL STOP (.)\n\n// Terms of <ratio> should be a positive numbers (not zero or negative)\n// (see https://drafts.csswg.org/mediaqueries-3/#values)\n// However, -o-min-device-pixel-ratio takes fractional values as a ratio's term\n// and this is using by various sites. Therefore we relax checking on parse\n// to test a term is unsigned number without an exponent part.\n// Additional checking may be applied on lexer validation.\nfunction consumeNumber() {\n this.skipSC();\n\n const value = this.consume(NumberToken);\n\n for (let i = 0; i < value.length; i++) {\n const code = value.charCodeAt(i);\n if (!isDigit(code) && code !== FULLSTOP) {\n this.error('Unsigned number is expected', this.tokenStart - value.length + i);\n }\n }\n\n if (Number(value) === 0) {\n this.error('Zero number is not allowed', this.tokenStart - value.length);\n }\n\n return value;\n}\n\nexport const name = 'Ratio';\nexport const structure = {\n left: String,\n right: String\n};\n\n// <positive-integer> S* '/' S* <positive-integer>\nexport function parse() {\n const start = this.tokenStart;\n const left = consumeNumber.call(this);\n let right;\n\n this.skipSC();\n this.eatDelim(SOLIDUS);\n right = consumeNumber.call(this);\n\n return {\n type: 'Ratio',\n loc: this.getLocation(start, this.tokenStart),\n left,\n right\n };\n}\n\nexport function generate(node) {\n this.token(NumberToken, node.left);\n this.token(Delim, '/');\n this.token(NumberToken, node.right);\n}\n","import { WhiteSpace } from '../../tokenizer/index.js';\n\nfunction getOffsetExcludeWS() {\n if (this.tokenIndex > 0) {\n if (this.lookupType(-1) === WhiteSpace) {\n return this.tokenIndex > 1\n ? this.getTokenStart(this.tokenIndex - 1)\n : this.firstCharOffset;\n }\n }\n\n return this.tokenStart;\n}\n\nexport const name = 'Raw';\nexport const structure = {\n value: String\n};\n\nexport function parse(startToken, consumeUntil, excludeWhiteSpace) {\n const startOffset = this.getTokenStart(startToken);\n let endOffset;\n\n this.skipUntilBalanced(startToken, consumeUntil || this.consumeUntilBalanceEnd);\n\n if (excludeWhiteSpace && this.tokenStart > startOffset) {\n endOffset = getOffsetExcludeWS.call(this);\n } else {\n endOffset = this.tokenStart;\n }\n\n return {\n type: 'Raw',\n loc: this.getLocation(startOffset, endOffset),\n value: this.substring(startOffset, endOffset)\n };\n}\n\nexport function generate(node) {\n this.tokenize(node.value);\n}\n","import { LeftCurlyBracket } from '../../tokenizer/index.js';\n\nfunction consumeRaw(startToken) {\n return this.Raw(startToken, this.consumeUntilLeftCurlyBracket, true);\n}\n\nfunction consumePrelude() {\n const prelude = this.SelectorList();\n\n if (prelude.type !== 'Raw' &&\n this.eof === false &&\n this.tokenType !== LeftCurlyBracket) {\n this.error();\n }\n\n return prelude;\n}\n\nexport const name = 'Rule';\nexport const walkContext = 'rule';\nexport const structure = {\n prelude: ['SelectorList', 'Raw'],\n block: ['Block']\n};\n\nexport function parse() {\n const startToken = this.tokenIndex;\n const startOffset = this.tokenStart;\n let prelude;\n let block;\n\n if (this.parseRulePrelude) {\n prelude = this.parseWithFallback(consumePrelude, consumeRaw);\n } else {\n prelude = consumeRaw.call(this, startToken);\n }\n\n block = this.Block(true);\n\n return {\n type: 'Rule',\n loc: this.getLocation(startOffset, this.tokenStart),\n prelude,\n block\n };\n}\nexport function generate(node) {\n this.node(node.prelude);\n this.node(node.block);\n}\n\n","export const name = 'Selector';\nexport const structure = {\n children: [[\n 'TypeSelector',\n 'IdSelector',\n 'ClassSelector',\n 'AttributeSelector',\n 'PseudoClassSelector',\n 'PseudoElementSelector',\n 'Combinator',\n 'WhiteSpace'\n ]]\n};\n\nexport function parse() {\n const children = this.readSequence(this.scope.Selector);\n\n // nothing were consumed\n if (this.getFirstListNode(children) === null) {\n this.error('Selector is expected');\n }\n\n return {\n type: 'Selector',\n loc: this.getLocationFromList(children),\n children\n };\n}\n\nexport function generate(node) {\n this.children(node);\n}\n","import { Comma } from '../../tokenizer/index.js';\n\nexport const name = 'SelectorList';\nexport const walkContext = 'selector';\nexport const structure = {\n children: [[\n 'Selector',\n 'Raw'\n ]]\n};\n\nexport function parse() {\n const children = this.createList();\n\n while (!this.eof) {\n children.push(this.Selector());\n\n if (this.tokenType === Comma) {\n this.next();\n continue;\n }\n\n break;\n }\n\n return {\n type: 'SelectorList',\n loc: this.getLocationFromList(children),\n children\n };\n}\n\nexport function generate(node) {\n this.children(node, () => this.token(Comma, ','));\n}\n","import {\n isHexDigit,\n isWhiteSpace,\n isValidEscape,\n consumeEscaped,\n decodeEscaped\n} from '../tokenizer/index.js';\n\nconst REVERSE_SOLIDUS = 0x005c; // U+005C REVERSE SOLIDUS (\\)\nconst QUOTATION_MARK = 0x0022; // \"\nconst APOSTROPHE = 0x0027; // '\n\nexport function decode(str) {\n const len = str.length;\n const firstChar = str.charCodeAt(0);\n const start = firstChar === QUOTATION_MARK || firstChar === APOSTROPHE ? 1 : 0;\n const end = start === 1 && len > 1 && str.charCodeAt(len - 1) === firstChar ? len - 2 : len - 1;\n let decoded = '';\n\n for (let i = start; i <= end; i++) {\n let code = str.charCodeAt(i);\n\n if (code === REVERSE_SOLIDUS) {\n // special case at the ending\n if (i === end) {\n // if the next input code point is EOF, do nothing\n // otherwise include last quote as escaped\n if (i !== len - 1) {\n decoded = str.substr(i + 1);\n }\n break;\n }\n\n code = str.charCodeAt(++i);\n\n // consume escaped\n if (isValidEscape(REVERSE_SOLIDUS, code)) {\n const escapeStart = i - 1;\n const escapeEnd = consumeEscaped(str, escapeStart);\n\n i = escapeEnd - 1;\n decoded += decodeEscaped(str.substring(escapeStart + 1, escapeEnd));\n } else {\n // \\r\\n\n if (code === 0x000d && str.charCodeAt(i + 1) === 0x000a) {\n i++;\n }\n }\n } else {\n decoded += str[i];\n }\n }\n\n return decoded;\n}\n\n// https://drafts.csswg.org/cssom/#serialize-a-string\n// § 2.1. Common Serializing Idioms\nexport function encode(str, apostrophe) {\n const quote = apostrophe ? '\\'' : '\"';\n const quoteCode = apostrophe ? APOSTROPHE : QUOTATION_MARK;\n let encoded = '';\n let wsBeforeHexIsNeeded = false;\n\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER (U+FFFD).\n if (code === 0x0000) {\n encoded += '\\uFFFD';\n continue;\n }\n\n // If the character is in the range [\\1-\\1f] (U+0001 to U+001F) or is U+007F,\n // the character escaped as code point.\n // Note: Do not compare with 0x0001 since 0x0000 is precessed before\n if (code <= 0x001f || code === 0x007F) {\n encoded += '\\\\' + code.toString(16);\n wsBeforeHexIsNeeded = true;\n continue;\n }\n\n // If the character is '\"' (U+0022) or \"\\\" (U+005C), the escaped character.\n if (code === quoteCode || code === REVERSE_SOLIDUS) {\n encoded += '\\\\' + str.charAt(i);\n wsBeforeHexIsNeeded = false;\n } else {\n if (wsBeforeHexIsNeeded && (isHexDigit(code) || isWhiteSpace(code))) {\n encoded += ' ';\n }\n\n // Otherwise, the character itself.\n encoded += str.charAt(i);\n wsBeforeHexIsNeeded = false;\n }\n }\n\n return quote + encoded + quote;\n}\n","import { String as StringToken } from '../../tokenizer/index.js';\nimport { decode, encode } from '../../utils/string.js';\n\nexport const name = 'String';\nexport const structure = {\n value: String\n};\n\nexport function parse() {\n return {\n type: 'String',\n loc: this.getLocation(this.tokenStart, this.tokenEnd),\n value: decode(this.consume(StringToken))\n };\n}\n\nexport function generate(node) {\n this.token(StringToken, encode(node.value));\n}\n","import {\n WhiteSpace,\n Comment,\n AtKeyword,\n CDO,\n CDC\n} from '../../tokenizer/index.js';\n\nconst EXCLAMATIONMARK = 0x0021; // U+0021 EXCLAMATION MARK (!)\n\nfunction consumeRaw(startToken) {\n return this.Raw(startToken, null, false);\n}\n\nexport const name = 'StyleSheet';\nexport const walkContext = 'stylesheet';\nexport const structure = {\n children: [[\n 'Comment',\n 'CDO',\n 'CDC',\n 'Atrule',\n 'Rule',\n 'Raw'\n ]]\n};\n\nexport function parse() {\n const start = this.tokenStart;\n const children = this.createList();\n let child;\n\n scan:\n while (!this.eof) {\n switch (this.tokenType) {\n case WhiteSpace:\n this.next();\n continue;\n\n case Comment:\n // ignore comments except exclamation comments (i.e. /*! .. */) on top level\n if (this.charCodeAt(this.tokenStart + 2) !== EXCLAMATIONMARK) {\n this.next();\n continue;\n }\n\n child = this.Comment();\n break;\n\n case CDO: // <!--\n child = this.CDO();\n break;\n\n case CDC: // -->\n child = this.CDC();\n break;\n\n // CSS Syntax Module Level 3\n // §2.2 Error handling\n // At the \"top level\" of a stylesheet, an <at-keyword-token> starts an at-rule.\n case AtKeyword:\n child = this.parseWithFallback(this.Atrule, consumeRaw);\n break;\n\n // Anything else starts a qualified rule ...\n default:\n child = this.parseWithFallback(this.Rule, consumeRaw);\n }\n\n children.push(child);\n }\n\n return {\n type: 'StyleSheet',\n loc: this.getLocation(start, this.tokenStart),\n children\n };\n}\n\nexport function generate(node) {\n this.children(node);\n}\n","import { Ident } from '../../tokenizer/index.js';\n\nconst ASTERISK = 0x002A; // U+002A ASTERISK (*)\nconst VERTICALLINE = 0x007C; // U+007C VERTICAL LINE (|)\n\nfunction eatIdentifierOrAsterisk() {\n if (this.tokenType !== Ident &&\n this.isDelim(ASTERISK) === false) {\n this.error('Identifier or asterisk is expected');\n }\n\n this.next();\n}\n\nexport const name = 'TypeSelector';\nexport const structure = {\n name: String\n};\n\n// ident\n// ident|ident\n// ident|*\n// *\n// *|ident\n// *|*\n// |ident\n// |*\nexport function parse() {\n const start = this.tokenStart;\n\n if (this.isDelim(VERTICALLINE)) {\n this.next();\n eatIdentifierOrAsterisk.call(this);\n } else {\n eatIdentifierOrAsterisk.call(this);\n\n if (this.isDelim(VERTICALLINE)) {\n this.next();\n eatIdentifierOrAsterisk.call(this);\n }\n }\n\n return {\n type: 'TypeSelector',\n loc: this.getLocation(start, this.tokenStart),\n name: this.substrToCursor(start)\n };\n}\n\nexport function generate(node) {\n this.tokenize(node.name);\n}\n","import {\n isHexDigit,\n Ident,\n Number,\n Dimension\n} from '../../tokenizer/index.js';\n\nconst PLUSSIGN = 0x002B; // U+002B PLUS SIGN (+)\nconst HYPHENMINUS = 0x002D; // U+002D HYPHEN-MINUS (-)\nconst QUESTIONMARK = 0x003F; // U+003F QUESTION MARK (?)\n\nfunction eatHexSequence(offset, allowDash) {\n let len = 0;\n\n for (let pos = this.tokenStart + offset; pos < this.tokenEnd; pos++) {\n const code = this.charCodeAt(pos);\n\n if (code === HYPHENMINUS && allowDash && len !== 0) {\n eatHexSequence.call(this, offset + len + 1, false);\n return -1;\n }\n\n if (!isHexDigit(code)) {\n this.error(\n allowDash && len !== 0\n ? 'Hyphen minus' + (len < 6 ? ' or hex digit' : '') + ' is expected'\n : (len < 6 ? 'Hex digit is expected' : 'Unexpected input'),\n pos\n );\n }\n\n if (++len > 6) {\n this.error('Too many hex digits', pos);\n };\n }\n\n this.next();\n return len;\n}\n\nfunction eatQuestionMarkSequence(max) {\n let count = 0;\n\n while (this.isDelim(QUESTIONMARK)) {\n if (++count > max) {\n this.error('Too many question marks');\n }\n\n this.next();\n }\n}\n\nfunction startsWith(code) {\n if (this.charCodeAt(this.tokenStart) !== code) {\n this.error((code === PLUSSIGN ? 'Plus sign' : 'Hyphen minus') + ' is expected');\n }\n}\n\n// https://drafts.csswg.org/css-syntax/#urange\n// Informally, the <urange> production has three forms:\n// U+0001\n// Defines a range consisting of a single code point, in this case the code point \"1\".\n// U+0001-00ff\n// Defines a range of codepoints between the first and the second value, in this case\n// the range between \"1\" and \"ff\" (255 in decimal) inclusive.\n// U+00??\n// Defines a range of codepoints where the \"?\" characters range over all hex digits,\n// in this case defining the same as the value U+0000-00ff.\n// In each form, a maximum of 6 digits is allowed for each hexadecimal number (if you treat \"?\" as a hexadecimal digit).\n//\n// <urange> =\n// u '+' <ident-token> '?'* |\n// u <dimension-token> '?'* |\n// u <number-token> '?'* |\n// u <number-token> <dimension-token> |\n// u <number-token> <number-token> |\n// u '+' '?'+\nfunction scanUnicodeRange() {\n let hexLength = 0;\n\n switch (this.tokenType) {\n case Number:\n // u <number-token> '?'*\n // u <number-token> <dimension-token>\n // u <number-token> <number-token>\n hexLength = eatHexSequence.call(this, 1, true);\n\n if (this.isDelim(QUESTIONMARK)) {\n eatQuestionMarkSequence.call(this, 6 - hexLength);\n break;\n }\n\n if (this.tokenType === Dimension ||\n this.tokenType === Number) {\n startsWith.call(this, HYPHENMINUS);\n eatHexSequence.call(this, 1, false);\n break;\n }\n\n break;\n\n case Dimension:\n // u <dimension-token> '?'*\n hexLength = eatHexSequence.call(this, 1, true);\n\n if (hexLength > 0) {\n eatQuestionMarkSequence.call(this, 6 - hexLength);\n }\n\n break;\n\n default:\n // u '+' <ident-token> '?'*\n // u '+' '?'+\n this.eatDelim(PLUSSIGN);\n\n if (this.tokenType === Ident) {\n hexLength = eatHexSequence.call(this, 0, true);\n if (hexLength > 0) {\n eatQuestionMarkSequence.call(this, 6 - hexLength);\n }\n break;\n }\n\n if (this.isDelim(QUESTIONMARK)) {\n this.next();\n eatQuestionMarkSequence.call(this, 5);\n break;\n }\n\n this.error('Hex digit or question mark is expected');\n }\n}\n\nexport const name = 'UnicodeRange';\nexport const structure = {\n value: String\n};\n\nexport function parse() {\n const start = this.tokenStart;\n\n // U or u\n this.eatIdent('u');\n scanUnicodeRange.call(this);\n\n return {\n type: 'UnicodeRange',\n loc: this.getLocation(start, this.tokenStart),\n value: this.substrToCursor(start)\n };\n}\n\nexport function generate(node) {\n this.tokenize(node.value);\n}\n","import {\n isHexDigit,\n isWhiteSpace,\n isValidEscape,\n consumeEscaped,\n decodeEscaped\n} from '../tokenizer/index.js';\n\nconst SPACE = 0x0020; // U+0020 SPACE\nconst REVERSE_SOLIDUS = 0x005c; // U+005C REVERSE SOLIDUS (\\)\nconst QUOTATION_MARK = 0x0022; // \"\nconst APOSTROPHE = 0x0027; // '\nconst LEFTPARENTHESIS = 0x0028; // U+0028 LEFT PARENTHESIS (()\nconst RIGHTPARENTHESIS = 0x0029; // U+0029 RIGHT PARENTHESIS ())\n\nexport function decode(str) {\n const len = str.length;\n let start = 4; // length of \"url(\"\n let end = str.charCodeAt(len - 1) === RIGHTPARENTHESIS ? len - 2 : len - 1;\n let decoded = '';\n\n while (start < end && isWhiteSpace(str.charCodeAt(start))) {\n start++;\n }\n\n while (start < end && isWhiteSpace(str.charCodeAt(end))) {\n end--;\n }\n\n for (let i = start; i <= end; i++) {\n let code = str.charCodeAt(i);\n\n if (code === REVERSE_SOLIDUS) {\n // special case at the ending\n if (i === end) {\n // if the next input code point is EOF, do nothing\n // otherwise include last left parenthesis as escaped\n if (i !== len - 1) {\n decoded = str.substr(i + 1);\n }\n break;\n }\n\n code = str.charCodeAt(++i);\n\n // consume escaped\n if (isValidEscape(REVERSE_SOLIDUS, code)) {\n const escapeStart = i - 1;\n const escapeEnd = consumeEscaped(str, escapeStart);\n\n i = escapeEnd - 1;\n decoded += decodeEscaped(str.substring(escapeStart + 1, escapeEnd));\n } else {\n // \\r\\n\n if (code === 0x000d && str.charCodeAt(i + 1) === 0x000a) {\n i++;\n }\n }\n } else {\n decoded += str[i];\n }\n }\n\n return decoded;\n}\n\nexport function encode(str) {\n let encoded = '';\n let wsBeforeHexIsNeeded = false;\n\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER (U+FFFD).\n if (code === 0x0000) {\n encoded += '\\uFFFD';\n continue;\n }\n\n // If the character is in the range [\\1-\\1f] (U+0001 to U+001F) or is U+007F,\n // the character escaped as code point.\n // Note: Do not compare with 0x0001 since 0x0000 is precessed before\n if (code <= 0x001f || code === 0x007F) {\n encoded += '\\\\' + code.toString(16);\n wsBeforeHexIsNeeded = true;\n continue;\n }\n\n if (code === SPACE ||\n code === REVERSE_SOLIDUS ||\n code === QUOTATION_MARK ||\n code === APOSTROPHE ||\n code === LEFTPARENTHESIS ||\n code === RIGHTPARENTHESIS) {\n encoded += '\\\\' + str.charAt(i);\n wsBeforeHexIsNeeded = false;\n } else {\n if (wsBeforeHexIsNeeded && isHexDigit(code)) {\n encoded += ' ';\n }\n\n encoded += str.charAt(i);\n wsBeforeHexIsNeeded = false;\n }\n }\n\n return 'url(' + encoded + ')';\n}\n","import * as url from '../../utils/url.js';\nimport * as string from '../../utils/string.js';\nimport {\n Function as FunctionToken,\n String as StringToken,\n Url,\n RightParenthesis\n} from '../../tokenizer/index.js';\n\nexport const name = 'Url';\nexport const structure = {\n value: String\n};\n\n// <url-token> | <function-token> <string> )\nexport function parse() {\n const start = this.tokenStart;\n let value;\n\n switch (this.tokenType) {\n case Url:\n value = url.decode(this.consume(Url));\n break;\n\n case FunctionToken:\n if (!this.cmpStr(this.tokenStart, this.tokenEnd, 'url(')) {\n this.error('Function name must be `url`');\n }\n\n this.eat(FunctionToken);\n this.skipSC();\n value = string.decode(this.consume(StringToken));\n this.skipSC();\n if (!this.eof) {\n this.eat(RightParenthesis);\n }\n break;\n\n default:\n this.error('Url or Function is expected');\n }\n\n return {\n type: 'Url',\n loc: this.getLocation(start, this.tokenStart),\n value\n };\n}\n\nexport function generate(node) {\n this.token(Url, url.encode(node.value));\n}\n","export const name = 'Value';\nexport const structure = {\n children: [[]]\n};\n\nexport function parse() {\n const start = this.tokenStart;\n const children = this.readSequence(this.scope.Value);\n\n return {\n type: 'Value',\n loc: this.getLocation(start, this.tokenStart),\n children\n };\n}\n\nexport function generate(node) {\n this.children(node);\n}\n","import { WhiteSpace } from '../../tokenizer/index.js';\n\nconst SPACE = Object.freeze({\n type: 'WhiteSpace',\n loc: null,\n value: ' '\n});\n\nexport const name = 'WhiteSpace';\nexport const structure = {\n value: String\n};\n\nexport function parse() {\n this.eat(WhiteSpace);\n return SPACE;\n\n // return {\n // type: 'WhiteSpace',\n // loc: this.getLocation(this.tokenStart, this.tokenEnd),\n // value: this.consume(WHITESPACE)\n // };\n}\n\nexport function generate(node) {\n this.token(WhiteSpace, node.value);\n}\n","import * as scope from '../scope/index.js';\nimport atrule from '../atrule/index.js';\nimport pseudo from '../pseudo/index.js';\nimport * as node from '../node/index-parse.js';\n\nexport default {\n parseContext: {\n default: 'StyleSheet',\n stylesheet: 'StyleSheet',\n atrule: 'Atrule',\n atrulePrelude(options) {\n return this.AtrulePrelude(options.atrule ? String(options.atrule) : null);\n },\n mediaQueryList: 'MediaQueryList',\n mediaQuery: 'MediaQuery',\n rule: 'Rule',\n selectorList: 'SelectorList',\n selector: 'Selector',\n block() {\n return this.Block(true);\n },\n declarationList: 'DeclarationList',\n declaration: 'Declaration',\n value: 'Value'\n },\n scope,\n atrule,\n pseudo,\n node\n};\n","import { createParser } from './create.js';\nimport config from '../syntax/config/parser.js';\n\nexport default createParser(config);\n","// @ts-ignore\nimport parse from 'css-tree/parser';\nimport { walk } from 'estree-walker';\nimport { Parser } from '../index';\nimport { Node } from 'estree';\nimport { Style } from '../../interfaces';\nimport parser_errors from '../errors';\n\nconst regex_closing_style_tag = /<\\/style\\s*>/;\nconst regex_starts_with_closing_style_tag = /^<\\/style\\s*>/;\n\nexport default function read_style(parser: Parser, start: number, attributes: Node[]): Style {\n\tconst content_start = parser.index;\n\n\tconst styles = parser.read_until(regex_closing_style_tag, parser_errors.unclosed_style);\n\n\tif (parser.index >= parser.template.length) {\n\t\tparser.error(parser_errors.unclosed_style);\n\t}\n\n\tconst content_end = parser.index;\n\n\t// discard styles when css is disabled\n\tif (parser.css_mode === 'none') {\n\t\tparser.read(regex_starts_with_closing_style_tag);\n\t\treturn null;\n\t}\n\n\tlet ast;\n\n\ttry {\n\t\tast = parse(styles, {\n\t\t\tpositions: true,\n\t\t\toffset: content_start,\n\t\t\tonParseError(error) {\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t});\n\t} catch (err) {\n\t\tif (err.name === 'SyntaxError') {\n\t\t\tparser.error(parser_errors.css_syntax_error(err.message), err.offset);\n\t\t} else {\n\t\t\tthrow err;\n\t\t}\n\t}\n\n\tast = JSON.parse(JSON.stringify(ast));\n\n\t// tidy up AST\n\twalk(ast, {\n\t\tenter: (node: any) => { // `any` because this isn't an ESTree node\n\t\t\t// replace `ref:a` nodes\n\t\t\tif (node.type === 'Selector') {\n\t\t\t\tfor (let i = 0; i < node.children.length; i += 1) {\n\t\t\t\t\tconst a = node.children[i];\n\t\t\t\t\tconst b = node.children[i + 1];\n\n\t\t\t\t\tif (is_ref_selector(a, b)) {\n\t\t\t\t\t\tparser.error(parser_errors.invalid_ref_selector, a.loc.start.offset);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.type === 'Declaration' && node.value.type === 'Value' && node.value.children.length === 0) {\n\t\t\t\tparser.error(parser_errors.invalid_declaration, node.start);\n\t\t\t}\n\n\t\t\tif (node.type === 'PseudoClassSelector' && node.name === 'global' && node.children === null) {\n\t\t\t\tparser.error(parser_errors.empty_global_selector, node.loc.start.offset);\n\t\t\t}\n\n\t\t\tif (node.loc) {\n\t\t\t\tnode.start = node.loc.start.offset;\n\t\t\t\tnode.end = node.loc.end.offset;\n\t\t\t\tdelete node.loc;\n\t\t\t}\n\t\t}\n\t});\n\n\tparser.read(regex_starts_with_closing_style_tag);\n \n\tconst end = parser.index;\n\n\treturn {\n\t\ttype: 'Style',\n\t\tstart,\n\t\tend,\n\t\tattributes,\n\t\tchildren: ast.children,\n\t\tcontent: {\n\t\t\tstart: content_start,\n\t\t\tend: content_end,\n\t\t\tstyles\n\t\t}\n\t};\n}\n\nfunction is_ref_selector(a: any, b: any) { // TODO add CSS node types\n\tif (!b) return false;\n\n\treturn (\n\t\ta.type === 'TypeSelector' &&\n\t\ta.name === 'ref' &&\n\t\tb.type === 'PseudoClassSelector'\n\t);\n}\n","// https://html.spec.whatwg.org/entities.json from https://dev.w3.org/html5/html-author/charref\nexport default {\n\t'CounterClockwiseContourIntegral;': 8755,\n\t'ClockwiseContourIntegral;': 8754,\n\t'DoubleLongLeftRightArrow;': 10234,\n\t'NotNestedGreaterGreater;': 10914,\n\t'DiacriticalDoubleAcute;': 733,\n\t'NotSquareSupersetEqual;': 8931,\n\t'CloseCurlyDoubleQuote;': 8221,\n\t'DoubleContourIntegral;': 8751,\n\t'FilledVerySmallSquare;': 9642,\n\t'NegativeVeryThinSpace;': 8203,\n\t'NotPrecedesSlantEqual;': 8928,\n\t'NotRightTriangleEqual;': 8941,\n\t'NotSucceedsSlantEqual;': 8929,\n\t'CapitalDifferentialD;': 8517,\n\t'DoubleLeftRightArrow;': 8660,\n\t'DoubleLongRightArrow;': 10233,\n\t'EmptyVerySmallSquare;': 9643,\n\t'NestedGreaterGreater;': 8811,\n\t'NotDoubleVerticalBar;': 8742,\n\t'NotGreaterSlantEqual;': 10878,\n\t'NotLeftTriangleEqual;': 8940,\n\t'NotSquareSubsetEqual;': 8930,\n\t'OpenCurlyDoubleQuote;': 8220,\n\t'ReverseUpEquilibrium;': 10607,\n\t'DoubleLongLeftArrow;': 10232,\n\t'DownLeftRightVector;': 10576,\n\t'LeftArrowRightArrow;': 8646,\n\t'NegativeMediumSpace;': 8203,\n\t'NotGreaterFullEqual;': 8807,\n\t'NotRightTriangleBar;': 10704,\n\t'RightArrowLeftArrow;': 8644,\n\t'SquareSupersetEqual;': 8850,\n\t'leftrightsquigarrow;': 8621,\n\t'DownRightTeeVector;': 10591,\n\t'DownRightVectorBar;': 10583,\n\t'LongLeftRightArrow;': 10231,\n\t'Longleftrightarrow;': 10234,\n\t'NegativeThickSpace;': 8203,\n\t'NotLeftTriangleBar;': 10703,\n\t'PrecedesSlantEqual;': 8828,\n\t'ReverseEquilibrium;': 8651,\n\t'RightDoubleBracket;': 10215,\n\t'RightDownTeeVector;': 10589,\n\t'RightDownVectorBar;': 10581,\n\t'RightTriangleEqual;': 8885,\n\t'SquareIntersection;': 8851,\n\t'SucceedsSlantEqual;': 8829,\n\t'blacktriangleright;': 9656,\n\t'longleftrightarrow;': 10231,\n\t'DoubleUpDownArrow;': 8661,\n\t'DoubleVerticalBar;': 8741,\n\t'DownLeftTeeVector;': 10590,\n\t'DownLeftVectorBar;': 10582,\n\t'FilledSmallSquare;': 9724,\n\t'GreaterSlantEqual;': 10878,\n\t'LeftDoubleBracket;': 10214,\n\t'LeftDownTeeVector;': 10593,\n\t'LeftDownVectorBar;': 10585,\n\t'LeftTriangleEqual;': 8884,\n\t'NegativeThinSpace;': 8203,\n\t'NotGreaterGreater;': 8811,\n\t'NotLessSlantEqual;': 10877,\n\t'NotNestedLessLess;': 10913,\n\t'NotReverseElement;': 8716,\n\t'NotSquareSuperset;': 8848,\n\t'NotTildeFullEqual;': 8775,\n\t'RightAngleBracket;': 10217,\n\t'RightUpDownVector;': 10575,\n\t'SquareSubsetEqual;': 8849,\n\t'VerticalSeparator;': 10072,\n\t'blacktriangledown;': 9662,\n\t'blacktriangleleft;': 9666,\n\t'leftrightharpoons;': 8651,\n\t'rightleftharpoons;': 8652,\n\t'twoheadrightarrow;': 8608,\n\t'DiacriticalAcute;': 180,\n\t'DiacriticalGrave;': 96,\n\t'DiacriticalTilde;': 732,\n\t'DoubleRightArrow;': 8658,\n\t'DownArrowUpArrow;': 8693,\n\t'EmptySmallSquare;': 9723,\n\t'GreaterEqualLess;': 8923,\n\t'GreaterFullEqual;': 8807,\n\t'LeftAngleBracket;': 10216,\n\t'LeftUpDownVector;': 10577,\n\t'LessEqualGreater;': 8922,\n\t'NonBreakingSpace;': 160,\n\t'NotPrecedesEqual;': 10927,\n\t'NotRightTriangle;': 8939,\n\t'NotSucceedsEqual;': 10928,\n\t'NotSucceedsTilde;': 8831,\n\t'NotSupersetEqual;': 8841,\n\t'RightTriangleBar;': 10704,\n\t'RightUpTeeVector;': 10588,\n\t'RightUpVectorBar;': 10580,\n\t'UnderParenthesis;': 9181,\n\t'UpArrowDownArrow;': 8645,\n\t'circlearrowright;': 8635,\n\t'downharpoonright;': 8642,\n\t'ntrianglerighteq;': 8941,\n\t'rightharpoondown;': 8641,\n\t'rightrightarrows;': 8649,\n\t'twoheadleftarrow;': 8606,\n\t'vartriangleright;': 8883,\n\t'CloseCurlyQuote;': 8217,\n\t'ContourIntegral;': 8750,\n\t'DoubleDownArrow;': 8659,\n\t'DoubleLeftArrow;': 8656,\n\t'DownRightVector;': 8641,\n\t'LeftRightVector;': 10574,\n\t'LeftTriangleBar;': 10703,\n\t'LeftUpTeeVector;': 10592,\n\t'LeftUpVectorBar;': 10584,\n\t'LowerRightArrow;': 8600,\n\t'NotGreaterEqual;': 8817,\n\t'NotGreaterTilde;': 8821,\n\t'NotHumpDownHump;': 8782,\n\t'NotLeftTriangle;': 8938,\n\t'NotSquareSubset;': 8847,\n\t'OverParenthesis;': 9180,\n\t'RightDownVector;': 8642,\n\t'ShortRightArrow;': 8594,\n\t'UpperRightArrow;': 8599,\n\t'bigtriangledown;': 9661,\n\t'circlearrowleft;': 8634,\n\t'curvearrowright;': 8631,\n\t'downharpoonleft;': 8643,\n\t'leftharpoondown;': 8637,\n\t'leftrightarrows;': 8646,\n\t'nLeftrightarrow;': 8654,\n\t'nleftrightarrow;': 8622,\n\t'ntrianglelefteq;': 8940,\n\t'rightleftarrows;': 8644,\n\t'rightsquigarrow;': 8605,\n\t'rightthreetimes;': 8908,\n\t'straightepsilon;': 1013,\n\t'trianglerighteq;': 8885,\n\t'vartriangleleft;': 8882,\n\t'DiacriticalDot;': 729,\n\t'DoubleRightTee;': 8872,\n\t'DownLeftVector;': 8637,\n\t'GreaterGreater;': 10914,\n\t'HorizontalLine;': 9472,\n\t'InvisibleComma;': 8291,\n\t'InvisibleTimes;': 8290,\n\t'LeftDownVector;': 8643,\n\t'LeftRightArrow;': 8596,\n\t'Leftrightarrow;': 8660,\n\t'LessSlantEqual;': 10877,\n\t'LongRightArrow;': 10230,\n\t'Longrightarrow;': 10233,\n\t'LowerLeftArrow;': 8601,\n\t'NestedLessLess;': 8810,\n\t'NotGreaterLess;': 8825,\n\t'NotLessGreater;': 8824,\n\t'NotSubsetEqual;': 8840,\n\t'NotVerticalBar;': 8740,\n\t'OpenCurlyQuote;': 8216,\n\t'ReverseElement;': 8715,\n\t'RightTeeVector;': 10587,\n\t'RightVectorBar;': 10579,\n\t'ShortDownArrow;': 8595,\n\t'ShortLeftArrow;': 8592,\n\t'SquareSuperset;': 8848,\n\t'TildeFullEqual;': 8773,\n\t'UpperLeftArrow;': 8598,\n\t'ZeroWidthSpace;': 8203,\n\t'curvearrowleft;': 8630,\n\t'doublebarwedge;': 8966,\n\t'downdownarrows;': 8650,\n\t'hookrightarrow;': 8618,\n\t'leftleftarrows;': 8647,\n\t'leftrightarrow;': 8596,\n\t'leftthreetimes;': 8907,\n\t'longrightarrow;': 10230,\n\t'looparrowright;': 8620,\n\t'nshortparallel;': 8742,\n\t'ntriangleright;': 8939,\n\t'rightarrowtail;': 8611,\n\t'rightharpoonup;': 8640,\n\t'trianglelefteq;': 8884,\n\t'upharpoonright;': 8638,\n\t'ApplyFunction;': 8289,\n\t'DifferentialD;': 8518,\n\t'DoubleLeftTee;': 10980,\n\t'DoubleUpArrow;': 8657,\n\t'LeftTeeVector;': 10586,\n\t'LeftVectorBar;': 10578,\n\t'LessFullEqual;': 8806,\n\t'LongLeftArrow;': 10229,\n\t'Longleftarrow;': 10232,\n\t'NotEqualTilde;': 8770,\n\t'NotTildeEqual;': 8772,\n\t'NotTildeTilde;': 8777,\n\t'Poincareplane;': 8460,\n\t'PrecedesEqual;': 10927,\n\t'PrecedesTilde;': 8830,\n\t'RightArrowBar;': 8677,\n\t'RightTeeArrow;': 8614,\n\t'RightTriangle;': 8883,\n\t'RightUpVector;': 8638,\n\t'SucceedsEqual;': 10928,\n\t'SucceedsTilde;': 8831,\n\t'SupersetEqual;': 8839,\n\t'UpEquilibrium;': 10606,\n\t'VerticalTilde;': 8768,\n\t'VeryThinSpace;': 8202,\n\t'bigtriangleup;': 9651,\n\t'blacktriangle;': 9652,\n\t'divideontimes;': 8903,\n\t'fallingdotseq;': 8786,\n\t'hookleftarrow;': 8617,\n\t'leftarrowtail;': 8610,\n\t'leftharpoonup;': 8636,\n\t'longleftarrow;': 10229,\n\t'looparrowleft;': 8619,\n\t'measuredangle;': 8737,\n\t'ntriangleleft;': 8938,\n\t'shortparallel;': 8741,\n\t'smallsetminus;': 8726,\n\t'triangleright;': 9657,\n\t'upharpoonleft;': 8639,\n\t'varsubsetneqq;': 10955,\n\t'varsupsetneqq;': 10956,\n\t'DownArrowBar;': 10515,\n\t'DownTeeArrow;': 8615,\n\t'ExponentialE;': 8519,\n\t'GreaterEqual;': 8805,\n\t'GreaterTilde;': 8819,\n\t'HilbertSpace;': 8459,\n\t'HumpDownHump;': 8782,\n\t'Intersection;': 8898,\n\t'LeftArrowBar;': 8676,\n\t'LeftTeeArrow;': 8612,\n\t'LeftTriangle;': 8882,\n\t'LeftUpVector;': 8639,\n\t'NotCongruent;': 8802,\n\t'NotHumpEqual;': 8783,\n\t'NotLessEqual;': 8816,\n\t'NotLessTilde;': 8820,\n\t'Proportional;': 8733,\n\t'RightCeiling;': 8969,\n\t'RoundImplies;': 10608,\n\t'ShortUpArrow;': 8593,\n\t'SquareSubset;': 8847,\n\t'UnderBracket;': 9141,\n\t'VerticalLine;': 124,\n\t'blacklozenge;': 10731,\n\t'exponentiale;': 8519,\n\t'risingdotseq;': 8787,\n\t'triangledown;': 9663,\n\t'triangleleft;': 9667,\n\t'varsubsetneq;': 8842,\n\t'varsupsetneq;': 8843,\n\t'CircleMinus;': 8854,\n\t'CircleTimes;': 8855,\n\t'Equilibrium;': 8652,\n\t'GreaterLess;': 8823,\n\t'LeftCeiling;': 8968,\n\t'LessGreater;': 8822,\n\t'MediumSpace;': 8287,\n\t'NotLessLess;': 8810,\n\t'NotPrecedes;': 8832,\n\t'NotSucceeds;': 8833,\n\t'NotSuperset;': 8835,\n\t'OverBracket;': 9140,\n\t'RightVector;': 8640,\n\t'Rrightarrow;': 8667,\n\t'RuleDelayed;': 10740,\n\t'SmallCircle;': 8728,\n\t'SquareUnion;': 8852,\n\t'SubsetEqual;': 8838,\n\t'UpDownArrow;': 8597,\n\t'Updownarrow;': 8661,\n\t'VerticalBar;': 8739,\n\t'backepsilon;': 1014,\n\t'blacksquare;': 9642,\n\t'circledcirc;': 8858,\n\t'circleddash;': 8861,\n\t'curlyeqprec;': 8926,\n\t'curlyeqsucc;': 8927,\n\t'diamondsuit;': 9830,\n\t'eqslantless;': 10901,\n\t'expectation;': 8496,\n\t'nRightarrow;': 8655,\n\t'nrightarrow;': 8603,\n\t'preccurlyeq;': 8828,\n\t'precnapprox;': 10937,\n\t'quaternions;': 8461,\n\t'straightphi;': 981,\n\t'succcurlyeq;': 8829,\n\t'succnapprox;': 10938,\n\t'thickapprox;': 8776,\n\t'updownarrow;': 8597,\n\t'Bernoullis;': 8492,\n\t'CirclePlus;': 8853,\n\t'EqualTilde;': 8770,\n\t'Fouriertrf;': 8497,\n\t'ImaginaryI;': 8520,\n\t'Laplacetrf;': 8466,\n\t'LeftVector;': 8636,\n\t'Lleftarrow;': 8666,\n\t'NotElement;': 8713,\n\t'NotGreater;': 8815,\n\t'Proportion;': 8759,\n\t'RightArrow;': 8594,\n\t'RightFloor;': 8971,\n\t'Rightarrow;': 8658,\n\t'ThickSpace;': 8287,\n\t'TildeEqual;': 8771,\n\t'TildeTilde;': 8776,\n\t'UnderBrace;': 9183,\n\t'UpArrowBar;': 10514,\n\t'UpTeeArrow;': 8613,\n\t'circledast;': 8859,\n\t'complement;': 8705,\n\t'curlywedge;': 8911,\n\t'eqslantgtr;': 10902,\n\t'gtreqqless;': 10892,\n\t'lessapprox;': 10885,\n\t'lesseqqgtr;': 10891,\n\t'lmoustache;': 9136,\n\t'longmapsto;': 10236,\n\t'mapstodown;': 8615,\n\t'mapstoleft;': 8612,\n\t'nLeftarrow;': 8653,\n\t'nleftarrow;': 8602,\n\t'nsubseteqq;': 10949,\n\t'nsupseteqq;': 10950,\n\t'precapprox;': 10935,\n\t'rightarrow;': 8594,\n\t'rmoustache;': 9137,\n\t'sqsubseteq;': 8849,\n\t'sqsupseteq;': 8850,\n\t'subsetneqq;': 10955,\n\t'succapprox;': 10936,\n\t'supsetneqq;': 10956,\n\t'upuparrows;': 8648,\n\t'varepsilon;': 1013,\n\t'varnothing;': 8709,\n\t'Backslash;': 8726,\n\t'CenterDot;': 183,\n\t'CircleDot;': 8857,\n\t'Congruent;': 8801,\n\t'Coproduct;': 8720,\n\t'DoubleDot;': 168,\n\t'DownArrow;': 8595,\n\t'DownBreve;': 785,\n\t'Downarrow;': 8659,\n\t'HumpEqual;': 8783,\n\t'LeftArrow;': 8592,\n\t'LeftFloor;': 8970,\n\t'Leftarrow;': 8656,\n\t'LessTilde;': 8818,\n\t'Mellintrf;': 8499,\n\t'MinusPlus;': 8723,\n\t'NotCupCap;': 8813,\n\t'NotExists;': 8708,\n\t'NotSubset;': 8834,\n\t'OverBrace;': 9182,\n\t'PlusMinus;': 177,\n\t'Therefore;': 8756,\n\t'ThinSpace;': 8201,\n\t'TripleDot;': 8411,\n\t'UnionPlus;': 8846,\n\t'backprime;': 8245,\n\t'backsimeq;': 8909,\n\t'bigotimes;': 10754,\n\t'centerdot;': 183,\n\t'checkmark;': 10003,\n\t'complexes;': 8450,\n\t'dotsquare;': 8865,\n\t'downarrow;': 8595,\n\t'gtrapprox;': 10886,\n\t'gtreqless;': 8923,\n\t'gvertneqq;': 8809,\n\t'heartsuit;': 9829,\n\t'leftarrow;': 8592,\n\t'lesseqgtr;': 8922,\n\t'lvertneqq;': 8808,\n\t'ngeqslant;': 10878,\n\t'nleqslant;': 10877,\n\t'nparallel;': 8742,\n\t'nshortmid;': 8740,\n\t'nsubseteq;': 8840,\n\t'nsupseteq;': 8841,\n\t'pitchfork;': 8916,\n\t'rationals;': 8474,\n\t'spadesuit;': 9824,\n\t'subseteqq;': 10949,\n\t'subsetneq;': 8842,\n\t'supseteqq;': 10950,\n\t'supsetneq;': 8843,\n\t'therefore;': 8756,\n\t'triangleq;': 8796,\n\t'varpropto;': 8733,\n\t'DDotrahd;': 10513,\n\t'DotEqual;': 8784,\n\t'Integral;': 8747,\n\t'LessLess;': 10913,\n\t'NotEqual;': 8800,\n\t'NotTilde;': 8769,\n\t'PartialD;': 8706,\n\t'Precedes;': 8826,\n\t'RightTee;': 8866,\n\t'Succeeds;': 8827,\n\t'SuchThat;': 8715,\n\t'Superset;': 8835,\n\t'Uarrocir;': 10569,\n\t'UnderBar;': 95,\n\t'andslope;': 10840,\n\t'angmsdaa;': 10664,\n\t'angmsdab;': 10665,\n\t'angmsdac;': 10666,\n\t'angmsdad;': 10667,\n\t'angmsdae;': 10668,\n\t'angmsdaf;': 10669,\n\t'angmsdag;': 10670,\n\t'angmsdah;': 10671,\n\t'angrtvbd;': 10653,\n\t'approxeq;': 8778,\n\t'awconint;': 8755,\n\t'backcong;': 8780,\n\t'barwedge;': 8965,\n\t'bbrktbrk;': 9142,\n\t'bigoplus;': 10753,\n\t'bigsqcup;': 10758,\n\t'biguplus;': 10756,\n\t'bigwedge;': 8896,\n\t'boxminus;': 8863,\n\t'boxtimes;': 8864,\n\t'bsolhsub;': 10184,\n\t'capbrcup;': 10825,\n\t'circledR;': 174,\n\t'circledS;': 9416,\n\t'cirfnint;': 10768,\n\t'clubsuit;': 9827,\n\t'cupbrcap;': 10824,\n\t'curlyvee;': 8910,\n\t'cwconint;': 8754,\n\t'doteqdot;': 8785,\n\t'dotminus;': 8760,\n\t'drbkarow;': 10512,\n\t'dzigrarr;': 10239,\n\t'elinters;': 9191,\n\t'emptyset;': 8709,\n\t'eqvparsl;': 10725,\n\t'fpartint;': 10765,\n\t'geqslant;': 10878,\n\t'gesdotol;': 10884,\n\t'gnapprox;': 10890,\n\t'hksearow;': 10533,\n\t'hkswarow;': 10534,\n\t'imagline;': 8464,\n\t'imagpart;': 8465,\n\t'infintie;': 10717,\n\t'integers;': 8484,\n\t'intercal;': 8890,\n\t'intlarhk;': 10775,\n\t'laemptyv;': 10676,\n\t'ldrushar;': 10571,\n\t'leqslant;': 10877,\n\t'lesdotor;': 10883,\n\t'llcorner;': 8990,\n\t'lnapprox;': 10889,\n\t'lrcorner;': 8991,\n\t'lurdshar;': 10570,\n\t'mapstoup;': 8613,\n\t'multimap;': 8888,\n\t'naturals;': 8469,\n\t'ncongdot;': 10861,\n\t'notindot;': 8949,\n\t'otimesas;': 10806,\n\t'parallel;': 8741,\n\t'plusacir;': 10787,\n\t'pointint;': 10773,\n\t'precneqq;': 10933,\n\t'precnsim;': 8936,\n\t'profalar;': 9006,\n\t'profline;': 8978,\n\t'profsurf;': 8979,\n\t'raemptyv;': 10675,\n\t'realpart;': 8476,\n\t'rppolint;': 10770,\n\t'rtriltri;': 10702,\n\t'scpolint;': 10771,\n\t'setminus;': 8726,\n\t'shortmid;': 8739,\n\t'smeparsl;': 10724,\n\t'sqsubset;': 8847,\n\t'sqsupset;': 8848,\n\t'subseteq;': 8838,\n\t'succneqq;': 10934,\n\t'succnsim;': 8937,\n\t'supseteq;': 8839,\n\t'thetasym;': 977,\n\t'thicksim;': 8764,\n\t'timesbar;': 10801,\n\t'triangle;': 9653,\n\t'triminus;': 10810,\n\t'trpezium;': 9186,\n\t'ulcorner;': 8988,\n\t'urcorner;': 8989,\n\t'varkappa;': 1008,\n\t'varsigma;': 962,\n\t'vartheta;': 977,\n\t'Because;': 8757,\n\t'Cayleys;': 8493,\n\t'Cconint;': 8752,\n\t'Cedilla;': 184,\n\t'Diamond;': 8900,\n\t'DownTee;': 8868,\n\t'Element;': 8712,\n\t'Epsilon;': 917,\n\t'Implies;': 8658,\n\t'LeftTee;': 8867,\n\t'NewLine;': 10,\n\t'NoBreak;': 8288,\n\t'NotLess;': 8814,\n\t'Omicron;': 927,\n\t'OverBar;': 8254,\n\t'Product;': 8719,\n\t'UpArrow;': 8593,\n\t'Uparrow;': 8657,\n\t'Upsilon;': 933,\n\t'alefsym;': 8501,\n\t'angrtvb;': 8894,\n\t'angzarr;': 9084,\n\t'asympeq;': 8781,\n\t'backsim;': 8765,\n\t'because;': 8757,\n\t'bemptyv;': 10672,\n\t'between;': 8812,\n\t'bigcirc;': 9711,\n\t'bigodot;': 10752,\n\t'bigstar;': 9733,\n\t'bnequiv;': 8801,\n\t'boxplus;': 8862,\n\t'ccupssm;': 10832,\n\t'cemptyv;': 10674,\n\t'cirscir;': 10690,\n\t'coloneq;': 8788,\n\t'congdot;': 10861,\n\t'cudarrl;': 10552,\n\t'cudarrr;': 10549,\n\t'cularrp;': 10557,\n\t'curarrm;': 10556,\n\t'dbkarow;': 10511,\n\t'ddagger;': 8225,\n\t'ddotseq;': 10871,\n\t'demptyv;': 10673,\n\t'diamond;': 8900,\n\t'digamma;': 989,\n\t'dotplus;': 8724,\n\t'dwangle;': 10662,\n\t'epsilon;': 949,\n\t'eqcolon;': 8789,\n\t'equivDD;': 10872,\n\t'gesdoto;': 10882,\n\t'gtquest;': 10876,\n\t'gtrless;': 8823,\n\t'harrcir;': 10568,\n\t'intprod;': 10812,\n\t'isindot;': 8949,\n\t'larrbfs;': 10527,\n\t'larrsim;': 10611,\n\t'lbrksld;': 10639,\n\t'lbrkslu;': 10637,\n\t'ldrdhar;': 10599,\n\t'lesdoto;': 10881,\n\t'lessdot;': 8918,\n\t'lessgtr;': 8822,\n\t'lesssim;': 8818,\n\t'lotimes;': 10804,\n\t'lozenge;': 9674,\n\t'ltquest;': 10875,\n\t'luruhar;': 10598,\n\t'maltese;': 10016,\n\t'minusdu;': 10794,\n\t'napprox;': 8777,\n\t'natural;': 9838,\n\t'nearrow;': 8599,\n\t'nexists;': 8708,\n\t'notinva;': 8713,\n\t'notinvb;': 8951,\n\t'notinvc;': 8950,\n\t'notniva;': 8716,\n\t'notnivb;': 8958,\n\t'notnivc;': 8957,\n\t'npolint;': 10772,\n\t'npreceq;': 10927,\n\t'nsqsube;': 8930,\n\t'nsqsupe;': 8931,\n\t'nsubset;': 8834,\n\t'nsucceq;': 10928,\n\t'nsupset;': 8835,\n\t'nvinfin;': 10718,\n\t'nvltrie;': 8884,\n\t'nvrtrie;': 8885,\n\t'nwarrow;': 8598,\n\t'olcross;': 10683,\n\t'omicron;': 959,\n\t'orderof;': 8500,\n\t'orslope;': 10839,\n\t'pertenk;': 8241,\n\t'planckh;': 8462,\n\t'pluscir;': 10786,\n\t'plussim;': 10790,\n\t'plustwo;': 10791,\n\t'precsim;': 8830,\n\t'quatint;': 10774,\n\t'questeq;': 8799,\n\t'rarrbfs;': 10528,\n\t'rarrsim;': 10612,\n\t'rbrksld;': 10638,\n\t'rbrkslu;': 10640,\n\t'rdldhar;': 10601,\n\t'realine;': 8475,\n\t'rotimes;': 10805,\n\t'ruluhar;': 10600,\n\t'searrow;': 8600,\n\t'simplus;': 10788,\n\t'simrarr;': 10610,\n\t'subedot;': 10947,\n\t'submult;': 10945,\n\t'subplus;': 10943,\n\t'subrarr;': 10617,\n\t'succsim;': 8831,\n\t'supdsub;': 10968,\n\t'supedot;': 10948,\n\t'suphsol;': 10185,\n\t'suphsub;': 10967,\n\t'suplarr;': 10619,\n\t'supmult;': 10946,\n\t'supplus;': 10944,\n\t'swarrow;': 8601,\n\t'topfork;': 10970,\n\t'triplus;': 10809,\n\t'tritime;': 10811,\n\t'uparrow;': 8593,\n\t'upsilon;': 965,\n\t'uwangle;': 10663,\n\t'vzigzag;': 10650,\n\t'zigrarr;': 8669,\n\t'Aacute;': 193,\n\t'Abreve;': 258,\n\t'Agrave;': 192,\n\t'Assign;': 8788,\n\t'Atilde;': 195,\n\t'Barwed;': 8966,\n\t'Bumpeq;': 8782,\n\t'Cacute;': 262,\n\t'Ccaron;': 268,\n\t'Ccedil;': 199,\n\t'Colone;': 10868,\n\t'Conint;': 8751,\n\t'CupCap;': 8781,\n\t'Dagger;': 8225,\n\t'Dcaron;': 270,\n\t'DotDot;': 8412,\n\t'Dstrok;': 272,\n\t'Eacute;': 201,\n\t'Ecaron;': 282,\n\t'Egrave;': 200,\n\t'Exists;': 8707,\n\t'ForAll;': 8704,\n\t'Gammad;': 988,\n\t'Gbreve;': 286,\n\t'Gcedil;': 290,\n\t'HARDcy;': 1066,\n\t'Hstrok;': 294,\n\t'Iacute;': 205,\n\t'Igrave;': 204,\n\t'Itilde;': 296,\n\t'Jsercy;': 1032,\n\t'Kcedil;': 310,\n\t'Lacute;': 313,\n\t'Lambda;': 923,\n\t'Lcaron;': 317,\n\t'Lcedil;': 315,\n\t'Lmidot;': 319,\n\t'Lstrok;': 321,\n\t'Nacute;': 323,\n\t'Ncaron;': 327,\n\t'Ncedil;': 325,\n\t'Ntilde;': 209,\n\t'Oacute;': 211,\n\t'Odblac;': 336,\n\t'Ograve;': 210,\n\t'Oslash;': 216,\n\t'Otilde;': 213,\n\t'Otimes;': 10807,\n\t'Racute;': 340,\n\t'Rarrtl;': 10518,\n\t'Rcaron;': 344,\n\t'Rcedil;': 342,\n\t'SHCHcy;': 1065,\n\t'SOFTcy;': 1068,\n\t'Sacute;': 346,\n\t'Scaron;': 352,\n\t'Scedil;': 350,\n\t'Square;': 9633,\n\t'Subset;': 8912,\n\t'Supset;': 8913,\n\t'Tcaron;': 356,\n\t'Tcedil;': 354,\n\t'Tstrok;': 358,\n\t'Uacute;': 218,\n\t'Ubreve;': 364,\n\t'Udblac;': 368,\n\t'Ugrave;': 217,\n\t'Utilde;': 360,\n\t'Vdashl;': 10982,\n\t'Verbar;': 8214,\n\t'Vvdash;': 8874,\n\t'Yacute;': 221,\n\t'Zacute;': 377,\n\t'Zcaron;': 381,\n\t'aacute;': 225,\n\t'abreve;': 259,\n\t'agrave;': 224,\n\t'andand;': 10837,\n\t'angmsd;': 8737,\n\t'angsph;': 8738,\n\t'apacir;': 10863,\n\t'approx;': 8776,\n\t'atilde;': 227,\n\t'barvee;': 8893,\n\t'barwed;': 8965,\n\t'becaus;': 8757,\n\t'bernou;': 8492,\n\t'bigcap;': 8898,\n\t'bigcup;': 8899,\n\t'bigvee;': 8897,\n\t'bkarow;': 10509,\n\t'bottom;': 8869,\n\t'bowtie;': 8904,\n\t'boxbox;': 10697,\n\t'bprime;': 8245,\n\t'brvbar;': 166,\n\t'bullet;': 8226,\n\t'bumpeq;': 8783,\n\t'cacute;': 263,\n\t'capand;': 10820,\n\t'capcap;': 10827,\n\t'capcup;': 10823,\n\t'capdot;': 10816,\n\t'ccaron;': 269,\n\t'ccedil;': 231,\n\t'circeq;': 8791,\n\t'cirmid;': 10991,\n\t'colone;': 8788,\n\t'commat;': 64,\n\t'compfn;': 8728,\n\t'conint;': 8750,\n\t'coprod;': 8720,\n\t'copysr;': 8471,\n\t'cularr;': 8630,\n\t'cupcap;': 10822,\n\t'cupcup;': 10826,\n\t'cupdot;': 8845,\n\t'curarr;': 8631,\n\t'curren;': 164,\n\t'cylcty;': 9005,\n\t'dagger;': 8224,\n\t'daleth;': 8504,\n\t'dcaron;': 271,\n\t'dfisht;': 10623,\n\t'divide;': 247,\n\t'divonx;': 8903,\n\t'dlcorn;': 8990,\n\t'dlcrop;': 8973,\n\t'dollar;': 36,\n\t'drcorn;': 8991,\n\t'drcrop;': 8972,\n\t'dstrok;': 273,\n\t'eacute;': 233,\n\t'easter;': 10862,\n\t'ecaron;': 283,\n\t'ecolon;': 8789,\n\t'egrave;': 232,\n\t'egsdot;': 10904,\n\t'elsdot;': 10903,\n\t'emptyv;': 8709,\n\t'emsp13;': 8196,\n\t'emsp14;': 8197,\n\t'eparsl;': 10723,\n\t'eqcirc;': 8790,\n\t'equals;': 61,\n\t'equest;': 8799,\n\t'female;': 9792,\n\t'ffilig;': 64259,\n\t'ffllig;': 64260,\n\t'forall;': 8704,\n\t'frac12;': 189,\n\t'frac13;': 8531,\n\t'frac14;': 188,\n\t'frac15;': 8533,\n\t'frac16;': 8537,\n\t'frac18;': 8539,\n\t'frac23;': 8532,\n\t'frac25;': 8534,\n\t'frac34;': 190,\n\t'frac35;': 8535,\n\t'frac38;': 8540,\n\t'frac45;': 8536,\n\t'frac56;': 8538,\n\t'frac58;': 8541,\n\t'frac78;': 8542,\n\t'gacute;': 501,\n\t'gammad;': 989,\n\t'gbreve;': 287,\n\t'gesdot;': 10880,\n\t'gesles;': 10900,\n\t'gtlPar;': 10645,\n\t'gtrarr;': 10616,\n\t'gtrdot;': 8919,\n\t'gtrsim;': 8819,\n\t'hairsp;': 8202,\n\t'hamilt;': 8459,\n\t'hardcy;': 1098,\n\t'hearts;': 9829,\n\t'hellip;': 8230,\n\t'hercon;': 8889,\n\t'homtht;': 8763,\n\t'horbar;': 8213,\n\t'hslash;': 8463,\n\t'hstrok;': 295,\n\t'hybull;': 8259,\n\t'hyphen;': 8208,\n\t'iacute;': 237,\n\t'igrave;': 236,\n\t'iiiint;': 10764,\n\t'iinfin;': 10716,\n\t'incare;': 8453,\n\t'inodot;': 305,\n\t'intcal;': 8890,\n\t'iquest;': 191,\n\t'isinsv;': 8947,\n\t'itilde;': 297,\n\t'jsercy;': 1112,\n\t'kappav;': 1008,\n\t'kcedil;': 311,\n\t'kgreen;': 312,\n\t'lAtail;': 10523,\n\t'lacute;': 314,\n\t'lagran;': 8466,\n\t'lambda;': 955,\n\t'langle;': 10216,\n\t'larrfs;': 10525,\n\t'larrhk;': 8617,\n\t'larrlp;': 8619,\n\t'larrpl;': 10553,\n\t'larrtl;': 8610,\n\t'latail;': 10521,\n\t'lbrace;': 123,\n\t'lbrack;': 91,\n\t'lcaron;': 318,\n\t'lcedil;': 316,\n\t'ldquor;': 8222,\n\t'lesdot;': 10879,\n\t'lesges;': 10899,\n\t'lfisht;': 10620,\n\t'lfloor;': 8970,\n\t'lharul;': 10602,\n\t'llhard;': 10603,\n\t'lmidot;': 320,\n\t'lmoust;': 9136,\n\t'loplus;': 10797,\n\t'lowast;': 8727,\n\t'lowbar;': 95,\n\t'lparlt;': 10643,\n\t'lrhard;': 10605,\n\t'lsaquo;': 8249,\n\t'lsquor;': 8218,\n\t'lstrok;': 322,\n\t'lthree;': 8907,\n\t'ltimes;': 8905,\n\t'ltlarr;': 10614,\n\t'ltrPar;': 10646,\n\t'mapsto;': 8614,\n\t'marker;': 9646,\n\t'mcomma;': 10793,\n\t'midast;': 42,\n\t'midcir;': 10992,\n\t'middot;': 183,\n\t'minusb;': 8863,\n\t'minusd;': 8760,\n\t'mnplus;': 8723,\n\t'models;': 8871,\n\t'mstpos;': 8766,\n\t'nVDash;': 8879,\n\t'nVdash;': 8878,\n\t'nacute;': 324,\n\t'nbumpe;': 8783,\n\t'ncaron;': 328,\n\t'ncedil;': 326,\n\t'nearhk;': 10532,\n\t'nequiv;': 8802,\n\t'nesear;': 10536,\n\t'nexist;': 8708,\n\t'nltrie;': 8940,\n\t'notinE;': 8953,\n\t'nparsl;': 11005,\n\t'nprcue;': 8928,\n\t'nrarrc;': 10547,\n\t'nrarrw;': 8605,\n\t'nrtrie;': 8941,\n\t'nsccue;': 8929,\n\t'nsimeq;': 8772,\n\t'ntilde;': 241,\n\t'numero;': 8470,\n\t'nvDash;': 8877,\n\t'nvHarr;': 10500,\n\t'nvdash;': 8876,\n\t'nvlArr;': 10498,\n\t'nvrArr;': 10499,\n\t'nwarhk;': 10531,\n\t'nwnear;': 10535,\n\t'oacute;': 243,\n\t'odblac;': 337,\n\t'odsold;': 10684,\n\t'ograve;': 242,\n\t'ominus;': 8854,\n\t'origof;': 8886,\n\t'oslash;': 248,\n\t'otilde;': 245,\n\t'otimes;': 8855,\n\t'parsim;': 10995,\n\t'percnt;': 37,\n\t'period;': 46,\n\t'permil;': 8240,\n\t'phmmat;': 8499,\n\t'planck;': 8463,\n\t'plankv;': 8463,\n\t'plusdo;': 8724,\n\t'plusdu;': 10789,\n\t'plusmn;': 177,\n\t'preceq;': 10927,\n\t'primes;': 8473,\n\t'prnsim;': 8936,\n\t'propto;': 8733,\n\t'prurel;': 8880,\n\t'puncsp;': 8200,\n\t'qprime;': 8279,\n\t'rAtail;': 10524,\n\t'racute;': 341,\n\t'rangle;': 10217,\n\t'rarrap;': 10613,\n\t'rarrfs;': 10526,\n\t'rarrhk;': 8618,\n\t'rarrlp;': 8620,\n\t'rarrpl;': 10565,\n\t'rarrtl;': 8611,\n\t'ratail;': 10522,\n\t'rbrace;': 125,\n\t'rbrack;': 93,\n\t'rcaron;': 345,\n\t'rcedil;': 343,\n\t'rdquor;': 8221,\n\t'rfisht;': 10621,\n\t'rfloor;': 8971,\n\t'rharul;': 10604,\n\t'rmoust;': 9137,\n\t'roplus;': 10798,\n\t'rpargt;': 10644,\n\t'rsaquo;': 8250,\n\t'rsquor;': 8217,\n\t'rthree;': 8908,\n\t'rtimes;': 8906,\n\t'sacute;': 347,\n\t'scaron;': 353,\n\t'scedil;': 351,\n\t'scnsim;': 8937,\n\t'searhk;': 10533,\n\t'seswar;': 10537,\n\t'sfrown;': 8994,\n\t'shchcy;': 1097,\n\t'sigmaf;': 962,\n\t'sigmav;': 962,\n\t'simdot;': 10858,\n\t'smashp;': 10803,\n\t'softcy;': 1100,\n\t'solbar;': 9023,\n\t'spades;': 9824,\n\t'sqcaps;': 8851,\n\t'sqcups;': 8852,\n\t'sqsube;': 8849,\n\t'sqsupe;': 8850,\n\t'square;': 9633,\n\t'squarf;': 9642,\n\t'ssetmn;': 8726,\n\t'ssmile;': 8995,\n\t'sstarf;': 8902,\n\t'subdot;': 10941,\n\t'subset;': 8834,\n\t'subsim;': 10951,\n\t'subsub;': 10965,\n\t'subsup;': 10963,\n\t'succeq;': 10928,\n\t'supdot;': 10942,\n\t'supset;': 8835,\n\t'supsim;': 10952,\n\t'supsub;': 10964,\n\t'supsup;': 10966,\n\t'swarhk;': 10534,\n\t'swnwar;': 10538,\n\t'target;': 8982,\n\t'tcaron;': 357,\n\t'tcedil;': 355,\n\t'telrec;': 8981,\n\t'there4;': 8756,\n\t'thetav;': 977,\n\t'thinsp;': 8201,\n\t'thksim;': 8764,\n\t'timesb;': 8864,\n\t'timesd;': 10800,\n\t'topbot;': 9014,\n\t'topcir;': 10993,\n\t'tprime;': 8244,\n\t'tridot;': 9708,\n\t'tstrok;': 359,\n\t'uacute;': 250,\n\t'ubreve;': 365,\n\t'udblac;': 369,\n\t'ufisht;': 10622,\n\t'ugrave;': 249,\n\t'ulcorn;': 8988,\n\t'ulcrop;': 8975,\n\t'urcorn;': 8989,\n\t'urcrop;': 8974,\n\t'utilde;': 361,\n\t'vangrt;': 10652,\n\t'varphi;': 981,\n\t'varrho;': 1009,\n\t'veebar;': 8891,\n\t'vellip;': 8942,\n\t'verbar;': 124,\n\t'vsubnE;': 10955,\n\t'vsubne;': 8842,\n\t'vsupnE;': 10956,\n\t'vsupne;': 8843,\n\t'wedbar;': 10847,\n\t'wedgeq;': 8793,\n\t'weierp;': 8472,\n\t'wreath;': 8768,\n\t'xoplus;': 10753,\n\t'xotime;': 10754,\n\t'xsqcup;': 10758,\n\t'xuplus;': 10756,\n\t'xwedge;': 8896,\n\t'yacute;': 253,\n\t'zacute;': 378,\n\t'zcaron;': 382,\n\t'zeetrf;': 8488,\n\t'AElig;': 198,\n\tAacute: 193,\n\t'Acirc;': 194,\n\tAgrave: 192,\n\t'Alpha;': 913,\n\t'Amacr;': 256,\n\t'Aogon;': 260,\n\t'Aring;': 197,\n\tAtilde: 195,\n\t'Breve;': 728,\n\tCcedil: 199,\n\t'Ccirc;': 264,\n\t'Colon;': 8759,\n\t'Cross;': 10799,\n\t'Dashv;': 10980,\n\t'Delta;': 916,\n\tEacute: 201,\n\t'Ecirc;': 202,\n\tEgrave: 200,\n\t'Emacr;': 274,\n\t'Eogon;': 280,\n\t'Equal;': 10869,\n\t'Gamma;': 915,\n\t'Gcirc;': 284,\n\t'Hacek;': 711,\n\t'Hcirc;': 292,\n\t'IJlig;': 306,\n\tIacute: 205,\n\t'Icirc;': 206,\n\tIgrave: 204,\n\t'Imacr;': 298,\n\t'Iogon;': 302,\n\t'Iukcy;': 1030,\n\t'Jcirc;': 308,\n\t'Jukcy;': 1028,\n\t'Kappa;': 922,\n\tNtilde: 209,\n\t'OElig;': 338,\n\tOacute: 211,\n\t'Ocirc;': 212,\n\tOgrave: 210,\n\t'Omacr;': 332,\n\t'Omega;': 937,\n\tOslash: 216,\n\tOtilde: 213,\n\t'Prime;': 8243,\n\t'RBarr;': 10512,\n\t'Scirc;': 348,\n\t'Sigma;': 931,\n\t'THORN;': 222,\n\t'TRADE;': 8482,\n\t'TSHcy;': 1035,\n\t'Theta;': 920,\n\t'Tilde;': 8764,\n\tUacute: 218,\n\t'Ubrcy;': 1038,\n\t'Ucirc;': 219,\n\tUgrave: 217,\n\t'Umacr;': 362,\n\t'Union;': 8899,\n\t'Uogon;': 370,\n\t'UpTee;': 8869,\n\t'Uring;': 366,\n\t'VDash;': 8875,\n\t'Vdash;': 8873,\n\t'Wcirc;': 372,\n\t'Wedge;': 8896,\n\tYacute: 221,\n\t'Ycirc;': 374,\n\taacute: 225,\n\t'acirc;': 226,\n\t'acute;': 180,\n\t'aelig;': 230,\n\tagrave: 224,\n\t'aleph;': 8501,\n\t'alpha;': 945,\n\t'amacr;': 257,\n\t'amalg;': 10815,\n\t'angle;': 8736,\n\t'angrt;': 8735,\n\t'angst;': 197,\n\t'aogon;': 261,\n\t'aring;': 229,\n\t'asymp;': 8776,\n\tatilde: 227,\n\t'awint;': 10769,\n\t'bcong;': 8780,\n\t'bdquo;': 8222,\n\t'bepsi;': 1014,\n\t'blank;': 9251,\n\t'blk12;': 9618,\n\t'blk14;': 9617,\n\t'blk34;': 9619,\n\t'block;': 9608,\n\t'boxDL;': 9559,\n\t'boxDR;': 9556,\n\t'boxDl;': 9558,\n\t'boxDr;': 9555,\n\t'boxHD;': 9574,\n\t'boxHU;': 9577,\n\t'boxHd;': 9572,\n\t'boxHu;': 9575,\n\t'boxUL;': 9565,\n\t'boxUR;': 9562,\n\t'boxUl;': 9564,\n\t'boxUr;': 9561,\n\t'boxVH;': 9580,\n\t'boxVL;': 9571,\n\t'boxVR;': 9568,\n\t'boxVh;': 9579,\n\t'boxVl;': 9570,\n\t'boxVr;': 9567,\n\t'boxdL;': 9557,\n\t'boxdR;': 9554,\n\t'boxdl;': 9488,\n\t'boxdr;': 9484,\n\t'boxhD;': 9573,\n\t'boxhU;': 9576,\n\t'boxhd;': 9516,\n\t'boxhu;': 9524,\n\t'boxuL;': 9563,\n\t'boxuR;': 9560,\n\t'boxul;': 9496,\n\t'boxur;': 9492,\n\t'boxvH;': 9578,\n\t'boxvL;': 9569,\n\t'boxvR;': 9566,\n\t'boxvh;': 9532,\n\t'boxvl;': 9508,\n\t'boxvr;': 9500,\n\t'breve;': 728,\n\tbrvbar: 166,\n\t'bsemi;': 8271,\n\t'bsime;': 8909,\n\t'bsolb;': 10693,\n\t'bumpE;': 10926,\n\t'bumpe;': 8783,\n\t'caret;': 8257,\n\t'caron;': 711,\n\t'ccaps;': 10829,\n\tccedil: 231,\n\t'ccirc;': 265,\n\t'ccups;': 10828,\n\t'cedil;': 184,\n\t'check;': 10003,\n\t'clubs;': 9827,\n\t'colon;': 58,\n\t'comma;': 44,\n\t'crarr;': 8629,\n\t'cross;': 10007,\n\t'csube;': 10961,\n\t'csupe;': 10962,\n\t'ctdot;': 8943,\n\t'cuepr;': 8926,\n\t'cuesc;': 8927,\n\t'cupor;': 10821,\n\tcurren: 164,\n\t'cuvee;': 8910,\n\t'cuwed;': 8911,\n\t'cwint;': 8753,\n\t'dashv;': 8867,\n\t'dblac;': 733,\n\t'ddarr;': 8650,\n\t'delta;': 948,\n\t'dharl;': 8643,\n\t'dharr;': 8642,\n\t'diams;': 9830,\n\t'disin;': 8946,\n\tdivide: 247,\n\t'doteq;': 8784,\n\t'dtdot;': 8945,\n\t'dtrif;': 9662,\n\t'duarr;': 8693,\n\t'duhar;': 10607,\n\t'eDDot;': 10871,\n\teacute: 233,\n\t'ecirc;': 234,\n\t'efDot;': 8786,\n\tegrave: 232,\n\t'emacr;': 275,\n\t'empty;': 8709,\n\t'eogon;': 281,\n\t'eplus;': 10865,\n\t'epsiv;': 1013,\n\t'eqsim;': 8770,\n\t'equiv;': 8801,\n\t'erDot;': 8787,\n\t'erarr;': 10609,\n\t'esdot;': 8784,\n\t'exist;': 8707,\n\t'fflig;': 64256,\n\t'filig;': 64257,\n\t'fjlig;': 102,\n\t'fllig;': 64258,\n\t'fltns;': 9649,\n\t'forkv;': 10969,\n\tfrac12: 189,\n\tfrac14: 188,\n\tfrac34: 190,\n\t'frasl;': 8260,\n\t'frown;': 8994,\n\t'gamma;': 947,\n\t'gcirc;': 285,\n\t'gescc;': 10921,\n\t'gimel;': 8503,\n\t'gneqq;': 8809,\n\t'gnsim;': 8935,\n\t'grave;': 96,\n\t'gsime;': 10894,\n\t'gsiml;': 10896,\n\t'gtcir;': 10874,\n\t'gtdot;': 8919,\n\t'harrw;': 8621,\n\t'hcirc;': 293,\n\t'hoarr;': 8703,\n\tiacute: 237,\n\t'icirc;': 238,\n\t'iexcl;': 161,\n\tigrave: 236,\n\t'iiint;': 8749,\n\t'iiota;': 8489,\n\t'ijlig;': 307,\n\t'imacr;': 299,\n\t'image;': 8465,\n\t'imath;': 305,\n\t'imped;': 437,\n\t'infin;': 8734,\n\t'iogon;': 303,\n\t'iprod;': 10812,\n\tiquest: 191,\n\t'isinE;': 8953,\n\t'isins;': 8948,\n\t'isinv;': 8712,\n\t'iukcy;': 1110,\n\t'jcirc;': 309,\n\t'jmath;': 567,\n\t'jukcy;': 1108,\n\t'kappa;': 954,\n\t'lAarr;': 8666,\n\t'lBarr;': 10510,\n\t'langd;': 10641,\n\t'laquo;': 171,\n\t'larrb;': 8676,\n\t'lates;': 10925,\n\t'lbarr;': 10508,\n\t'lbbrk;': 10098,\n\t'lbrke;': 10635,\n\t'lceil;': 8968,\n\t'ldquo;': 8220,\n\t'lescc;': 10920,\n\t'lhard;': 8637,\n\t'lharu;': 8636,\n\t'lhblk;': 9604,\n\t'llarr;': 8647,\n\t'lltri;': 9722,\n\t'lneqq;': 8808,\n\t'lnsim;': 8934,\n\t'loang;': 10220,\n\t'loarr;': 8701,\n\t'lobrk;': 10214,\n\t'lopar;': 10629,\n\t'lrarr;': 8646,\n\t'lrhar;': 8651,\n\t'lrtri;': 8895,\n\t'lsime;': 10893,\n\t'lsimg;': 10895,\n\t'lsquo;': 8216,\n\t'ltcir;': 10873,\n\t'ltdot;': 8918,\n\t'ltrie;': 8884,\n\t'ltrif;': 9666,\n\t'mDDot;': 8762,\n\t'mdash;': 8212,\n\t'micro;': 181,\n\tmiddot: 183,\n\t'minus;': 8722,\n\t'mumap;': 8888,\n\t'nabla;': 8711,\n\t'napid;': 8779,\n\t'napos;': 329,\n\t'natur;': 9838,\n\t'nbump;': 8782,\n\t'ncong;': 8775,\n\t'ndash;': 8211,\n\t'neArr;': 8663,\n\t'nearr;': 8599,\n\t'nedot;': 8784,\n\t'nesim;': 8770,\n\t'ngeqq;': 8807,\n\t'ngsim;': 8821,\n\t'nhArr;': 8654,\n\t'nharr;': 8622,\n\t'nhpar;': 10994,\n\t'nlArr;': 8653,\n\t'nlarr;': 8602,\n\t'nleqq;': 8806,\n\t'nless;': 8814,\n\t'nlsim;': 8820,\n\t'nltri;': 8938,\n\t'notin;': 8713,\n\t'notni;': 8716,\n\t'npart;': 8706,\n\t'nprec;': 8832,\n\t'nrArr;': 8655,\n\t'nrarr;': 8603,\n\t'nrtri;': 8939,\n\t'nsime;': 8772,\n\t'nsmid;': 8740,\n\t'nspar;': 8742,\n\t'nsubE;': 10949,\n\t'nsube;': 8840,\n\t'nsucc;': 8833,\n\t'nsupE;': 10950,\n\t'nsupe;': 8841,\n\tntilde: 241,\n\t'numsp;': 8199,\n\t'nvsim;': 8764,\n\t'nwArr;': 8662,\n\t'nwarr;': 8598,\n\toacute: 243,\n\t'ocirc;': 244,\n\t'odash;': 8861,\n\t'oelig;': 339,\n\t'ofcir;': 10687,\n\tograve: 242,\n\t'ohbar;': 10677,\n\t'olarr;': 8634,\n\t'olcir;': 10686,\n\t'oline;': 8254,\n\t'omacr;': 333,\n\t'omega;': 969,\n\t'operp;': 10681,\n\t'oplus;': 8853,\n\t'orarr;': 8635,\n\t'order;': 8500,\n\toslash: 248,\n\totilde: 245,\n\t'ovbar;': 9021,\n\t'parsl;': 11005,\n\t'phone;': 9742,\n\t'plusb;': 8862,\n\t'pluse;': 10866,\n\tplusmn: 177,\n\t'pound;': 163,\n\t'prcue;': 8828,\n\t'prime;': 8242,\n\t'prnap;': 10937,\n\t'prsim;': 8830,\n\t'quest;': 63,\n\t'rAarr;': 8667,\n\t'rBarr;': 10511,\n\t'radic;': 8730,\n\t'rangd;': 10642,\n\t'range;': 10661,\n\t'raquo;': 187,\n\t'rarrb;': 8677,\n\t'rarrc;': 10547,\n\t'rarrw;': 8605,\n\t'ratio;': 8758,\n\t'rbarr;': 10509,\n\t'rbbrk;': 10099,\n\t'rbrke;': 10636,\n\t'rceil;': 8969,\n\t'rdquo;': 8221,\n\t'reals;': 8477,\n\t'rhard;': 8641,\n\t'rharu;': 8640,\n\t'rlarr;': 8644,\n\t'rlhar;': 8652,\n\t'rnmid;': 10990,\n\t'roang;': 10221,\n\t'roarr;': 8702,\n\t'robrk;': 10215,\n\t'ropar;': 10630,\n\t'rrarr;': 8649,\n\t'rsquo;': 8217,\n\t'rtrie;': 8885,\n\t'rtrif;': 9656,\n\t'sbquo;': 8218,\n\t'sccue;': 8829,\n\t'scirc;': 349,\n\t'scnap;': 10938,\n\t'scsim;': 8831,\n\t'sdotb;': 8865,\n\t'sdote;': 10854,\n\t'seArr;': 8664,\n\t'searr;': 8600,\n\t'setmn;': 8726,\n\t'sharp;': 9839,\n\t'sigma;': 963,\n\t'simeq;': 8771,\n\t'simgE;': 10912,\n\t'simlE;': 10911,\n\t'simne;': 8774,\n\t'slarr;': 8592,\n\t'smile;': 8995,\n\t'smtes;': 10924,\n\t'sqcap;': 8851,\n\t'sqcup;': 8852,\n\t'sqsub;': 8847,\n\t'sqsup;': 8848,\n\t'srarr;': 8594,\n\t'starf;': 9733,\n\t'strns;': 175,\n\t'subnE;': 10955,\n\t'subne;': 8842,\n\t'supnE;': 10956,\n\t'supne;': 8843,\n\t'swArr;': 8665,\n\t'swarr;': 8601,\n\t'szlig;': 223,\n\t'theta;': 952,\n\t'thkap;': 8776,\n\t'thorn;': 254,\n\t'tilde;': 732,\n\t'times;': 215,\n\t'trade;': 8482,\n\t'trisb;': 10701,\n\t'tshcy;': 1115,\n\t'twixt;': 8812,\n\tuacute: 250,\n\t'ubrcy;': 1118,\n\t'ucirc;': 251,\n\t'udarr;': 8645,\n\t'udhar;': 10606,\n\tugrave: 249,\n\t'uharl;': 8639,\n\t'uharr;': 8638,\n\t'uhblk;': 9600,\n\t'ultri;': 9720,\n\t'umacr;': 363,\n\t'uogon;': 371,\n\t'uplus;': 8846,\n\t'upsih;': 978,\n\t'uring;': 367,\n\t'urtri;': 9721,\n\t'utdot;': 8944,\n\t'utrif;': 9652,\n\t'uuarr;': 8648,\n\t'vBarv;': 10985,\n\t'vDash;': 8872,\n\t'varpi;': 982,\n\t'vdash;': 8866,\n\t'veeeq;': 8794,\n\t'vltri;': 8882,\n\t'vnsub;': 8834,\n\t'vnsup;': 8835,\n\t'vprop;': 8733,\n\t'vrtri;': 8883,\n\t'wcirc;': 373,\n\t'wedge;': 8743,\n\t'xcirc;': 9711,\n\t'xdtri;': 9661,\n\t'xhArr;': 10234,\n\t'xharr;': 10231,\n\t'xlArr;': 10232,\n\t'xlarr;': 10229,\n\t'xodot;': 10752,\n\t'xrArr;': 10233,\n\t'xrarr;': 10230,\n\t'xutri;': 9651,\n\tyacute: 253,\n\t'ycirc;': 375,\n\tAElig: 198,\n\tAcirc: 194,\n\t'Aopf;': 120120,\n\tAring: 197,\n\t'Ascr;': 119964,\n\t'Auml;': 196,\n\t'Barv;': 10983,\n\t'Beta;': 914,\n\t'Bopf;': 120121,\n\t'Bscr;': 8492,\n\t'CHcy;': 1063,\n\t'COPY;': 169,\n\t'Cdot;': 266,\n\t'Copf;': 8450,\n\t'Cscr;': 119966,\n\t'DJcy;': 1026,\n\t'DScy;': 1029,\n\t'DZcy;': 1039,\n\t'Darr;': 8609,\n\t'Dopf;': 120123,\n\t'Dscr;': 119967,\n\tEcirc: 202,\n\t'Edot;': 278,\n\t'Eopf;': 120124,\n\t'Escr;': 8496,\n\t'Esim;': 10867,\n\t'Euml;': 203,\n\t'Fopf;': 120125,\n\t'Fscr;': 8497,\n\t'GJcy;': 1027,\n\t'Gdot;': 288,\n\t'Gopf;': 120126,\n\t'Gscr;': 119970,\n\t'Hopf;': 8461,\n\t'Hscr;': 8459,\n\t'IEcy;': 1045,\n\t'IOcy;': 1025,\n\tIcirc: 206,\n\t'Idot;': 304,\n\t'Iopf;': 120128,\n\t'Iota;': 921,\n\t'Iscr;': 8464,\n\t'Iuml;': 207,\n\t'Jopf;': 120129,\n\t'Jscr;': 119973,\n\t'KHcy;': 1061,\n\t'KJcy;': 1036,\n\t'Kopf;': 120130,\n\t'Kscr;': 119974,\n\t'LJcy;': 1033,\n\t'Lang;': 10218,\n\t'Larr;': 8606,\n\t'Lopf;': 120131,\n\t'Lscr;': 8466,\n\t'Mopf;': 120132,\n\t'Mscr;': 8499,\n\t'NJcy;': 1034,\n\t'Nopf;': 8469,\n\t'Nscr;': 119977,\n\tOcirc: 212,\n\t'Oopf;': 120134,\n\t'Oscr;': 119978,\n\t'Ouml;': 214,\n\t'Popf;': 8473,\n\t'Pscr;': 119979,\n\t'QUOT;': 34,\n\t'Qopf;': 8474,\n\t'Qscr;': 119980,\n\t'Rang;': 10219,\n\t'Rarr;': 8608,\n\t'Ropf;': 8477,\n\t'Rscr;': 8475,\n\t'SHcy;': 1064,\n\t'Sopf;': 120138,\n\t'Sqrt;': 8730,\n\t'Sscr;': 119982,\n\t'Star;': 8902,\n\tTHORN: 222,\n\t'TScy;': 1062,\n\t'Topf;': 120139,\n\t'Tscr;': 119983,\n\t'Uarr;': 8607,\n\tUcirc: 219,\n\t'Uopf;': 120140,\n\t'Upsi;': 978,\n\t'Uscr;': 119984,\n\t'Uuml;': 220,\n\t'Vbar;': 10987,\n\t'Vert;': 8214,\n\t'Vopf;': 120141,\n\t'Vscr;': 119985,\n\t'Wopf;': 120142,\n\t'Wscr;': 119986,\n\t'Xopf;': 120143,\n\t'Xscr;': 119987,\n\t'YAcy;': 1071,\n\t'YIcy;': 1031,\n\t'YUcy;': 1070,\n\t'Yopf;': 120144,\n\t'Yscr;': 119988,\n\t'Yuml;': 376,\n\t'ZHcy;': 1046,\n\t'Zdot;': 379,\n\t'Zeta;': 918,\n\t'Zopf;': 8484,\n\t'Zscr;': 119989,\n\tacirc: 226,\n\tacute: 180,\n\taelig: 230,\n\t'andd;': 10844,\n\t'andv;': 10842,\n\t'ange;': 10660,\n\t'aopf;': 120146,\n\t'apid;': 8779,\n\t'apos;': 39,\n\taring: 229,\n\t'ascr;': 119990,\n\t'auml;': 228,\n\t'bNot;': 10989,\n\t'bbrk;': 9141,\n\t'beta;': 946,\n\t'beth;': 8502,\n\t'bnot;': 8976,\n\t'bopf;': 120147,\n\t'boxH;': 9552,\n\t'boxV;': 9553,\n\t'boxh;': 9472,\n\t'boxv;': 9474,\n\t'bscr;': 119991,\n\t'bsim;': 8765,\n\t'bsol;': 92,\n\t'bull;': 8226,\n\t'bump;': 8782,\n\t'caps;': 8745,\n\t'cdot;': 267,\n\tcedil: 184,\n\t'cent;': 162,\n\t'chcy;': 1095,\n\t'cirE;': 10691,\n\t'circ;': 710,\n\t'cire;': 8791,\n\t'comp;': 8705,\n\t'cong;': 8773,\n\t'copf;': 120148,\n\t'copy;': 169,\n\t'cscr;': 119992,\n\t'csub;': 10959,\n\t'csup;': 10960,\n\t'cups;': 8746,\n\t'dArr;': 8659,\n\t'dHar;': 10597,\n\t'darr;': 8595,\n\t'dash;': 8208,\n\t'diam;': 8900,\n\t'djcy;': 1106,\n\t'dopf;': 120149,\n\t'dscr;': 119993,\n\t'dscy;': 1109,\n\t'dsol;': 10742,\n\t'dtri;': 9663,\n\t'dzcy;': 1119,\n\t'eDot;': 8785,\n\t'ecir;': 8790,\n\tecirc: 234,\n\t'edot;': 279,\n\t'emsp;': 8195,\n\t'ensp;': 8194,\n\t'eopf;': 120150,\n\t'epar;': 8917,\n\t'epsi;': 949,\n\t'escr;': 8495,\n\t'esim;': 8770,\n\t'euml;': 235,\n\t'euro;': 8364,\n\t'excl;': 33,\n\t'flat;': 9837,\n\t'fnof;': 402,\n\t'fopf;': 120151,\n\t'fork;': 8916,\n\t'fscr;': 119995,\n\t'gdot;': 289,\n\t'geqq;': 8807,\n\t'gesl;': 8923,\n\t'gjcy;': 1107,\n\t'gnap;': 10890,\n\t'gneq;': 10888,\n\t'gopf;': 120152,\n\t'gscr;': 8458,\n\t'gsim;': 8819,\n\t'gtcc;': 10919,\n\t'gvnE;': 8809,\n\t'hArr;': 8660,\n\t'half;': 189,\n\t'harr;': 8596,\n\t'hbar;': 8463,\n\t'hopf;': 120153,\n\t'hscr;': 119997,\n\ticirc: 238,\n\t'iecy;': 1077,\n\tiexcl: 161,\n\t'imof;': 8887,\n\t'iocy;': 1105,\n\t'iopf;': 120154,\n\t'iota;': 953,\n\t'iscr;': 119998,\n\t'isin;': 8712,\n\t'iuml;': 239,\n\t'jopf;': 120155,\n\t'jscr;': 119999,\n\t'khcy;': 1093,\n\t'kjcy;': 1116,\n\t'kopf;': 120156,\n\t'kscr;': 120000,\n\t'lArr;': 8656,\n\t'lHar;': 10594,\n\t'lang;': 10216,\n\tlaquo: 171,\n\t'larr;': 8592,\n\t'late;': 10925,\n\t'lcub;': 123,\n\t'ldca;': 10550,\n\t'ldsh;': 8626,\n\t'leqq;': 8806,\n\t'lesg;': 8922,\n\t'ljcy;': 1113,\n\t'lnap;': 10889,\n\t'lneq;': 10887,\n\t'lopf;': 120157,\n\t'lozf;': 10731,\n\t'lpar;': 40,\n\t'lscr;': 120001,\n\t'lsim;': 8818,\n\t'lsqb;': 91,\n\t'ltcc;': 10918,\n\t'ltri;': 9667,\n\t'lvnE;': 8808,\n\t'macr;': 175,\n\t'male;': 9794,\n\t'malt;': 10016,\n\tmicro: 181,\n\t'mlcp;': 10971,\n\t'mldr;': 8230,\n\t'mopf;': 120158,\n\t'mscr;': 120002,\n\t'nGtv;': 8811,\n\t'nLtv;': 8810,\n\t'nang;': 8736,\n\t'napE;': 10864,\n\t'nbsp;': 160,\n\t'ncap;': 10819,\n\t'ncup;': 10818,\n\t'ngeq;': 8817,\n\t'nges;': 10878,\n\t'ngtr;': 8815,\n\t'nisd;': 8954,\n\t'njcy;': 1114,\n\t'nldr;': 8229,\n\t'nleq;': 8816,\n\t'nles;': 10877,\n\t'nmid;': 8740,\n\t'nopf;': 120159,\n\t'npar;': 8742,\n\t'npre;': 10927,\n\t'nsce;': 10928,\n\t'nscr;': 120003,\n\t'nsim;': 8769,\n\t'nsub;': 8836,\n\t'nsup;': 8837,\n\t'ntgl;': 8825,\n\t'ntlg;': 8824,\n\t'nvap;': 8781,\n\t'nvge;': 8805,\n\t'nvgt;': 62,\n\t'nvle;': 8804,\n\t'nvlt;': 60,\n\t'oast;': 8859,\n\t'ocir;': 8858,\n\tocirc: 244,\n\t'odiv;': 10808,\n\t'odot;': 8857,\n\t'ogon;': 731,\n\t'oint;': 8750,\n\t'omid;': 10678,\n\t'oopf;': 120160,\n\t'opar;': 10679,\n\t'ordf;': 170,\n\t'ordm;': 186,\n\t'oror;': 10838,\n\t'oscr;': 8500,\n\t'osol;': 8856,\n\t'ouml;': 246,\n\t'para;': 182,\n\t'part;': 8706,\n\t'perp;': 8869,\n\t'phiv;': 981,\n\t'plus;': 43,\n\t'popf;': 120161,\n\tpound: 163,\n\t'prap;': 10935,\n\t'prec;': 8826,\n\t'prnE;': 10933,\n\t'prod;': 8719,\n\t'prop;': 8733,\n\t'pscr;': 120005,\n\t'qint;': 10764,\n\t'qopf;': 120162,\n\t'qscr;': 120006,\n\t'quot;': 34,\n\t'rArr;': 8658,\n\t'rHar;': 10596,\n\t'race;': 8765,\n\t'rang;': 10217,\n\traquo: 187,\n\t'rarr;': 8594,\n\t'rcub;': 125,\n\t'rdca;': 10551,\n\t'rdsh;': 8627,\n\t'real;': 8476,\n\t'rect;': 9645,\n\t'rhov;': 1009,\n\t'ring;': 730,\n\t'ropf;': 120163,\n\t'rpar;': 41,\n\t'rscr;': 120007,\n\t'rsqb;': 93,\n\t'rtri;': 9657,\n\t'scap;': 10936,\n\t'scnE;': 10934,\n\t'sdot;': 8901,\n\t'sect;': 167,\n\t'semi;': 59,\n\t'sext;': 10038,\n\t'shcy;': 1096,\n\t'sime;': 8771,\n\t'simg;': 10910,\n\t'siml;': 10909,\n\t'smid;': 8739,\n\t'smte;': 10924,\n\t'solb;': 10692,\n\t'sopf;': 120164,\n\t'spar;': 8741,\n\t'squf;': 9642,\n\t'sscr;': 120008,\n\t'star;': 9734,\n\t'subE;': 10949,\n\t'sube;': 8838,\n\t'succ;': 8827,\n\t'sung;': 9834,\n\t'sup1;': 185,\n\t'sup2;': 178,\n\t'sup3;': 179,\n\t'supE;': 10950,\n\t'supe;': 8839,\n\tszlig: 223,\n\t'tbrk;': 9140,\n\t'tdot;': 8411,\n\tthorn: 254,\n\ttimes: 215,\n\t'tint;': 8749,\n\t'toea;': 10536,\n\t'topf;': 120165,\n\t'tosa;': 10537,\n\t'trie;': 8796,\n\t'tscr;': 120009,\n\t'tscy;': 1094,\n\t'uArr;': 8657,\n\t'uHar;': 10595,\n\t'uarr;': 8593,\n\tucirc: 251,\n\t'uopf;': 120166,\n\t'upsi;': 965,\n\t'uscr;': 120010,\n\t'utri;': 9653,\n\t'uuml;': 252,\n\t'vArr;': 8661,\n\t'vBar;': 10984,\n\t'varr;': 8597,\n\t'vert;': 124,\n\t'vopf;': 120167,\n\t'vscr;': 120011,\n\t'wopf;': 120168,\n\t'wscr;': 120012,\n\t'xcap;': 8898,\n\t'xcup;': 8899,\n\t'xmap;': 10236,\n\t'xnis;': 8955,\n\t'xopf;': 120169,\n\t'xscr;': 120013,\n\t'xvee;': 8897,\n\t'yacy;': 1103,\n\t'yicy;': 1111,\n\t'yopf;': 120170,\n\t'yscr;': 120014,\n\t'yucy;': 1102,\n\t'yuml;': 255,\n\t'zdot;': 380,\n\t'zeta;': 950,\n\t'zhcy;': 1078,\n\t'zopf;': 120171,\n\t'zscr;': 120015,\n\t'zwnj;': 8204,\n\t'AMP;': 38,\n\t'Acy;': 1040,\n\t'Afr;': 120068,\n\t'And;': 10835,\n\tAuml: 196,\n\t'Bcy;': 1041,\n\t'Bfr;': 120069,\n\tCOPY: 169,\n\t'Cap;': 8914,\n\t'Cfr;': 8493,\n\t'Chi;': 935,\n\t'Cup;': 8915,\n\t'Dcy;': 1044,\n\t'Del;': 8711,\n\t'Dfr;': 120071,\n\t'Dot;': 168,\n\t'ENG;': 330,\n\t'ETH;': 208,\n\t'Ecy;': 1069,\n\t'Efr;': 120072,\n\t'Eta;': 919,\n\tEuml: 203,\n\t'Fcy;': 1060,\n\t'Ffr;': 120073,\n\t'Gcy;': 1043,\n\t'Gfr;': 120074,\n\t'Hat;': 94,\n\t'Hfr;': 8460,\n\t'Icy;': 1048,\n\t'Ifr;': 8465,\n\t'Int;': 8748,\n\tIuml: 207,\n\t'Jcy;': 1049,\n\t'Jfr;': 120077,\n\t'Kcy;': 1050,\n\t'Kfr;': 120078,\n\t'Lcy;': 1051,\n\t'Lfr;': 120079,\n\t'Lsh;': 8624,\n\t'Map;': 10501,\n\t'Mcy;': 1052,\n\t'Mfr;': 120080,\n\t'Ncy;': 1053,\n\t'Nfr;': 120081,\n\t'Not;': 10988,\n\t'Ocy;': 1054,\n\t'Ofr;': 120082,\n\tOuml: 214,\n\t'Pcy;': 1055,\n\t'Pfr;': 120083,\n\t'Phi;': 934,\n\t'Psi;': 936,\n\tQUOT: 34,\n\t'Qfr;': 120084,\n\t'REG;': 174,\n\t'Rcy;': 1056,\n\t'Rfr;': 8476,\n\t'Rho;': 929,\n\t'Rsh;': 8625,\n\t'Scy;': 1057,\n\t'Sfr;': 120086,\n\t'Sub;': 8912,\n\t'Sum;': 8721,\n\t'Sup;': 8913,\n\t'Tab;': 9,\n\t'Tau;': 932,\n\t'Tcy;': 1058,\n\t'Tfr;': 120087,\n\t'Ucy;': 1059,\n\t'Ufr;': 120088,\n\tUuml: 220,\n\t'Vcy;': 1042,\n\t'Vee;': 8897,\n\t'Vfr;': 120089,\n\t'Wfr;': 120090,\n\t'Xfr;': 120091,\n\t'Ycy;': 1067,\n\t'Yfr;': 120092,\n\t'Zcy;': 1047,\n\t'Zfr;': 8488,\n\t'acE;': 8766,\n\t'acd;': 8767,\n\t'acy;': 1072,\n\t'afr;': 120094,\n\t'amp;': 38,\n\t'and;': 8743,\n\t'ang;': 8736,\n\t'apE;': 10864,\n\t'ape;': 8778,\n\t'ast;': 42,\n\tauml: 228,\n\t'bcy;': 1073,\n\t'bfr;': 120095,\n\t'bne;': 61,\n\t'bot;': 8869,\n\t'cap;': 8745,\n\tcent: 162,\n\t'cfr;': 120096,\n\t'chi;': 967,\n\t'cir;': 9675,\n\tcopy: 169,\n\t'cup;': 8746,\n\t'dcy;': 1076,\n\t'deg;': 176,\n\t'dfr;': 120097,\n\t'die;': 168,\n\t'div;': 247,\n\t'dot;': 729,\n\t'ecy;': 1101,\n\t'efr;': 120098,\n\t'egs;': 10902,\n\t'ell;': 8467,\n\t'els;': 10901,\n\t'eng;': 331,\n\t'eta;': 951,\n\t'eth;': 240,\n\teuml: 235,\n\t'fcy;': 1092,\n\t'ffr;': 120099,\n\t'gEl;': 10892,\n\t'gap;': 10886,\n\t'gcy;': 1075,\n\t'gel;': 8923,\n\t'geq;': 8805,\n\t'ges;': 10878,\n\t'gfr;': 120100,\n\t'ggg;': 8921,\n\t'glE;': 10898,\n\t'gla;': 10917,\n\t'glj;': 10916,\n\t'gnE;': 8809,\n\t'gne;': 10888,\n\t'hfr;': 120101,\n\t'icy;': 1080,\n\t'iff;': 8660,\n\t'ifr;': 120102,\n\t'int;': 8747,\n\tiuml: 239,\n\t'jcy;': 1081,\n\t'jfr;': 120103,\n\t'kcy;': 1082,\n\t'kfr;': 120104,\n\t'lEg;': 10891,\n\t'lap;': 10885,\n\t'lat;': 10923,\n\t'lcy;': 1083,\n\t'leg;': 8922,\n\t'leq;': 8804,\n\t'les;': 10877,\n\t'lfr;': 120105,\n\t'lgE;': 10897,\n\t'lnE;': 8808,\n\t'lne;': 10887,\n\t'loz;': 9674,\n\t'lrm;': 8206,\n\t'lsh;': 8624,\n\tmacr: 175,\n\t'map;': 8614,\n\t'mcy;': 1084,\n\t'mfr;': 120106,\n\t'mho;': 8487,\n\t'mid;': 8739,\n\t'nGg;': 8921,\n\t'nGt;': 8811,\n\t'nLl;': 8920,\n\t'nLt;': 8810,\n\t'nap;': 8777,\n\tnbsp: 160,\n\t'ncy;': 1085,\n\t'nfr;': 120107,\n\t'ngE;': 8807,\n\t'nge;': 8817,\n\t'ngt;': 8815,\n\t'nis;': 8956,\n\t'niv;': 8715,\n\t'nlE;': 8806,\n\t'nle;': 8816,\n\t'nlt;': 8814,\n\t'not;': 172,\n\t'npr;': 8832,\n\t'nsc;': 8833,\n\t'num;': 35,\n\t'ocy;': 1086,\n\t'ofr;': 120108,\n\t'ogt;': 10689,\n\t'ohm;': 937,\n\t'olt;': 10688,\n\t'ord;': 10845,\n\tordf: 170,\n\tordm: 186,\n\t'orv;': 10843,\n\touml: 246,\n\t'par;': 8741,\n\tpara: 182,\n\t'pcy;': 1087,\n\t'pfr;': 120109,\n\t'phi;': 966,\n\t'piv;': 982,\n\t'prE;': 10931,\n\t'pre;': 10927,\n\t'psi;': 968,\n\t'qfr;': 120110,\n\tquot: 34,\n\t'rcy;': 1088,\n\t'reg;': 174,\n\t'rfr;': 120111,\n\t'rho;': 961,\n\t'rlm;': 8207,\n\t'rsh;': 8625,\n\t'scE;': 10932,\n\t'sce;': 10928,\n\t'scy;': 1089,\n\tsect: 167,\n\t'sfr;': 120112,\n\t'shy;': 173,\n\t'sim;': 8764,\n\t'smt;': 10922,\n\t'sol;': 47,\n\t'squ;': 9633,\n\t'sub;': 8834,\n\t'sum;': 8721,\n\tsup1: 185,\n\tsup2: 178,\n\tsup3: 179,\n\t'sup;': 8835,\n\t'tau;': 964,\n\t'tcy;': 1090,\n\t'tfr;': 120113,\n\t'top;': 8868,\n\t'ucy;': 1091,\n\t'ufr;': 120114,\n\t'uml;': 168,\n\tuuml: 252,\n\t'vcy;': 1074,\n\t'vee;': 8744,\n\t'vfr;': 120115,\n\t'wfr;': 120116,\n\t'xfr;': 120117,\n\t'ycy;': 1099,\n\t'yen;': 165,\n\t'yfr;': 120118,\n\tyuml: 255,\n\t'zcy;': 1079,\n\t'zfr;': 120119,\n\t'zwj;': 8205,\n\tAMP: 38,\n\t'DD;': 8517,\n\tETH: 208,\n\t'GT;': 62,\n\t'Gg;': 8921,\n\t'Gt;': 8811,\n\t'Im;': 8465,\n\t'LT;': 60,\n\t'Ll;': 8920,\n\t'Lt;': 8810,\n\t'Mu;': 924,\n\t'Nu;': 925,\n\t'Or;': 10836,\n\t'Pi;': 928,\n\t'Pr;': 10939,\n\tREG: 174,\n\t'Re;': 8476,\n\t'Sc;': 10940,\n\t'Xi;': 926,\n\t'ac;': 8766,\n\t'af;': 8289,\n\tamp: 38,\n\t'ap;': 8776,\n\t'dd;': 8518,\n\tdeg: 176,\n\t'ee;': 8519,\n\t'eg;': 10906,\n\t'el;': 10905,\n\teth: 240,\n\t'gE;': 8807,\n\t'ge;': 8805,\n\t'gg;': 8811,\n\t'gl;': 8823,\n\t'gt;': 62,\n\t'ic;': 8291,\n\t'ii;': 8520,\n\t'in;': 8712,\n\t'it;': 8290,\n\t'lE;': 8806,\n\t'le;': 8804,\n\t'lg;': 8822,\n\t'll;': 8810,\n\t'lt;': 60,\n\t'mp;': 8723,\n\t'mu;': 956,\n\t'ne;': 8800,\n\t'ni;': 8715,\n\tnot: 172,\n\t'nu;': 957,\n\t'oS;': 9416,\n\t'or;': 8744,\n\t'pi;': 960,\n\t'pm;': 177,\n\t'pr;': 8826,\n\treg: 174,\n\t'rx;': 8478,\n\t'sc;': 8827,\n\tshy: 173,\n\tuml: 168,\n\t'wp;': 8472,\n\t'wr;': 8768,\n\t'xi;': 958,\n\tyen: 165,\n\tGT: 62,\n\tLT: 60,\n\tgt: 62,\n\tlt: 60\n};\n","import entities from './entities';\n\nconst windows_1252 = [\n\t8364,\n\t129,\n\t8218,\n\t402,\n\t8222,\n\t8230,\n\t8224,\n\t8225,\n\t710,\n\t8240,\n\t352,\n\t8249,\n\t338,\n\t141,\n\t381,\n\t143,\n\t144,\n\t8216,\n\t8217,\n\t8220,\n\t8221,\n\t8226,\n\t8211,\n\t8212,\n\t732,\n\t8482,\n\t353,\n\t8250,\n\t339,\n\t157,\n\t382,\n\t376\n];\n\nfunction reg_exp_entity(entity_name: string, is_attribute_value: boolean) {\n\t// https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n\t// doesn't decode the html entity which not ends with ; and next character is =, number or alphabet in attribute value.\n\tif (is_attribute_value && !entity_name.endsWith(';')) {\n\t\treturn `${entity_name}\\\\b(?!=)`;\n\t}\n\treturn entity_name;\n}\n\nfunction get_entity_pattern(is_attribute_value: boolean) {\n\tconst reg_exp_num = '#(?:x[a-fA-F\\\\d]+|\\\\d+)(?:;)?';\n\tconst reg_exp_entities = Object.keys(entities).map(entity_name => reg_exp_entity(entity_name, is_attribute_value));\n\n\tconst entity_pattern = new RegExp(\n\t\t`&(${reg_exp_num}|${reg_exp_entities.join('|')})`,\n\t\t'g'\n\t);\n\n\treturn entity_pattern;\n}\n\nconst entity_pattern_content = get_entity_pattern(false);\nconst entity_pattern_attr_value = get_entity_pattern(true);\n\nexport function decode_character_references(html: string, is_attribute_value: boolean) {\n\tconst entity_pattern = is_attribute_value ? entity_pattern_attr_value : entity_pattern_content;\n\treturn html.replace(entity_pattern, (match, entity) => {\n\t\tlet code;\n\n\t\t// Handle named entities\n\t\tif (entity[0] !== '#') {\n\t\t\tcode = entities[entity];\n\t\t} else if (entity[1] === 'x') {\n\t\t\tcode = parseInt(entity.substring(2), 16);\n\t\t} else {\n\t\t\tcode = parseInt(entity.substring(1), 10);\n\t\t}\n\n\t\tif (!code) {\n\t\t\treturn match;\n\t\t}\n\n\t\treturn String.fromCodePoint(validate_code(code));\n\t});\n}\n\nconst NUL = 0;\n\n// some code points are verboten. If we were inserting HTML, the browser would replace the illegal\n// code points with alternatives in some cases - since we're bypassing that mechanism, we need\n// to replace them ourselves\n//\n// Source: http://en.wikipedia.org/wiki/Character_encodings_in_HTML#Illegal_characters\nfunction validate_code(code: number) {\n\t// line feed becomes generic whitespace\n\tif (code === 10) {\n\t\treturn 32;\n\t}\n\n\t// ASCII range. (Why someone would use HTML entities for ASCII characters I don't know, but...)\n\tif (code < 128) {\n\t\treturn code;\n\t}\n\n\t// code points 128-159 are dealt with leniently by browsers, but they're incorrect. We need\n\t// to correct the mistake or we'll end up with missing € signs and so on\n\tif (code <= 159) {\n\t\treturn windows_1252[code - 128];\n\t}\n\n\t// basic multilingual plane\n\tif (code < 55296) {\n\t\treturn code;\n\t}\n\n\t// UTF-16 surrogate halves\n\tif (code <= 57343) {\n\t\treturn NUL;\n\t}\n\n\t// rest of the basic multilingual plane\n\tif (code <= 65535) {\n\t\treturn code;\n\t}\n\n\t// supplementary multilingual plane 0x10000 - 0x1ffff\n\tif (code >= 65536 && code <= 131071) {\n\t\treturn code;\n\t}\n\n\t// supplementary ideographic plane 0x20000 - 0x2ffff\n\tif (code >= 131072 && code <= 196607) {\n\t\treturn code;\n\t}\n\n\treturn NUL;\n}\n\n// based on http://developers.whatwg.org/syntax.html#syntax-tag-omission\nconst disallowed_contents = new Map([\n\t['li', new Set(['li'])],\n\t['dt', new Set(['dt', 'dd'])],\n\t['dd', new Set(['dt', 'dd'])],\n\t[\n\t\t'p',\n\t\tnew Set(\n\t\t\t'address article aside blockquote div dl fieldset footer form h1 h2 h3 h4 h5 h6 header hgroup hr main menu nav ol p pre section table ul'.split(\n\t\t\t\t' '\n\t\t\t)\n\t\t)\n\t],\n\t['rt', new Set(['rt', 'rp'])],\n\t['rp', new Set(['rt', 'rp'])],\n\t['optgroup', new Set(['optgroup'])],\n\t['option', new Set(['option', 'optgroup'])],\n\t['thead', new Set(['tbody', 'tfoot'])],\n\t['tbody', new Set(['tbody', 'tfoot'])],\n\t['tfoot', new Set(['tbody'])],\n\t['tr', new Set(['tr', 'tbody'])],\n\t['td', new Set(['td', 'th', 'tr'])],\n\t['th', new Set(['td', 'th', 'tr'])]\n]);\n\n// can this be a child of the parent element, or does it implicitly\n// close it, like `<li>one<li>two`?\nexport function closing_tag_omitted(current: string, next?: string) {\n\tif (disallowed_contents.has(current)) {\n\t\tif (!next || disallowed_contents.get(current).has(next)) {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\treturn false;\n}\n","import { Directive, DirectiveType, TemplateNode, Text } from '../../interfaces';\nimport { extract_svelte_ignore } from '../../utils/extract_svelte_ignore';\nimport fuzzymatch from '../../utils/fuzzymatch';\nimport { is_void } from '../../../shared/utils/names';\nimport parser_errors from '../errors';\nimport { Parser } from '../index';\nimport read_expression from '../read/expression';\nimport read_script from '../read/script';\nimport read_style from '../read/style';\nimport { closing_tag_omitted, decode_character_references } from '../utils/html';\n\n// eslint-disable-next-line no-useless-escape\nconst valid_tag_name = /^\\!?[a-zA-Z]{1,}:?[a-zA-Z0-9\\-]*/;\n\n/** Invalid attribute characters if the attribute is not surrounded by quotes */\nconst regex_starts_with_invalid_attr_value = /^(\\/>|[\\s\"'=<>`])/;\n\nconst meta_tags = new Map([\n\t['svelte:head', 'Head'],\n\t['svelte:options', 'Options'],\n\t['svelte:window', 'Window'],\n\t['svelte:body', 'Body']\n]);\n\nconst valid_meta_tags = Array.from(meta_tags.keys()).concat('svelte:self', 'svelte:component', 'svelte:fragment', 'svelte:element');\n\nconst specials = new Map([\n\t[\n\t\t'script',\n\t\t{\n\t\t\tread: read_script,\n\t\t\tproperty: 'js'\n\t\t}\n\t],\n\t[\n\t\t'style',\n\t\t{\n\t\t\tread: read_style,\n\t\t\tproperty: 'css'\n\t\t}\n\t]\n]);\n\nconst SELF = /^svelte:self(?=[\\s/>])/;\nconst COMPONENT = /^svelte:component(?=[\\s/>])/;\nconst SLOT = /^svelte:fragment(?=[\\s/>])/;\nconst ELEMENT = /^svelte:element(?=[\\s/>])/;\n\nfunction parent_is_head(stack) {\n\tlet i = stack.length;\n\twhile (i--) {\n\t\tconst { type } = stack[i];\n\t\tif (type === 'Head') return true;\n\t\tif (type === 'Element' || type === 'InlineComponent') return false;\n\t}\n\treturn false;\n}\n\nconst regex_closing_textarea_tag = /^<\\/textarea(\\s[^>]*)?>/i;\nconst regex_closing_comment = /-->/;\nconst regex_capital_letter = /[A-Z]/;\n\nexport default function tag(parser: Parser) {\n\tconst start = parser.index++;\n\n\tlet parent = parser.current();\n\n\tif (parser.eat('!--')) {\n\t\tconst data = parser.read_until(regex_closing_comment);\n\t\tparser.eat('-->', true, parser_errors.unclosed_comment);\n\n\t\tparser.current().children.push({\n\t\t\tstart,\n\t\t\tend: parser.index,\n\t\t\ttype: 'Comment',\n\t\t\tdata,\n\t\t\tignores: extract_svelte_ignore(data)\n\t\t});\n\n\t\treturn;\n\t}\n\n\tconst is_closing_tag = parser.eat('/');\n\n\tconst name = read_tag_name(parser);\n\n\tif (meta_tags.has(name)) {\n\t\tconst slug = meta_tags.get(name).toLowerCase();\n\t\tif (is_closing_tag) {\n\t\t\tif (\n\t\t\t\t(name === 'svelte:window' || name === 'svelte:body') &&\n\t\t\t\tparser.current().children.length\n\t\t\t) {\n\t\t\t\tparser.error(\n\t\t\t\t\tparser_errors.invalid_element_content(slug, name),\n\t\t\t\t\tparser.current().children[0].start\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tif (name in parser.meta_tags) {\n\t\t\t\tparser.error(parser_errors.duplicate_element(slug, name), start);\n\t\t\t}\n\n\t\t\tif (parser.stack.length > 1) {\n\t\t\t\tparser.error(parser_errors.invalid_element_placement(slug, name), start);\n\t\t\t}\n\n\t\t\tparser.meta_tags[name] = true;\n\t\t}\n\t}\n\n\tconst type = meta_tags.has(name)\n\t\t? meta_tags.get(name)\n\t\t: (regex_capital_letter.test(name[0]) || name === 'svelte:self' || name === 'svelte:component') ? 'InlineComponent'\n\t\t\t: name === 'svelte:fragment' ? 'SlotTemplate'\n\t\t\t\t: name === 'title' && parent_is_head(parser.stack) ? 'Title'\n\t\t\t\t\t: name === 'slot' && !parser.customElement ? 'Slot' : 'Element';\n\n\tconst element: TemplateNode = {\n\t\tstart,\n\t\tend: null, // filled in later\n\t\ttype,\n\t\tname,\n\t\tattributes: [],\n\t\tchildren: []\n\t};\n\n\tparser.allow_whitespace();\n\n\tif (is_closing_tag) {\n\t\tif (is_void(name)) {\n\t\t\tparser.error(parser_errors.invalid_void_content(name), start);\n\t\t}\n\n\t\tparser.eat('>', true);\n\n\t\t// close any elements that don't have their own closing tags, e.g. <div><p></div>\n\t\twhile (parent.name !== name) {\n\t\t\tif (parent.type !== 'Element') {\n\t\t\t\tconst error = parser.last_auto_closed_tag && parser.last_auto_closed_tag.tag === name\n\t\t\t\t\t? parser_errors.invalid_closing_tag_autoclosed(name, parser.last_auto_closed_tag.reason)\n\t\t\t\t\t: parser_errors.invalid_closing_tag_unopened(name);\n\t\t\t\tparser.error(error, start);\n\t\t\t}\n\n\t\t\tparent.end = start;\n\t\t\tparser.stack.pop();\n\n\t\t\tparent = parser.current();\n\t\t}\n\n\t\tparent.end = parser.index;\n\t\tparser.stack.pop();\n\n\t\tif (parser.last_auto_closed_tag && parser.stack.length < parser.last_auto_closed_tag.depth) {\n\t\t\tparser.last_auto_closed_tag = null;\n\t\t}\n\n\t\treturn;\n\t} else if (closing_tag_omitted(parent.name, name)) {\n\t\tparent.end = start;\n\t\tparser.stack.pop();\n\t\tparser.last_auto_closed_tag = {\n\t\t\ttag: parent.name,\n\t\t\treason: name,\n\t\t\tdepth: parser.stack.length\n\t\t};\n\t}\n\n\tconst unique_names: Set<string> = new Set();\n\n\tlet attribute;\n\twhile ((attribute = read_attribute(parser, unique_names))) {\n\t\telement.attributes.push(attribute);\n\t\tparser.allow_whitespace();\n\t}\n\n\tif (name === 'svelte:component') {\n\t\tconst index = element.attributes.findIndex(attr => attr.type === 'Attribute' && attr.name === 'this');\n\t\tif (index === -1) {\n\t\t\tparser.error(parser_errors.missing_component_definition, start);\n\t\t}\n\n\t\tconst definition = element.attributes.splice(index, 1)[0];\n\t\tif (definition.value === true || definition.value.length !== 1 || definition.value[0].type === 'Text') {\n\t\t\tparser.error(parser_errors.invalid_component_definition, definition.start);\n\t\t}\n\n\t\telement.expression = definition.value[0].expression;\n\t}\n\n\tif (name === 'svelte:element') {\n\t\tconst index = element.attributes.findIndex(attr => attr.type === 'Attribute' && attr.name === 'this');\n\t\tif (index === -1) {\n\t\t\tparser.error(parser_errors.missing_element_definition, start);\n\t\t}\n\n\t\tconst definition = element.attributes.splice(index, 1)[0];\n\t\tif (definition.value === true) {\n\t\t\tparser.error(parser_errors.invalid_element_definition, definition.start);\n\t\t}\n\t\telement.tag = definition.value[0].data || definition.value[0].expression;\n\t}\n\n\t// special cases – top-level <script> and <style>\n\tif (specials.has(name) && parser.stack.length === 1) {\n\t\tconst special = specials.get(name);\n\n\t\tparser.eat('>', true);\n\t\tconst content = special.read(parser, start, element.attributes);\n\t\tif (content) parser[special.property].push(content);\n\t\treturn;\n\t}\n\n\tparser.current().children.push(element);\n\n\tconst self_closing = parser.eat('/') || is_void(name);\n\n\tparser.eat('>', true);\n\n\tif (self_closing) {\n\t\t// don't push self-closing elements onto the stack\n\t\telement.end = parser.index;\n\t} else if (name === 'textarea') {\n\t\t// special case\n\t\telement.children = read_sequence(\n\t\t\tparser,\n\t\t\t() => regex_closing_textarea_tag.test(parser.template.slice(parser.index)),\n\t\t\t'inside <textarea>'\n\t\t);\n\t\tparser.read(regex_closing_textarea_tag);\n\t\telement.end = parser.index;\n\t} else if (name === 'script' || name === 'style') {\n\t\t// special case\n\t\tconst start = parser.index;\n\t\tconst data = parser.read_until(new RegExp(`</${name}>`));\n\t\tconst end = parser.index;\n\t\telement.children.push({ start, end, type: 'Text', data });\n\t\tparser.eat(`</${name}>`, true);\n\t\telement.end = parser.index;\n\t} else {\n\t\tparser.stack.push(element);\n\t}\n}\n\nconst regex_whitespace_or_slash_or_closing_tag = /(\\s|\\/|>)/;\n\nfunction read_tag_name(parser: Parser) {\n\tconst start = parser.index;\n\n\tif (parser.read(SELF)) {\n\t\t// check we're inside a block, otherwise this\n\t\t// will cause infinite recursion\n\t\tlet i = parser.stack.length;\n\t\tlet legal = false;\n\n\t\twhile (i--) {\n\t\t\tconst fragment = parser.stack[i];\n\t\t\tif (fragment.type === 'IfBlock' || fragment.type === 'EachBlock' || fragment.type === 'InlineComponent') {\n\t\t\t\tlegal = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (!legal) {\n\t\t\tparser.error(parser_errors.invalid_self_placement, start);\n\t\t}\n\n\t\treturn 'svelte:self';\n\t}\n\n\tif (parser.read(COMPONENT)) return 'svelte:component';\n\tif (parser.read(ELEMENT)) return 'svelte:element';\n\n\tif (parser.read(SLOT)) return 'svelte:fragment';\n\n\tconst name = parser.read_until(regex_whitespace_or_slash_or_closing_tag);\n\n\tif (meta_tags.has(name)) return name;\n\n\tif (name.startsWith('svelte:')) {\n\t\tconst match = fuzzymatch(name.slice(7), valid_meta_tags);\n\n\t\tparser.error(\n\t\t\tparser_errors.invalid_tag_name_svelte_element(valid_meta_tags, match),\n\t\t\tstart\n\t\t);\n\t}\n\n\tif (!valid_tag_name.test(name)) {\n\t\tparser.error(parser_errors.invalid_tag_name, start);\n\t}\n\n\treturn name;\n}\n\n// eslint-disable-next-line no-useless-escape\nconst regex_token_ending_character = /[\\s=\\/>\"']/;\nconst regex_starts_with_quote_characters = /^[\"']/;\n\nfunction read_attribute(parser: Parser, unique_names: Set<string>) {\n\tconst start = parser.index;\n\n\tfunction check_unique(name: string) {\n\t\tif (unique_names.has(name)) {\n\t\t\tparser.error(parser_errors.duplicate_attribute, start);\n\t\t}\n\t\tunique_names.add(name);\n\t}\n\n\tif (parser.eat('{')) {\n\t\tparser.allow_whitespace();\n\n\t\tif (parser.eat('...')) {\n\t\t\tconst expression = read_expression(parser);\n\n\t\t\tparser.allow_whitespace();\n\t\t\tparser.eat('}', true);\n\n\t\t\treturn {\n\t\t\t\tstart,\n\t\t\t\tend: parser.index,\n\t\t\t\ttype: 'Spread',\n\t\t\t\texpression\n\t\t\t};\n\t\t} else {\n\t\t\tconst value_start = parser.index;\n\n\t\t\tconst name = parser.read_identifier();\n\t\t\tparser.allow_whitespace();\n\t\t\tparser.eat('}', true);\n\n\t\t\tif (name === null) {\n\t\t\t\tparser.error(parser_errors.empty_attribute_shorthand, start);\n\t\t\t}\n\n\t\t\tcheck_unique(name);\n\n\t\t\treturn {\n\t\t\t\tstart,\n\t\t\t\tend: parser.index,\n\t\t\t\ttype: 'Attribute',\n\t\t\t\tname,\n\t\t\t\tvalue: [{\n\t\t\t\t\tstart: value_start,\n\t\t\t\t\tend: value_start + name.length,\n\t\t\t\t\ttype: 'AttributeShorthand',\n\t\t\t\t\texpression: {\n\t\t\t\t\t\tstart: value_start,\n\t\t\t\t\t\tend: value_start + name.length,\n\t\t\t\t\t\ttype: 'Identifier',\n\t\t\t\t\t\tname\n\t\t\t\t\t}\n\t\t\t\t}]\n\t\t\t};\n\t\t}\n\t}\n\n\tconst name = parser.read_until(regex_token_ending_character);\n\tif (!name) return null;\n\n\tlet end = parser.index;\n\n\tparser.allow_whitespace();\n\n\tconst colon_index = name.indexOf(':');\n\tconst type = colon_index !== -1 && get_directive_type(name.slice(0, colon_index));\n\n\tlet value: any[] | true = true;\n\tif (parser.eat('=')) {\n\t\tparser.allow_whitespace();\n\t\tvalue = read_attribute_value(parser);\n\t\tend = parser.index;\n\t} else if (parser.match_regex(regex_starts_with_quote_characters)) {\n\t\tparser.error(parser_errors.unexpected_token('='), parser.index);\n\t}\n\n\tif (type) {\n\t\tconst [directive_name, ...modifiers] = name.slice(colon_index + 1).split('|');\n\n\t\tif (directive_name === '') {\n\t\t\tparser.error(parser_errors.empty_directive_name(type), start + colon_index + 1);\n\t\t}\n\n\t\tif (type === 'Binding' && directive_name !== 'this') {\n\t\t\tcheck_unique(directive_name);\n\t\t} else if (type !== 'EventHandler' && type !== 'Action') {\n\t\t\tcheck_unique(name);\n\t\t}\n\n\t\tif (type === 'Ref') {\n\t\t\tparser.error(parser_errors.invalid_ref_directive(directive_name), start);\n\t\t}\n\n\t\tif (type === 'StyleDirective') {\n\t\t\treturn {\n\t\t\t\tstart,\n\t\t\t\tend,\n\t\t\t\ttype,\n\t\t\t\tname: directive_name,\n\t\t\t\tmodifiers,\n\t\t\t\tvalue\n\t\t\t};\n\t\t}\n\n\t\tconst first_value = value[0];\n\t\tlet expression = null;\n\n\t\tif (first_value) {\n\t\t\tconst attribute_contains_text = (value as any[]).length > 1 || first_value.type === 'Text';\n\t\t\tif (attribute_contains_text) {\n\t\t\t\tparser.error(parser_errors.invalid_directive_value, first_value.start);\n\t\t\t} else {\n\t\t\t\texpression = first_value.expression;\n\t\t\t}\n\t\t}\n\n\t\tconst directive: Directive = {\n\t\t\tstart,\n\t\t\tend,\n\t\t\ttype,\n\t\t\tname: directive_name,\n\t\t\tmodifiers,\n\t\t\texpression\n\t\t};\n\n\t\tif (type === 'Transition') {\n\t\t\tconst direction = name.slice(0, colon_index);\n\t\t\tdirective.intro = direction === 'in' || direction === 'transition';\n\t\t\tdirective.outro = direction === 'out' || direction === 'transition';\n\t\t}\n\n\t\t// Directive name is expression, e.g. <p class:isRed />\n\t\tif (!directive.expression && (type === 'Binding' || type === 'Class')) {\n\t\t\tdirective.expression = {\n\t\t\t\tstart: directive.start + colon_index + 1,\n\t\t\t\tend: directive.end,\n\t\t\t\ttype: 'Identifier',\n\t\t\t\tname: directive.name\n\t\t\t} as any;\n\t\t}\n\n\t\treturn directive;\n\t}\n\n\tcheck_unique(name);\n\n\treturn {\n\t\tstart,\n\t\tend,\n\t\ttype: 'Attribute',\n\t\tname,\n\t\tvalue\n\t};\n}\n\nfunction get_directive_type(name: string): DirectiveType {\n\tif (name === 'use') return 'Action';\n\tif (name === 'animate') return 'Animation';\n\tif (name === 'bind') return 'Binding';\n\tif (name === 'class') return 'Class';\n\tif (name === 'style') return 'StyleDirective';\n\tif (name === 'on') return 'EventHandler';\n\tif (name === 'let') return 'Let';\n\tif (name === 'ref') return 'Ref';\n\tif (name === 'in' || name === 'out' || name === 'transition') return 'Transition';\n}\n\nfunction read_attribute_value(parser: Parser) {\n\tconst quote_mark = parser.eat(\"'\") ? \"'\" : parser.eat('\"') ? '\"' : null;\n\tif (quote_mark && parser.eat(quote_mark)) {\n\t\treturn [{\n\t\t\tstart: parser.index - 1,\n\t\t\tend: parser.index - 1,\n\t\t\ttype: 'Text',\n\t\t\traw: '',\n\t\t\tdata: ''\n\t\t}];\n\t}\n\n\tlet value;\n\ttry {\n\t\tvalue = read_sequence(parser, () => {\n\t\t\t// handle common case of quote marks existing outside of regex for performance reasons\n\t\t\tif (quote_mark) return parser.match(quote_mark);\n\t\t\treturn !!parser.match_regex(regex_starts_with_invalid_attr_value);\n\t\t}, 'in attribute value');\n\t} catch (error) {\n\t\tif (error.code === 'parse-error') {\n\t\t\t// if the attribute value didn't close + self-closing tag\n\t\t\t// eg: `<Component test={{a:1} />`\n\t\t\t// acorn may throw a `Unterminated regular expression` because of `/>`\n\t\t\tif (parser.template.slice(error.pos - 1, error.pos + 1) === '/>') {\n\t\t\t\tparser.index = error.pos;\n\t\t\t\tparser.error(parser_errors.unclosed_attribute_value(quote_mark || '}'));\n\t\t\t}\n\t\t}\n\t\tthrow error;\n\t}\n\n\tif (value.length === 0 && !quote_mark) {\n\t\tparser.error(parser_errors.missing_attribute_value);\n\t}\n\n\tif (quote_mark) parser.index += 1;\n\treturn value;\n}\n\nfunction read_sequence(parser: Parser, done: () => boolean, location: string): TemplateNode[] {\n\tlet current_chunk: Text = {\n\t\tstart: parser.index,\n\t\tend: null,\n\t\ttype: 'Text',\n\t\traw: '',\n\t\tdata: null\n\t};\n\n\tconst chunks: TemplateNode[] = [];\n\n\tfunction flush(end: number) {\n\t\tif (current_chunk.raw) {\n\t\t\tcurrent_chunk.data = decode_character_references(current_chunk.raw, true);\n\t\t\tcurrent_chunk.end = end;\n\t\t\tchunks.push(current_chunk);\n\t\t}\n\t}\n\n\twhile (parser.index < parser.template.length) {\n\t\tconst index = parser.index;\n\n\t\tif (done()) {\n\t\t\tflush(parser.index);\n\t\t\treturn chunks;\n\t\t} else if (parser.eat('{')) {\n\t\t\tif (parser.match('#')) {\n\t\t\t\tconst index = parser.index - 1;\n\t\t\t\tparser.eat('#');\n\t\t\t\tconst name = parser.read_until(/[^a-z]/);\n\t\t\t\tparser.error(parser_errors.invalid_logic_block_placement(location, name), index);\n\t\t\t} else if (parser.match('@')) {\n\t\t\t\tconst index = parser.index - 1;\n\t\t\t\tparser.eat('@');\n\t\t\t\tconst name = parser.read_until(/[^a-z]/);\n\t\t\t\tparser.error(parser_errors.invalid_tag_placement(location, name), index);\n\t\t\t}\n\n\t\t\tflush(parser.index - 1);\n\n\t\t\tparser.allow_whitespace();\n\t\t\tconst expression = read_expression(parser);\n\t\t\tparser.allow_whitespace();\n\t\t\tparser.eat('}', true);\n\n\t\t\tchunks.push({\n\t\t\t\tstart: index,\n\t\t\t\tend: parser.index,\n\t\t\t\ttype: 'MustacheTag',\n\t\t\t\texpression\n\t\t\t});\n\n\t\t\tcurrent_chunk = {\n\t\t\t\tstart: parser.index,\n\t\t\t\tend: null,\n\t\t\t\ttype: 'Text',\n\t\t\t\traw: '',\n\t\t\t\tdata: null\n\t\t\t};\n\t\t} else {\n\t\t\tcurrent_chunk.raw += parser.template[parser.index++];\n\t\t}\n\t}\n\n\tparser.error(parser_errors.unexpected_eof);\n}\n","// Adapted from https://github.com/acornjs/acorn/blob/6584815dca7440e00de841d1dad152302fdd7ca5/src/tokenize.js\n// Reproduced under MIT License https://github.com/acornjs/acorn/blob/master/LICENSE\n\nexport default function full_char_code_at(str: string, i: number): number {\n\tconst code = str.charCodeAt(i);\n\tif (code <= 0xd7ff || code >= 0xe000) return code;\n\n\tconst next = str.charCodeAt(i + 1);\n\treturn (code << 10) + next - 0x35fdc00;\n}\n","const SQUARE_BRACKET_OPEN = '['.charCodeAt(0);\nconst SQUARE_BRACKET_CLOSE = ']'.charCodeAt(0);\nconst CURLY_BRACKET_OPEN = '{'.charCodeAt(0);\nconst CURLY_BRACKET_CLOSE = '}'.charCodeAt(0);\n\nexport function is_bracket_open(code) {\n\treturn code === SQUARE_BRACKET_OPEN || code === CURLY_BRACKET_OPEN;\n}\n\nexport function is_bracket_close(code) {\n\treturn code === SQUARE_BRACKET_CLOSE || code === CURLY_BRACKET_CLOSE;\n}\n\nexport function is_bracket_pair(open, close) {\n\treturn (\n\t\t(open === SQUARE_BRACKET_OPEN && close === SQUARE_BRACKET_CLOSE) ||\n\t\t(open === CURLY_BRACKET_OPEN && close === CURLY_BRACKET_CLOSE)\n\t);\n}\n\nexport function get_bracket_close(open) {\n\tif (open === SQUARE_BRACKET_OPEN) {\n\t\treturn SQUARE_BRACKET_CLOSE;\n\t}\n\tif (open === CURLY_BRACKET_OPEN) {\n\t\treturn CURLY_BRACKET_CLOSE;\n\t}\n}\n","import { Parser } from '../index';\nimport { isIdentifierStart } from 'acorn';\nimport full_char_code_at from '../../utils/full_char_code_at';\nimport {\n\tis_bracket_open,\n\tis_bracket_close,\n\tis_bracket_pair,\n\tget_bracket_close\n} from '../utils/bracket';\nimport { parse_expression_at } from '../acorn';\nimport { Pattern } from 'estree';\nimport parser_errors from '../errors';\nimport { regex_not_newline_characters } from '../../utils/patterns';\n\nexport default function read_context(\n\tparser: Parser\n): Pattern & { start: number; end: number } {\n\tconst start = parser.index;\n\tlet i = parser.index;\n\n\tconst code = full_char_code_at(parser.template, i);\n\tif (isIdentifierStart(code, true)) {\n\t\treturn {\n\t\t\ttype: 'Identifier',\n\t\t\tname: parser.read_identifier(),\n\t\t\tstart,\n\t\t\tend: parser.index\n\t\t};\n\t}\n\n\tif (!is_bracket_open(code)) {\n\t\tparser.error(parser_errors.unexpected_token_destructure);\n\t}\n\n\tconst bracket_stack = [code];\n\ti += code <= 0xffff ? 1 : 2;\n\n\twhile (i < parser.template.length) {\n\t\tconst code = full_char_code_at(parser.template, i);\n\t\tif (is_bracket_open(code)) {\n\t\t\tbracket_stack.push(code);\n\t\t} else if (is_bracket_close(code)) {\n\t\t\tif (!is_bracket_pair(bracket_stack[bracket_stack.length - 1], code)) {\n\t\t\t\tparser.error(\n\t\t\t\t\tparser_errors.unexpected_token(\n\t\t\t\t\t\tString.fromCharCode(get_bracket_close(bracket_stack[bracket_stack.length - 1]))\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tbracket_stack.pop();\n\t\t\tif (bracket_stack.length === 0) {\n\t\t\t\ti += code <= 0xffff ? 1 : 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\ti += code <= 0xffff ? 1 : 2;\n\t}\n\n\tparser.index = i;\n\n\tconst pattern_string = parser.template.slice(start, i);\n\ttry {\n\t\t// the length of the `space_with_newline` has to be start - 1\n\t\t// because we added a `(` in front of the pattern_string,\n\t\t// which shifted the entire string to right by 1\n\t\t// so we offset it by removing 1 character in the `space_with_newline`\n\t\t// to achieve that, we remove the 1st space encountered,\n\t\t// so it will not affect the `column` of the node\n\t\tlet space_with_newline = parser.template.slice(0, start).replace(regex_not_newline_characters, ' ');\n\t\tconst first_space = space_with_newline.indexOf(' ');\n\t\tspace_with_newline = space_with_newline.slice(0, first_space) + space_with_newline.slice(first_space + 1);\n\n\t\treturn (parse_expression_at(\n\t\t\t`${space_with_newline}(${pattern_string} = 1)`,\n\t\t\tstart - 1\n\t\t) as any).left;\n\t} catch (error) {\n\t\tparser.acorn_error(error);\n\t}\n}\n","import { regex_starts_with_whitespaces, regex_ends_with_whitespaces } from './patterns';\n\nexport function trim_start(str: string) {\n\treturn str.replace(regex_starts_with_whitespaces, '');\n}\n\nexport function trim_end(str: string) {\n\treturn str.replace(regex_ends_with_whitespaces, '');\n}\n","import { TemplateNode } from '../../interfaces';\n\nexport function to_string(node: TemplateNode) {\n\tswitch (node.type) {\n\t\tcase 'IfBlock':\n\t\t\treturn '{#if} block';\n\t\tcase 'ThenBlock':\n\t\t\treturn '{:then} block';\n\t\tcase 'ElseBlock':\n\t\t\treturn '{:else} block';\n\t\tcase 'PendingBlock':\n\t\tcase 'AwaitBlock':\n\t\t\treturn '{#await} block';\n\t\tcase 'CatchBlock':\n\t\t\treturn '{:catch} block';\n\t\tcase 'EachBlock':\n\t\t\treturn '{#each} block';\n\t\tcase 'RawMustacheTag':\n\t\t\treturn '{@html} block';\n\t\tcase 'DebugTag':\n\t\t\treturn '{@debug} block';\n\t\tcase 'ConstTag':\n\t\t\treturn '{@const} tag';\n\t\tcase 'Element':\n\t\tcase 'InlineComponent':\n\t\tcase 'Slot':\n\t\tcase 'Title':\n\t\t\treturn `<${node.name}> tag`;\n\t\tdefault:\n\t\t\treturn node.type;\n\t}\n}\n","import read_context from '../read/context';\nimport read_expression from '../read/expression';\nimport { closing_tag_omitted } from '../utils/html';\nimport { regex_whitespace } from '../../utils/patterns';\nimport { trim_start, trim_end } from '../../utils/trim';\nimport { to_string } from '../utils/node';\nimport { Parser } from '../index';\nimport { TemplateNode } from '../../interfaces';\nimport parser_errors from '../errors';\n\nfunction trim_whitespace(block: TemplateNode, trim_before: boolean, trim_after: boolean) {\n\tif (!block.children || block.children.length === 0) return; // AwaitBlock\n\n\tconst first_child = block.children[0];\n\tconst last_child = block.children[block.children.length - 1];\n\n\tif (first_child.type === 'Text' && trim_before) {\n\t\tfirst_child.data = trim_start(first_child.data);\n\t\tif (!first_child.data) block.children.shift();\n\t}\n\n\tif (last_child.type === 'Text' && trim_after) {\n\t\tlast_child.data = trim_end(last_child.data);\n\t\tif (!last_child.data) block.children.pop();\n\t}\n\n\tif (block.else) {\n\t\ttrim_whitespace(block.else, trim_before, trim_after);\n\t}\n\n\tif (first_child.elseif) {\n\t\ttrim_whitespace(first_child, trim_before, trim_after);\n\t}\n}\n\nconst regex_whitespace_with_closing_curly_brace = /^\\s*}/;\n\nexport default function mustache(parser: Parser) {\n\tconst start = parser.index;\n\tparser.index += 1;\n\n\tparser.allow_whitespace();\n\n\t// {/if}, {/each}, {/await} or {/key}\n\tif (parser.eat('/')) {\n\t\tlet block = parser.current();\n\t\tlet expected;\n\n\t\tif (closing_tag_omitted(block.name)) {\n\t\t\tblock.end = start;\n\t\t\tparser.stack.pop();\n\t\t\tblock = parser.current();\n\t\t}\n\n\t\tif (block.type === 'ElseBlock' || block.type === 'PendingBlock' || block.type === 'ThenBlock' || block.type === 'CatchBlock') {\n\t\t\tblock.end = start;\n\t\t\tparser.stack.pop();\n\t\t\tblock = parser.current();\n\n\t\t\texpected = 'await';\n\t\t}\n\n\t\tif (block.type === 'IfBlock') {\n\t\t\texpected = 'if';\n\t\t} else if (block.type === 'EachBlock') {\n\t\t\texpected = 'each';\n\t\t} else if (block.type === 'AwaitBlock') {\n\t\t\texpected = 'await';\n\t\t} else if (block.type === 'KeyBlock') {\n\t\t\texpected = 'key';\n\t\t} else {\n\t\t\tparser.error(parser_errors.unexpected_block_close);\n\t\t}\n\n\t\tparser.eat(expected, true);\n\t\tparser.allow_whitespace();\n\t\tparser.eat('}', true);\n\n\t\twhile (block.elseif) {\n\t\t\tblock.end = parser.index;\n\t\t\tparser.stack.pop();\n\t\t\tblock = parser.current();\n\n\t\t\tif (block.else) {\n\t\t\t\tblock.else.end = start;\n\t\t\t}\n\t\t}\n\n\t\t// strip leading/trailing whitespace as necessary\n\t\tconst char_before = parser.template[block.start - 1];\n\t\tconst char_after = parser.template[parser.index];\n\t\tconst trim_before = !char_before || regex_whitespace.test(char_before);\n\t\tconst trim_after = !char_after || regex_whitespace.test(char_after);\n\n\t\ttrim_whitespace(block, trim_before, trim_after);\n\n\t\tblock.end = parser.index;\n\t\tparser.stack.pop();\n\t} else if (parser.eat(':else')) {\n\t\tif (parser.eat('if')) {\n\t\t\tparser.error(parser_errors.invalid_elseif);\n\t\t}\n\n\t\tparser.allow_whitespace();\n\n\t\t// :else if\n\t\tif (parser.eat('if')) {\n\t\t\tconst block = parser.current();\n\t\t\tif (block.type !== 'IfBlock') {\n\t\t\t\tparser.error(\n\t\t\t\t\tparser.stack.some(block => block.type === 'IfBlock')\n\t\t\t\t\t\t? parser_errors.invalid_elseif_placement_unclosed_block(to_string(block))\n\t\t\t\t\t\t: parser_errors.invalid_elseif_placement_outside_if\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tparser.require_whitespace();\n\n\t\t\tconst expression = read_expression(parser);\n\n\t\t\tparser.allow_whitespace();\n\t\t\tparser.eat('}', true);\n\n\t\t\tblock.else = {\n\t\t\t\tstart: parser.index,\n\t\t\t\tend: null,\n\t\t\t\ttype: 'ElseBlock',\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tstart: parser.index,\n\t\t\t\t\t\tend: null,\n\t\t\t\t\t\ttype: 'IfBlock',\n\t\t\t\t\t\telseif: true,\n\t\t\t\t\t\texpression,\n\t\t\t\t\t\tchildren: []\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t};\n\n\t\t\tparser.stack.push(block.else.children[0]);\n\t\t} else {\n\t\t\t// :else\n\t\t\tconst block = parser.current();\n\t\t\tif (block.type !== 'IfBlock' && block.type !== 'EachBlock') {\n\t\t\t\tparser.error(\n\t\t\t\t\tparser.stack.some(block => block.type === 'IfBlock' || block.type === 'EachBlock')\n\t\t\t\t\t\t? parser_errors.invalid_else_placement_unclosed_block(to_string(block))\n\t\t\t\t\t\t: parser_errors.invalid_else_placement_outside_if\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tparser.allow_whitespace();\n\t\t\tparser.eat('}', true);\n\n\t\t\tblock.else = {\n\t\t\t\tstart: parser.index,\n\t\t\t\tend: null,\n\t\t\t\ttype: 'ElseBlock',\n\t\t\t\tchildren: []\n\t\t\t};\n\n\t\t\tparser.stack.push(block.else);\n\t\t}\n\t} else if (parser.match(':then') || parser.match(':catch')) {\n\t\tconst block = parser.current();\n\t\tconst is_then = parser.eat(':then') || !parser.eat(':catch');\n\n\t\tif (is_then) {\n\t\t\tif (block.type !== 'PendingBlock') {\n\t\t\t\tparser.error(\n\t\t\t\t\tparser.stack.some(block => block.type === 'PendingBlock')\n\t\t\t\t\t\t? parser_errors.invalid_then_placement_unclosed_block(to_string(block))\n\t\t\t\t\t\t: parser_errors.invalid_then_placement_without_await\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tif (block.type !== 'ThenBlock' && block.type !== 'PendingBlock') {\n\t\t\t\tparser.error(parser.stack.some(block => block.type === 'ThenBlock' || block.type === 'PendingBlock')\n\t\t\t\t\t? parser_errors.invalid_catch_placement_unclosed_block(to_string(block))\n\t\t\t\t\t: parser_errors.invalid_catch_placement_without_await\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tblock.end = start;\n\t\tparser.stack.pop();\n\t\tconst await_block = parser.current();\n\n\t\tif (!parser.eat('}')) {\n\t\t\tparser.require_whitespace();\n\t\t\tawait_block[is_then ? 'value' : 'error'] = read_context(parser);\n\t\t\tparser.allow_whitespace();\n\t\t\tparser.eat('}', true);\n\t\t}\n\n\t\tconst new_block: TemplateNode = {\n\t\t\tstart,\n\t\t\tend: null,\n\t\t\ttype: is_then ? 'ThenBlock' : 'CatchBlock',\n\t\t\tchildren: [],\n\t\t\tskip: false\n\t\t};\n\n\t\tawait_block[is_then ? 'then' : 'catch'] = new_block;\n\t\tparser.stack.push(new_block);\n\t} else if (parser.eat('#')) {\n\t\t// {#if foo}, {#each foo} or {#await foo}\n\t\tlet type;\n\n\t\tif (parser.eat('if')) {\n\t\t\ttype = 'IfBlock';\n\t\t} else if (parser.eat('each')) {\n\t\t\ttype = 'EachBlock';\n\t\t} else if (parser.eat('await')) {\n\t\t\ttype = 'AwaitBlock';\n\t\t} else if (parser.eat('key')) {\n\t\t\ttype = 'KeyBlock';\n\t\t} else {\n\t\t\tparser.error(parser_errors.expected_block_type);\n\t\t}\n\n\t\tparser.require_whitespace();\n\n\t\tconst expression = read_expression(parser);\n\n\t\tconst block: TemplateNode = type === 'AwaitBlock' ?\n\t\t\t{\n\t\t\t\tstart,\n\t\t\t\tend: null,\n\t\t\t\ttype,\n\t\t\t\texpression,\n\t\t\t\tvalue: null,\n\t\t\t\terror: null,\n\t\t\t\tpending: {\n\t\t\t\t\tstart: null,\n\t\t\t\t\tend: null,\n\t\t\t\t\ttype: 'PendingBlock',\n\t\t\t\t\tchildren: [],\n\t\t\t\t\tskip: true\n\t\t\t\t},\n\t\t\t\tthen: {\n\t\t\t\t\tstart: null,\n\t\t\t\t\tend: null,\n\t\t\t\t\ttype: 'ThenBlock',\n\t\t\t\t\tchildren: [],\n\t\t\t\t\tskip: true\n\t\t\t\t},\n\t\t\t\tcatch: {\n\t\t\t\t\tstart: null,\n\t\t\t\t\tend: null,\n\t\t\t\t\ttype: 'CatchBlock',\n\t\t\t\t\tchildren: [],\n\t\t\t\t\tskip: true\n\t\t\t\t}\n\t\t\t} :\n\t\t\t{\n\t\t\t\tstart,\n\t\t\t\tend: null,\n\t\t\t\ttype,\n\t\t\t\texpression,\n\t\t\t\tchildren: []\n\t\t\t};\n\n\t\tparser.allow_whitespace();\n\n\t\t// {#each} blocks must declare a context – {#each list as item}\n\t\tif (type === 'EachBlock') {\n\t\t\tparser.eat('as', true);\n\t\t\tparser.require_whitespace();\n\n\t\t\tblock.context = read_context(parser);\n\n\t\t\tparser.allow_whitespace();\n\n\t\t\tif (parser.eat(',')) {\n\t\t\t\tparser.allow_whitespace();\n\t\t\t\tblock.index = parser.read_identifier();\n\t\t\t\tif (!block.index) parser.error(parser_errors.expected_name);\n\n\t\t\t\tparser.allow_whitespace();\n\t\t\t}\n\n\t\t\tif (parser.eat('(')) {\n\t\t\t\tparser.allow_whitespace();\n\n\t\t\t\tblock.key = read_expression(parser);\n\t\t\t\tparser.allow_whitespace();\n\t\t\t\tparser.eat(')', true);\n\t\t\t\tparser.allow_whitespace();\n\t\t\t}\n\t\t}\n\n\t\tconst await_block_shorthand = type === 'AwaitBlock' && parser.eat('then');\n\t\tif (await_block_shorthand) {\n\t\t\tif (parser.match_regex(regex_whitespace_with_closing_curly_brace)) {\n\t\t\t\tparser.allow_whitespace();\n\t\t\t} else {\n\t\t\t\tparser.require_whitespace();\n\t\t\t\tblock.value = read_context(parser);\n\t\t\t\tparser.allow_whitespace();\n\t\t\t}\n\t\t}\n\n\t\tconst await_block_catch_shorthand = !await_block_shorthand && type === 'AwaitBlock' && parser.eat('catch');\n\t\tif (await_block_catch_shorthand) {\n\t\t\tif (parser.match_regex(regex_whitespace_with_closing_curly_brace)) {\n\t\t\t\tparser.allow_whitespace();\n\t\t\t} else {\n\t\t\t\tparser.require_whitespace();\n\t\t\t\tblock.error = read_context(parser);\n\t\t\t\tparser.allow_whitespace();\n\t\t\t}\n\t\t}\n\n\t\tparser.eat('}', true);\n\n\t\tparser.current().children.push(block);\n\t\tparser.stack.push(block);\n\n\t\tif (type === 'AwaitBlock') {\n\t\t\tlet child_block;\n\t\t\tif (await_block_shorthand) {\n\t\t\t\tblock.then.skip = false;\n\t\t\t\tchild_block = block.then;\n\t\t\t} else if (await_block_catch_shorthand) {\n\t\t\t\tblock.catch.skip = false;\n\t\t\t\tchild_block = block.catch;\n\t\t\t} else {\n\t\t\t\tblock.pending.skip = false;\n\t\t\t\tchild_block = block.pending;\n\t\t\t}\n\n\t\t\tchild_block.start = parser.index;\n\t\t\tparser.stack.push(child_block);\n\t\t}\n\t} else if (parser.eat('@html')) {\n\t\t// {@html content} tag\n\t\tparser.require_whitespace();\n\n\t\tconst expression = read_expression(parser);\n\n\t\tparser.allow_whitespace();\n\t\tparser.eat('}', true);\n\n\t\tparser.current().children.push({\n\t\t\tstart,\n\t\t\tend: parser.index,\n\t\t\ttype: 'RawMustacheTag',\n\t\t\texpression\n\t\t});\n\t} else if (parser.eat('@debug')) {\n\t\tlet identifiers;\n\n\t\t// Implies {@debug} which indicates \"debug all\"\n\t\tif (parser.read(regex_whitespace_with_closing_curly_brace)) {\n\t\t\tidentifiers = [];\n\t\t} else {\n\t\t\tconst expression = read_expression(parser);\n\n\t\t\tidentifiers = expression.type === 'SequenceExpression'\n\t\t\t\t? expression.expressions\n\t\t\t\t: [expression];\n\n\t\t\tidentifiers.forEach(node => {\n\t\t\t\tif (node.type !== 'Identifier') {\n\t\t\t\t\tparser.error(parser_errors.invalid_debug_args, node.start);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tparser.allow_whitespace();\n\t\t\tparser.eat('}', true);\n\t\t}\n\n\t\tparser.current().children.push({\n\t\t\tstart,\n\t\t\tend: parser.index,\n\t\t\ttype: 'DebugTag',\n\t\t\tidentifiers\n\t\t});\n\t} else if (parser.eat('@const')) {\n\t\t// {@const a = b}\n\t\tparser.require_whitespace();\n\n\t\tconst expression = read_expression(parser);\n\n\t\tif (!(expression.type === 'AssignmentExpression' && expression.operator === '=')) {\n\t\t\tparser.error({\n\t\t\t\tcode: 'invalid-const-args',\n\t\t\t\tmessage: '{@const ...} must be an assignment.'\n\t\t\t}, start);\n\t\t}\n\n\t\tparser.allow_whitespace();\n\t\tparser.eat('}', true);\n\n\t\tparser.current().children.push({\n\t\t\tstart,\n\t\t\tend: parser.index,\n\t\t\ttype: 'ConstTag',\n\t\t\texpression\n\t\t});\n\t} else {\n\t\tconst expression = read_expression(parser);\n\n\t\tparser.allow_whitespace();\n\t\tparser.eat('}', true);\n\n\t\tparser.current().children.push({\n\t\t\tstart,\n\t\t\tend: parser.index,\n\t\t\ttype: 'MustacheTag',\n\t\t\texpression\n\t\t});\n\t}\n}\n","import { decode_character_references } from '../utils/html';\nimport { Parser } from '../index';\n\nexport default function text(parser: Parser) {\n\tconst start = parser.index;\n\n\tlet data = '';\n\n\twhile (\n\t\tparser.index < parser.template.length &&\n\t\t!parser.match('<') &&\n\t\t!parser.match('{')\n\t) {\n\t\tdata += parser.template[parser.index++];\n\t}\n\n\tconst node = {\n\t\tstart,\n\t\tend: parser.index,\n\t\ttype: 'Text',\n\t\traw: data,\n\t\tdata: decode_character_references(data, false)\n\t};\n\n\tparser.current().children.push(node);\n}\n","import tag from './tag';\nimport mustache from './mustache';\nimport text from './text';\nimport { Parser } from '../index';\n\nexport default function fragment(parser: Parser) {\n\tif (parser.match('<')) {\n\t\treturn tag;\n\t}\n\n\tif (parser.match('{')) {\n\t\treturn mustache;\n\t}\n\n\treturn text;\n}\n","import { isIdentifierStart, isIdentifierChar } from 'acorn';\nimport full_char_code_at from './full_char_code_at';\nimport { regex_starts_with_underscore, regex_ends_with_underscore } from './patterns';\n\nexport const reserved = new Set([\n\t'arguments',\n\t'await',\n\t'break',\n\t'case',\n\t'catch',\n\t'class',\n\t'const',\n\t'continue',\n\t'debugger',\n\t'default',\n\t'delete',\n\t'do',\n\t'else',\n\t'enum',\n\t'eval',\n\t'export',\n\t'extends',\n\t'false',\n\t'finally',\n\t'for',\n\t'function',\n\t'if',\n\t'implements',\n\t'import',\n\t'in',\n\t'instanceof',\n\t'interface',\n\t'let',\n\t'new',\n\t'null',\n\t'package',\n\t'private',\n\t'protected',\n\t'public',\n\t'return',\n\t'static',\n\t'super',\n\t'switch',\n\t'this',\n\t'throw',\n\t'true',\n\t'try',\n\t'typeof',\n\t'var',\n\t'void',\n\t'while',\n\t'with',\n\t'yield'\n]);\n\nexport function is_valid(str: string): boolean {\n\tlet i = 0;\n\n\twhile (i < str.length) {\n\t\tconst code = full_char_code_at(str, i);\n\t\tif (!(i === 0 ? isIdentifierStart : isIdentifierChar)(code, true)) return false;\n\n\t\ti += code <= 0xffff ? 1 : 2;\n\t}\n\n\treturn true;\n}\n\nconst regex_non_standard_characters = /[^a-zA-Z0-9_]+/g;\nconst regex_starts_with_number = /^[0-9]/;\n\nexport function sanitize(name: string) {\n\treturn name\n\t\t.replace(regex_non_standard_characters, '_')\n\t\t.replace(regex_starts_with_underscore, '')\n\t\t.replace(regex_ends_with_underscore, '')\n\t\t.replace(regex_starts_with_number, '_$&');\n}\n","function getLocator(source, options) {\n if (options === void 0) { options = {}; }\n var offsetLine = options.offsetLine || 0;\n var offsetColumn = options.offsetColumn || 0;\n var originalLines = source.split('\\n');\n var start = 0;\n var lineRanges = originalLines.map(function (line, i) {\n var end = start + line.length + 1;\n var range = { start: start, end: end, line: i };\n start = end;\n return range;\n });\n var i = 0;\n function rangeContains(range, index) {\n return range.start <= index && index < range.end;\n }\n function getLocation(range, index) {\n return { line: offsetLine + range.line, column: offsetColumn + index - range.start, character: index };\n }\n function locate(search, startIndex) {\n if (typeof search === 'string') {\n search = source.indexOf(search, startIndex || 0);\n }\n var range = lineRanges[i];\n var d = search >= range.end ? 1 : -1;\n while (range) {\n if (rangeContains(range, search))\n return getLocation(range, search);\n i += d;\n range = lineRanges[i];\n }\n }\n ;\n return locate;\n}\nfunction locate(source, search, options) {\n if (typeof options === 'number') {\n throw new Error('locate takes a { startIndex, offsetLine, offsetColumn } object as the third argument');\n }\n return getLocator(source, options)(search, options && options.startIndex);\n}\n\nexport { getLocator, locate };","const regex_tabs = /^\\t+/;\n\nfunction tabs_to_spaces(str: string) {\n\treturn str.replace(regex_tabs, match => match.split('\\t').join(' '));\n}\n\nexport default function get_code_frame(\n\tsource: string,\n\tline: number,\n\tcolumn: number\n) {\n\tconst lines = source.split('\\n');\n\n\tconst frame_start = Math.max(0, line - 2);\n\tconst frame_end = Math.min(line + 3, lines.length);\n\n\tconst digits = String(frame_end + 1).length;\n\n\treturn lines\n\t\t.slice(frame_start, frame_end)\n\t\t.map((str, i) => {\n\t\t\tconst isErrorLine = frame_start + i === line;\n\t\t\tconst line_num = String(i + frame_start + 1).padStart(digits, ' ');\n\n\t\t\tif (isErrorLine) {\n\t\t\t\tconst indicator = ' '.repeat(digits + 2 + tabs_to_spaces(str.slice(0, column)).length) + '^';\n\t\t\t\treturn `${line_num}: ${tabs_to_spaces(str)}\\n${indicator}`;\n\t\t\t}\n\n\t\t\treturn `${line_num}: ${tabs_to_spaces(str)}`;\n\t\t})\n\t\t.join('\\n');\n}\n","import { locate } from 'locate-character';\nimport get_code_frame from './get_code_frame';\n\nclass CompileError extends Error {\n\tcode: string;\n\tstart: { line: number; column: number };\n\tend: { line: number; column: number };\n\tpos: number;\n\tfilename: string;\n\tframe: string;\n\n\ttoString() {\n\t\treturn `${this.message} (${this.start.line}:${this.start.column})\\n${this.frame}`;\n\t}\n}\n\nexport default function error(message: string, props: {\n\tname: string;\n\tcode: string;\n\tsource: string;\n\tfilename: string;\n\tstart: number;\n\tend?: number;\n}): never {\n\tconst error = new CompileError(message);\n\terror.name = props.name;\n\n\tconst start = locate(props.source, props.start, { offsetLine: 1 });\n\tconst end = locate(props.source, props.end || props.start, { offsetLine: 1 });\n\n\terror.code = props.code;\n\terror.start = start;\n\terror.end = end;\n\terror.pos = props.start;\n\terror.filename = props.filename;\n\n\terror.frame = get_code_frame(props.source, start.line - 1, start.column);\n\n\tthrow error;\n}\n","import { isIdentifierStart, isIdentifierChar } from 'acorn';\nimport fragment from './state/fragment';\nimport { regex_whitespace } from '../utils/patterns';\nimport { reserved } from '../utils/names';\nimport full_char_code_at from '../utils/full_char_code_at';\nimport { TemplateNode, Ast, ParserOptions, Fragment, Style, Script } from '../interfaces';\nimport error from '../utils/error';\nimport parser_errors from './errors';\n\ntype ParserState = (parser: Parser) => (ParserState | void);\n\ninterface LastAutoClosedTag {\n\ttag: string;\n\treason: string;\n\tdepth: number;\n}\n\nconst regex_position_indicator = / \\(\\d+:\\d+\\)$/;\n\nexport class Parser {\n\treadonly template: string;\n\treadonly filename?: string;\n\treadonly customElement: boolean;\n\treadonly css_mode: 'injected' | 'external' | 'none' | boolean;\n\n\tindex = 0;\n\tstack: TemplateNode[] = [];\n\n\thtml: Fragment;\n\tcss: Style[] = [];\n\tjs: Script[] = [];\n\tmeta_tags = {};\n\tlast_auto_closed_tag?: LastAutoClosedTag;\n\n\tconstructor(template: string, options: ParserOptions) {\n\t\tif (typeof template !== 'string') {\n\t\t\tthrow new TypeError('Template must be a string');\n\t\t}\n\n\t\tthis.template = template.trimRight();\n\t\tthis.filename = options.filename;\n\t\tthis.customElement = options.customElement;\n\t\tthis.css_mode = options.css;\n\n\t\tthis.html = {\n\t\t\tstart: null,\n\t\t\tend: null,\n\t\t\ttype: 'Fragment',\n\t\t\tchildren: []\n\t\t};\n\n\t\tthis.stack.push(this.html);\n\n\t\tlet state: ParserState = fragment;\n\n\t\twhile (this.index < this.template.length) {\n\t\t\tstate = state(this) || fragment;\n\t\t}\n\n\t\tif (this.stack.length > 1) {\n\t\t\tconst current = this.current();\n\n\t\t\tconst type = current.type === 'Element' ? `<${current.name}>` : 'Block';\n\t\t\tconst slug = current.type === 'Element' ? 'element' : 'block';\n\n\t\t\tthis.error({\n\t\t\t\tcode: `unclosed-${slug}`,\n\t\t\t\tmessage: `${type} was left open`\n\t\t\t}, current.start);\n\t\t}\n\n\t\tif (state !== fragment) {\n\t\t\tthis.error({\n\t\t\t\tcode: 'unexpected-eof',\n\t\t\t\tmessage: 'Unexpected end of input'\n\t\t\t});\n\t\t}\n\n\t\tif (this.html.children.length) {\n\t\t\tlet start = this.html.children[0].start;\n\t\t\twhile (regex_whitespace.test(template[start])) start += 1;\n\n\t\t\tlet end = this.html.children[this.html.children.length - 1].end;\n\t\t\twhile (regex_whitespace.test(template[end - 1])) end -= 1;\n\n\t\t\tthis.html.start = start;\n\t\t\tthis.html.end = end;\n\t\t} else {\n\t\t\tthis.html.start = this.html.end = null;\n\t\t}\n\t}\n\n\tcurrent() {\n\t\treturn this.stack[this.stack.length - 1];\n\t}\n\n\tacorn_error(err: any) {\n\t\tthis.error({\n\t\t\tcode: 'parse-error',\n\t\t\tmessage: err.message.replace(regex_position_indicator, '')\n\t\t}, err.pos);\n\t}\n\n\terror({ code, message }: { code: string; message: string }, index = this.index) {\n\t\terror(message, {\n\t\t\tname: 'ParseError',\n\t\t\tcode,\n\t\t\tsource: this.template,\n\t\t\tstart: index,\n\t\t\tfilename: this.filename\n\t\t});\n\t}\n\n\teat(str: string, required?: boolean, error?: { code: string, message: string }) {\n\t\tif (this.match(str)) {\n\t\t\tthis.index += str.length;\n\t\t\treturn true;\n\t\t}\n\n\t\tif (required) {\n\t\t\tthis.error(error ||\n\t\t\t\t(this.index === this.template.length\n\t\t\t\t\t? parser_errors.unexpected_eof_token(str)\n\t\t\t\t\t: parser_errors.unexpected_token(str))\n\t\t\t);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tmatch(str: string) {\n\t\treturn this.template.slice(this.index, this.index + str.length) === str;\n\t}\n\n\t/**\n\t * Match a regex at the current index\n\t * @param pattern Should have a ^ anchor at the start so the regex doesn't search past the beginning, resulting in worse performance\n\t */\n\tmatch_regex(pattern: RegExp) {\n\t\tconst match = pattern.exec(this.template.slice(this.index));\n\t\tif (!match || match.index !== 0) return null;\n\n\t\treturn match[0];\n\t}\n\n\tallow_whitespace() {\n\t\twhile (\n\t\t\tthis.index < this.template.length &&\n\t\t\tregex_whitespace.test(this.template[this.index])\n\t\t) {\n\t\t\tthis.index++;\n\t\t}\n\t}\n\n\t/**\n\t * Search for a regex starting at the current index and return the result if it matches\n\t * @param pattern Should have a ^ anchor at the start so the regex doesn't search past the beginning, resulting in worse performance\n\t */\n\tread(pattern: RegExp) {\n\t\tconst result = this.match_regex(pattern);\n\t\tif (result) this.index += result.length;\n\t\treturn result;\n\t}\n\n\tread_identifier(allow_reserved = false) {\n\t\tconst start = this.index;\n\n\t\tlet i = this.index;\n\n\t\tconst code = full_char_code_at(this.template, i);\n\t\tif (!isIdentifierStart(code, true)) return null;\n\n\t\ti += code <= 0xffff ? 1 : 2;\n\n\t\twhile (i < this.template.length) {\n\t\t\tconst code = full_char_code_at(this.template, i);\n\n\t\t\tif (!isIdentifierChar(code, true)) break;\n\t\t\ti += code <= 0xffff ? 1 : 2;\n\t\t}\n\n\t\tconst identifier = this.template.slice(this.index, this.index = i);\n\n\t\tif (!allow_reserved && reserved.has(identifier)) {\n\t\t\tthis.error({\n\t\t\t\tcode: 'unexpected-reserved-word',\n\t\t\t\tmessage: `'${identifier}' is a reserved word in JavaScript and cannot be used here`\n\t\t\t}, start);\n\t\t}\n\n\t\treturn identifier;\n\t}\n\n\tread_until(pattern: RegExp, error_message?: Parameters<Parser['error']>[0]) {\n\t\tif (this.index >= this.template.length) {\n\t\t\tthis.error(error_message || {\n\t\t\t\tcode: 'unexpected-eof',\n\t\t\t\tmessage: 'Unexpected end of input'\n\t\t\t});\n\t\t}\n\n\t\tconst start = this.index;\n\t\tconst match = pattern.exec(this.template.slice(start));\n\n\t\tif (match) {\n\t\t\tthis.index = start + match.index;\n\t\t\treturn this.template.slice(start, this.index);\n\t\t}\n\n\t\tthis.index = this.template.length;\n\t\treturn this.template.slice(start);\n\t}\n\n\trequire_whitespace() {\n\t\tif (!regex_whitespace.test(this.template[this.index])) {\n\t\t\tthis.error({\n\t\t\t\tcode: 'missing-whitespace',\n\t\t\t\tmessage: 'Expected whitespace'\n\t\t\t});\n\t\t}\n\n\t\tthis.allow_whitespace();\n\t}\n}\n\nexport default function parse(\n\ttemplate: string,\n\toptions: ParserOptions = {}\n): Ast {\n\tconst parser = new Parser(template, options);\n\n\t// TODO we may want to allow multiple <style> tags —\n\t// one scoped, one global. for now, only allow one\n\tif (parser.css.length > 1) {\n\t\tparser.error(parser_errors.duplicate_style, parser.css[1].start);\n\t}\n\n\tconst instance_scripts = parser.js.filter(script => script.context === 'default');\n\tconst module_scripts = parser.js.filter(script => script.context === 'module');\n\n\tif (instance_scripts.length > 1) {\n\t\tparser.error(parser_errors.invalid_script_instance, instance_scripts[1].start);\n\t}\n\n\tif (module_scripts.length > 1) {\n\t\tparser.error(parser_errors.invalid_script_module, module_scripts[1].start);\n\t}\n\n\treturn {\n\t\thtml: parser.html,\n\t\tcss: parser.css[0],\n\t\tinstance: instance_scripts[0],\n\t\tmodule: module_scripts[0]\n\t};\n}\n","import { Node } from 'estree';\n\nexport function is_head(node: Node) {\n\treturn node && node.type === 'MemberExpression' && node.object['name'] === '@_document' && node.property['name'] === 'head';\n}\n","import Renderer, { BindingGroup } from './Renderer';\nimport Wrapper from './wrappers/shared/Wrapper';\nimport { b, x } from 'code-red';\nimport { Node, Identifier, ArrayPattern } from 'estree';\nimport { is_head } from './wrappers/shared/is_head';\nimport { regex_double_quotes } from '../../utils/patterns';\n\nexport interface Bindings {\n\tobject: Identifier;\n\tproperty: Identifier;\n\tsnippet: Node;\n\tstore: string;\n\tmodifier: (node: Node) => Node;\n}\n\nexport interface BlockOptions {\n\tparent?: Block;\n\tname: Identifier;\n\ttype: string;\n\trenderer?: Renderer;\n\tcomment?: string;\n\tkey?: Identifier;\n\tbindings?: Map<string, Bindings>;\n\tdependencies?: Set<string>;\n}\n\nexport default class Block {\n\tparent?: Block;\n\trenderer: Renderer;\n\tname: Identifier;\n\ttype: string;\n\tcomment?: string;\n\n\twrappers: Wrapper[];\n\n\tkey: Identifier;\n\tfirst: Identifier;\n\n\tdependencies: Set<string> = new Set();\n\n\tbindings: Map<string, Bindings>;\n\tbinding_group_initialised: Set<string> = new Set();\n\tbinding_groups: Set<BindingGroup> = new Set();\n\n\tchunks: {\n\t\tdeclarations: Array<Node | Node[]>;\n\t\tinit: Array<Node | Node[]>;\n\t\tcreate: Array<Node | Node[]>;\n\t\tclaim: Array<Node | Node[]>;\n\t\thydrate: Array<Node | Node[]>;\n\t\tmount: Array<Node | Node[]>;\n\t\tmeasure: Array<Node | Node[]>;\n\t\trestore_measurements: Array<Node | Node[]>;\n\t\tfix: Array<Node | Node[]>;\n\t\tanimate: Array<Node | Node[]>;\n\t\tintro: Array<Node | Node[]>;\n\t\tupdate: Array<Node | Node[]>;\n\t\toutro: Array<Node | Node[]>;\n\t\tdestroy: Array<Node | Node[]>;\n\t};\n\n\tevent_listeners: Node[] = [];\n\n\tmaintain_context: boolean;\n\thas_animation: boolean;\n\thas_intros: boolean;\n\thas_outros: boolean;\n\thas_intro_method: boolean; // could have the method without the transition, due to siblings\n\thas_outro_method: boolean;\n\toutros: number;\n\n\taliases: Map<string, Identifier>;\n\tvariables: Map<string, { id: Identifier; init?: Node }> = new Map();\n\tget_unique_name: (name: string) => Identifier;\n\n\thas_update_method = false;\n\tautofocus?: { element_var: string, condition_expression?: any };\n\n\tconstructor(options: BlockOptions) {\n\t\tthis.parent = options.parent;\n\t\tthis.renderer = options.renderer;\n\t\tthis.name = options.name;\n\t\tthis.type = options.type;\n\t\tthis.comment = options.comment;\n\n\t\tthis.wrappers = [];\n\n\t\t// for keyed each blocks\n\t\tthis.key = options.key;\n\t\tthis.first = null;\n\n\t\tthis.bindings = options.bindings;\n\n\t\tthis.chunks = {\n\t\t\tdeclarations: [],\n\t\t\tinit: [],\n\t\t\tcreate: [],\n\t\t\tclaim: [],\n\t\t\thydrate: [],\n\t\t\tmount: [],\n\t\t\tmeasure: [],\n\t\t\trestore_measurements: [],\n\t\t\tfix: [],\n\t\t\tanimate: [],\n\t\t\tintro: [],\n\t\t\tupdate: [],\n\t\t\toutro: [],\n\t\t\tdestroy: []\n\t\t};\n\n\t\tthis.has_animation = false;\n\t\tthis.has_intro_method = false; // a block could have an intro method but not intro transitions, e.g. if a sibling block has intros\n\t\tthis.has_outro_method = false;\n\t\tthis.outros = 0;\n\n\t\tthis.get_unique_name = this.renderer.component.get_unique_name_maker();\n\n\t\tthis.aliases = new Map();\n\t\tif (this.key) this.aliases.set('key', this.get_unique_name('key'));\n\t}\n\n\tassign_variable_names() {\n\t\tconst seen: Set<string> = new Set();\n\t\tconst dupes: Set<string> = new Set();\n\n\t\tlet i = this.wrappers.length;\n\n\t\twhile (i--) {\n\t\t\tconst wrapper = this.wrappers[i];\n\n\t\t\tif (!wrapper.var) continue;\n\n\t\t\tif (seen.has(wrapper.var.name)) {\n\t\t\t\tdupes.add(wrapper.var.name);\n\t\t\t}\n\n\t\t\tseen.add(wrapper.var.name);\n\t\t}\n\n\t\tconst counts = new Map();\n\t\ti = this.wrappers.length;\n\n\t\twhile (i--) {\n\t\t\tconst wrapper = this.wrappers[i];\n\n\t\t\tif (!wrapper.var) continue;\n\n\t\t\tlet suffix = '';\n\t\t\tif (dupes.has(wrapper.var.name)) {\n\t\t\t\tconst i = counts.get(wrapper.var.name) || 0;\n\t\t\t\tcounts.set(wrapper.var.name, i + 1);\n\t\t\t\tsuffix = i;\n\t\t\t}\n\t\t\twrapper.var.name = this.get_unique_name(wrapper.var.name + suffix).name;\n\t\t}\n\t}\n\n\tadd_dependencies(dependencies: Set<string>) {\n\t\tdependencies.forEach(dependency => {\n\t\t\tthis.dependencies.add(dependency);\n\t\t});\n\n\t\tthis.has_update_method = true;\n\t\tif (this.parent) {\n\t\t\tthis.parent.add_dependencies(dependencies);\n\t\t}\n\t}\n\n\tadd_element(\n\t\tid: Identifier,\n\t\trender_statement: Node,\n\t\tclaim_statement: Node,\n\t\tparent_node: Node,\n\t\tno_detach?: boolean\n\t) {\n\t\tthis.add_variable(id);\n\t\tthis.chunks.create.push(b`${id} = ${render_statement};`);\n\n\t\tif (this.renderer.options.hydratable) {\n\t\t\tthis.chunks.claim.push(b`${id} = ${claim_statement || render_statement};`);\n\t\t}\n\n\t\tif (parent_node) {\n\t\t\tthis.chunks.mount.push(b`@append(${parent_node}, ${id});`);\n\t\t\tif (is_head(parent_node) && !no_detach) this.chunks.destroy.push(b`@detach(${id});`);\n\t\t} else {\n\t\t\tthis.chunks.mount.push(b`@insert(#target, ${id}, #anchor);`);\n\t\t\tif (!no_detach) this.chunks.destroy.push(b`if (detaching) @detach(${id});`);\n\t\t}\n\t}\n\n\tadd_intro(local?: boolean) {\n\t\tthis.has_intros = this.has_intro_method = true;\n\t\tif (!local && this.parent) this.parent.add_intro();\n\t}\n\n\tadd_outro(local?: boolean) {\n\t\tthis.has_outros = this.has_outro_method = true;\n\t\tthis.outros += 1;\n\t\tif (!local && this.parent) this.parent.add_outro();\n\t}\n\n\tadd_animation() {\n\t\tthis.has_animation = true;\n\t}\n\n\tadd_variable(id: Identifier, init?: Node) {\n\t\tif (this.variables.has(id.name)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Variable '${id.name}' already initialised with a different value`\n\t\t\t);\n\t\t}\n\n\t\tthis.variables.set(id.name, { id, init });\n\t}\n\n\talias(name: string) {\n\t\tif (!this.aliases.has(name)) {\n\t\t\tthis.aliases.set(name, this.get_unique_name(name));\n\t\t}\n\n\t\treturn this.aliases.get(name);\n\t}\n\n\tchild(options: BlockOptions) {\n\t\treturn new Block(Object.assign({}, this, { key: null }, options, { parent: this }));\n\t}\n\n\tget_contents(key?: any) {\n\t\tconst { dev } = this.renderer.options;\n\n\t\tif (this.has_outros) {\n\t\t\tthis.add_variable({ type: 'Identifier', name: '#current' });\n\n\t\t\tif (this.chunks.intro.length > 0) {\n\t\t\t\tthis.chunks.intro.push(b`#current = true;`);\n\t\t\t\tthis.chunks.mount.push(b`#current = true;`);\n\t\t\t}\n\n\t\t\tif (this.chunks.outro.length > 0) {\n\t\t\t\tthis.chunks.outro.push(b`#current = false;`);\n\t\t\t}\n\t\t}\n\n\t\tif (this.autofocus) {\n\t\t\tif (this.autofocus.condition_expression) {\n\t\t\t\tthis.chunks.mount.push(b`if (${this.autofocus.condition_expression}) ${this.autofocus.element_var}.focus();`);\n\t\t\t} else {\n\t\t\t\tthis.chunks.mount.push(b`${this.autofocus.element_var}.focus();`);\n\t\t\t}\n\t\t}\n\n\t\tthis.render_binding_groups();\n\t\tthis.render_listeners();\n\n\t\tconst properties: Record<string, any> = {};\n\n\t\tconst noop = x`@noop`;\n\n\t\tproperties.key = key;\n\n\t\tif (this.first) {\n\t\t\tproperties.first = x`null`;\n\t\t\tthis.chunks.hydrate.push(b`this.first = ${this.first};`);\n\t\t}\n\n\t\tif (this.chunks.create.length === 0 && this.chunks.hydrate.length === 0) {\n\t\t\tproperties.create = noop;\n\t\t} else {\n\t\t\tconst hydrate = this.chunks.hydrate.length > 0 && (\n\t\t\t\tthis.renderer.options.hydratable\n\t\t\t\t\t? b`this.h();`\n\t\t\t\t\t: this.chunks.hydrate\n\t\t\t);\n\n\t\t\tproperties.create = x`function #create() {\n\t\t\t\t${this.chunks.create}\n\t\t\t\t${hydrate}\n\t\t\t}`;\n\t\t}\n\n\t\tif (this.renderer.options.hydratable || this.chunks.claim.length > 0) {\n\t\t\tif (this.chunks.claim.length === 0 && this.chunks.hydrate.length === 0) {\n\t\t\t\tproperties.claim = noop;\n\t\t\t} else {\n\t\t\t\tproperties.claim = x`function #claim(#nodes) {\n\t\t\t\t\t${this.chunks.claim}\n\t\t\t\t\t${this.renderer.options.hydratable && this.chunks.hydrate.length > 0 && b`this.h();`}\n\t\t\t\t}`;\n\t\t\t}\n\t\t}\n\n\t\tif (this.renderer.options.hydratable && this.chunks.hydrate.length > 0) {\n\t\t\tproperties.hydrate = x`function #hydrate() {\n\t\t\t\t${this.chunks.hydrate}\n\t\t\t}`;\n\t\t}\n\n\t\tif (this.chunks.mount.length === 0) {\n\t\t\tproperties.mount = noop;\n\t\t} else if (this.event_listeners.length === 0) {\n\t\t\tproperties.mount = x`function #mount(#target, #anchor) {\n\t\t\t\t${this.chunks.mount}\n\t\t\t}`;\n\t\t} else {\n\t\t\tproperties.mount = x`function #mount(#target, #anchor) {\n\t\t\t\t${this.chunks.mount}\n\t\t\t}`;\n\t\t}\n\n\t\tif (this.has_update_method || this.maintain_context) {\n\t\t\tif (this.chunks.update.length === 0 && !this.maintain_context) {\n\t\t\t\tproperties.update = noop;\n\t\t\t} else {\n\t\t\t\tconst ctx = this.maintain_context ? x`#new_ctx` : x`#ctx`;\n\n\t\t\t\tlet dirty: Identifier | ArrayPattern = { type: 'Identifier', name: '#dirty' };\n\t\t\t\tif (!this.renderer.context_overflow && !this.parent) {\n\t\t\t\t\tdirty = { type: 'ArrayPattern', elements: [dirty] };\n\t\t\t\t}\n\n\t\t\t\tproperties.update = x`function #update(${ctx}, ${dirty}) {\n\t\t\t\t\t${this.maintain_context && b`#ctx = ${ctx};`}\n\t\t\t\t\t${this.chunks.update}\n\t\t\t\t}`;\n\t\t\t}\n\t\t}\n\n\t\tif (this.has_animation) {\n\t\t\tproperties.measure = x`function #measure() {\n\t\t\t\t${this.chunks.measure}\n\t\t\t}`;\n\n\t\t\tif (this.chunks.restore_measurements.length) {\n\t\t\t\tproperties.restore_measurements = x`function #restore_measurements(#measurement) {\n\t\t\t\t\t${this.chunks.restore_measurements}\n\t\t\t\t}`;\n\t\t\t}\n\n\t\t\tproperties.fix = x`function #fix() {\n\t\t\t\t${this.chunks.fix}\n\t\t\t}`;\n\n\t\t\tproperties.animate = x`function #animate() {\n\t\t\t\t${this.chunks.animate}\n\t\t\t}`;\n\t\t}\n\n\t\tif (this.has_intro_method || this.has_outro_method) {\n\t\t\tif (this.chunks.intro.length === 0) {\n\t\t\t\tproperties.intro = noop;\n\t\t\t} else {\n\t\t\t\tproperties.intro = x`function #intro(#local) {\n\t\t\t\t\t${this.has_outros && b`if (#current) return;`}\n\t\t\t\t\t${this.chunks.intro}\n\t\t\t\t}`;\n\t\t\t}\n\n\t\t\tif (this.chunks.outro.length === 0) {\n\t\t\t\tproperties.outro = noop;\n\t\t\t} else {\n\t\t\t\tproperties.outro = x`function #outro(#local) {\n\t\t\t\t\t${this.chunks.outro}\n\t\t\t\t}`;\n\t\t\t}\n\t\t}\n\n\t\tif (this.chunks.destroy.length === 0) {\n\t\t\tproperties.destroy = noop;\n\t\t} else {\n\t\t\tproperties.destroy = x`function #destroy(detaching) {\n\t\t\t\t${this.chunks.destroy}\n\t\t\t}`;\n\t\t}\n\n\t\tif (!this.renderer.component.compile_options.dev) {\n\t\t\t// allow shorthand names\n\t\t\tfor (const name in properties) {\n\t\t\t\tconst property = properties[name];\n\t\t\t\tif (property) property.id = null;\n\t\t\t}\n\t\t}\n\n\t\tconst return_value: any = x`{\n\t\t\tkey: ${properties.key},\n\t\t\tfirst: ${properties.first},\n\t\t\tc: ${properties.create},\n\t\t\tl: ${properties.claim},\n\t\t\th: ${properties.hydrate},\n\t\t\tm: ${properties.mount},\n\t\t\tp: ${properties.update},\n\t\t\tr: ${properties.measure},\n\t\t\ts: ${properties.restore_measurements},\n\t\t\tf: ${properties.fix},\n\t\t\ta: ${properties.animate},\n\t\t\ti: ${properties.intro},\n\t\t\to: ${properties.outro},\n\t\t\td: ${properties.destroy}\n\t\t}`;\n\n\t\tconst block = dev && this.get_unique_name('block');\n\n\t\tconst body = b`\n\t\t\t${this.chunks.declarations}\n\n\t\t\t${Array.from(this.variables.values()).map(({ id, init }) => {\n\t\t\t\treturn init\n\t\t\t\t\t? b`let ${id} = ${init}`\n\t\t\t\t\t: b`let ${id}`;\n\t\t\t})}\n\n\t\t\t${this.chunks.init}\n\n\t\t\t${dev\n\t\t\t\t? b`\n\t\t\t\t\tconst ${block} = ${return_value};\n\t\t\t\t\t@dispatch_dev(\"SvelteRegisterBlock\", {\n\t\t\t\t\t\tblock: ${block},\n\t\t\t\t\t\tid: ${this.name || 'create_fragment'}.name,\n\t\t\t\t\t\ttype: \"${this.type}\",\n\t\t\t\t\t\tsource: \"${this.comment ? this.comment.replace(regex_double_quotes, '\\\\\"') : ''}\",\n\t\t\t\t\t\tctx: #ctx\n\t\t\t\t\t});\n\t\t\t\t\treturn ${block};`\n\t\t\t\t: b`\n\t\t\t\t\treturn ${return_value};`\n\t\t\t}\n\t\t`;\n\n\t\treturn body;\n\t}\n\n\thas_content(): boolean {\n\t\treturn !!this.first ||\n\t\t\tthis.event_listeners.length > 0 ||\n\t\t\tthis.chunks.intro.length > 0 ||\n\t\t\tthis.chunks.outro.length > 0 ||\n\t\t\tthis.chunks.create.length > 0 ||\n\t\t\tthis.chunks.hydrate.length > 0 ||\n\t\t\tthis.chunks.claim.length > 0 ||\n\t\t\tthis.chunks.mount.length > 0 ||\n\t\t\tthis.chunks.update.length > 0 ||\n\t\t\tthis.chunks.destroy.length > 0 ||\n\t\t\tthis.has_animation;\n\t}\n\n\trender() {\n\t\tconst key = this.key && this.get_unique_name('key');\n\n\t\tconst args: any[] = [x`#ctx`];\n\t\tif (key) args.unshift(key);\n\n\t\tconst fn = b`function ${this.name}(${args}) {\n\t\t\t${this.get_contents(key)}\n\t\t}`;\n\n\t\treturn this.comment\n\t\t\t? b`\n\t\t\t\t// ${this.comment}\n\t\t\t\t${fn}`\n\t\t\t: fn;\n\t}\n\n\trender_listeners(chunk: string = '') {\n\t\tif (this.event_listeners.length > 0) {\n\t\t\tthis.add_variable({ type: 'Identifier', name: '#mounted' });\n\t\t\tthis.chunks.destroy.push(b`#mounted = false`);\n\n\t\t\tconst dispose: Identifier = {\n\t\t\t\ttype: 'Identifier',\n\t\t\t\tname: `#dispose${chunk}`\n\t\t\t};\n\n\t\t\tthis.add_variable(dispose);\n\n\t\t\tif (this.event_listeners.length === 1) {\n\t\t\t\tthis.chunks.mount.push(\n\t\t\t\t\tb`\n\t\t\t\t\t\tif (!#mounted) {\n\t\t\t\t\t\t\t${dispose} = ${this.event_listeners[0]};\n\t\t\t\t\t\t\t#mounted = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t`\n\t\t\t\t);\n\n\t\t\t\tthis.chunks.destroy.push(\n\t\t\t\t\tb`${dispose}();`\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.chunks.mount.push(b`\n\t\t\t\t\tif (!#mounted) {\n\t\t\t\t\t\t${dispose} = [\n\t\t\t\t\t\t\t${this.event_listeners}\n\t\t\t\t\t\t];\n\t\t\t\t\t\t#mounted = true;\n\t\t\t\t\t}\n\t\t\t\t`);\n\n\t\t\t\tthis.chunks.destroy.push(\n\t\t\t\t\tb`@run_all(${dispose});`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\trender_binding_groups() {\n\t\tfor (const binding_group of this.binding_groups) {\n\t\t\tbinding_group.render();\n\t\t}\n\t}\n}\n","import Renderer from '../../Renderer';\nimport Block from '../../Block';\nimport { x } from 'code-red';\nimport { TemplateNode } from '../../../../interfaces';\nimport { Identifier } from 'estree';\n\nexport default class Wrapper {\n\trenderer: Renderer;\n\tparent: Wrapper;\n\tnode: TemplateNode;\n\n\tprev: Wrapper | null;\n\tnext: Wrapper | null;\n\n\tvar: Identifier;\n\tcan_use_innerhtml: boolean;\n\tis_static_content: boolean;\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: TemplateNode\n\t) {\n\t\tthis.node = node;\n\n\t\t// make these non-enumerable so that they can be logged sensibly\n\t\t// (TODO in dev only?)\n\t\tObject.defineProperties(this, {\n\t\t\trenderer: {\n\t\t\t\tvalue: renderer\n\t\t\t},\n\t\t\tparent: {\n\t\t\t\tvalue: parent\n\t\t\t}\n\t\t});\n\n\t\tthis.can_use_innerhtml = !renderer.options.hydratable;\n\t\tthis.is_static_content = !renderer.options.hydratable;\n\n\t\tblock.wrappers.push(this);\n\t}\n\n\tcannot_use_innerhtml() {\n\t\tthis.can_use_innerhtml = false;\n\t\tif (this.parent) this.parent.cannot_use_innerhtml();\n\t}\n\n\tnot_static_content() {\n\t\tthis.is_static_content = false;\n\t\tif (this.parent) this.parent.not_static_content();\n\t}\n\n\tget_or_create_anchor(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\t// TODO use this in EachBlock and IfBlock — tricky because\n\t\t// children need to be created first\n\t\tconst needs_anchor = this.next ? !this.next.is_dom_node() : !parent_node || !this.parent.is_dom_node();\n\t\tconst anchor = needs_anchor\n\t\t\t? block.get_unique_name(`${this.var.name}_anchor`)\n\t\t\t: (this.next && this.next.var) || { type: 'Identifier', name: 'null' };\n\n\t\tif (needs_anchor) {\n\t\t\tblock.add_element(\n\t\t\t\tanchor,\n\t\t\t\tx`@empty()`,\n\t\t\t\tparent_nodes && x`@empty()`,\n\t\t\t\tparent_node as Identifier\n\t\t\t);\n\t\t}\n\n\t\treturn anchor;\n\t}\n\n\tget_update_mount_node(anchor: Identifier): Identifier {\n\t\treturn ((this.parent && this.parent.is_dom_node())\n\t\t\t? this.parent.var\n\t\t\t: x`${anchor}.parentNode`) as Identifier;\n\t}\n\n\tis_dom_node() {\n\t\treturn (\n\t\t\tthis.node.type === 'Element' ||\n\t\t\tthis.node.type === 'Text' ||\n\t\t\tthis.node.type === 'MustacheTag'\n\t\t);\n\t}\n\n\trender(_block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\n\t\tthrow Error('Wrapper class is not renderable');\n\t}\n}\n","import Component from '../../../Component';\nimport { INode } from '../../../nodes/interfaces';\nimport { regex_whitespace_characters } from '../../../../utils/patterns';\n\n\nexport default function create_debugging_comment(\n\tnode: INode,\n\tcomponent: Component\n) {\n\tconst { locate, source } = component;\n\n\tlet c = node.start;\n\tif (node.type === 'ElseBlock') {\n\t\twhile (source[c - 1] !== '{') c -= 1;\n\t\twhile (source[c - 1] === '{') c -= 1;\n\t}\n\n\tlet d: number;\n\n\tif (node.type === 'InlineComponent' || node.type === 'Element' || node.type === 'SlotTemplate') {\n\t\tif (node.children.length) {\n\t\t\td = node.children[0].start;\n\t\t\twhile (source[d - 1] !== '>') d -= 1;\n\t\t} else {\n\t\t\td = node.start;\n\t\t\twhile (source[d] !== '>') d += 1;\n\t\t\td += 1;\n\t\t}\n\t} else if (node.type === 'Text' || node.type === 'Comment') {\n\t\td = node.end;\n\t} else {\n\t\t// @ts-ignore\n\t\td = node.expression ? node.expression.node.end : c;\n\t\twhile (source[d] !== '}' && d <= source.length) d += 1;\n\t\twhile (source[d] === '}') d += 1;\n\t}\n\n\tconst start = locate(c);\n\tconst loc = `(${start.line}:${start.column})`;\n\n\treturn `${loc} ${source.slice(c, d)}`.replace(regex_whitespace_characters, ' ');\n}\n","import Attribute from '../Attribute';\nimport Component from '../../Component';\nimport { INode } from '../interfaces';\nimport Text from '../Text';\nimport { TemplateNode } from '../../../interfaces';\n\nexport default class Node {\n\treadonly start: number;\n\treadonly end: number;\n\treadonly component: Component;\n\treadonly parent: INode;\n\treadonly type: string;\n\n\tprev?: INode;\n\tnext?: INode;\n\n\tcan_use_innerhtml: boolean;\n\tvar: string;\n\tattributes: Attribute[];\n\n\tconstructor(component: Component, parent: Node, _scope, info: TemplateNode) {\n\t\tthis.start = info.start;\n\t\tthis.end = info.end;\n\t\tthis.type = info.type;\n\n\t\t// this makes properties non-enumerable, which makes logging\n\t\t// bearable. might have a performance cost. TODO remove in prod?\n\t\tObject.defineProperties(this, {\n\t\t\tcomponent: {\n\t\t\t\tvalue: component\n\t\t\t},\n\t\t\tparent: {\n\t\t\t\tvalue: parent\n\t\t\t}\n\t\t});\n\t}\n\n\tcannot_use_innerhtml() {\n\t\tif (this.can_use_innerhtml !== false) {\n\t\t\tthis.can_use_innerhtml = false;\n\t\t\tif (this.parent) this.parent.cannot_use_innerhtml();\n\t\t}\n\t}\n\n\tfind_nearest(selector: RegExp) {\n\t\tif (selector.test(this.type)) return this;\n\t\tif (this.parent) return this.parent.find_nearest(selector);\n\t}\n\n\tget_static_attribute_value(name: string) {\n\t\tconst attribute = this.attributes && this.attributes.find(\n\t\t\t(attr: Attribute) => attr.type === 'Attribute' && attr.name.toLowerCase() === name\n\t\t);\n\n\t\tif (!attribute) return null;\n\n\t\tif (attribute.is_true) return true;\n\t\tif (attribute.chunks.length === 0) return '';\n\n\t\tif (attribute.chunks.length === 1 && attribute.chunks[0].type === 'Text') {\n\t\t\treturn (attribute.chunks[0] as Text).data;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\thas_ancestor(type: string) {\n\t\treturn this.parent ?\n\t\t\tthis.parent.type === type || this.parent.has_ancestor(type) :\n\t\t\tfalse;\n\t}\n}\n","// All compiler warnings should be listed and accessed from here\n\nimport { ARIAPropertyDefinition } from 'aria-query';\n\n/**\n * @internal\n */\nexport default {\n\tcustom_element_no_tag: {\n\t\tcode: 'custom-element-no-tag',\n\t\tmessage: 'No custom element \\'tag\\' option was specified. To automatically register a custom element, specify a name with a hyphen in it, e.g. <svelte:options tag=\"my-thing\"/>. To hide this warning, use <svelte:options tag={null}/>'\n\t},\n\tunused_export_let: (component: string, property: string) => ({\n\t\tcode: 'unused-export-let',\n\t\tmessage: `${component} has unused export property '${property}'. If it is for external reference only, please consider using \\`export const ${property}\\``\n\t}),\n\tmodule_script_reactive_declaration: {\n\t\tcode: 'module-script-reactive-declaration',\n\t\tmessage: '$: has no effect in a module script'\n\t},\n\tnon_top_level_reactive_declaration: {\n\t\tcode: 'non-top-level-reactive-declaration',\n\t\tmessage: '$: has no effect outside of the top-level'\n\t},\n\tmodule_script_variable_reactive_declaration: (names: string[]) => ({\n\t\tcode: 'module-script-reactive-declaration',\n\t\tmessage: `${names.map(name => `\"${name}\"`).join(', ')} ${names.length > 1 ? 'are' : 'is'} declared in a module script and will not be reactive`\n\t}),\n\tmissing_declaration: (name: string, has_script: boolean) => ({\n\t\tcode: 'missing-declaration',\n\t\tmessage: `'${name}' is not defined` + (has_script ? '' : `. Consider adding a <script> block with 'export let ${name}' to declare a prop`)\n\t}),\n\tmissing_custom_element_compile_options: {\n\t\tcode: 'missing-custom-element-compile-options',\n\t\tmessage: \"The 'tag' option is used when generating a custom element. Did you forget the 'customElement: true' compile option?\"\n\t},\n\tcss_unused_selector: (selector: string) => ({\n\t\tcode: 'css-unused-selector',\n\t\tmessage: `Unused CSS selector \"${selector}\"`\n\t}),\n\tempty_block: {\n\t\tcode: 'empty-block',\n\t\tmessage: 'Empty block'\n\t},\n\treactive_component: (name: string) => ({\n\t\tcode: 'reactive-component',\n\t\tmessage: `<${name}/> will not be reactive if ${name} changes. Use <svelte:component this={${name}}/> if you want this reactivity.`\n\t}),\n\tcomponent_name_lowercase: (name: string) => ({\n\t\tcode: 'component-name-lowercase',\n\t\tmessage: `<${name}> will be treated as an HTML element unless it begins with a capital letter`\n\t}),\n\tavoid_is: {\n\t\tcode: 'avoid-is',\n\t\tmessage: 'The \\'is\\' attribute is not supported cross-browser and should be avoided'\n\t},\n\tinvalid_html_attribute: (name: string, suggestion: string) => ({\n\t\tcode: 'invalid-html-attribute',\n\t\tmessage: `'${name}' is not a valid HTML attribute. Did you mean '${suggestion}'?`\n\t}),\n\ta11y_aria_attributes: (name: string) => ({\n\t\tcode: 'a11y-aria-attributes',\n\t\tmessage: `A11y: <${name}> should not have aria-* attributes`\n\t}),\n\ta11y_incorrect_attribute_type: (schema: ARIAPropertyDefinition, attribute: string) => {\n\t\tlet message;\n\t\tswitch (schema.type) {\n\t\t\tcase 'boolean':\n\t\t\t\tmessage = `The value of '${attribute}' must be exactly one of true or false`;\n\t\t\t\tbreak;\n\t\t\tcase 'id':\n\t\t\t\tmessage = `The value of '${attribute}' must be a string that represents a DOM element ID`;\n\t\t\t\tbreak;\n\t\t\tcase 'idlist':\n\t\t\t\tmessage = `The value of '${attribute}' must be a space-separated list of strings that represent DOM element IDs`;\n\t\t\t\tbreak;\n\t\t\tcase 'tristate':\n\t\t\t\tmessage = `The value of '${attribute}' must be exactly one of true, false, or mixed`;\n\t\t\t\tbreak;\n\t\t\tcase 'token':\n\t\t\t\tmessage = `The value of '${attribute}' must be exactly one of ${(schema.values || []).join(', ')}`;\n\t\t\t\tbreak;\n\t\t\tcase 'tokenlist':\n\t\t\t\tmessage = `The value of '${attribute}' must be a space-separated list of one or more of ${(schema.values || []).join(', ')}`;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tmessage = `The value of '${attribute}' must be of type ${schema.type}`;\n\t\t}\n\t\treturn {\n\t\t\tcode: 'a11y-incorrect-aria-attribute-type',\n\t\t\tmessage: `A11y: ${message}`\n\t\t};\n\t},\n\ta11y_unknown_aria_attribute: (attribute: string, suggestion?: string) => ({\n\t\tcode: 'a11y-unknown-aria-attribute',\n\t\tmessage: `A11y: Unknown aria attribute 'aria-${attribute}'` + (suggestion ? ` (did you mean '${suggestion}'?)` : '')\n\t}),\n\ta11y_hidden: (name: string) => ({\n\t\tcode: 'a11y-hidden',\n\t\tmessage: `A11y: <${name}> element should not be hidden`\n\t}),\n\ta11y_misplaced_role: (name: string) => ({\n\t\tcode: 'a11y-misplaced-role',\n\t\tmessage: `A11y: <${name}> should not have role attribute`\n\t}),\n\ta11y_unknown_role: (role: string | boolean, suggestion?: string) => ({\n\t\tcode: 'a11y-unknown-role',\n\t\tmessage: `A11y: Unknown role '${role}'` + (suggestion ? ` (did you mean '${suggestion}'?)` : '')\n\t}),\n\ta11y_no_abstract_role: (role: string | boolean) => ({\n\t\tcode: 'a11y-no-abstract-role',\n\t\tmessage: `A11y: Abstract role '${role}' is forbidden`\n\t}),\n\ta11y_no_redundant_roles: (role: string | boolean) => ({\n\t\tcode: 'a11y-no-redundant-roles',\n\t\tmessage: `A11y: Redundant role '${role}'`\n\t}),\n\ta11y_no_interactive_element_to_noninteractive_role: (role: string | boolean, element: string) => ({\n\t\tcode: 'a11y-no-interactive-element-to-noninteractive-role',\n\t\tmessage: `A11y: <${element}> cannot have role '${role}'`\n\t}),\n\ta11y_role_has_required_aria_props: (role: string, props: string[]) => ({\n\t\tcode: 'a11y-role-has-required-aria-props',\n\t\tmessage: `A11y: Elements with the ARIA role \"${role}\" must have the following attributes defined: ${props.map(name => `\"${name}\"`).join(', ')}`\n\t}),\n a11y_role_supports_aria_props: (attribute: string, role: string, is_implicit: boolean, name: string) => {\n let message = `The attribute '${attribute}' is not supported by the role '${role}'.`;\n if (is_implicit) {\n message += ` This role is implicit on the element <${name}>.`;\n }\n\n return {\n code: 'a11y-role-supports-aria-props',\n message: `A11y: ${message}`\n };\n },\n\ta11y_accesskey: {\n\t\tcode: 'a11y-accesskey',\n\t\tmessage: 'A11y: Avoid using accesskey'\n\t},\n\ta11y_autofocus: {\n\t\tcode: 'a11y-autofocus',\n\t\tmessage: 'A11y: Avoid using autofocus'\n\t},\n\ta11y_misplaced_scope: {\n\t\tcode: 'a11y-misplaced-scope',\n\t\tmessage: 'A11y: The scope attribute should only be used with <th> elements'\n\t},\n\ta11y_positive_tabindex: {\n\t\tcode: 'a11y-positive-tabindex',\n\t\tmessage: 'A11y: avoid tabindex values above zero'\n\t},\n\ta11y_invalid_attribute: (href_attribute: string, href_value: string) => ({\n\t\tcode: 'a11y-invalid-attribute',\n\t\tmessage: `A11y: '${href_value}' is not a valid ${href_attribute} attribute`\n\t}),\n\ta11y_missing_attribute: (name: string, article: string, sequence: string) => ({\n\t\tcode: 'a11y-missing-attribute',\n\t\tmessage: `A11y: <${name}> element should have ${article} ${sequence} attribute`\n\t}),\n\ta11y_img_redundant_alt: {\n\t\tcode: 'a11y-img-redundant-alt',\n\t\tmessage: 'A11y: Screenreaders already announce <img> elements as an image.'\n\t},\n\ta11y_label_has_associated_control: {\n\t\tcode: 'a11y-label-has-associated-control',\n\t\tmessage: 'A11y: A form label must be associated with a control.'\n\t},\n\ta11y_media_has_caption: {\n\t\tcode: 'a11y-media-has-caption',\n\t\tmessage: 'A11y: <video> elements must have a <track kind=\"captions\">'\n\t},\n\ta11y_distracting_elements: (name: string) => ({\n\t\tcode: 'a11y-distracting-elements',\n\t\tmessage: `A11y: Avoid <${name}> elements`\n\t}),\n\ta11y_structure_immediate: {\n\t\tcode: 'a11y-structure',\n\t\tmessage: 'A11y: <figcaption> must be an immediate child of <figure>'\n\t},\n\ta11y_structure_first_or_last: {\n\t\tcode: 'a11y-structure',\n\t\tmessage: 'A11y: <figcaption> must be first or last child of <figure>'\n\t},\n\ta11y_mouse_events_have_key_events: (event: string, accompanied_by: string) => ({\n\t\tcode: 'a11y-mouse-events-have-key-events',\n\t\tmessage: `A11y: on:${event} must be accompanied by on:${accompanied_by}`\n\t}),\n\ta11y_click_events_have_key_events: {\n\t\tcode: 'a11y-click-events-have-key-events',\n\t\tmessage: 'A11y: visible, non-interactive elements with an on:click event must be accompanied by an on:keydown, on:keyup, or on:keypress event.'\n\t},\n\ta11y_missing_content: (name: string) => ({\n\t\tcode: 'a11y-missing-content',\n\t\tmessage: `A11y: <${name}> element should have child content`\n\t}),\n\ta11y_no_noninteractive_tabindex: {\n\t\tcode: 'a11y-no-noninteractive-tabindex',\n\t\tmessage: 'A11y: noninteractive element cannot have nonnegative tabIndex value'\n\t},\n\ta11y_aria_activedescendant_has_tabindex: {\n\t\tcode: 'a11y-aria-activedescendant-has-tabindex',\n\t\tmessage: 'A11y: Elements with attribute aria-activedescendant should have tabindex value'\n\t},\n\tredundant_event_modifier_for_touch: {\n\t\tcode: 'redundant-event-modifier',\n\t\tmessage: 'Touch event handlers that don\\'t use the \\'event\\' object are passive by default'\n\t},\n\tredundant_event_modifier_passive: {\n\t\tcode: 'redundant-event-modifier',\n\t\tmessage: 'The passive modifier only works with wheel and touch events'\n\t},\n\tinvalid_rest_eachblock_binding: (rest_element_name: string) => ({\n\t\tcode: 'invalid-rest-eachblock-binding',\n\t\tmessage: `...${rest_element_name} operator will create a new object and binding propagation with original object will not work`\n\t})\n};\n","import Block from '../../render_dom/Block';\nimport Component from '../../Component';\nimport Node from './Node';\nimport { INode } from '../interfaces';\nimport compiler_warnings from '../../compiler_warnings';\n\nconst regex_non_whitespace_characters = /[^ \\r\\n\\f\\v\\t]/;\n\nexport default class AbstractBlock extends Node {\n\tblock: Block;\n\tchildren: INode[];\n\n\tconstructor(component: Component, parent, scope, info: any) {\n\t\tsuper(component, parent, scope, info);\n\t}\n\n\twarn_if_empty_block() {\n\t\tif (!this.children || this.children.length > 1) return;\n\n\t\tconst child = this.children[0];\n\n\t\tif (!child || (child.type === 'Text' && !regex_non_whitespace_characters.test(child.data))) {\n\t\t\tthis.component.warn(this, compiler_warnings.empty_block);\n\t\t}\n\t}\n}\n","import { Node, Identifier } from 'estree';\n\nexport default function flatten_reference(node: Node) {\n\tconst nodes = [];\n\tconst parts = [];\n\t\n\twhile (node.type === 'MemberExpression') {\n\t\tnodes.unshift(node.property);\n\n\t\tif (!node.computed) {\n\t\t\tparts.unshift((node.property as Identifier).name);\n\t\t} else {\n\t\t\tconst computed_property = to_string(node.property);\n\t\t\tif (computed_property) {\n\t\t\t\tparts.unshift(`[${computed_property}]`);\n\t\t\t}\n\t\t}\n\t\tnode = node.object;\n\t}\n\n\tconst name = node.type === 'Identifier'\n\t\t? node.name\n\t\t: node.type === 'ThisExpression' ? 'this' : null;\n\n\tnodes.unshift(node);\n\n\tparts.unshift(name);\n\n\treturn { name, nodes, parts };\n}\n\nfunction to_string(node: Node) {\n\tswitch (node.type) {\n\t\tcase 'Literal':\n\t\t\treturn String(node.value);\n\t\tcase 'Identifier':\n\t\t\treturn node.name;\n\t}\n}\n","import { Node } from 'estree';\nimport { analyze, Scope, extract_names, extract_identifiers } from 'periscopic';\n\nexport function create_scopes(expression: Node) {\n\treturn analyze(expression);\n}\n\nexport { Scope, extract_names, extract_identifiers };\n","import { Node, Identifier } from 'estree';\n\nexport default function get_object(node: Node): Identifier {\n\twhile (node.type === 'MemberExpression') node = node.object;\n\treturn node as Identifier;\n}\n","export const reserved_keywords = new Set(['$$props', '$$restProps', '$$slots']);\n\nexport function is_reserved_keyword(name) {\n\treturn reserved_keywords.has(name);\n}\n","import { Var } from '../../../../interfaces';\nimport { is_reserved_keyword } from '../../../utils/reserved_keywords';\n\nexport default function is_dynamic(variable: Var) {\n\tif (variable) {\n\t\tif (variable.mutated || variable.reassigned) return true; // dynamic internal state\n\t\tif (!variable.module && variable.writable && variable.export_name) return true; // writable props\n\t\tif (is_reserved_keyword(variable.name)) return true;\n\t}\n\n\treturn false;\n}\n","export function nodes_match(a, b) {\n\tif (!!a !== !!b) return false;\n\tif (Array.isArray(a) !== Array.isArray(b)) return false;\n\n\tif (a && typeof a === 'object') {\n\t\tif (Array.isArray(a)) {\n\t\t\tif (a.length !== b.length) return false;\n\t\t\treturn a.every((child, i) => nodes_match(child, b[i]));\n\t\t}\n\n\t\tconst a_keys = Object.keys(a).sort();\n\t\tconst b_keys = Object.keys(b).sort();\n\n\t\tif (a_keys.length !== b_keys.length) return false;\n\n\t\tlet i = a_keys.length;\n\t\twhile (i--) {\n\t\t\tconst key = a_keys[i];\n\t\t\tif (b_keys[i] !== key) return false;\n\n\t\t\tif (key === 'start' || key === 'end') continue;\n\n\t\t\tif (!nodes_match(a[key], b[key])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\treturn a === b;\n}\n","import { nodes_match } from '../../utils/nodes_match';\nimport { Scope } from 'periscopic';\nimport { x } from 'code-red';\nimport { Node, Expression } from 'estree';\nimport Renderer from './Renderer';\nimport { Var } from '../../interfaces';\n\nexport function invalidate(renderer: Renderer, scope: Scope, node: Node, names: Set<string>, main_execution_context: boolean = false) {\n\tconst { component } = renderer;\n\n\tconst [head, ...tail] = Array.from(names)\n\t\t.filter(name => {\n\t\t\tconst owner = scope.find_owner(name);\n\t\t\treturn !owner || owner === component.instance_scope;\n\t\t})\n\t\t.map(name => component.var_lookup.get(name))\n\t\t.filter(variable =>\t{\n\t\t\treturn variable && (\n\t\t\t\t!variable.hoistable &&\n\t\t\t\t!variable.global &&\n\t\t\t\t!variable.module &&\n\t\t\t\t!variable.is_reactive_static &&\n\t\t\t\t(\n\t\t\t\t\tvariable.referenced ||\n\t\t\t\t\tvariable.subscribable ||\n\t\t\t\t\tvariable.is_reactive_dependency ||\n\t\t\t\t\tvariable.export_name ||\n\t\t\t\t\tvariable.name[0] === '$'\n\t\t\t\t)\n\t\t\t);\n\t\t}) as Var[];\n\n\tfunction get_invalidated(variable: Var, node?: Expression) {\n\t\tif (main_execution_context && !variable.subscribable && variable.name[0] !== '$') {\n\t\t\treturn node;\n\t\t}\n\t\treturn renderer_invalidate(renderer, variable.name, undefined, main_execution_context);\n\t}\n\n\tif (!head) {\n\t\treturn node;\n\t}\n\n\tcomponent.has_reactive_assignments = true;\n\n\tif (node.type === 'AssignmentExpression' && node.operator === '=' && nodes_match(node.left, node.right) && tail.length === 0) {\n\t\treturn get_invalidated(head, node);\n\t}\n\n\tconst is_store_value = head.name[0] === '$' && head.name[1] !== '$';\n\tconst extra_args = tail.map(variable => get_invalidated(variable)).filter(Boolean);\n\n\tif (is_store_value) {\n\t\treturn x`@set_store_value(${head.name.slice(1)}, ${node}, ${head.name}, ${extra_args})`;\n\t}\n\n\tlet invalidate;\n\tif (!main_execution_context) {\n\t\tconst pass_value = (\n\t\t\textra_args.length > 0 ||\n\t\t\t(node.type === 'AssignmentExpression' && node.left.type !== 'Identifier') ||\n\t\t\t(node.type === 'UpdateExpression' && (!node.prefix || node.argument.type !== 'Identifier'))\n\t\t);\n\t\tif (pass_value) {\n\t\t\textra_args.unshift({\n\t\t\t\ttype: 'Identifier',\n\t\t\t\tname: head.name\n\t\t\t});\n\t\t}\n\t\tinvalidate = x`$$invalidate(${renderer.context_lookup.get(head.name).index}, ${node}, ${extra_args})`;\n\t} else {\n\t\t// skip `$$invalidate` if it is in the main execution context\n\t\tinvalidate = extra_args.length ? [node, ...extra_args] : node;\n\t}\n\n\tif (head.subscribable && head.reassigned) {\n\t\tconst subscribe = `$$subscribe_${head.name}`;\n\t\tinvalidate = x`${subscribe}(${invalidate})`;\n\t}\n\n\treturn invalidate;\n}\n\nexport function renderer_invalidate(renderer: Renderer, name: string, value?: unknown, main_execution_context: boolean = false) {\n\tconst variable = renderer.component.var_lookup.get(name);\n\n\tif (variable && (variable.subscribable && (variable.reassigned || variable.export_name))) {\n\t\tif (main_execution_context) {\n\t\t\treturn x`${`$$subscribe_${name}`}(${value || name})`;\n\t\t} else {\n\t\t\tconst member = renderer.context_lookup.get(name);\n\t\t\treturn x`${`$$subscribe_${name}`}($$invalidate(${member.index}, ${value || name}))`;\n\t\t}\n\t}\n\n\tif (name[0] === '$' && name[1] !== '$') {\n\t\treturn x`${name.slice(1)}.set(${value || name})`;\n\t}\n\n\tif (\n\t\tvariable && (\n\t\t\tvariable.module || (\n\t\t\t\t!variable.referenced &&\n\t\t\t\t!variable.is_reactive_dependency &&\n\t\t\t\t!variable.export_name &&\n\t\t\t\t!name.startsWith('$$')\n\t\t\t)\n\t\t)\n\t) {\n\t\treturn value || name;\n\t}\n\n\tif (value) {\n\t\tif (main_execution_context) {\n\t\t\treturn x`${value}`;\n\t\t} else {\n\t\t\tconst member = renderer.context_lookup.get(name);\n\t\t\treturn x`$$invalidate(${member.index}, ${value})`;\n\t\t}\n\t}\n\n\tif (main_execution_context) return;\n\n\t// if this is a reactive declaration, invalidate dependencies recursively\n\tconst deps = new Set([name]);\n\n\tdeps.forEach(name => {\n\t\tconst reactive_declarations = renderer.component.reactive_declarations.filter(x =>\n\t\t\tx.assignees.has(name)\n\t\t);\n\t\treactive_declarations.forEach(declaration => {\n\t\t\tdeclaration.dependencies.forEach(name => {\n\t\t\t\tdeps.add(name);\n\t\t\t});\n\t\t});\n\t});\n\n\t// TODO ideally globals etc wouldn't be here in the first place\n\tconst filtered = Array.from(deps).filter(n => renderer.context_lookup.has(n));\n\tif (!filtered.length) return null;\n\n\treturn filtered\n\t\t.map(n => x`$$invalidate(${renderer.context_lookup.get(n).index}, ${n})`)\n\t\t.reduce((lhs, rhs) => x`${lhs}, ${rhs}`);\n}\n","import { Node } from 'estree';\n\nexport default function replace_object(node: Node, replacement: Node) {\n\tif (node.type === 'Identifier') return replacement;\n\n\tconst ancestor = node;\n\tlet parent;\n\twhile (node.type === 'MemberExpression') {\n\t\tparent = node;\n\t\tnode = node.object;\n\t}\n\tparent.object = replacement;\n\treturn ancestor;\n}\n","import Component from '../../Component';\nimport TemplateScope from './TemplateScope';\nimport { is_reserved_keyword } from '../../utils/reserved_keywords';\n\nexport default function is_contextual(component: Component, scope: TemplateScope, name: string) {\n\tif (is_reserved_keyword(name)) return true;\n\n\t// if it's a name below root scope, it's contextual\n\tif (!scope.is_top_level(name)) return true;\n\n\tconst variable = component.var_lookup.get(name);\n\n\t// hoistables, module declarations, and imports are non-contextual\n\tif (!variable || variable.hoistable) return false;\n\n\t// assume contextual\n\treturn true;\n}\n","// adapted from klona v2.0.4 - https://github.com/lukeed/klona\n// (c) Luke Edwards, under MIT License\n\n// The sole modification is to skip function values in objects when cloning, so we don't break tests.\n\nexport function clone(val) {\n\tlet k, out, tmp;\n\n\tif (Array.isArray(val)) {\n\t\tout = Array(k = val.length);\n\t\twhile (k--) out[k] = (tmp = val[k]) && typeof tmp === 'object' ? clone(tmp) : tmp;\n\t\treturn out;\n\t}\n\n\tif (Object.prototype.toString.call(val) === '[object Object]') {\n\t\tout = {}; // null\n\t\tfor (k in val) {\n\t\t\tif (k === '__proto__') {\n\t\t\t\tObject.defineProperty(out, k, {\n\t\t\t\t\tvalue: clone(val[k]),\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\twritable: true\n\t\t\t\t});\n\t\t\t} else if (typeof val[k] !== 'function') { // MODIFICATION: skip functions\n\t\t\t\tout[k] = (tmp = val[k]) && typeof tmp === 'object' ? clone(tmp) : tmp;\n\t\t\t}\n\t\t}\n\t\treturn out;\n\t}\n\n\treturn val;\n}\n","// All compiler errors should be listed and accessed from here\n\n/**\n * @internal\n */\nexport default {\n\tinvalid_binding_elements: (element: string, binding: string) => ({\n\t\tcode: 'invalid-binding',\n\t\tmessage: `'${binding}' is not a valid binding on <${element}> elements`\n\t}),\n\tinvalid_binding_element_with: (elements: string, binding: string) => ({\n\t\tcode: 'invalid-binding',\n\t\tmessage: `'${binding}' binding can only be used with ${elements}`\n\t}),\n\tinvalid_binding_on: (binding: string, element: string, post?: string) => ({\n\t\tcode: 'invalid-binding',\n\t\tmessage: `'${binding}' is not a valid binding on ${element}` + (post || '')\n\t}),\n\tinvalid_binding_foreign: (binding: string) => ({\n\t\tcode: 'invalid-binding',\n\t\tmessage: `'${binding}' is not a valid binding. Foreign elements only support bind:this`\n\t}),\n\tinvalid_binding_no_checkbox: (binding: string, is_radio: boolean) => ({\n\t\tcode: 'invalid-binding',\n\t\tmessage: `'${binding}' binding can only be used with <input type=\"checkbox\">` + (is_radio ? ' — for <input type=\"radio\">, use \\'group\\' binding' : '')\n\t}),\n\tinvalid_binding: (binding: string) => ({\n\t\tcode: 'invalid-binding',\n\t\tmessage: `'${binding}' is not a valid binding`\n\t}),\n\tinvalid_binding_window: (parts: string[]) => ({\n\t\tcode: 'invalid-binding',\n\t\tmessage: `Bindings on <svelte:window> must be to top-level properties, e.g. '${parts[parts.length - 1]}' rather than '${parts.join('.')}'`\n\t}),\n\tinvalid_binding_let: {\n\t\tcode: 'invalid-binding',\n\t\tmessage: 'Cannot bind to a variable declared with the let: directive'\n\t},\n\tinvalid_binding_await: {\n\t\tcode: 'invalid-binding',\n\t\tmessage: 'Cannot bind to a variable declared with {#await ... then} or {:catch} blocks'\n\t},\n\tinvalid_binding_const: {\n\t\tcode: 'invalid-binding',\n\t\tmessage: 'Cannot bind to a variable declared with {@const ...}'\n\t},\n\tinvalid_binding_writable: {\n\t\tcode: 'invalid-binding',\n\t\tmessage: 'Cannot bind to a variable which is not writable'\n\t},\n\tbinding_undeclared: (name: string) => ({\n\t\tcode: 'binding-undeclared',\n\t\tmessage: `${name} is not declared`\n\t}),\n\tinvalid_type: {\n\t\tcode: 'invalid-type',\n\t\tmessage: '\\'type\\' attribute cannot be dynamic if input uses two-way binding'\n\t},\n\tmissing_type: {\n\t\tcode: 'missing-type',\n\t\tmessage: '\\'type\\' attribute must be specified'\n\t},\n\tdynamic_multiple_attribute: {\n\t\tcode: 'dynamic-multiple-attribute',\n\t\tmessage: '\\'multiple\\' attribute cannot be dynamic if select uses two-way binding'\n\t},\n\tmissing_contenteditable_attribute: {\n\t\tcode: 'missing-contenteditable-attribute',\n\t\tmessage: '\\'contenteditable\\' attribute is required for textContent and innerHTML two-way bindings'\n\t},\n\tdynamic_contenteditable_attribute: {\n\t\tcode: 'dynamic-contenteditable-attribute',\n\t\tmessage: '\\'contenteditable\\' attribute cannot be dynamic if element uses two-way binding'\n\t},\n\tinvalid_event_modifier_combination: (modifier1: string, modifier2: string) => ({\n\t\tcode: 'invalid-event-modifier',\n\t\tmessage: `The '${modifier1}' and '${modifier2}' modifiers cannot be used together`\n\t}),\n\tinvalid_event_modifier_legacy: (modifier: string) => ({\n\t\tcode: 'invalid-event-modifier',\n\t\tmessage: `The '${modifier}' modifier cannot be used in legacy mode`\n\t}),\n\tinvalid_event_modifier: (valid: string) => ({\n\t\tcode: 'invalid-event-modifier',\n\t\tmessage: `Valid event modifiers are ${valid}`\n\t}),\n\tinvalid_event_modifier_component: {\n\t\tcode: 'invalid-event-modifier',\n\t\tmessage: \"Event modifiers other than 'once' can only be used on DOM elements\"\n\t},\n\ttextarea_duplicate_value: {\n\t\tcode: 'textarea-duplicate-value',\n\t\tmessage: 'A <textarea> can have either a value attribute or (equivalently) child content, but not both'\n\t},\n\tillegal_attribute: (name: string) => ({\n\t\tcode: 'illegal-attribute',\n\t\tmessage: `'${name}' is not a valid attribute name`\n\t}),\n\tinvalid_slot_attribute: {\n\t\tcode: 'invalid-slot-attribute',\n\t\tmessage: 'slot attribute cannot have a dynamic value'\n\t},\n\tduplicate_slot_attribute: (name: string) => ({\n\t\tcode: 'duplicate-slot-attribute',\n\t\tmessage: `Duplicate '${name}' slot`\n\t}),\n\tinvalid_slotted_content: {\n\t\tcode: 'invalid-slotted-content',\n\t\tmessage: 'Element with a slot=\\'...\\' attribute must be a child of a component or a descendant of a custom element'\n\t},\n\tinvalid_attribute_head: {\n\t\tcode: 'invalid-attribute',\n\t\tmessage: '<svelte:head> should not have any attributes or directives'\n\t},\n\tinvalid_action: {\n\t\tcode: 'invalid-action',\n\t\tmessage: 'Actions can only be applied to DOM elements, not components'\n\t},\n\tinvalid_class: {\n\t\tcode: 'invalid-class',\n\t\tmessage: 'Classes can only be applied to DOM elements, not components'\n\t},\n\tinvalid_transition: {\n\t\tcode: 'invalid-transition',\n\t\tmessage: 'Transitions can only be applied to DOM elements, not components'\n\t},\n\tinvalid_let: {\n\t\tcode: 'invalid-let',\n\t\tmessage: 'let directive value must be an identifier or an object/array pattern'\n\t},\n\tinvalid_slot_directive: {\n\t\tcode: 'invalid-slot-directive',\n\t\tmessage: '<slot> cannot have directives'\n\t},\n\tdynamic_slot_name: {\n\t\tcode: 'dynamic-slot-name',\n\t\tmessage: '<slot> name cannot be dynamic'\n\t},\n\tinvalid_slot_name: {\n\t\tcode: 'invalid-slot-name',\n\t\tmessage: 'default is a reserved word — it cannot be used as a slot name'\n\t},\n\tinvalid_slot_attribute_value_missing: {\n\t\tcode: 'invalid-slot-attribute',\n\t\tmessage: 'slot attribute value is missing'\n\t},\n\tinvalid_slotted_content_fragment: {\n\t\tcode: 'invalid-slotted-content',\n\t\tmessage: '<svelte:fragment> must be a child of a component'\n\t},\n\tillegal_attribute_title: {\n\t\tcode: 'illegal-attribute',\n\t\tmessage: '<title> cannot have attributes'\n\t},\n\tillegal_structure_title: {\n\t\tcode: 'illegal-structure',\n\t\tmessage: '<title> can only contain text and {tags}'\n\t},\n\tduplicate_transition: (directive: string, parent_directive: string) => {\n\t\tfunction describe(_directive: string) {\n\t\t\treturn _directive === 'transition'\n\t\t\t\t? \"a 'transition'\"\n\t\t\t\t: `an '${_directive}'`;\n\t\t}\n\t\tconst message = directive === parent_directive\n\t\t\t? `An element can only have one '${directive}' directive`\n\t\t\t: `An element cannot have both ${describe(parent_directive)} directive and ${describe(directive)} directive`;\n\t\treturn {\n\t\t\tcode: 'duplicate-transition',\n\t\t\tmessage\n\t\t};\n\t},\n\tcontextual_store: {\n\t\tcode: 'contextual-store',\n\t\tmessage: 'Stores must be declared at the top level of the component (this may change in a future version of Svelte)'\n\t},\n\tdefault_export: {\n\t\tcode: 'default-export',\n\t\tmessage: 'A component cannot have a default export'\n\t},\n\tillegal_declaration: {\n\t\tcode: 'illegal-declaration',\n\t\tmessage: 'The $ prefix is reserved, and cannot be used for variable and import names'\n\t},\n\tillegal_subscription: {\n\t\tcode: 'illegal-subscription',\n\t\tmessage: 'Cannot reference store value inside <script context=\"module\">'\n\t},\n\tillegal_global: (name: string) => ({\n\t\tcode: 'illegal-global',\n\t\tmessage: `${name} is an illegal variable name`\n\t}),\n\tillegal_variable_declaration: {\n\t\tcode: 'illegal-variable-declaration',\n\t\tmessage: 'Cannot declare same variable name which is imported inside <script context=\"module\">'\n\t},\n\tcyclical_reactive_declaration: (cycle: string[]) => ({\n\t\tcode: 'cyclical-reactive-declaration',\n\t\tmessage: `Cyclical dependency detected: ${cycle.join(' → ')}`\n\t}),\n\tinvalid_tag_property: {\n\t\tcode: 'invalid-tag-property',\n\t\tmessage: \"tag name must be two or more words joined by the '-' character\"\n\t},\n\tinvalid_tag_attribute: {\n\t\tcode: 'invalid-tag-attribute',\n\t\tmessage: \"'tag' must be a string literal\"\n\t},\n\tinvalid_namespace_property: (namespace: string, suggestion?: string) => ({\n\t\tcode: 'invalid-namespace-property',\n\t\tmessage: `Invalid namespace '${namespace}'` + (suggestion ? ` (did you mean '${suggestion}'?)` : '')\n\t}),\n\tinvalid_namespace_attribute: {\n\t\tcode: 'invalid-namespace-attribute',\n\t\tmessage: \"The 'namespace' attribute must be a string literal representing a valid namespace\"\n\t},\n\tinvalid_attribute_value: (name: string) => ({\n\t\tcode: `invalid-${name}-value`,\n\t\tmessage: `${name} attribute must be true or false`\n\t}),\n\tinvalid_options_attribute_unknown: {\n\t\tcode: 'invalid-options-attribute',\n\t\tmessage: '<svelte:options> unknown attribute'\n\t},\n\tinvalid_options_attribute: {\n\t\tcode: 'invalid-options-attribute',\n\t\tmessage: \"<svelte:options> can only have static 'tag', 'namespace', 'accessors', 'immutable' and 'preserveWhitespace' attributes\"\n\t},\n\tcss_invalid_global: {\n\t\tcode: 'css-invalid-global',\n\t\tmessage: ':global(...) can be at the start or end of a selector sequence, but not in the middle'\n\t},\n\tcss_invalid_global_selector: {\n\t\tcode: 'css-invalid-global-selector',\n\t\tmessage: ':global(...) must contain a single selector'\n\t},\n\tcss_invalid_global_selector_position: {\n\t\tcode: 'css-invalid-global-selector-position',\n\t\tmessage: ':global(...) not at the start of a selector sequence should not contain type or universal selectors'\n\t},\n\tcss_invalid_selector: (selector: string) => ({\n\t\tcode: 'css-invalid-selector',\n\t\tmessage: `Invalid selector \"${selector}\"`\n\t}),\n\tduplicate_animation: {\n\t\tcode: 'duplicate-animation',\n\t\tmessage: \"An element can only have one 'animate' directive\"\n\t},\n\tinvalid_animation_immediate: {\n\t\tcode: 'invalid-animation',\n\t\tmessage: 'An element that uses the animate directive must be the immediate child of a keyed each block'\n\t},\n\tinvalid_animation_key: {\n\t\tcode: 'invalid-animation',\n\t\tmessage: 'An element that uses the animate directive must be used inside a keyed each block. Did you forget to add a key to your each block?'\n\t},\n\tinvalid_animation_sole: {\n\t\tcode: 'invalid-animation',\n\t\tmessage: 'An element that uses the animate directive must be the sole child of a keyed each block'\n\t},\n\tinvalid_animation_dynamic_element: {\n\t\tcode: 'invalid-animation',\n\t\tmessage: '<svelte:element> cannot have a animate directive'\n\t},\n\tinvalid_directive_value: {\n\t\tcode: 'invalid-directive-value',\n\t\tmessage: 'Can only bind to an identifier (e.g. `foo`) or a member expression (e.g. `foo.bar` or `foo[baz]`)'\n\t},\n\tinvalid_const_placement: {\n\t\tcode: 'invalid-const-placement',\n\t\tmessage: '{@const} must be the immediate child of {#if}, {:else if}, {:else}, {#each}, {:then}, {:catch}, <svelte:fragment> or <Component>'\n\t},\n\tinvalid_const_declaration: (name: string) => ({\n\t\tcode: 'invalid-const-declaration',\n\t\tmessage: `'${name}' has already been declared`\n\t}),\n\tinvalid_const_update: (name: string) => ({\n\t\tcode: 'invalid-const-update',\n\t\tmessage: `'${name}' is declared using {@const ...} and is read-only`\n\t}),\n\tcyclical_const_tags: (cycle: string[]) => ({\n\t\tcode: 'cyclical-const-tags',\n\t\tmessage: `Cyclical dependency detected: ${cycle.join(' → ')}`\n\t}),\n\tinvalid_component_style_directive: {\n\t\tcode: 'invalid-component-style-directive',\n\t\tmessage: 'Style directives cannot be used on components'\n\t},\n\tinvalid_style_directive_modifier: (valid: string) => ({\n\t\tcode: 'invalid-style-directive-modifier',\n\t\tmessage: `Valid modifiers for style directives are: ${valid}`\n\t})\n};\n","import Component from '../../Component';\nimport { walk } from 'estree-walker';\nimport is_reference from 'is-reference';\nimport flatten_reference from '../../utils/flatten_reference';\nimport { create_scopes, Scope, extract_names } from '../../utils/scope';\nimport { sanitize } from '../../../utils/names';\nimport TemplateScope from './TemplateScope';\nimport get_object from '../../utils/get_object';\nimport Block from '../../render_dom/Block';\nimport is_dynamic from '../../render_dom/wrappers/shared/is_dynamic';\nimport { b } from 'code-red';\nimport { invalidate } from '../../render_dom/invalidate';\nimport { Node, FunctionExpression, Identifier } from 'estree';\nimport { INode } from '../interfaces';\nimport { is_reserved_keyword } from '../../utils/reserved_keywords';\nimport replace_object from '../../utils/replace_object';\nimport is_contextual from './is_contextual';\nimport EachBlock from '../EachBlock';\nimport { clone } from '../../../utils/clone';\nimport compiler_errors from '../../compiler_errors';\n\ntype Owner = INode;\n\nconst regex_contains_term_function_expression = /FunctionExpression/;\n\nexport default class Expression {\n\ttype: 'Expression' = 'Expression';\n\tcomponent: Component;\n\towner: Owner;\n\tnode: Node;\n\treferences: Set<string> = new Set();\n\tdependencies: Set<string> = new Set();\n\tcontextual_dependencies: Set<string> = new Set();\n\n\ttemplate_scope: TemplateScope;\n\tscope: Scope;\n\tscope_map: WeakMap<Node, Scope>;\n\n\tdeclarations: Array<(Node | Node[])> = [];\n\tuses_context = false;\n\n\tmanipulated: Node;\n\n\tconstructor(component: Component, owner: Owner, template_scope: TemplateScope, info: Node, lazy?: boolean) {\n\t\t// TODO revert to direct property access in prod?\n\t\tObject.defineProperties(this, {\n\t\t\tcomponent: {\n\t\t\t\tvalue: component\n\t\t\t}\n\t\t});\n\n\t\tthis.node = info;\n\t\tthis.template_scope = template_scope;\n\t\tthis.owner = owner;\n\n\t\tconst { dependencies, contextual_dependencies, references } = this;\n\n\t\tlet { map, scope } = create_scopes(info);\n\t\tthis.scope = scope;\n\t\tthis.scope_map = map;\n\n\t\tconst expression = this;\n\t\tlet function_expression;\n\n\t\t// discover dependencies, but don't change the code yet\n\t\twalk(info, {\n\t\t\tenter(node: any, parent: any, key: string) {\n\t\t\t\t// don't manipulate shorthand props twice\n\t\t\t\tif (key === 'key' && parent.shorthand) return;\n\t\t\t\t// don't manipulate `import.meta`, `new.target`\n\t\t\t\tif (node.type === 'MetaProperty') return this.skip();\n\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = map.get(node);\n\t\t\t\t}\n\n\t\t\t\tif (!function_expression && regex_contains_term_function_expression.test(node.type)) {\n\t\t\t\t\tfunction_expression = node;\n\t\t\t\t}\n\n\t\t\t\tif (is_reference(node, parent)) {\n\t\t\t\t\tconst { name, nodes } = flatten_reference(node);\n\t\t\t\t\treferences.add(name);\n\n\t\t\t\t\tif (scope.has(name)) return;\n\n\t\t\t\t\tif (name[0] === '$') {\n\t\t\t\t\t\tconst store_name = name.slice(1);\n\t\t\t\t\t\tif (template_scope.names.has(store_name) || scope.has(store_name)) {\n\t\t\t\t\t\t\treturn component.error(node, compiler_errors.contextual_store);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (template_scope.is_let(name)) {\n\t\t\t\t\t\tif (!lazy) {\n\t\t\t\t\t\t\tcontextual_dependencies.add(name);\n\t\t\t\t\t\t\tdependencies.add(name);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (template_scope.names.has(name)) {\n\t\t\t\t\t\texpression.uses_context = true;\n\n\t\t\t\t\t\tcontextual_dependencies.add(name);\n\n\t\t\t\t\t\tconst owner = template_scope.get_owner(name);\n\t\t\t\t\t\tconst is_index = owner.type === 'EachBlock' && owner.key && name === owner.index;\n\n\t\t\t\t\t\tif (!lazy || is_index) {\n\t\t\t\t\t\t\ttemplate_scope.dependencies_for_name.get(name).forEach(name => dependencies.add(name));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (!lazy) {\n\t\t\t\t\t\t\tdependencies.add(name);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcomponent.add_reference(node, name);\n\t\t\t\t\t\tcomponent.warn_if_undefined(name, nodes[0], template_scope);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.skip();\n\t\t\t\t}\n\n\t\t\t\t// track any assignments from template expressions as mutable\n\t\t\t\tlet names;\n\t\t\t\tlet deep = false;\n\n\t\t\t\tif (function_expression) {\n\t\t\t\t\tif (node.type === 'AssignmentExpression') {\n\t\t\t\t\t\tdeep = node.left.type === 'MemberExpression';\n\t\t\t\t\t\tnames = extract_names(deep ? get_object(node.left) : node.left);\n\t\t\t\t\t} else if (node.type === 'UpdateExpression') {\n deep = node.argument.type === 'MemberExpression';\n\t\t\t\t\t\tnames = extract_names(get_object(node.argument));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (names) {\n\t\t\t\t\tnames.forEach(name => {\n\t\t\t\t\t\tif (template_scope.names.has(name)) {\n\t\t\t\t\t\t\tif (template_scope.is_const(name)) {\n\t\t\t\t\t\t\t\tcomponent.error(node, compiler_errors.invalid_const_update(name));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttemplate_scope.dependencies_for_name.get(name).forEach(name => {\n\t\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\n\t\t\t\t\t\t\t\tif (variable) variable[deep ? 'mutated' : 'reassigned'] = true;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst each_block = template_scope.get_owner(name);\n\t\t\t\t\t\t\t(each_block as EachBlock).has_binding = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcomponent.add_reference(node, name);\n\n\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\n\n\t\t\t\t\t\t\tif (variable) {\n\t\t\t\t\t\t\t\tvariable[deep ? 'mutated' : 'reassigned'] = true;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst declaration: any = scope.find_owner(name)?.declarations.get(name);\n\n\t\t\t\t\t\t\tif (declaration) {\n\t\t\t\t\t\t\t\tif (declaration.kind === 'const' && !deep) {\n\t\t\t\t\t\t\t\t\tcomponent.error(node, {\n\t\t\t\t\t\t\t\t\t\tcode: 'assignment-to-const',\n\t\t\t\t\t\t\t\t\t\tmessage: 'You are assigning to a const'\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (variable && variable.writable === false && !deep) {\n\t\t\t\t\t\t\t\tcomponent.error(node, {\n\t\t\t\t\t\t\t\t\tcode: 'assignment-to-const',\n\t\t\t\t\t\t\t\t\tmessage: 'You are assigning to a const'\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tleave(node: Node) {\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = scope.parent;\n\t\t\t\t}\n\n\t\t\t\tif (node === function_expression) {\n\t\t\t\t\tfunction_expression = null;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tdynamic_dependencies() {\n\t\treturn Array.from(this.dependencies).filter(name => {\n\t\t\tif (this.template_scope.is_let(name)) return true;\n\t\t\tif (is_reserved_keyword(name)) return true;\n\n\t\t\tconst variable = this.component.var_lookup.get(name);\n\t\t\treturn is_dynamic(variable);\n\t\t});\n\t}\n\n\t// TODO move this into a render-dom wrapper?\n\tmanipulate(block?: Block, ctx?: string | void) {\n\t\t// TODO ideally we wouldn't end up calling this method\n\t\t// multiple times\n\t\tif (this.manipulated) return this.manipulated;\n\n\t\tconst {\n\t\t\tcomponent,\n\t\t\tdeclarations,\n\t\t\tscope_map: map,\n\t\t\ttemplate_scope,\n\t\t\towner\n\t\t} = this;\n\t\tlet scope = this.scope;\n\n\t\tlet function_expression;\n\n\t\tlet dependencies: Set<string>;\n\t\tlet contextual_dependencies: Set<string>;\n\n\t\tconst node = walk(this.node, {\n\t\t\tenter(node: any, parent: any) {\n\t\t\t\tif (node.type === 'Property' && node.shorthand) {\n\t\t\t\t\tnode.value = clone(node.value);\n\t\t\t\t\tnode.shorthand = false;\n\t\t\t\t}\n\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = map.get(node);\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'Identifier' && is_reference(node, parent)) {\n\t\t\t\t\tconst { name } = flatten_reference(node);\n\n\t\t\t\t\tif (scope.has(name)) return;\n\n\t\t\t\t\tif (function_expression) {\n\t\t\t\t\t\tif (template_scope.names.has(name)) {\n\t\t\t\t\t\t\tcontextual_dependencies.add(name);\n\n\t\t\t\t\t\t\ttemplate_scope.dependencies_for_name.get(name).forEach(dependency => {\n\t\t\t\t\t\t\t\tdependencies.add(dependency);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdependencies.add(name);\n\t\t\t\t\t\t\tcomponent.add_reference(node, name); // TODO is this redundant/misplaced?\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (is_contextual(component, template_scope, name)) {\n\t\t\t\t\t\tconst reference = block.renderer.reference(node, ctx);\n\t\t\t\t\t\tthis.replace(reference);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.skip();\n\t\t\t\t}\n\n\t\t\t\tif (!function_expression) {\n\t\t\t\t\tif (node.type === 'AssignmentExpression') {\n\t\t\t\t\t\t// TODO should this be a warning/error? `<p>{foo = 1}</p>`\n\t\t\t\t\t}\n\n\t\t\t\t\tif (node.type === 'FunctionExpression' || node.type === 'ArrowFunctionExpression') {\n\t\t\t\t\t\tfunction_expression = node;\n\t\t\t\t\t\tdependencies = new Set();\n\t\t\t\t\t\tcontextual_dependencies = new Set();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tleave(node: Node, parent: Node) {\n\t\t\t\tif (map.has(node)) scope = scope.parent;\n\n\t\t\t\tif (node === function_expression) {\n\t\t\t\t\tconst id = component.get_unique_name(\n\t\t\t\t\t\tsanitize(get_function_name(node, owner))\n\t\t\t\t\t);\n\n\t\t\t\t\tconst declaration = b`const ${id} = ${node}`;\n\t\t\t\t\tconst extract_functions = () => {\n\t\t\t\t\t\tconst deps = Array.from(contextual_dependencies);\n\t\t\t\t\t\tconst function_expression = node as FunctionExpression;\n\n\t\t\t\t\t\tconst has_args = function_expression.params.length > 0;\n\t\t\t\t\t\tfunction_expression.params = [\n\t\t\t\t\t\t\t...deps.map(name => ({ type: 'Identifier', name } as Identifier)),\n\t\t\t\t\t\t\t...function_expression.params\n\t\t\t\t\t\t];\n\n\t\t\t\t\t\tconst context_args = deps.map(name => block.renderer.reference(name, ctx));\n\n\t\t\t\t\t\tcomponent.partly_hoisted.push(declaration);\n\n\t\t\t\t\t\tblock.renderer.add_to_context(id.name);\n\t\t\t\t\t\tconst callee = block.renderer.reference(id);\n\n\t\t\t\t\t\tthis.replace(id as any);\n\n\t\t\t\t\t\tconst func_declaration = has_args\n\t\t\t\t\t\t\t? b`function ${id}(...args) {\n\t\t\t\t\t\t\t\treturn ${callee}(${context_args}, ...args);\n\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t\t: b`function ${id}() {\n\t\t\t\t\t\t\t\treturn ${callee}(${context_args});\n\t\t\t\t\t\t\t}`;\n\t\t\t\t\t\treturn { deps, func_declaration };\n\t\t\t\t\t};\n\n\t\t\t\t\tif (owner.type === 'ConstTag') {\n\t\t\t\t\t\t// we need a combo block/init recipe\n\t\t\t\t\t\tif (contextual_dependencies.size === 0) {\n\t\t\t\t\t\t\tlet child_scope = scope;\n\t\t\t\t\t\t\twalk(node, {\n\t\t\t\t\t\t\t\tenter(node: Node, parent: any) {\n\t\t\t\t\t\t\t\t\tif (map.has(node)) child_scope = map.get(node);\n\t\t\t\t\t\t\t\t\tif (node.type === 'Identifier' && is_reference(node, parent)) {\n\t\t\t\t\t\t\t\t\t\tif (child_scope.has(node.name)) return;\n\t\t\t\t\t\t\t\t\t\tthis.replace(block.renderer.reference(node, ctx));\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tleave(node: Node) {\n\t\t\t\t\t\t\t\t\tif (map.has(node)) child_scope = child_scope.parent;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst { func_declaration } = extract_functions();\n\t\t\t\t\t\t\tthis.replace(func_declaration[0]);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (dependencies.size === 0 && contextual_dependencies.size === 0) {\n\t\t\t\t\t\t// we can hoist this out of the component completely\n\t\t\t\t\t\tcomponent.fully_hoisted.push(declaration);\n\n\t\t\t\t\t\tthis.replace(id as any);\n\n\t\t\t\t\t\tcomponent.add_var(node, {\n\t\t\t\t\t\t\tname: id.name,\n\t\t\t\t\t\t\tinternal: true,\n\t\t\t\t\t\t\thoistable: true,\n\t\t\t\t\t\t\treferenced: true\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (contextual_dependencies.size === 0) {\n\t\t\t\t\t\t// function can be hoisted inside the component init\n\t\t\t\t\t\tcomponent.partly_hoisted.push(declaration);\n\n\t\t\t\t\t\tblock.renderer.add_to_context(id.name);\n\t\t\t\t\t\tthis.replace(block.renderer.reference(id));\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// we need a combo block/init recipe\n\t\t\t\t\t\tconst { deps, func_declaration } = extract_functions();\n\n\t\t\t\t\t\tif (owner.type === 'Attribute' && owner.parent.name === 'slot') {\n\t\t\t\t\t\t\tconst dep_scopes = new Set<INode>(deps.map(name => template_scope.get_owner(name)));\n\t\t\t\t\t\t\t// find the nearest scopes\n\t\t\t\t\t\t\tlet node: INode = owner.parent;\n\t\t\t\t\t\t\twhile (node && !dep_scopes.has(node)) {\n\t\t\t\t\t\t\t\tnode = node.parent;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst func_expression = func_declaration[0];\n\n\t\t\t\t\t\t\tif (node.type === 'InlineComponent' || node.type === 'SlotTemplate') {\n\t\t\t\t\t\t\t\t// <Comp let:data />\n\t\t\t\t\t\t\t\tthis.replace(func_expression);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// {#each}, {#await}\n\t\t\t\t\t\t\t\tconst func_id = component.get_unique_name(id.name + '_func');\n\t\t\t\t\t\t\t\tblock.renderer.add_to_context(func_id.name, true);\n\t\t\t\t\t\t\t\t// rename #ctx -> child_ctx;\n\t\t\t\t\t\t\t\twalk(func_expression, {\n\t\t\t\t\t\t\t\t\tenter(node: Node) {\n\t\t\t\t\t\t\t\t\t\tif (node.type === 'Identifier' && node.name === '#ctx') {\n\t\t\t\t\t\t\t\t\t\t\tnode.name = 'child_ctx';\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t// add to get_xxx_context\n\t\t\t\t\t\t\t\t// child_ctx[x] = function () { ... }\n\t\t\t\t\t\t\t\t(template_scope.get_owner(deps[0]) as EachBlock).contexts.push({\n\t\t\t\t\t\t\t\t\tkey: func_id,\n\t\t\t\t\t\t\t\t\tmodifier: () => func_expression,\n\t\t\t\t\t\t\t\t\tdefault_modifier: node => node\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tthis.replace(block.renderer.reference(func_id));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdeclarations.push(func_declaration);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction_expression = null;\n\t\t\t\t\tdependencies = null;\n\t\t\t\t\tcontextual_dependencies = null;\n\n\t\t\t\t\tif (parent && parent.type === 'Property') {\n\t\t\t\t\t\tparent.method = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') {\n\t\t\t\t\tconst assignee = node.type === 'AssignmentExpression' ? node.left : node.argument;\n\n\t\t\t\t\tconst object_name = get_object(assignee).name;\n\n\t\t\t\t\tif (scope.has(object_name)) return;\n\n\t\t\t\t\t// normally (`a = 1`, `b.c = 2`), there'll be a single name\n\t\t\t\t\t// (a or b). In destructuring cases (`[d, e] = [e, d]`) there\n\t\t\t\t\t// may be more, in which case we need to tack the extra ones\n\t\t\t\t\t// onto the initial function call\n\t\t\t\t\tconst names = new Set(extract_names(assignee as Node));\n\n\t\t\t\t\tconst traced: Set<string> = new Set();\n\t\t\t\t\tnames.forEach(name => {\n\t\t\t\t\t\tconst dependencies = template_scope.dependencies_for_name.get(name);\n\t\t\t\t\t\tif (dependencies) {\n\t\t\t\t\t\t\tdependencies.forEach(name => traced.add(name));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttraced.add(name);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tconst context = block.bindings.get(object_name);\n\n\t\t\t\t\tif (context) {\n\t\t\t\t\t\t// for `{#each array as item}`\n\t\t\t\t\t\t// replace `item = 1` to `each_array[each_index] = 1`, this allow us to mutate the array\n\t\t\t\t\t\t// rather than mutating the local `item` variable\n\t\t\t\t\t\tconst { snippet, object, property } = context;\n\t\t\t\t\t\tconst replaced: any = replace_object(assignee, snippet);\n\t\t\t\t\t\tif (node.type === 'AssignmentExpression') {\n\t\t\t\t\t\t\tnode.left = replaced;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.argument = replaced;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontextual_dependencies.add(object.name);\n\t\t\t\t\t\tcontextual_dependencies.add(property.name);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.replace(invalidate(block.renderer, scope, node, traced));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tif (declarations.length > 0) {\n\t\t\tblock.maintain_context = true;\n\t\t\tdeclarations.forEach(declaration => {\n\t\t\t\tblock.chunks.init.push(declaration);\n\t\t\t});\n\t\t}\n\n\t\treturn (this.manipulated = node as Node);\n\t}\n}\n\nfunction get_function_name(_node, parent) {\n\tif (parent.type === 'EventHandler') {\n\t\treturn `${parent.name}_handler`;\n\t}\n\n\tif (parent.type === 'Action') {\n\t\treturn `${parent.name}_function`;\n\t}\n\n\treturn 'func';\n}\n","import { x } from 'code-red';\nimport { Node, Identifier, Expression } from 'estree';\nimport { walk } from 'estree-walker';\nimport is_reference, { NodeWithPropertyDefinition } from 'is-reference';\nimport { clone } from '../../../utils/clone';\nimport Component from '../../Component';\nimport flatten_reference from '../../utils/flatten_reference';\nimport TemplateScope from './TemplateScope';\n\nexport interface Context {\n\tkey: Identifier;\n\tname?: string;\n\tmodifier: (node: Node) => Node;\n\tdefault_modifier: (node: Node, to_ctx: (name: string) => Node) => Node;\n}\n\nexport function unpack_destructuring({\n\tcontexts,\n\tnode,\n\tmodifier = (node) => node,\n\tdefault_modifier = (node) => node,\n\tscope,\n\tcomponent,\n\tcontext_rest_properties\n}: {\n\tcontexts: Context[];\n\tnode: Node;\n\tmodifier?: Context['modifier'];\n\tdefault_modifier?: Context['default_modifier'];\n\tscope: TemplateScope;\n\tcomponent: Component;\n\tcontext_rest_properties: Map<string, Node>;\n}) {\n\tif (!node) return;\n\n\tif (node.type === 'Identifier') {\n\t\tcontexts.push({\n\t\t\tkey: node as Identifier,\n\t\t\tmodifier,\n\t\t\tdefault_modifier\n\t\t});\n\t} else if (node.type === 'RestElement') {\n\t\tcontexts.push({\n\t\t\tkey: node.argument as Identifier,\n\t\t\tmodifier,\n\t\t\tdefault_modifier\n\t\t});\n\t\tcontext_rest_properties.set((node.argument as Identifier).name, node);\n\t} else if (node.type === 'ArrayPattern') {\n\t\tnode.elements.forEach((element, i) => {\n\t\t\tif (element && element.type === 'RestElement') {\n\t\t\t\tunpack_destructuring({\n\t\t\t\t\tcontexts,\n\t\t\t\t\tnode: element,\n\t\t\t\t\tmodifier: (node) => x`${modifier(node)}.slice(${i})` as Node,\n\t\t\t\t\tdefault_modifier,\n\t\t\t\t\tscope,\n\t\t\t\t\tcomponent,\n\t\t\t\t\tcontext_rest_properties\n\t\t\t\t});\n\t\t\t\tcontext_rest_properties.set((element.argument as Identifier).name, element);\n\t\t\t} else if (element && element.type === 'AssignmentPattern') {\n\t\t\t\tconst n = contexts.length;\n\t\t\t\tmark_referenced(element.right, scope, component);\n\n\t\t\t\tunpack_destructuring({\n\t\t\t\t\tcontexts,\n\t\t\t\t\tnode: element.left,\n\t\t\t\t\tmodifier: (node) => x`${modifier(node)}[${i}]`,\n\t\t\t\t\tdefault_modifier: (node, to_ctx) =>\n\t\t\t\t\t\tx`${node} !== undefined ? ${node} : ${update_reference(\n\t\t\t\t\t\t\tcontexts,\n\t\t\t\t\t\t\tn,\n\t\t\t\t\t\t\telement.right,\n\t\t\t\t\t\t\tto_ctx\n\t\t\t\t\t\t)}` as Node,\n\t\t\t\t\tscope,\n\t\t\t\t\tcomponent,\n\t\t\t\t\tcontext_rest_properties\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tunpack_destructuring({\n\t\t\t\t\tcontexts,\n\t\t\t\t\tnode: element,\n\t\t\t\t\tmodifier: (node) => x`${modifier(node)}[${i}]` as Node,\n\t\t\t\t\tdefault_modifier,\n\t\t\t\t\tscope,\n\t\t\t\t\tcomponent,\n\t\t\t\t\tcontext_rest_properties\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t} else if (node.type === 'ObjectPattern') {\n\t\tconst used_properties = [];\n\n\t\tnode.properties.forEach((property) => {\n\t\t\tif (property.type === 'RestElement') {\n\t\t\t\tunpack_destructuring({\n\t\t\t\t\tcontexts,\n\t\t\t\t\tnode: property.argument,\n\t\t\t\t\tmodifier: (node) =>\n\t\t\t\t\t\tx`@object_without_properties(${modifier(\n\t\t\t\t\t\t\tnode\n\t\t\t\t\t\t)}, [${used_properties}])` as Node,\n\t\t\t\t\tdefault_modifier,\n\t\t\t\t\tscope,\n\t\t\t\t\tcomponent,\n\t\t\t\t\tcontext_rest_properties\n\t\t\t\t});\n\t\t\t\tcontext_rest_properties.set((property.argument as Identifier).name, property);\n\t\t\t} else {\n\t\t\t\tconst key = property.key as Identifier;\n\t\t\t\tconst value = property.value;\n\n\t\t\t\tused_properties.push(x`\"${key.name}\"`);\n\t\t\t\tif (value.type === 'AssignmentPattern') {\n\t\t\t\t\tconst n = contexts.length;\n\n\t\t\t\t\tmark_referenced(value.right, scope, component);\n\n\t\t\t\t\tunpack_destructuring({\n\t\t\t\t\t\tcontexts,\n\t\t\t\t\t\tnode: value.left,\n\t\t\t\t\t\tmodifier: (node) => x`${modifier(node)}.${key.name}`,\n\t\t\t\t\t\tdefault_modifier: (node, to_ctx) =>\n\t\t\t\t\t\t\tx`${node} !== undefined ? ${node} : ${update_reference(\n\t\t\t\t\t\t\t\tcontexts,\n\t\t\t\t\t\t\t\tn,\n\t\t\t\t\t\t\t\tvalue.right,\n\t\t\t\t\t\t\t\tto_ctx\n\t\t\t\t\t\t\t)}` as Node,\n\t\t\t\t\t\tscope,\n\t\t\t\t\t\tcomponent,\n\t\t\t\t\t\tcontext_rest_properties\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tunpack_destructuring({\n\t\t\t\t\t\tcontexts,\n\t\t\t\t\t\tnode: value,\n\t\t\t\t\t\tmodifier: (node) => x`${modifier(node)}.${key.name}` as Node,\n\t\t\t\t\t\tdefault_modifier,\n\t\t\t\t\t\tscope,\n\t\t\t\t\t\tcomponent,\n\t\t\t\t\t\tcontext_rest_properties\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction update_reference(\n\tcontexts: Context[],\n\tn: number,\n\texpression: Expression,\n\tto_ctx: (name: string) => Node\n): Node {\n\tconst find_from_context = (node: Identifier) => {\n\t\tfor (let i = n; i < contexts.length; i++) {\n\t\t\tconst { key } = contexts[i];\n\t\t\tif (node.name === key.name) {\n\t\t\t\tthrow new Error(`Cannot access '${node.name}' before initialization`);\n\t\t\t}\n\t\t}\n\t\treturn to_ctx(node.name);\n\t};\n\n\tif (expression.type === 'Identifier') {\n\t\treturn find_from_context(expression);\n\t}\n\n\t// NOTE: avoid unnecessary deep clone?\n\texpression = clone(expression) as Expression;\n\twalk(expression, {\n\t\tenter(node, parent: Node) {\n\t\t\tif (\n\t\t\t\tis_reference(\n\t\t\t\t\tnode as NodeWithPropertyDefinition,\n\t\t\t\t\tparent as NodeWithPropertyDefinition\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tthis.replace(find_from_context(node as Identifier));\n\t\t\t\tthis.skip();\n\t\t\t}\n\t\t}\n\t});\n\n\treturn expression;\n}\n\nfunction mark_referenced(\n\tnode: Node,\n\tscope: TemplateScope,\n\tcomponent: Component\n) {\n\twalk(node, {\n\t\tenter(node: any, parent: any) {\n\t\t\tif (is_reference(node, parent)) {\n\t\t\t\tconst { name } = flatten_reference(node);\n\t\t\t\tif (!scope.is_let(name) && !scope.names.has(name)) {\n\t\t\t\t\tcomponent.add_reference(node, name);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n","import Node from './shared/Node';\nimport Expression from './shared/Expression';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { Context, unpack_destructuring } from './shared/Context';\nimport { ConstTag as ConstTagType } from '../../interfaces';\nimport { INodeAllowConstTag } from './interfaces';\nimport { walk } from 'estree-walker';\nimport { extract_identifiers } from 'periscopic';\nimport is_reference, { NodeWithPropertyDefinition } from 'is-reference';\nimport get_object from '../utils/get_object';\nimport compiler_errors from '../compiler_errors';\nimport { Node as ESTreeNode } from 'estree';\n\nconst allowed_parents = new Set(['EachBlock', 'CatchBlock', 'ThenBlock', 'InlineComponent', 'SlotTemplate', 'IfBlock', 'ElseBlock']);\n\nexport default class ConstTag extends Node {\n\ttype: 'ConstTag';\n\texpression: Expression;\n\tcontexts: Context[] = [];\n\tnode: ConstTagType;\n\tscope: TemplateScope;\n\tcontext_rest_properties: Map<string, ESTreeNode> = new Map();\n\n\tassignees: Set<string> = new Set();\n dependencies: Set<string> = new Set();\n\n\tconstructor(component: Component, parent: INodeAllowConstTag, scope: TemplateScope, info: ConstTagType) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tif (!allowed_parents.has(parent.type)) {\n\t\t\tcomponent.error(info, compiler_errors.invalid_const_placement);\n\t\t}\n\t\tthis.node = info;\n\t\tthis.scope = scope;\n\n\t\tconst { assignees, dependencies } = this;\n\n\t\textract_identifiers(info.expression.left).forEach(({ name }) => {\n assignees.add(name);\n\t\t\tconst owner = this.scope.get_owner(name);\n\t\t\tif (owner === parent) {\n\t\t\t\tcomponent.error(info, compiler_errors.invalid_const_declaration(name));\n\t\t\t}\n });\n\n walk(info.expression.right, {\n enter(node, parent) {\n if (is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\n const identifier = get_object(node as any);\n const { name } = identifier;\n dependencies.add(name);\n }\n }\n });\n\t}\n\n\tparse_expression() {\n\t\tunpack_destructuring({\n\t\t\tcontexts: this.contexts,\n\t\t\tnode: this.node.expression.left,\n\t\t\tscope: this.scope,\n\t\t\tcomponent: this.component,\n\t\t\tcontext_rest_properties: this.context_rest_properties\n\t\t});\n\t\tthis.expression = new Expression(this.component, this, this.scope, this.node.expression.right);\n\t\tthis.contexts.forEach(context => {\n\t\t\tconst owner = this.scope.get_owner(context.key.name);\n\t\t\tif (owner && owner.type === 'ConstTag' && owner.parent === this.parent) {\n\t\t\t\tthis.component.error(this.node, compiler_errors.invalid_const_declaration(context.key.name));\n\t\t\t}\n\t\t\tthis.scope.add(context.key.name, this.expression.dependencies, this);\n\t\t});\n\t}\n}\n","import map_children from './shared/map_children';\nimport AbstractBlock from './shared/AbstractBlock';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport Node from './shared/Node';\n\nexport default class PendingBlock extends AbstractBlock {\n\ttype: 'PendingBlock';\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\t\tthis.children = map_children(component, parent, scope, info.children);\n\n\t\tif (!info.skip) {\n\t\t\tthis.warn_if_empty_block();\n\t\t}\n\t}\n}\n","import TemplateScope from './shared/TemplateScope';\nimport AbstractBlock from './shared/AbstractBlock';\nimport AwaitBlock from './AwaitBlock';\nimport Component from '../Component';\nimport { TemplateNode } from '../../interfaces';\nimport get_const_tags from './shared/get_const_tags';\nimport ConstTag from './ConstTag';\n\nexport default class CatchBlock extends AbstractBlock {\n\ttype: 'CatchBlock';\n\tscope: TemplateScope;\n\tconst_tags: ConstTag[];\n\n\tconstructor(component: Component, parent: AwaitBlock, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.scope = scope.child();\n\t\tif (parent.catch_node) {\n\t\t\tparent.catch_contexts.forEach(context => {\n\t\t\t\tthis.scope.add(context.key.name, parent.expression.dependencies, this);\n\t\t\t});\n\t\t}\n\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, parent));\n\n\t\tif (!info.skip) {\n\t\t\tthis.warn_if_empty_block();\n\t\t}\n\t}\n}\n","import Node from './shared/Node';\nimport PendingBlock from './PendingBlock';\nimport ThenBlock from './ThenBlock';\nimport CatchBlock from './CatchBlock';\nimport Expression from './shared/Expression';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport { Context, unpack_destructuring } from './shared/Context';\nimport { Node as ESTreeNode } from 'estree';\n\nexport default class AwaitBlock extends Node {\n\ttype: 'AwaitBlock';\n\texpression: Expression;\n\n\tthen_contexts: Context[];\n\tcatch_contexts: Context[];\n\n\tthen_node: ESTreeNode | null;\n\tcatch_node: ESTreeNode | null;\n\n\tpending: PendingBlock;\n\tthen: ThenBlock;\n\tcatch: CatchBlock;\n\n\tcontext_rest_properties: Map<string, ESTreeNode> = new Map();\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\n\n\t\tthis.then_node = info.value;\n\t\tthis.catch_node = info.error;\n\n\t\tif (this.then_node) {\n\t\t\tthis.then_contexts = [];\n\t\t\tunpack_destructuring({ contexts: this.then_contexts, node: info.value, scope, component, context_rest_properties: this.context_rest_properties });\n\t\t}\n\n\t\tif (this.catch_node) {\n\t\t\tthis.catch_contexts = [];\n\t\t\tunpack_destructuring({ contexts: this.catch_contexts, node: info.error, scope, component, context_rest_properties: this.context_rest_properties });\n\t\t}\n\n\t\tthis.pending = new PendingBlock(component, this, scope, info.pending);\n\t\tthis.then = new ThenBlock(component, this, scope, info.then);\n\t\tthis.catch = new CatchBlock(component, this, scope, info.catch);\n\t}\n}\n","import Node from './shared/Node';\nimport Expression from './shared/Expression';\nimport Component from '../Component';\nimport { sanitize } from '../../utils/names';\nimport { Identifier } from 'estree';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\n\nconst regex_contains_term_function_expression = /FunctionExpression/;\n\nexport default class EventHandler extends Node {\n\ttype: 'EventHandler';\n\tname: string;\n\tmodifiers: Set<string>;\n\texpression: Expression;\n\thandler_name: Identifier;\n\tuses_context = false;\n\tcan_make_passive = false;\n\n\tconstructor(component: Component, parent: Node, template_scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, template_scope, info);\n\n\t\tthis.name = info.name;\n\t\tthis.modifiers = new Set(info.modifiers);\n\n\t\tif (info.expression) {\n\t\t\tthis.expression = new Expression(component, this, template_scope, info.expression);\n\t\t\tthis.uses_context = this.expression.uses_context;\n\n\t\t\tif (regex_contains_term_function_expression.test(info.expression.type) && info.expression.params.length === 0) {\n\t\t\t\t// TODO make this detection more accurate — if `event.preventDefault` isn't called, and\n\t\t\t\t// `event` is passed to another function, we can make it passive\n\t\t\t\tthis.can_make_passive = true;\n\t\t\t} else if (info.expression.type === 'Identifier') {\n\t\t\t\tlet node = component.node_for_declaration.get(info.expression.name);\n\n\t\t\t\tif (node) {\n\t\t\t\t\tif (node.type === 'VariableDeclaration') {\n\t\t\t\t\t\t// for `const handleClick = () => {...}`, we want the [arrow] function expression node\n\t\t\t\t\t\tconst declarator = node.declarations.find(d => (d.id as Identifier).name === info.expression.name);\n\t\t\t\t\t\tnode = declarator && declarator.init;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (node && (node.type === 'FunctionExpression' || node.type === 'FunctionDeclaration' || node.type === 'ArrowFunctionExpression') && node.params.length === 0) {\n\t\t\t\t\t\tthis.can_make_passive = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.handler_name = component.get_unique_name(`${sanitize(this.name)}_handler`);\n\t\t}\n\t}\n\n\tget reassigned(): boolean {\n\t\tif (!this.expression) {\n\t\t\treturn false;\n\t\t}\n\t\tconst node = this.expression.node;\n\n\t\tif (regex_contains_term_function_expression.test(node.type)) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn this.expression.dynamic_dependencies().length > 0;\n\t}\n}\n","import Node from './shared/Node';\nimport Expression from './shared/Expression';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { Directive } from '../../interfaces';\n\nexport default class Action extends Node {\n\ttype: 'Action';\n\tname: string;\n\texpression: Expression;\n\tuses_context: boolean;\n\ttemplate_scope: TemplateScope;\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: Directive) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tconst object = info.name.split('.')[0];\n\t\tcomponent.warn_if_undefined(object, info, scope);\n\n\t\tthis.name = info.name;\n\t\tcomponent.add_reference(this as any, object);\n\n\t\tthis.expression = info.expression\n\t\t\t? new Expression(component, this, scope, info.expression)\n\t\t\t: null;\n\n\t\tthis.template_scope = scope;\n\n\t\tthis.uses_context = this.expression && this.expression.uses_context;\n\t}\n}\n","import Node from './shared/Node';\nimport EventHandler from './EventHandler';\nimport Action from './Action';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { Element } from '../../interfaces';\n\nexport default class Body extends Node {\n\ttype: 'Body';\n\thandlers: EventHandler[] = [];\n\tactions: Action[] = [];\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: Element) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tinfo.attributes.forEach((node) => {\n\t\t\tif (node.type === 'EventHandler') {\n\t\t\t\tthis.handlers.push(new EventHandler(component, this, scope, node));\n\t\t\t} else if (node.type === 'Action') {\n\t\t\t\tthis.actions.push(new Action(component, this, scope, node));\n\t\t\t} else {\n\t\t\t\t// TODO there shouldn't be anything else here...\n\t\t\t}\n\t\t});\n\t}\n}\n","import { TemplateNode } from '../../interfaces';\nimport Component from '../Component';\nimport Node from './shared/Node';\nimport TemplateScope from './shared/TemplateScope';\n\nexport default class Comment extends Node {\n\ttype: 'Comment';\n\tdata: string;\n\tignores: string[];\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\t\tthis.data = info.data;\n\t\tthis.ignores = info.ignores;\n\t}\n}\n","import AbstractBlock from './shared/AbstractBlock';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport Node from './shared/Node';\nimport ConstTag from './ConstTag';\nimport get_const_tags from './shared/get_const_tags';\n\nexport default class ElseBlock extends AbstractBlock {\n\ttype: 'ElseBlock';\n\tscope: TemplateScope;\n\tconst_tags: ConstTag[];\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.scope = scope.child();\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, this));\n\n\t\tthis.warn_if_empty_block();\n\t}\n}\n","import ElseBlock from './ElseBlock';\nimport Expression from './shared/Expression';\nimport TemplateScope from './shared/TemplateScope';\nimport AbstractBlock from './shared/AbstractBlock';\nimport Element from './Element';\nimport ConstTag from './ConstTag';\nimport { Context, unpack_destructuring } from './shared/Context';\nimport { Node } from 'estree';\nimport Component from '../Component';\nimport { TemplateNode } from '../../interfaces';\nimport compiler_errors from '../compiler_errors';\nimport { INode } from './interfaces';\nimport get_const_tags from './shared/get_const_tags';\n\nexport default class EachBlock extends AbstractBlock {\n\ttype: 'EachBlock';\n\n\texpression: Expression;\n\tcontext_node: Node;\n\n\titerations: string;\n\tindex: string;\n\tcontext: string;\n\tkey: Expression;\n\tscope: TemplateScope;\n\tcontexts: Context[];\n\tconst_tags: ConstTag[];\n\thas_animation: boolean;\n\thas_binding = false;\n\thas_index_binding = false;\n\tcontext_rest_properties: Map<string, Node>;\n\telse?: ElseBlock;\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\n\t\tthis.context = info.context.name || 'each'; // TODO this is used to facilitate binding; currently fails with destructuring\n\t\tthis.context_node = info.context;\n\t\tthis.index = info.index;\n\n\t\tthis.scope = scope.child();\n\t\tthis.context_rest_properties = new Map();\n\t\tthis.contexts = [];\n\t\tunpack_destructuring({ contexts: this.contexts, node: info.context, scope, component, context_rest_properties: this.context_rest_properties });\n\n\t\tthis.contexts.forEach(context => {\n\t\t\tthis.scope.add(context.key.name, this.expression.dependencies, this);\n\t\t});\n\n\t\tif (this.index) {\n\t\t\t// index can only change if this is a keyed each block\n\t\t\tconst dependencies = info.key ? this.expression.dependencies : new Set([]);\n\t\t\tthis.scope.add(this.index, dependencies, this);\n\t\t}\n\n\t\tthis.key = info.key\n\t\t\t? new Expression(component, this, this.scope, info.key)\n\t\t\t: null;\n\n\t\tthis.has_animation = false;\n\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, this));\n\n\t\tif (this.has_animation) {\n\t\t\tthis.children = this.children.filter(child => !isEmptyNode(child) && !isCommentNode(child));\n\n\t\t\tif (this.children.length !== 1) {\n\t\t\t\tconst child = this.children.find(child => !!(child as Element).animation);\n\t\t\t\tcomponent.error((child as Element).animation, compiler_errors.invalid_animation_sole);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthis.warn_if_empty_block();\n\n\t\tthis.else = info.else\n\t\t\t? new ElseBlock(component, this, this.scope, info.else)\n\t\t\t: null;\n\t}\n}\n\nfunction isEmptyNode(node: INode) {\n\treturn node.type === 'Text' && node.data.trim() === '';\n}\nfunction isCommentNode(node: INode) {\n\treturn node.type === 'Comment';\n}\n","export function string_literal(data: string) {\n\treturn {\n\t\ttype: 'Literal',\n\t\tvalue: data\n\t};\n}\n\nexport function escape(data: string, { only_escape_at_symbol = false } = {}) {\n\treturn data.replace(only_escape_at_symbol ? /@+/g : /(@+|#+)/g, (match: string) => {\n\t\treturn match + match[0];\n\t});\n}\n\nconst escaped = {\n\t'\"': '"',\n\t\"'\": ''',\n\t'&': '&',\n\t'<': '<',\n\t'>': '>'\n};\n\nconst regex_html_characters_to_escape = /[\"'&<>]/g;\n\nexport function escape_html(html) {\n\treturn String(html).replace(regex_html_characters_to_escape, match => escaped[match]);\n}\n\nconst regex_template_characters_to_escape = /(\\${|`|\\\\)/g;\n\nexport function escape_template(str) {\n\treturn str.replace(regex_template_characters_to_escape, '\\\\$1');\n}\n","export default function add_to_set<T>(a: Set<T>, b: Set<T> | T[]) {\n\t// @ts-ignore\n\tb.forEach(item => {\n\t\ta.add(item);\n\t});\n}\n","import { string_literal } from '../utils/stringify';\nimport add_to_set from '../utils/add_to_set';\nimport Component from '../Component';\nimport Node from './shared/Node';\nimport Element from './Element';\nimport Text from './Text';\nimport Expression from './shared/Expression';\nimport TemplateScope from './shared/TemplateScope';\nimport { x } from 'code-red';\nimport { TemplateNode } from '../../interfaces';\n\nexport default class Attribute extends Node {\n\ttype: 'Attribute' | 'Spread';\n\tstart: number;\n\tend: number;\n\tscope: TemplateScope;\n\n\tcomponent: Component;\n\tparent: Element;\n\tname: string;\n\tis_spread: boolean;\n\tis_true: boolean;\n\tis_static: boolean;\n\texpression?: Expression;\n\tchunks: Array<Text | Expression>;\n\tdependencies: Set<string>;\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\t\tthis.scope = scope;\n\n\t\tif (info.type === 'Spread') {\n\t\t\tthis.name = null;\n\t\t\tthis.is_spread = true;\n\t\t\tthis.is_true = false;\n\n\t\t\tthis.expression = new Expression(component, this, scope, info.expression);\n\t\t\tthis.dependencies = this.expression.dependencies;\n\t\t\tthis.chunks = null;\n\n\t\t\tthis.is_static = false;\n\t\t} else {\n\t\t\tthis.name = info.name;\n\t\t\tthis.is_true = info.value === true;\n\t\t\tthis.is_static = true;\n\n\t\t\tthis.dependencies = new Set();\n\n\t\t\tthis.chunks = this.is_true\n\t\t\t\t? []\n\t\t\t\t: info.value.map(node => {\n\t\t\t\t\tif (node.type === 'Text') return node;\n\n\t\t\t\t\tthis.is_static = false;\n\n\t\t\t\t\tconst expression = new Expression(component, this, scope, node.expression);\n\n\t\t\t\t\tadd_to_set(this.dependencies, expression.dependencies);\n\t\t\t\t\treturn expression;\n\t\t\t\t});\n\t\t}\n\t}\n\n\tget_dependencies() {\n\t\tif (this.is_spread) return this.expression.dynamic_dependencies();\n\n\t\tconst dependencies: Set<string> = new Set();\n\t\tthis.chunks.forEach(chunk => {\n\t\t\tif (chunk.type === 'Expression') {\n\t\t\t\tadd_to_set(dependencies, chunk.dynamic_dependencies());\n\t\t\t}\n\t\t});\n\n\t\treturn Array.from(dependencies);\n\t}\n\n\tget_value(block) {\n\t\tif (this.is_true) return x`true`;\n\t\tif (this.chunks.length === 0) return x`\"\"`;\n\n\t\tif (this.chunks.length === 1) {\n\t\t\treturn this.chunks[0].type === 'Text'\n\t\t\t\t? string_literal((this.chunks[0] as Text).data)\n\t\t\t\t: (this.chunks[0] as Expression).manipulate(block);\n\t\t}\n\n\t\tlet expression = this.chunks\n\t\t\t.map(chunk => chunk.type === 'Text' ? string_literal(chunk.data) : chunk.manipulate(block))\n\t\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\n\n\t\tif (this.chunks[0].type !== 'Text') {\n\t\t\texpression = x`\"\" + ${expression}`;\n\t\t}\n\n\t\treturn expression;\n\t}\n\n\tget_static_value() {\n\t\tif (!this.is_static) return null;\n\n\t\treturn this.is_true\n\t\t\t? true\n\t\t\t: this.chunks[0]\n\t\t\t\t// method should be called only when `is_static = true`\n\t\t\t\t? (this.chunks[0] as Text).data\n\t\t\t\t: '';\n\t}\n\n\tshould_cache() {\n\t\treturn this.is_static\n\t\t\t? false\n\t\t\t: this.chunks.length === 1\n\t\t\t\t// @ts-ignore todo: probably error\n\t\t\t\t? this.chunks[0].node.type !== 'Identifier' || this.scope.names.has(this.chunks[0].node.name)\n\t\t\t\t: true;\n\t}\n}\n","import Node from './shared/Node';\nimport get_object from '../utils/get_object';\nimport Expression from './shared/Expression';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { regex_dimensions } from '../../utils/patterns';\nimport { Node as ESTreeNode } from 'estree';\nimport { TemplateNode } from '../../interfaces';\nimport Element from './Element';\nimport InlineComponent from './InlineComponent';\nimport Window from './Window';\nimport { clone } from '../../utils/clone';\nimport compiler_errors from '../compiler_errors';\nimport compiler_warnings from '../compiler_warnings';\n\n// TODO this should live in a specific binding\nconst read_only_media_attributes = new Set([\n\t'duration',\n\t'buffered',\n\t'seekable',\n\t'played',\n\t'seeking',\n\t'ended',\n\t'videoHeight',\n\t'videoWidth',\n\t'naturalWidth',\n\t'naturalHeight',\n\t'readyState'\n]);\n\nexport default class Binding extends Node {\n\ttype: 'Binding';\n\tname: string;\n\texpression: Expression;\n\traw_expression: ESTreeNode; // TODO exists only for bind:this — is there a more elegant solution?\n\tis_contextual: boolean;\n\tis_readonly: boolean;\n\n\tconstructor(component: Component, parent: Element | InlineComponent | Window, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tif (info.expression.type !== 'Identifier' && info.expression.type !== 'MemberExpression') {\n\t\t\tcomponent.error(info, compiler_errors.invalid_directive_value);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.name = info.name;\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\n\t\tthis.raw_expression = clone(info.expression);\n\n\t\tconst { name } = get_object(this.expression.node);\n\n\t\tthis.is_contextual = Array.from(this.expression.references).some(name => scope.names.has(name));\n\t\tif (this.is_contextual) this.validate_binding_rest_properties(scope);\n\n\t\t// make sure we track this as a mutable ref\n\t\tif (scope.is_let(name)) {\n\t\t\tcomponent.error(this, compiler_errors.invalid_binding_let);\n\t\t\treturn;\n\t\t} else if (scope.names.has(name)) {\n\t\t\tif (scope.is_await(name)) {\n\t\t\t\tcomponent.error(this, compiler_errors.invalid_binding_await);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (scope.is_const(name)) {\n\t\t\t\tcomponent.error(this, compiler_errors.invalid_binding_const);\n\t\t\t}\n\n\t\t\tscope.dependencies_for_name.get(name).forEach(name => {\n\t\t\t\tconst variable = component.var_lookup.get(name);\n\t\t\t\tif (variable) {\n\t\t\t\t\tvariable.mutated = true;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst variable = component.var_lookup.get(name);\n\n\t\t\tif (!variable || variable.global) {\n\t\t\t\tcomponent.error(this.expression.node as any, compiler_errors.binding_undeclared(name));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvariable[this.expression.node.type === 'MemberExpression' ? 'mutated' : 'reassigned'] = true;\n\n\t\t\tif (info.expression.type === 'Identifier' && !variable.writable) {\n\t\t\t\tcomponent.error(this.expression.node as any, compiler_errors.invalid_binding_writable);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst type = parent.get_static_attribute_value('type');\n\n\t\tthis.is_readonly =\n\t\t\tregex_dimensions.test(this.name) ||\n\t\t\t(isElement(parent) &&\n\t\t\t\t((parent.is_media_node() && read_only_media_attributes.has(this.name)) ||\n\t\t\t\t\t(parent.name === 'input' && type === 'file')) /* TODO others? */);\n\t}\n\n\tis_readonly_media_attribute() {\n\t\treturn read_only_media_attributes.has(this.name);\n\t}\n\n\tvalidate_binding_rest_properties(scope: TemplateScope) {\n\t\tthis.expression.references.forEach(name => {\n\t\t\tconst each_block = scope.get_owner(name);\n\t\t\tif (each_block && each_block.type === 'EachBlock') {\n\t\t\t\tconst rest_node = each_block.context_rest_properties.get(name);\n\t\t\t\tif (rest_node) {\n\t\t\t\t\tthis.component.warn(rest_node as any, compiler_warnings.invalid_rest_eachblock_binding(name));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction isElement(node: Node): node is Element {\n\treturn !!(node as any).is_media_node;\n}\n","import Node from './shared/Node';\nimport Expression from './shared/Expression';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport Element from './Element';\nimport compiler_errors from '../compiler_errors';\n\nexport default class Transition extends Node {\n\ttype: 'Transition';\n\tname: string;\n\tdirective: string;\n\texpression: Expression;\n\tis_local: boolean;\n\n\tconstructor(component: Component, parent: Element, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tcomponent.warn_if_undefined(info.name, info, scope);\n\n\t\tthis.name = info.name;\n\t\tcomponent.add_reference(this as any, info.name.split('.')[0]);\n\n\t\tthis.directive = info.intro && info.outro ? 'transition' : info.intro ? 'in' : 'out';\n\t\tthis.is_local = info.modifiers.includes('local');\n\n\t\tif ((info.intro && parent.intro) || (info.outro && parent.outro)) {\n\t\t\tconst parent_transition = (parent.intro || parent.outro);\n\t\t\tcomponent.error(info, compiler_errors.duplicate_transition(this.directive, parent_transition.directive));\n\t\t\treturn;\n\t\t}\n\n\t\tthis.expression = info.expression\n\t\t\t? new Expression(component, this, scope, info.expression)\n\t\t\t: null;\n\t}\n}\n","import Node from './shared/Node';\nimport Expression from './shared/Expression';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport Element from './Element';\nimport EachBlock from './EachBlock';\nimport compiler_errors from '../compiler_errors';\n\nexport default class Animation extends Node {\n\ttype: 'Animation';\n\tname: string;\n\texpression: Expression;\n\n\tconstructor(component: Component, parent: Element, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tcomponent.warn_if_undefined(info.name, info, scope);\n\n\t\tthis.name = info.name;\n\t\tcomponent.add_reference(this as any, info.name.split('.')[0]);\n\n\t\tif (parent.animation) {\n\t\t\tcomponent.error(this, compiler_errors.duplicate_animation);\n\t\t\treturn;\n\t\t}\n\n\t\tconst block = parent.parent;\n\t\tif (!block || block.type !== 'EachBlock') {\n\t\t\t// TODO can we relax the 'immediate child' rule?\n\t\t\tcomponent.error(this, compiler_errors.invalid_animation_immediate);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!block.key) {\n\t\t\tcomponent.error(this, compiler_errors.invalid_animation_key);\n\t\t\treturn;\n\t\t}\n\n\t\t(block as EachBlock).has_animation = true;\n\n\t\tthis.expression = info.expression\n\t\t\t? new Expression(component, this, scope, info.expression, true)\n\t\t\t: null;\n\t}\n}\n","import Node from './shared/Node';\nimport Expression from './shared/Expression';\nimport { TemplateNode } from '../../interfaces';\nimport TemplateScope from './shared/TemplateScope';\nimport Component from '../Component';\n\nexport default class Class extends Node {\n\ttype: 'Class';\n\tname: string;\n\texpression: Expression;\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.name = info.name;\n\n\t\tthis.expression = info.expression\n\t\t\t? new Expression(component, this, scope, info.expression)\n\t\t\t: null;\n\t}\n}\n","import { TemplateElement, TemplateLiteral } from 'estree';\nimport { MustacheTag, Text } from '../../interfaces';\n\n/**\n * Transforms a list of Text and MustacheTags into a TemplateLiteral expression.\n * Start/End positions on the elements of the expression are not set.\n */\nexport function nodes_to_template_literal(value: Array<Text | MustacheTag>): TemplateLiteral {\n const literal: TemplateLiteral = {\n type: 'TemplateLiteral',\n expressions: [],\n quasis: []\n };\n\n let quasi: TemplateElement = {\n type: 'TemplateElement',\n value: { raw: '', cooked: null },\n tail: false\n };\n\n value.forEach((node) => {\n if (node.type === 'Text') {\n quasi.value.raw += node.raw;\n } else if (node.type === 'MustacheTag') {\n literal.quasis.push(quasi);\n literal.expressions.push(node.expression as any);\n quasi = {\n type: 'TemplateElement',\n value: { raw: '', cooked: null },\n tail: false\n };\n }\n });\n quasi.tail = true;\n literal.quasis.push(quasi);\n return literal;\n}\n","import { TemplateNode } from '../../interfaces';\nimport list from '../../utils/list';\nimport compiler_errors from '../compiler_errors';\nimport Component from '../Component';\nimport { nodes_to_template_literal } from '../utils/nodes_to_template_literal';\nimport Expression from './shared/Expression';\nimport Node from './shared/Node';\nimport TemplateScope from './shared/TemplateScope';\n\nconst valid_modifiers = new Set(['important']);\n\nexport default class StyleDirective extends Node {\n\ttype: 'StyleDirective';\n\tname: string;\n\tmodifiers: Set<string>;\n\texpression: Expression;\n\tshould_cache: boolean;\n\n\tconstructor(\n\t\tcomponent: Component,\n\t\tparent: Node,\n\t\tscope: TemplateScope,\n\t\tinfo: TemplateNode\n\t) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.name = info.name;\n\t\tthis.modifiers = new Set(info.modifiers);\n\n\t\tfor (const modifier of this.modifiers) {\n\t\t\tif (!valid_modifiers.has(modifier)) {\n\t\t\t\tcomponent.error(\n\t\t\t\t\tthis,\n\t\t\t\t\tcompiler_errors.invalid_style_directive_modifier(\n\t\t\t\t\t\tlist([...valid_modifiers])\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Convert the value array to an expression so it's easier to handle\n\t\t// the StyleDirective going forward.\n\t\tif (info.value === true || (info.value.length === 1 && info.value[0].type === 'MustacheTag')) {\n\t\t\tconst identifier = info.value === true\n\t\t\t\t? {\n\t\t\t\t\ttype: 'Identifier',\n\t\t\t\t\tstart: info.end - info.name.length,\n\t\t\t\t\tend: info.end,\n\t\t\t\t\tname: info.name\n\t\t\t\t} as any\n\t\t\t\t: info.value[0].expression;\n\t\t\tthis.expression = new Expression(component, this, scope, identifier);\n\t\t\tthis.should_cache = false;\n\t\t} else {\n\t\t\tconst raw_expression = nodes_to_template_literal(info.value);\n\t\t\tthis.expression = new Expression(component, this, scope, raw_expression);\n\t\t\tthis.should_cache = raw_expression.expressions.length > 0;\n\t\t}\n\t}\n\n\tget important() {\n\t\treturn this.modifiers.has('important');\n\t}\n}\n","import Node from './shared/Node';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { INode } from './interfaces';\nimport { TemplateNode } from '../../interfaces';\nimport { regex_non_whitespace_character } from '../../utils/patterns';\n\n// Whitespace inside one of these elements will not result in\n// a whitespace node being created in any circumstances. (This\n// list is almost certainly very incomplete)\nconst elements_without_text = new Set([\n\t'audio',\n\t'datalist',\n\t'dl',\n\t'optgroup',\n\t'select',\n\t'video'\n]);\n\nconst regex_ends_with_svg = /svg$/;\n\nexport default class Text extends Node {\n\ttype: 'Text';\n\tdata: string;\n\tsynthetic: boolean;\n\n\tconstructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\t\tthis.data = info.data;\n\t\tthis.synthetic = info.synthetic || false;\n\t}\n\n\tshould_skip() {\n\t\tif (regex_non_whitespace_character.test(this.data)) return false;\n\n\t\tconst parent_element = this.find_nearest(/(?:Element|InlineComponent|SlotTemplate|Head)/);\n\t\tif (!parent_element) return false;\n\n\t\tif (parent_element.type === 'Head') return true;\n\t\tif (parent_element.type === 'InlineComponent') return parent_element.children.length === 1 && this === parent_element.children[0];\n\n\t\t// svg namespace exclusions\n\t\tif (regex_ends_with_svg.test(parent_element.namespace)) {\n\t\t\tif (this.prev && this.prev.type === 'Element' && this.prev.name === 'tspan') return false;\n\t\t}\n\n\t\treturn parent_element.namespace || elements_without_text.has(parent_element.name);\n\t}\n\n\tkeep_space(): boolean {\n\t\tif (this.component.component_options.preserveWhitespace) return true;\n\t\treturn this.within_pre();\n\t}\n\n\twithin_pre(): boolean {\n\t\tlet node = this.parent;\n\t\twhile (node) {\n\t\t\tif (node.type === 'Element' && node.name === 'pre') {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tnode = node.parent;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n","// The `foreign` namespace covers all DOM implementations that aren't HTML5.\n// It opts out of HTML5-specific a11y checks and case-insensitive attribute names.\nexport const foreign = 'https://svelte.dev/docs#template-syntax-svelte-options';\nexport const html = 'http://www.w3.org/1999/xhtml';\nexport const mathml = 'http://www.w3.org/1998/Math/MathML';\nexport const svg = 'http://www.w3.org/2000/svg';\nexport const xlink = 'http://www.w3.org/1999/xlink';\nexport const xml = 'http://www.w3.org/XML/1998/namespace';\nexport const xmlns = 'http://www.w3.org/2000/xmlns';\n\nexport const valid_namespaces = [\n\t'foreign',\n\t'html',\n\t'mathml',\n\t'svg',\n\t'xlink',\n\t'xml',\n\t'xmlns',\n\tforeign,\n\thtml,\n\tmathml,\n\tsvg,\n\txlink,\n\txml,\n\txmlns\n];\n\nexport const namespaces = { foreign, html, mathml, svg, xlink, xml, xmlns } as const;\n","import Node from './shared/Node';\nimport Component from '../Component';\nimport { walk } from 'estree-walker';\nimport { BasePattern, Identifier } from 'estree';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport compiler_errors from '../compiler_errors';\n\nconst applicable = new Set(['Identifier', 'ObjectExpression', 'ArrayExpression', 'Property']);\n\nexport default class Let extends Node {\n\ttype: 'Let';\n\tname: Identifier;\n\tvalue: Identifier;\n\tnames: string[] = [];\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.name = { type: 'Identifier', name: info.name };\n\n\t\tconst { names } = this;\n\n\t\tif (info.expression) {\n\t\t\tthis.value = info.expression;\n\n\t\t\twalk(info.expression, {\n\t\t\t\tenter(node: Identifier | BasePattern) {\n\t\t\t\t\tif (!applicable.has(node.type)) {\n\t\t\t\t\t\treturn component.error(node as any, compiler_errors.invalid_let);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (node.type === 'Identifier') {\n\t\t\t\t\t\tnames.push((node as Identifier).name);\n\t\t\t\t\t}\n\n\t\t\t\t\t// slightly unfortunate hack\n\t\t\t\t\tif (node.type === 'ArrayExpression') {\n\t\t\t\t\t\tnode.type = 'ArrayPattern';\n\t\t\t\t\t}\n\n\t\t\t\t\tif (node.type === 'ObjectExpression') {\n\t\t\t\t\t\tnode.type = 'ObjectPattern';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tnames.push(this.name.name);\n\t\t}\n\t}\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// eslint-disable-next-line no-unused-vars\nfunction iteratorProxy() {\n var values = this;\n var index = 0;\n var iter = {\n '@@iterator': function iterator() {\n return iter;\n },\n next: function next() {\n if (index < values.length) {\n var value = values[index];\n index = index + 1;\n return {\n done: false,\n value: value\n };\n } else {\n return {\n done: true\n };\n }\n }\n };\n return iter;\n}\nvar _default = iteratorProxy;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = iterationDecorator;\nvar _iteratorProxy = _interopRequireDefault(require(\"./iteratorProxy\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction iterationDecorator(collection, entries) {\n if (typeof Symbol === 'function' && _typeof(Symbol.iterator) === 'symbol') {\n Object.defineProperty(collection, Symbol.iterator, {\n value: _iteratorProxy.default.bind(entries)\n });\n }\n return collection;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar properties = [['aria-activedescendant', {\n 'type': 'id'\n}], ['aria-atomic', {\n 'type': 'boolean'\n}], ['aria-autocomplete', {\n 'type': 'token',\n 'values': ['inline', 'list', 'both', 'none']\n}], ['aria-busy', {\n 'type': 'boolean'\n}], ['aria-checked', {\n 'type': 'tristate'\n}], ['aria-colcount', {\n type: 'integer'\n}], ['aria-colindex', {\n type: 'integer'\n}], ['aria-colspan', {\n type: 'integer'\n}], ['aria-controls', {\n 'type': 'idlist'\n}], ['aria-current', {\n type: 'token',\n values: ['page', 'step', 'location', 'date', 'time', true, false]\n}], ['aria-describedby', {\n 'type': 'idlist'\n}], ['aria-details', {\n 'type': 'id'\n}], ['aria-disabled', {\n 'type': 'boolean'\n}], ['aria-dropeffect', {\n 'type': 'tokenlist',\n 'values': ['copy', 'execute', 'link', 'move', 'none', 'popup']\n}], ['aria-errormessage', {\n 'type': 'id'\n}], ['aria-expanded', {\n 'type': 'boolean',\n 'allowundefined': true\n}], ['aria-flowto', {\n 'type': 'idlist'\n}], ['aria-grabbed', {\n 'type': 'boolean',\n 'allowundefined': true\n}], ['aria-haspopup', {\n 'type': 'token',\n 'values': [false, true, 'menu', 'listbox', 'tree', 'grid', 'dialog']\n}], ['aria-hidden', {\n 'type': 'boolean',\n 'allowundefined': true\n}], ['aria-invalid', {\n 'type': 'token',\n 'values': ['grammar', false, 'spelling', true]\n}], ['aria-keyshortcuts', {\n type: 'string'\n}], ['aria-label', {\n 'type': 'string'\n}], ['aria-labelledby', {\n 'type': 'idlist'\n}], ['aria-level', {\n 'type': 'integer'\n}], ['aria-live', {\n 'type': 'token',\n 'values': ['assertive', 'off', 'polite']\n}], ['aria-modal', {\n type: 'boolean'\n}], ['aria-multiline', {\n 'type': 'boolean'\n}], ['aria-multiselectable', {\n 'type': 'boolean'\n}], ['aria-orientation', {\n 'type': 'token',\n 'values': ['vertical', 'undefined', 'horizontal']\n}], ['aria-owns', {\n 'type': 'idlist'\n}], ['aria-placeholder', {\n type: 'string'\n}], ['aria-posinset', {\n 'type': 'integer'\n}], ['aria-pressed', {\n 'type': 'tristate'\n}], ['aria-readonly', {\n 'type': 'boolean'\n}], ['aria-relevant', {\n 'type': 'tokenlist',\n 'values': ['additions', 'all', 'removals', 'text']\n}], ['aria-required', {\n 'type': 'boolean'\n}], ['aria-roledescription', {\n type: 'string'\n}], ['aria-rowcount', {\n type: 'integer'\n}], ['aria-rowindex', {\n type: 'integer'\n}], ['aria-rowspan', {\n type: 'integer'\n}], ['aria-selected', {\n 'type': 'boolean',\n 'allowundefined': true\n}], ['aria-setsize', {\n 'type': 'integer'\n}], ['aria-sort', {\n 'type': 'token',\n 'values': ['ascending', 'descending', 'none', 'other']\n}], ['aria-valuemax', {\n 'type': 'number'\n}], ['aria-valuemin', {\n 'type': 'number'\n}], ['aria-valuenow', {\n 'type': 'number'\n}], ['aria-valuetext', {\n 'type': 'string'\n}]];\nvar ariaPropsMap = {\n entries: function entries() {\n return properties;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator = _createForOfIteratorHelper(properties),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n values = _step$value[1];\n fn.call(thisArg, values, key, properties);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n },\n get: function get(key) {\n var item = properties.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!ariaPropsMap.get(key);\n },\n keys: function keys() {\n return properties.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return key;\n });\n },\n values: function values() {\n return properties.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(ariaPropsMap, ariaPropsMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar dom = [['a', {\n reserved: false\n}], ['abbr', {\n reserved: false\n}], ['acronym', {\n reserved: false\n}], ['address', {\n reserved: false\n}], ['applet', {\n reserved: false\n}], ['area', {\n reserved: false\n}], ['article', {\n reserved: false\n}], ['aside', {\n reserved: false\n}], ['audio', {\n reserved: false\n}], ['b', {\n reserved: false\n}], ['base', {\n reserved: true\n}], ['bdi', {\n reserved: false\n}], ['bdo', {\n reserved: false\n}], ['big', {\n reserved: false\n}], ['blink', {\n reserved: false\n}], ['blockquote', {\n reserved: false\n}], ['body', {\n reserved: false\n}], ['br', {\n reserved: false\n}], ['button', {\n reserved: false\n}], ['canvas', {\n reserved: false\n}], ['caption', {\n reserved: false\n}], ['center', {\n reserved: false\n}], ['cite', {\n reserved: false\n}], ['code', {\n reserved: false\n}], ['col', {\n reserved: true\n}], ['colgroup', {\n reserved: true\n}], ['content', {\n reserved: false\n}], ['data', {\n reserved: false\n}], ['datalist', {\n reserved: false\n}], ['dd', {\n reserved: false\n}], ['del', {\n reserved: false\n}], ['details', {\n reserved: false\n}], ['dfn', {\n reserved: false\n}], ['dialog', {\n reserved: false\n}], ['dir', {\n reserved: false\n}], ['div', {\n reserved: false\n}], ['dl', {\n reserved: false\n}], ['dt', {\n reserved: false\n}], ['em', {\n reserved: false\n}], ['embed', {\n reserved: false\n}], ['fieldset', {\n reserved: false\n}], ['figcaption', {\n reserved: false\n}], ['figure', {\n reserved: false\n}], ['font', {\n reserved: false\n}], ['footer', {\n reserved: false\n}], ['form', {\n reserved: false\n}], ['frame', {\n reserved: false\n}], ['frameset', {\n reserved: false\n}], ['h1', {\n reserved: false\n}], ['h2', {\n reserved: false\n}], ['h3', {\n reserved: false\n}], ['h4', {\n reserved: false\n}], ['h5', {\n reserved: false\n}], ['h6', {\n reserved: false\n}], ['head', {\n reserved: true\n}], ['header', {\n reserved: false\n}], ['hgroup', {\n reserved: false\n}], ['hr', {\n reserved: false\n}], ['html', {\n reserved: true\n}], ['i', {\n reserved: false\n}], ['iframe', {\n reserved: false\n}], ['img', {\n reserved: false\n}], ['input', {\n reserved: false\n}], ['ins', {\n reserved: false\n}], ['kbd', {\n reserved: false\n}], ['keygen', {\n reserved: false\n}], ['label', {\n reserved: false\n}], ['legend', {\n reserved: false\n}], ['li', {\n reserved: false\n}], ['link', {\n reserved: true\n}], ['main', {\n reserved: false\n}], ['map', {\n reserved: false\n}], ['mark', {\n reserved: false\n}], ['marquee', {\n reserved: false\n}], ['menu', {\n reserved: false\n}], ['menuitem', {\n reserved: false\n}], ['meta', {\n reserved: true\n}], ['meter', {\n reserved: false\n}], ['nav', {\n reserved: false\n}], ['noembed', {\n reserved: true\n}], ['noscript', {\n reserved: true\n}], ['object', {\n reserved: false\n}], ['ol', {\n reserved: false\n}], ['optgroup', {\n reserved: false\n}], ['option', {\n reserved: false\n}], ['output', {\n reserved: false\n}], ['p', {\n reserved: false\n}], ['param', {\n reserved: true\n}], ['picture', {\n reserved: true\n}], ['pre', {\n reserved: false\n}], ['progress', {\n reserved: false\n}], ['q', {\n reserved: false\n}], ['rp', {\n reserved: false\n}], ['rt', {\n reserved: false\n}], ['rtc', {\n reserved: false\n}], ['ruby', {\n reserved: false\n}], ['s', {\n reserved: false\n}], ['samp', {\n reserved: false\n}], ['script', {\n reserved: true\n}], ['section', {\n reserved: false\n}], ['select', {\n reserved: false\n}], ['small', {\n reserved: false\n}], ['source', {\n reserved: true\n}], ['spacer', {\n reserved: false\n}], ['span', {\n reserved: false\n}], ['strike', {\n reserved: false\n}], ['strong', {\n reserved: false\n}], ['style', {\n reserved: true\n}], ['sub', {\n reserved: false\n}], ['summary', {\n reserved: false\n}], ['sup', {\n reserved: false\n}], ['table', {\n reserved: false\n}], ['tbody', {\n reserved: false\n}], ['td', {\n reserved: false\n}], ['textarea', {\n reserved: false\n}], ['tfoot', {\n reserved: false\n}], ['th', {\n reserved: false\n}], ['thead', {\n reserved: false\n}], ['time', {\n reserved: false\n}], ['title', {\n reserved: true\n}], ['tr', {\n reserved: false\n}], ['track', {\n reserved: true\n}], ['tt', {\n reserved: false\n}], ['u', {\n reserved: false\n}], ['ul', {\n reserved: false\n}], ['var', {\n reserved: false\n}], ['video', {\n reserved: false\n}], ['wbr', {\n reserved: false\n}], ['xmp', {\n reserved: false\n}]];\nvar domMap = {\n entries: function entries() {\n return dom;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator = _createForOfIteratorHelper(dom),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n values = _step$value[1];\n fn.call(thisArg, values, key, dom);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n },\n get: function get(key) {\n var item = dom.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!domMap.get(key);\n },\n keys: function keys() {\n return dom.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return key;\n });\n },\n values: function values() {\n return dom.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(domMap, domMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar commandRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'menuitem'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget']]\n};\nvar _default = commandRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar compositeRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-disabled': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget']]\n};\nvar _default = compositeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar inputRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null\n },\n relatedConcepts: [{\n concept: {\n name: 'input'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget']]\n};\nvar _default = inputRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar landmarkRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = landmarkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar rangeRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuenow': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = rangeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar roletypeRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {\n 'aria-atomic': null,\n 'aria-busy': null,\n 'aria-controls': null,\n 'aria-current': null,\n 'aria-describedby': null,\n 'aria-details': null,\n 'aria-dropeffect': null,\n 'aria-flowto': null,\n 'aria-grabbed': null,\n 'aria-hidden': null,\n 'aria-keyshortcuts': null,\n 'aria-label': null,\n 'aria-labelledby': null,\n 'aria-live': null,\n 'aria-owns': null,\n 'aria-relevant': null,\n 'aria-roledescription': null\n },\n relatedConcepts: [{\n concept: {\n name: 'rel'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'role'\n },\n module: 'XHTML'\n }, {\n concept: {\n name: 'type'\n },\n module: 'Dublin Core'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: []\n};\nvar _default = roletypeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar sectionRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'frontmatter'\n },\n module: 'DTB'\n }, {\n concept: {\n name: 'level'\n },\n module: 'DTB'\n }, {\n concept: {\n name: 'level'\n },\n module: 'SMIL'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = sectionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar sectionheadRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = sectionheadRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar selectRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-orientation': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'group']]\n};\nvar _default = selectRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar structureRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype']]\n};\nvar _default = structureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar widgetRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype']]\n};\nvar _default = widgetRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar windowRole = {\n abstract: true,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-modal': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype']]\n};\nvar _default = windowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _commandRole = _interopRequireDefault(require(\"./abstract/commandRole\"));\nvar _compositeRole = _interopRequireDefault(require(\"./abstract/compositeRole\"));\nvar _inputRole = _interopRequireDefault(require(\"./abstract/inputRole\"));\nvar _landmarkRole = _interopRequireDefault(require(\"./abstract/landmarkRole\"));\nvar _rangeRole = _interopRequireDefault(require(\"./abstract/rangeRole\"));\nvar _roletypeRole = _interopRequireDefault(require(\"./abstract/roletypeRole\"));\nvar _sectionRole = _interopRequireDefault(require(\"./abstract/sectionRole\"));\nvar _sectionheadRole = _interopRequireDefault(require(\"./abstract/sectionheadRole\"));\nvar _selectRole = _interopRequireDefault(require(\"./abstract/selectRole\"));\nvar _structureRole = _interopRequireDefault(require(\"./abstract/structureRole\"));\nvar _widgetRole = _interopRequireDefault(require(\"./abstract/widgetRole\"));\nvar _windowRole = _interopRequireDefault(require(\"./abstract/windowRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaAbstractRoles = [['command', _commandRole.default], ['composite', _compositeRole.default], ['input', _inputRole.default], ['landmark', _landmarkRole.default], ['range', _rangeRole.default], ['roletype', _roletypeRole.default], ['section', _sectionRole.default], ['sectionhead', _sectionheadRole.default], ['select', _selectRole.default], ['structure', _structureRole.default], ['widget', _widgetRole.default], ['window', _windowRole.default]];\nvar _default = ariaAbstractRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar alertRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-atomic': 'true',\n 'aria-live': 'assertive'\n },\n relatedConcepts: [{\n concept: {\n name: 'alert'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = alertRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar alertdialogRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'alert'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'alert'], ['roletype', 'window', 'dialog']]\n};\nvar _default = alertdialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar applicationRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'Device Independence Delivery Unit'\n }\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = applicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar articleRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-posinset': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n name: 'article'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'document']]\n};\nvar _default = articleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar bannerRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n constraints: ['direct descendant of document'],\n name: 'header'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = bannerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar blockquoteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = blockquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar buttonRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-pressed': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-pressed'\n }, {\n name: 'type',\n value: 'checkbox'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'aria-expanded',\n value: 'false'\n }],\n name: 'summary'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'aria-expanded',\n value: 'true'\n }],\n constraints: ['direct descendant of details element with the open attribute defined'],\n name: 'summary'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'type',\n value: 'button'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'type',\n value: 'image'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'type',\n value: 'reset'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'type',\n value: 'submit'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'button'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'trigger'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = buttonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar captionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: ['figure', 'grid', 'table'],\n requiredContextRole: ['figure', 'grid', 'table'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = captionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar cellRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-colindex': null,\n 'aria-colspan': null,\n 'aria-rowindex': null,\n 'aria-rowspan': null\n },\n relatedConcepts: [{\n concept: {\n constraints: ['descendant of table'],\n name: 'td'\n },\n module: 'HTML'\n }],\n requireContextRole: ['row'],\n requiredContextRole: ['row'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = cellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar checkboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-checked': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'type',\n value: 'checkbox'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'option'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = checkboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar codeRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = codeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar columnheaderRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-sort': null\n },\n relatedConcepts: [{\n attributes: [{\n name: 'scope',\n value: 'col'\n }],\n concept: {\n name: 'th'\n },\n module: 'HTML'\n }],\n requireContextRole: ['row'],\n requiredContextRole: ['row'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]\n};\nvar _default = columnheaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar comboboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-autocomplete': null,\n 'aria-errormessage': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null,\n 'aria-expanded': 'false',\n 'aria-haspopup': 'listbox'\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'email'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'search'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'tel'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'text'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'url'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'list'\n }, {\n name: 'type',\n value: 'url'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'multiple'\n }, {\n constraints: ['undefined'],\n name: 'size'\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'multiple'\n }, {\n name: 'size',\n value: 1\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'select'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-controls': null,\n 'aria-expanded': 'false'\n },\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = comboboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar complementaryRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'aside'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = complementaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar contentinfoRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n constraints: ['direct descendant of document'],\n name: 'footer'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = contentinfoRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar definitionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'dd'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = definitionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar deletionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = deletionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar dialogRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'dialog'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'window']]\n};\nvar _default = dialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar directoryRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n module: 'DAISY Guide'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'list']]\n};\nvar _default = directoryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar documentRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'Device Independence Delivery Unit'\n }\n }, {\n concept: {\n name: 'body'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = documentRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar emphasisRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = emphasisRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar feedRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['article']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'list']]\n};\nvar _default = feedRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar figureRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'figure'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = figureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-label'\n }],\n name: 'form'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-labelledby'\n }],\n name: 'form'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'name'\n }],\n name: 'form'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = formRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar genericRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'span'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'div'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = genericRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar gridRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-multiselectable': null,\n 'aria-readonly': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'role',\n value: 'grid'\n }],\n name: 'table'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite'], ['roletype', 'structure', 'section', 'table']]\n};\nvar _default = gridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar gridcellRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null,\n 'aria-selected': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'role',\n value: 'gridcell'\n }],\n name: 'td'\n },\n module: 'HTML'\n }],\n requireContextRole: ['row'],\n requiredContextRole: ['row'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'widget']]\n};\nvar _default = gridcellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar groupRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-disabled': null\n },\n relatedConcepts: [{\n concept: {\n name: 'details'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'fieldset'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'optgroup'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = groupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar headingRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-level': '2'\n },\n relatedConcepts: [{\n concept: {\n name: 'h1'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h2'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h3'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h4'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h5'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'h6'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-level': '2'\n },\n superClass: [['roletype', 'structure', 'sectionhead']]\n};\nvar _default = headingRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar imgRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'alt'\n }],\n name: 'img'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'alt'\n }],\n name: 'img'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'imggroup'\n },\n module: 'DTB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = imgRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar insertionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = insertionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar linkRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-expanded': null,\n 'aria-haspopup': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'href'\n }],\n name: 'a'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'href'\n }],\n name: 'area'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'href'\n }],\n name: 'link'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = linkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar listRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'menu'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'ol'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'ul'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['listitem']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = listRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar listboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-invalid': null,\n 'aria-multiselectable': null,\n 'aria-readonly': null,\n 'aria-required': null,\n 'aria-orientation': 'vertical'\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['>1'],\n name: 'size'\n }, {\n name: 'multiple'\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['>1'],\n name: 'size'\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'multiple'\n }],\n name: 'select'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'datalist'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'list'\n },\n module: 'ARIA'\n }, {\n concept: {\n name: 'select'\n },\n module: 'XForms'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['option', 'group'], ['option']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = listboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar listitemRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-level': null,\n 'aria-posinset': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n constraints: ['direct descendant of ol, ul or menu'],\n name: 'li'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'item'\n },\n module: 'XForms'\n }],\n requireContextRole: ['directory', 'list'],\n requiredContextRole: ['directory', 'list'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = listitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar logRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-live': 'polite'\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = logRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar mainRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'main'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = mainRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar marqueeRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = marqueeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar mathRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'math'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = mathRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menuRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-orientation': 'vertical'\n },\n relatedConcepts: [{\n concept: {\n name: 'MENU'\n },\n module: 'JAPI'\n }, {\n concept: {\n name: 'list'\n },\n module: 'ARIA'\n }, {\n concept: {\n name: 'select'\n },\n module: 'XForms'\n }, {\n concept: {\n name: 'sidebar'\n },\n module: 'DTB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['menuitem', 'group'], ['menuitemradio', 'group'], ['menuitemcheckbox', 'group'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = menuRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menubarRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-orientation': 'horizontal'\n },\n relatedConcepts: [{\n concept: {\n name: 'toolbar'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['menuitem', 'group'], ['menuitemradio', 'group'], ['menuitemcheckbox', 'group'], ['menuitem'], ['menuitemcheckbox'], ['menuitemradio']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select', 'menu'], ['roletype', 'structure', 'section', 'group', 'select', 'menu']]\n};\nvar _default = menubarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menuitemRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-posinset': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n name: 'MENU_ITEM'\n },\n module: 'JAPI'\n }, {\n concept: {\n name: 'listitem'\n },\n module: 'ARIA'\n }, {\n concept: {\n name: 'menuitem'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'option'\n },\n module: 'ARIA'\n }],\n requireContextRole: ['group', 'menu', 'menubar'],\n requiredContextRole: ['group', 'menu', 'menubar'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command']]\n};\nvar _default = menuitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menuitemcheckboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'menuitem'\n },\n module: 'ARIA'\n }],\n requireContextRole: ['group', 'menu', 'menubar'],\n requiredContextRole: ['group', 'menu', 'menubar'],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input', 'checkbox'], ['roletype', 'widget', 'command', 'menuitem']]\n};\nvar _default = menuitemcheckboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar menuitemradioRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'menuitem'\n },\n module: 'ARIA'\n }],\n requireContextRole: ['group', 'menu', 'menubar'],\n requiredContextRole: ['group', 'menu', 'menubar'],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input', 'checkbox', 'menuitemcheckbox'], ['roletype', 'widget', 'command', 'menuitem', 'menuitemcheckbox'], ['roletype', 'widget', 'input', 'radio']]\n};\nvar _default = menuitemradioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar meterRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-valuetext': null,\n 'aria-valuemax': '100',\n 'aria-valuemin': '0'\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-valuenow': null\n },\n superClass: [['roletype', 'structure', 'range']]\n};\nvar _default = meterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar navigationRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'nav'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = navigationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar noneRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: [],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: []\n};\nvar _default = noneRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar noteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = noteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar optionRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-checked': null,\n 'aria-posinset': null,\n 'aria-setsize': null,\n 'aria-selected': 'false'\n },\n relatedConcepts: [{\n concept: {\n name: 'item'\n },\n module: 'XForms'\n }, {\n concept: {\n name: 'listitem'\n },\n module: 'ARIA'\n }, {\n concept: {\n name: 'option'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-selected': 'false'\n },\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = optionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar paragraphRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = paragraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar presentationRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = presentationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar progressbarRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-valuetext': null\n },\n relatedConcepts: [{\n concept: {\n name: 'progress'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'status'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'range'], ['roletype', 'widget']]\n};\nvar _default = progressbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar radioRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-checked': null,\n 'aria-posinset': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'type',\n value: 'radio'\n }],\n name: 'input'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = radioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar radiogroupRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null\n },\n relatedConcepts: [{\n concept: {\n name: 'list'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['radio']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = radiogroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar regionRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-label'\n }],\n name: 'section'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['set'],\n name: 'aria-labelledby'\n }],\n name: 'section'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'Device Independence Glossart perceivable unit'\n }\n }, {\n concept: {\n name: 'frame'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = regionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar rowRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-colindex': null,\n 'aria-expanded': null,\n 'aria-level': null,\n 'aria-posinset': null,\n 'aria-rowindex': null,\n 'aria-selected': null,\n 'aria-setsize': null\n },\n relatedConcepts: [{\n concept: {\n name: 'tr'\n },\n module: 'HTML'\n }],\n requireContextRole: ['grid', 'rowgroup', 'table', 'treegrid'],\n requiredContextRole: ['grid', 'rowgroup', 'table', 'treegrid'],\n requiredOwnedElements: [['cell'], ['columnheader'], ['gridcell'], ['rowheader']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'group'], ['roletype', 'widget']]\n};\nvar _default = rowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar rowgroupRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'tbody'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'tfoot'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'thead'\n },\n module: 'HTML'\n }],\n requireContextRole: ['grid', 'table', 'treegrid'],\n requiredContextRole: ['grid', 'table', 'treegrid'],\n requiredOwnedElements: [['row']],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = rowgroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar rowheaderRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-sort': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'scope',\n value: 'row'\n }],\n name: 'th'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n name: 'scope',\n value: 'rowgroup'\n }],\n name: 'th'\n },\n module: 'HTML'\n }],\n requireContextRole: ['row', 'rowgroup'],\n requiredContextRole: ['row', 'rowgroup'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'cell'], ['roletype', 'structure', 'section', 'cell', 'gridcell'], ['roletype', 'widget', 'gridcell'], ['roletype', 'structure', 'sectionhead']]\n};\nvar _default = rowheaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar scrollbarRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-valuetext': null,\n 'aria-orientation': 'vertical',\n 'aria-valuemax': '100',\n 'aria-valuemin': '0'\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-controls': null,\n 'aria-valuenow': null\n },\n superClass: [['roletype', 'structure', 'range'], ['roletype', 'widget']]\n};\nvar _default = scrollbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar searchRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = searchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar searchboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'search'\n }],\n name: 'input'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'input', 'textbox']]\n};\nvar _default = searchboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar separatorRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-orientation': 'horizontal',\n 'aria-valuemax': '100',\n 'aria-valuemin': '0',\n 'aria-valuenow': null,\n 'aria-valuetext': null\n },\n relatedConcepts: [{\n concept: {\n name: 'hr'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure']]\n};\nvar _default = separatorRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar sliderRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-haspopup': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-valuetext': null,\n 'aria-orientation': 'horizontal',\n 'aria-valuemax': '100',\n 'aria-valuemin': '0'\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'type',\n value: 'range'\n }],\n name: 'input'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-valuenow': null\n },\n superClass: [['roletype', 'widget', 'input'], ['roletype', 'structure', 'range']]\n};\nvar _default = sliderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar spinbuttonRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null,\n 'aria-readonly': null,\n 'aria-required': null,\n 'aria-valuetext': null,\n 'aria-valuenow': '0'\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n name: 'type',\n value: 'number'\n }],\n name: 'input'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite'], ['roletype', 'widget', 'input'], ['roletype', 'structure', 'range']]\n};\nvar _default = spinbuttonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar statusRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-atomic': 'true',\n 'aria-live': 'polite'\n },\n relatedConcepts: [{\n concept: {\n name: 'output'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = statusRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar strongRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = strongRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar subscriptRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = subscriptRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar superscriptRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['prohibited'],\n prohibitedProps: ['aria-label', 'aria-labelledby'],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = superscriptRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar switchRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'button'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-checked': null\n },\n superClass: [['roletype', 'widget', 'input', 'checkbox']]\n};\nvar _default = switchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tabRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-posinset': null,\n 'aria-setsize': null,\n 'aria-selected': 'false'\n },\n relatedConcepts: [],\n requireContextRole: ['tablist'],\n requiredContextRole: ['tablist'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'sectionhead'], ['roletype', 'widget']]\n};\nvar _default = tabRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tableRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-colcount': null,\n 'aria-rowcount': null\n },\n relatedConcepts: [{\n concept: {\n name: 'table'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tableRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tablistRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-level': null,\n 'aria-multiselectable': null,\n 'aria-orientation': 'horizontal'\n },\n relatedConcepts: [{\n module: 'DAISY',\n concept: {\n name: 'guide'\n }\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['tab']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite']]\n};\nvar _default = tablistRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tabpanelRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tabpanelRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar termRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'dfn'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'dt'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = termRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar textboxRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-activedescendant': null,\n 'aria-autocomplete': null,\n 'aria-errormessage': null,\n 'aria-haspopup': null,\n 'aria-invalid': null,\n 'aria-multiline': null,\n 'aria-placeholder': null,\n 'aria-readonly': null,\n 'aria-required': null\n },\n relatedConcepts: [{\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'type'\n }, {\n constraints: ['undefined'],\n name: 'list'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'email'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'tel'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'text'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n attributes: [{\n constraints: ['undefined'],\n name: 'list'\n }, {\n name: 'type',\n value: 'url'\n }],\n name: 'input'\n },\n module: 'HTML'\n }, {\n concept: {\n name: 'input'\n },\n module: 'XForms'\n }, {\n concept: {\n name: 'textarea'\n },\n module: 'HTML'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'input']]\n};\nvar _default = textboxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar timeRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = timeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar timerRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'status']]\n};\nvar _default = timerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar toolbarRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-orientation': 'horizontal'\n },\n relatedConcepts: [{\n concept: {\n name: 'menubar'\n },\n module: 'ARIA'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'group']]\n};\nvar _default = toolbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar tooltipRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = tooltipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar treeRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null,\n 'aria-multiselectable': null,\n 'aria-required': null,\n 'aria-orientation': 'vertical'\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['treeitem', 'group'], ['treeitem']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'select'], ['roletype', 'structure', 'section', 'group', 'select']]\n};\nvar _default = treeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar treegridRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['row'], ['row', 'rowgroup']],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'composite', 'grid'], ['roletype', 'structure', 'section', 'table', 'grid'], ['roletype', 'widget', 'composite', 'select', 'tree'], ['roletype', 'structure', 'section', 'group', 'select', 'tree']]\n};\nvar _default = treegridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar treeitemRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-expanded': null,\n 'aria-haspopup': null\n },\n relatedConcepts: [],\n requireContextRole: ['group', 'tree'],\n requiredContextRole: ['group', 'tree'],\n requiredOwnedElements: [],\n requiredProps: {\n 'aria-selected': null\n },\n superClass: [['roletype', 'structure', 'section', 'listitem'], ['roletype', 'widget', 'input', 'option']]\n};\nvar _default = treeitemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _alertRole = _interopRequireDefault(require(\"./literal/alertRole\"));\nvar _alertdialogRole = _interopRequireDefault(require(\"./literal/alertdialogRole\"));\nvar _applicationRole = _interopRequireDefault(require(\"./literal/applicationRole\"));\nvar _articleRole = _interopRequireDefault(require(\"./literal/articleRole\"));\nvar _bannerRole = _interopRequireDefault(require(\"./literal/bannerRole\"));\nvar _blockquoteRole = _interopRequireDefault(require(\"./literal/blockquoteRole\"));\nvar _buttonRole = _interopRequireDefault(require(\"./literal/buttonRole\"));\nvar _captionRole = _interopRequireDefault(require(\"./literal/captionRole\"));\nvar _cellRole = _interopRequireDefault(require(\"./literal/cellRole\"));\nvar _checkboxRole = _interopRequireDefault(require(\"./literal/checkboxRole\"));\nvar _codeRole = _interopRequireDefault(require(\"./literal/codeRole\"));\nvar _columnheaderRole = _interopRequireDefault(require(\"./literal/columnheaderRole\"));\nvar _comboboxRole = _interopRequireDefault(require(\"./literal/comboboxRole\"));\nvar _complementaryRole = _interopRequireDefault(require(\"./literal/complementaryRole\"));\nvar _contentinfoRole = _interopRequireDefault(require(\"./literal/contentinfoRole\"));\nvar _definitionRole = _interopRequireDefault(require(\"./literal/definitionRole\"));\nvar _deletionRole = _interopRequireDefault(require(\"./literal/deletionRole\"));\nvar _dialogRole = _interopRequireDefault(require(\"./literal/dialogRole\"));\nvar _directoryRole = _interopRequireDefault(require(\"./literal/directoryRole\"));\nvar _documentRole = _interopRequireDefault(require(\"./literal/documentRole\"));\nvar _emphasisRole = _interopRequireDefault(require(\"./literal/emphasisRole\"));\nvar _feedRole = _interopRequireDefault(require(\"./literal/feedRole\"));\nvar _figureRole = _interopRequireDefault(require(\"./literal/figureRole\"));\nvar _formRole = _interopRequireDefault(require(\"./literal/formRole\"));\nvar _genericRole = _interopRequireDefault(require(\"./literal/genericRole\"));\nvar _gridRole = _interopRequireDefault(require(\"./literal/gridRole\"));\nvar _gridcellRole = _interopRequireDefault(require(\"./literal/gridcellRole\"));\nvar _groupRole = _interopRequireDefault(require(\"./literal/groupRole\"));\nvar _headingRole = _interopRequireDefault(require(\"./literal/headingRole\"));\nvar _imgRole = _interopRequireDefault(require(\"./literal/imgRole\"));\nvar _insertionRole = _interopRequireDefault(require(\"./literal/insertionRole\"));\nvar _linkRole = _interopRequireDefault(require(\"./literal/linkRole\"));\nvar _listRole = _interopRequireDefault(require(\"./literal/listRole\"));\nvar _listboxRole = _interopRequireDefault(require(\"./literal/listboxRole\"));\nvar _listitemRole = _interopRequireDefault(require(\"./literal/listitemRole\"));\nvar _logRole = _interopRequireDefault(require(\"./literal/logRole\"));\nvar _mainRole = _interopRequireDefault(require(\"./literal/mainRole\"));\nvar _marqueeRole = _interopRequireDefault(require(\"./literal/marqueeRole\"));\nvar _mathRole = _interopRequireDefault(require(\"./literal/mathRole\"));\nvar _menuRole = _interopRequireDefault(require(\"./literal/menuRole\"));\nvar _menubarRole = _interopRequireDefault(require(\"./literal/menubarRole\"));\nvar _menuitemRole = _interopRequireDefault(require(\"./literal/menuitemRole\"));\nvar _menuitemcheckboxRole = _interopRequireDefault(require(\"./literal/menuitemcheckboxRole\"));\nvar _menuitemradioRole = _interopRequireDefault(require(\"./literal/menuitemradioRole\"));\nvar _meterRole = _interopRequireDefault(require(\"./literal/meterRole\"));\nvar _navigationRole = _interopRequireDefault(require(\"./literal/navigationRole\"));\nvar _noneRole = _interopRequireDefault(require(\"./literal/noneRole\"));\nvar _noteRole = _interopRequireDefault(require(\"./literal/noteRole\"));\nvar _optionRole = _interopRequireDefault(require(\"./literal/optionRole\"));\nvar _paragraphRole = _interopRequireDefault(require(\"./literal/paragraphRole\"));\nvar _presentationRole = _interopRequireDefault(require(\"./literal/presentationRole\"));\nvar _progressbarRole = _interopRequireDefault(require(\"./literal/progressbarRole\"));\nvar _radioRole = _interopRequireDefault(require(\"./literal/radioRole\"));\nvar _radiogroupRole = _interopRequireDefault(require(\"./literal/radiogroupRole\"));\nvar _regionRole = _interopRequireDefault(require(\"./literal/regionRole\"));\nvar _rowRole = _interopRequireDefault(require(\"./literal/rowRole\"));\nvar _rowgroupRole = _interopRequireDefault(require(\"./literal/rowgroupRole\"));\nvar _rowheaderRole = _interopRequireDefault(require(\"./literal/rowheaderRole\"));\nvar _scrollbarRole = _interopRequireDefault(require(\"./literal/scrollbarRole\"));\nvar _searchRole = _interopRequireDefault(require(\"./literal/searchRole\"));\nvar _searchboxRole = _interopRequireDefault(require(\"./literal/searchboxRole\"));\nvar _separatorRole = _interopRequireDefault(require(\"./literal/separatorRole\"));\nvar _sliderRole = _interopRequireDefault(require(\"./literal/sliderRole\"));\nvar _spinbuttonRole = _interopRequireDefault(require(\"./literal/spinbuttonRole\"));\nvar _statusRole = _interopRequireDefault(require(\"./literal/statusRole\"));\nvar _strongRole = _interopRequireDefault(require(\"./literal/strongRole\"));\nvar _subscriptRole = _interopRequireDefault(require(\"./literal/subscriptRole\"));\nvar _superscriptRole = _interopRequireDefault(require(\"./literal/superscriptRole\"));\nvar _switchRole = _interopRequireDefault(require(\"./literal/switchRole\"));\nvar _tabRole = _interopRequireDefault(require(\"./literal/tabRole\"));\nvar _tableRole = _interopRequireDefault(require(\"./literal/tableRole\"));\nvar _tablistRole = _interopRequireDefault(require(\"./literal/tablistRole\"));\nvar _tabpanelRole = _interopRequireDefault(require(\"./literal/tabpanelRole\"));\nvar _termRole = _interopRequireDefault(require(\"./literal/termRole\"));\nvar _textboxRole = _interopRequireDefault(require(\"./literal/textboxRole\"));\nvar _timeRole = _interopRequireDefault(require(\"./literal/timeRole\"));\nvar _timerRole = _interopRequireDefault(require(\"./literal/timerRole\"));\nvar _toolbarRole = _interopRequireDefault(require(\"./literal/toolbarRole\"));\nvar _tooltipRole = _interopRequireDefault(require(\"./literal/tooltipRole\"));\nvar _treeRole = _interopRequireDefault(require(\"./literal/treeRole\"));\nvar _treegridRole = _interopRequireDefault(require(\"./literal/treegridRole\"));\nvar _treeitemRole = _interopRequireDefault(require(\"./literal/treeitemRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaLiteralRoles = [['alert', _alertRole.default], ['alertdialog', _alertdialogRole.default], ['application', _applicationRole.default], ['article', _articleRole.default], ['banner', _bannerRole.default], ['blockquote', _blockquoteRole.default], ['button', _buttonRole.default], ['caption', _captionRole.default], ['cell', _cellRole.default], ['checkbox', _checkboxRole.default], ['code', _codeRole.default], ['columnheader', _columnheaderRole.default], ['combobox', _comboboxRole.default], ['complementary', _complementaryRole.default], ['contentinfo', _contentinfoRole.default], ['definition', _definitionRole.default], ['deletion', _deletionRole.default], ['dialog', _dialogRole.default], ['directory', _directoryRole.default], ['document', _documentRole.default], ['emphasis', _emphasisRole.default], ['feed', _feedRole.default], ['figure', _figureRole.default], ['form', _formRole.default], ['generic', _genericRole.default], ['grid', _gridRole.default], ['gridcell', _gridcellRole.default], ['group', _groupRole.default], ['heading', _headingRole.default], ['img', _imgRole.default], ['insertion', _insertionRole.default], ['link', _linkRole.default], ['list', _listRole.default], ['listbox', _listboxRole.default], ['listitem', _listitemRole.default], ['log', _logRole.default], ['main', _mainRole.default], ['marquee', _marqueeRole.default], ['math', _mathRole.default], ['menu', _menuRole.default], ['menubar', _menubarRole.default], ['menuitem', _menuitemRole.default], ['menuitemcheckbox', _menuitemcheckboxRole.default], ['menuitemradio', _menuitemradioRole.default], ['meter', _meterRole.default], ['navigation', _navigationRole.default], ['none', _noneRole.default], ['note', _noteRole.default], ['option', _optionRole.default], ['paragraph', _paragraphRole.default], ['presentation', _presentationRole.default], ['progressbar', _progressbarRole.default], ['radio', _radioRole.default], ['radiogroup', _radiogroupRole.default], ['region', _regionRole.default], ['row', _rowRole.default], ['rowgroup', _rowgroupRole.default], ['rowheader', _rowheaderRole.default], ['scrollbar', _scrollbarRole.default], ['search', _searchRole.default], ['searchbox', _searchboxRole.default], ['separator', _separatorRole.default], ['slider', _sliderRole.default], ['spinbutton', _spinbuttonRole.default], ['status', _statusRole.default], ['strong', _strongRole.default], ['subscript', _subscriptRole.default], ['superscript', _superscriptRole.default], ['switch', _switchRole.default], ['tab', _tabRole.default], ['table', _tableRole.default], ['tablist', _tablistRole.default], ['tabpanel', _tabpanelRole.default], ['term', _termRole.default], ['textbox', _textboxRole.default], ['time', _timeRole.default], ['timer', _timerRole.default], ['toolbar', _toolbarRole.default], ['tooltip', _tooltipRole.default], ['tree', _treeRole.default], ['treegrid', _treegridRole.default], ['treeitem', _treeitemRole.default]];\nvar _default = ariaLiteralRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docAbstractRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'abstract [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docAbstractRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docAcknowledgmentsRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'acknowledgments [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAcknowledgmentsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docAfterwordRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'afterword [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAfterwordRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docAppendixRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'appendix [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docAppendixRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docBacklinkRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'content'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'referrer [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docBacklinkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docBiblioentryRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'EPUB biblioentry [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: ['doc-bibliography'],\n requiredContextRole: ['doc-bibliography'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'listitem']]\n};\nvar _default = docBiblioentryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docBibliographyRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'bibliography [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['doc-biblioentry']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docBibliographyRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docBibliorefRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'biblioref [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docBibliorefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docChapterRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'chapter [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docChapterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docColophonRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'colophon [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docColophonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docConclusionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'conclusion [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docConclusionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docCoverRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'cover [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'img']]\n};\nvar _default = docCoverRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docCreditRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'credit [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docCreditRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docCreditsRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'credits [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docCreditsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docDedicationRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'dedication [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docDedicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docEndnoteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'rearnote [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: ['doc-endnotes'],\n requiredContextRole: ['doc-endnotes'],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'listitem']]\n};\nvar _default = docEndnoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docEndnotesRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'rearnotes [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['doc-endnote']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docEndnotesRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docEpigraphRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'epigraph [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docEpigraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docEpilogueRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'epilogue [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docEpilogueRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docErrataRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'errata [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docErrataRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docExampleRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docExampleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docFootnoteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'footnote [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docFootnoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docForewordRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'foreword [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docForewordRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docGlossaryRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'glossary [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [['definition'], ['term']],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docGlossaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docGlossrefRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'glossref [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docGlossrefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docIndexRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'index [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docIndexRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docIntroductionRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'introduction [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docIntroductionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docNoterefRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'noteref [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'widget', 'command', 'link']]\n};\nvar _default = docNoterefRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docNoticeRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'notice [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'note']]\n};\nvar _default = docNoticeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPagebreakRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'pagebreak [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'separator']]\n};\nvar _default = docPagebreakRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPagelistRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'page-list [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docPagelistRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPartRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'part [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPartRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPrefaceRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'preface [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPrefaceRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPrologueRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'prologue [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark']]\n};\nvar _default = docPrologueRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docPullquoteRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {},\n relatedConcepts: [{\n concept: {\n name: 'pullquote [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['none']]\n};\nvar _default = docPullquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docQnaRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'qna [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section']]\n};\nvar _default = docQnaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docSubtitleRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'subtitle [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'sectionhead']]\n};\nvar _default = docSubtitleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docTipRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'help [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'note']]\n};\nvar _default = docTipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar docTocRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n concept: {\n name: 'toc [EPUB-SSV]'\n },\n module: 'EPUB'\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'landmark', 'navigation']]\n};\nvar _default = docTocRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _docAbstractRole = _interopRequireDefault(require(\"./dpub/docAbstractRole\"));\nvar _docAcknowledgmentsRole = _interopRequireDefault(require(\"./dpub/docAcknowledgmentsRole\"));\nvar _docAfterwordRole = _interopRequireDefault(require(\"./dpub/docAfterwordRole\"));\nvar _docAppendixRole = _interopRequireDefault(require(\"./dpub/docAppendixRole\"));\nvar _docBacklinkRole = _interopRequireDefault(require(\"./dpub/docBacklinkRole\"));\nvar _docBiblioentryRole = _interopRequireDefault(require(\"./dpub/docBiblioentryRole\"));\nvar _docBibliographyRole = _interopRequireDefault(require(\"./dpub/docBibliographyRole\"));\nvar _docBibliorefRole = _interopRequireDefault(require(\"./dpub/docBibliorefRole\"));\nvar _docChapterRole = _interopRequireDefault(require(\"./dpub/docChapterRole\"));\nvar _docColophonRole = _interopRequireDefault(require(\"./dpub/docColophonRole\"));\nvar _docConclusionRole = _interopRequireDefault(require(\"./dpub/docConclusionRole\"));\nvar _docCoverRole = _interopRequireDefault(require(\"./dpub/docCoverRole\"));\nvar _docCreditRole = _interopRequireDefault(require(\"./dpub/docCreditRole\"));\nvar _docCreditsRole = _interopRequireDefault(require(\"./dpub/docCreditsRole\"));\nvar _docDedicationRole = _interopRequireDefault(require(\"./dpub/docDedicationRole\"));\nvar _docEndnoteRole = _interopRequireDefault(require(\"./dpub/docEndnoteRole\"));\nvar _docEndnotesRole = _interopRequireDefault(require(\"./dpub/docEndnotesRole\"));\nvar _docEpigraphRole = _interopRequireDefault(require(\"./dpub/docEpigraphRole\"));\nvar _docEpilogueRole = _interopRequireDefault(require(\"./dpub/docEpilogueRole\"));\nvar _docErrataRole = _interopRequireDefault(require(\"./dpub/docErrataRole\"));\nvar _docExampleRole = _interopRequireDefault(require(\"./dpub/docExampleRole\"));\nvar _docFootnoteRole = _interopRequireDefault(require(\"./dpub/docFootnoteRole\"));\nvar _docForewordRole = _interopRequireDefault(require(\"./dpub/docForewordRole\"));\nvar _docGlossaryRole = _interopRequireDefault(require(\"./dpub/docGlossaryRole\"));\nvar _docGlossrefRole = _interopRequireDefault(require(\"./dpub/docGlossrefRole\"));\nvar _docIndexRole = _interopRequireDefault(require(\"./dpub/docIndexRole\"));\nvar _docIntroductionRole = _interopRequireDefault(require(\"./dpub/docIntroductionRole\"));\nvar _docNoterefRole = _interopRequireDefault(require(\"./dpub/docNoterefRole\"));\nvar _docNoticeRole = _interopRequireDefault(require(\"./dpub/docNoticeRole\"));\nvar _docPagebreakRole = _interopRequireDefault(require(\"./dpub/docPagebreakRole\"));\nvar _docPagelistRole = _interopRequireDefault(require(\"./dpub/docPagelistRole\"));\nvar _docPartRole = _interopRequireDefault(require(\"./dpub/docPartRole\"));\nvar _docPrefaceRole = _interopRequireDefault(require(\"./dpub/docPrefaceRole\"));\nvar _docPrologueRole = _interopRequireDefault(require(\"./dpub/docPrologueRole\"));\nvar _docPullquoteRole = _interopRequireDefault(require(\"./dpub/docPullquoteRole\"));\nvar _docQnaRole = _interopRequireDefault(require(\"./dpub/docQnaRole\"));\nvar _docSubtitleRole = _interopRequireDefault(require(\"./dpub/docSubtitleRole\"));\nvar _docTipRole = _interopRequireDefault(require(\"./dpub/docTipRole\"));\nvar _docTocRole = _interopRequireDefault(require(\"./dpub/docTocRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaDpubRoles = [['doc-abstract', _docAbstractRole.default], ['doc-acknowledgments', _docAcknowledgmentsRole.default], ['doc-afterword', _docAfterwordRole.default], ['doc-appendix', _docAppendixRole.default], ['doc-backlink', _docBacklinkRole.default], ['doc-biblioentry', _docBiblioentryRole.default], ['doc-bibliography', _docBibliographyRole.default], ['doc-biblioref', _docBibliorefRole.default], ['doc-chapter', _docChapterRole.default], ['doc-colophon', _docColophonRole.default], ['doc-conclusion', _docConclusionRole.default], ['doc-cover', _docCoverRole.default], ['doc-credit', _docCreditRole.default], ['doc-credits', _docCreditsRole.default], ['doc-dedication', _docDedicationRole.default], ['doc-endnote', _docEndnoteRole.default], ['doc-endnotes', _docEndnotesRole.default], ['doc-epigraph', _docEpigraphRole.default], ['doc-epilogue', _docEpilogueRole.default], ['doc-errata', _docErrataRole.default], ['doc-example', _docExampleRole.default], ['doc-footnote', _docFootnoteRole.default], ['doc-foreword', _docForewordRole.default], ['doc-glossary', _docGlossaryRole.default], ['doc-glossref', _docGlossrefRole.default], ['doc-index', _docIndexRole.default], ['doc-introduction', _docIntroductionRole.default], ['doc-noteref', _docNoterefRole.default], ['doc-notice', _docNoticeRole.default], ['doc-pagebreak', _docPagebreakRole.default], ['doc-pagelist', _docPagelistRole.default], ['doc-part', _docPartRole.default], ['doc-preface', _docPrefaceRole.default], ['doc-prologue', _docPrologueRole.default], ['doc-pullquote', _docPullquoteRole.default], ['doc-qna', _docQnaRole.default], ['doc-subtitle', _docSubtitleRole.default], ['doc-tip', _docTipRole.default], ['doc-toc', _docTocRole.default]];\nvar _default = ariaDpubRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar graphicsDocumentRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n module: 'GRAPHICS',\n concept: {\n name: 'graphics-object'\n }\n }, {\n module: 'ARIA',\n concept: {\n name: 'img'\n }\n }, {\n module: 'ARIA',\n concept: {\n name: 'article'\n }\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'document']]\n};\nvar _default = graphicsDocumentRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar graphicsObjectRole = {\n abstract: false,\n accessibleNameRequired: false,\n baseConcepts: [],\n childrenPresentational: false,\n nameFrom: ['author', 'contents'],\n prohibitedProps: [],\n props: {\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [{\n module: 'GRAPHICS',\n concept: {\n name: 'graphics-document'\n }\n }, {\n module: 'ARIA',\n concept: {\n name: 'group'\n }\n }, {\n module: 'ARIA',\n concept: {\n name: 'img'\n }\n }, {\n module: 'GRAPHICS',\n concept: {\n name: 'graphics-symbol'\n }\n }],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'group']]\n};\nvar _default = graphicsObjectRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar graphicsSymbolRole = {\n abstract: false,\n accessibleNameRequired: true,\n baseConcepts: [],\n childrenPresentational: true,\n nameFrom: ['author'],\n prohibitedProps: [],\n props: {\n 'aria-disabled': null,\n 'aria-errormessage': null,\n 'aria-expanded': null,\n 'aria-haspopup': null,\n 'aria-invalid': null\n },\n relatedConcepts: [],\n requireContextRole: [],\n requiredContextRole: [],\n requiredOwnedElements: [],\n requiredProps: {},\n superClass: [['roletype', 'structure', 'section', 'img']]\n};\nvar _default = graphicsSymbolRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _graphicsDocumentRole = _interopRequireDefault(require(\"./graphics/graphicsDocumentRole\"));\nvar _graphicsObjectRole = _interopRequireDefault(require(\"./graphics/graphicsObjectRole\"));\nvar _graphicsSymbolRole = _interopRequireDefault(require(\"./graphics/graphicsSymbolRole\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ariaGraphicsRoles = [['graphics-document', _graphicsDocumentRole.default], ['graphics-object', _graphicsObjectRole.default], ['graphics-symbol', _graphicsSymbolRole.default]];\nvar _default = ariaGraphicsRoles;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _ariaAbstractRoles = _interopRequireDefault(require(\"./etc/roles/ariaAbstractRoles\"));\nvar _ariaLiteralRoles = _interopRequireDefault(require(\"./etc/roles/ariaLiteralRoles\"));\nvar _ariaDpubRoles = _interopRequireDefault(require(\"./etc/roles/ariaDpubRoles\"));\nvar _ariaGraphicsRoles = _interopRequireDefault(require(\"./etc/roles/ariaGraphicsRoles\"));\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nvar roles = [].concat(_ariaAbstractRoles.default, _ariaLiteralRoles.default, _ariaDpubRoles.default, _ariaGraphicsRoles.default);\nroles.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n roleDefinition = _ref2[1];\n // Conglomerate the properties\n var _iterator = _createForOfIteratorHelper(roleDefinition.superClass),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var superClassIter = _step.value;\n var _iterator2 = _createForOfIteratorHelper(superClassIter),\n _step2;\n try {\n var _loop = function _loop() {\n var superClassName = _step2.value;\n var superClassRoleTuple = roles.find(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 1),\n name = _ref4[0];\n return name === superClassName;\n });\n if (superClassRoleTuple) {\n var superClassDefinition = superClassRoleTuple[1];\n for (var _i2 = 0, _Object$keys = Object.keys(superClassDefinition.props); _i2 < _Object$keys.length; _i2++) {\n var prop = _Object$keys[_i2];\n if (\n // $FlowIssue Accessing the hasOwnProperty on the Object prototype is fine.\n !Object.prototype.hasOwnProperty.call(roleDefinition.props, prop)) {\n Object.assign(roleDefinition.props, _defineProperty({}, prop, superClassDefinition.props[prop]));\n }\n }\n }\n };\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n _loop();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n});\nvar rolesMap = {\n entries: function entries() {\n return roles;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator3 = _createForOfIteratorHelper(roles),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _step3$value = _slicedToArray(_step3.value, 2),\n key = _step3$value[0],\n values = _step3$value[1];\n fn.call(thisArg, values, key, roles);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n },\n get: function get(key) {\n var item = roles.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!rolesMap.get(key);\n },\n keys: function keys() {\n return roles.map(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 1),\n key = _ref6[0];\n return key;\n });\n },\n values: function values() {\n return roles.map(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n values = _ref8[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(rolesMap, rolesMap.entries());\nexports.default = _default;","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n","'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n\treturn typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (gOPD) {\n\ttry {\n\t\tgOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\tgOPD = null;\n\t}\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n\tif (!functionsHaveNames() || !gOPD) {\n\t\treturn false;\n\t}\n\tvar desc = gOPD(function () {}, 'name');\n\treturn !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n\treturn functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;\n","'use strict';\n\nvar functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames();\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\nif (functionsHaveConfigurableNames && Object.defineProperty) {\n\tObject.defineProperty(module.exports, 'name', { value: 'get flags' });\n}\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& typeof RegExp.prototype.dotAll === 'boolean'\n\t\t\t&& typeof RegExp.prototype.hasIndices === 'boolean'\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar strValue = String.prototype.valueOf;\nvar tryStringObject = function tryStringObject(value) {\n\ttry {\n\t\tstrValue.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar strClass = '[object String]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isString(value) {\n\tif (typeof value === 'string') {\n\t\treturn true;\n\t}\n\tif (typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass;\n};\n","'use strict';\n\nvar numToStr = Number.prototype.toString;\nvar tryNumberObject = function tryNumberObject(value) {\n\ttry {\n\t\tnumToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar numClass = '[object Number]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isNumberObject(value) {\n\tif (typeof value === 'number') {\n\t\treturn true;\n\t}\n\tif (typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar $boolToStr = callBound('Boolean.prototype.toString');\nvar $toString = callBound('Object.prototype.toString');\n\nvar tryBooleanObject = function booleanBrandCheck(value) {\n\ttry {\n\t\t$boolToStr(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar boolClass = '[object Boolean]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isBoolean(value) {\n\tif (typeof value === 'boolean') {\n\t\treturn true;\n\t}\n\tif (value === null || typeof value !== 'object') {\n\t\treturn false;\n\t}\n\treturn hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass;\n};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar hasSymbols = require('has-symbols')();\n\nif (hasSymbols) {\n\tvar symToStr = Symbol.prototype.toString;\n\tvar symStringRegex = /^Symbol\\(.*\\)$/;\n\tvar isSymbolObject = function isRealSymbolObject(value) {\n\t\tif (typeof value.valueOf() !== 'symbol') {\n\t\t\treturn false;\n\t\t}\n\t\treturn symStringRegex.test(symToStr.call(value));\n\t};\n\n\tmodule.exports = function isSymbol(value) {\n\t\tif (typeof value === 'symbol') {\n\t\t\treturn true;\n\t\t}\n\t\tif (toStr.call(value) !== '[object Symbol]') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\treturn isSymbolObject(value);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n} else {\n\n\tmodule.exports = function isSymbol(value) {\n\t\t// this environment does not support Symbols.\n\t\treturn false && value;\n\t};\n}\n","'use strict';\n\nvar $BigInt = typeof BigInt !== 'undefined' && BigInt;\n\nmodule.exports = function hasNativeBigInts() {\n\treturn typeof $BigInt === 'function'\n\t\t&& typeof BigInt === 'function'\n\t\t&& typeof $BigInt(42) === 'bigint' // eslint-disable-line no-magic-numbers\n\t\t&& typeof BigInt(42) === 'bigint'; // eslint-disable-line no-magic-numbers\n};\n","'use strict';\n\nvar hasBigInts = require('has-bigints')();\n\nif (hasBigInts) {\n\tvar bigIntValueOf = BigInt.prototype.valueOf;\n\tvar tryBigInt = function tryBigIntObject(value) {\n\t\ttry {\n\t\t\tbigIntValueOf.call(value);\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t}\n\t\treturn false;\n\t};\n\n\tmodule.exports = function isBigInt(value) {\n\t\tif (\n\t\t\tvalue === null\n\t\t\t|| typeof value === 'undefined'\n\t\t\t|| typeof value === 'boolean'\n\t\t\t|| typeof value === 'string'\n\t\t\t|| typeof value === 'number'\n\t\t\t|| typeof value === 'symbol'\n\t\t\t|| typeof value === 'function'\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\tif (typeof value === 'bigint') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn tryBigInt(value);\n\t};\n} else {\n\tmodule.exports = function isBigInt(value) {\n\t\treturn false && value;\n\t};\n}\n","'use strict';\n\nvar isString = require('is-string');\nvar isNumber = require('is-number-object');\nvar isBoolean = require('is-boolean-object');\nvar isSymbol = require('is-symbol');\nvar isBigInt = require('is-bigint');\n\n// eslint-disable-next-line consistent-return\nmodule.exports = function whichBoxedPrimitive(value) {\n\t// eslint-disable-next-line eqeqeq\n\tif (value == null || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\treturn null;\n\t}\n\tif (isString(value)) {\n\t\treturn 'String';\n\t}\n\tif (isNumber(value)) {\n\t\treturn 'Number';\n\t}\n\tif (isBoolean(value)) {\n\t\treturn 'Boolean';\n\t}\n\tif (isSymbol(value)) {\n\t\treturn 'Symbol';\n\t}\n\tif (isBigInt(value)) {\n\t\treturn 'BigInt';\n\t}\n};\n","'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Map) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$mapHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isMap(x) {\n\t\t// `Map` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isMap(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$mapHas.call(x);\n\t\tif ($setHas) {\n\t\t\ttry {\n\t\t\t\t$setHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Map; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n","'use strict';\n\nvar $Map = typeof Map === 'function' && Map.prototype ? Map : null;\nvar $Set = typeof Set === 'function' && Set.prototype ? Set : null;\n\nvar exported;\n\nif (!$Set) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $Map ? Map.prototype.has : null;\nvar $setHas = $Set ? Set.prototype.has : null;\nif (!exported && !$setHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isSet(x) {\n\t\t// `Set` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isSet(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$setHas.call(x);\n\t\tif ($mapHas) {\n\t\t\ttry {\n\t\t\t\t$mapHas.call(x);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $Set; // core-js workaround, pre-v2.5.0\n\t} catch (e) {}\n\treturn false;\n};\n","'use strict';\n\nvar $WeakMap = typeof WeakMap === 'function' && WeakMap.prototype ? WeakMap : null;\nvar $WeakSet = typeof WeakSet === 'function' && WeakSet.prototype ? WeakSet : null;\n\nvar exported;\n\nif (!$WeakMap) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isWeakMap(x) {\n\t\t// `WeakMap` is not present in this environment.\n\t\treturn false;\n\t};\n}\n\nvar $mapHas = $WeakMap ? $WeakMap.prototype.has : null;\nvar $setHas = $WeakSet ? $WeakSet.prototype.has : null;\nif (!exported && !$mapHas) {\n\t// eslint-disable-next-line no-unused-vars\n\texported = function isWeakMap(x) {\n\t\t// `WeakMap` does not have a `has` method\n\t\treturn false;\n\t};\n}\n\nmodule.exports = exported || function isWeakMap(x) {\n\tif (!x || typeof x !== 'object') {\n\t\treturn false;\n\t}\n\ttry {\n\t\t$mapHas.call(x, $mapHas);\n\t\tif ($setHas) {\n\t\t\ttry {\n\t\t\t\t$setHas.call(x, $setHas);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn x instanceof $WeakMap; // core-js workaround, pre-v3\n\t} catch (e) {}\n\treturn false;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\n\nvar $WeakSet = GetIntrinsic('%WeakSet%', true);\n\nvar $setHas = callBound('WeakSet.prototype.has', true);\n\nif ($setHas) {\n\tvar $mapHas = callBound('WeakMap.prototype.has', true);\n\n\tmodule.exports = function isWeakSet(x) {\n\t\tif (!x || typeof x !== 'object') {\n\t\t\treturn false;\n\t\t}\n\t\ttry {\n\t\t\t$setHas(x, $setHas);\n\t\t\tif ($mapHas) {\n\t\t\t\ttry {\n\t\t\t\t\t$mapHas(x, $mapHas);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn x instanceof $WeakSet; // core-js workaround, pre-v3\n\t\t} catch (e) {}\n\t\treturn false;\n\t};\n} else {\n\t// eslint-disable-next-line no-unused-vars\n\tmodule.exports = function isWeakSet(x) {\n\t\t// `WeakSet` does not exist, or does not have a `has` method\n\t\treturn false;\n\t};\n}\n","'use strict';\n\nvar isMap = require('is-map');\nvar isSet = require('is-set');\nvar isWeakMap = require('is-weakmap');\nvar isWeakSet = require('is-weakset');\n\nmodule.exports = function whichCollection(value) {\n\tif (value && typeof value === 'object') {\n\t\tif (isMap(value)) {\n\t\t\treturn 'Map';\n\t\t}\n\t\tif (isSet(value)) {\n\t\t\treturn 'Set';\n\t\t}\n\t\tif (isWeakMap(value)) {\n\t\t\treturn 'WeakMap';\n\t\t}\n\t\tif (isWeakSet(value)) {\n\t\t\treturn 'WeakSet';\n\t\t}\n\t}\n\treturn false;\n};\n","// this should only run in node >= 13.7, so it\n// does not need any of the intense fallbacks that old node/browsers do\n\nvar $iterator = Symbol.iterator;\n\nexport default function getIterator(iterable) {\n\t// alternatively, `iterable[$iterator]?.()`\n\tif (iterable != null && iterable[$iterator] !== undefined) {\n\t\treturn iterable[$iterator]();\n\t}\n}\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof g[typedArray] === 'function') {\n\t\t\tvar arr = new g[typedArray]();\n\t\t\tif (Symbol.toStringTag in arr) {\n\t\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\t\tif (!descriptor) {\n\t\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t\t}\n\t\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","module.exports = function isBuffer(arg) {\n return arg instanceof Buffer;\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","module.exports = require('util').inspect;\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n * This function traverses the list returning the node corresponding to the\n * given key.\n *\n * That node is also moved to the head of the list, so that if it's accessed\n * again we don't need to traverse the whole list. By doing so, all the recently\n * used nodes can be accessed relatively quickly.\n */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\tfor (var prev = list, curr; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tcurr.next = list.next;\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = { // eslint-disable-line no-param-reassign\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t};\n\t}\n};\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\nmodule.exports = function getSideChannel() {\n\tvar $wm;\n\tvar $m;\n\tvar $o;\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t/*\n\t\t\t\t\t * Initialize the linked list as an empty node, so that we don't have\n\t\t\t\t\t * to special-case handling of the first node: we can always refer to\n\t\t\t\t\t * it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t */\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bind/callBound');\nvar toObject = Object;\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = toObject(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = toObject(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tdefine(\n\t\tObject,\n\t\t{ assign: polyfill },\n\t\t{ assign: function () { return Object.assign !== polyfill; } }\n\t);\n\treturn polyfill;\n};\n","'use strict';\n\nvar defineProperties = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind.apply(getPolyfill());\n// eslint-disable-next-line no-unused-vars\nvar bound = function assign(target, source1) {\n\treturn polyfill(Object, arguments);\n};\n\ndefineProperties(bound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = bound;\n","'use strict';\n\nvar objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isArray = require('isarray');\nvar isDate = require('is-date-object');\nvar whichBoxedPrimitive = require('which-boxed-primitive');\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar whichCollection = require('which-collection');\nvar getIterator = require('es-get-iterator');\nvar getSideChannel = require('side-channel');\nvar whichTypedArray = require('which-typed-array');\nvar assign = require('object.assign');\n\nvar $getTime = callBound('Date.prototype.getTime');\nvar gPO = Object.getPrototypeOf;\nvar $objToString = callBound('Object.prototype.toString');\n\nvar $Set = GetIntrinsic('%Set%', true);\nvar $mapHas = callBound('Map.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSize = callBound('Map.prototype.size', true);\nvar $setAdd = callBound('Set.prototype.add', true);\nvar $setDelete = callBound('Set.prototype.delete', true);\nvar $setHas = callBound('Set.prototype.has', true);\nvar $setSize = callBound('Set.prototype.size', true);\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L401-L414\nfunction setHasEqualElement(set, val1, opts, channel) {\n var i = getIterator(set);\n var result;\n while ((result = i.next()) && !result.done) {\n if (internalDeepEqual(val1, result.value, opts, channel)) { // eslint-disable-line no-use-before-define\n // Remove the matching element to make sure we do not check that again.\n $setDelete(set, result.value);\n return true;\n }\n }\n\n return false;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L416-L439\nfunction findLooseMatchingPrimitives(prim) {\n if (typeof prim === 'undefined') {\n return null;\n }\n if (typeof prim === 'object') { // Only pass in null as object!\n return void 0;\n }\n if (typeof prim === 'symbol') {\n return false;\n }\n if (typeof prim === 'string' || typeof prim === 'number') {\n // Loose equal entries exist only if the string is possible to convert to a regular number and not NaN.\n return +prim === +prim; // eslint-disable-line no-implicit-coercion\n }\n return true;\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L449-L460\nfunction mapMightHaveLoosePrim(a, b, prim, item, opts, channel) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = $mapGet(b, altValue);\n var looseOpts = assign({}, opts, { strict: false });\n if (\n (typeof curB === 'undefined' && !$mapHas(b, altValue))\n // eslint-disable-next-line no-use-before-define\n || !internalDeepEqual(item, curB, looseOpts, channel)\n ) {\n return false;\n }\n // eslint-disable-next-line no-use-before-define\n return !$mapHas(a, altValue) && internalDeepEqual(item, curB, looseOpts, channel);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L441-L447\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n\n return $setHas(b, altValue) && !$setHas(a, altValue);\n}\n\n// taken from https://github.com/browserify/commonjs-assert/blob/bba838e9ba9e28edf3127ce6974624208502f6bc/internal/util/comparisons.js#L518-L533\nfunction mapHasEqualEntry(set, map, key1, item1, opts, channel) {\n var i = getIterator(set);\n var result;\n var key2;\n while ((result = i.next()) && !result.done) {\n key2 = result.value;\n if (\n // eslint-disable-next-line no-use-before-define\n internalDeepEqual(key1, key2, opts, channel)\n // eslint-disable-next-line no-use-before-define\n && internalDeepEqual(item1, $mapGet(map, key2), opts, channel)\n ) {\n $setDelete(set, key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction internalDeepEqual(actual, expected, options, channel) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n var actualBoxed = whichBoxedPrimitive(actual);\n var expectedBoxed = whichBoxedPrimitive(expected);\n if (actualBoxed !== expectedBoxed) {\n return false;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected; // eslint-disable-line eqeqeq\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // see https://github.com/nodejs/node/commit/d3aafd02efd3a403d646a3044adcf14e63a88d32 for memos/channel inspiration\n\n var hasActual = channel.has(actual);\n var hasExpected = channel.has(expected);\n var sentinel;\n if (hasActual && hasExpected) {\n if (channel.get(actual) === channel.get(expected)) {\n return true;\n }\n } else {\n sentinel = {};\n }\n if (!hasActual) { channel.set(actual, sentinel); }\n if (!hasExpected) { channel.set(expected, sentinel); }\n\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts, channel);\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n\n return !!(x.constructor && x.constructor.isBuffer && x.constructor.isBuffer(x));\n}\n\nfunction setEquiv(a, b, opts, channel) {\n if ($setSize(a) !== $setSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n while ((resultA = iA.next()) && !resultA.done) {\n if (resultA.value && typeof resultA.value === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n } else if (!$setHas(b, resultA.value)) {\n if (opts.strict) { return false; }\n if (!setMightHaveLoosePrim(a, b, resultA.value)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, resultA.value);\n }\n }\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n // We have to check if a primitive value is already matching and only if it's not, go hunting for it.\n if (resultB.value && typeof resultB.value === 'object') {\n if (!setHasEqualElement(set, resultB.value, opts.strict, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && !$setHas(a, resultB.value)\n && !setHasEqualElement(set, resultB.value, opts.strict, channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction mapEquiv(a, b, opts, channel) {\n if ($mapSize(a) !== $mapSize(b)) {\n return false;\n }\n var iA = getIterator(a);\n var iB = getIterator(b);\n var resultA;\n var resultB;\n var set;\n var key;\n var item1;\n var item2;\n while ((resultA = iA.next()) && !resultA.done) {\n key = resultA.value[0];\n item1 = resultA.value[1];\n if (key && typeof key === 'object') {\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n } else {\n item2 = $mapGet(b, key);\n if ((typeof item2 === 'undefined' && !$mapHas(b, key)) || !internalDeepEqual(item1, item2, opts, channel)) {\n if (opts.strict) {\n return false;\n }\n if (!mapMightHaveLoosePrim(a, b, key, item1, opts, channel)) {\n return false;\n }\n if (!set) { set = new $Set(); }\n $setAdd(set, key);\n }\n }\n }\n\n if (set) {\n while ((resultB = iB.next()) && !resultB.done) {\n key = resultB.value[0];\n item2 = resultB.value[1];\n if (key && typeof key === 'object') {\n if (!mapHasEqualEntry(set, a, key, item2, opts, channel)) {\n return false;\n }\n } else if (\n !opts.strict\n && (!a.has(key) || !internalDeepEqual($mapGet(a, key), item2, opts, channel))\n && !mapHasEqualEntry(set, a, key, item2, assign({}, opts, { strict: false }), channel)\n ) {\n return false;\n }\n }\n return $setSize(set) === 0;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts, channel) {\n /* eslint max-statements: [2, 100], max-lines-per-function: [2, 120], max-depth: [2, 5] */\n var i, key;\n\n if (typeof a !== typeof b) { return false; }\n if (a == null || b == null) { return false; }\n\n if ($objToString(a) !== $objToString(b)) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsArray = isArray(a);\n var bIsArray = isArray(b);\n if (aIsArray !== bIsArray) { return false; }\n\n // TODO: replace when a cross-realm brand check is available\n var aIsError = a instanceof Error;\n var bIsError = b instanceof Error;\n if (aIsError !== bIsError) { return false; }\n if (aIsError || bIsError) {\n if (a.name !== b.name || a.message !== b.message) { return false; }\n }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if ((aIsRegex || bIsRegex) && (a.source !== b.source || flags(a) !== flags(b))) {\n return false;\n }\n\n var aIsDate = isDate(a);\n var bIsDate = isDate(b);\n if (aIsDate !== bIsDate) { return false; }\n if (aIsDate || bIsDate) { // && would work too, because both are true or both false here\n if ($getTime(a) !== $getTime(b)) { return false; }\n }\n if (opts.strict && gPO && gPO(a) !== gPO(b)) { return false; }\n\n if (whichTypedArray(a) !== whichTypedArray(b)) {\n return false;\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; } // eslint-disable-line eqeqeq\n }\n\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!internalDeepEqual(a[key], b[key], opts, channel)) { return false; }\n }\n\n var aCollection = whichCollection(a);\n var bCollection = whichCollection(b);\n if (aCollection !== bCollection) {\n return false;\n }\n if (aCollection === 'Set' || bCollection === 'Set') { // aCollection === bCollection\n return setEquiv(a, b, opts, channel);\n }\n if (aCollection === 'Map') { // aCollection === bCollection\n return mapEquiv(a, b, opts, channel);\n }\n\n return true;\n}\n\nmodule.exports = function deepEqual(a, b, opts) {\n return internalDeepEqual(a, b, opts, getSideChannel());\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _deepEqual = _interopRequireDefault(require(\"deep-equal\"));\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar elementRoles = [];\nvar keys = _rolesMap.default.keys();\nfor (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var role = _rolesMap.default.get(key);\n if (role) {\n var concepts = [].concat(role.baseConcepts, role.relatedConcepts);\n for (var k = 0; k < concepts.length; k++) {\n var relation = concepts[k];\n if (relation.module === 'HTML') {\n var concept = relation.concept;\n if (concept) {\n (function () {\n var conceptStr = JSON.stringify(concept);\n var elementRoleRelation = elementRoles.find(function (relation) {\n return JSON.stringify(relation[0]) === conceptStr;\n });\n var roles = void 0;\n if (elementRoleRelation) {\n roles = elementRoleRelation[1];\n } else {\n roles = [];\n }\n var isUnique = true;\n for (var _i = 0; _i < roles.length; _i++) {\n if (roles[_i] === key) {\n isUnique = false;\n break;\n }\n }\n if (isUnique) {\n roles.push(key);\n }\n elementRoles.push([concept, roles]);\n })();\n }\n }\n }\n }\n}\nvar elementRoleMap = {\n entries: function entries() {\n return elementRoles;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator = _createForOfIteratorHelper(elementRoles),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n _key = _step$value[0],\n values = _step$value[1];\n fn.call(thisArg, values, _key, elementRoles);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n },\n get: function get(key) {\n var item = elementRoles.find(function (tuple) {\n return (0, _deepEqual.default)(key, tuple[0]);\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!elementRoleMap.get(key);\n },\n keys: function keys() {\n return elementRoles.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return key;\n });\n },\n values: function values() {\n return elementRoles.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(elementRoleMap, elementRoleMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\nvar roleElement = [];\nvar keys = _rolesMap.default.keys();\nvar _loop = function _loop(i) {\n var key = keys[i];\n var role = _rolesMap.default.get(key);\n if (role) {\n var concepts = [].concat(role.baseConcepts, role.relatedConcepts);\n for (var k = 0; k < concepts.length; k++) {\n var relation = concepts[k];\n if (relation.module === 'HTML') {\n var concept = relation.concept;\n if (concept) {\n var roleElementRelation = roleElement.find(function (item) {\n return item[0] === key;\n });\n var relationConcepts = void 0;\n if (roleElementRelation) {\n relationConcepts = roleElementRelation[1];\n } else {\n relationConcepts = [];\n }\n relationConcepts.push(concept);\n roleElement.push([key, relationConcepts]);\n }\n }\n }\n }\n};\nfor (var i = 0; i < keys.length; i++) {\n _loop(i);\n}\nvar roleElementMap = {\n entries: function entries() {\n return roleElement;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var _iterator = _createForOfIteratorHelper(roleElement),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n values = _step$value[1];\n fn.call(thisArg, values, key, roleElement);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n },\n get: function get(key) {\n var item = roleElement.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!roleElementMap.get(key);\n },\n keys: function keys() {\n return roleElement.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return key;\n });\n },\n values: function values() {\n return roleElement.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n return values;\n });\n }\n};\nvar _default = (0, _iterationDecorator.default)(roleElementMap, roleElementMap.entries());\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.roles = exports.roleElements = exports.elementRoles = exports.dom = exports.aria = void 0;\nvar _ariaPropsMap = _interopRequireDefault(require(\"./ariaPropsMap\"));\nvar _domMap = _interopRequireDefault(require(\"./domMap\"));\nvar _rolesMap = _interopRequireDefault(require(\"./rolesMap\"));\nvar _elementRoleMap = _interopRequireDefault(require(\"./elementRoleMap\"));\nvar _roleElementMap = _interopRequireDefault(require(\"./roleElementMap\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar aria = _ariaPropsMap.default;\nexports.aria = aria;\nvar dom = _domMap.default;\nexports.dom = dom;\nvar roles = _rolesMap.default;\nexports.roles = roles;\nvar elementRoles = _elementRoleMap.default;\nexports.elementRoles = elementRoles;\nvar roleElements = _roleElementMap.default;\nexports.roleElements = roleElements;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nfunction iteratorProxy() {\n var values = this;\n var index = 0;\n var iter = {\n '@@iterator': function iterator() {\n return iter;\n },\n next: function next() {\n if (index < values.length) {\n var value = values[index];\n index = index + 1;\n return {\n done: false,\n value: value\n };\n } else {\n return {\n done: true\n };\n }\n }\n };\n return iter;\n}\n\nvar _default = iteratorProxy;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = iterationDecorator;\n\nvar _iteratorProxy = _interopRequireDefault(require(\"./iteratorProxy\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction iterationDecorator(collection, entries) {\n if (typeof Symbol === 'function' && _typeof(Symbol.iterator) === 'symbol') {\n Object.defineProperty(collection, Symbol.iterator, {\n value: _iteratorProxy.default.bind(entries)\n });\n }\n\n return collection;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar AbbrRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'abbr'\n }\n }],\n type: 'structure'\n};\nvar _default = AbbrRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar AlertDialogRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'alertdialog'\n }\n }],\n type: 'window'\n};\nvar _default = AlertDialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar AlertRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'alert'\n }\n }],\n type: 'structure'\n};\nvar _default = AlertRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar AnnotationRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = AnnotationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ApplicationRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'application'\n }\n }],\n type: 'window'\n};\nvar _default = ApplicationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ArticleRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'article'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'article'\n }\n }],\n type: 'structure'\n};\nvar _default = ArticleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar AudioRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'audio'\n }\n }],\n type: 'widget'\n};\nvar _default = AudioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar BannerRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'banner'\n }\n }],\n type: 'structure'\n};\nvar _default = BannerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar BlockquoteRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'blockquote'\n }\n }],\n type: 'structure'\n};\nvar _default = BlockquoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar BusyIndicatorRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n attributes: [{\n name: 'aria-busy',\n value: 'true'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = BusyIndicatorRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ButtonRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'button'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'button'\n }\n }],\n type: 'widget'\n};\nvar _default = ButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar CanvasRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'canvas'\n }\n }],\n type: 'widget'\n};\nvar _default = CanvasRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar CaptionRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'caption'\n }\n }],\n type: 'structure'\n};\nvar _default = CaptionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar CellRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'cell'\n }\n }, {\n module: 'ARIA',\n concept: {\n name: 'gridcell'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'td'\n }\n }],\n type: 'widget'\n};\nvar _default = CellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar CheckBoxRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'checkbox'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'checkbox'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = CheckBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ColorWellRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'color'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = ColorWellRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ColumnHeaderRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'columnheader'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'th'\n }\n }],\n type: 'widget'\n};\nvar _default = ColumnHeaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ColumnRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = ColumnRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ComboBoxRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'combobox'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'select'\n }\n }],\n type: 'widget'\n};\nvar _default = ComboBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ComplementaryRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'complementary'\n }\n }],\n type: 'structure'\n};\nvar _default = ComplementaryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ContentInfoRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'structureinfo'\n }\n }],\n type: 'structure'\n};\nvar _default = ContentInfoRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DateRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'date'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = DateRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DateTimeRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'datetime'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = DateTimeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DefinitionRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'dfn'\n }\n }],\n type: 'structure'\n};\nvar _default = DefinitionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DescriptionListDetailRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'dd'\n }\n }],\n type: 'structure'\n};\nvar _default = DescriptionListDetailRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DescriptionListRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'dl'\n }\n }],\n type: 'structure'\n};\nvar _default = DescriptionListRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DescriptionListTermRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'dt'\n }\n }],\n type: 'structure'\n};\nvar _default = DescriptionListTermRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DetailsRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'details'\n }\n }],\n type: 'structure'\n};\nvar _default = DetailsRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DialogRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'dialog'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'dialog'\n }\n }],\n type: 'window'\n};\nvar _default = DialogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DirectoryRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'directory'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'dir'\n }\n }],\n type: 'structure'\n};\nvar _default = DirectoryRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DisclosureTriangleRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'summary'\n }\n }],\n type: 'widget'\n};\nvar _default = DisclosureTriangleRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DivRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'div'\n }\n }],\n type: 'generic'\n};\nvar _default = DivRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar DocumentRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'document'\n }\n }],\n type: 'structure'\n};\nvar _default = DocumentRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar EmbeddedObjectRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'embed'\n }\n }],\n type: 'widget'\n};\nvar _default = EmbeddedObjectRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar FeedRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'feed'\n }\n }],\n type: 'structure'\n};\nvar _default = FeedRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar FigcaptionRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'figcaption'\n }\n }],\n type: 'structure'\n};\nvar _default = FigcaptionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar FigureRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'figure'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'figure'\n }\n }],\n type: 'structure'\n};\nvar _default = FigureRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar FooterRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'footer'\n }\n }],\n type: 'structure'\n};\nvar _default = FooterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar FormRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'form'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'form'\n }\n }],\n type: 'structure'\n};\nvar _default = FormRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar GridRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'grid'\n }\n }],\n type: 'widget'\n};\nvar _default = GridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar GroupRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'group'\n }\n }],\n type: 'structure'\n};\nvar _default = GroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar HeadingRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'heading'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'h1'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'h2'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'h3'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'h4'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'h5'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'h6'\n }\n }],\n type: 'structure'\n};\nvar _default = HeadingRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar IframePresentationalRole = {\n relatedConcepts: [],\n type: 'window'\n};\nvar _default = IframePresentationalRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar IframeRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'iframe'\n }\n }],\n type: 'window'\n};\nvar _default = IframeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar IgnoredRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = IgnoredRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ImageMapLinkRole = {\n relatedConcepts: [],\n type: 'widget'\n};\nvar _default = ImageMapLinkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ImageMapRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'img',\n attributes: [{\n name: 'usemap'\n }]\n }\n }],\n type: 'structure'\n};\nvar _default = ImageMapRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ImageRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'img'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'img'\n }\n }],\n type: 'structure'\n};\nvar _default = ImageRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar InlineTextBoxRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'input'\n }\n }],\n type: 'widget'\n};\nvar _default = InlineTextBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar InputTimeRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'time'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = InputTimeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar LabelRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'label'\n }\n }],\n type: 'structure'\n};\nvar _default = LabelRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar LegendRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'legend'\n }\n }],\n type: 'structure'\n};\nvar _default = LegendRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar LineBreakRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'br'\n }\n }],\n type: 'structure'\n};\nvar _default = LineBreakRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar LinkRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'link'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'a',\n attributes: [{\n name: 'href'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = LinkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ListBoxOptionRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'option'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'option'\n }\n }],\n type: 'widget'\n};\nvar _default = ListBoxOptionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ListBoxRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'listbox'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'datalist'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'select'\n }\n }],\n type: 'widget'\n};\nvar _default = ListBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ListItemRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'listitem'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'li'\n }\n }],\n type: 'structure'\n};\nvar _default = ListItemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ListMarkerRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = ListMarkerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ListRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'list'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'ul'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'ol'\n }\n }],\n type: 'structure'\n};\nvar _default = ListRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar LogRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'log'\n }\n }],\n type: 'structure'\n};\nvar _default = LogRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MainRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'main'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'main'\n }\n }],\n type: 'structure'\n};\nvar _default = MainRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MarkRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'mark'\n }\n }],\n type: 'structure'\n};\nvar _default = MarkRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MarqueeRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'marquee'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'marquee'\n }\n }],\n type: 'structure'\n};\nvar _default = MarqueeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MathRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'math'\n }\n }],\n type: 'structure'\n};\nvar _default = MathRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MenuBarRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'menubar'\n }\n }],\n type: 'structure'\n};\nvar _default = MenuBarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MenuButtonRole = {\n relatedConcepts: [],\n type: 'widget'\n};\nvar _default = MenuButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MenuItemRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'menuitem'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'menuitem'\n }\n }],\n type: 'widget'\n};\nvar _default = MenuItemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MenuItemCheckBoxRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'menuitemcheckbox'\n }\n }],\n type: 'widget'\n};\nvar _default = MenuItemCheckBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MenuItemRadioRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'menuitemradio'\n }\n }],\n type: 'widget'\n};\nvar _default = MenuItemRadioRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MenuListOptionRole = {\n relatedConcepts: [],\n type: 'widget'\n};\nvar _default = MenuListOptionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MenuListPopupRole = {\n relatedConcepts: [],\n type: 'widget'\n};\nvar _default = MenuListPopupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MenuRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'menu'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'menu'\n }\n }],\n type: 'structure'\n};\nvar _default = MenuRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar MeterRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'meter'\n }\n }],\n type: 'structure'\n};\nvar _default = MeterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar NavigationRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'navigation'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'nav'\n }\n }],\n type: 'structure'\n};\nvar _default = NavigationRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar NoneRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'none'\n }\n }],\n type: 'structure'\n};\nvar _default = NoneRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar NoteRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'note'\n }\n }],\n type: 'structure'\n};\nvar _default = NoteRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar OutlineRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = OutlineRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ParagraphRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'p'\n }\n }],\n type: 'structure'\n};\nvar _default = ParagraphRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar PopUpButtonRole = {\n relatedConcepts: [],\n type: 'widget'\n};\nvar _default = PopUpButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar PreRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'pre'\n }\n }],\n type: 'structure'\n};\nvar _default = PreRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar PresentationalRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'presentation'\n }\n }],\n type: 'structure'\n};\nvar _default = PresentationalRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ProgressIndicatorRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'progressbar'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'progress'\n }\n }],\n type: 'structure'\n};\nvar _default = ProgressIndicatorRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar RadioButtonRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'radio'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'radio'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = RadioButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar RadioGroupRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'radiogroup'\n }\n }],\n type: 'structure'\n};\nvar _default = RadioGroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar RegionRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'region'\n }\n }],\n type: 'structure'\n};\nvar _default = RegionRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar RootWebAreaRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = RootWebAreaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar RowHeaderRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'rowheader'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'th',\n attributes: [{\n name: 'scope',\n value: 'row'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = RowHeaderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar RowRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'row'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'tr'\n }\n }],\n type: 'structure'\n};\nvar _default = RowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar RubyRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'ruby'\n }\n }],\n type: 'structure'\n};\nvar _default = RubyRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar RulerRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = RulerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ScrollAreaRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = ScrollAreaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ScrollBarRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'scrollbar'\n }\n }],\n type: 'widget'\n};\nvar _default = ScrollBarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SeamlessWebAreaRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = SeamlessWebAreaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SearchRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'search'\n }\n }],\n type: 'structure'\n};\nvar _default = SearchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SearchBoxRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'searchbox'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'search'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = SearchBoxRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SliderRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'slider'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'range'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = SliderRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SliderThumbRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = SliderThumbRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SpinButtonRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'spinbutton'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'number'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = SpinButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SpinButtonPartRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = SpinButtonPartRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SplitterRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'separator'\n }\n }],\n type: 'widget'\n};\nvar _default = SplitterRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar StaticTextRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = StaticTextRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar StatusRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'status'\n }\n }],\n type: 'structure'\n};\nvar _default = StatusRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SVGRootRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = SVGRootRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar SwitchRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'switch'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'checkbox'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = SwitchRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TabGroupRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'tablist'\n }\n }],\n type: 'structure'\n};\nvar _default = TabGroupRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TabRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'tab'\n }\n }],\n type: 'widget'\n};\nvar _default = TabRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TableHeaderContainerRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = TableHeaderContainerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TableRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'table'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'table'\n }\n }],\n type: 'structure'\n};\nvar _default = TableRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TabListRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'tablist'\n }\n }],\n type: 'structure'\n};\nvar _default = TabListRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TabPanelRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'tabpanel'\n }\n }],\n type: 'structure'\n};\nvar _default = TabPanelRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TermRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'term'\n }\n }],\n type: 'structure'\n};\nvar _default = TermRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TextFieldRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'textbox'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'input'\n }\n }, {\n module: 'HTML',\n concept: {\n name: 'input',\n attributes: [{\n name: 'type',\n value: 'text'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = TextFieldRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TimeRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'time'\n }\n }],\n type: 'structure'\n};\nvar _default = TimeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TimerRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'timer'\n }\n }],\n type: 'structure'\n};\nvar _default = TimerRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ToggleButtonRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n attributes: [{\n name: 'aria-pressed'\n }]\n }\n }],\n type: 'widget'\n};\nvar _default = ToggleButtonRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar ToolbarRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'toolbar'\n }\n }],\n type: 'structure'\n};\nvar _default = ToolbarRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TreeRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'tree'\n }\n }],\n type: 'widget'\n};\nvar _default = TreeRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TreeGridRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'treegrid'\n }\n }],\n type: 'widget'\n};\nvar _default = TreeGridRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar TreeItemRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'treeitem'\n }\n }],\n type: 'widget'\n};\nvar _default = TreeItemRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar UserInterfaceTooltipRole = {\n relatedConcepts: [{\n module: 'ARIA',\n concept: {\n name: 'tooltip'\n }\n }],\n type: 'structure'\n};\nvar _default = UserInterfaceTooltipRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar VideoRole = {\n relatedConcepts: [{\n module: 'HTML',\n concept: {\n name: 'video'\n }\n }],\n type: 'widget'\n};\nvar _default = VideoRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar WebAreaRole = {\n relatedConcepts: [],\n type: 'structure'\n};\nvar _default = WebAreaRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar WindowRole = {\n relatedConcepts: [],\n type: 'window'\n};\nvar _default = WindowRole;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\n\nvar _AbbrRole = _interopRequireDefault(require(\"./etc/objects/AbbrRole\"));\n\nvar _AlertDialogRole = _interopRequireDefault(require(\"./etc/objects/AlertDialogRole\"));\n\nvar _AlertRole = _interopRequireDefault(require(\"./etc/objects/AlertRole\"));\n\nvar _AnnotationRole = _interopRequireDefault(require(\"./etc/objects/AnnotationRole\"));\n\nvar _ApplicationRole = _interopRequireDefault(require(\"./etc/objects/ApplicationRole\"));\n\nvar _ArticleRole = _interopRequireDefault(require(\"./etc/objects/ArticleRole\"));\n\nvar _AudioRole = _interopRequireDefault(require(\"./etc/objects/AudioRole\"));\n\nvar _BannerRole = _interopRequireDefault(require(\"./etc/objects/BannerRole\"));\n\nvar _BlockquoteRole = _interopRequireDefault(require(\"./etc/objects/BlockquoteRole\"));\n\nvar _BusyIndicatorRole = _interopRequireDefault(require(\"./etc/objects/BusyIndicatorRole\"));\n\nvar _ButtonRole = _interopRequireDefault(require(\"./etc/objects/ButtonRole\"));\n\nvar _CanvasRole = _interopRequireDefault(require(\"./etc/objects/CanvasRole\"));\n\nvar _CaptionRole = _interopRequireDefault(require(\"./etc/objects/CaptionRole\"));\n\nvar _CellRole = _interopRequireDefault(require(\"./etc/objects/CellRole\"));\n\nvar _CheckBoxRole = _interopRequireDefault(require(\"./etc/objects/CheckBoxRole\"));\n\nvar _ColorWellRole = _interopRequireDefault(require(\"./etc/objects/ColorWellRole\"));\n\nvar _ColumnHeaderRole = _interopRequireDefault(require(\"./etc/objects/ColumnHeaderRole\"));\n\nvar _ColumnRole = _interopRequireDefault(require(\"./etc/objects/ColumnRole\"));\n\nvar _ComboBoxRole = _interopRequireDefault(require(\"./etc/objects/ComboBoxRole\"));\n\nvar _ComplementaryRole = _interopRequireDefault(require(\"./etc/objects/ComplementaryRole\"));\n\nvar _ContentInfoRole = _interopRequireDefault(require(\"./etc/objects/ContentInfoRole\"));\n\nvar _DateRole = _interopRequireDefault(require(\"./etc/objects/DateRole\"));\n\nvar _DateTimeRole = _interopRequireDefault(require(\"./etc/objects/DateTimeRole\"));\n\nvar _DefinitionRole = _interopRequireDefault(require(\"./etc/objects/DefinitionRole\"));\n\nvar _DescriptionListDetailRole = _interopRequireDefault(require(\"./etc/objects/DescriptionListDetailRole\"));\n\nvar _DescriptionListRole = _interopRequireDefault(require(\"./etc/objects/DescriptionListRole\"));\n\nvar _DescriptionListTermRole = _interopRequireDefault(require(\"./etc/objects/DescriptionListTermRole\"));\n\nvar _DetailsRole = _interopRequireDefault(require(\"./etc/objects/DetailsRole\"));\n\nvar _DialogRole = _interopRequireDefault(require(\"./etc/objects/DialogRole\"));\n\nvar _DirectoryRole = _interopRequireDefault(require(\"./etc/objects/DirectoryRole\"));\n\nvar _DisclosureTriangleRole = _interopRequireDefault(require(\"./etc/objects/DisclosureTriangleRole\"));\n\nvar _DivRole = _interopRequireDefault(require(\"./etc/objects/DivRole\"));\n\nvar _DocumentRole = _interopRequireDefault(require(\"./etc/objects/DocumentRole\"));\n\nvar _EmbeddedObjectRole = _interopRequireDefault(require(\"./etc/objects/EmbeddedObjectRole\"));\n\nvar _FeedRole = _interopRequireDefault(require(\"./etc/objects/FeedRole\"));\n\nvar _FigcaptionRole = _interopRequireDefault(require(\"./etc/objects/FigcaptionRole\"));\n\nvar _FigureRole = _interopRequireDefault(require(\"./etc/objects/FigureRole\"));\n\nvar _FooterRole = _interopRequireDefault(require(\"./etc/objects/FooterRole\"));\n\nvar _FormRole = _interopRequireDefault(require(\"./etc/objects/FormRole\"));\n\nvar _GridRole = _interopRequireDefault(require(\"./etc/objects/GridRole\"));\n\nvar _GroupRole = _interopRequireDefault(require(\"./etc/objects/GroupRole\"));\n\nvar _HeadingRole = _interopRequireDefault(require(\"./etc/objects/HeadingRole\"));\n\nvar _IframePresentationalRole = _interopRequireDefault(require(\"./etc/objects/IframePresentationalRole\"));\n\nvar _IframeRole = _interopRequireDefault(require(\"./etc/objects/IframeRole\"));\n\nvar _IgnoredRole = _interopRequireDefault(require(\"./etc/objects/IgnoredRole\"));\n\nvar _ImageMapLinkRole = _interopRequireDefault(require(\"./etc/objects/ImageMapLinkRole\"));\n\nvar _ImageMapRole = _interopRequireDefault(require(\"./etc/objects/ImageMapRole\"));\n\nvar _ImageRole = _interopRequireDefault(require(\"./etc/objects/ImageRole\"));\n\nvar _InlineTextBoxRole = _interopRequireDefault(require(\"./etc/objects/InlineTextBoxRole\"));\n\nvar _InputTimeRole = _interopRequireDefault(require(\"./etc/objects/InputTimeRole\"));\n\nvar _LabelRole = _interopRequireDefault(require(\"./etc/objects/LabelRole\"));\n\nvar _LegendRole = _interopRequireDefault(require(\"./etc/objects/LegendRole\"));\n\nvar _LineBreakRole = _interopRequireDefault(require(\"./etc/objects/LineBreakRole\"));\n\nvar _LinkRole = _interopRequireDefault(require(\"./etc/objects/LinkRole\"));\n\nvar _ListBoxOptionRole = _interopRequireDefault(require(\"./etc/objects/ListBoxOptionRole\"));\n\nvar _ListBoxRole = _interopRequireDefault(require(\"./etc/objects/ListBoxRole\"));\n\nvar _ListItemRole = _interopRequireDefault(require(\"./etc/objects/ListItemRole\"));\n\nvar _ListMarkerRole = _interopRequireDefault(require(\"./etc/objects/ListMarkerRole\"));\n\nvar _ListRole = _interopRequireDefault(require(\"./etc/objects/ListRole\"));\n\nvar _LogRole = _interopRequireDefault(require(\"./etc/objects/LogRole\"));\n\nvar _MainRole = _interopRequireDefault(require(\"./etc/objects/MainRole\"));\n\nvar _MarkRole = _interopRequireDefault(require(\"./etc/objects/MarkRole\"));\n\nvar _MarqueeRole = _interopRequireDefault(require(\"./etc/objects/MarqueeRole\"));\n\nvar _MathRole = _interopRequireDefault(require(\"./etc/objects/MathRole\"));\n\nvar _MenuBarRole = _interopRequireDefault(require(\"./etc/objects/MenuBarRole\"));\n\nvar _MenuButtonRole = _interopRequireDefault(require(\"./etc/objects/MenuButtonRole\"));\n\nvar _MenuItemRole = _interopRequireDefault(require(\"./etc/objects/MenuItemRole\"));\n\nvar _MenuItemCheckBoxRole = _interopRequireDefault(require(\"./etc/objects/MenuItemCheckBoxRole\"));\n\nvar _MenuItemRadioRole = _interopRequireDefault(require(\"./etc/objects/MenuItemRadioRole\"));\n\nvar _MenuListOptionRole = _interopRequireDefault(require(\"./etc/objects/MenuListOptionRole\"));\n\nvar _MenuListPopupRole = _interopRequireDefault(require(\"./etc/objects/MenuListPopupRole\"));\n\nvar _MenuRole = _interopRequireDefault(require(\"./etc/objects/MenuRole\"));\n\nvar _MeterRole = _interopRequireDefault(require(\"./etc/objects/MeterRole\"));\n\nvar _NavigationRole = _interopRequireDefault(require(\"./etc/objects/NavigationRole\"));\n\nvar _NoneRole = _interopRequireDefault(require(\"./etc/objects/NoneRole\"));\n\nvar _NoteRole = _interopRequireDefault(require(\"./etc/objects/NoteRole\"));\n\nvar _OutlineRole = _interopRequireDefault(require(\"./etc/objects/OutlineRole\"));\n\nvar _ParagraphRole = _interopRequireDefault(require(\"./etc/objects/ParagraphRole\"));\n\nvar _PopUpButtonRole = _interopRequireDefault(require(\"./etc/objects/PopUpButtonRole\"));\n\nvar _PreRole = _interopRequireDefault(require(\"./etc/objects/PreRole\"));\n\nvar _PresentationalRole = _interopRequireDefault(require(\"./etc/objects/PresentationalRole\"));\n\nvar _ProgressIndicatorRole = _interopRequireDefault(require(\"./etc/objects/ProgressIndicatorRole\"));\n\nvar _RadioButtonRole = _interopRequireDefault(require(\"./etc/objects/RadioButtonRole\"));\n\nvar _RadioGroupRole = _interopRequireDefault(require(\"./etc/objects/RadioGroupRole\"));\n\nvar _RegionRole = _interopRequireDefault(require(\"./etc/objects/RegionRole\"));\n\nvar _RootWebAreaRole = _interopRequireDefault(require(\"./etc/objects/RootWebAreaRole\"));\n\nvar _RowHeaderRole = _interopRequireDefault(require(\"./etc/objects/RowHeaderRole\"));\n\nvar _RowRole = _interopRequireDefault(require(\"./etc/objects/RowRole\"));\n\nvar _RubyRole = _interopRequireDefault(require(\"./etc/objects/RubyRole\"));\n\nvar _RulerRole = _interopRequireDefault(require(\"./etc/objects/RulerRole\"));\n\nvar _ScrollAreaRole = _interopRequireDefault(require(\"./etc/objects/ScrollAreaRole\"));\n\nvar _ScrollBarRole = _interopRequireDefault(require(\"./etc/objects/ScrollBarRole\"));\n\nvar _SeamlessWebAreaRole = _interopRequireDefault(require(\"./etc/objects/SeamlessWebAreaRole\"));\n\nvar _SearchRole = _interopRequireDefault(require(\"./etc/objects/SearchRole\"));\n\nvar _SearchBoxRole = _interopRequireDefault(require(\"./etc/objects/SearchBoxRole\"));\n\nvar _SliderRole = _interopRequireDefault(require(\"./etc/objects/SliderRole\"));\n\nvar _SliderThumbRole = _interopRequireDefault(require(\"./etc/objects/SliderThumbRole\"));\n\nvar _SpinButtonRole = _interopRequireDefault(require(\"./etc/objects/SpinButtonRole\"));\n\nvar _SpinButtonPartRole = _interopRequireDefault(require(\"./etc/objects/SpinButtonPartRole\"));\n\nvar _SplitterRole = _interopRequireDefault(require(\"./etc/objects/SplitterRole\"));\n\nvar _StaticTextRole = _interopRequireDefault(require(\"./etc/objects/StaticTextRole\"));\n\nvar _StatusRole = _interopRequireDefault(require(\"./etc/objects/StatusRole\"));\n\nvar _SVGRootRole = _interopRequireDefault(require(\"./etc/objects/SVGRootRole\"));\n\nvar _SwitchRole = _interopRequireDefault(require(\"./etc/objects/SwitchRole\"));\n\nvar _TabGroupRole = _interopRequireDefault(require(\"./etc/objects/TabGroupRole\"));\n\nvar _TabRole = _interopRequireDefault(require(\"./etc/objects/TabRole\"));\n\nvar _TableHeaderContainerRole = _interopRequireDefault(require(\"./etc/objects/TableHeaderContainerRole\"));\n\nvar _TableRole = _interopRequireDefault(require(\"./etc/objects/TableRole\"));\n\nvar _TabListRole = _interopRequireDefault(require(\"./etc/objects/TabListRole\"));\n\nvar _TabPanelRole = _interopRequireDefault(require(\"./etc/objects/TabPanelRole\"));\n\nvar _TermRole = _interopRequireDefault(require(\"./etc/objects/TermRole\"));\n\nvar _TextFieldRole = _interopRequireDefault(require(\"./etc/objects/TextFieldRole\"));\n\nvar _TimeRole = _interopRequireDefault(require(\"./etc/objects/TimeRole\"));\n\nvar _TimerRole = _interopRequireDefault(require(\"./etc/objects/TimerRole\"));\n\nvar _ToggleButtonRole = _interopRequireDefault(require(\"./etc/objects/ToggleButtonRole\"));\n\nvar _ToolbarRole = _interopRequireDefault(require(\"./etc/objects/ToolbarRole\"));\n\nvar _TreeRole = _interopRequireDefault(require(\"./etc/objects/TreeRole\"));\n\nvar _TreeGridRole = _interopRequireDefault(require(\"./etc/objects/TreeGridRole\"));\n\nvar _TreeItemRole = _interopRequireDefault(require(\"./etc/objects/TreeItemRole\"));\n\nvar _UserInterfaceTooltipRole = _interopRequireDefault(require(\"./etc/objects/UserInterfaceTooltipRole\"));\n\nvar _VideoRole = _interopRequireDefault(require(\"./etc/objects/VideoRole\"));\n\nvar _WebAreaRole = _interopRequireDefault(require(\"./etc/objects/WebAreaRole\"));\n\nvar _WindowRole = _interopRequireDefault(require(\"./etc/objects/WindowRole\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar AXObjects = [['AbbrRole', _AbbrRole.default], ['AlertDialogRole', _AlertDialogRole.default], ['AlertRole', _AlertRole.default], ['AnnotationRole', _AnnotationRole.default], ['ApplicationRole', _ApplicationRole.default], ['ArticleRole', _ArticleRole.default], ['AudioRole', _AudioRole.default], ['BannerRole', _BannerRole.default], ['BlockquoteRole', _BlockquoteRole.default], ['BusyIndicatorRole', _BusyIndicatorRole.default], ['ButtonRole', _ButtonRole.default], ['CanvasRole', _CanvasRole.default], ['CaptionRole', _CaptionRole.default], ['CellRole', _CellRole.default], ['CheckBoxRole', _CheckBoxRole.default], ['ColorWellRole', _ColorWellRole.default], ['ColumnHeaderRole', _ColumnHeaderRole.default], ['ColumnRole', _ColumnRole.default], ['ComboBoxRole', _ComboBoxRole.default], ['ComplementaryRole', _ComplementaryRole.default], ['ContentInfoRole', _ContentInfoRole.default], ['DateRole', _DateRole.default], ['DateTimeRole', _DateTimeRole.default], ['DefinitionRole', _DefinitionRole.default], ['DescriptionListDetailRole', _DescriptionListDetailRole.default], ['DescriptionListRole', _DescriptionListRole.default], ['DescriptionListTermRole', _DescriptionListTermRole.default], ['DetailsRole', _DetailsRole.default], ['DialogRole', _DialogRole.default], ['DirectoryRole', _DirectoryRole.default], ['DisclosureTriangleRole', _DisclosureTriangleRole.default], ['DivRole', _DivRole.default], ['DocumentRole', _DocumentRole.default], ['EmbeddedObjectRole', _EmbeddedObjectRole.default], ['FeedRole', _FeedRole.default], ['FigcaptionRole', _FigcaptionRole.default], ['FigureRole', _FigureRole.default], ['FooterRole', _FooterRole.default], ['FormRole', _FormRole.default], ['GridRole', _GridRole.default], ['GroupRole', _GroupRole.default], ['HeadingRole', _HeadingRole.default], ['IframePresentationalRole', _IframePresentationalRole.default], ['IframeRole', _IframeRole.default], ['IgnoredRole', _IgnoredRole.default], ['ImageMapLinkRole', _ImageMapLinkRole.default], ['ImageMapRole', _ImageMapRole.default], ['ImageRole', _ImageRole.default], ['InlineTextBoxRole', _InlineTextBoxRole.default], ['InputTimeRole', _InputTimeRole.default], ['LabelRole', _LabelRole.default], ['LegendRole', _LegendRole.default], ['LineBreakRole', _LineBreakRole.default], ['LinkRole', _LinkRole.default], ['ListBoxOptionRole', _ListBoxOptionRole.default], ['ListBoxRole', _ListBoxRole.default], ['ListItemRole', _ListItemRole.default], ['ListMarkerRole', _ListMarkerRole.default], ['ListRole', _ListRole.default], ['LogRole', _LogRole.default], ['MainRole', _MainRole.default], ['MarkRole', _MarkRole.default], ['MarqueeRole', _MarqueeRole.default], ['MathRole', _MathRole.default], ['MenuBarRole', _MenuBarRole.default], ['MenuButtonRole', _MenuButtonRole.default], ['MenuItemRole', _MenuItemRole.default], ['MenuItemCheckBoxRole', _MenuItemCheckBoxRole.default], ['MenuItemRadioRole', _MenuItemRadioRole.default], ['MenuListOptionRole', _MenuListOptionRole.default], ['MenuListPopupRole', _MenuListPopupRole.default], ['MenuRole', _MenuRole.default], ['MeterRole', _MeterRole.default], ['NavigationRole', _NavigationRole.default], ['NoneRole', _NoneRole.default], ['NoteRole', _NoteRole.default], ['OutlineRole', _OutlineRole.default], ['ParagraphRole', _ParagraphRole.default], ['PopUpButtonRole', _PopUpButtonRole.default], ['PreRole', _PreRole.default], ['PresentationalRole', _PresentationalRole.default], ['ProgressIndicatorRole', _ProgressIndicatorRole.default], ['RadioButtonRole', _RadioButtonRole.default], ['RadioGroupRole', _RadioGroupRole.default], ['RegionRole', _RegionRole.default], ['RootWebAreaRole', _RootWebAreaRole.default], ['RowHeaderRole', _RowHeaderRole.default], ['RowRole', _RowRole.default], ['RubyRole', _RubyRole.default], ['RulerRole', _RulerRole.default], ['ScrollAreaRole', _ScrollAreaRole.default], ['ScrollBarRole', _ScrollBarRole.default], ['SeamlessWebAreaRole', _SeamlessWebAreaRole.default], ['SearchRole', _SearchRole.default], ['SearchBoxRole', _SearchBoxRole.default], ['SliderRole', _SliderRole.default], ['SliderThumbRole', _SliderThumbRole.default], ['SpinButtonRole', _SpinButtonRole.default], ['SpinButtonPartRole', _SpinButtonPartRole.default], ['SplitterRole', _SplitterRole.default], ['StaticTextRole', _StaticTextRole.default], ['StatusRole', _StatusRole.default], ['SVGRootRole', _SVGRootRole.default], ['SwitchRole', _SwitchRole.default], ['TabGroupRole', _TabGroupRole.default], ['TabRole', _TabRole.default], ['TableHeaderContainerRole', _TableHeaderContainerRole.default], ['TableRole', _TableRole.default], ['TabListRole', _TabListRole.default], ['TabPanelRole', _TabPanelRole.default], ['TermRole', _TermRole.default], ['TextFieldRole', _TextFieldRole.default], ['TimeRole', _TimeRole.default], ['TimerRole', _TimerRole.default], ['ToggleButtonRole', _ToggleButtonRole.default], ['ToolbarRole', _ToolbarRole.default], ['TreeRole', _TreeRole.default], ['TreeGridRole', _TreeGridRole.default], ['TreeItemRole', _TreeItemRole.default], ['UserInterfaceTooltipRole', _UserInterfaceTooltipRole.default], ['VideoRole', _VideoRole.default], ['WebAreaRole', _WebAreaRole.default], ['WindowRole', _WindowRole.default]];\nvar AXObjectsMap = {\n entries: function entries() {\n return AXObjects;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var _iterator = _createForOfIteratorHelper(AXObjects),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _step$value = _slicedToArray(_step.value, 2),\n key = _step$value[0],\n values = _step$value[1];\n\n fn.call(thisArg, values, key, AXObjects);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n },\n get: function get(key) {\n var item = AXObjects.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!this.get(key);\n },\n keys: function keys() {\n return AXObjects.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n\n return key;\n });\n },\n values: function values() {\n return AXObjects.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n\n return values;\n });\n }\n};\n\nvar _default = (0, _iterationDecorator.default)(AXObjectsMap, AXObjectsMap.entries());\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\n\nvar _AXObjectsMap = _interopRequireDefault(require(\"./AXObjectsMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar AXObjectElements = [];\n\nvar _iterator = _createForOfIteratorHelper(_AXObjectsMap.default.entries()),\n _step;\n\ntry {\n var _loop = function _loop() {\n var _step$value = _slicedToArray(_step.value, 2),\n name = _step$value[0],\n def = _step$value[1];\n\n var relatedConcepts = def.relatedConcepts;\n\n if (Array.isArray(relatedConcepts)) {\n relatedConcepts.forEach(function (relation) {\n if (relation.module === 'HTML') {\n var concept = relation.concept;\n\n if (concept) {\n var index = AXObjectElements.findIndex(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 1),\n key = _ref6[0];\n\n return key === name;\n });\n\n if (index === -1) {\n AXObjectElements.push([name, []]);\n index = AXObjectElements.length - 1;\n }\n\n AXObjectElements[index][1].push(concept);\n }\n }\n });\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n _loop();\n }\n} catch (err) {\n _iterator.e(err);\n} finally {\n _iterator.f();\n}\n\nvar AXObjectElementMap = {\n entries: function entries() {\n return AXObjectElements;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var _iterator2 = _createForOfIteratorHelper(AXObjectElements),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = _slicedToArray(_step2.value, 2),\n key = _step2$value[0],\n values = _step2$value[1];\n\n fn.call(thisArg, values, key, AXObjectElements);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n },\n get: function get(key) {\n var item = AXObjectElements.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!this.get(key);\n },\n keys: function keys() {\n return AXObjectElements.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n\n return key;\n });\n },\n values: function values() {\n return AXObjectElements.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n\n return values;\n });\n }\n};\n\nvar _default = (0, _iterationDecorator.default)(AXObjectElementMap, AXObjectElementMap.entries());\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\n\nvar _AXObjectsMap = _interopRequireDefault(require(\"./AXObjectsMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar AXObjectRoleElements = [];\n\nvar _iterator = _createForOfIteratorHelper(_AXObjectsMap.default.entries()),\n _step;\n\ntry {\n var _loop = function _loop() {\n var _step$value = _slicedToArray(_step.value, 2),\n name = _step$value[0],\n def = _step$value[1];\n\n var relatedConcepts = def.relatedConcepts;\n\n if (Array.isArray(relatedConcepts)) {\n relatedConcepts.forEach(function (relation) {\n if (relation.module === 'ARIA') {\n var concept = relation.concept;\n\n if (concept) {\n var index = AXObjectRoleElements.findIndex(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 1),\n key = _ref6[0];\n\n return key === name;\n });\n\n if (index === -1) {\n AXObjectRoleElements.push([name, []]);\n index = AXObjectRoleElements.length - 1;\n }\n\n AXObjectRoleElements[index][1].push(concept);\n }\n }\n });\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n _loop();\n }\n} catch (err) {\n _iterator.e(err);\n} finally {\n _iterator.f();\n}\n\nvar AXObjectRoleMap = {\n entries: function entries() {\n return AXObjectRoleElements;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var _iterator2 = _createForOfIteratorHelper(AXObjectRoleElements),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = _slicedToArray(_step2.value, 2),\n key = _step2$value[0],\n values = _step2$value[1];\n\n fn.call(thisArg, values, key, AXObjectRoleElements);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n },\n get: function get(key) {\n var item = AXObjectRoleElements.find(function (tuple) {\n return tuple[0] === key ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!this.get(key);\n },\n keys: function keys() {\n return AXObjectRoleElements.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n\n return key;\n });\n },\n values: function values() {\n return AXObjectRoleElements.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n\n return values;\n });\n }\n};\n\nvar _default = (0, _iterationDecorator.default)(AXObjectRoleMap, AXObjectRoleMap.entries());\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _AXObjectsMap = _interopRequireDefault(require(\"./AXObjectsMap\"));\n\nvar _deepEqual = _interopRequireDefault(require(\"deep-equal\"));\n\nvar _iterationDecorator = _interopRequireDefault(require(\"./util/iterationDecorator\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar elementAXObjects = [];\n\nvar _iterator = _createForOfIteratorHelper(_AXObjectsMap.default.entries()),\n _step;\n\ntry {\n var _loop = function _loop() {\n var _step$value = _slicedToArray(_step.value, 2),\n name = _step$value[0],\n def = _step$value[1];\n\n var relatedConcepts = def.relatedConcepts;\n\n if (Array.isArray(relatedConcepts)) {\n relatedConcepts.forEach(function (relation) {\n if (relation.module === 'HTML') {\n var concept = relation.concept;\n\n if (concept != null) {\n var conceptStr = JSON.stringify(concept);\n var axObjects;\n var index = 0;\n\n for (; index < elementAXObjects.length; index++) {\n var key = elementAXObjects[index][0];\n\n if (JSON.stringify(key) === conceptStr) {\n axObjects = elementAXObjects[index][1];\n break;\n }\n }\n\n if (!Array.isArray(axObjects)) {\n axObjects = [];\n }\n\n var loc = axObjects.findIndex(function (item) {\n return item === name;\n });\n\n if (loc === -1) {\n axObjects.push(name);\n }\n\n if (index < elementAXObjects.length) {\n elementAXObjects.splice(index, 1, [concept, axObjects]);\n } else {\n elementAXObjects.push([concept, axObjects]);\n }\n }\n }\n });\n }\n };\n\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n _loop();\n }\n} catch (err) {\n _iterator.e(err);\n} finally {\n _iterator.f();\n}\n\nvar elementAXObjectMap = {\n entries: function entries() {\n return elementAXObjects;\n },\n forEach: function forEach(fn) {\n var thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n var _iterator2 = _createForOfIteratorHelper(elementAXObjects),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _step2$value = _slicedToArray(_step2.value, 2),\n key = _step2$value[0],\n values = _step2$value[1];\n\n fn.call(thisArg, values, key, elementAXObjects);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n },\n get: function get(key) {\n var item = elementAXObjects.find(function (tuple) {\n return (0, _deepEqual.default)(key, tuple[0]) ? true : false;\n });\n return item && item[1];\n },\n has: function has(key) {\n return !!this.get(key);\n },\n keys: function keys() {\n return elementAXObjects.map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n\n return key;\n });\n },\n values: function values() {\n return elementAXObjects.map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n values = _ref4[1];\n\n return values;\n });\n }\n};\n\nvar _default = (0, _iterationDecorator.default)(elementAXObjectMap, elementAXObjectMap.entries());\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.elementAXObjects = exports.AXObjects = exports.AXObjectRoles = exports.AXObjectElements = void 0;\n\nvar _AXObjectElementMap = _interopRequireDefault(require(\"./AXObjectElementMap\"));\n\nvar _AXObjectRoleMap = _interopRequireDefault(require(\"./AXObjectRoleMap\"));\n\nvar _AXObjectsMap = _interopRequireDefault(require(\"./AXObjectsMap\"));\n\nvar _elementAXObjectMap = _interopRequireDefault(require(\"./elementAXObjectMap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar AXObjectElements = _AXObjectElementMap.default;\nexports.AXObjectElements = AXObjectElements;\nvar AXObjectRoles = _AXObjectRoleMap.default;\nexports.AXObjectRoles = AXObjectRoles;\nvar AXObjects = _AXObjectsMap.default;\nexports.AXObjects = AXObjects;\nvar elementAXObjects = _elementAXObjectMap.default;\nexports.elementAXObjects = elementAXObjects;","import {\n\tARIARoleDefinitionKey,\n\troles as roles_map,\n\telementRoles,\n\tARIARoleRelationConcept\n} from 'aria-query';\nimport { AXObjects, AXObjectRoles, elementAXObjects } from 'axobject-query';\nimport Attribute from '../nodes/Attribute';\n\nconst non_abstract_roles = [...roles_map.keys()].filter((name) => !roles_map.get(name).abstract);\n\nconst non_interactive_roles = new Set(\n\tnon_abstract_roles\n\t\t.filter((name) => {\n\t\t\tconst role = roles_map.get(name);\n\t\t\treturn (\n\t\t\t\t// 'toolbar' does not descend from widget, but it does support\n\t\t\t\t// aria-activedescendant, thus in practice we treat it as a widget.\n\t\t\t\t// focusable tabpanel elements are recommended if any panels in a set contain content where the first element in the panel is not focusable.\n\t\t\t\t!['toolbar', 'tabpanel'].includes(name) &&\n\t\t\t\t!role.superClass.some((classes) => classes.includes('widget'))\n\t\t\t);\n\t\t})\n\t\t.concat(\n\t\t\t// The `progressbar` is descended from `widget`, but in practice, its\n\t\t\t// value is always `readonly`, so we treat it as a non-interactive role.\n\t\t\t'progressbar'\n\t\t)\n);\n\nconst interactive_roles = new Set(\n\tnon_abstract_roles.filter((name) => !non_interactive_roles.has(name))\n);\n\nexport function is_non_interactive_roles(role: ARIARoleDefinitionKey) {\n\treturn non_interactive_roles.has(role);\n}\n\nexport function is_interactive_roles(role: ARIARoleDefinitionKey) {\n\treturn interactive_roles.has(role);\n}\n\nconst presentation_roles = new Set(['presentation', 'none']);\n\nexport function is_presentation_role(role: ARIARoleDefinitionKey) {\n\treturn presentation_roles.has(role);\n}\n\nexport function is_hidden_from_screen_reader(tag_name: string, attribute_map: Map<string, Attribute>) {\n\tif (tag_name === 'input') {\n\t\tconst type = attribute_map.get('type')?.get_static_value();\n\n\t\tif (type && type === 'hidden') {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tconst aria_hidden = attribute_map.get('aria-hidden');\n\tif (!aria_hidden) return false;\n\tif (!aria_hidden.is_static) return true;\n\tconst aria_hidden_value = aria_hidden.get_static_value();\n\treturn aria_hidden_value === true || aria_hidden_value === 'true';\n}\n\nconst non_interactive_element_role_schemas: ARIARoleRelationConcept[] = [];\n\nelementRoles.entries().forEach(([schema, roles]) => {\n\tif ([...roles].every((role) => non_interactive_roles.has(role))) {\n\t\tnon_interactive_element_role_schemas.push(schema);\n\t}\n});\n\nconst interactive_element_role_schemas: ARIARoleRelationConcept[] = [];\n\nelementRoles.entries().forEach(([schema, roles]) => {\n\tif ([...roles].every((role) => interactive_roles.has(role))) {\n\t\tinteractive_element_role_schemas.push(schema);\n\t}\n});\n\nconst interactive_ax_objects = new Set(\n\t[...AXObjects.keys()].filter((name) => AXObjects.get(name).type === 'widget')\n);\n\nconst interactive_element_ax_object_schemas: ARIARoleRelationConcept[] = [];\n\nelementAXObjects.entries().forEach(([schema, ax_object]) => {\n\tif ([...ax_object].every((role) => interactive_ax_objects.has(role))) {\n\t\tinteractive_element_ax_object_schemas.push(schema);\n\t}\n});\n\nfunction match_schema(\n\tschema: ARIARoleRelationConcept,\n\ttag_name: string,\n\tattribute_map: Map<string, Attribute>\n) {\n\tif (schema.name !== tag_name) return false;\n\tif (!schema.attributes) return true;\n\treturn schema.attributes.every((schema_attribute) => {\n\t\tconst attribute = attribute_map.get(schema_attribute.name);\n\t\tif (!attribute) return false;\n\t\tif (\n\t\t\tschema_attribute.value &&\n\t\t\tschema_attribute.value !== attribute.get_static_value()\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t});\n}\n\nexport function is_interactive_element(\n\ttag_name: string,\n\tattribute_map: Map<string, Attribute>\n): boolean {\n\tif (\n\t\tinteractive_element_role_schemas.some((schema) =>\n\t\t\tmatch_schema(schema, tag_name, attribute_map)\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\tif (\n\t\tnon_interactive_element_role_schemas.some((schema) =>\n\t\t\tmatch_schema(schema, tag_name, attribute_map)\n\t\t)\n\t) {\n\t\treturn false;\n\t}\n\n\tif (\n\t\tinteractive_element_ax_object_schemas.some((schema) =>\n\t\t\tmatch_schema(schema, tag_name, attribute_map)\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nexport function is_semantic_role_element(role: ARIARoleDefinitionKey, tag_name: string, attribute_map: Map<string, Attribute>) {\n\tfor (const [schema, ax_object] of elementAXObjects.entries()) {\n\t\tif (schema.name === tag_name && (!schema.attributes || schema.attributes.every(\n\t\t\t(attr) => attribute_map.has(attr.name) && attribute_map.get(attr.name).get_static_value() === attr.value\n\t\t))) {\n\t\t\tfor (const name of ax_object) {\n\t\t\t\tconst roles = AXObjectRoles.get(name);\n\t\t\t\tif (roles) {\n\t\t\t\t\tfor (const { name } of roles) {\n\t\t\t\t\t\tif (name === role) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n","import { is_html, is_svg, is_void } from '../../../shared/utils/names';\nimport Node from './shared/Node';\nimport Attribute from './Attribute';\nimport Binding from './Binding';\nimport EventHandler from './EventHandler';\nimport Transition from './Transition';\nimport Animation from './Animation';\nimport Action from './Action';\nimport Class from './Class';\nimport StyleDirective from './StyleDirective';\nimport Text from './Text';\nimport { namespaces } from '../../utils/namespaces';\nimport map_children from './shared/map_children';\nimport { regex_dimensions, regex_starts_with_newline, regex_non_whitespace_character } from '../../utils/patterns';\nimport fuzzymatch from '../../utils/fuzzymatch';\nimport list from '../../utils/list';\nimport Let from './Let';\nimport TemplateScope from './shared/TemplateScope';\nimport { INode } from './interfaces';\nimport Component from '../Component';\nimport Expression from './shared/Expression';\nimport { string_literal } from '../utils/stringify';\nimport { Literal } from 'estree';\nimport compiler_warnings from '../compiler_warnings';\nimport compiler_errors from '../compiler_errors';\nimport { ARIARoleDefinitionKey, roles, aria, ARIAPropertyDefinition, ARIAProperty } from 'aria-query';\nimport { is_interactive_element, is_non_interactive_roles, is_presentation_role, is_interactive_roles, is_hidden_from_screen_reader, is_semantic_role_element } from '../utils/a11y';\n\nconst aria_attributes = 'activedescendant atomic autocomplete busy checked colcount colindex colspan controls current describedby description details disabled dropeffect errormessage expanded flowto grabbed haspopup hidden invalid keyshortcuts label labelledby level live modal multiline multiselectable orientation owns placeholder posinset pressed readonly relevant required roledescription rowcount rowindex rowspan selected setsize sort valuemax valuemin valuenow valuetext'.split(' ');\nconst aria_attribute_set = new Set(aria_attributes);\n\nconst aria_roles = roles.keys();\nconst aria_role_set = new Set(aria_roles);\nconst aria_role_abstract_set = new Set(roles.keys().filter(role => roles.get(role).abstract));\n\nconst a11y_required_attributes = {\n\ta: ['href'],\n\tarea: ['alt', 'aria-label', 'aria-labelledby'],\n\n\t// html-has-lang\n\thtml: ['lang'],\n\n\t// iframe-has-title\n\tiframe: ['title'],\n\timg: ['alt'],\n\tobject: ['title', 'aria-label', 'aria-labelledby']\n};\n\nconst a11y_distracting_elements = new Set([\n\t'blink',\n\t'marquee'\n]);\n\nconst a11y_required_content = new Set([\n\t// anchor-has-content\n\t'a',\n\n\t// heading-has-content\n\t'h1',\n\t'h2',\n\t'h3',\n\t'h4',\n\t'h5',\n\t'h6'\n]);\n\nconst a11y_labelable = new Set([\n\t'button',\n\t'input',\n\t'keygen',\n\t'meter',\n\t'output',\n\t'progress',\n\t'select',\n\t'textarea'\n]);\n\nconst a11y_nested_implicit_semantics = new Map([\n\t['header', 'banner'],\n\t['footer', 'contentinfo']\n]);\n\nconst a11y_implicit_semantics = new Map([\n\t['a', 'link'],\n\t['area', 'link'],\n\t['article', 'article'],\n\t['aside', 'complementary'],\n\t['body', 'document'],\n\t['button', 'button'],\n\t['datalist', 'listbox'],\n\t['dd', 'definition'],\n\t['dfn', 'term'],\n\t['dialog', 'dialog'],\n\t['details', 'group'],\n\t['dt', 'term'],\n\t['fieldset', 'group'],\n\t['form', 'form'],\n\t['h1', 'heading'],\n\t['h2', 'heading'],\n\t['h3', 'heading'],\n\t['h4', 'heading'],\n\t['h5', 'heading'],\n\t['h6', 'heading'],\n\t['hr', 'separator'],\n\t['img', 'img'],\n\t['li', 'listitem'],\n\t['link', 'link'],\n\t['menu', 'list'],\n\t['meter', 'progressbar'],\n\t['nav', 'navigation'],\n\t['ol', 'list'],\n\t['option', 'option'],\n\t['optgroup', 'group'],\n\t['output', 'status'],\n\t['progress', 'progressbar'],\n\t['section', 'region'],\n\t['summary', 'button'],\n\t['tbody', 'rowgroup'],\n\t['textarea', 'textbox'],\n\t['tfoot', 'rowgroup'],\n\t['thead', 'rowgroup'],\n\t['tr', 'row'],\n\t['ul', 'list']\n]);\n\nconst menuitem_type_to_implicit_role = new Map([\n ['command', 'menuitem'],\n ['checkbox', 'menuitemcheckbox'],\n ['radio', 'menuitemradio']\n]);\n\nconst input_type_to_implicit_role = new Map([\n ['button', 'button'],\n ['image', 'button'],\n ['reset', 'button'],\n ['submit', 'button'],\n ['checkbox', 'checkbox'],\n ['radio', 'radio'],\n ['range', 'slider'],\n ['number', 'spinbutton'],\n ['email', 'textbox'],\n ['search', 'searchbox'],\n ['tel', 'textbox'],\n ['text', 'textbox'],\n ['url', 'textbox']\n]);\n\nconst combobox_if_list = new Set(['email', 'search', 'tel', 'text', 'url']);\n\nfunction input_implicit_role(attribute_map: Map<string, Attribute>) {\n const type_attribute = attribute_map.get('type');\n if (!type_attribute || !type_attribute.is_static) return;\n const type = type_attribute.get_static_value() as string;\n\n const list_attribute_exists = attribute_map.has('list');\n\n if (list_attribute_exists && combobox_if_list.has(type)) {\n\treturn 'combobox';\n }\n\n return input_type_to_implicit_role.get(type);\n}\n\nfunction menuitem_implicit_role(attribute_map: Map<string, Attribute>) {\n const type_attribute = attribute_map.get('type');\n if (!type_attribute || !type_attribute.is_static) return;\n const type = type_attribute.get_static_value() as string;\n return menuitem_type_to_implicit_role.get(type);\n}\n\nfunction get_implicit_role(name: string, attribute_map: Map<string, Attribute>) : (string | undefined) {\n if (name === 'menuitem') {\n\treturn menuitem_implicit_role(attribute_map);\n } else if (name === 'input') {\n\treturn input_implicit_role(attribute_map);\n } else {\n\treturn a11y_implicit_semantics.get(name);\n }\n}\n\nconst invisible_elements = new Set(['meta', 'html', 'script', 'style']);\n\nconst valid_modifiers = new Set([\n\t'preventDefault',\n\t'stopPropagation',\n\t'stopImmediatePropagation',\n\t'capture',\n\t'once',\n\t'passive',\n\t'nonpassive',\n\t'self',\n\t'trusted'\n]);\n\nconst passive_events = new Set([\n\t'wheel',\n\t'touchstart',\n\t'touchmove',\n\t'touchend',\n\t'touchcancel'\n]);\n\nconst react_attributes = new Map([\n\t['className', 'class'],\n\t['htmlFor', 'for']\n]);\n\nconst attributes_to_compact_whitespace = ['class', 'style'];\n\nfunction is_parent(parent: INode, elements: string[]) {\n\tlet check = false;\n\n\twhile (parent) {\n\t\tconst parent_name = (parent as Element).name;\n\t\tif (elements.includes(parent_name)) {\n\t\t\tcheck = true;\n\t\t\tbreak;\n\t\t}\n\t\tif (parent.type === 'Element') {\n\t\t\tbreak;\n\t\t}\n\t\tparent = parent.parent;\n\t}\n\treturn check;\n}\n\nfunction get_namespace(parent: Element, element: Element, explicit_namespace: string) {\n\tconst parent_element = parent.find_nearest(/^Element/);\n\n\tif (!parent_element) {\n\t\treturn explicit_namespace || (is_svg(element.name)\n\t\t\t? namespaces.svg\n\t\t\t: null);\n\t}\n\n\tif (parent_element.namespace !== namespaces.foreign) {\n\t\tif (is_svg(element.name.toLowerCase())) return namespaces.svg;\n\t\tif (parent_element.name.toLowerCase() === 'foreignobject') return null;\n\t}\n\n\treturn parent_element.namespace;\n}\n\nfunction is_valid_aria_attribute_value(schema: ARIAPropertyDefinition, value: string | boolean): boolean {\n\tswitch (schema.type) {\n\t\tcase 'boolean':\n\t\t\treturn typeof value === 'boolean';\n\t\tcase 'string':\n\t\tcase 'id':\n\t\t\treturn typeof value === 'string';\n\t\tcase 'tristate':\n\t\t\treturn typeof value === 'boolean' || value === 'mixed';\n\t\tcase 'integer':\n\t\tcase 'number':\n\t\t\treturn typeof value !== 'boolean' && isNaN(Number(value)) === false;\n\t\tcase 'token': // single token\n\t\t\treturn (schema.values || [])\n\t\t\t\t.indexOf(typeof value === 'string' ? value.toLowerCase() : value) > -1;\n\t\tcase 'idlist': // if list of ids, split each\n\t\t\treturn typeof value === 'string'\n\t\t\t\t&& value.split(regex_any_repeated_whitespaces).every((id) => typeof id === 'string');\n\t\tcase 'tokenlist': // if list of tokens, split each\n\t\t\treturn typeof value === 'string'\n\t\t\t\t&& value.split(regex_any_repeated_whitespaces).every((token) => (schema.values || []).indexOf(token.toLowerCase()) > -1);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nconst regex_any_repeated_whitespaces = /[\\s]+/g;\nconst regex_heading_tags = /^h[1-6]$/;\nconst regex_illegal_attribute_character = /(^[0-9-.])|[\\^$@%&#?!|()[\\]{}^*+~;]/;\n\nexport default class Element extends Node {\n\ttype: 'Element';\n\tname: string;\n\tscope: TemplateScope;\n\tattributes: Attribute[] = [];\n\tactions: Action[] = [];\n\tbindings: Binding[] = [];\n\tclasses: Class[] = [];\n\tstyles: StyleDirective[] = [];\n\thandlers: EventHandler[] = [];\n\tlets: Let[] = [];\n\tintro?: Transition = null;\n\toutro?: Transition = null;\n\tanimation?: Animation = null;\n\tchildren: INode[];\n\tnamespace: string;\n\tneeds_manual_style_scoping: boolean;\n\ttag_expr: Expression;\n\tcontains_a11y_label: boolean;\n\n\tget is_dynamic_element() {\n\t\treturn this.name === 'svelte:element';\n\t}\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: any) {\n\t\tsuper(component, parent, scope, info);\n\t\tthis.name = info.name;\n\n\t\tif (info.name === 'svelte:element') {\n\t\t\tif (typeof info.tag !== 'string') {\n\t\t\t\tthis.tag_expr = new Expression(component, this, scope, info.tag);\n\t\t\t} else {\n\t\t\t\tthis.tag_expr = new Expression(component, this, scope, string_literal(info.tag) as Literal);\n\t\t\t\tthis.name = info.tag;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.tag_expr = new Expression(component, this, scope, string_literal(this.name) as Literal);\n\t\t}\n\n\t\tthis.namespace = get_namespace(parent as Element, this, component.namespace);\n\n\t\tif (this.namespace !== namespaces.foreign) {\n\t\t\tif (this.name === 'pre' || this.name === 'textarea') {\n\t\t\t\tconst first = info.children[0];\n\t\t\t\tif (first && first.type === 'Text') {\n\t\t\t\t\t// The leading newline character needs to be stripped because of a quirk,\n\t\t\t\t\t// it is ignored by browsers if the tag and its contents are set through\n\t\t\t\t\t// innerHTML (NOT if set through the innerHTML of the tag or dynamically).\n\t\t\t\t\t// Therefore strip it here but add it back in the appropriate\n\t\t\t\t\t// places if there's another newline afterwards.\n\t\t\t\t\t// see https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n\t\t\t\t\t// see https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element\n\t\t\t\t\tfirst.data = first.data.replace(regex_starts_with_newline, '');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.name === 'textarea') {\n\t\t\t\tif (info.children.length > 0) {\n\t\t\t\t\tconst value_attribute = info.attributes.find(node => node.name === 'value');\n\t\t\t\t\tif (value_attribute) {\n\t\t\t\t\t\tcomponent.error(value_attribute, compiler_errors.textarea_duplicate_value);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// this is an egregious hack, but it's the easiest way to get <textarea>\n\t\t\t\t\t// children treated the same way as a value attribute\n\t\t\t\t\tinfo.attributes.push({\n\t\t\t\t\t\ttype: 'Attribute',\n\t\t\t\t\t\tname: 'value',\n\t\t\t\t\t\tvalue: info.children\n\t\t\t\t\t});\n\n\t\t\t\t\tinfo.children = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.name === 'option') {\n\t\t\t\t// Special case — treat these the same way:\n\t\t\t\t// <option>{foo}</option>\n\t\t\t\t// <option value={foo}>{foo}</option>\n\t\t\t\tconst value_attribute = info.attributes.find(attribute => attribute.name === 'value');\n\n\t\t\t\tif (!value_attribute) {\n\t\t\t\t\tinfo.attributes.push({\n\t\t\t\t\t\ttype: 'Attribute',\n\t\t\t\t\t\tname: 'value',\n\t\t\t\t\t\tvalue: info.children,\n\t\t\t\t\t\tsynthetic: true\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tconst has_let = info.attributes.some(node => node.type === 'Let');\n\t\tif (has_let) {\n\t\t\tscope = scope.child();\n\t\t}\n\n\t\t// Binding relies on Attribute, defer its evaluation\n\t\tconst order = ['Binding']; // everything else is -1\n\t\tinfo.attributes.sort((a, b) => order.indexOf(a.type) - order.indexOf(b.type));\n\n\t\tinfo.attributes.forEach(node => {\n\t\t\tswitch (node.type) {\n\t\t\t\tcase 'Action':\n\t\t\t\t\tthis.actions.push(new Action(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Attribute':\n\t\t\t\tcase 'Spread':\n\t\t\t\t\t// special case\n\t\t\t\t\tif (node.name === 'xmlns') this.namespace = node.value[0].data;\n\n\t\t\t\t\tthis.attributes.push(new Attribute(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Binding':\n\t\t\t\t\tthis.bindings.push(new Binding(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Class':\n\t\t\t\t\tthis.classes.push(new Class(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'StyleDirective':\n\t\t\t\t\tthis.styles.push(new StyleDirective(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'EventHandler':\n\t\t\t\t\tthis.handlers.push(new EventHandler(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Let': {\n\t\t\t\t\tconst l = new Let(component, this, scope, node);\n\t\t\t\t\tthis.lets.push(l);\n\t\t\t\t\tconst dependencies = new Set([l.name.name]);\n\n\t\t\t\t\tl.names.forEach(name => {\n\t\t\t\t\t\tscope.add(name, dependencies, this);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'Transition':\n\t\t\t\t{\n\t\t\t\t\tconst transition = new Transition(component, this, scope, node);\n\t\t\t\t\tif (node.intro) this.intro = transition;\n\t\t\t\t\tif (node.outro) this.outro = transition;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'Animation':\n\t\t\t\t\tthis.animation = new Animation(component, this, scope, node);\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Not implemented: ${node.type}`);\n\t\t\t}\n\t\t});\n\n\t\tthis.scope = scope;\n\t\tthis.children = map_children(component, this, this.scope, info.children);\n\n\t\tthis.validate();\n\n\t\tthis.optimise();\n\n\t\tcomponent.apply_stylesheet(this);\n\t}\n\n\tvalidate() {\n\t\tif (this.component.var_lookup.has(this.name) && this.component.var_lookup.get(this.name).imported && !is_svg(this.name) && !is_html(this.name)) {\n\t\t\tthis.component.warn(this, compiler_warnings.component_name_lowercase(this.name));\n\t\t}\n\n\t\tthis.validate_attributes();\n\t\tthis.validate_event_handlers();\n\t\tif (this.namespace === namespaces.foreign) {\n\t\t\tthis.validate_bindings_foreign();\n\t\t} else {\n\t\t\tthis.validate_attributes_a11y();\n\t\t\tthis.validate_special_cases();\n\t\t\tthis.validate_bindings();\n\t\t\tthis.validate_content();\n\t\t}\n\n\t}\n\n\tvalidate_attributes() {\n\t\tconst { component, parent } = this;\n\n\t\tthis.attributes.forEach(attribute => {\n\t\t\tif (attribute.is_spread) return;\n\n\t\t\tconst name = attribute.name.toLowerCase();\n\n\t\t\t// Errors\n\n\t\t\tif (regex_illegal_attribute_character.test(name)) {\n\t\t\t\treturn component.error(attribute, compiler_errors.illegal_attribute(name));\n\t\t\t}\n\n\t\t\tif (name === 'slot') {\n\t\t\t\tif (!attribute.is_static) {\n\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_slot_attribute);\n\t\t\t\t}\n\n\t\t\t\tif (component.slot_outlets.has(name)) {\n\t\t\t\t\treturn component.error(attribute, compiler_errors.duplicate_slot_attribute(name));\n\n\t\t\t\t\t// this code was unreachable. Still needed?\n\t\t\t\t\t// component.slot_outlets.add(name);\n\t\t\t\t}\n\n\t\t\t\tif (!(parent.type === 'SlotTemplate' || within_custom_element(parent))) {\n\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_slotted_content);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Warnings\n\n\t\t\tif (this.namespace !== namespaces.foreign) {\n\t\t\t\tif (name === 'is') {\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.avoid_is);\n\t\t\t\t}\n\n\t\t\t\tif (react_attributes.has(attribute.name)) {\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.invalid_html_attribute(attribute.name, react_attributes.get(attribute.name)));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tvalidate_attributes_a11y() {\n\t\tconst { component, attributes, handlers } = this;\n\n\t\tconst attribute_map = new Map<string, Attribute>();\n\t\tconst handlers_map = new Map();\n\n\t\tattributes.forEach(attribute => (\n\t\t\tattribute_map.set(attribute.name, attribute)\n\t\t));\n\t\thandlers.forEach(handler => (\n\t\t\thandlers_map.set(handler.name, handler)\n\t\t));\n\n\t\tattributes.forEach(attribute => {\n\t\t\tif (attribute.is_spread) return;\n\n\t\t\tconst name = attribute.name.toLowerCase();\n\n\t\t\t// aria-props\n\t\t\tif (name.startsWith('aria-')) {\n\t\t\t\tif (invisible_elements.has(this.name)) {\n\t\t\t\t\t// aria-unsupported-elements\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_aria_attributes(this.name));\n\t\t\t\t}\n\n\t\t\t\tconst type = name.slice(5);\n\t\t\t\tif (!aria_attribute_set.has(type)) {\n\t\t\t\t\tconst match = fuzzymatch(type, aria_attributes);\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_unknown_aria_attribute(type, match));\n\t\t\t\t}\n\n\t\t\t\tif (name === 'aria-hidden' && regex_heading_tags.test(this.name)) {\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_hidden(this.name));\n\t\t\t\t}\n\n\t\t\t\t// aria-proptypes\n\t\t\t\tlet value = attribute.get_static_value();\n\t\t\t\tif (value === 'true') value = true;\n\t\t\t\tif (value === 'false') value = false;\n\n\t\t\t\tif (value !== null && value !== undefined && aria.has(name as ARIAProperty)) {\n\t\t\t\t\tconst schema = aria.get(name as ARIAProperty);\n\t\t\t\t\tif (!is_valid_aria_attribute_value(schema, value)) {\n\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_incorrect_attribute_type(schema, name));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// aria-activedescendant-has-tabindex\n\t\t\t\tif (name === 'aria-activedescendant' && !this.is_dynamic_element && !is_interactive_element(this.name, attribute_map) && !attribute_map.has('tabindex')) {\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_aria_activedescendant_has_tabindex);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// aria-role\n\t\t\tif (name === 'role') {\n\t\t\t\tif (invisible_elements.has(this.name)) {\n\t\t\t\t\t// aria-unsupported-elements\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_misplaced_role(this.name));\n\t\t\t\t}\n\n\t\t\t\tconst value = attribute.get_static_value();\n\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tvalue.split(regex_any_repeated_whitespaces).forEach((current_role: ARIARoleDefinitionKey) => {\n\t\t\t\t\t\tif (current_role && aria_role_abstract_set.has(current_role)) {\n\t\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_no_abstract_role(current_role));\n\t\t\t\t\t\t} else if (current_role && !aria_role_set.has(current_role)) {\n\t\t\t\t\t\t\tconst match = fuzzymatch(current_role, aria_roles);\n\t\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_unknown_role(current_role, match));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// no-redundant-roles\n\t\t\t\t\t\tconst has_redundant_role = current_role === get_implicit_role(this.name, attribute_map);\n\n\t\t\t\t\t\tif (this.name === current_role || has_redundant_role) {\n\t\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_no_redundant_roles(current_role));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Footers and headers are special cases, and should not have redundant roles unless they are the children of sections or articles.\n\t\t\t\t\t\tconst is_parent_section_or_article = is_parent(this.parent, ['section', 'article']);\n\t\t\t\t\t\tif (!is_parent_section_or_article) {\n\t\t\t\t\t\t\tconst has_nested_redundant_role = current_role === a11y_nested_implicit_semantics.get(this.name);\n\t\t\t\t\t\t\tif (has_nested_redundant_role) {\n\t\t\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_no_redundant_roles(current_role));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// role-has-required-aria-props\n\t\t\t\t\t\tif (!this.is_dynamic_element && !is_semantic_role_element(current_role, this.name, attribute_map)) {\n\t\t\t\t\t\t\tconst role = roles.get(current_role);\n\t\t\t\t\t\t\tif (role) {\n\t\t\t\t\t\t\t\tconst required_role_props = Object.keys(role.requiredProps);\n\t\t\t\t\t\t\t\tconst has_missing_props = required_role_props.some(prop => !attributes.find(a => a.name === prop));\n\n\t\t\t\t\t\t\t\tif (has_missing_props) {\n\t\t\t\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_role_has_required_aria_props(current_role, required_role_props));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// no-interactive-element-to-noninteractive-role\n\t\t\t\t\t\tif (is_interactive_element(this.name, attribute_map) && (is_non_interactive_roles(current_role) || is_presentation_role(current_role))) {\n\t\t\t\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_no_interactive_element_to_noninteractive_role(current_role, this.name));\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// no-access-key\n\t\t\tif (name === 'accesskey') {\n\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_accesskey);\n\t\t\t}\n\n\t\t\t// no-autofocus\n\t\t\tif (name === 'autofocus') {\n\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_autofocus);\n\t\t\t}\n\n\t\t\t// scope\n\t\t\tif (name === 'scope' && !this.is_dynamic_element && this.name !== 'th') {\n\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_misplaced_scope);\n\t\t\t}\n\n\t\t\t// tabindex-no-positive\n\t\t\tif (name === 'tabindex') {\n\t\t\t\tconst value = attribute.get_static_value();\n\t\t\t\t// @ts-ignore todo is tabindex=true correct case?\n\t\t\t\tif (!isNaN(value) && +value > 0) {\n\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.a11y_positive_tabindex);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// click-events-have-key-events\n\t\tif (handlers_map.has('click')) {\n\t\t\tconst role = attribute_map.get('role');\n\t\t\tconst is_non_presentation_role = role?.is_static && !is_presentation_role(role.get_static_value() as ARIARoleDefinitionKey);\n\n\t\t\tif (\n\t\t\t\t!this.is_dynamic_element && \n\t\t\t\t!is_hidden_from_screen_reader(this.name, attribute_map) &&\n\t\t\t\t(!role || is_non_presentation_role) &&\n\t\t\t\t!is_interactive_element(this.name, attribute_map) &&\n\t\t\t\t!this.attributes.find(attr => attr.is_spread)\n\t\t\t) {\n\t\t\t\tconst has_key_event =\n\t\t\t\t\thandlers_map.has('keydown') ||\n\t\t\t\t\thandlers_map.has('keyup') ||\n\t\t\t\t\thandlers_map.has('keypress');\n\n\t\t\t\tif (!has_key_event) {\n\t\t\t\t\tcomponent.warn(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tcompiler_warnings.a11y_click_events_have_key_events\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// no-noninteractive-tabindex\n\t\tif (!this.is_dynamic_element && !is_interactive_element(this.name, attribute_map) && !is_interactive_roles(attribute_map.get('role')?.get_static_value() as ARIARoleDefinitionKey)) {\n\t\t\tconst tab_index = attribute_map.get('tabindex');\n\t\t\tif (tab_index && (!tab_index.is_static || Number(tab_index.get_static_value()) >= 0)) {\n\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_no_noninteractive_tabindex);\n\t\t\t}\n\t\t}\n\n\t\t// role-supports-aria-props\n\t\tconst role = attribute_map.get('role');\n\t\tconst role_value = (role ? role.get_static_value() : get_implicit_role(this.name, attribute_map)) as ARIARoleDefinitionKey;\n\t\tif (typeof role_value === 'string' && roles.has(role_value)) {\n\t\t\tconst { props } = roles.get(role_value);\n\t\t\tconst invalid_aria_props = new Set(aria.keys().filter(attribute => !(attribute in props)));\n\t\t\tconst is_implicit = role_value && role === undefined;\n\n\t\t\tattributes\n\t\t\t\t.filter(prop => prop.type !== 'Spread')\n\t\t\t\t.forEach(prop => {\n\t\t\t\t\tif (invalid_aria_props.has(prop.name as ARIAProperty)) {\n\t\t\t\t\t\tcomponent.warn(prop, compiler_warnings.a11y_role_supports_aria_props(prop.name, role_value, is_implicit, this.name));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t}\n\t}\n\n\tvalidate_special_cases() {\n\t\tconst { component, attributes, handlers } = this;\n\n\t\tconst attribute_map = new Map();\n\t\tconst handlers_map = new Map();\n\n\t\tattributes.forEach(attribute => (\n\t\t\tattribute_map.set(attribute.name, attribute)\n\t\t));\n\n\t\thandlers.forEach(handler => (\n\t\t\thandlers_map.set(handler.name, handler)\n\t\t));\n\n\t\tif (this.name === 'a') {\n\t\t\tconst href_attribute = attribute_map.get('href') || attribute_map.get('xlink:href');\n\t\t\tconst id_attribute = attribute_map.get('id');\n\t\t\tconst name_attribute = attribute_map.get('name');\n\t\t\tconst target_attribute = attribute_map.get('target');\n\t\t\tconst aria_label_attribute = attribute_map.get('aria-label');\n\n\t\t\t// links with target=\"_blank\" should have noopener or noreferrer: https://developer.chrome.com/docs/lighthouse/best-practices/external-anchors-use-rel-noopener/\n\t\t\t// modern browsers add noopener by default, so we only need to check legacy browsers\n\t\t\t// legacy browsers don't support noopener so we only check for noreferrer there\n\t\t\tif (component.compile_options.legacy && target_attribute && target_attribute.get_static_value() === '_blank' && href_attribute) {\n\t\t\t\tconst href_static_value = href_attribute.get_static_value() ? href_attribute.get_static_value().toLowerCase() : null;\n\n\t\t\t\tif (href_static_value === null || href_static_value.match(/^(https?:)?\\/\\//i)) {\n\t\t\t\t\tconst rel = attribute_map.get('rel');\n\t\t\t\t\tif (rel == null || rel.is_static) {\n\t\t\t\t\t\tconst rel_values = rel ? rel.get_static_value().split(regex_any_repeated_whitespaces) : [];\n\t\t\t\t\t\tif (!rel || !rel_values.includes('noreferrer')) {\n\t\t\t\t\t\t\t\tcomponent.warn(this, {\n\t\t\t\t\t\t\t\t\tcode: 'security-anchor-rel-noreferrer',\n\t\t\t\t\t\t\t\t\tmessage:\n\t\t\t\t\t\t\t\t\t\t'Security: Anchor with \"target=_blank\" should have rel attribute containing the value \"noreferrer\"'\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (aria_label_attribute) {\n\t\t\t\tconst aria_value = aria_label_attribute.get_static_value();\n\t\t\t\tif (aria_value != '') {\n\t\t\t\t\tthis.contains_a11y_label = true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (href_attribute) {\n\t\t\t\tconst href_value = href_attribute.get_static_value();\n\n\t\t\t\tif (href_value === '' || href_value === '#' || /^\\W*javascript:/i.test(href_value)) {\n\t\t\t\t\tcomponent.warn(href_attribute, compiler_warnings.a11y_invalid_attribute(href_attribute.name, href_value));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst id_attribute_valid = id_attribute && id_attribute.get_static_value() !== '';\n\t\t\t\tconst name_attribute_valid = name_attribute && name_attribute.get_static_value() !== '';\n\n\t\t\t\tif (!id_attribute_valid && !name_attribute_valid) {\n\t\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_missing_attribute('a', 'an', 'href'));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst required_attributes = a11y_required_attributes[this.name];\n\t\t\tif (required_attributes) {\n\t\t\t\tconst has_attribute = required_attributes.some(name => attribute_map.has(name));\n\n\t\t\t\tif (!has_attribute) {\n\t\t\t\t\tshould_have_attribute(this, required_attributes);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.name === 'input') {\n\t\t\tconst type = attribute_map.get('type');\n\t\t\tif (type && type.get_static_value() === 'image') {\n\t\t\t\tconst required_attributes = ['alt', 'aria-label', 'aria-labelledby'];\n\t\t\t\tconst has_attribute = required_attributes.some(name => attribute_map.has(name));\n\n\t\t\t\tif (!has_attribute) {\n\t\t\t\t\tshould_have_attribute(this, required_attributes, 'input type=\"image\"');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.name === 'img') {\n\t\t\tconst alt_attribute = attribute_map.get('alt');\n\t\t\tconst aria_hidden_attribute = attribute_map.get('aria-hidden');\n\n\t\t\tconst aria_hidden_exist = aria_hidden_attribute && aria_hidden_attribute.get_static_value();\n\n\t\t\tif (alt_attribute && !aria_hidden_exist) {\n\t\t\t\tconst alt_value = alt_attribute.get_static_value();\n\n\t\t\t\tif (/\\b(image|picture|photo)\\b/i.test(alt_value)) {\n\t\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_img_redundant_alt);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.name === 'label') {\n\t\t\tconst has_input_child = (children: INode[]) => {\n\t\t\t\tif (children.some(child => (child instanceof Element && (a11y_labelable.has(child.name) || child.name === 'slot')))) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tfor (const child of children) {\n\t\t\t\t\tif (!('children' in child) || child.children.length === 0) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tif (has_input_child(child.children)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\n\t\t\tif (!attribute_map.has('for') && !has_input_child(this.children)) {\n\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_label_has_associated_control);\n\t\t\t}\n\t\t}\n\n\t\tif (this.name === 'video') {\n\t\t\tconst aria_hidden_attribute = attribute_map.get('aria-hidden');\n\t\t\tconst aria_hidden_exist = aria_hidden_attribute && aria_hidden_attribute.get_static_value();\n\n\t\t\tif (attribute_map.has('muted') || aria_hidden_exist === 'true') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet has_caption;\n\t\t\tconst track = this.children.find((i: Element) => i.name === 'track');\n\t\t\tif (track) {\n\t\t\t\thas_caption = track.attributes.find(a => a.name === 'kind' && a.get_static_value() === 'captions');\n\t\t\t}\n\n\t\t\tif (!has_caption) {\n\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_media_has_caption);\n\t\t\t}\n\t\t}\n\n\t\tif (a11y_distracting_elements.has(this.name)) {\n\t\t\t// no-distracting-elements\n\t\t\tcomponent.warn(this, compiler_warnings.a11y_distracting_elements(this.name));\n\t\t}\n\n\t\tif (this.name === 'figcaption') {\n\t\t\tlet { parent } = this;\n\t\t\tlet is_figure_parent = false;\n\n\t\t\twhile (parent) {\n\t\t\t\tif ((parent as Element).name === 'figure') {\n\t\t\t\t\tis_figure_parent = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (parent.type === 'Element') {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tparent = parent.parent;\n\t\t\t}\n\n\t\t\tif (!is_figure_parent) {\n\t\t\t\tcomponent.warn(this, compiler_warnings.a11y_structure_immediate);\n\t\t\t}\n\t\t}\n\n\t\tif (this.name === 'figure') {\n\t\t\tconst children = this.children.filter(node => {\n\t\t\t\tif (node.type === 'Comment') return false;\n\t\t\t\tif (node.type === 'Text') return regex_non_whitespace_character.test(node.data);\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\tconst index = children.findIndex(child => (child as Element).name === 'figcaption');\n\n\t\t\tif (index !== -1 && (index !== 0 && index !== children.length - 1)) {\n\t\t\t\tcomponent.warn(children[index], compiler_warnings.a11y_structure_first_or_last);\n\t\t\t}\n\t\t}\n\n\t\tif (handlers_map.has('mouseover') && !handlers_map.has('focus')) {\n\t\t\tcomponent.warn(this, compiler_warnings.a11y_mouse_events_have_key_events('mouseover', 'focus'));\n\t\t}\n\n\t\tif (handlers_map.has('mouseout') && !handlers_map.has('blur')) {\n\t\t\tcomponent.warn(this, compiler_warnings.a11y_mouse_events_have_key_events('mouseout', 'blur'));\n\t\t}\n\t}\n\n\tvalidate_bindings_foreign() {\n\t\tthis.bindings.forEach(binding => {\n\t\t\tif (binding.name !== 'this') {\n\t\t\t\treturn this.component.error(binding, compiler_errors.invalid_binding_foreign(binding.name));\n\t\t\t}\n\t\t});\n\t}\n\n\tvalidate_bindings() {\n\t\tconst { component } = this;\n\n\t\tconst check_type_attribute = () => {\n\t\t\tconst attribute = this.attributes.find(\n\t\t\t\t(attribute: Attribute) => attribute.name === 'type'\n\t\t\t);\n\n\t\t\tif (!attribute) return null;\n\n\t\t\tif (!attribute.is_static) {\n\t\t\t\treturn component.error(attribute, compiler_errors.invalid_type);\n\t\t\t}\n\n\t\t\tconst value = attribute.get_static_value();\n\n\t\t\tif (value === true) {\n\t\t\t\treturn component.error(attribute, compiler_errors.missing_type);\n\t\t\t}\n\n\t\t\treturn value;\n\t\t};\n\n\t\tthis.bindings.forEach(binding => {\n\t\t\tconst { name } = binding;\n\n\t\t\tif (name === 'value') {\n\t\t\t\tif (\n\t\t\t\t\tthis.name !== 'input' &&\n\t\t\t\t\tthis.name !== 'textarea' &&\n\t\t\t\t\tthis.name !== 'select'\n\t\t\t\t) {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_elements(this.name, 'value'));\n\t\t\t\t}\n\n\t\t\t\tif (this.name === 'select') {\n\t\t\t\t\tconst attribute = this.attributes.find(\n\t\t\t\t\t\t(attribute: Attribute) => attribute.name === 'multiple'\n\t\t\t\t\t);\n\n\t\t\t\t\tif (attribute && !attribute.is_static) {\n\t\t\t\t\t\treturn component.error(attribute, compiler_errors.dynamic_multiple_attribute);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tcheck_type_attribute();\n\t\t\t\t}\n\t\t\t} else if (name === 'checked' || name === 'indeterminate') {\n\t\t\t\tif (this.name !== 'input') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_elements(this.name, name));\n\t\t\t\t}\n\n\t\t\t\tconst type = check_type_attribute();\n\n\t\t\t\tif (type !== 'checkbox') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_no_checkbox(name, type === 'radio'));\n\t\t\t\t}\n\t\t\t} else if (name === 'group') {\n\t\t\t\tif (this.name !== 'input') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_elements(this.name, 'group'));\n\t\t\t\t}\n\n\t\t\t\tconst type = check_type_attribute();\n\n\t\t\t\tif (type !== 'checkbox' && type !== 'radio') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('<input type=\"checkbox\"> or <input type=\"radio\">', 'group'));\n\t\t\t\t}\n\t\t\t} else if (name === 'files') {\n\t\t\t\tif (this.name !== 'input') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_elements(this.name, 'files'));\n\t\t\t\t}\n\n\t\t\t\tconst type = check_type_attribute();\n\n\t\t\t\tif (type !== 'file') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('<input type=\"file\">', 'files'));\n\t\t\t\t}\n\n\t\t\t} else if (name === 'open') {\n\t\t\t\tif (this.name !== 'details') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('<details>', name));\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tname === 'currentTime' ||\n\t\t\t\tname === 'duration' ||\n\t\t\t\tname === 'paused' ||\n\t\t\t\tname === 'buffered' ||\n\t\t\t\tname === 'seekable' ||\n\t\t\t\tname === 'played' ||\n\t\t\t\tname === 'volume' ||\n\t\t\t\tname === 'muted' ||\n\t\t\t\tname === 'playbackRate' ||\n\t\t\t\tname === 'seeking' ||\n\t\t\t\tname === 'ended' ||\n\t\t\t\tname === 'readyState'\n\t\t\t) {\n\t\t\t\tif (this.name !== 'audio' && this.name !== 'video') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('audio> or <video>', name));\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tname === 'videoHeight' ||\n\t\t\t\tname === 'videoWidth'\n\t\t\t) {\n\t\t\t\tif (this.name !== 'video') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('<video>', name));\n\t\t\t\t}\n\t\t\t} else if (regex_dimensions.test(name)) {\n\t\t\t\tif (this.name === 'svg' && (name === 'offsetWidth' || name === 'offsetHeight')) {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_on(binding.name, `<svg>. Use '${name.replace('offset', 'client')}' instead`));\n\t\t\t\t} else if (is_svg(this.name)) {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_on(binding.name, 'SVG elements'));\n\t\t\t\t} else if (is_void(this.name)) {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_on(binding.name, `void elements like <${this.name}>. Use a wrapper element instead`));\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tname === 'naturalWidth' ||\n\t\t\t\tname === 'naturalHeight'\n\t\t\t) {\n\t\t\t\tif (this.name !== 'img') {\n\t\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding_element_with('<img>', name));\n\t\t\t\t}\n\t\t\t} else if (\n\t\t\t\tname === 'textContent' ||\n\t\t\t\tname === 'innerHTML'\n\t\t\t) {\n\t\t\t\tconst contenteditable = this.attributes.find(\n\t\t\t\t\t(attribute: Attribute) => attribute.name === 'contenteditable'\n\t\t\t\t);\n\n\t\t\t\tif (!contenteditable) {\n\t\t\t\t\treturn component.error(binding, compiler_errors.missing_contenteditable_attribute);\n\t\t\t\t} else if (contenteditable && !contenteditable.is_static) {\n\t\t\t\t\treturn component.error(contenteditable, compiler_errors.dynamic_contenteditable_attribute);\n\t\t\t\t}\n\t\t\t} else if (name !== 'this') {\n\t\t\t\treturn component.error(binding, compiler_errors.invalid_binding(binding.name));\n\t\t\t}\n\t\t});\n\t}\n\n\tvalidate_content() {\n\t\tif (!a11y_required_content.has(this.name)) return;\n\t\tif (this.contains_a11y_label) return;\n\t\tif (\n\t\t\tthis.bindings\n\t\t\t\t.some((binding) => ['textContent', 'innerHTML'].includes(binding.name))\n\t\t) return;\n\n\t\tif (this.children.length === 0) {\n\t\t\tthis.component.warn(this, compiler_warnings.a11y_missing_content(this.name));\n\t\t}\n\t}\n\n\tvalidate_event_handlers() {\n\t\tconst { component } = this;\n\n\t\tthis.handlers.forEach(handler => {\n\t\t\tif (handler.modifiers.has('passive') && handler.modifiers.has('preventDefault')) {\n\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier_combination('passive', 'preventDefault'));\n\t\t\t}\n\n\t\t\tif (handler.modifiers.has('passive') && handler.modifiers.has('nonpassive')) {\n\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier_combination('passive', 'nonpassive'));\n\t\t\t}\n\n\t\t\thandler.modifiers.forEach(modifier => {\n\t\t\t\tif (!valid_modifiers.has(modifier)) {\n\t\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier(list(Array.from(valid_modifiers))));\n\t\t\t\t}\n\n\t\t\t\tif (modifier === 'passive') {\n\t\t\t\t\tif (passive_events.has(handler.name)) {\n\t\t\t\t\t\tif (handler.can_make_passive) {\n\t\t\t\t\t\t\tcomponent.warn(handler, compiler_warnings.redundant_event_modifier_for_touch);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcomponent.warn(handler, compiler_warnings.redundant_event_modifier_passive);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (component.compile_options.legacy && (modifier === 'once' || modifier === 'passive')) {\n\t\t\t\t\t// TODO this could be supported, but it would need a few changes to\n\t\t\t\t\t// how event listeners work\n\t\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier_legacy(modifier));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (passive_events.has(handler.name) && handler.can_make_passive && !handler.modifiers.has('preventDefault') && !handler.modifiers.has('nonpassive')) {\n\t\t\t\t// touch/wheel events should be passive by default\n\t\t\t\thandler.modifiers.add('passive');\n\t\t\t}\n\t\t});\n\t}\n\n\tis_media_node() {\n\t\treturn this.name === 'audio' || this.name === 'video';\n\t}\n\n\tadd_css_class() {\n\t\tif (this.attributes.some(attr => attr.is_spread)) {\n\t\t\tthis.needs_manual_style_scoping = true;\n\t\t\treturn;\n\t\t}\n\n\t\tconst { id } = this.component.stylesheet;\n\n\t\tconst class_attribute = this.attributes.find(a => a.name === 'class');\n\n\t\tif (class_attribute && !class_attribute.is_true) {\n\t\t\tif (class_attribute.chunks.length === 1 && class_attribute.chunks[0].type === 'Text') {\n\t\t\t\t(class_attribute.chunks[0] as Text).data += ` ${id}`;\n\t\t\t} else {\n\t\t\t\t(class_attribute.chunks as Node[]).push(\n\t\t\t\t\tnew Text(this.component, this, this.scope, {\n\t\t\t\t\t\ttype: 'Text',\n\t\t\t\t\t\tdata: ` ${id}`,\n\t\t\t\t\t\tsynthetic: true\n\t\t\t\t\t} as any)\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.attributes.push(\n\t\t\t\tnew Attribute(this.component, this, this.scope, {\n\t\t\t\t\ttype: 'Attribute',\n\t\t\t\t\tname: 'class',\n\t\t\t\t\tvalue: [{ type: 'Text', data: id, synthetic: true }]\n\t\t\t\t} as any)\n\t\t\t);\n\t\t}\n\t}\n\n\tget slot_template_name() {\n\t\treturn this.attributes.find(attribute => attribute.name === 'slot').get_static_value() as string;\n\t}\n\n\toptimise() {\n\t\tattributes_to_compact_whitespace.forEach(attribute_name => {\n\t\t\tconst attribute = this.attributes.find(a => a.name === attribute_name);\n\t\t\tif (attribute && !attribute.is_true) {\n\t\t\t\tattribute.chunks.forEach((chunk, index) => {\n\t\t\t\t\tif (chunk.type === 'Text') {\n\t\t\t\t\t\tlet data = chunk.data.replace(regex_any_repeated_whitespaces, ' ');\n\t\t\t\t\t\tif (index === 0) {\n\t\t\t\t\t\t\tdata = data.trimLeft();\n\t\t\t\t\t\t} else if (index === attribute.chunks.length - 1) {\n\t\t\t\t\t\t\tdata = data.trimRight();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchunk.data = data;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n\nconst regex_starts_with_vowel = /^[aeiou]/;\n\nfunction should_have_attribute(\n\tnode,\n\tattributes: string[],\n\tname = node.name\n) {\n\tconst article = regex_starts_with_vowel.test(attributes[0]) ? 'an' : 'a';\n\tconst sequence = attributes.length > 1 ?\n\t\tattributes.slice(0, -1).join(', ') + ` or ${attributes[attributes.length - 1]}` :\n\t\tattributes[0];\n\n\tnode.component.warn(node, compiler_warnings.a11y_missing_attribute(name, article, sequence));\n}\n\nconst regex_minus_sign = /-/;\n\nfunction within_custom_element(parent: INode) {\n\twhile (parent) {\n\t\tif (parent.type === 'InlineComponent') return false;\n\t\tif (parent.type === 'Element' && regex_minus_sign.test(parent.name)) return true;\n\t\tparent = parent.parent;\n\t}\n\treturn false;\n}\n","// https://github.com/darkskyapp/string-hash/blob/master/index.js\n\nconst regex_return_characters = /\\r/g;\n\nexport default function hash(str: string): string {\n\tstr = str.replace(regex_return_characters, '');\n\tlet hash = 5381;\n\tlet i = str.length;\n\n\twhile (i--) hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n\treturn (hash >>> 0).toString(36);\n}\n","import Node from './shared/Node';\nimport map_children from './shared/map_children';\nimport hash from '../utils/hash';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport compiler_errors from '../compiler_errors';\nimport { regex_non_whitespace_character } from '../../utils/patterns';\n\nexport default class Head extends Node {\n\ttype: 'Head';\n\tchildren: any[]; // TODO\n\tid: string;\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tif (info.attributes.length) {\n\t\t\tcomponent.error(info.attributes[0], compiler_errors.invalid_attribute_head);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.children = map_children(component, parent, scope, info.children.filter(child => {\n\t\t\treturn (child.type !== 'Text' || regex_non_whitespace_character.test(child.data));\n\t\t}));\n\n\t\tif (this.children.length > 0) {\n\t\t\tthis.id = `svelte-${hash(this.component.source.slice(this.start, this.end))}`;\n\t\t}\n\t}\n}\n","import ElseBlock from './ElseBlock';\nimport Expression from './shared/Expression';\nimport AbstractBlock from './shared/AbstractBlock';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport Node from './shared/Node';\nimport ConstTag from './ConstTag';\nimport get_const_tags from './shared/get_const_tags';\n\nexport default class IfBlock extends AbstractBlock {\n\ttype: 'IfBlock';\n\texpression: Expression;\n\telse: ElseBlock;\n\tscope: TemplateScope;\n\tconst_tags: ConstTag[];\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\t\tthis.scope = scope.child();\n\n\t\tthis.expression = new Expression(component, this, this.scope, info.expression);\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, this));\n\n\t\tthis.else = info.else\n\t\t\t? new ElseBlock(component, this, scope, info.else)\n\t\t\t: null;\n\n\t\tthis.warn_if_empty_block();\n\t}\n}\n","import Node from './shared/Node';\nimport Attribute from './Attribute';\nimport map_children from './shared/map_children';\nimport Binding from './Binding';\nimport EventHandler from './EventHandler';\nimport Expression from './shared/Expression';\nimport Component from '../Component';\nimport Let from './Let';\nimport TemplateScope from './shared/TemplateScope';\nimport { INode } from './interfaces';\nimport { TemplateNode } from '../../interfaces';\nimport compiler_errors from '../compiler_errors';\nimport { regex_only_whitespaces } from '../../utils/patterns';\n\nexport default class InlineComponent extends Node {\n\ttype: 'InlineComponent';\n\tname: string;\n\texpression: Expression;\n\tattributes: Attribute[] = [];\n\tbindings: Binding[] = [];\n\thandlers: EventHandler[] = [];\n\tlets: Let[] = [];\n\tcss_custom_properties: Attribute[] = [];\n\tchildren: INode[];\n\tscope: TemplateScope;\n\tnamespace: string;\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tif (info.name !== 'svelte:component' && info.name !== 'svelte:self') {\n\t\t\tconst name = info.name.split('.')[0]; // accommodate namespaces\n\t\t\tcomponent.warn_if_undefined(name, info, scope);\n\t\t\tcomponent.add_reference(this as any, name);\n\t\t}\n\n\t\tthis.name = info.name;\n\t\tthis.namespace = get_namespace(parent, component.namespace);\n\n\t\tthis.expression = this.name === 'svelte:component'\n\t\t\t? new Expression(component, this, scope, info.expression)\n\t\t\t: null;\n\n\t\tinfo.attributes.forEach(node => {\n\t\t\t/* eslint-disable no-fallthrough */\n\t\t\tswitch (node.type) {\n\t\t\t\tcase 'Action':\n\t\t\t\t\treturn component.error(node, compiler_errors.invalid_action);\n\n\t\t\t\tcase 'Attribute':\n\t\t\t\t\tif (node.name.startsWith('--')) {\n\t\t\t\t\t\tthis.css_custom_properties.push(new Attribute(component, this, scope, node));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\t// fallthrough\n\t\t\t\tcase 'Spread':\n\t\t\t\t\tthis.attributes.push(new Attribute(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Binding':\n\t\t\t\t\tthis.bindings.push(new Binding(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Class':\n\t\t\t\t\treturn component.error(node, compiler_errors.invalid_class);\n\n\t\t\t\tcase 'EventHandler':\n\t\t\t\t\tthis.handlers.push(new EventHandler(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Let':\n\t\t\t\t\tthis.lets.push(new Let(component, this, scope, node));\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Transition':\n\t\t\t\t\treturn component.error(node, compiler_errors.invalid_transition);\n\n\t\t\t\tcase 'StyleDirective':\n\t\t\t\t\treturn component.error(node, compiler_errors.invalid_component_style_directive);\n\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Not implemented: ${node.type}`);\n\t\t\t}\n\t\t\t/* eslint-enable no-fallthrough */\n\t\t});\n\n\t\tif (this.lets.length > 0) {\n\t\t\tthis.scope = scope.child();\n\n\t\t\tthis.lets.forEach(l => {\n\t\t\t\tconst dependencies = new Set([l.name.name]);\n\n\t\t\t\tl.names.forEach(name => {\n\t\t\t\t\tthis.scope.add(name, dependencies, this);\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tthis.scope = scope;\n\t\t}\n\n\t\tthis.handlers.forEach(handler => {\n\t\t\thandler.modifiers.forEach(modifier => {\n\t\t\t\tif (modifier !== 'once') {\n\t\t\t\t\treturn component.error(handler, compiler_errors.invalid_event_modifier_component);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tconst children = [];\n\t\tfor (let i = info.children.length - 1; i >= 0; i--) {\n\t\t\tconst child = info.children[i];\n\t\t\tif (child.type === 'SlotTemplate') {\n\t\t\t\tchildren.push(child);\n\t\t\t\tinfo.children.splice(i, 1);\n\t\t\t} else if ((child.type === 'Element' || child.type === 'InlineComponent' || child.type === 'Slot') && child.attributes.find(attribute => attribute.name === 'slot')) {\n\t\t\t\tconst slot_template = {\n\t\t\t\t\tstart: child.start,\n\t\t\t\t\tend: child.end,\n\t\t\t\t\ttype: 'SlotTemplate',\n\t\t\t\t\tname: 'svelte:fragment',\n\t\t\t\t\tattributes: [],\n\t\t\t\t\tchildren: [child]\n\t\t\t\t};\n\n\t\t\t\t// transfer attributes\n\t\t\t\tfor (let i = child.attributes.length - 1; i >= 0; i--) {\n\t\t\t\t\tconst attribute = child.attributes[i];\n\t\t\t\t\tif (attribute.type === 'Let') {\n\t\t\t\t\t\tslot_template.attributes.push(attribute);\n\t\t\t\t\t\tchild.attributes.splice(i, 1);\n\t\t\t\t\t} else if (attribute.type === 'Attribute' && attribute.name === 'slot') {\n\t\t\t\t\t\tslot_template.attributes.push(attribute);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// transfer const\n\t\t\t\tfor (let i = child.children.length - 1; i >= 0; i--) {\n\t\t\t\t\tconst child_child = child.children[i];\n\t\t\t\t\tif (child_child.type === 'ConstTag') {\n\t\t\t\t\t\tslot_template.children.push(child_child);\n\t\t\t\t\t\tchild.children.splice(i, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tchildren.push(slot_template);\n\t\t\t\tinfo.children.splice(i, 1);\n\t\t\t} else if (child.type === 'Comment' && children.length > 0) {\n\t\t\t\tchildren[children.length - 1].children.unshift(child);\n\t\t\t}\n\t\t}\n\n\t\tif (info.children.some(node => not_whitespace_text(node))) {\n\t\t\tchildren.push({\n\t\t\t\tstart: info.start,\n\t\t\t\tend: info.end,\n\t\t\t\ttype: 'SlotTemplate',\n\t\t\t\tname: 'svelte:fragment',\n\t\t\t\tattributes: [],\n\t\t\t\tchildren: info.children\n\t\t\t});\n\t\t}\n\n\t\tthis.children = map_children(component, this, this.scope, children);\n\t}\n\n\tget slot_template_name() {\n\t\treturn this.attributes.find(attribute => attribute.name === 'slot').get_static_value() as string;\n\t}\n}\n\nfunction not_whitespace_text(node) {\n\treturn !(node.type === 'Text' && regex_only_whitespaces.test(node.data));\n}\n\nfunction get_namespace(parent: Node, explicit_namespace: string) {\n\tconst parent_element = parent.find_nearest(/^Element/);\n\n\tif (!parent_element) {\n\t\treturn explicit_namespace;\n\t}\n\n\treturn parent_element.namespace;\n}\n","import Expression from './shared/Expression';\nimport map_children from './shared/map_children';\nimport AbstractBlock from './shared/AbstractBlock';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport Node from './shared/Node';\n\nexport default class KeyBlock extends AbstractBlock {\n\ttype: 'KeyBlock';\n\n\texpression: Expression;\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\n\n\t\tthis.children = map_children(component, this, scope, info.children);\n\n\t\tthis.warn_if_empty_block();\n\t}\n}\n","import Node from './Node';\nimport Expression from './Expression';\n\nexport default class Tag extends Node {\n\ttype: 'MustacheTag' | 'RawMustacheTag';\n\texpression: Expression;\n\tshould_cache: boolean;\n\n\tconstructor(component, parent, scope, info) {\n\t\tsuper(component, parent, scope, info);\n\t\tthis.expression = new Expression(component, this, scope, info.expression);\n\n\t\tthis.should_cache = (\n\t\t\tinfo.expression.type !== 'Identifier' ||\n\t\t\t(this.expression.dependencies.size && scope.names.has(info.expression.name))\n\t\t);\n\t}\n}\n","import Tag from './shared/Tag';\n\nexport default class MustacheTag extends Tag {\n\ttype: 'MustacheTag';\n}\n","import Node from './shared/Node';\n\nexport default class Options extends Node {\n\ttype: 'Options';\n}\n","import Tag from './shared/Tag';\n\nexport default class RawMustacheTag extends Tag {\n\ttype: 'RawMustacheTag';\n}\n","import Node from './shared/Node';\nimport Expression from './shared/Expression';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport { INode } from './interfaces';\nimport { Node as EsTreeNode } from 'estree';\n\nexport default class DebugTag extends Node {\n\ttype: 'DebugTag';\n\texpressions: Expression[];\n\n\tconstructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.expressions = info.identifiers.map((node: EsTreeNode) => {\n\t\t\treturn new Expression(component, parent, scope, node);\n\t\t});\n\t}\n}\n","import Element from './Element';\nimport Attribute from './Attribute';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { INode } from './interfaces';\nimport { TemplateNode } from '../../interfaces';\nimport compiler_errors from '../compiler_errors';\n\nexport default class Slot extends Element {\n\ttype: 'Element';\n\tname: string;\n\tchildren: INode[];\n\tslot_name: string;\n\tvalues: Map<string, Attribute> = new Map();\n\n\tconstructor(component: Component, parent: INode, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tinfo.attributes.forEach(attr => {\n\t\t\tif (attr.type !== 'Attribute' && attr.type !== 'Spread') {\n\t\t\t\treturn component.error(attr, compiler_errors.invalid_slot_directive);\n\t\t\t}\n\n\t\t\tif (attr.name === 'name') {\n\t\t\t\tif (attr.value.length !== 1 || attr.value[0].type !== 'Text') {\n\t\t\t\t\treturn component.error(attr, compiler_errors.dynamic_slot_name);\n\t\t\t\t}\n\n\t\t\t\tthis.slot_name = attr.value[0].data;\n\t\t\t\tif (this.slot_name === 'default') {\n\t\t\t\t\treturn component.error(attr, compiler_errors.invalid_slot_name);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.values.set(attr.name, new Attribute(component, this, scope, attr));\n\t\t});\n\n\t\tif (!this.slot_name) this.slot_name = 'default';\n\n\t\tif (this.slot_name === 'default') {\n\t\t\t// if this is the default slot, add our dependencies to any\n\t\t\t// other slots (which inherit our slot values) that were\n\t\t\t// previously encountered\n\t\t\tcomponent.slots.forEach((slot) => {\n\t\t\t\tthis.values.forEach((attribute, name) => {\n\t\t\t\t\tif (!slot.values.has(name)) {\n\t\t\t\t\t\tslot.values.set(name, attribute);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (component.slots.has('default')) {\n\t\t\t// otherwise, go the other way — inherit values from\n\t\t\t// a previously encountered default slot\n\t\t\tconst default_slot = component.slots.get('default');\n\t\t\tdefault_slot.values.forEach((attribute, name) => {\n\t\t\t\tif (!this.values.has(name)) {\n\t\t\t\t\tthis.values.set(name, attribute);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tcomponent.slots.set(this.slot_name, this);\n\t}\n}\n","import Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport Node from './shared/Node';\nimport Let from './Let';\nimport Attribute from './Attribute';\nimport { INode } from './interfaces';\nimport compiler_errors from '../compiler_errors';\nimport get_const_tags from './shared/get_const_tags';\nimport ConstTag from './ConstTag';\n\nexport default class SlotTemplate extends Node {\n\ttype: 'SlotTemplate';\n\tscope: TemplateScope;\n\tchildren: INode[];\n\tlets: Let[] = [];\n\tconst_tags: ConstTag[];\n\tslot_attribute: Attribute;\n\tslot_template_name: string = 'default';\n\n\tconstructor(\n\t\tcomponent: Component,\n\t\tparent: INode,\n\t\tscope: TemplateScope,\n\t\tinfo: any\n\t) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.validate_slot_template_placement();\n\n\t\tscope = scope.child();\n\n\t\tinfo.attributes.forEach((node) => {\n\t\t\tswitch (node.type) {\n\t\t\t\tcase 'Let': {\n\t\t\t\t\tconst l = new Let(component, this, scope, node);\n\t\t\t\t\tthis.lets.push(l);\n\t\t\t\t\tconst dependencies = new Set([l.name.name]);\n\n\t\t\t\t\tl.names.forEach((name) => {\n\t\t\t\t\t\tscope.add(name, dependencies, this);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase 'Attribute': {\n\t\t\t\t\tif (node.name === 'slot') {\n\t\t\t\t\t\tthis.slot_attribute = new Attribute(component, this, scope, node);\n\t\t\t\t\t\tif (!this.slot_attribute.is_static) {\n\t\t\t\t\t\t\treturn component.error(node, compiler_errors.invalid_slot_attribute);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst value = this.slot_attribute.get_static_value();\n\t\t\t\t\t\tif (typeof value === 'boolean') {\n\t\t\t\t\t\t\treturn component.error(node, compiler_errors.invalid_slot_attribute_value_missing);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.slot_template_name = value as string;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new Error(`Invalid attribute '${node.name}' in <svelte:fragment>`);\n\t\t\t\t}\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(`Not implemented: ${node.type}`);\n\t\t\t}\n\t\t});\n\n\t\tthis.scope = scope;\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, this));\n\t}\n\n\tvalidate_slot_template_placement() {\n\t\tif (this.parent.type !== 'InlineComponent') {\n\t\t\treturn this.component.error(this, compiler_errors.invalid_slotted_content_fragment);\n\t\t}\n\t}\n}\n","import Node from './shared/Node';\nimport map_children, { Children } from './shared/map_children';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport compiler_errors from '../compiler_errors';\n\nexport default class Title extends Node {\n\ttype: 'Title';\n\tchildren: Children;\n\tshould_cache: boolean;\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\t\tthis.children = map_children(component, parent, scope, info.children);\n\n\t\tif (info.attributes.length > 0) {\n\t\t\tcomponent.error(info.attributes[0], compiler_errors.illegal_attribute_title);\n\t\t\treturn;\n\t\t}\n\n\t\tinfo.children.forEach(child => {\n\t\t\tif (child.type !== 'Text' && child.type !== 'MustacheTag') {\n\t\t\t\treturn component.error(child, compiler_errors.illegal_structure_title);\n\t\t\t}\n\t\t});\n\n\t\tthis.should_cache = info.children.length === 1\n\t\t\t? (\n\t\t\t\tinfo.children[0].type !== 'Identifier' ||\n\t\t\t\tscope.names.has(info.children[0].name)\n\t\t\t)\n\t\t\t: true;\n\t}\n}\n","import Node from './shared/Node';\nimport Binding from './Binding';\nimport EventHandler from './EventHandler';\nimport flatten_reference from '../utils/flatten_reference';\nimport fuzzymatch from '../../utils/fuzzymatch';\nimport list from '../../utils/list';\nimport Action from './Action';\nimport Component from '../Component';\nimport TemplateScope from './shared/TemplateScope';\nimport { TemplateNode } from '../../interfaces';\nimport compiler_errors from '../compiler_errors';\n\nconst valid_bindings = [\n\t'innerWidth',\n\t'innerHeight',\n\t'outerWidth',\n\t'outerHeight',\n\t'scrollX',\n\t'scrollY',\n\t'online'\n];\n\nexport default class Window extends Node {\n\ttype: 'Window';\n\thandlers: EventHandler[] = [];\n\tbindings: Binding[] = [];\n\tactions: Action[] = [];\n\n\tconstructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tinfo.attributes.forEach(node => {\n\t\t\tif (node.type === 'EventHandler') {\n\t\t\t\tthis.handlers.push(new EventHandler(component, this, scope, node));\n\t\t\t} else if (node.type === 'Binding') {\n\t\t\t\tif (node.expression.type !== 'Identifier') {\n\t\t\t\t\tconst { parts } = flatten_reference(node.expression);\n\n\t\t\t\t\t// TODO is this constraint necessary?\n\t\t\t\t\treturn component.error(node.expression, compiler_errors.invalid_binding_window(parts));\n\t\t\t\t}\n\n\t\t\t\tif (!~valid_bindings.indexOf(node.name)) {\n\t\t\t\t\tconst match = (\n\t\t\t\t\t\tnode.name === 'width' ? 'innerWidth' :\n\t\t\t\t\t\t\tnode.name === 'height' ? 'innerHeight' :\n\t\t\t\t\t\t\t\tfuzzymatch(node.name, valid_bindings)\n\t\t\t\t\t);\n\n\t\t\t\t\tif (match) {\n\t\t\t\t\t\treturn component.error(node, compiler_errors.invalid_binding_on(node.name, '<svelte:window>', ` (did you mean '${match}'?)`));\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn component.error(node, compiler_errors.invalid_binding_on(node.name, '<svelte:window>', ` — valid bindings are ${list(valid_bindings)}`));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.bindings.push(new Binding(component, this, scope, node));\n\t\t\t} else if (node.type === 'Action') {\n\t\t\t\tthis.actions.push(new Action(component, this, scope, node));\n\t\t\t} else {\n\t\t\t\t// TODO there shouldn't be anything else here...\n\t\t\t}\n\t\t});\n\t}\n}\n","/**\n * Pushes all `items` into `array` using `push`, therefore mutating the array.\n * We do this for memory and perf reasons, and because `array.push(...items)` would\n * run into a \"max call stack size exceeded\" error with too many items (~65k).\n * @param array \n * @param items \n */\nexport function push_array<T>(array: T[], items: T[]): void {\n\tfor (let i = 0; i < items.length; i++) {\n\t\tarray.push(items[i]);\n\t}\n}\n","import AwaitBlock from '../AwaitBlock';\nimport Body from '../Body';\nimport ConstTag from '../ConstTag';\nimport Comment from '../Comment';\nimport EachBlock from '../EachBlock';\nimport Element from '../Element';\nimport Head from '../Head';\nimport IfBlock from '../IfBlock';\nimport InlineComponent from '../InlineComponent';\nimport KeyBlock from '../KeyBlock';\nimport MustacheTag from '../MustacheTag';\nimport Options from '../Options';\nimport RawMustacheTag from '../RawMustacheTag';\nimport DebugTag from '../DebugTag';\nimport Slot from '../Slot';\nimport SlotTemplate from '../SlotTemplate';\nimport Text from '../Text';\nimport Title from '../Title';\nimport Window from '../Window';\nimport { TemplateNode } from '../../../interfaces';\nimport { push_array } from '../../../utils/push_array';\n\nexport type Children = ReturnType<typeof map_children>;\n\nfunction get_constructor(type) {\n\tswitch (type) {\n\t\tcase 'AwaitBlock': return AwaitBlock;\n\t\tcase 'Body': return Body;\n\t\tcase 'Comment': return Comment;\n\t\tcase 'ConstTag': return ConstTag;\n\t\tcase 'EachBlock': return EachBlock;\n\t\tcase 'Element': return Element;\n\t\tcase 'Head': return Head;\n\t\tcase 'IfBlock': return IfBlock;\n\t\tcase 'InlineComponent': return InlineComponent;\n\t\tcase 'KeyBlock': return KeyBlock;\n\t\tcase 'MustacheTag': return MustacheTag;\n\t\tcase 'Options': return Options;\n\t\tcase 'RawMustacheTag': return RawMustacheTag;\n\t\tcase 'DebugTag': return DebugTag;\n\t\tcase 'Slot': return Slot;\n\t\tcase 'SlotTemplate': return SlotTemplate;\n\t\tcase 'Text': return Text;\n\t\tcase 'Title': return Title;\n\t\tcase 'Window': return Window;\n\t\tdefault: throw new Error(`Not implemented: ${type}`);\n\t}\n}\n\nexport default function map_children(component, parent, scope, children: TemplateNode[]) {\n\tlet last = null;\n\tlet ignores = [];\n\n\treturn children.map(child => {\n\t\tconst constructor = get_constructor(child.type);\n\n\t\tconst use_ignores = child.type !== 'Text' && child.type !== 'Comment' && ignores.length;\n\n\t\tif (use_ignores) component.push_ignores(ignores);\n\t\tconst node = new constructor(component, parent, scope, child);\n\t\tif (use_ignores) component.pop_ignores(), ignores = [];\n\n\t\tif (node.type === 'Comment' && node.ignores.length) {\n\t\t\tpush_array(ignores, node.ignores);\n\t\t}\n\n\t\tif (last) last.next = node;\n\t\tnode.prev = last;\n\t\tlast = node;\n\n\t\treturn node;\n\t});\n}\n","export default function check_graph_for_cycles(edges: Array<[any, any]>): any[] {\n\tconst graph: Map<any, any[]> = edges.reduce((g, edge) => {\n\t\tconst [u, v] = edge;\n\t\tif (!g.has(u)) g.set(u, []);\n\t\tif (!g.has(v)) g.set(v, []);\n\t\tg.get(u).push(v);\n\t\treturn g;\n\t}, new Map());\n\n\tconst visited = new Set();\n\tconst on_stack = new Set();\n\tconst cycles = [];\n\n\tfunction visit (v) {\n\t\tvisited.add(v);\n\t\ton_stack.add(v);\n\n\t\tgraph.get(v).forEach(w => {\n\t\t\tif (!visited.has(w)) {\n\t\t\t\tvisit(w);\n\t\t\t} else if (on_stack.has(w)) {\n\t\t\t\tcycles.push([...on_stack, w]);\n\t\t\t}\n\t\t});\n\n\t\ton_stack.delete(v);\n\t}\n\n\tgraph.forEach((_, v) => {\n\t\tif (!visited.has(v)) {\n\t\t\tvisit(v);\n\t\t}\n\t});\n\n\treturn cycles[0];\n}\n","import { TemplateNode, ConstTag as ConstTagType } from '../../../interfaces';\nimport Component from '../../Component';\nimport ConstTag from '../ConstTag';\nimport map_children from './map_children';\nimport { INodeAllowConstTag, INode } from '../interfaces';\nimport check_graph_for_cycles from '../../utils/check_graph_for_cycles';\nimport compiler_errors from '../../compiler_errors';\n\nexport default function get_const_tags(children: TemplateNode[], component: Component, node: INodeAllowConstTag, parent: INode): [ConstTag[], Array<Exclude<INode, ConstTag>>] {\n const const_tags: ConstTagType[] = [];\n const others: Array<Exclude<TemplateNode, ConstTagType>> = [];\n\n for (const child of children) {\n if (child.type === 'ConstTag') {\n const_tags.push(child as ConstTagType);\n } else {\n others.push(child);\n }\n }\n\n const consts_nodes = const_tags.map(tag => new ConstTag(component, node, node.scope, tag));\n const sorted_consts_nodes = sort_consts_nodes(consts_nodes, component);\n sorted_consts_nodes.forEach(node => node.parse_expression());\n\n const children_nodes = map_children(component, parent, node.scope, others);\n\n return [sorted_consts_nodes, children_nodes as Array<Exclude<INode, ConstTag>>];\n}\n\nfunction sort_consts_nodes(consts_nodes: ConstTag[], component: Component) {\n type ConstNode = {\n assignees: Set<string>;\n dependencies: Set<string>;\n node: ConstTag;\n };\n const sorted_consts_nodes: ConstNode[] = [];\n\n const unsorted_consts_nodes: ConstNode[] = consts_nodes.map(node => {\n return {\n assignees: node.assignees,\n dependencies: node.dependencies,\n node\n };\n });\n\n const lookup = new Map();\n\n unsorted_consts_nodes.forEach(node => {\n node.assignees.forEach(name => {\n if (!lookup.has(name)) {\n lookup.set(name, []);\n }\n lookup.get(name).push(node);\n });\n });\n\n const cycle = check_graph_for_cycles(unsorted_consts_nodes.reduce((acc, node) => {\n node.assignees.forEach(v => {\n node.dependencies.forEach(w => {\n if (!node.assignees.has(w)) {\n acc.push([v, w]);\n }\n });\n });\n return acc;\n }, []));\n\n if (cycle && cycle.length) {\n const nodeList = lookup.get(cycle[0]);\n const node = nodeList[0];\n component.error(node.node, compiler_errors.cyclical_const_tags(cycle));\n }\n\n const add_node = (node: ConstNode) => {\n if (sorted_consts_nodes.includes(node)) return;\n\n node.dependencies.forEach(name => {\n if (node.assignees.has(name)) return;\n const earlier_nodes = lookup.get(name);\n if (earlier_nodes) {\n earlier_nodes.forEach(add_node);\n }\n });\n\n sorted_consts_nodes.push(node);\n };\n\n unsorted_consts_nodes.forEach(add_node);\n\n return sorted_consts_nodes.map(node => node.node);\n}\n","import TemplateScope from './shared/TemplateScope';\nimport AbstractBlock from './shared/AbstractBlock';\nimport AwaitBlock from './AwaitBlock';\nimport Component from '../Component';\nimport { TemplateNode } from '../../interfaces';\nimport get_const_tags from './shared/get_const_tags';\nimport ConstTag from './ConstTag';\n\nexport default class ThenBlock extends AbstractBlock {\n\ttype: 'ThenBlock';\n\tscope: TemplateScope;\n\tconst_tags: ConstTag[];\n\n\tconstructor(component: Component, parent: AwaitBlock, scope: TemplateScope, info: TemplateNode) {\n\t\tsuper(component, parent, scope, info);\n\n\t\tthis.scope = scope.child();\n\t\tif (parent.then_node) {\n\t\t\tparent.then_contexts.forEach(context => {\n\t\t\t\tthis.scope.add(context.key.name, parent.expression.dependencies, this);\n\t\t\t});\n\t\t}\n\n\t\t([this.const_tags, this.children] = get_const_tags(info.children, component, this, parent));\n\n\t\tif (!info.skip) {\n\t\t\tthis.warn_if_empty_block();\n\t\t}\n\t}\n}\n","import ConstTag from '../../../nodes/ConstTag';\nimport Block from '../../Block';\nimport { b, x } from 'code-red';\nimport Renderer from '../../Renderer';\n\nexport function add_const_tags(block: Block, const_tags: ConstTag[], ctx: string) {\n const const_tags_props = [];\n const_tags.forEach((const_tag, i) => {\n const name = `#constants_${i}`;\n const_tags_props.push(b`const ${name} = ${const_tag.expression.manipulate(block, ctx)}`);\n const_tag.contexts.forEach(context => {\n const_tags_props.push(b`${ctx}[${block.renderer.context_lookup.get(context.key.name).index}] = ${context.default_modifier(context.modifier({ type: 'Identifier', name }), name => block.renderer.context_lookup.has(name) ? x`${ctx}[${block.renderer.context_lookup.get(name).index}]` : { type: 'Identifier', name })};`);\n });\n });\n return const_tags_props;\n}\n\nexport function add_const_tags_context(renderer: Renderer, const_tags: ConstTag[]) {\n const_tags.forEach(const_tag => {\n const_tag.contexts.forEach(context => {\n renderer.add_to_context(context.key.name, true);\n });\n });\n}\n","import Wrapper from './shared/Wrapper';\nimport Renderer from '../Renderer';\nimport Block from '../Block';\nimport AwaitBlock from '../../nodes/AwaitBlock';\nimport create_debugging_comment from './shared/create_debugging_comment';\nimport { b, x } from 'code-red';\nimport FragmentWrapper from './Fragment';\nimport PendingBlock from '../../nodes/PendingBlock';\nimport ThenBlock from '../../nodes/ThenBlock';\nimport CatchBlock from '../../nodes/CatchBlock';\nimport { Context } from '../../nodes/shared/Context';\nimport { Identifier, Literal, Node } from 'estree';\nimport { add_const_tags, add_const_tags_context } from './shared/add_const_tags';\n\ntype Status = 'pending' | 'then' | 'catch';\n\nclass AwaitBlockBranch extends Wrapper {\n\tparent: AwaitBlockWrapper;\n\tnode: PendingBlock | ThenBlock | CatchBlock;\n\tblock: Block;\n\tfragment: FragmentWrapper;\n\tis_dynamic: boolean;\n\n\tvar = null;\n\tstatus: Status;\n\n\tvalue: string;\n\tvalue_index: Literal;\n\tvalue_contexts: Context[];\n\tis_destructured: boolean;\n\n\tconstructor(\n\t\tstatus: Status,\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: AwaitBlockWrapper,\n\t\tnode: PendingBlock | ThenBlock | CatchBlock,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\t\tthis.status = status;\n\n\t\tthis.block = block.child({\n\t\t\tcomment: create_debugging_comment(node, this.renderer.component),\n\t\t\tname: this.renderer.component.get_unique_name(`create_${status}_block`),\n\t\t\ttype: status\n\t\t});\n\n\t\tthis.add_context(parent.node[status + '_node'], parent.node[status + '_contexts']);\n\n\t\tthis.fragment = new FragmentWrapper(\n\t\t\trenderer,\n\t\t\tthis.block,\n\t\t\tthis.node.children,\n\t\t\tparent,\n\t\t\tstrip_whitespace,\n\t\t\tnext_sibling\n\t\t);\n\n\t\tthis.is_dynamic = this.block.dependencies.size > 0;\n\t}\n\n\tadd_context(node: Node | null, contexts: Context[]) {\n\t\tif (!node) return;\n\n\t\tif (node.type === 'Identifier') {\n\t\t\tthis.value = node.name;\n\t\t\tthis.renderer.add_to_context(this.value, true);\n\t\t} else {\n\t\t\tcontexts.forEach(context => {\n\t\t\t\tthis.renderer.add_to_context(context.key.name, true);\n\t\t\t});\n\t\t\tthis.value = this.block.parent.get_unique_name('value').name;\n\t\t\tthis.value_contexts = contexts;\n\t\t\tthis.renderer.add_to_context(this.value, true);\n\t\t\tthis.is_destructured = true;\n\t\t}\n\t\tthis.value_index = this.renderer.context_lookup.get(this.value).index;\n\n\t\tif (this.has_consts(this.node)) {\n\t\t\tadd_const_tags_context(this.renderer, this.node.const_tags);\n\t\t}\n\t}\n\n\thas_consts(node: PendingBlock | ThenBlock | CatchBlock): node is ThenBlock | CatchBlock {\n\t\treturn node instanceof ThenBlock || node instanceof CatchBlock;\n\t}\n\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tthis.fragment.render(block, parent_node, parent_nodes);\n\n\t\tif (this.is_destructured || (this.has_consts(this.node) && this.node.const_tags.length > 0)) {\n\t\t\tthis.render_get_context();\n\t\t}\n\t}\n\n\trender_get_context() {\n\t\tconst props = this.is_destructured ? this.value_contexts.map(prop => b`#ctx[${this.block.renderer.context_lookup.get(prop.key.name).index}] = ${prop.default_modifier(prop.modifier(x`#ctx[${this.value_index}]`), name => this.renderer.reference(name))};`) : null;\n\n\t\tconst const_tags_props = this.has_consts(this.node) ? add_const_tags(this.block, this.node.const_tags, '#ctx') : null;\n\n\t\tconst get_context = this.block.renderer.component.get_unique_name(`get_${this.status}_context`);\n\t\tthis.block.renderer.blocks.push(b`\n\t\t\tfunction ${get_context}(#ctx) {\n\t\t\t\t${props}\n\t\t\t\t${const_tags_props}\n\t\t\t}\n\t\t`);\n\t\tthis.block.chunks.declarations.push(b`${get_context}(#ctx)`);\n\t\tif (this.block.has_update_method) {\n\t\t\tthis.block.chunks.update.unshift(b`${get_context}(#ctx)`);\n\t\t}\n\t}\n}\n\nexport default class AwaitBlockWrapper extends Wrapper {\n\tnode: AwaitBlock;\n\n\tpending: AwaitBlockBranch;\n\tthen: AwaitBlockBranch;\n\tcatch: AwaitBlockBranch;\n\n\tvar: Identifier = { type: 'Identifier', name: 'await_block' };\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: AwaitBlock,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tthis.cannot_use_innerhtml();\n\t\tthis.not_static_content();\n\n\t\tblock.add_dependencies(this.node.expression.dependencies);\n\n\t\tlet is_dynamic = false;\n\t\tlet has_intros = false;\n\t\tlet has_outros = false;\n\n\t\t['pending', 'then', 'catch'].forEach((status: Status) => {\n\t\t\tconst child = this.node[status];\n\n\t\t\tconst branch = new AwaitBlockBranch(\n\t\t\t\tstatus,\n\t\t\t\trenderer,\n\t\t\t\tblock,\n\t\t\t\tthis,\n\t\t\t\tchild,\n\t\t\t\tstrip_whitespace,\n\t\t\t\tnext_sibling\n\t\t\t);\n\n\t\t\trenderer.blocks.push(branch.block);\n\n\t\t\tif (branch.is_dynamic) {\n\t\t\t\tis_dynamic = true;\n\t\t\t\t// TODO should blocks update their own parents?\n\t\t\t\tblock.add_dependencies(branch.block.dependencies);\n\t\t\t}\n\n\t\t\tif (branch.block.has_intros) has_intros = true;\n\t\t\tif (branch.block.has_outros) has_outros = true;\n\n\t\t\tthis[status] = branch;\n\t\t});\n\n\t\t['pending', 'then', 'catch'].forEach(status => {\n\t\t\tthis[status].block.has_update_method = is_dynamic;\n\t\t\tthis[status].block.has_intro_method = has_intros;\n\t\t\tthis[status].block.has_outro_method = has_outros;\n\t\t});\n\n\t\tif (has_outros) {\n\t\t\tblock.add_outro();\n\t\t}\n\t}\n\n\trender(\n\t\tblock: Block,\n\t\tparent_node: Identifier,\n\t\tparent_nodes: Identifier\n\t) {\n\t\tconst anchor = this.get_or_create_anchor(block, parent_node, parent_nodes);\n\t\tconst update_mount_node = this.get_update_mount_node(anchor);\n\n\t\tconst snippet = this.node.expression.manipulate(block);\n\n\t\tconst info = block.get_unique_name('info');\n\t\tconst promise = block.get_unique_name('promise');\n\n\t\tblock.add_variable(promise);\n\n\t\tblock.maintain_context = true;\n\n\t\tconst info_props: any = x`{\n\t\t\tctx: #ctx,\n\t\t\tcurrent: null,\n\t\t\ttoken: null,\n\t\t\thasCatch: ${this.catch.node.start !== null ? 'true' : 'false'},\n\t\t\tpending: ${this.pending.block.name},\n\t\t\tthen: ${this.then.block.name},\n\t\t\tcatch: ${this.catch.block.name},\n\t\t\tvalue: ${this.then.value_index},\n\t\t\terror: ${this.catch.value_index},\n\t\t\tblocks: ${this.pending.block.has_outro_method && x`[,,,]`}\n\t\t}`;\n\n\t\tblock.chunks.init.push(b`\n\t\t\tlet ${info} = ${info_props};\n\t\t`);\n\n\t\tblock.chunks.init.push(b`\n\t\t\t@handle_promise(${promise} = ${snippet}, ${info});\n\t\t`);\n\n\t\tblock.chunks.create.push(b`\n\t\t\t${info}.block.c();\n\t\t`);\n\n\t\tif (parent_nodes && this.renderer.options.hydratable) {\n\t\t\tblock.chunks.claim.push(b`\n\t\t\t\t${info}.block.l(${parent_nodes});\n\t\t\t`);\n\t\t}\n\n\t\tconst initial_mount_node = parent_node || '#target';\n\t\tconst anchor_node = parent_node ? 'null' : '#anchor';\n\n\t\tconst has_transitions = this.pending.block.has_intro_method || this.pending.block.has_outro_method;\n\n\t\tblock.chunks.mount.push(b`\n\t\t\t${info}.block.m(${initial_mount_node}, ${info}.anchor = ${anchor_node});\n\t\t\t${info}.mount = () => ${update_mount_node};\n\t\t\t${info}.anchor = ${anchor};\n\t\t`);\n\n\t\tif (has_transitions) {\n\t\t\tblock.chunks.intro.push(b`@transition_in(${info}.block);`);\n\t\t}\n\n\t\tconst dependencies = this.node.expression.dynamic_dependencies();\n\n\t\tconst update_await_block_branch = b`@update_await_block_branch(${info}, #ctx, #dirty)`;\n\n\t\tif (dependencies.length > 0) {\n\t\t\tconst condition = x`\n\t\t\t\t${block.renderer.dirty(dependencies)} &&\n\t\t\t\t${promise} !== (${promise} = ${snippet}) &&\n\t\t\t\t@handle_promise(${promise}, ${info})`;\n\n\t\t\tblock.chunks.update.push(\n\t\t\t\tb`${info}.ctx = #ctx;`\n\t\t\t);\n\n\t\t\tif (this.pending.block.has_update_method) {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${condition}) {\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\t${update_await_block_branch}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\t${condition}\n\t\t\t\t`);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.pending.block.has_update_method) {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\t${update_await_block_branch}\n\t\t\t\t`);\n\t\t\t}\n\t\t}\n\n\t\tif (this.pending.block.has_outro_method) {\n\t\t\tblock.chunks.outro.push(b`\n\t\t\t\tfor (let #i = 0; #i < 3; #i += 1) {\n\t\t\t\t\tconst block = ${info}.blocks[#i];\n\t\t\t\t\t@transition_out(block);\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tblock.chunks.destroy.push(b`\n\t\t\t${info}.block.d(${parent_node ? null : 'detaching'});\n\t\t\t${info}.token = null;\n\t\t\t${info} = null;\n\t\t`);\n\n\t\t[this.pending, this.then, this.catch].forEach(branch => {\n\t\t\tbranch.render(branch.block, null, x`#nodes` as Identifier);\n\t\t});\n\t}\n}\n","import EventHandler from '../../../nodes/EventHandler';\nimport Wrapper from '../shared/Wrapper';\nimport Block from '../../Block';\nimport { b, x, p } from 'code-red';\nimport { Expression } from 'estree';\n\nconst TRUE = x`true`;\nconst FALSE = x`false`;\n\nexport default class EventHandlerWrapper {\n\tnode: EventHandler;\n\tparent: Wrapper;\n\n\tconstructor(node: EventHandler, parent: Wrapper) {\n\t\tthis.node = node;\n\t\tthis.parent = parent;\n\n\t\tif (!node.expression) {\n\t\t\tthis.parent.renderer.add_to_context(node.handler_name.name);\n\n\t\t\tthis.parent.renderer.component.partly_hoisted.push(b`\n\t\t\t\tfunction ${node.handler_name.name}(event) {\n\t\t\t\t\t@bubble.call(this, $$self, event);\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\t}\n\n\tget_snippet(block: Block) {\n\t\tconst snippet = this.node.expression ? this.node.expression.manipulate(block) : block.renderer.reference(this.node.handler_name);\n\n\t\tif (this.node.reassigned) {\n\t\t\tblock.maintain_context = true;\n\t\t\treturn x`function () { if (@is_function(${snippet})) ${snippet}.apply(this, arguments); }`;\n\t\t}\n\t\treturn snippet;\n\t}\n\n\trender(block: Block, target: string | Expression) {\n\t\tlet snippet = this.get_snippet(block);\n\n\t\tif (this.node.modifiers.has('preventDefault')) snippet = x`@prevent_default(${snippet})`;\n\t\tif (this.node.modifiers.has('stopPropagation')) snippet = x`@stop_propagation(${snippet})`;\n\t\tif (this.node.modifiers.has('stopImmediatePropagation')) snippet = x`@stop_immediate_propagation(${snippet})`;\n\t\tif (this.node.modifiers.has('self')) snippet = x`@self(${snippet})`;\n\t\tif (this.node.modifiers.has('trusted')) snippet = x`@trusted(${snippet})`;\n\n\t\tconst args = [];\n\n\t\tconst opts = ['nonpassive', 'passive', 'once', 'capture'].filter(mod => this.node.modifiers.has(mod));\n\t\tif (opts.length) {\n\t\t\tif (opts.length === 1 && opts[0] === 'capture') {\n\t\t\t\targs.push(TRUE);\n\t\t\t} else {\n\t\t\t\targs.push(x`{ ${ opts.map(opt =>\n\t\t\t\t\topt === 'nonpassive'\n\t\t\t\t\t\t? p`passive: false`\n\t\t\t\t\t\t: p`${opt}: true`\n\t\t\t\t) } }`);\n\t\t\t}\n\t\t} else if (block.renderer.options.dev) {\n\t\t\targs.push(FALSE);\n\t\t}\n\n\t\tif (block.renderer.options.dev) {\n\t\t\targs.push(this.node.modifiers.has('preventDefault') ? TRUE : FALSE);\n\t\t\targs.push(this.node.modifiers.has('stopPropagation') ? TRUE : FALSE);\n\t\t\targs.push(this.node.modifiers.has('stopImmediatePropagation') ? TRUE : FALSE);\n\t\t}\n\n\t\tblock.event_listeners.push(\n\t\t\tx`@listen(${target}, \"${this.node.name}\", ${snippet}, ${args})`\n\t\t);\n\t}\n}\n","import Block from '../../Block';\nimport EventHandler from '../Element/EventHandler';\nimport { Expression } from 'estree';\n\nexport default function add_event_handlers(\n\tblock: Block,\n\ttarget: string | Expression,\n\thandlers: EventHandler[]\n) {\n\thandlers.forEach(handler => add_event_handler(block, target, handler));\n}\n\nexport function add_event_handler(\n\tblock: Block,\n\ttarget: string | Expression,\n\thandler: EventHandler\n) {\n\thandler.render(block, target);\n}\n","import { b, x } from 'code-red';\nimport Block from '../../Block';\nimport Action from '../../../nodes/Action';\nimport { Expression, Node } from 'estree';\nimport is_contextual from '../../../nodes/shared/is_contextual';\n\nexport default function add_actions(\n\tblock: Block,\n\ttarget: string | Expression,\n\tactions: Action[]\n) {\n\tactions.forEach(action => add_action(block, target, action));\n}\n\nconst regex_invalid_variable_identifier_characters = /[^a-zA-Z0-9_$]/g;\n\nexport function add_action(block: Block, target: string | Expression, action: Action) {\n\tconst { expression, template_scope } = action;\n\tlet snippet: Node | undefined;\n\tlet dependencies: string[] | undefined;\n\n\tif (expression) {\n\t\tsnippet = expression.manipulate(block);\n\t\tdependencies = expression.dynamic_dependencies();\n\t}\n\n\tconst id = block.get_unique_name(\n\t\t`${action.name.replace(regex_invalid_variable_identifier_characters, '_')}_action`\n\t);\n\n\tblock.add_variable(id);\n\n\tconst [obj, ...properties] = action.name.split('.');\n\n\tconst fn = is_contextual(action.component, template_scope, obj)\n\t\t? block.renderer.reference(obj)\n\t\t: obj;\n\n\tif (properties.length) {\n\t\tconst member_expression = properties.reduce((lhs, rhs) => x`${lhs}.${rhs}`, fn);\n\t\tblock.event_listeners.push(\n\t\t\tx`@action_destroyer(${id} = ${member_expression}(${target}, ${snippet}))`\n\t\t);\n\t} else {\n\t\tblock.event_listeners.push(\n\t\t\tx`@action_destroyer(${id} = ${fn}.call(null, ${target}, ${snippet}))`\n\t\t);\n\t}\n\n\tif (dependencies && dependencies.length > 0) {\n\t\tlet condition = x`${id} && @is_function(${id}.update)`;\n\n\t\tif (dependencies.length > 0) {\n\t\t\tcondition = x`${condition} && ${block.renderer.dirty(dependencies)}`;\n\t\t}\n\n\t\tblock.chunks.update.push(\n\t\t\tb`if (${condition}) ${id}.update.call(null, ${snippet});`\n\t\t);\n\t}\n}\n","import Block from '../Block';\nimport Wrapper from './shared/Wrapper';\nimport { x } from 'code-red';\nimport Body from '../../nodes/Body';\nimport { Identifier } from 'estree';\nimport EventHandler from './Element/EventHandler';\nimport add_event_handlers from './shared/add_event_handlers';\nimport { TemplateNode } from '../../../interfaces';\nimport Renderer from '../Renderer';\nimport add_actions from './shared/add_actions';\n\nexport default class BodyWrapper extends Wrapper {\n\tnode: Body;\n\thandlers: EventHandler[];\n\n\tconstructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode) {\n\t\tsuper(renderer, block, parent, node);\n\t\tthis.handlers = this.node.handlers.map(handler => new EventHandler(handler, this));\n\t}\n\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\n\t\tadd_event_handlers(block, x`@_document.body`, this.handlers);\n\t\tadd_actions(block, x`@_document.body`, this.node.actions);\n\t}\n}\n","import Renderer from '../Renderer';\nimport Wrapper from './shared/Wrapper';\nimport Block from '../Block';\nimport DebugTag from '../../nodes/DebugTag';\nimport add_to_set from '../../utils/add_to_set';\nimport { b, p } from 'code-red';\nimport { Identifier, DebuggerStatement } from 'estree';\n\nexport default class DebugTagWrapper extends Wrapper {\n\tnode: DebugTag;\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: DebugTag,\n\t\t_strip_whitespace: boolean,\n\t\t_next_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\t}\n\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\n\t\tconst { renderer } = this;\n\t\tconst { component } = renderer;\n\n\t\tif (!renderer.options.dev) return;\n\n\t\tconst { var_lookup } = component;\n\n\t\tconst start = component.locate(this.node.start + 1);\n\t\tconst end = { line: start.line, column: start.column + 6 };\n\n\t\tconst loc = { start, end };\n\n\t\tconst debug: DebuggerStatement = {\n\t\t\ttype: 'DebuggerStatement',\n\t\t\tloc\n\t\t};\n\n\t\tif (this.node.expressions.length === 0) {\n\t\t\t// Debug all\n\t\t\tblock.chunks.create.push(debug);\n\t\t\tblock.chunks.update.push(debug);\n\t\t} else {\n\t\t\tconst log: Identifier = {\n\t\t\t\ttype: 'Identifier',\n\t\t\t\tname: 'log',\n\t\t\t\tloc\n\t\t\t};\n\n\t\t\tconst dependencies: Set<string> = new Set();\n\t\t\tthis.node.expressions.forEach(expression => {\n\t\t\t\tadd_to_set(dependencies, expression.dependencies);\n\t\t\t});\n\n\t\t\tconst contextual_identifiers = this.node.expressions\n\t\t\t\t.filter(e => {\n\t\t\t\t\tconst variable = var_lookup.get((e.node as Identifier).name);\n\t\t\t\t\treturn !(variable && variable.hoistable);\n\t\t\t\t})\n\t\t\t\t.map(e => (e.node as Identifier).name);\n\n\t\t\tconst logged_identifiers = this.node.expressions.map(e => p`${(e.node as Identifier).name}`);\n\n\t\t\tconst debug_statements = b`\n\t\t\t\t${contextual_identifiers.map(name => b`const ${name} = ${renderer.reference(name)};`)}\n\t\t\t\t@_console.${log}({ ${logged_identifiers} });\n\t\t\t\tdebugger;`;\n\n\t\t\tif (dependencies.size) {\n\t\t\t\tconst condition = renderer.dirty(Array.from(dependencies));\n\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${condition}) {\n\t\t\t\t\t\t${debug_statements}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\n\t\t\tblock.chunks.create.push(b`{\n\t\t\t\t${debug_statements}\n\t\t\t}`);\n\t\t}\n\t}\n}\n","import Renderer from '../Renderer';\nimport Block from '../Block';\nimport Wrapper from './shared/Wrapper';\nimport create_debugging_comment from './shared/create_debugging_comment';\nimport EachBlock from '../../nodes/EachBlock';\nimport FragmentWrapper from './Fragment';\nimport { b, x } from 'code-red';\nimport ElseBlock from '../../nodes/ElseBlock';\nimport { Identifier, Node } from 'estree';\nimport get_object from '../../utils/get_object';\nimport { add_const_tags, add_const_tags_context } from './shared/add_const_tags';\n\nexport class ElseBlockWrapper extends Wrapper {\n\tnode: ElseBlock;\n\tblock: Block;\n\tfragment: FragmentWrapper;\n\tis_dynamic: boolean;\n\n\tvar = null;\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: ElseBlock,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\t\tadd_const_tags_context(renderer, this.node.const_tags);\n\n\t\tthis.block = block.child({\n\t\t\tcomment: create_debugging_comment(node, this.renderer.component),\n\t\t\tname: this.renderer.component.get_unique_name('create_else_block'),\n\t\t\ttype: 'else'\n\t\t});\n\n\t\tthis.fragment = new FragmentWrapper(\n\t\t\trenderer,\n\t\t\tthis.block,\n\t\t\tthis.node.children,\n\t\t\tparent,\n\t\t\tstrip_whitespace,\n\t\t\tnext_sibling\n\t\t);\n\n\t\tthis.is_dynamic = this.block.dependencies.size > 0;\n\t}\n}\n\nexport default class EachBlockWrapper extends Wrapper {\n\tblock: Block;\n\tnode: EachBlock;\n\tfragment: FragmentWrapper;\n\telse?: ElseBlockWrapper;\n\tvars: {\n\t\tcreate_each_block: Identifier;\n\t\teach_block_value: Identifier;\n\t\tget_each_context: Identifier;\n\t\titerations: Identifier;\n\t\tfixed_length: number;\n\t\tdata_length: Node | number;\n\t\tview_length: Node | number;\n\t};\n\n\tcontext_props: Array<Node | Node[]>;\n\tindex_name: Identifier;\n\tupdates: Array<Node | Node[]> = [];\n\tdependencies: Set<string>;\n\n\tvar: Identifier = { type: 'Identifier', name: 'each' };\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: EachBlock,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\t\tthis.cannot_use_innerhtml();\n\t\tthis.not_static_content();\n\n\t\tconst { dependencies } = node.expression;\n\t\tblock.add_dependencies(dependencies);\n\n\t\tthis.node.contexts.forEach(context => {\n\t\t\trenderer.add_to_context(context.key.name, true);\n\t\t});\n\t\tadd_const_tags_context(renderer, this.node.const_tags);\n\n\t\tthis.block = block.child({\n\t\t\tcomment: create_debugging_comment(this.node, this.renderer.component),\n\t\t\tname: renderer.component.get_unique_name('create_each_block'),\n\t\t\ttype: 'each',\n\t\t\t// @ts-ignore todo: probably error\n\t\t\tkey: node.key as string,\n\n\t\t\tbindings: new Map(block.bindings)\n\t\t});\n\n\t\t// TODO this seems messy\n\t\tthis.block.has_animation = this.node.has_animation;\n\n\t\tthis.index_name = this.node.index\n\t\t\t? { type: 'Identifier', name: this.node.index }\n\t\t\t: renderer.component.get_unique_name(`${this.node.context}_index`);\n\n\t\tconst fixed_length =\n\t\t\tnode.expression.node.type === 'ArrayExpression' &&\n\t\t\tnode.expression.node.elements.every(element => element.type !== 'SpreadElement')\n\t\t\t\t? node.expression.node.elements.length\n\t\t\t\t: null;\n\n\t\t// hack the sourcemap, so that if data is missing the bug\n\t\t// is easy to find\n\t\tlet c = this.node.start + 2;\n\t\twhile (renderer.component.source[c] !== 'e') c += 1;\n\t\tconst start = renderer.component.locate(c);\n\t\tconst end = { line: start.line, column: start.column + 4 };\n\t\tconst length = {\n\t\t\ttype: 'Identifier',\n\t\t\tname: 'length',\n\t\t\tloc: { start, end }\n\t\t};\n\n\t\tconst each_block_value = renderer.component.get_unique_name(`${this.var.name}_value`);\n\t\tconst iterations = block.get_unique_name(`${this.var.name}_blocks`);\n\n\t\trenderer.add_to_context(each_block_value.name, true);\n\t\trenderer.add_to_context(this.index_name.name, true);\n\n\t\tthis.vars = {\n\t\t\tcreate_each_block: this.block.name,\n\t\t\teach_block_value,\n\t\t\tget_each_context: renderer.component.get_unique_name(`get_${this.var.name}_context`),\n\t\t\titerations,\n\n\t\t\t// optimisation for array literal\n\t\t\tfixed_length,\n\t\t\tdata_length: fixed_length === null ? x`${each_block_value}.${length}` : fixed_length,\n\t\t\tview_length: fixed_length === null ? x`${iterations}.length` : fixed_length\n\t\t};\n\n\t\tconst object = get_object(node.expression.node);\n\t\tconst store = object.type === 'Identifier' && object.name[0] === '$' ? object.name.slice(1) : null;\n\n\t\tnode.contexts.forEach(prop => {\n\t\t\tthis.block.bindings.set(prop.key.name, {\n\t\t\t\tobject: this.vars.each_block_value,\n\t\t\t\tproperty: this.index_name,\n\t\t\t\tmodifier: prop.modifier,\n\t\t\t\tsnippet: prop.modifier(x`${this.vars.each_block_value}[${this.index_name}]` as Node),\n\t\t\t\tstore\n\t\t\t});\n\t\t});\n\n\t\tif (this.node.index) {\n\t\t\tthis.block.get_unique_name(this.node.index); // this prevents name collisions (#1254)\n\t\t}\n\n\t\trenderer.blocks.push(this.block);\n\n\t\tthis.fragment = new FragmentWrapper(renderer, this.block, node.children, this, strip_whitespace, next_sibling);\n\n\t\tif (this.node.else) {\n\t\t\tthis.else = new ElseBlockWrapper(\n\t\t\t\trenderer,\n\t\t\t\tblock,\n\t\t\t\tthis,\n\t\t\t\tthis.node.else,\n\t\t\t\tstrip_whitespace,\n\t\t\t\tnext_sibling\n\t\t\t);\n\n\t\t\trenderer.blocks.push(this.else.block);\n\n\t\t\tif (this.else.is_dynamic) {\n\t\t\t\tthis.block.add_dependencies(this.else.block.dependencies);\n\t\t\t}\n\t\t}\n\n\t\tblock.add_dependencies(this.block.dependencies);\n\n\t\tif (this.block.has_outros || (this.else && this.else.block.has_outros)) {\n\t\t\tblock.add_outro();\n\t\t}\n\t}\n\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tif (this.fragment.nodes.length === 0) return;\n\n\t\tconst { renderer } = this;\n\t\tconst { component } = renderer;\n\n\t\tconst needs_anchor = this.next\n\t\t\t? !this.next.is_dom_node() :\n\t\t\t!parent_node || !this.parent.is_dom_node();\n\n\t\tconst snippet = this.node.expression.manipulate(block);\n\n\t\tblock.chunks.init.push(b`let ${this.vars.each_block_value} = ${snippet};`);\n\t\tif (this.renderer.options.dev) {\n\t\t\tblock.chunks.init.push(b`@validate_each_argument(${this.vars.each_block_value});`);\n\t\t}\n\n\t\tconst initial_anchor_node: Identifier = { type: 'Identifier', name: parent_node ? 'null' : '#anchor' };\n\t\tconst initial_mount_node: Identifier = parent_node || { type: 'Identifier', name: '#target' };\n\t\tconst update_anchor_node = needs_anchor\n\t\t\t? block.get_unique_name(`${this.var.name}_anchor`)\n\t\t\t: (this.next && this.next.var) || { type: 'Identifier', name: 'null' };\n\t\tconst update_mount_node: Identifier = this.get_update_mount_node((update_anchor_node as Identifier));\n\n\t\tconst args = {\n\t\t\tblock,\n\t\t\tparent_node,\n\t\t\tparent_nodes,\n\t\t\tsnippet,\n\t\t\tinitial_anchor_node,\n\t\t\tinitial_mount_node,\n\t\t\tupdate_anchor_node,\n\t\t\tupdate_mount_node\n\t\t};\n\n\t\tconst all_dependencies = new Set(this.block.dependencies); // TODO should be dynamic deps only\n\t\tthis.node.expression.dynamic_dependencies().forEach((dependency: string) => {\n\t\t\tall_dependencies.add(dependency);\n\t\t});\n\t\tif (this.node.key) {\n\t\t\tthis.node.key.dynamic_dependencies().forEach((dependency: string) => {\n\t\t\t\tall_dependencies.add(dependency);\n\t\t\t});\n\t\t}\n\t\tthis.dependencies = all_dependencies;\n\n\t\tif (this.node.key) {\n\t\t\tthis.render_keyed(args);\n\t\t} else {\n\t\t\tthis.render_unkeyed(args);\n\t\t}\n\n\t\tif (this.block.has_intro_method || this.block.has_outro_method) {\n\t\t\tblock.chunks.intro.push(b`\n\t\t\t\tfor (let #i = 0; #i < ${this.vars.data_length}; #i += 1) {\n\t\t\t\t\t@transition_in(${this.vars.iterations}[#i]);\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tif (needs_anchor) {\n\t\t\tblock.add_element(\n\t\t\t\tupdate_anchor_node as Identifier,\n\t\t\t\tx`@empty()`,\n\t\t\t\tparent_nodes && x`@empty()`,\n\t\t\t\tparent_node\n\t\t\t);\n\t\t}\n\n\t\tif (this.else) {\n\t\t\tlet else_ctx = x`#ctx`;\n\t\t\tif (this.else.node.const_tags.length > 0) {\n\t\t\t\tconst get_ctx_name = this.renderer.component.get_unique_name('get_else_ctx');\n\t\t\t\tthis.renderer.blocks.push(b`\n\t\t\t\t\tfunction ${get_ctx_name}(#ctx) {\n\t\t\t\t\t\tconst child_ctx = #ctx.slice();\n\t\t\t\t\t\t${add_const_tags(block, this.else.node.const_tags, 'child_ctx')}\n\t\t\t\t\t\treturn child_ctx;\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t\telse_ctx = x`${get_ctx_name}(#ctx)`;\n\t\t\t}\n\t\t\tconst each_block_else = component.get_unique_name(`${this.var.name}_else`);\n\n\t\t\tblock.chunks.init.push(b`let ${each_block_else} = null;`);\n\n\t\t\t// TODO neaten this up... will end up with an empty line in the block\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\tif (!${this.vars.data_length}) {\n\t\t\t\t\t${each_block_else} = ${this.else.block.name}(${else_ctx});\n\t\t\t\t}\n\t\t\t`);\n\n\t\t\tblock.chunks.create.push(b`\n\t\t\t\tif (${each_block_else}) {\n\t\t\t\t\t${each_block_else}.c();\n\t\t\t\t}\n\t\t\t`);\n\n\t\t\tif (this.renderer.options.hydratable) {\n\t\t\t\tblock.chunks.claim.push(b`\n\t\t\t\t\tif (${each_block_else}) {\n\t\t\t\t\t\t${each_block_else}.l(${parent_nodes});\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\n\t\t\tblock.chunks.mount.push(b`\n\t\t\t\tif (${each_block_else}) {\n\t\t\t\t\t${each_block_else}.m(${initial_mount_node}, ${initial_anchor_node});\n\t\t\t\t}\n\t\t\t`);\n\n\t\t\tconst has_transitions = !!(this.else.block.has_intro_method || this.else.block.has_outro_method);\n\n\t\t\tconst destroy_block_else = this.else.block.has_outro_method\n\t\t\t\t? b`\n\t\t\t\t\t@group_outros();\n\t\t\t\t\t@transition_out(${each_block_else}, 1, 1, () => {\n\t\t\t\t\t\t${each_block_else} = null;\n\t\t\t\t\t});\n\t\t\t\t\t@check_outros();`\n\t\t\t\t: b`\n\t\t\t\t\t${each_block_else}.d(1);\n\t\t\t\t\t${each_block_else} = null;`;\n\n\t\t\tif (this.else.block.has_update_method) {\n\t\t\t\tthis.updates.push(b`\n\t\t\t\t\tif (!${this.vars.data_length} && ${each_block_else}) {\n\t\t\t\t\t\t${each_block_else}.p(${else_ctx}, #dirty);\n\t\t\t\t\t} else if (!${this.vars.data_length}) {\n\t\t\t\t\t\t${each_block_else} = ${this.else.block.name}(${else_ctx});\n\t\t\t\t\t\t${each_block_else}.c();\n\t\t\t\t\t\t${has_transitions && b`@transition_in(${each_block_else}, 1);`}\n\t\t\t\t\t\t${each_block_else}.m(${update_mount_node}, ${update_anchor_node});\n\t\t\t\t\t} else if (${each_block_else}) {\n\t\t\t\t\t\t${destroy_block_else};\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tthis.updates.push(b`\n\t\t\t\t\tif (${this.vars.data_length}) {\n\t\t\t\t\t\tif (${each_block_else}) {\n\t\t\t\t\t\t\t${destroy_block_else};\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (!${each_block_else}) {\n\t\t\t\t\t\t${each_block_else} = ${this.else.block.name}(${else_ctx});\n\t\t\t\t\t\t${each_block_else}.c();\n\t\t\t\t\t\t${has_transitions && b`@transition_in(${each_block_else}, 1);`}\n\t\t\t\t\t\t${each_block_else}.m(${update_mount_node}, ${update_anchor_node});\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\n\t\t\tblock.chunks.destroy.push(b`\n\t\t\t\tif (${each_block_else}) ${each_block_else}.d(${parent_node ? '' : 'detaching'});\n\t\t\t`);\n\t\t}\n\n\t\tif (this.updates.length) {\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${block.renderer.dirty(Array.from(all_dependencies))}) {\n\t\t\t\t\t${this.updates}\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tthis.fragment.render(this.block, null, x`#nodes` as Identifier);\n\n\t\tif (this.else) {\n\t\t\tthis.else.fragment.render(this.else.block, null, x`#nodes` as Identifier);\n\t\t}\n\n\t\tthis.context_props = this.node.contexts.map(prop => b`child_ctx[${renderer.context_lookup.get(prop.key.name).index}] = ${prop.default_modifier(prop.modifier(x`list[i]`), name => renderer.context_lookup.has(name) ? x`child_ctx[${renderer.context_lookup.get(name).index}]` : { type: 'Identifier', name })};`);\n\n\t\tif (this.node.has_binding) this.context_props.push(b`child_ctx[${renderer.context_lookup.get(this.vars.each_block_value.name).index}] = list;`);\n\t\tif (this.node.has_binding || this.node.has_index_binding || this.node.index) this.context_props.push(b`child_ctx[${renderer.context_lookup.get(this.index_name.name).index}] = i;`);\n\n\t\t// TODO which is better — Object.create(array) or array.slice()?\n\t\trenderer.blocks.push(b`\n\t\t\tfunction ${this.vars.get_each_context}(#ctx, list, i) {\n\t\t\t\tconst child_ctx = #ctx.slice();\n\t\t\t\t${this.context_props}\n\t\t\t\t${add_const_tags(this.block, this.node.const_tags, 'child_ctx')}\n\t\t\t\treturn child_ctx;\n\t\t\t}\n\t\t`);\n\t}\n\n\trender_keyed({\n\t\tblock,\n\t\tparent_node,\n\t\tparent_nodes,\n\t\tsnippet,\n\t\tinitial_anchor_node,\n\t\tinitial_mount_node,\n\t\tupdate_anchor_node,\n\t\tupdate_mount_node\n\t}: {\n\t\tblock: Block;\n\t\tparent_node: Identifier;\n\t\tparent_nodes: Identifier;\n\t\tsnippet: Node;\n\t\tinitial_anchor_node: Identifier;\n\t\tinitial_mount_node: Identifier;\n\t\tupdate_anchor_node: Identifier;\n\t\tupdate_mount_node: Identifier;\n\t}) {\n\t\tconst {\n\t\t\tcreate_each_block,\n\t\t\titerations,\n\t\t\tdata_length,\n\t\t\tview_length\n\t\t} = this.vars;\n\n\t\tconst get_key = block.get_unique_name('get_key');\n\t\tconst lookup = block.get_unique_name(`${this.var.name}_lookup`);\n\n\t\tblock.add_variable(iterations, x`[]`);\n\t\tblock.add_variable(lookup, x`new @_Map()`);\n\n\t\tif (this.fragment.nodes[0].is_dom_node()) {\n\t\t\tthis.block.first = this.fragment.nodes[0].var;\n\t\t} else {\n\t\t\tthis.block.first = this.block.get_unique_name('first');\n\t\t\tthis.block.add_element(\n\t\t\t\tthis.block.first,\n\t\t\t\tx`@empty()`,\n\t\t\t\tparent_nodes && x`@empty()`,\n\t\t\t\tnull\n\t\t\t);\n\t\t}\n\n\t\tblock.chunks.init.push(b`\n\t\t\tconst ${get_key} = #ctx => ${this.node.key.manipulate(block)};\n\n\t\t\t${this.renderer.options.dev && b`@validate_each_keys(#ctx, ${this.vars.each_block_value}, ${this.vars.get_each_context}, ${get_key});`}\n\t\t\tfor (let #i = 0; #i < ${data_length}; #i += 1) {\n\t\t\t\tlet child_ctx = ${this.vars.get_each_context}(#ctx, ${this.vars.each_block_value}, #i);\n\t\t\t\tlet key = ${get_key}(child_ctx);\n\t\t\t\t${lookup}.set(key, ${iterations}[#i] = ${create_each_block}(key, child_ctx));\n\t\t\t}\n\t\t`);\n\n\t\tblock.chunks.create.push(b`\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\n\t\t\t\t${iterations}[#i].c();\n\t\t\t}\n\t\t`);\n\n\t\tif (parent_nodes && this.renderer.options.hydratable) {\n\t\t\tblock.chunks.claim.push(b`\n\t\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\n\t\t\t\t\t${iterations}[#i].l(${parent_nodes});\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tblock.chunks.mount.push(b`\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\n\t\t\t\tif (${iterations}[#i]) {\n\t\t\t\t\t${iterations}[#i].m(${initial_mount_node}, ${initial_anchor_node});\n\t\t\t\t}\n\t\t\t}\n\t\t`);\n\n\t\tconst dynamic = this.block.has_update_method;\n\n\t\tconst destroy = this.node.has_animation\n\t\t\t? (this.block.has_outros\n\t\t\t\t? '@fix_and_outro_and_destroy_block'\n\t\t\t\t: '@fix_and_destroy_block')\n\t\t\t: this.block.has_outros\n\t\t\t\t? '@outro_and_destroy_block'\n\t\t\t\t: '@destroy_block';\n\n\t\tif (this.dependencies.size) {\n\t\t\tthis.block.maintain_context = true;\n\n\t\t\tthis.updates.push(b`\n\t\t\t\t${this.vars.each_block_value} = ${snippet};\n\t\t\t\t${this.renderer.options.dev && b`@validate_each_argument(${this.vars.each_block_value});`}\n\n\t\t\t\t${this.block.has_outros && b`@group_outros();`}\n\t\t\t\t${this.node.has_animation && b`for (let #i = 0; #i < ${view_length}; #i += 1) ${iterations}[#i].r();`}\n\t\t\t\t${this.renderer.options.dev && b`@validate_each_keys(#ctx, ${this.vars.each_block_value}, ${this.vars.get_each_context}, ${get_key});`}\n\t\t\t\t${iterations} = @update_keyed_each(${iterations}, #dirty, ${get_key}, ${dynamic ? 1 : 0}, #ctx, ${this.vars.each_block_value}, ${lookup}, ${update_mount_node}, ${destroy}, ${create_each_block}, ${update_anchor_node}, ${this.vars.get_each_context});\n\t\t\t\t${this.node.has_animation && b`for (let #i = 0; #i < ${view_length}; #i += 1) ${iterations}[#i].a();`}\n\t\t\t\t${this.block.has_outros && b`@check_outros();`}\n\t\t\t`);\n\t\t}\n\n\t\tif (this.block.has_outros) {\n\t\t\tblock.chunks.outro.push(b`\n\t\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\n\t\t\t\t\t@transition_out(${iterations}[#i]);\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tblock.chunks.destroy.push(b`\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\n\t\t\t\t${iterations}[#i].d(${parent_node ? null : 'detaching'});\n\t\t\t}\n\t\t`);\n\t}\n\n\trender_unkeyed({\n\t\tblock,\n\t\tparent_nodes,\n\t\tsnippet,\n\t\tinitial_anchor_node,\n\t\tinitial_mount_node,\n\t\tupdate_anchor_node,\n\t\tupdate_mount_node\n\t}: {\n\t\tblock: Block;\n\t\tparent_nodes: Identifier;\n\t\tsnippet: Node;\n\t\tinitial_anchor_node: Identifier;\n\t\tinitial_mount_node: Identifier;\n\t\tupdate_anchor_node: Identifier;\n\t\tupdate_mount_node: Identifier;\n\t}) {\n\t\tconst {\n\t\t\tcreate_each_block,\n\t\t\titerations,\n\t\t\tfixed_length,\n\t\t\tdata_length,\n\t\t\tview_length\n\t\t} = this.vars;\n\n\t\tblock.chunks.init.push(b`\n\t\t\tlet ${iterations} = [];\n\n\t\t\tfor (let #i = 0; #i < ${data_length}; #i += 1) {\n\t\t\t\t${iterations}[#i] = ${create_each_block}(${this.vars.get_each_context}(#ctx, ${this.vars.each_block_value}, #i));\n\t\t\t}\n\t\t`);\n\n\t\tblock.chunks.create.push(b`\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\n\t\t\t\t${iterations}[#i].c();\n\t\t\t}\n\t\t`);\n\n\t\tif (parent_nodes && this.renderer.options.hydratable) {\n\t\t\tblock.chunks.claim.push(b`\n\t\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\n\t\t\t\t\t${iterations}[#i].l(${parent_nodes});\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tblock.chunks.mount.push(b`\n\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\n\t\t\t\tif (${iterations}[#i]) {\n\t\t\t\t\t${iterations}[#i].m(${initial_mount_node}, ${initial_anchor_node});\n\t\t\t\t}\n\t\t\t}\n\t\t`);\n\n\t\tif (this.dependencies.size) {\n\t\t\tconst has_transitions = !!(this.block.has_intro_method || this.block.has_outro_method);\n\n\t\t\tconst for_loop_body = this.block.has_update_method\n\t\t\t\t? b`\n\t\t\t\t\tif (${iterations}[#i]) {\n\t\t\t\t\t\t${iterations}[#i].p(child_ctx, #dirty);\n\t\t\t\t\t\t${has_transitions && b`@transition_in(${this.vars.iterations}[#i], 1);`}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t${iterations}[#i] = ${create_each_block}(child_ctx);\n\t\t\t\t\t\t${iterations}[#i].c();\n\t\t\t\t\t\t${has_transitions && b`@transition_in(${this.vars.iterations}[#i], 1);`}\n\t\t\t\t\t\t${iterations}[#i].m(${update_mount_node}, ${update_anchor_node});\n\t\t\t\t\t}\n\t\t\t\t`\n\t\t\t\t: has_transitions\n\t\t\t\t\t? b`\n\t\t\t\t\t\tif (${iterations}[#i]) {\n\t\t\t\t\t\t\t@transition_in(${this.vars.iterations}[#i], 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t${iterations}[#i] = ${create_each_block}(child_ctx);\n\t\t\t\t\t\t\t${iterations}[#i].c();\n\t\t\t\t\t\t\t@transition_in(${this.vars.iterations}[#i], 1);\n\t\t\t\t\t\t\t${iterations}[#i].m(${update_mount_node}, ${update_anchor_node});\n\t\t\t\t\t\t}\n\t\t\t\t\t`\n\t\t\t\t\t: b`\n\t\t\t\t\t\tif (!${iterations}[#i]) {\n\t\t\t\t\t\t\t${iterations}[#i] = ${create_each_block}(child_ctx);\n\t\t\t\t\t\t\t${iterations}[#i].c();\n\t\t\t\t\t\t\t${iterations}[#i].m(${update_mount_node}, ${update_anchor_node});\n\t\t\t\t\t\t}\n\t\t\t\t\t`;\n\n\t\t\tconst start = this.block.has_update_method ? 0 : '#old_length';\n\n\t\t\tlet remove_old_blocks: Node[];\n\n\t\t\tif (this.block.has_outros) {\n\t\t\t\tconst out = block.get_unique_name('out');\n\n\t\t\t\tblock.chunks.init.push(b`\n\t\t\t\t\tconst ${out} = i => @transition_out(${iterations}[i], 1, 1, () => {\n\t\t\t\t\t\t${iterations}[i] = null;\n\t\t\t\t\t});\n\t\t\t\t`);\n\t\t\t\tremove_old_blocks = b`\n\t\t\t\t\t@group_outros();\n\t\t\t\t\tfor (#i = ${data_length}; #i < ${view_length}; #i += 1) {\n\t\t\t\t\t\t${out}(#i);\n\t\t\t\t\t}\n\t\t\t\t\t@check_outros();\n\t\t\t\t`;\n\t\t\t} else {\n\t\t\t\tremove_old_blocks = b`\n\t\t\t\t\tfor (${this.block.has_update_method ? null : x`#i = ${data_length}`}; #i < ${this.block.has_update_method ? view_length : '#old_length'}; #i += 1) {\n\t\t\t\t\t\t${iterations}[#i].d(1);\n\t\t\t\t\t}\n\t\t\t\t\t${!fixed_length && b`${view_length} = ${data_length};`}\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\t// We declare `i` as block scoped here, as the `remove_old_blocks` code\n\t\t\t// may rely on continuing where this iteration stopped.\n\t\t\tconst update = b`\n\t\t\t\t${!this.block.has_update_method && b`const #old_length = ${this.vars.each_block_value}.length;`}\n\t\t\t\t${this.vars.each_block_value} = ${snippet};\n\t\t\t\t${this.renderer.options.dev && b`@validate_each_argument(${this.vars.each_block_value});`}\n\n\t\t\t\tlet #i;\n\t\t\t\tfor (#i = ${start}; #i < ${data_length}; #i += 1) {\n\t\t\t\t\tconst child_ctx = ${this.vars.get_each_context}(#ctx, ${this.vars.each_block_value}, #i);\n\n\t\t\t\t\t${for_loop_body}\n\t\t\t\t}\n\n\t\t\t\t${remove_old_blocks}\n\t\t\t`;\n\n\t\t\tthis.updates.push(update);\n\t\t}\n\n\t\tif (this.block.has_outros) {\n\t\t\tblock.chunks.outro.push(b`\n\t\t\t\t${iterations} = ${iterations}.filter(@_Boolean);\n\t\t\t\tfor (let #i = 0; #i < ${view_length}; #i += 1) {\n\t\t\t\t\t@transition_out(${iterations}[#i]);\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tblock.chunks.destroy.push(b`@destroy_each(${iterations}, detaching);`);\n\t}\n}\n","import Renderer from '../Renderer';\nimport Block from '../Block';\nimport Text from '../../nodes/Text';\nimport Wrapper from './shared/Wrapper';\nimport { x } from 'code-red';\nimport { Identifier } from 'estree';\n\nconst regex_non_whitespace_characters = /[\\S\\u00A0]/;\n\nexport default class TextWrapper extends Wrapper {\n\tnode: Text;\n\tdata: string;\n\tskip: boolean;\n\tvar: Identifier;\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: Text,\n\t\tdata: string\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tthis.skip = this.node.should_skip();\n\t\tthis.data = data;\n\t\tthis.var = (this.skip ? null : x`t`) as unknown as Identifier;\n\t}\n\n\tuse_space() {\n\t\tif (this.renderer.component.component_options.preserveWhitespace) return false;\n\t\tif (regex_non_whitespace_characters.test(this.data)) return false;\n\n\t\treturn !this.node.within_pre();\n\t}\n\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tif (this.skip) return;\n\t\tconst use_space = this.use_space();\n\n\t\tconst string_literal = {\n\t\t\ttype: 'Literal',\n\t\t\tvalue: this.data,\n\t\t\tloc: {\n\t\t\t\tstart: this.renderer.locate(this.node.start),\n\t\t\t\tend: this.renderer.locate(this.node.end)\n\t\t\t}\n\t\t};\n\n\t\tblock.add_element(\n\t\t\tthis.var,\n\t\t\tuse_space ? x`@space()` : x`@text(${string_literal})`,\n\t\t\tparent_nodes && (use_space ? x`@claim_space(${parent_nodes})` : x`@claim_text(${parent_nodes}, ${string_literal})`),\n\t\t\tparent_node as Identifier\n\t\t);\n\t}\n}\n","const svg_attributes = 'accent-height accumulate additive alignment-baseline allowReorder alphabetic amplitude arabic-form ascent attributeName attributeType autoReverse azimuth baseFrequency baseline-shift baseProfile bbox begin bias by calcMode cap-height class clip clipPathUnits clip-path clip-rule color color-interpolation color-interpolation-filters color-profile color-rendering contentScriptType contentStyleType cursor cx cy d decelerate descent diffuseConstant direction display divisor dominant-baseline dur dx dy edgeMode elevation enable-background end exponent externalResourcesRequired fill fill-opacity fill-rule filter filterRes filterUnits flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight format from fr fx fy g1 g2 glyph-name glyph-orientation-horizontal glyph-orientation-vertical glyphRef gradientTransform gradientUnits hanging height href horiz-adv-x horiz-origin-x id ideographic image-rendering in in2 intercept k k1 k2 k3 k4 kernelMatrix kernelUnitLength kerning keyPoints keySplines keyTimes lang lengthAdjust letter-spacing lighting-color limitingConeAngle local marker-end marker-mid marker-start markerHeight markerUnits markerWidth mask maskContentUnits maskUnits mathematical max media method min mode name numOctaves offset onabort onactivate onbegin onclick onend onerror onfocusin onfocusout onload onmousedown onmousemove onmouseout onmouseover onmouseup onrepeat onresize onscroll onunload opacity operator order orient orientation origin overflow overline-position overline-thickness panose-1 paint-order pathLength patternContentUnits patternTransform patternUnits pointer-events points pointsAtX pointsAtY pointsAtZ preserveAlpha preserveAspectRatio primitiveUnits r radius refX refY rendering-intent repeatCount repeatDur requiredExtensions requiredFeatures restart result rotate rx ry scale seed shape-rendering slope spacing specularConstant specularExponent speed spreadMethod startOffset stdDeviation stemh stemv stitchTiles stop-color stop-opacity strikethrough-position strikethrough-thickness string stroke stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width style surfaceScale systemLanguage tabindex tableValues target targetX targetY text-anchor text-decoration text-rendering textLength to transform type u1 u2 underline-position underline-thickness unicode unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical values version vert-adv-y vert-origin-x vert-origin-y viewBox viewTarget visibility width widths word-spacing writing-mode x x-height x1 x2 xChannelSelector xlink:actuate xlink:arcrole xlink:href xlink:role xlink:show xlink:title xlink:type xml:base xml:lang xml:space y y1 y2 yChannelSelector z zoomAndPan'.split(' ');\n\nconst svg_attribute_lookup = new Map();\n\nsvg_attributes.forEach(name => {\n\tsvg_attribute_lookup.set(name.toLowerCase(), name);\n});\n\nexport default function fix_attribute_casing(name: string) {\n\tname = name.toLowerCase();\n\treturn svg_attribute_lookup.get(name) || name;\n}\n","import AttributeWrapper from './Attribute';\nimport BindingWrapper from './Binding';\nimport ElementWrapper from './index';\n\nexport default function handle_select_value_binding(\n\tattr: AttributeWrapper | BindingWrapper,\n\tdependencies: Set<string>\n) {\n\tconst { parent } = attr;\n\tif (parent.node.name === 'select') {\n\t\t(parent as ElementWrapper).select_binding_dependencies = dependencies;\n\t\tdependencies.forEach((prop: string) => {\n\t\t\tparent.renderer.component.indirect_dependencies.set(prop, new Set());\n\t\t});\n\t}\n}\n","const _boolean_attributes = [\n\t'allowfullscreen',\n\t'allowpaymentrequest',\n\t'async',\n\t'autofocus',\n\t'autoplay',\n\t'checked',\n\t'controls',\n\t'default',\n\t'defer',\n\t'disabled',\n\t'formnovalidate',\n\t'hidden',\n\t'inert',\n\t'ismap',\n\t'itemscope',\n\t'loop',\n\t'multiple',\n\t'muted',\n\t'nomodule',\n\t'novalidate',\n\t'open',\n\t'playsinline',\n\t'readonly',\n\t'required',\n\t'reversed',\n\t'selected'\n] as const;\n\nexport type BooleanAttributes = typeof _boolean_attributes[number];\n\n/**\n * List of HTML boolean attributes (e.g. `<input disabled>`).\n * Source: https://html.spec.whatwg.org/multipage/indices.html\n */\nexport const boolean_attributes: Set<string> = new Set([..._boolean_attributes]);\n","import Attribute from '../../../nodes/Attribute';\nimport Block from '../../Block';\nimport fix_attribute_casing from './fix_attribute_casing';\nimport ElementWrapper from './index';\nimport { string_literal } from '../../../utils/stringify';\nimport { b, x } from 'code-red';\nimport Expression from '../../../nodes/shared/Expression';\nimport Text from '../../../nodes/Text';\nimport handle_select_value_binding from './handle_select_value_binding';\nimport { Identifier, Node } from 'estree';\nimport { namespaces } from '../../../../utils/namespaces';\nimport { BooleanAttributes, boolean_attributes } from '../../../../../shared/boolean_attributes';\nimport { regex_double_quotes } from '../../../../utils/patterns';\n\nconst non_textlike_input_types = new Set([\n\t'button',\n\t'checkbox',\n\t'color',\n\t'date',\n\t'datetime-local',\n\t'file',\n\t'hidden',\n\t'image',\n\t'radio',\n\t'range',\n\t'reset',\n\t'submit'\n]);\n\nexport class BaseAttributeWrapper {\n\tnode: Attribute;\n\tparent: ElementWrapper;\n\n\tconstructor(parent: ElementWrapper, block: Block, node: Attribute) {\n\t\tthis.node = node;\n\t\tthis.parent = parent;\n\n\t\tif (node.dependencies.size > 0) {\n\t\t\tparent.cannot_use_innerhtml();\n\t\t\tparent.not_static_content();\n\n\t\t\tblock.add_dependencies(node.dependencies);\n\t\t}\n\t}\n\n\trender(_block: Block) { }\n}\n\nconst regex_minus_sign = /-/;\nconst regex_invalid_variable_identifier_characters = /[^a-zA-Z_$]/g;\n\nexport default class AttributeWrapper extends BaseAttributeWrapper {\n\tnode: Attribute;\n\tparent: ElementWrapper;\n\tmetadata: any;\n\tname: string;\n\tproperty_name: string;\n\tis_indirectly_bound_value: boolean;\n\tis_src: boolean;\n\tis_select_value_attribute: boolean;\n\tis_input_value: boolean;\n\tshould_cache: boolean;\n\tlast: Identifier;\n\n\tconstructor(parent: ElementWrapper, block: Block, node: Attribute) {\n\t\tsuper(parent, block, node);\n\n\t\tif (node.dependencies.size > 0) {\n\t\t\t// special case — <option value={foo}> — see below\n\t\t\tif (this.parent.node.name === 'option' && node.name === 'value') {\n\t\t\t\tlet select: ElementWrapper = this.parent;\n\t\t\t\twhile (select && (select.node.type !== 'Element' || select.node.name !== 'select')) {\n\t\t\t\t\t// @ts-ignore todo: doublecheck this, but looks to be correct\n\t\t\t\t\tselect = select.parent;\n\t\t\t\t}\n\n\t\t\t\tif (select && select.select_binding_dependencies) {\n\t\t\t\t\tselect.select_binding_dependencies.forEach(prop => {\n\t\t\t\t\t\tthis.node.dependencies.forEach((dependency: string) => {\n\t\t\t\t\t\t\tthis.parent.renderer.component.indirect_dependencies.get(prop).add(dependency);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.name === 'value') {\n\t\t\t\thandle_select_value_binding(this, node.dependencies);\n\t\t\t\tthis.parent.has_dynamic_value = true;\n\t\t\t}\n\t\t}\n\n\t\tif (this.parent.node.namespace == namespaces.foreign) {\n\t\t\t// leave attribute case alone for elements in the \"foreign\" namespace\n\t\t\tthis.name = this.node.name;\n\t\t\tthis.metadata = this.get_metadata();\n\t\t\tthis.is_indirectly_bound_value = false;\n\t\t\tthis.property_name = null;\n\t\t\tthis.is_select_value_attribute = false;\n\t\t\tthis.is_input_value = false;\n\t\t} else {\n\t\t\tthis.name = fix_attribute_casing(this.node.name);\n\t\t\tthis.metadata = this.get_metadata();\n\t\t\tthis.is_indirectly_bound_value = is_indirectly_bound_value(this);\n\t\t\tthis.property_name = this.is_indirectly_bound_value\n\t\t\t\t? '__value'\n\t\t\t\t: this.metadata && this.metadata.property_name;\n\t\t\tthis.is_select_value_attribute = this.name === 'value' && this.parent.node.name === 'select';\n\t\t\tthis.is_input_value = this.name === 'value' && this.parent.node.name === 'input';\n\t\t}\n\n\t\t// TODO retire this exception in favour of https://github.com/sveltejs/svelte/issues/3750\n\t\tthis.is_src = this.name === 'src' && (!this.parent.node.namespace || this.parent.node.namespace === namespaces.html);\n\t\tthis.should_cache = should_cache(this);\n\t}\n\n\trender(block: Block) {\n\t\tconst element = this.parent;\n\t\tconst { name, property_name, should_cache, is_indirectly_bound_value } = this;\n\n\t\t// xlink is a special case... we could maybe extend this to generic\n\t\t// namespaced attributes but I'm not sure that's applicable in\n\t\t// HTML5?\n\t\tconst method = regex_minus_sign.test(element.node.name)\n\t\t\t? '@set_custom_element_data'\n\t\t\t: name.slice(0, 6) === 'xlink:'\n\t\t\t\t? '@xlink_attr'\n\t\t\t\t: '@attr';\n\n\t\tconst is_legacy_input_type = element.renderer.component.compile_options.legacy && name === 'type' && this.parent.node.name === 'input';\n\n\t\tconst dependencies = this.get_dependencies();\n\t\tconst value = this.get_value(block);\n\n\t\tlet updater: Node[];\n\t\tconst init = this.get_init(block, value);\n\n\t\tif (is_legacy_input_type) {\n\t\t\tblock.chunks.hydrate.push(\n\t\t\t\tb`@set_input_type(${element.var}, ${init});`\n\t\t\t);\n\t\t\tupdater = b`@set_input_type(${element.var}, ${should_cache ? this.last : value});`;\n\t\t} else if (this.is_select_value_attribute) {\n\t\t\t// annoying special case\n\t\t\tconst is_multiple_select = element.node.get_static_attribute_value('multiple');\n\n\t\t\tif (is_multiple_select) {\n\t\t\t\tupdater = b`@select_options(${element.var}, ${value});`;\n\t\t\t} else {\n\t\t\t\tupdater = b`@select_option(${element.var}, ${value});`;\n\t\t\t}\n\n\t\t\tblock.chunks.mount.push(b`\n\t\t\t\t${updater}\n\t\t\t`);\n\t\t} else if (this.is_src) {\n\t\t\tblock.chunks.hydrate.push(\n\t\t\t\tb`if (!@src_url_equal(${element.var}.src, ${init})) ${method}(${element.var}, \"${name}\", ${this.last});`\n\t\t\t);\n\t\t\tupdater = b`${method}(${element.var}, \"${name}\", ${should_cache ? this.last : value});`;\n\t\t} else if (property_name) {\n\t\t\tblock.chunks.hydrate.push(\n\t\t\t\tb`${element.var}.${property_name} = ${init};`\n\t\t\t);\n\t\t\tupdater = block.renderer.options.dev\n\t\t\t\t? b`@prop_dev(${element.var}, \"${property_name}\", ${should_cache ? this.last : value});`\n\t\t\t\t: b`${element.var}.${property_name} = ${should_cache ? this.last : value};`;\n\t\t} else {\n\t\t\tblock.chunks.hydrate.push(\n\t\t\t\tb`${method}(${element.var}, \"${name}\", ${init});`\n\t\t\t);\n\t\t\tupdater = b`${method}(${element.var}, \"${name}\", ${should_cache ? this.last : value});`;\n\t\t}\n\n\t\tif (is_indirectly_bound_value) {\n\t\t\tconst update_value = b`${element.var}.value = ${element.var}.__value;`;\n\t\t\tblock.chunks.hydrate.push(update_value);\n\n\t\t\tupdater = b`\n\t\t\t\t${updater}\n\t\t\t\t${update_value};\n\t\t\t`;\n\t\t}\n\n\t\tif (this.node.name === 'value' && dependencies.length > 0) {\n\t\t\tif (this.parent.bindings.some(binding => binding.node.name === 'group')) {\n\t\t\t\tthis.parent.dynamic_value_condition = block.get_unique_name('value_has_changed');\n\t\t\t\tblock.add_variable(this.parent.dynamic_value_condition, x`false`);\n\t\t\t\tupdater = b`\n\t\t\t\t\t${updater}\n\t\t\t\t\t${this.parent.dynamic_value_condition} = true;\n\t\t\t\t`;\n\t\t\t}\n\t\t}\n\n\t\tif (dependencies.length > 0) {\n\t\t\tconst condition = this.get_dom_update_conditions(block, block.renderer.dirty(dependencies));\n\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${condition}) {\n\t\t\t\t\t${updater}\n\t\t\t\t}`);\n\t\t}\n\n\t\t// special case – autofocus. has to be handled in a bit of a weird way\n\t\tif (name === 'autofocus') {\n\t\t\tblock.autofocus = {\n\t\t\t\telement_var: element.var,\n\t\t\t\tcondition_expression: this.node.is_true ? undefined : value\n\t\t\t};\n\t\t}\n\t}\n\n\tget_init(block: Block, value) {\n\t\tthis.last = this.should_cache && block.get_unique_name(\n\t\t\t`${this.parent.var.name}_${this.name.replace(regex_invalid_variable_identifier_characters, '_')}_value`\n\t\t);\n\n\t\tif (this.should_cache) block.add_variable(this.last);\n\n\t\treturn this.should_cache ? x`${this.last} = ${value}` : value;\n\t}\n\n\tget_dom_update_conditions(block: Block, dependency_condition: Node) {\n\t\tconst { property_name, should_cache, last } = this;\n\t\tconst element = this.parent;\n\t\tconst value = this.get_value(block);\n\n\t\tlet condition = dependency_condition;\n\n\t\tif (should_cache) {\n\t\t\tcondition = this.is_src\n\t\t\t\t? x`${condition} && (!@src_url_equal(${element.var}.src, (${last} = ${value})))`\n\t\t\t\t: x`${condition} && (${last} !== (${last} = ${value}))`;\n\t\t}\n\n\t\tif (this.is_input_value) {\n\t\t\tconst type = element.node.get_static_attribute_value('type');\n\t\t\tif (type !== true && !non_textlike_input_types.has(type)) {\n\t\t\t\tcondition = x`${condition} && ${element.var}.${property_name} !== ${should_cache ? last : value}`;\n\t\t\t}\n\t\t}\n\n\t\tif (block.has_outros) {\n\t\t\tcondition = x`!#current || ${condition}`;\n\t\t}\n\n\t\treturn condition;\n\t}\n\n\tget_dependencies() {\n\t\tconst node_dependencies = this.node.get_dependencies();\n\t\tconst dependencies = new Set(node_dependencies);\n\n\t\tnode_dependencies.forEach((prop: string) => {\n\t\t\tconst indirect_dependencies = this.parent.renderer.component.indirect_dependencies.get(prop);\n\t\t\tif (indirect_dependencies) {\n\t\t\t\tindirect_dependencies.forEach(indirect_dependency => {\n\t\t\t\t\tdependencies.add(indirect_dependency);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn Array.from(dependencies);\n\t}\n\n\tget_metadata() {\n\t\tif (this.parent.node.namespace) return null;\n\t\tconst metadata = attribute_lookup[this.name];\n\t\tif (metadata && metadata.applies_to && !metadata.applies_to.includes(this.parent.node.name)) return null;\n\t\treturn metadata;\n\t}\n\n\tget_value(block: Block) {\n\t\tif (this.node.is_true) {\n\t\t\tif (this.metadata && boolean_attributes.has(this.metadata.property_name.toLowerCase())) {\n\t\t\t\treturn x`true`;\n\t\t\t}\n\t\t\treturn x`\"\"`;\n\t\t}\n\t\tif (this.node.chunks.length === 0) return x`\"\"`;\n\n\t\t// TODO some of this code is repeated in Tag.ts — would be good to\n\t\t// DRY it out if that's possible without introducing crazy indirection\n\t\tif (this.node.chunks.length === 1) {\n\t\t\treturn this.node.chunks[0].type === 'Text'\n\t\t\t\t? string_literal((this.node.chunks[0] as Text).data)\n\t\t\t\t: (this.node.chunks[0] as Expression).manipulate(block);\n\t\t}\n\n\t\tlet value = this.node.name === 'class'\n\t\t\t? this.get_class_name_text(block)\n\t\t\t: this.render_chunks(block).reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\n\n\t\t// '{foo} {bar}' — treat as string concatenation\n\t\tif (this.node.chunks[0].type !== 'Text') {\n\t\t\tvalue = x`\"\" + ${value}`;\n\t\t}\n\n\t\treturn value;\n\t}\n\n\tget_class_name_text(block: Block) {\n\t\tconst scoped_css = this.node.chunks.some((chunk: Text) => chunk.synthetic);\n\t\tconst rendered = this.render_chunks(block);\n\n\t\tif (scoped_css && rendered.length === 2) {\n\t\t\t// we have a situation like class={possiblyUndefined}\n\t\t\trendered[0] = x`@null_to_empty(${rendered[0]})`;\n\t\t}\n\n\t\treturn rendered.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\n\t}\n\n\trender_chunks(block: Block) {\n\t\treturn this.node.chunks.map((chunk) => {\n\t\t\tif (chunk.type === 'Text') {\n\t\t\t\treturn string_literal(chunk.data);\n\t\t\t}\n\n\t\t\treturn chunk.manipulate(block);\n\t\t});\n\t}\n\n\tstringify() {\n\t\tif (this.node.is_true) return '';\n\n\t\tconst value = this.node.chunks;\n\t\tif (value.length === 0) return '=\"\"';\n\n\t\treturn `=\"${value.map(chunk => {\n\t\t\treturn chunk.type === 'Text'\n\t\t\t\t? chunk.data.replace(regex_double_quotes, '\\\\\"')\n\t\t\t\t: `\\${${chunk.manipulate()}}`;\n\t\t}).join('')}\"`;\n\t}\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\ntype AttributeMetadata = { property_name?: string, applies_to?: string[] };\nconst attribute_lookup: { [key in BooleanAttributes]: AttributeMetadata } & { [key in string]: AttributeMetadata } = {\n\tallowfullscreen: { property_name: 'allowFullscreen', applies_to: ['iframe'] },\n\tallowpaymentrequest: { property_name: 'allowPaymentRequest', applies_to: ['iframe'] },\n\tasync: { applies_to: ['script'] },\n\tautofocus: { applies_to: ['button', 'input', 'keygen', 'select', 'textarea'] },\n\tautoplay: { applies_to: ['audio', 'video'] },\n\tchecked: { applies_to: ['input'] },\n\tcontrols: { applies_to: ['audio', 'video'] },\n\tdefault: { applies_to: ['track'] },\n\tdefer: { applies_to: ['script'] },\n\tdisabled: {\n\t\tapplies_to: [\n\t\t\t'button',\n\t\t\t'fieldset',\n\t\t\t'input',\n\t\t\t'keygen',\n\t\t\t'optgroup',\n\t\t\t'option',\n\t\t\t'select',\n\t\t\t'textarea'\n\t\t]\n\t},\n\tformnovalidate: { property_name: 'formNoValidate', applies_to: ['button', 'input'] },\n\thidden: {},\n\tindeterminate: { applies_to: ['input'] },\n\tinert: {},\n\tismap: { property_name: 'isMap', applies_to: ['img'] },\n\titemscope: {},\n\tloop: { applies_to: ['audio', 'bgsound', 'video'] },\n\tmultiple: { applies_to: ['input', 'select'] },\n\tmuted: { applies_to: ['audio', 'video'] },\n\tnomodule: { property_name: 'noModule', applies_to: ['script'] },\n\tnovalidate: { property_name: 'noValidate', applies_to: ['form'] },\n\topen: { applies_to: ['details', 'dialog'] },\n\tplaysinline: { property_name: 'playsInline', applies_to: ['video'] },\n\treadonly: { property_name: 'readOnly', applies_to: ['input', 'textarea'] },\n\trequired: { applies_to: ['input', 'select', 'textarea'] },\n\treversed: { applies_to: ['ol'] },\n\tselected: { applies_to: ['option'] },\n\tvalue: {\n\t\tapplies_to: [\n\t\t\t'button',\n\t\t\t'option',\n\t\t\t'input',\n\t\t\t'li',\n\t\t\t'meter',\n\t\t\t'progress',\n\t\t\t'param',\n\t\t\t'select',\n\t\t\t'textarea'\n\t\t]\n\t}\n};\n\nObject.keys(attribute_lookup).forEach(name => {\n\tconst metadata = attribute_lookup[name];\n\tif (!metadata.property_name) metadata.property_name = name;\n});\n\nfunction should_cache(attribute: AttributeWrapper) {\n\treturn attribute.is_src || attribute.node.should_cache();\n}\n\nconst regex_contains_checked_or_group = /checked|group/;\n\nfunction is_indirectly_bound_value(attribute: AttributeWrapper) {\n\tconst element = attribute.parent;\n\treturn attribute.name === 'value' &&\n\t\t(element.node.name === 'option' || // TODO check it's actually bound\n\t\t\t(element.node.name === 'input' &&\n\t\t\t\telement.node.bindings.some(\n\t\t\t\t\t(binding) => regex_contains_checked_or_group.test(binding.name)\n\t\t\t\t)));\n}\n","import { b, x } from 'code-red';\nimport Attribute from '../../../nodes/Attribute';\nimport Block from '../../Block';\nimport AttributeWrapper from './Attribute';\nimport ElementWrapper from '../Element';\nimport { string_literal } from '../../../utils/stringify';\nimport add_to_set from '../../../utils/add_to_set';\nimport Expression from '../../../nodes/shared/Expression';\nimport Text from '../../../nodes/Text';\n\nexport interface StyleProp {\n\tkey: string;\n\tvalue: Array<Text | Expression>;\n\timportant: boolean;\n}\n\nexport default class StyleAttributeWrapper extends AttributeWrapper {\n\tnode: Attribute;\n\tparent: ElementWrapper;\n\n\trender(block: Block) {\n\t\tconst style_props = optimize_style(this.node.chunks);\n\t\tif (!style_props) return super.render(block);\n\n\t\tstyle_props.forEach((prop: StyleProp) => {\n\t\t\tlet value;\n\n\t\t\tif (is_dynamic(prop.value)) {\n\t\t\t\tconst prop_dependencies: Set<string> = new Set();\n\n\t\t\t\tvalue = prop.value\n\t\t\t\t\t.map(chunk => {\n\t\t\t\t\t\tif (chunk.type === 'Text') {\n\t\t\t\t\t\t\treturn string_literal(chunk.data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tadd_to_set(prop_dependencies, chunk.dynamic_dependencies());\n\t\t\t\t\t\t\treturn chunk.manipulate(block);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\n\n\t\t\t\t// TODO is this necessary? style.setProperty always treats value as string, no?\n\t\t\t\t// if (prop.value.length === 1 || prop.value[0].type !== 'Text') {\n\t\t\t\t// \tvalue = x`\"\" + ${value}`;\n\t\t\t\t// }\n\n\t\t\t\tif (prop_dependencies.size) {\n\t\t\t\t\tlet condition = block.renderer.dirty(Array.from(prop_dependencies));\n\n\t\t\t\t\tif (block.has_outros) {\n\t\t\t\t\t\tcondition = x`!#current || ${condition}`;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst update = b`\n\t\t\t\t\t\tif (${condition}) {\n\t\t\t\t\t\t\t@set_style(${this.parent.var}, \"${prop.key}\", ${value}, ${prop.important ? 1 : null});\n\t\t\t\t\t\t}`;\n\n\t\t\t\t\tblock.chunks.update.push(update);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalue = string_literal((prop.value[0] as Text).data);\n\t\t\t}\n\n\t\t\tblock.chunks.hydrate.push(\n\t\t\t\tb`@set_style(${this.parent.var}, \"${prop.key}\", ${value}, ${prop.important ? 1 : null});`\n\t\t\t);\n\t\t});\n\t}\n}\n\nconst regex_style_prop_key = /^\\s*([\\w-]+):\\s*/;\n\nfunction optimize_style(value: Array<Text | Expression>) {\n\tconst props: StyleProp[] = [];\n\tlet chunks = value.slice();\n\n\twhile (chunks.length) {\n\t\tconst chunk = chunks[0];\n\n\t\tif (chunk.type !== 'Text') return null;\n\n\t\tconst key_match = regex_style_prop_key.exec(chunk.data);\n\t\tif (!key_match) return null;\n\n\t\tconst key = key_match[1];\n\n\t\tconst offset = key_match.index + key_match[0].length;\n\t\tconst remaining_data = chunk.data.slice(offset);\n\n\t\tif (remaining_data) {\n\t\t\tchunks[0] = {\n\t\t\t\tstart: chunk.start + offset,\n\t\t\t\tend: chunk.end,\n\t\t\t\ttype: 'Text',\n\t\t\t\tdata: remaining_data\n\t\t\t} as Text;\n\t\t} else {\n\t\t\tchunks.shift();\n\t\t}\n\n\t\tconst result = get_style_value(chunks);\n\n\t\tprops.push({ key, value: result.value, important: result.important });\n\t\tchunks = result.chunks;\n\t}\n\n\treturn props;\n}\n\nconst regex_important_flag = /\\s*!important\\s*$/;\nconst regex_semicolon_or_whitespace = /[;\\s]/;\n\nfunction get_style_value(chunks: Array<Text | Expression>) {\n\tconst value: Array<Text | Expression> = [];\n\n\tlet in_url = false;\n\tlet quote_mark = null;\n\tlet escaped = false;\n\tlet closed = false;\n\n\twhile (chunks.length && !closed) {\n\t\tconst chunk = chunks.shift();\n\n\t\tif (chunk.type === 'Text') {\n\t\t\tlet c = 0;\n\t\t\twhile (c < chunk.data.length) {\n\t\t\t\tconst char = chunk.data[c];\n\n\t\t\t\tif (escaped) {\n\t\t\t\t\tescaped = false;\n\t\t\t\t} else if (char === '\\\\') {\n\t\t\t\t\tescaped = true;\n\t\t\t\t} else if (char === quote_mark) {\n\t\t\t\t\tquote_mark = null;\n\t\t\t\t} else if (char === '\"' || char === \"'\") {\n\t\t\t\t\tquote_mark = char;\n\t\t\t\t} else if (char === ')' && in_url) {\n\t\t\t\t\tin_url = false;\n\t\t\t\t} else if (char === 'u' && chunk.data.slice(c, c + 4) === 'url(') {\n\t\t\t\t\tin_url = true;\n\t\t\t\t} else if (char === ';' && !in_url && !quote_mark) {\n\t\t\t\t\tclosed = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tc += 1;\n\t\t\t}\n\n\t\t\tif (c > 0) {\n\t\t\t\tvalue.push({\n\t\t\t\t\ttype: 'Text',\n\t\t\t\t\tstart: chunk.start,\n\t\t\t\t\tend: chunk.start + c,\n\t\t\t\t\tdata: chunk.data.slice(0, c)\n\t\t\t\t} as Text);\n\t\t\t}\n\n\t\t\twhile (regex_semicolon_or_whitespace.test(chunk.data[c])) c += 1;\n\t\t\tconst remaining_data = chunk.data.slice(c);\n\n\t\t\tif (remaining_data) {\n\t\t\t\tchunks.unshift({\n\t\t\t\t\tstart: chunk.start + c,\n\t\t\t\t\tend: chunk.end,\n\t\t\t\t\ttype: 'Text',\n\t\t\t\t\tdata: remaining_data\n\t\t\t\t} as Text);\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} else {\n\t\t\tvalue.push(chunk);\n\t\t}\n\t}\n\n\tlet important = false;\n\n\tconst last_chunk = value[value.length - 1];\n\tif (last_chunk && last_chunk.type === 'Text' && regex_important_flag.test(last_chunk.data)) {\n\t\timportant = true;\n\t\tlast_chunk.data = last_chunk.data.replace(regex_important_flag, '');\n\t\tif (!last_chunk.data) value.pop();\n\t}\n\n\treturn {\n\t\tchunks,\n\t\tvalue,\n\t\timportant\n\t};\n}\n\nfunction is_dynamic(value: Array<Text | Expression>) {\n\treturn value.length > 1 || value[0].type !== 'Text';\n}\n","import { BaseAttributeWrapper } from './Attribute';\n\nexport default class SpreadAttributeWrapper extends BaseAttributeWrapper {}\n","import EachBlock from '../../../nodes/EachBlock';\nimport InlineComponentWrapper from '../InlineComponent';\nimport ElementWrapper from '../Element';\nimport Binding from '../../../nodes/Binding';\n\nexport default function mark_each_block_bindings(\n\tparent: ElementWrapper | InlineComponentWrapper,\n\tbinding: Binding\n) {\n\t// we need to ensure that the each block creates a context including\n\t// the list and the index, if they're not otherwise referenced\n\tbinding.expression.references.forEach(name => {\n\t\tconst each_block = parent.node.scope.get_owner(name);\n\t\tif (each_block) {\n\t\t\t(each_block as EachBlock).has_binding = true;\n\t\t}\n\t});\n\n\tif (binding.name === 'group') {\n\t\tconst add_index_binding = (name: string) => {\n\t\t\tconst each_block = parent.node.scope.get_owner(name);\n\t\t\tif (each_block.type === 'EachBlock') {\n\t\t\t\teach_block.has_index_binding = true;\n\t\t\t\tfor (const dep of each_block.expression.contextual_dependencies) {\n\t\t\t\t\tadd_index_binding(dep);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\t// for `<input bind:group={} >`, we make sure that all the each blocks creates context with `index`\n\t\tfor (const name of binding.expression.contextual_dependencies) {\n\t\t\tadd_index_binding(name);\n\t\t}\n\t}\n}\n","import { b, x } from 'code-red';\nimport Binding from '../../../nodes/Binding';\nimport ElementWrapper from '../Element';\nimport InlineComponentWrapper from '../InlineComponent';\nimport get_object from '../../../utils/get_object';\nimport replace_object from '../../../utils/replace_object';\nimport Block from '../../Block';\nimport Renderer, { BindingGroup } from '../../Renderer';\nimport flatten_reference from '../../../utils/flatten_reference';\nimport { Node, Identifier } from 'estree';\nimport add_to_set from '../../../utils/add_to_set';\nimport mark_each_block_bindings from '../shared/mark_each_block_bindings';\nimport handle_select_value_binding from './handle_select_value_binding';\n\nexport default class BindingWrapper {\n\tnode: Binding;\n\tparent: ElementWrapper | InlineComponentWrapper;\n\n\tobject: string;\n\thandler: {\n\t\tuses_context: boolean;\n\t\tmutation: (Node | Node[]);\n\t\tcontextual_dependencies: Set<string>;\n\t\tlhs?: Node;\n\t};\n\tsnippet: Node;\n\tis_readonly: boolean;\n\tneeds_lock: boolean;\n\tbinding_group: BindingGroup;\n\n\tconstructor(block: Block, node: Binding, parent: ElementWrapper | InlineComponentWrapper) {\n\t\tthis.node = node;\n\t\tthis.parent = parent;\n\n\t\tconst { dependencies } = this.node.expression;\n\n\t\tblock.add_dependencies(dependencies);\n\n\t\t// TODO does this also apply to e.g. `<input type='checkbox' bind:group='foo'>`?\n\n\t\thandle_select_value_binding(this, dependencies);\n\n\t\tif (node.is_contextual) {\n\t\t\tmark_each_block_bindings(this.parent, this.node);\n\t\t}\n\n\t\tthis.object = get_object(this.node.expression.node).name;\n\n\t\tif (this.node.name === 'group') {\n\t\t\tthis.binding_group = get_binding_group(parent.renderer, this, block);\n\t\t}\n\n\t\t// view to model\n\t\tthis.handler = get_event_handler(this, parent.renderer, block, this.object, this.node.raw_expression);\n\n\t\tthis.snippet = this.node.expression.manipulate(block);\n\n\t\tthis.is_readonly = this.node.is_readonly;\n\n\t\tthis.needs_lock = this.node.name === 'currentTime'; // TODO others?\n\t}\n\n\tget_dependencies() {\n\t\tconst dependencies = new Set(this.node.expression.dependencies);\n\n\t\tthis.node.expression.dependencies.forEach((prop: string) => {\n\t\t\tconst indirect_dependencies = this.parent.renderer.component.indirect_dependencies.get(prop);\n\t\t\tif (indirect_dependencies) {\n\t\t\t\tindirect_dependencies.forEach(indirect_dependency => {\n\t\t\t\t\tdependencies.add(indirect_dependency);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tif (this.binding_group) {\n\t\t\tthis.binding_group.list_dependencies.forEach(dep => dependencies.add(dep));\n\t\t}\n\n\t\treturn dependencies;\n\t}\n\n\tget_update_dependencies() {\n\t\tconst object = this.object;\n\t\tconst dependencies = new Set<string>();\n\t\tif (this.node.expression.template_scope.names.has(object)) {\n\t\t\tthis.node.expression.template_scope.dependencies_for_name\n\t\t\t\t.get(object)\n\t\t\t\t.forEach((name) => dependencies.add(name));\n\t\t} else {\n\t\t\tdependencies.add(object);\n\t\t}\n\n\t\tconst result = new Set(dependencies);\n\t\tdependencies.forEach((dependency) => {\n\t\t\tconst indirect_dependencies = this.parent.renderer.component.indirect_dependencies.get(dependency);\n\t\t\tif (indirect_dependencies) {\n\t\t\t\tindirect_dependencies.forEach(indirect_dependency => {\n\t\t\t\t\tresult.add(indirect_dependency);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tis_readonly_media_attribute() {\n\t\treturn this.node.is_readonly_media_attribute();\n\t}\n\n\trender(block: Block, lock: Identifier) {\n\t\tif (this.is_readonly) return;\n\n\t\tconst { parent } = this;\n\n\t\tconst update_conditions: any[] = this.needs_lock ? [x`!${lock}`] : [];\n\t\tconst mount_conditions: any[] = [];\n\t\tlet update_or_condition: any = null;\n\n\t\tconst dependency_array = Array.from(this.get_dependencies());\n\n\t\tif (dependency_array.length > 0) {\n\t\t\tupdate_conditions.push(block.renderer.dirty(dependency_array));\n\t\t}\n\n\t\tif (parent.node.name === 'input') {\n\t\t\tconst type = parent.node.get_static_attribute_value('type');\n\n\t\t\tif (\n\t\t\t\ttype === null ||\n\t\t\t\ttype === '' ||\n\t\t\t\ttype === 'text' ||\n\t\t\t\ttype === 'email' ||\n\t\t\t\ttype === 'password' ||\n\t\t\t\ttype === 'search' ||\n\t\t\t\ttype === 'url'\n\t\t\t) {\n\t\t\t\tupdate_conditions.push(\n\t\t\t\t\tx`${parent.var}.${this.node.name} !== ${this.snippet}`\n\t\t\t\t);\n\t\t\t} else if (type === 'number') {\n\t\t\t\tupdate_conditions.push(\n\t\t\t\t\tx`@to_number(${parent.var}.${this.node.name}) !== ${this.snippet}`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// model to view\n\t\tlet update_dom = get_dom_updater(parent, this);\n\t\tlet mount_dom = update_dom;\n\n\t\t// special cases\n\t\tswitch (this.node.name) {\n\t\t\tcase 'group':\n\t\t\t{\n\t\t\t\tblock.renderer.add_to_context('$$binding_groups');\n\t\t\t\tthis.binding_group.elements.push(this.parent.var);\n\n\t\t\t\tif ((this.parent as ElementWrapper).has_dynamic_value) {\t\n\t\t\t\t\tupdate_or_condition = (this.parent as ElementWrapper).dynamic_value_condition;\t\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'textContent':\n\t\t\t\tupdate_conditions.push(x`${this.snippet} !== ${parent.var}.textContent`);\n\t\t\t\tmount_conditions.push(x`${this.snippet} !== void 0`);\n\t\t\t\tbreak;\n\n\t\t\tcase 'innerHTML':\n\t\t\t\tupdate_conditions.push(x`${this.snippet} !== ${parent.var}.innerHTML`);\n\t\t\t\tmount_conditions.push(x`${this.snippet} !== void 0`);\n\t\t\t\tbreak;\n\n\t\t\tcase 'currentTime':\n\t\t\t\tupdate_conditions.push(x`!@_isNaN(${this.snippet})`);\n\t\t\t\tmount_dom = null;\n\t\t\t\tbreak;\n\n\t\t\tcase 'playbackRate':\n\t\t\tcase 'volume':\n\t\t\t\tupdate_conditions.push(x`!@_isNaN(${this.snippet})`);\n\t\t\t\tmount_conditions.push(x`!@_isNaN(${this.snippet})`);\n\t\t\t\tbreak;\n\n\t\t\tcase 'paused':\n\t\t\t{\n\t\t\t\t// this is necessary to prevent audio restarting by itself\n\t\t\t\tconst last = block.get_unique_name(`${parent.var.name}_is_paused`);\n\t\t\t\tblock.add_variable(last, x`true`);\n\n\t\t\t\tupdate_conditions.push(x`${last} !== (${last} = ${this.snippet})`);\n\t\t\t\tupdate_dom = b`${parent.var}[${last} ? \"pause\" : \"play\"]();`;\n\t\t\t\tmount_dom = null;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase 'value':\n\t\t\t\tif (parent.node.get_static_attribute_value('type') === 'file') {\n\t\t\t\t\tupdate_dom = null;\n\t\t\t\t\tmount_dom = null;\n\t\t\t\t}\n\t\t}\n\n\t\tif (update_dom) {\n\t\t\tif (update_conditions.length > 0) {\n\t\t\t\tlet condition = update_conditions.reduce((lhs, rhs) => x`${lhs} && ${rhs}`);\n\t\t\t\tif (update_or_condition) condition = x`${update_or_condition} || (${condition})`;\n\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${condition}) {\n\t\t\t\t\t\t${update_dom}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.update.push(update_dom);\n\t\t\t}\n\t\t}\n\n\t\tif (mount_dom) {\n\t\t\tif (mount_conditions.length > 0) {\n\t\t\t\tconst condition = mount_conditions.reduce((lhs, rhs) => x`${lhs} && ${rhs}`);\n\n\t\t\t\tblock.chunks.mount.push(b`\n\t\t\t\t\tif (${condition}) {\n\t\t\t\t\t\t${mount_dom}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.mount.push(mount_dom);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction get_dom_updater(\n\telement: ElementWrapper | InlineComponentWrapper,\n\tbinding: BindingWrapper\n) {\n\tconst { node } = element;\n\n\tif (binding.is_readonly_media_attribute()) {\n\t\treturn null;\n\t}\n\n\tif (binding.node.name === 'this') {\n\t\treturn null;\n\t}\n\n\tif (node.name === 'select') {\n\t\treturn node.get_static_attribute_value('multiple') === true ?\n\t\t\tb`@select_options(${element.var}, ${binding.snippet})` :\n\t\t\tb`@select_option(${element.var}, ${binding.snippet})`;\n\t}\n\n\tif (binding.node.name === 'group') {\n\t\tconst type = node.get_static_attribute_value('type');\n\n\t\tconst condition = type === 'checkbox'\n\t\t\t? x`~(${binding.snippet} || []).indexOf(${element.var}.__value)`\n\t\t\t: x`${element.var}.__value === ${binding.snippet}`;\n\n\t\treturn b`${element.var}.checked = ${condition};`;\n\t}\n\n\tif (binding.node.name === 'value') {\n\t\treturn b`@set_input_value(${element.var}, ${binding.snippet});`;\n\t}\n\n\treturn b`${element.var}.${binding.node.name} = ${binding.snippet};`;\n}\n\nfunction get_binding_group(renderer: Renderer, binding: BindingWrapper, block: Block) {\n\tconst value = binding.node;\n\tconst { parts } = flatten_reference(value.raw_expression);\n\tlet keypath = parts.join('.');\n\n\tconst contexts = [];\n\tconst contextual_dependencies = new Set<string>();\n\tconst { template_scope } = value.expression;\n\tconst add_contextual_dependency = (dep: string) => {\n\t\tcontextual_dependencies.add(dep);\n\t\tconst owner = template_scope.get_owner(dep);\n\t\tif (owner.type === 'EachBlock') {\n\t\t\tfor (const dep of owner.expression.contextual_dependencies) {\n\t\t\t\tadd_contextual_dependency(dep);\n\t\t\t}\n\t\t}\n\t};\n\tfor (const dep of value.expression.contextual_dependencies) {\n\t\tadd_contextual_dependency(dep);\n\t}\n\n\tfor (const dep of contextual_dependencies) {\n\t\tconst context = block.bindings.get(dep);\n\t\tlet key: string;\n\t\tlet name: string;\n\t\tif (context) {\n\t\t\tkey = context.object.name;\n\t\t\tname = context.property.name;\n\t\t} else {\n\t\t\tkey = dep;\n\t\t\tname = dep;\n\t\t}\n\t\tkeypath = `${key}@${keypath}`;\n\t\tcontexts.push(name);\n\t}\n\n\t// create a global binding_group across blocks\n\tif (!renderer.binding_groups.has(keypath)) {\n\t\tconst index = renderer.binding_groups.size;\n\t\t// the bind:group depends on the list in the {#each} block as well\n\t\t// as reordering (removing and adding back to the DOM) may affect the value\n\t\tconst list_dependencies = new Set<string>();\n\t\tlet parent = value.parent;\n\t\twhile (parent) {\n\t\t\tif (parent.type === 'EachBlock') {\n\t\t\t\tfor (const dep of parent.expression.dynamic_dependencies()) {\n\t\t\t\t\tlist_dependencies.add(dep);\n\t\t\t\t}\n\t\t\t}\n\t\t\tparent = parent.parent;\n\t\t}\n\n\t\tconst elements = [];\n\n\t\tcontexts.forEach(context => {\n\t\t\trenderer.add_to_context(context, true);\n\t\t});\n\n\t\trenderer.binding_groups.set(keypath, {\n\t\t\tbinding_group: () => {\n\t\t\t\tlet obj = x`$$binding_groups[${index}]`;\n\n\t\t\t\tif (contexts.length > 0) {\n\t\t\t\t\tcontexts.forEach(secondary_index => {\n\t\t\t\t\t\tobj = x`${obj}[${secondary_index}]`;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn obj;\n\t\t\t},\n\t\t\tcontexts,\n\t\t\tlist_dependencies,\n\t\t\tkeypath,\n\t\t\telements,\n\t\t\trender() {\n\t\t\t\tconst local_name = block.get_unique_name('binding_group');\n\t\t\t\tconst binding_group = block.renderer.reference('$$binding_groups');\n\t\t\t\tblock.add_variable(local_name);\n\t\t\t\tif (contexts.length > 0) {\n\t\t\t\t\tconst indexes = { type: 'ArrayExpression', elements: contexts.map(name => block.renderer.reference(name)) };\n\t\t\t\t\tblock.chunks.init.push(\n\t\t\t\t\t\tb`${local_name} = @init_binding_group_dynamic(${binding_group}[${index}], ${indexes})`\n\t\t\t\t\t);\n\t\t\t\t\tblock.chunks.update.push(\n\t\t\t\t\t\tb`if (${block.renderer.dirty(Array.from(list_dependencies))}) ${local_name}.u(${indexes})`\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tblock.chunks.init.push(\n\t\t\t\t\t\tb`${local_name} = @init_binding_group(${binding_group}[${index}])`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tblock.chunks.hydrate.push(\n\t\t\t\t\tb`${local_name}.p(${elements})`\n\t\t\t\t);\n\t\t\t\tblock.chunks.destroy.push(\n\t\t\t\t\tb`${local_name}.r()`\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\t// register the binding_group for the block\n\tconst binding_group = renderer.binding_groups.get(keypath);\n\tblock.binding_groups.add(binding_group);\n\n\treturn binding_group;\n}\n\nfunction get_event_handler(\n\tbinding: BindingWrapper,\n\trenderer: Renderer,\n\tblock: Block,\n\tname: string,\n\tlhs: Node\n): {\n\tuses_context: boolean;\n\tmutation: (Node | Node[]);\n\tcontextual_dependencies: Set<string>;\n\tlhs?: Node;\n} {\n\tconst contextual_dependencies = new Set<string>(binding.node.expression.contextual_dependencies);\n\n\tconst context = block.bindings.get(name);\n\tlet set_store: Node[] | undefined;\n\n\tif (context) {\n\t\tconst { object, property, store, snippet } = context;\n\t\tlhs = replace_object(lhs, snippet);\n\t\tcontextual_dependencies.add(object.name);\n\t\tcontextual_dependencies.add(property.name);\n\t\tcontextual_dependencies.delete(name);\n\n\t\tif (store) {\n\t\t\tset_store = b`${store}.set(${`$${store}`});`;\n\t\t}\n\t} else {\n\t\tconst object = get_object(lhs);\n\t\tif (object.name[0] === '$') {\n\t\t\tconst store = object.name.slice(1);\n\t\t\tset_store = b`${store}.set(${object.name});`;\n\t\t}\n\t}\n\n\tconst value = get_value_from_dom(renderer, binding.parent, binding, contextual_dependencies);\n\n\tconst mutation = b`\n\t\t${lhs} = ${value};\n\t\t${set_store}\n\t`;\n\n\treturn {\n\t\tuses_context: binding.node.is_contextual || binding.node.expression.uses_context, // TODO this is messy\n\t\tmutation,\n\t\tcontextual_dependencies,\n\t\tlhs\n\t};\n}\n\nfunction get_value_from_dom(\n\t_renderer: Renderer,\n\telement: ElementWrapper | InlineComponentWrapper,\n\tbinding: BindingWrapper,\n\tcontextual_dependencies: Set<string>\n) {\n\tconst { node } = element;\n\tconst { name } = binding.node;\n\n\tif (name === 'this') {\n\t\treturn x`$$value`;\n\t}\n\n\t// <select bind:value='selected>\n\tif (node.name === 'select') {\n\t\treturn node.get_static_attribute_value('multiple') === true ?\n\t\t\tx`@select_multiple_value(this)` :\n\t\t\tx`@select_value(this)`;\n\t}\n\n\tconst type = node.get_static_attribute_value('type');\n\n\t// <input type='checkbox' bind:group='foo'>\n\tif (name === 'group') {\n\t\tif (type === 'checkbox') {\n\t\t\tconst { binding_group, contexts } = binding.binding_group;\n\t\t\tadd_to_set(contextual_dependencies, contexts);\n\t\t\treturn x`@get_binding_group_value(${binding_group()}, this.__value, this.checked)`;\n\t\t}\n\n\t\treturn x`this.__value`;\n\t}\n\n\t// <input type='range|number' bind:value>\n\tif (type === 'range' || type === 'number') {\n\t\treturn x`@to_number(this.${name})`;\n\t}\n\n\tif ((name === 'buffered' || name === 'seekable' || name === 'played')) {\n\t\treturn x`@time_ranges_to_array(this.${name})`;\n\t}\n\n\t// everything else\n\treturn x`this.${name}`;\n}\n","import { Node, Literal, Identifier, MemberExpression } from 'estree';\n\nexport function compare_node(a: Node | void, b: Node | void) {\n\tif (a === b) return true;\n\tif (!a || !b) return false;\n\tif (a.type !== b.type) return false;\n\tswitch (a.type) {\n\t\tcase 'Identifier':\n\t\t\treturn a.name === (b as Identifier).name;\n\t\tcase 'MemberExpression':\n\t\t\treturn (\n\t\t\t\tcompare_node(a.object, (b as MemberExpression).object) &&\n\t\t\t\tcompare_node(a.property, (b as MemberExpression).property) &&\n\t\t\t\ta.computed === (b as MemberExpression).computed\n\t\t\t);\n\t\tcase 'Literal':\n\t\t\treturn a.value === (b as Literal).value;\n\t}\n}\n","import { b, x } from 'code-red';\nimport Component from '../../../Component';\nimport Block from '../../Block';\nimport BindingWrapper from '../Element/Binding';\nimport { Identifier } from 'estree';\nimport { compare_node } from '../../../utils/compare_node';\n\nexport default function bind_this(component: Component, block: Block, binding: BindingWrapper, variable: Identifier) {\n\tconst fn = component.get_unique_name(`${variable.name}_binding`);\n\n\tblock.renderer.add_to_context(fn.name);\n\tconst callee = block.renderer.reference(fn.name);\n\n\tconst { contextual_dependencies, mutation } = binding.handler;\n\tconst dependencies = binding.get_update_dependencies();\n\n\tconst body = b`\n\t\t${mutation}\n\t\t${Array.from(dependencies)\n\t\t\t.filter(dep => dep[0] !== '$')\n\t\t\t.filter(dep => !contextual_dependencies.has(dep))\n\t\t\t.map(dep => b`${block.renderer.invalidate(dep)};`)}\n\t`;\n\n\tif (contextual_dependencies.size) {\n\t\tconst params: Identifier[] = Array.from(contextual_dependencies).map(name => ({\n\t\t\ttype: 'Identifier',\n\t\t\tname\n\t\t}));\n\t\tcomponent.partly_hoisted.push(b`\n\t\t\tfunction ${fn}($$value, ${params}) {\n\t\t\t\t@binding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\t\t\t${body}\n\t\t\t\t});\n\t\t\t}\n\t\t`);\n\n\t\tconst alias_map = new Map();\n\t\tconst args = [];\n\t\tfor (let id of params) {\n\t\t\tconst value = block.renderer.reference(id.name);\n\t\t\tlet found = false;\n\t\t\tif (block.variables.has(id.name)) {\n\t\t\t\tlet alias = id.name;\n\t\t\t\tfor (\n\t\t\t\t\tlet i = 1;\n\t\t\t\t\tblock.variables.has(alias) && !compare_node(block.variables.get(alias).init, value);\n\t\t\t\t\talias = `${id.name}_${i++}`\n\t\t\t\t);\n\t\t\t\talias_map.set(alias, id.name);\n\t\t\t\tid = { type: 'Identifier', name: alias };\n\t\t\t\tfound = block.variables.has(alias);\n\t\t\t}\n\t\t\targs.push(id);\n\t\t\tif (!found) {\n\t\t\t\tblock.add_variable(id, value);\n\t\t\t}\n\t\t}\n\n\t\tconst assign = block.get_unique_name(`assign_${variable.name}`);\n\t\tconst unassign = block.get_unique_name(`unassign_${variable.name}`);\n\n\t\tblock.chunks.init.push(b`\n\t\t\tconst ${assign} = () => ${callee}(${variable}, ${args});\n\t\t\tconst ${unassign} = () => ${callee}(null, ${args});\n\t\t`);\n\n\t\tconst condition = Array.from(args)\n\t\t\t.map(name => x`${name} !== ${block.renderer.reference(alias_map.get(name.name) || name.name)}`)\n\t\t\t.reduce((lhs, rhs) => x`${lhs} || ${rhs}`);\n\n\t\t// we push unassign and unshift assign so that references are\n\t\t// nulled out before they're created, to avoid glitches\n\t\t// with shifting indices\n\t\tblock.chunks.update.push(b`\n\t\t\tif (${condition}) {\n\t\t\t\t${unassign}();\n\t\t\t\t${args.map(a => b`${a} = ${block.renderer.reference(alias_map.get(a.name) || a.name)}`)};\n\t\t\t\t${assign}();\n\t\t\t}`\n\t\t);\n\n\t\tblock.chunks.destroy.push(b`${unassign}();`);\n\t\treturn b`${assign}();`;\n\t}\n\n\tcomponent.partly_hoisted.push(b`\n\t\tfunction ${fn}($$value) {\n\t\t\t@binding_callbacks[$$value ? 'unshift' : 'push'](() => {\n\t\t\t\t${body}\n\t\t\t});\n\t\t}\n\t`);\n\n\tblock.chunks.destroy.push(b`${callee}(null);`);\n\treturn b`${callee}(${variable});`;\n}\n","import { b, x } from 'code-red';\nimport Wrapper from './Wrapper';\nimport Renderer from '../../Renderer';\nimport Block from '../../Block';\nimport MustacheTag from '../../../nodes/MustacheTag';\nimport RawMustacheTag from '../../../nodes/RawMustacheTag';\nimport { Node } from 'estree';\n\nexport default class Tag extends Wrapper {\n\tnode: MustacheTag | RawMustacheTag;\n\n\tconstructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tthis.cannot_use_innerhtml();\n\t\tif (!this.is_dependencies_static()) {\n\t\t\tthis.not_static_content();\n\t\t}\n\n\t\tblock.add_dependencies(node.expression.dependencies);\n\t}\n\n\tis_dependencies_static() {\n\t\treturn this.node.expression.contextual_dependencies.size === 0 && this.node.expression.dynamic_dependencies().length === 0;\n\t}\n\n\trename_this_method(\n\t\tblock: Block,\n\t\tupdate: ((value: Node) => (Node | Node[]))\n\t) {\n\t\tconst dependencies = this.node.expression.dynamic_dependencies();\n\t\tlet snippet = this.node.expression.manipulate(block);\n\n\t\tconst value = this.node.should_cache && block.get_unique_name(`${this.var.name}_value`);\n\t\tconst content = this.node.should_cache ? value : snippet;\n\n\t\tsnippet = x`${snippet} + \"\"`;\n\n\t\tif (this.node.should_cache) block.add_variable(value, snippet); // TODO may need to coerce snippet to string\n\n\t\tif (dependencies.length > 0) {\n\t\t\tlet condition = block.renderer.dirty(dependencies);\n\n\t\t\tif (block.has_outros) {\n\t\t\t\tcondition = x`!#current || ${condition}`;\n\t\t\t}\n\n\t\t\tconst update_cached_value = x`${value} !== (${value} = ${snippet})`;\n\n\t\t\tif (this.node.should_cache) {\n\t\t\t\tcondition = x`${condition} && ${update_cached_value}`;\n\t\t\t}\n\n\t\t\tblock.chunks.update.push(b`if (${condition}) ${update(content as Node)}`);\n\t\t}\n\n\t\treturn { init: content };\n\t}\n}\n","import Renderer from '../Renderer';\nimport Block from '../Block';\nimport Tag from './shared/Tag';\nimport Wrapper from './shared/Wrapper';\nimport MustacheTag from '../../nodes/MustacheTag';\nimport RawMustacheTag from '../../nodes/RawMustacheTag';\nimport { x } from 'code-red';\nimport { Identifier } from 'estree';\n\nexport default class MustacheTagWrapper extends Tag {\n\tvar: Identifier = { type: 'Identifier', name: 't' };\n\n\tconstructor(renderer: Renderer, block: Block, parent: Wrapper, node: MustacheTag | RawMustacheTag) {\n\t\tsuper(renderer, block, parent, node);\n\t}\n\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tconst { init } = this.rename_this_method(\n\t\t\tblock,\n\t\t\tvalue => x`@set_data(${this.var}, ${value})`\n\t\t);\n\n\t\tblock.add_element(\n\t\t\tthis.var,\n\t\t\tx`@text(${init})`,\n\t\t\tparent_nodes && x`@claim_text(${parent_nodes}, ${init})`,\n\t\t\tparent_node\n\t\t);\n\t}\n}\n","import { namespaces } from '../../../utils/namespaces';\nimport { b, x } from 'code-red';\nimport Renderer from '../Renderer';\nimport Block from '../Block';\nimport Tag from './shared/Tag';\nimport Wrapper from './shared/Wrapper';\nimport Element from '../../nodes/Element';\nimport MustacheTag from '../../nodes/MustacheTag';\nimport RawMustacheTag from '../../nodes/RawMustacheTag';\nimport { is_head } from './shared/is_head';\nimport { Identifier, Node } from 'estree';\n\nexport default class RawMustacheTagWrapper extends Tag {\n\tvar: Identifier = { type: 'Identifier', name: 'raw' };\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: MustacheTag | RawMustacheTag\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\t\tthis.cannot_use_innerhtml();\n\t\tthis.not_static_content();\n\t}\n\n\trender(block: Block, parent_node: Identifier, _parent_nodes: Identifier) {\n\t\tconst in_head = is_head(parent_node);\n\n\t\tconst can_use_innerhtml = !in_head && parent_node && !this.prev && !this.next;\n\n\t\tif (can_use_innerhtml) {\n\t\t\tconst insert = (content: Node) => b`${parent_node}.innerHTML = ${content};`[0];\n\n\t\t\tconst { init } = this.rename_this_method(\n\t\t\t\tblock,\n\t\t\t\tcontent => insert(content)\n\t\t\t);\n\n\t\t\tblock.chunks.mount.push(insert(init));\n\t\t} else {\n\t\t\tconst needs_anchor = in_head || (this.next ? !this.next.is_dom_node() : (!this.parent || !this.parent.is_dom_node()));\n\n\t\t\tconst html_tag = block.get_unique_name('html_tag');\n\t\t\tconst html_anchor = needs_anchor && block.get_unique_name('html_anchor');\n\n\t\t\tblock.add_variable(html_tag);\n\n\t\t\tconst { init } = this.rename_this_method(\n\t\t\t\tblock,\n\t\t\t\tcontent => x`${html_tag}.p(${content})`\n\t\t\t);\n\n\t\t\tconst update_anchor = needs_anchor ? html_anchor : this.next ? this.next.var : 'null';\n\n\t\t\tconst parent_element = this.node.find_nearest(/^Element/) as Element;\n\t\t\tconst is_svg = parent_element && parent_element.namespace === namespaces.svg;\n\t\t\tblock.chunks.create.push(b`${html_tag} = new @HtmlTag(${is_svg ? 'true' : 'false'});`);\n\n\t\t\tif (this.renderer.options.hydratable) {\n\t\t\t\tblock.chunks.claim.push(b`${html_tag} = @claim_html_tag(${_parent_nodes}, ${is_svg ? 'true' : 'false'});`);\n\t\t\t}\n\t\t\tblock.chunks.hydrate.push(b`${html_tag}.a = ${update_anchor};`);\n\t\t\tblock.chunks.mount.push(b`${html_tag}.m(${init}, ${parent_node || '#target'}, ${parent_node ? null : '#anchor'});`);\n\n\t\t\tif (needs_anchor) {\n\t\t\t\tblock.add_element(html_anchor, x`@empty()`, x`@empty()`, parent_node);\n\t\t\t}\n\n\t\t\tif (!parent_node || in_head) {\n\t\t\t\tblock.chunks.destroy.push(b`if (detaching) ${html_tag}.d();`);\n\t\t\t}\n\t\t}\n\t}\n}\n","import Renderer from '../../Renderer';\nimport Element from '../../../nodes/Element';\nimport Wrapper from '../shared/Wrapper';\nimport Block from '../../Block';\nimport { is_void } from '../../../../../shared/utils/names';\nimport FragmentWrapper from '../Fragment';\nimport { escape_html, string_literal } from '../../../utils/stringify';\nimport TextWrapper from '../Text';\nimport fix_attribute_casing from './fix_attribute_casing';\nimport { b, x, p } from 'code-red';\nimport { namespaces } from '../../../../utils/namespaces';\nimport AttributeWrapper from './Attribute';\nimport StyleAttributeWrapper from './StyleAttribute';\nimport SpreadAttributeWrapper from './SpreadAttribute';\nimport { regex_dimensions, regex_starts_with_newline, regex_backslashes } from '../../../../utils/patterns';\nimport Binding from './Binding';\nimport add_to_set from '../../../utils/add_to_set';\nimport { add_event_handler } from '../shared/add_event_handlers';\nimport { add_action } from '../shared/add_actions';\nimport bind_this from '../shared/bind_this';\nimport { is_head } from '../shared/is_head';\nimport { Identifier, ExpressionStatement, CallExpression, Node } from 'estree';\nimport EventHandler from './EventHandler';\nimport { extract_names } from 'periscopic';\nimport Action from '../../../nodes/Action';\nimport MustacheTagWrapper from '../MustacheTag';\nimport RawMustacheTagWrapper from '../RawMustacheTag';\nimport is_dynamic from '../shared/is_dynamic';\nimport create_debugging_comment from '../shared/create_debugging_comment';\nimport { push_array } from '../../../../utils/push_array';\n\ninterface BindingGroup {\n\tevents: string[];\n\tbindings: Binding[];\n}\n\nconst regex_contains_radio_or_checkbox_or_file = /radio|checkbox|file/;\nconst regex_contains_radio_or_checkbox_or_range_or_file = /radio|checkbox|range|file/;\n\nconst events = [\n\t{\n\t\tevent_names: ['input'],\n\t\tfilter: (node: Element, _name: string) =>\n\t\t\tnode.name === 'textarea' ||\n\t\t\tnode.name === 'input' &&\n\t\t\t!regex_contains_radio_or_checkbox_or_range_or_file.test(node.get_static_attribute_value('type') as string)\n\t},\n\t{\n\t\tevent_names: ['input'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\t(name === 'textContent' || name === 'innerHTML') &&\n\t\t\tnode.attributes.some(attribute => attribute.name === 'contenteditable')\n\t},\n\t{\n\t\tevent_names: ['change'],\n\t\tfilter: (node: Element, _name: string) =>\n\t\t\tnode.name === 'select' ||\n\t\t\tnode.name === 'input' &&\n\t\t\tregex_contains_radio_or_checkbox_or_file.test(node.get_static_attribute_value('type') as string)\n\t},\n\t{\n\t\tevent_names: ['change', 'input'],\n\t\tfilter: (node: Element, _name: string) =>\n\t\t\tnode.name === 'input' && node.get_static_attribute_value('type') === 'range'\n\t},\n\t{\n\t\tevent_names: ['elementresize'],\n\t\tfilter: (_node: Element, name: string) =>\n\t\t\tregex_dimensions.test(name)\n\t},\n\t// media events\n\t{\n\t\tevent_names: ['timeupdate'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\t(name === 'currentTime' || name === 'played' || name === 'ended')\n\t},\n\t{\n\t\tevent_names: ['durationchange'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\tname === 'duration'\n\t},\n\t{\n\t\tevent_names: ['play', 'pause'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\tname === 'paused'\n\t},\n\t{\n\t\tevent_names: ['progress'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\tname === 'buffered'\n\t},\n\t{\n\t\tevent_names: ['loadedmetadata'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\t(name === 'buffered' || name === 'seekable')\n\t},\n\t{\n\t\tevent_names: ['volumechange'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\t(name === 'volume' || name === 'muted')\n\t},\n\t{\n\t\tevent_names: ['ratechange'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\tname === 'playbackRate'\n\t},\n\t{\n\t\tevent_names: ['seeking', 'seeked'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\t(name === 'seeking')\n\t},\n\t{\n\t\tevent_names: ['ended'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\tname === 'ended'\n\t},\n\t{\n\t\tevent_names: ['resize'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\t(name === 'videoHeight' || name === 'videoWidth')\n\t},\n\t{\n\t\t// from https://html.spec.whatwg.org/multipage/media.html#ready-states\n\t\t// and https://html.spec.whatwg.org/multipage/media.html#loading-the-media-resource\n\t\tevent_names: ['loadedmetadata', 'loadeddata', 'canplay', 'canplaythrough', 'playing', 'waiting', 'emptied'],\n\t\tfilter: (node: Element, name: string) =>\n\t\t\tnode.is_media_node() &&\n\t\t\tname === 'readyState'\n\t},\n\t// details event\n\t{\n\t\tevent_names: ['toggle'],\n\t\tfilter: (node: Element, _name: string) =>\n\t\t\tnode.name === 'details'\n\t},\n\t{\n\t\tevent_names: ['load'],\n\t\tfilter: (_: Element, name: string) => name === 'naturalHeight' || name === 'naturalWidth'\n\t}\n];\n\nconst CHILD_DYNAMIC_ELEMENT_BLOCK = 'child_dynamic_element';\nconst regex_invalid_variable_identifier_characters = /[^a-zA-Z0-9_$]/g;\nconst regex_minus_signs = /-/g;\n\nexport default class ElementWrapper extends Wrapper {\n\tnode: Element;\n\tfragment: FragmentWrapper;\n\tattributes: Array<AttributeWrapper | StyleAttributeWrapper | SpreadAttributeWrapper>;\n\tbindings: Binding[];\n\tevent_handlers: EventHandler[];\n\tclass_dependencies: string[];\n\thas_dynamic_attribute: boolean;\n\n\tselect_binding_dependencies?: Set<string>;\n\thas_dynamic_value: boolean;\n\tdynamic_value_condition: any;\n\n\tvar: any;\n\tvoid: boolean;\n\n\tchild_dynamic_element_block?: Block = null;\n\tchild_dynamic_element?: ElementWrapper = null;\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: Element,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tthis.var = {\n\t\t\ttype: 'Identifier',\n\t\t\tname: node.name.replace(regex_invalid_variable_identifier_characters, '_')\n\t\t};\n\n\t\tthis.void = is_void(node.name);\n\n\t\tthis.class_dependencies = [];\n\n\t\tif (node.is_dynamic_element && block.type !== CHILD_DYNAMIC_ELEMENT_BLOCK) {\n\t\t\tthis.child_dynamic_element_block = block.child({\n\t\t\t\tcomment: create_debugging_comment(node, renderer.component),\n\t\t\t\tname: renderer.component.get_unique_name('create_dynamic_element'),\n\t\t\t\ttype: CHILD_DYNAMIC_ELEMENT_BLOCK\n\t\t\t});\n\t\t\trenderer.blocks.push(this.child_dynamic_element_block);\n\t\t\tthis.child_dynamic_element = new ElementWrapper(\n\t\t\t\trenderer,\n\t\t\t\tthis.child_dynamic_element_block,\n\t\t\t\tparent,\n\t\t\t\tnode,\n\t\t\t\tstrip_whitespace,\n\t\t\t\tnext_sibling\n\t\t\t);\n\n\t\t\t// the original svelte:element is never used for rendering, because\n\t\t\t// it gets assigned a child_dynamic_element which is used in all rendering logic.\n\t\t\t// so doing all of this on the original svelte:element will just cause double\n\t\t\t// code, because it will be done again on the child_dynamic_element.\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.node.children.length) {\n\t\t\tthis.node.lets.forEach(l => {\n\t\t\t\textract_names(l.value || l.name).forEach(name => {\n\t\t\t\t\trenderer.add_to_context(name, true);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis.attributes = this.node.attributes.map(attribute => {\n\t\t\tif (attribute.name === 'style') {\n\t\t\t\treturn new StyleAttributeWrapper(this, block, attribute);\n\t\t\t}\n\t\t\tif (attribute.type === 'Spread') {\n\t\t\t\treturn new SpreadAttributeWrapper(this, block, attribute);\n\t\t\t}\n\t\t\treturn new AttributeWrapper(this, block, attribute);\n\t\t});\n\t\tthis.has_dynamic_attribute = !!this.attributes.find(attr => attr.node.get_dependencies().length > 0);\n\n\t\t// ordinarily, there'll only be one... but we need to handle\n\t\t// the rare case where an element can have multiple bindings,\n\t\t// e.g. <audio bind:paused bind:currentTime>\n\t\tthis.bindings = this.node.bindings.map(binding => new Binding(block, binding, this));\n\n\t\tthis.event_handlers = this.node.handlers.map(event_handler => new EventHandler(event_handler, this));\n\n\t\tif (node.intro || node.outro) {\n\t\t\tif (node.intro) block.add_intro(node.intro.is_local);\n\t\t\tif (node.outro) block.add_outro(node.outro.is_local);\n\t\t}\n\n\t\tif (node.animation) {\n\t\t\tblock.add_animation();\n\t\t}\n\n\t\tblock.add_dependencies(node.tag_expr.dependencies);\n\n\t\t// add directive and handler dependencies\n\t\t[node.animation, node.outro, ...node.actions, ...node.classes, ...node.styles].forEach(directive => {\n\t\t\tif (directive && directive.expression) {\n\t\t\t\tblock.add_dependencies(directive.expression.dependencies);\n\t\t\t}\n\t\t});\n\n\t\tnode.handlers.forEach(handler => {\n\t\t\tif (handler.expression) {\n\t\t\t\tblock.add_dependencies(handler.expression.dependencies);\n\t\t\t}\n\t\t});\n\n\t\tif (this.parent) {\n\t\t\tif (node.actions.length > 0 ||\n\t\t\t\tnode.animation ||\n\t\t\t\tnode.bindings.length > 0 ||\n\t\t\t\tnode.classes.length > 0 ||\n\t\t\t\tnode.intro || node.outro ||\n\t\t\t\tnode.handlers.length > 0 ||\n\t\t\t\tnode.styles.length > 0 ||\n\t\t\t\tthis.node.name === 'option' ||\n\t\t\t\tnode.tag_expr.dynamic_dependencies().length ||\n\t\t\t\tnode.is_dynamic_element ||\n\t\t\t\trenderer.options.dev\n\t\t\t) {\n\t\t\t\tthis.parent.cannot_use_innerhtml(); // need to use add_location\n\t\t\t\tthis.parent.not_static_content();\n\t\t\t}\n\t\t}\n\n\t\tthis.fragment = new FragmentWrapper(renderer, block, node.children, this, strip_whitespace, next_sibling);\n\t}\n\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tif (this.child_dynamic_element) {\n\t\t\tthis.render_dynamic_element(block, parent_node, parent_nodes);\n\t\t} else {\n\t\t\tthis.render_element(block, parent_node, parent_nodes);\n\t\t}\n\t}\n\n\trender_dynamic_element(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tthis.child_dynamic_element.render(\n\t\t\tthis.child_dynamic_element_block,\n\t\t\tnull,\n\t\t\t(x`#nodes` as unknown) as Identifier\n\t\t);\n\n\t\tconst is_tag_dynamic = this.node.tag_expr.dynamic_dependencies().length > 0;\n\t\tconst tag = this.node.tag_expr.manipulate(block);\n\n\t\tblock.chunks.init.push(b`\n\t\t\t${this.renderer.options.dev && b`@validate_dynamic_element(${tag});`}\n\t\t\t${this.renderer.options.dev && this.node.children.length > 0 && b`@validate_void_dynamic_element(${tag});`}\n\t\t\tlet ${this.var} = ${tag} && ${this.child_dynamic_element_block.name}(#ctx);\n\t\t`);\n\n\t\tblock.chunks.create.push(b`\n\t\t\tif (${this.var}) ${this.var}.c();\n\t\t`);\n\n\t\tif (this.renderer.options.hydratable) {\n\t\t\tblock.chunks.claim.push(b`\n\t\t\t\tif (${this.var}) ${this.var}.l(${parent_nodes});\n\t\t\t`);\n\t\t}\n\n\t\tblock.chunks.mount.push(b`\n\t\t\tif (${this.var}) ${this.var}.m(${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'});\n\t\t`);\n\n\t\tif (is_tag_dynamic) {\n\t\t\tconst previous_tag = block.get_unique_name('previous_tag');\n\t\t\tblock.add_variable(previous_tag, tag);\n\t\t\tconst anchor = this.get_or_create_anchor(block, parent_node, parent_nodes);\n\t\t\tconst has_transitions = !!(this.node.intro || this.node.outro);\n\t\t\tconst not_equal = this.renderer.component.component_options.immutable ? x`@not_equal` : x`@safe_not_equal`;\n\n\t\t\tconst tag_will_be_removed = block.get_unique_name('tag_will_be_removed');\n\t\t\tif (has_transitions) {\n\t\t\t\tblock.add_variable(tag_will_be_removed, x`false`);\n\t\t\t}\n\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${tag}) {\n\t\t\t\t\tif (!${previous_tag}) {\n\t\t\t\t\t\t${this.var} = ${this.child_dynamic_element_block.name}(#ctx);\n\t\t\t\t\t\t${previous_tag} = ${tag};\n\t\t\t\t\t\t${this.var}.c();\n\t\t\t\t\t\t${has_transitions && b`@transition_in(${this.var})`}\n\t\t\t\t\t\t${this.var}.m(${this.get_update_mount_node(anchor)}, ${anchor});\n\t\t\t\t\t} else if (${not_equal}(${previous_tag}, ${tag})) {\n\t\t\t\t\t\t${this.var}.d(1);\n\t\t\t\t\t\t${this.renderer.options.dev && b`@validate_dynamic_element(${tag});`}\n\t\t\t\t\t\t${this.renderer.options.dev && this.node.children.length > 0 && b`@validate_void_dynamic_element(${tag});`}\n\t\t\t\t\t\t${this.var} = ${this.child_dynamic_element_block.name}(#ctx);\n\t\t\t\t\t\t${previous_tag} = ${tag};\n\t\t\t\t\t\t${this.var}.c();\n\t\t\t\t\t\t${has_transitions && b`if (${tag_will_be_removed}) {\n\t\t\t\t\t\t\t${tag_will_be_removed} = false;\n\t\t\t\t\t\t\t@transition_in(${this.var})\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\t${this.var}.m(${this.get_update_mount_node(anchor)}, ${anchor});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t${has_transitions && b`if (${tag_will_be_removed}) {\n\t\t\t\t\t\t\t${tag_will_be_removed} = false;\n\t\t\t\t\t\t\t@transition_in(${this.var})\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\t${this.var}.p(#ctx, #dirty);\n\t\t\t\t\t}\n\t\t\t\t} else if (${previous_tag}) {\n\t\t\t\t\t${has_transitions\n\t\t\t\t\t? b`\n\t\t\t\t\t\t\t\t${tag_will_be_removed} = true;\n\t\t\t\t\t\t\t\t@group_outros();\n\t\t\t\t\t\t\t\t@transition_out(${this.var}, 1, 1, () => {\n\t\t\t\t\t\t\t\t\t${this.var} = null;\n\t\t\t\t\t\t\t\t\t${previous_tag} = ${tag};\n\t\t\t\t\t\t\t\t\t${tag_will_be_removed} = false;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t@check_outros();\n\t\t\t\t\t\t\t`\n\t\t\t\t\t: b`\n\t\t\t\t\t\t\t\t${this.var}.d(1);\n\t\t\t\t\t\t\t\t${this.var} = null;\n\t\t\t\t\t\t\t\t${previous_tag} = ${tag};\n\t\t\t\t\t\t\t`\n\t\t\t\t}\n\t\t\t\t}\n\t\t\t`);\n\t\t} else {\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${tag}) {\n\t\t\t\t\t${this.var}.p(#ctx, #dirty);\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tif (this.child_dynamic_element_block.has_intros) {\n\t\t\tblock.chunks.intro.push(b`@transition_in(${this.var});`);\n\t\t}\n\n\t\tif (this.child_dynamic_element_block.has_outros) {\n\t\t\tblock.chunks.outro.push(b`@transition_out(${this.var});`);\n\t\t}\n\n\t\tblock.chunks.destroy.push(b`if (${this.var}) ${this.var}.d(detaching)`);\n\n\t\tif (this.node.animation) {\n\t\t\tconst measurements = block.get_unique_name('measurements');\n\t\t\tblock.add_variable(measurements);\n\t\t\tblock.chunks.measure.push(b`${measurements} = ${this.var}.r()`);\n\t\t\tblock.chunks.fix.push(b`${this.var}.f();`);\n\t\t\tblock.chunks.animate.push(b`\n\t\t\t\t${this.var}.s(${measurements});\n\t\t\t\t${this.var}.a()\n\t\t\t`);\n\t\t}\n\t}\n\n\tis_dom_node() {\n\t\treturn super.is_dom_node() && !this.child_dynamic_element;\n\t}\n\n\trender_element(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\n\t\tconst { renderer } = this;\n\n\t\tif (this.node.name === 'noscript') return;\n\n\t\tconst node = this.var;\n\t\tconst nodes = parent_nodes && block.get_unique_name(`${this.var.name}_nodes`); // if we're in unclaimable territory, i.e. <head>, parent_nodes is null\n\t\tconst children = x`@children(${this.node.name === 'template' ? x`${node}.content` : node})`;\n\n\t\tblock.add_variable(node);\n\t\tconst render_statement = this.get_render_statement(block);\n\t\tblock.chunks.create.push(\n\t\t\tb`${node} = ${render_statement};`\n\t\t);\n\n\t\tif (renderer.options.hydratable) {\n\t\t\tif (parent_nodes) {\n\t\t\t\tblock.chunks.claim.push(b`\n\t\t\t\t\t${node} = ${this.get_claim_statement(block, parent_nodes)};\n\t\t\t\t`);\n\n\t\t\t\tif (!this.void && this.node.children.length > 0) {\n\t\t\t\t\tblock.chunks.claim.push(b`\n\t\t\t\t\t\tvar ${nodes} = ${children};\n\t\t\t\t\t`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tblock.chunks.claim.push(\n\t\t\t\t\tb`${node} = ${render_statement};`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (parent_node) {\n\t\t\tconst append = b`@append(${parent_node}, ${node});`;\n\t\t\t((append[0] as ExpressionStatement).expression as CallExpression).callee.loc = {\n\t\t\t\tstart: this.renderer.locate(this.node.start),\n\t\t\t\tend: this.renderer.locate(this.node.end)\n\t\t\t};\n\t\t\tblock.chunks.mount.push(append);\n\n\t\t\tif (is_head(parent_node)) {\n\t\t\t\tblock.chunks.destroy.push(b`@detach(${node});`);\n\t\t\t}\n\t\t} else {\n\t\t\tconst insert = b`@insert(#target, ${node}, #anchor);`;\n\t\t\t((insert[0] as ExpressionStatement).expression as CallExpression).callee.loc = {\n\t\t\t\tstart: this.renderer.locate(this.node.start),\n\t\t\t\tend: this.renderer.locate(this.node.end)\n\t\t\t};\n\t\t\tblock.chunks.mount.push(insert);\n\n\t\t\t// TODO we eventually need to consider what happens to elements\n\t\t\t// that belong to the same outgroup as an outroing element...\n\t\t\tblock.chunks.destroy.push(b`if (detaching) @detach(${node});`);\n\t\t}\n\n\t\t// insert static children with textContent or innerHTML\n\t\t// skip textcontent for <template>. append nodes to TemplateElement.content instead\n\t\tconst can_use_textcontent = this.can_use_textcontent();\n\t\tconst is_template = this.node.name === 'template';\n\t\tconst is_template_with_text_content = is_template && can_use_textcontent;\n\n\t\tif (!is_template_with_text_content && !this.node.namespace && (this.can_use_innerhtml || can_use_textcontent) && this.fragment.nodes.length > 0) {\n\t\t\tif (this.fragment.nodes.length === 1 && this.fragment.nodes[0].node.type === 'Text') {\n\t\t\t\tblock.chunks.create.push(\n\t\t\t\t\tb`${node}.textContent = ${string_literal((this.fragment.nodes[0] as TextWrapper).data)};`\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst state = {\n\t\t\t\t\tquasi: {\n\t\t\t\t\t\ttype: 'TemplateElement',\n\t\t\t\t\t\tvalue: { raw: '' }\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst literal = {\n\t\t\t\t\ttype: 'TemplateLiteral',\n\t\t\t\t\texpressions: [],\n\t\t\t\t\tquasis: []\n\t\t\t\t};\n\n\t\t\t\tconst can_use_raw_text = !this.can_use_innerhtml && can_use_textcontent;\n\t\t\t\tto_html((this.fragment.nodes as unknown as Array<ElementWrapper | TextWrapper>), block, literal, state, can_use_raw_text);\n\t\t\t\tliteral.quasis.push(state.quasi);\n\n\t\t\t\tblock.chunks.create.push(\n\t\t\t\t\tb`${node}.${this.can_use_innerhtml ? 'innerHTML' : 'textContent'} = ${literal};`\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.fragment.nodes.forEach((child: Wrapper) => {\n\t\t\t\tchild.render(\n\t\t\t\t\tblock,\n\t\t\t\t\tis_template ? x`${node}.content` : node,\n\t\t\t\t\tnodes\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\n\t\tconst event_handler_or_binding_uses_context = (\n\t\t\tthis.bindings.some(binding => binding.handler.uses_context) ||\n\t\t\tthis.node.handlers.some(handler => handler.uses_context) ||\n\t\t\tthis.node.actions.some(action => action.uses_context)\n\t\t);\n\n\t\tif (event_handler_or_binding_uses_context) {\n\t\t\tblock.maintain_context = true;\n\t\t}\n\n\t\tif (this.node.is_dynamic_element) {\n\t\t\tthis.add_dynamic_element_attributes(block);\n\t\t} else {\n\t\t\tthis.add_attributes(block);\n\t\t}\n\t\tthis.add_directives_in_order(block);\n\t\tthis.add_transitions(block);\n\t\tthis.add_animation(block);\n\t\tthis.add_classes(block);\n\t\tthis.add_styles(block);\n\t\tthis.add_manual_style_scoping(block);\n\n\t\tif (nodes && this.renderer.options.hydratable && !this.void) {\n\t\t\tblock.chunks.claim.push(\n\t\t\t\tb`${this.node.children.length > 0 ? nodes : children}.forEach(@detach);`\n\t\t\t);\n\t\t}\n\n\t\tif (renderer.options.dev) {\n\t\t\tconst loc = renderer.locate(this.node.start);\n\t\t\tblock.chunks.hydrate.push(\n\t\t\t\tb`@add_location(${this.var}, ${renderer.file_var}, ${loc.line - 1}, ${loc.column}, ${this.node.start});`\n\t\t\t);\n\t\t}\n\n\t\tblock.renderer.dirty(this.node.tag_expr.dynamic_dependencies());\n\t}\n\n\tcan_use_textcontent() {\n\t\treturn this.is_static_content && this.fragment.nodes.every(node => node.node.type === 'Text' || node.node.type === 'MustacheTag');\n\t}\n\n\tget_render_statement(block: Block) {\n\t\tconst { name, namespace, tag_expr } = this.node;\n\t\tconst reference = tag_expr.manipulate(block);\n\n\t\tif (namespace === namespaces.svg) {\n\t\t\treturn x`@svg_element(${reference})`;\n\t\t}\n\n\t\tif (namespace) {\n\t\t\treturn x`@_document.createElementNS(\"${namespace}\", \"${name}\")`;\n\t\t}\n\n\t\tconst is: AttributeWrapper = this.attributes.find(attr => attr.node.name === 'is') as any;\n\t\tif (is) {\n\t\t\treturn x`@element_is(\"${name}\", ${is.render_chunks(block).reduce((lhs, rhs) => x`${lhs} + ${rhs}`)})`;\n\t\t}\n\n\t\treturn x`@element(${reference})`;\n\t}\n\n\tget_claim_statement(block: Block, nodes: Identifier) {\n\t\tconst attributes = this.attributes\n\t\t\t.filter((attr) => !(attr instanceof SpreadAttributeWrapper) && !attr.property_name)\n\t\t\t.map((attr) => p`${(attr as StyleAttributeWrapper | AttributeWrapper).name}: true`);\n\n\t\tlet reference: string | ReturnType<typeof x>;\n\t\tif (this.node.tag_expr.node.type === 'Literal') {\n\t\t\tif (this.node.namespace) {\n\t\t\t\treference = `\"${this.node.tag_expr.node.value}\"`;\n\t\t\t} else {\n\t\t\t\treference = `\"${(this.node.tag_expr.node.value as String || '').toUpperCase()}\"`;\n\t\t\t}\n\t\t} else if (this.node.namespace) {\n\t\t\treference = x`${this.node.tag_expr.manipulate(block)}`;\n\t\t} else {\n\t\t\treference = x`(${this.node.tag_expr.manipulate(block)} || 'null').toUpperCase()`;\n\t\t}\n\n\t\tif (this.node.namespace === namespaces.svg) {\n\t\t\treturn x`@claim_svg_element(${nodes}, ${reference}, { ${attributes} })`;\n\t\t} else {\n\t\t\treturn x`@claim_element(${nodes}, ${reference}, { ${attributes} })`;\n\t\t}\n\t}\n\n\tadd_directives_in_order(block: Block) {\n\t\ttype OrderedAttribute = EventHandler | BindingGroup | Binding | Action;\n\n\t\tconst binding_groups = events\n\t\t\t.map(event => ({\n\t\t\t\tevents: event.event_names,\n\t\t\t\tbindings: this.bindings\n\t\t\t\t\t.filter(binding => binding.node.name !== 'this')\n\t\t\t\t\t.filter(binding => event.filter(this.node, binding.node.name))\n\t\t\t}))\n\t\t\t.filter(group => group.bindings.length);\n\n\t\tconst this_binding = this.bindings.find(b => b.node.name === 'this');\n\n\t\tfunction getOrder(item: OrderedAttribute) {\n\t\t\tif (item instanceof EventHandler) {\n\t\t\t\treturn item.node.start;\n\t\t\t} else if (item instanceof Binding) {\n\t\t\t\treturn item.node.start;\n\t\t\t} else if (item instanceof Action) {\n\t\t\t\treturn item.start;\n\t\t\t} else {\n\t\t\t\treturn item.bindings[0].node.start;\n\t\t\t}\n\t\t}\n\n\t\t([\n\t\t\t...binding_groups,\n\t\t\t...this.event_handlers,\n\t\t\tthis_binding,\n\t\t\t...this.node.actions\n\t\t] as OrderedAttribute[])\n\t\t\t.filter(Boolean)\n\t\t\t.sort((a, b) => getOrder(a) - getOrder(b))\n\t\t\t.forEach(item => {\n\t\t\t\tif (item instanceof EventHandler) {\n\t\t\t\t\tadd_event_handler(block, this.var, item);\n\t\t\t\t} else if (item instanceof Binding) {\n\t\t\t\t\tthis.add_this_binding(block, item);\n\t\t\t\t} else if (item instanceof Action) {\n\t\t\t\t\tadd_action(block, this.var, item);\n\t\t\t\t} else {\n\t\t\t\t\tthis.add_bindings(block, item);\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tadd_bindings(block: Block, binding_group: BindingGroup) {\n\t\tconst { renderer } = this;\n\n\t\tif (binding_group.bindings.length === 0) return;\n\n\t\trenderer.component.has_reactive_assignments = true;\n\n\t\tconst lock = binding_group.bindings.some(binding => binding.needs_lock) ?\n\t\t\tblock.get_unique_name(`${this.var.name}_updating`) :\n\t\t\tnull;\n\n\t\tif (lock) block.add_variable(lock, x`false`);\n\n\t\tconst handler = renderer.component.get_unique_name(`${this.var.name}_${binding_group.events.join('_')}_handler`);\n\t\trenderer.add_to_context(handler.name);\n\n\t\t// TODO figure out how to handle locks\n\t\tconst needs_lock = binding_group.bindings.some(binding => binding.needs_lock);\n\n\t\tconst dependencies: Set<string> = new Set();\n\t\tconst contextual_dependencies: Set<string> = new Set();\n\n\t\tbinding_group.bindings.forEach(binding => {\n\t\t\t// TODO this is a mess\n\t\t\tadd_to_set(dependencies, binding.get_update_dependencies());\n\t\t\tadd_to_set(contextual_dependencies, binding.handler.contextual_dependencies);\n\n\t\t\tbinding.render(block, lock);\n\t\t});\n\n\t\t// media bindings — awkward special case. The native timeupdate events\n\t\t// fire too infrequently, so we need to take matters into our\n\t\t// own hands\n\t\tlet animation_frame: Identifier | undefined;\n\t\tif (binding_group.events[0] === 'timeupdate') {\n\t\t\tanimation_frame = block.get_unique_name(`${this.var.name}_animationframe`);\n\t\t\tblock.add_variable(animation_frame);\n\t\t}\n\n\t\tconst has_local_function = contextual_dependencies.size > 0 || needs_lock || animation_frame;\n\n\t\tlet callee = renderer.reference(handler);\n\n\t\t// TODO dry this out — similar code for event handlers and component bindings\n\t\tif (has_local_function) {\n\t\t\tconst args = Array.from(contextual_dependencies).map(name => renderer.reference(name));\n\n\t\t\t// need to create a block-local function that calls an instance-level function\n\t\t\tif (animation_frame) {\n\t\t\t\tblock.chunks.init.push(b`\n\t\t\t\t\tfunction ${handler}() {\n\t\t\t\t\t\t@_cancelAnimationFrame(${animation_frame});\n\t\t\t\t\t\tif (!${this.var}.paused) {\n\t\t\t\t\t\t\t${animation_frame} = @raf(${handler});\n\t\t\t\t\t\t\t${needs_lock && b`${lock} = true;`}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t${callee}.call(${this.var}, ${args});\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.init.push(b`\n\t\t\t\t\tfunction ${handler}() {\n\t\t\t\t\t\t${needs_lock && b`${lock} = true;`}\n\t\t\t\t\t\t${callee}.call(${this.var}, ${args});\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\n\t\t\tcallee = handler;\n\t\t}\n\n\t\tconst params = Array.from(contextual_dependencies).map(name => ({\n\t\t\ttype: 'Identifier',\n\t\t\tname\n\t\t}));\n\n\t\tthis.renderer.component.partly_hoisted.push(b`\n\t\t\tfunction ${handler}(${params}) {\n\t\t\t\t${binding_group.bindings.map(b => b.handler.mutation)}\n\t\t\t\t${Array.from(dependencies)\n\t\t\t\t.filter(dep => dep[0] !== '$')\n\t\t\t\t.filter(dep => !contextual_dependencies.has(dep))\n\t\t\t\t.map(dep => b`${this.renderer.invalidate(dep)};`)}\n\t\t\t}\n\t\t`);\n\n\t\tbinding_group.events.forEach(name => {\n\t\t\tif (name === 'elementresize') {\n\t\t\t\t// special case\n\t\t\t\tconst resize_listener = block.get_unique_name(`${this.var.name}_resize_listener`);\n\t\t\t\tblock.add_variable(resize_listener);\n\n\t\t\t\tblock.chunks.mount.push(\n\t\t\t\t\tb`${resize_listener} = @add_resize_listener(${this.var}, ${callee}.bind(${this.var}));`\n\t\t\t\t);\n\n\t\t\t\tblock.chunks.destroy.push(\n\t\t\t\t\tb`${resize_listener}();`\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tblock.event_listeners.push(\n\t\t\t\t\tx`@listen(${this.var}, \"${name}\", ${callee})`\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tconst some_initial_state_is_undefined = binding_group.bindings\n\t\t\t.map(binding => x`${binding.snippet} === void 0`)\n\t\t\t.reduce((lhs, rhs) => x`${lhs} || ${rhs}`);\n\n\t\tconst should_initialise = (\n\t\t\tthis.node.name === 'select' ||\n\t\t\tbinding_group.bindings.find(binding => {\n\t\t\t\treturn (\n\t\t\t\t\tbinding.node.name === 'indeterminate' ||\n\t\t\t\t\tbinding.node.name === 'textContent' ||\n\t\t\t\t\tbinding.node.name === 'innerHTML' ||\n\t\t\t\t\tbinding.is_readonly_media_attribute()\n\t\t\t\t);\n\t\t\t})\n\t\t);\n\n\t\tif (should_initialise) {\n\t\t\tconst callback = has_local_function ? handler : x`() => ${callee}.call(${this.var})`;\n\t\t\tblock.chunks.hydrate.push(\n\t\t\t\tb`if (${some_initial_state_is_undefined}) @add_render_callback(${callback});`\n\t\t\t);\n\t\t}\n\n\t\tif (binding_group.events[0] === 'elementresize') {\n\t\t\tblock.chunks.hydrate.push(\n\t\t\t\tb`@add_render_callback(() => ${callee}.call(${this.var}));`\n\t\t\t);\n\t\t}\n\n\t\tif (lock) {\n\t\t\tblock.chunks.update.push(b`${lock} = false;`);\n\t\t}\n\t}\n\n\tadd_this_binding(block: Block, this_binding: Binding) {\n\t\tconst { renderer } = this;\n\n\t\trenderer.component.has_reactive_assignments = true;\n\n\t\tconst binding_callback = bind_this(renderer.component, block, this_binding, this.var);\n\t\tblock.chunks.mount.push(binding_callback);\n\t}\n\n\tadd_attributes(block: Block) {\n\t\t// Get all the class dependencies first\n\t\tthis.attributes.forEach((attribute) => {\n\t\t\tif (attribute.node.name === 'class') {\n\t\t\t\tconst dependencies = attribute.node.get_dependencies();\n\t\t\t\tpush_array(this.class_dependencies, dependencies);\n\t\t\t}\n\t\t});\n\n\t\tif (this.node.attributes.some(attr => attr.is_spread)) {\n\t\t\tthis.add_spread_attributes(block);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.attributes.forEach((attribute) => {\n\t\t\tattribute.render(block);\n\t\t});\n\t}\n\n\tadd_spread_attributes(block: Block) {\n\t\tconst levels = block.get_unique_name(`${this.var.name}_levels`);\n\t\tconst data = block.get_unique_name(`${this.var.name}_data`);\n\n\t\tconst initial_props = [];\n\t\tconst updates = [];\n\n\t\tthis.attributes\n\t\t\t.forEach(attr => {\n\t\t\t\tconst dependencies = attr.node.get_dependencies();\n\n\t\t\t\tconst condition = dependencies.length > 0\n\t\t\t\t\t? block.renderer.dirty(dependencies)\n\t\t\t\t\t: null;\n\n\t\t\t\tif (attr instanceof SpreadAttributeWrapper) {\n\t\t\t\t\tconst snippet = attr.node.expression.manipulate(block);\n\n\t\t\t\t\tinitial_props.push(snippet);\n\n\t\t\t\t\tupdates.push(condition ? x`${condition} && ${snippet}` : snippet);\n\t\t\t\t} else {\n\t\t\t\t\tconst name = attr.property_name || attr.name;\n\t\t\t\t\tinitial_props.push(x`{ ${name}: ${attr.get_init(block, attr.get_value(block))} }`);\n\t\t\t\t\tconst snippet = x`{ ${name}: ${attr.should_cache ? attr.last : attr.get_value(block)} }`;\n\n\t\t\t\t\tupdates.push(condition ? x`${attr.get_dom_update_conditions(block, condition)} && ${snippet}` : snippet);\n\t\t\t\t}\n\t\t\t});\n\n\t\tblock.chunks.init.push(b`\n\t\t\tlet ${levels} = [${initial_props}];\n\n\t\t\tlet ${data} = {};\n\t\t\tfor (let #i = 0; #i < ${levels}.length; #i += 1) {\n\t\t\t\t${data} = @assign(${data}, ${levels}[#i]);\n\t\t\t}\n\t\t`);\n\n\t\tconst fn =\n\t\t\tthis.node.namespace === namespaces.svg\n\t\t\t\t? x`@set_svg_attributes`\n\t\t\t\t: this.node.is_dynamic_element\n\t\t\t\t\t? x`@set_dynamic_element_data(${this.node.tag_expr.manipulate(block)})`\n\t\t\t\t\t: x`@set_attributes`;\n\n\t\tblock.chunks.hydrate.push(\n\t\t\tb`${fn}(${this.var}, ${data});`\n\t\t);\n\n\t\tif (this.has_dynamic_attribute) {\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\t${fn}(${this.var}, ${data} = @get_spread_update(${levels}, [\n\t\t\t\t\t${updates}\n\t\t\t\t]));\n\t\t\t`);\n\t\t}\n\n\t\t// handle edge cases for elements\n\t\tif (this.node.name === 'select') {\n\t\t\tconst dependencies = new Set<string>();\n\t\t\tfor (const attr of this.attributes) {\n\t\t\t\tfor (const dep of attr.node.dependencies) {\n\t\t\t\t\tdependencies.add(dep);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tblock.chunks.mount.push(b`\n\t\t\t\t'value' in ${data} && (${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value);\n\t\t\t`);\n\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${block.renderer.dirty(Array.from(dependencies))} && 'value' in ${data}) (${data}.multiple ? @select_options : @select_option)(${this.var}, ${data}.value);\n\t\t\t`);\n\t\t} else if (this.node.name === 'input' && this.attributes.find(attr => attr.node.name === 'value')) {\n\t\t\tconst type = this.node.get_static_attribute_value('type');\n\t\t\tif (type === null || type === '' || type === 'text' || type === 'email' || type === 'password') {\n\t\t\t\tblock.chunks.mount.push(b`\n\t\t\t\t\tif ('value' in ${data}) {\n\t\t\t\t\t\t${this.var}.value = ${data}.value;\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif ('value' in ${data}) {\n\t\t\t\t\t\t${this.var}.value = ${data}.value;\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\t\t}\n\n\t\tif (['button', 'input', 'keygen', 'select', 'textarea'].includes(this.node.name)) {\n\t\t\tblock.chunks.mount.push(b`\n\t\t\t\tif (${this.var}.autofocus) ${this.var}.focus();\n\t\t\t`);\n\t\t}\n\t}\n\n\tadd_dynamic_element_attributes(block: Block) {\n\t\tif (this.attributes.length === 0) return;\n\n\t\tif (this.has_dynamic_attribute) {\n\t\t\tthis.add_spread_attributes(block);\n\t\t\treturn;\n\t\t}\n\n\t\tconst static_attributes = [];\n\t\tthis.attributes.forEach((attr) => {\n\t\t\tif (attr instanceof SpreadAttributeWrapper) {\n\t\t\t\tstatic_attributes.push({ type: 'SpreadElement', argument: attr.node.expression.node });\n\t\t\t} else {\n\t\t\t\tconst name = attr.property_name || attr.name;\n\t\t\t\tstatic_attributes.push(p`${name}: ${attr.get_value(block)}`);\n\t\t\t}\n\t\t});\n\t\tconst fn =\n\t\t\tthis.node.namespace === namespaces.svg\n\t\t\t\t? x`@set_svg_attributes`\n\t\t\t\t: this.node.is_dynamic_element\n\t\t\t\t\t? x`@set_dynamic_element_data(${this.node.tag_expr.manipulate(block)})`\n\t\t\t\t\t: x`@set_attributes`;\n\n\t\tblock.chunks.hydrate.push(\n\t\t\tb`${fn}(${this.var}, {${static_attributes}});`\n\t\t);\n\t}\n\n\tadd_transitions(block: Block) {\n\t\tconst { intro, outro } = this.node;\n\t\tif (!intro && !outro) return;\n\n\t\tif (intro === outro) {\n\t\t\t// bidirectional transition\n\t\t\tconst name = block.get_unique_name(`${this.var.name}_transition`);\n\t\t\tconst snippet = intro.expression\n\t\t\t\t? intro.expression.manipulate(block)\n\t\t\t\t: x`{}`;\n\n\t\t\tblock.add_variable(name);\n\n\t\t\tconst fn = this.renderer.reference(intro.name);\n\n\t\t\tconst intro_block = b`\n\t\t\t\t@add_render_callback(() => {\n\t\t\t\t\tif (!${name}) ${name} = @create_bidirectional_transition(${this.var}, ${fn}, ${snippet}, true);\n\t\t\t\t\t${name}.run(1);\n\t\t\t\t});\n\t\t\t`;\n\n\t\t\tconst outro_block = b`\n\t\t\t\tif (!${name}) ${name} = @create_bidirectional_transition(${this.var}, ${fn}, ${snippet}, false);\n\t\t\t\t${name}.run(0);\n\t\t\t`;\n\n\t\t\tif (intro.is_local) {\n\t\t\t\tblock.chunks.intro.push(b`\n\t\t\t\t\tif (#local) {\n\t\t\t\t\t\t${intro_block}\n\t\t\t\t\t}\n\t\t\t\t`);\n\n\t\t\t\tblock.chunks.outro.push(b`\n\t\t\t\t\tif (#local) {\n\t\t\t\t\t\t${outro_block}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.intro.push(intro_block);\n\t\t\t\tblock.chunks.outro.push(outro_block);\n\t\t\t}\n\n\t\t\tblock.chunks.destroy.push(b`if (detaching && ${name}) ${name}.end();`);\n\t\t} else {\n\t\t\tconst intro_name = intro && block.get_unique_name(`${this.var.name}_intro`);\n\t\t\tconst outro_name = outro && block.get_unique_name(`${this.var.name}_outro`);\n\n\t\t\tif (intro) {\n\t\t\t\tblock.add_variable(intro_name);\n\t\t\t\tconst snippet = intro.expression\n\t\t\t\t\t? intro.expression.manipulate(block)\n\t\t\t\t\t: x`{}`;\n\n\t\t\t\tconst fn = this.renderer.reference(intro.name);\n\n\t\t\t\tlet intro_block: Node[];\n\n\t\t\t\tif (outro) {\n\t\t\t\t\tintro_block = b`\n\t\t\t\t\t\t@add_render_callback(() => {\n\t\t\t\t\t\t\tif (${outro_name}) ${outro_name}.end(1);\n\t\t\t\t\t\t\t${intro_name} = @create_in_transition(${this.var}, ${fn}, ${snippet});\n\t\t\t\t\t\t\t${intro_name}.start();\n\t\t\t\t\t\t});\n\t\t\t\t\t`;\n\n\t\t\t\t\tblock.chunks.outro.push(b`if (${intro_name}) ${intro_name}.invalidate();`);\n\t\t\t\t} else {\n\t\t\t\t\tintro_block = b`\n\t\t\t\t\t\tif (!${intro_name}) {\n\t\t\t\t\t\t\t@add_render_callback(() => {\n\t\t\t\t\t\t\t\t${intro_name} = @create_in_transition(${this.var}, ${fn}, ${snippet});\n\t\t\t\t\t\t\t\t${intro_name}.start();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t}\n\n\t\t\t\tif (intro.is_local) {\n\t\t\t\t\tintro_block = b`\n\t\t\t\t\t\tif (#local) {\n\t\t\t\t\t\t\t${intro_block}\n\t\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t}\n\n\t\t\t\tblock.chunks.intro.push(intro_block);\n\t\t\t}\n\n\t\t\tif (outro) {\n\t\t\t\tblock.add_variable(outro_name);\n\t\t\t\tconst snippet = outro.expression\n\t\t\t\t\t? outro.expression.manipulate(block)\n\t\t\t\t\t: x`{}`;\n\n\t\t\t\tconst fn = this.renderer.reference(outro.name);\n\n\t\t\t\tif (!intro) {\n\t\t\t\t\tblock.chunks.intro.push(b`\n\t\t\t\t\t\tif (${outro_name}) ${outro_name}.end(1);\n\t\t\t\t\t`);\n\t\t\t\t}\n\n\t\t\t\t// TODO hide elements that have outro'd (unless they belong to a still-outroing\n\t\t\t\t// group) prior to their removal from the DOM\n\t\t\t\tlet outro_block = b`\n\t\t\t\t\t${outro_name} = @create_out_transition(${this.var}, ${fn}, ${snippet});\n\t\t\t\t`;\n\n\t\t\t\tif (outro.is_local) {\n\t\t\t\t\toutro_block = b`\n\t\t\t\t\t\tif (#local) {\n\t\t\t\t\t\t\t${outro_block}\n\t\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t}\n\n\t\t\t\tblock.chunks.outro.push(outro_block);\n\n\t\t\t\tblock.chunks.destroy.push(b`if (detaching && ${outro_name}) ${outro_name}.end();`);\n\t\t\t}\n\t\t}\n\n\t\tif ((intro && intro.expression && intro.expression.dependencies.size) || (outro && outro.expression && outro.expression.dependencies.size)) {\n\t\t\tblock.maintain_context = true;\n\t\t}\n\t}\n\n\tadd_animation(block: Block) {\n\t\tif (!this.node.animation) return;\n\n\t\tconst { outro } = this.node;\n\n\t\tconst rect = block.get_unique_name('rect');\n\t\tconst stop_animation = block.get_unique_name('stop_animation');\n\n\t\tblock.add_variable(rect);\n\t\tblock.add_variable(stop_animation, x`@noop`);\n\n\t\tblock.chunks.measure.push(b`\n\t\t\t${rect} = ${this.var}.getBoundingClientRect();\n\t\t`);\n\n\t\tif (block.type === CHILD_DYNAMIC_ELEMENT_BLOCK) {\n\t\t\tblock.chunks.measure.push(b`return ${rect}`);\n\t\t\tblock.chunks.restore_measurements.push(b`${rect} = #measurement;`);\n\t\t}\n\n\t\tblock.chunks.fix.push(b`\n\t\t\t@fix_position(${this.var});\n\t\t\t${stop_animation}();\n\t\t\t${outro && b`@add_transform(${this.var}, ${rect});`}\n\t\t`);\n\n\t\tlet params: Node | ReturnType<typeof x>;\n\t\tif (this.node.animation.expression) {\n\t\t\tparams = this.node.animation.expression.manipulate(block);\n\n\t\t\tif (this.node.animation.expression.dynamic_dependencies().length) {\n\t\t\t\t// if `params` is dynamic, calculate params ahead of time in the `.r()` method\n\t\t\t\tconst params_var = block.get_unique_name('params');\n\t\t\t\tblock.add_variable(params_var);\n\n\t\t\t\tblock.chunks.measure.push(b`${params_var} = ${params};`);\n\t\t\t\tparams = params_var;\n\t\t\t}\n\t\t} else {\n\t\t\tparams = x`{}`;\n\t\t}\n\n\t\tconst name = this.renderer.reference(this.node.animation.name);\n\n\t\tblock.chunks.animate.push(b`\n\t\t\t${stop_animation}();\n\t\t\t${stop_animation} = @create_animation(${this.var}, ${rect}, ${name}, ${params});\n\t\t`);\n\t}\n\n\tadd_classes(block: Block) {\n\t\tconst has_spread = this.node.attributes.some(attr => attr.is_spread);\n\t\tthis.node.classes.forEach(class_directive => {\n\t\t\tconst { expression, name } = class_directive;\n\t\t\tlet snippet: Node | string;\n\t\t\tlet dependencies: Set<string>;\n\t\t\tif (expression) {\n\t\t\t\tsnippet = expression.manipulate(block);\n\t\t\t\tdependencies = expression.dependencies;\n\t\t\t} else {\n\t\t\t\tsnippet = name;\n\t\t\t\tdependencies = new Set([name]);\n\t\t\t}\n\t\t\tconst updater = b`@toggle_class(${this.var}, \"${name}\", ${snippet});`;\n\n\t\t\tblock.chunks.hydrate.push(updater);\n\n\t\t\tif ((this.node.is_dynamic_element || has_spread) && this.has_dynamic_attribute) {\n\t\t\t\tblock.chunks.update.push(updater);\n\t\t\t} else if ((dependencies && dependencies.size > 0) || this.class_dependencies.length) {\n\t\t\t\tconst all_dependencies = this.class_dependencies.concat(...dependencies);\n\t\t\t\tlet condition = block.renderer.dirty(all_dependencies);\n\t\t\t\tif (block.has_outros) {\n\t\t\t\t\tcondition = x`!#current || ${condition}`;\n\t\t\t\t}\n\n\t\t\t\t// If all of the dependencies are non-dynamic (don't get updated) then there is no reason\n\t\t\t\t// to add an updater for this.\n\t\t\t\tconst any_dynamic_dependencies = all_dependencies.some((dep) => {\n\t\t\t\t\tconst variable = this.renderer.component.var_lookup.get(dep);\n\t\t\t\t\treturn !variable || is_dynamic(variable);\n\t\t\t\t});\n\t\t\t\tif (any_dynamic_dependencies) {\n\t\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\t\tif (${condition}) {\n\t\t\t\t\t\t\t${updater}\n\t\t\t\t\t\t}\n\t\t\t\t\t`);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tadd_styles(block: Block) {\n\t\tconst has_spread = this.node.attributes.some(attr => attr.is_spread);\n\t\tthis.node.styles.forEach((style_directive) => {\n\t\t\tconst { name, expression, should_cache, important } = style_directive;\n\n\t\t\tconst snippet = expression.manipulate(block);\n\t\t\tlet cached_snippet: Identifier | undefined;\n\t\t\tif (should_cache) {\n\t\t\t\tcached_snippet = block.get_unique_name(`style_${name.replace(regex_minus_signs, '_')}`);\n\t\t\t\tblock.add_variable(cached_snippet, snippet);\n\t\t\t}\n\n\t\t\tconst updater = b`@set_style(${this.var}, \"${name}\", ${should_cache ? cached_snippet : snippet}, ${important ? 1 : null})`;\n\n\t\t\tblock.chunks.hydrate.push(updater);\n\n\t\t\tconst dependencies = expression.dynamic_dependencies();\n\t\t\tif (has_spread) {\n\t\t\t\tblock.chunks.update.push(updater);\n\t\t\t} else if (dependencies.length > 0) {\n\t\t\t\tif (should_cache) {\n\t\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\t\t\tif (${block.renderer.dirty(dependencies)} && (${cached_snippet} !== (${cached_snippet} = ${snippet}))) {\n\t\t\t\t\t\t\t\t${updater}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t`);\n\t\t\t\t} else {\n\t\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\t\tif (${block.renderer.dirty(dependencies)}) {\n\t\t\t\t\t\t\t${updater}\n\t\t\t\t\t\t}\n\t\t\t\t\t`);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tadd_manual_style_scoping(block: Block) {\n\t\tif (this.node.needs_manual_style_scoping) {\n\t\t\tconst updater = b`@toggle_class(${this.var}, \"${this.node.component.stylesheet.id}\", true);`;\n\t\t\tblock.chunks.hydrate.push(updater);\n\t\t\tblock.chunks.update.push(updater);\n\t\t}\n\t}\n}\n\nconst regex_backticks = /`/g;\nconst regex_dollar_signs = /\\$/g;\n\nfunction to_html(wrappers: Array<ElementWrapper | TextWrapper | MustacheTagWrapper | RawMustacheTagWrapper>, block: Block, literal: any, state: any, can_use_raw_text?: boolean) {\n\twrappers.forEach(wrapper => {\n\t\tif (wrapper instanceof TextWrapper) {\n\t\t\t// Don't add the <pre>/<textarea> newline logic here because pre/textarea.innerHTML\n\t\t\t// would keep the leading newline, too, only someParent.innerHTML = '..<pre/textarea>..' won't\n\n\t\t\tif ((wrapper as TextWrapper).use_space()) state.quasi.value.raw += ' ';\n\n\t\t\tconst parent = wrapper.node.parent as Element;\n\n\t\t\tconst raw = parent && (\n\t\t\t\tparent.name === 'script' ||\n\t\t\t\tparent.name === 'style' ||\n\t\t\t\tcan_use_raw_text\n\t\t\t);\n\n\t\t\tstate.quasi.value.raw += (raw ? wrapper.data : escape_html(wrapper.data))\n\t\t\t\t.replace(regex_backslashes, '\\\\\\\\')\n\t\t\t\t.replace(regex_backticks, '\\\\`')\n\t\t\t\t.replace(regex_dollar_signs, '\\\\$');\n\t\t} else if (wrapper instanceof MustacheTagWrapper || wrapper instanceof RawMustacheTagWrapper) {\n\t\t\tliteral.quasis.push(state.quasi);\n\t\t\tliteral.expressions.push(wrapper.node.expression.manipulate(block));\n\t\t\tstate.quasi = {\n\t\t\t\ttype: 'TemplateElement',\n\t\t\t\tvalue: { raw: '' }\n\t\t\t};\n\t\t} else if (wrapper.node.name === 'noscript') {\n\t\t\t// do nothing\n\t\t} else {\n\t\t\tconst nodeName = wrapper.node.name;\n\n\t\t\t// element\n\t\t\tstate.quasi.value.raw += `<${nodeName}`;\n\n\t\t\tconst is_empty_textarea = nodeName === 'textarea' && wrapper.fragment.nodes.length === 0;\n\n\t\t\t(wrapper as ElementWrapper).attributes.forEach((attr: AttributeWrapper) => {\n\t\t\t\tif (is_empty_textarea && attr.node.name === 'value') {\n\t\t\t\t\t// The value attribute of <textarea> renders as content.\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tstate.quasi.value.raw += ` ${fix_attribute_casing(attr.node.name)}=\"`;\n\n\t\t\t\tto_html_for_attr_value(attr, block, literal, state);\n\n\t\t\t\tstate.quasi.value.raw += '\"';\n\t\t\t});\n\n\t\t\tif (!wrapper.void) {\n\t\t\t\tstate.quasi.value.raw += '>';\n\n\t\t\t\tif (nodeName === 'pre') {\n\t\t\t\t\t// Two or more leading newlines are required to restore the leading newline immediately after `<pre>`.\n\t\t\t\t\t// see https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element\n\t\t\t\t\tconst first = wrapper.fragment.nodes[0];\n\t\t\t\t\tif (first && first.node.type === 'Text' && regex_starts_with_newline.test(first.node.data)) {\n\t\t\t\t\t\tstate.quasi.value.raw += '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (is_empty_textarea) {\n\t\t\t\t\t// The <textarea> renders the value attribute as content because the content is stored in the value attribute.\n\t\t\t\t\tconst value_attribute = wrapper.attributes.find(attr => attr.node.name === 'value');\n\t\t\t\t\tif (value_attribute) {\n\t\t\t\t\t\t// Two or more leading newlines are required to restore the leading newline immediately after `<textarea>`.\n\t\t\t\t\t\t// see https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n\t\t\t\t\t\tconst first = value_attribute.node.chunks[0];\n\t\t\t\t\t\tif (first && first.type === 'Text' && regex_starts_with_newline.test(first.data)) {\n\t\t\t\t\t\t\tstate.quasi.value.raw += '\\n';\n\t\t\t\t\t\t}\n\t\t\t\t\t\tto_html_for_attr_value(value_attribute, block, literal, state);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tto_html(wrapper.fragment.nodes as Array<ElementWrapper | TextWrapper>, block, literal, state);\n\n\t\t\t\tstate.quasi.value.raw += `</${nodeName}>`;\n\t\t\t} else {\n\t\t\t\tstate.quasi.value.raw += '/>';\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction to_html_for_attr_value(attr: AttributeWrapper | StyleAttributeWrapper | SpreadAttributeWrapper, block: Block, literal: any, state: any) {\n\tattr.node.chunks.forEach(chunk => {\n\t\tif (chunk.type === 'Text') {\n\t\t\tstate.quasi.value.raw += escape_html(chunk.data);\n\t\t} else {\n\t\t\tliteral.quasis.push(state.quasi);\n\t\t\tliteral.expressions.push(chunk.manipulate(block));\n\n\t\t\tstate.quasi = {\n\t\t\t\ttype: 'TemplateElement',\n\t\t\t\tvalue: { raw: '' }\n\t\t\t};\n\t\t}\n\t});\n}\n","import Wrapper from './shared/Wrapper';\nimport Renderer from '../Renderer';\nimport Block from '../Block';\nimport Head from '../../nodes/Head';\nimport FragmentWrapper from './Fragment';\nimport { x, b } from 'code-red';\nimport { Identifier } from 'estree';\n\nexport default class HeadWrapper extends Wrapper {\n\tfragment: FragmentWrapper;\n\tnode: Head;\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: Head,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tthis.can_use_innerhtml = false;\n\n\t\tthis.fragment = new FragmentWrapper(\n\t\t\trenderer,\n\t\t\tblock,\n\t\t\tnode.children,\n\t\t\tthis,\n\t\t\tstrip_whitespace,\n\t\t\tnext_sibling\n\t\t);\n\t}\n\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\n\t\tlet nodes: Identifier;\n\t\tif (this.renderer.options.hydratable && this.fragment.nodes.length) {\n\t\t\tnodes = block.get_unique_name('head_nodes');\n\t\t\tblock.chunks.claim.push(b`const ${nodes} = @head_selector('${this.node.id}', @_document.head);`);\n\t\t}\n\n\t\tthis.fragment.render(block, x`@_document.head` as unknown as Identifier, nodes);\n\n\t\tif (nodes && this.renderer.options.hydratable) {\n\t\t\tblock.chunks.claim.push(\n\t\t\t\tb`${nodes}.forEach(@detach);`\n\t\t\t);\n\t\t}\n\t}\n}\n","import Wrapper from './shared/Wrapper';\nimport Renderer from '../Renderer';\nimport Block from '../Block';\nimport EachBlock from '../../nodes/EachBlock';\nimport IfBlock from '../../nodes/IfBlock';\nimport create_debugging_comment from './shared/create_debugging_comment';\nimport ElseBlock from '../../nodes/ElseBlock';\nimport FragmentWrapper from './Fragment';\nimport { b, x } from 'code-red';\nimport { walk } from 'estree-walker';\nimport { is_head } from './shared/is_head';\nimport { Identifier, Node } from 'estree';\nimport { push_array } from '../../../utils/push_array';\nimport { add_const_tags, add_const_tags_context } from './shared/add_const_tags';\n\ntype DetachingOrNull = 'detaching' | null;\n\nfunction is_else_if(node: ElseBlock) {\n\treturn (\n\t\tnode && node.children.length === 1 && node.children[0].type === 'IfBlock'\n\t);\n}\n\nclass IfBlockBranch extends Wrapper {\n\tblock: Block;\n\tfragment: FragmentWrapper;\n\tdependencies?: string[];\n\tcondition?: any;\n\tsnippet?: Node;\n\tis_dynamic: boolean;\n\tnode: IfBlock | ElseBlock;\n\n\tvar = null;\n\tget_ctx_name: Node | undefined;\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: IfBlockWrapper,\n\t\tnode: IfBlock | ElseBlock,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tconst { expression } = (node as IfBlock);\n\t\tconst is_else = !expression;\n\n\t\tif (expression) {\n\t\t\tthis.dependencies = expression.dynamic_dependencies();\n\n\t\t\t// TODO is this the right rule? or should any non-reference count?\n\t\t\t// const should_cache = !is_reference(expression.node, null) && dependencies.length > 0;\n\t\t\tlet should_cache = false;\n\t\t\twalk(expression.node, {\n\t\t\t\tenter(node) {\n\t\t\t\t\tif (node.type === 'CallExpression' || node.type === 'NewExpression') {\n\t\t\t\t\t\tshould_cache = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (should_cache) {\n\t\t\t\tthis.condition = block.get_unique_name('show_if');\n\t\t\t\tthis.snippet = (expression.manipulate(block) as Node);\n\t\t\t} else {\n\t\t\t\tthis.condition = expression.manipulate(block);\n\t\t\t}\n\t\t}\n\n\t\tadd_const_tags_context(renderer, this.node.const_tags);\n\n\t\tthis.block = block.child({\n\t\t\tcomment: create_debugging_comment(node, parent.renderer.component),\n\t\t\tname: parent.renderer.component.get_unique_name(\n\t\t\t\tis_else ? 'create_else_block' : 'create_if_block'\n\t\t\t),\n\t\t\ttype: (node as IfBlock).expression ? 'if' : 'else'\n\t\t});\n\n\t\tthis.fragment = new FragmentWrapper(renderer, this.block, node.children, parent, strip_whitespace, next_sibling);\n\n\t\tthis.is_dynamic = this.block.dependencies.size > 0;\n\n\t\tif (node.const_tags.length > 0) {\n\t\t\tthis.get_ctx_name = parent.renderer.component.get_unique_name(is_else ? 'get_else_ctx' : 'get_if_ctx');\n\t\t}\n\t}\n}\n\nexport default class IfBlockWrapper extends Wrapper {\n\tnode: IfBlock;\n\tbranches: IfBlockBranch[];\n\tneeds_update = false;\n\n\tvar: Identifier = { type: 'Identifier', name: 'if_block' };\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: EachBlock,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tthis.cannot_use_innerhtml();\n\t\tthis.not_static_content();\n\n\t\tthis.branches = [];\n\n\t\tconst blocks: Block[] = [];\n\t\tlet is_dynamic = false;\n\t\tlet has_intros = false;\n\t\tlet has_outros = false;\n\n\t\tconst create_branches = (node: IfBlock) => {\n\t\t\tconst branch = new IfBlockBranch(\n\t\t\t\trenderer,\n\t\t\t\tblock,\n\t\t\t\tthis,\n\t\t\t\tnode,\n\t\t\t\tstrip_whitespace,\n\t\t\t\tnext_sibling\n\t\t\t);\n\n\t\t\tthis.branches.push(branch);\n\n\t\t\tblocks.push(branch.block);\n\t\t\tblock.add_dependencies(node.expression.dependencies);\n\n\t\t\tif (branch.block.dependencies.size > 0) {\n\t\t\t\t// the condition, or its contents, is dynamic\n\t\t\t\tis_dynamic = true;\n\t\t\t\tblock.add_dependencies(branch.block.dependencies);\n\t\t\t}\n\n\t\t\tif (branch.dependencies && branch.dependencies.length > 0) {\n\t\t\t\t// the condition itself is dynamic\n\t\t\t\tthis.needs_update = true;\n\t\t\t}\n\n\t\t\tif (branch.block.has_intros) has_intros = true;\n\t\t\tif (branch.block.has_outros) has_outros = true;\n\n\t\t\tif (is_else_if(node.else)) {\n\t\t\t\tcreate_branches(node.else.children[0] as IfBlock);\n\t\t\t} else if (node.else) {\n\t\t\t\tconst branch = new IfBlockBranch(\n\t\t\t\t\trenderer,\n\t\t\t\t\tblock,\n\t\t\t\t\tthis,\n\t\t\t\t\tnode.else,\n\t\t\t\t\tstrip_whitespace,\n\t\t\t\t\tnext_sibling\n\t\t\t\t);\n\n\t\t\t\tthis.branches.push(branch);\n\n\t\t\t\tblocks.push(branch.block);\n\n\t\t\t\tif (branch.block.dependencies.size > 0) {\n\t\t\t\t\tis_dynamic = true;\n\t\t\t\t\tblock.add_dependencies(branch.block.dependencies);\n\t\t\t\t}\n\n\t\t\t\tif (branch.block.has_intros) has_intros = true;\n\t\t\t\tif (branch.block.has_outros) has_outros = true;\n\t\t\t}\n\t\t};\n\n\t\tcreate_branches(this.node);\n\n\t\tblocks.forEach(block => {\n\t\t\tblock.has_update_method = is_dynamic;\n\t\t\tblock.has_intro_method = has_intros;\n\t\t\tblock.has_outro_method = has_outros;\n\t\t});\n\n\t\tpush_array(renderer.blocks, blocks);\n\t}\n\n\trender(\n\t\tblock: Block,\n\t\tparent_node: Identifier,\n\t\tparent_nodes: Identifier\n\t) {\n\t\tconst name = this.var;\n\n\t\tconst needs_anchor = this.next ? !this.next.is_dom_node() : !parent_node || !this.parent.is_dom_node();\n\t\tconst anchor = needs_anchor\n\t\t\t? block.get_unique_name(`${this.var.name}_anchor`)\n\t\t\t: (this.next && this.next.var) || 'null';\n\n\t\tconst has_else = !(this.branches[this.branches.length - 1].condition);\n\t\tconst if_exists_condition = has_else ? null : name;\n\n\t\tconst dynamic = this.branches[0].block.has_update_method; // can use [0] as proxy for all, since they necessarily have the same value\n\t\tconst has_intros = this.branches[0].block.has_intro_method;\n\t\tconst has_outros = this.branches[0].block.has_outro_method;\n\t\tconst has_transitions = has_intros || has_outros;\n\n\t\tthis.branches.forEach(branch => {\n\t\t\tif (branch.get_ctx_name) {\n\t\t\t\tthis.renderer.blocks.push(b`\n\t\t\t\tfunction ${branch.get_ctx_name}(#ctx) {\n\t\t\t\t\tconst child_ctx = #ctx.slice();\n\t\t\t\t\t${add_const_tags(block, branch.node.const_tags, 'child_ctx')}\n\t\t\t\t\treturn child_ctx;\n\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\t\t});\n\n\t\tconst vars = { name, anchor, if_exists_condition, has_else, has_transitions };\n\n\t\tconst detaching: DetachingOrNull = parent_node && !is_head(parent_node) ? null : 'detaching';\n\n\t\tif (this.node.else) {\n\t\t\tthis.branches.forEach(branch => {\n\t\t\t\tif (branch.snippet) block.add_variable(branch.condition);\n\t\t\t});\n\n\t\t\tif (has_outros) {\n\t\t\t\tthis.render_compound_with_outros(block, parent_node, parent_nodes, dynamic, vars, detaching);\n\n\t\t\t\tblock.chunks.outro.push(b`@transition_out(${name});`);\n\t\t\t} else {\n\t\t\t\tthis.render_compound(block, parent_node, parent_nodes, dynamic, vars, detaching);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.render_simple(block, parent_node, parent_nodes, dynamic, vars, detaching);\n\n\t\t\tif (has_outros) {\n\t\t\t\tblock.chunks.outro.push(b`@transition_out(${name});`);\n\t\t\t}\n\t\t}\n\n\t\tif (if_exists_condition) {\n\t\t\tblock.chunks.create.push(b`if (${if_exists_condition}) ${name}.c();`);\n\t\t} else {\n\t\t\tblock.chunks.create.push(b`${name}.c();`);\n\t\t}\n\n\t\tif (parent_nodes && this.renderer.options.hydratable) {\n\t\t\tif (if_exists_condition) {\n\t\t\t\tblock.chunks.claim.push(\n\t\t\t\t\tb`if (${if_exists_condition}) ${name}.l(${parent_nodes});`\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tblock.chunks.claim.push(\n\t\t\t\t\tb`${name}.l(${parent_nodes});`\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (has_intros || has_outros) {\n\t\t\tblock.chunks.intro.push(b`@transition_in(${name});`);\n\t\t}\n\n\t\tif (needs_anchor) {\n\t\t\tblock.add_element(\n\t\t\t\tanchor as Identifier,\n\t\t\t\tx`@empty()`,\n\t\t\t\tparent_nodes && x`@empty()`,\n\t\t\t\tparent_node\n\t\t\t);\n\t\t}\n\n\t\tthis.branches.forEach(branch => {\n\t\t\tbranch.fragment.render(branch.block, null, x`#nodes` as unknown as Identifier);\n\t\t});\n\t}\n\n\trender_compound(\n\t\tblock: Block,\n\t\tparent_node: Identifier,\n\t\t_parent_nodes: Identifier,\n\t\tdynamic: boolean,\n\t\t{ name, anchor, has_else, if_exists_condition, has_transitions },\n\t\tdetaching: DetachingOrNull\n\t) {\n\t\tconst select_block_type = this.renderer.component.get_unique_name('select_block_type');\n\t\tconst current_block_type = block.get_unique_name('current_block_type');\n\t\tconst need_select_block_ctx = this.branches.some(branch => branch.get_ctx_name);\n\t\tconst select_block_ctx = need_select_block_ctx ? block.get_unique_name('select_block_ctx') : null;\n\t\tconst if_ctx = select_block_ctx ? x`${select_block_ctx}(#ctx, ${current_block_type})` : x`#ctx`;\n\n\t\tconst get_block = has_else\n\t\t\t? x`${current_block_type}(${if_ctx})`\n\t\t\t: x`${current_block_type} && ${current_block_type}(${if_ctx})`;\n\n\t\tif (this.needs_update) {\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\tfunction ${select_block_type}(#ctx, #dirty) {\n\t\t\t\t\t${this.branches.map(({ dependencies, condition, snippet }) => {\n\t\t\t\t\t\treturn b`${snippet && dependencies.length > 0 ? b`if (${block.renderer.dirty(dependencies)}) ${condition} = null;` : null}`;\n\t\t\t\t\t})}\n\t\t\t\t\t${this.branches.map(({ condition, snippet, block }) => condition\n\t\t\t\t\t\t? b`\n\t\t\t\t\t\t\t\t${snippet && b`if (${condition} == null) ${condition} = !!${snippet}`}\n\t\t\t\t\t\t\t\tif (${condition}) return ${block.name};`\n\t\t\t\t\t\t: b`return ${block.name};`\n\t\t\t\t\t)}\n\t\t\t\t}\n\t\t\t`);\n\t\t} else {\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\tfunction ${select_block_type}(#ctx, #dirty) {\n\t\t\t\t\t${this.branches.map(({ condition, snippet, block }) => condition\n\t\t\t\t? b`if (${snippet || condition}) return ${block.name};`\n\t\t\t\t: b`return ${block.name};`)}\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tif (need_select_block_ctx) {\n\t\t\t// if all branches needs create a context\n\t\t\tif (this.branches.every(branch => branch.get_ctx_name)) {\n\t\t\t\tblock.chunks.init.push(b`\n\t\t\t\t\tfunction ${select_block_ctx}(#ctx, #type) {\n\t\t\t\t\t\t${this.branches.map(({ condition, get_ctx_name, block }) => {\n\t\t\t\t\t\t\treturn condition\n\t\t\t\t\t\t\t\t? b`if (#type === ${block.name}) return ${get_ctx_name}(#ctx);`\n\t\t\t\t\t\t\t\t: b`return ${get_ctx_name}(#ctx);`;\n\t\t\t\t\t\t}).filter(Boolean)}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\t// when not all branches need to create a new context,\n\t\t\t\t// this code is simpler\n\t\t\t\tblock.chunks.init.push(b`\n\t\t\t\t\tfunction ${select_block_ctx}(#ctx, #type) {\n\t\t\t\t\t\t${this.branches.map(({ get_ctx_name, block }) => {\n\t\t\t\t\t\t\treturn get_ctx_name\n\t\t\t\t\t\t\t\t? b`if (#type === ${block.name}) return ${get_ctx_name}(#ctx);`\n\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t}).filter(Boolean)}\n\t\t\t\t\t\treturn #ctx;\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\t\t}\n\n\t\tblock.chunks.init.push(b`\n\t\t\tlet ${current_block_type} = ${select_block_type}(#ctx, ${this.renderer.get_initial_dirty()});\n\t\t\tlet ${name} = ${get_block};\n\t\t`);\n\n\t\tconst initial_mount_node = parent_node || '#target';\n\t\tconst anchor_node = parent_node ? 'null' : '#anchor';\n\n\t\tif (if_exists_condition) {\n\t\t\tblock.chunks.mount.push(\n\t\t\t\tb`if (${if_exists_condition}) ${name}.m(${initial_mount_node}, ${anchor_node});`\n\t\t\t);\n\t\t} else {\n\t\t\tblock.chunks.mount.push(\n\t\t\t\tb`${name}.m(${initial_mount_node}, ${anchor_node});`\n\t\t\t);\n\t\t}\n\n\t\tif (this.needs_update) {\n\t\t\tconst update_mount_node = this.get_update_mount_node(anchor);\n\n\t\t\tconst change_block = b`\n\t\t\t\t${if_exists_condition ? b`if (${if_exists_condition}) ${name}.d(1)` : b`${name}.d(1)`};\n\t\t\t\t${name} = ${get_block};\n\t\t\t\tif (${name}) {\n\t\t\t\t\t${name}.c();\n\t\t\t\t\t${has_transitions && b`@transition_in(${name}, 1);`}\n\t\t\t\t\t${name}.m(${update_mount_node}, ${anchor});\n\t\t\t\t}\n\t\t\t`;\n\n\t\t\tif (dynamic) {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${current_block_type} === (${current_block_type} = ${select_block_type}(#ctx, #dirty)) && ${name}) {\n\t\t\t\t\t\t${name}.p(${if_ctx}, #dirty);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t${change_block}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${current_block_type} !== (${current_block_type} = ${select_block_type}(#ctx, #dirty))) {\n\t\t\t\t\t\t${change_block}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\t\t} else if (dynamic) {\n\t\t\tif (if_exists_condition) {\n\t\t\t\tblock.chunks.update.push(b`if (${if_exists_condition}) ${name}.p(${if_ctx}, #dirty);`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.update.push(b`${name}.p(${if_ctx}, #dirty);`);\n\t\t\t}\n\t\t}\n\n\t\tif (if_exists_condition) {\n\t\t\tblock.chunks.destroy.push(b`\n\t\t\t\tif (${if_exists_condition}) {\n\t\t\t\t\t${name}.d(${detaching});\n\t\t\t\t}\n\t\t\t`);\n\t\t} else {\n\t\t\tblock.chunks.destroy.push(b`\n\t\t\t\t${name}.d(${detaching});\n\t\t\t`);\n\t\t}\n\t}\n\n\t// if any of the siblings have outros, we need to keep references to the blocks\n\t// (TODO does this only apply to bidi transitions?)\n\trender_compound_with_outros(\n\t\tblock: Block,\n\t\tparent_node: Identifier,\n\t\t_parent_nodes: Identifier,\n\t\tdynamic: boolean,\n\t\t{ name, anchor, has_else, has_transitions, if_exists_condition },\n\t\tdetaching: DetachingOrNull\n\t) {\n\t\tconst select_block_type = this.renderer.component.get_unique_name('select_block_type');\n\t\tconst current_block_type_index = block.get_unique_name('current_block_type_index');\n\t\tconst previous_block_index = block.get_unique_name('previous_block_index');\n\t\tconst if_block_creators = block.get_unique_name('if_block_creators');\n\t\tconst if_blocks = block.get_unique_name('if_blocks');\n\t\tconst need_select_block_ctx = this.branches.some(branch => branch.get_ctx_name);\n\t\tconst select_block_ctx = need_select_block_ctx ? block.get_unique_name('select_block_ctx') : null;\n\t\tconst if_ctx = select_block_ctx ? x`${select_block_ctx}(#ctx, ${current_block_type_index})` : x`#ctx`;\n\n\t\tconst if_current_block_type_index = has_else\n\t\t\t? (nodes: Node[]) => nodes\n\t\t\t: (nodes: Node[]) => b`if (~${current_block_type_index}) { ${nodes} }`;\n\n\t\tblock.add_variable(current_block_type_index);\n\t\tblock.add_variable(name);\n\n\t\tblock.chunks.init.push(b`\n\t\t\tconst ${if_block_creators} = [\n\t\t\t\t${this.branches.map(branch => branch.block.name)}\n\t\t\t];\n\n\t\t\tconst ${if_blocks} = [];\n\n\t\t\t${this.needs_update\n\t\t\t\t? b`\n\t\t\t\t\tfunction ${select_block_type}(#ctx, #dirty) {\n\t\t\t\t\t\t${this.branches.map(({ dependencies, condition, snippet }) => {\n\t\t\t\t\t\t\treturn b`${snippet && dependencies.length > 0 ? b`if (${block.renderer.dirty(dependencies)}) ${condition} = null;` : null}`;\n\t\t\t\t\t\t})}\n\t\t\t\t\t\t${this.branches.map(({ condition, snippet }, i) => condition\n\t\t\t\t\t\t\t? b`\n\t\t\t\t\t\t\t\t${snippet && b`if (${condition} == null) ${condition} = !!${snippet}`}\n\t\t\t\t\t\t\t\tif (${condition}) return ${i};`\n\t\t\t\t\t\t\t: b`return ${i};`)}\n\t\t\t\t\t\t\t\t${!has_else && b`return -1;`}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t`\n\t\t\t\t: b`\n\t\t\t\t\tfunction ${select_block_type}(#ctx, #dirty) {\n\t\t\t\t\t\t${this.branches.map(({ condition, snippet }, i) => condition\n\t\t\t\t\t\t\t? b`if (${snippet || condition}) return ${i};`\n\t\t\t\t\t\t\t: b`return ${i};`)}\n\t\t\t\t\t\t${!has_else && b`return -1;`}\n\t\t\t\t\t}\n\t\t\t\t`}\n\t\t`);\n\n\t\tif (need_select_block_ctx) {\n\t\t\t// if all branches needs create a context\n\t\t\tif (this.branches.every(branch => branch.get_ctx_name)) {\n\t\t\t\tblock.chunks.init.push(b`\n\t\t\t\t\tfunction ${select_block_ctx}(#ctx, #index) {\n\t\t\t\t\t\t${this.branches.map(({ condition, get_ctx_name }, i) => {\n\t\t\t\t\t\t\treturn condition\n\t\t\t\t\t\t\t\t? b`if (#index === ${i}) return ${get_ctx_name}(#ctx);`\n\t\t\t\t\t\t\t\t: b`return ${get_ctx_name}(#ctx);`;\n\t\t\t\t\t\t}).filter(Boolean)}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\t// when not all branches need to create a new context,\n\t\t\t\t// this code is simpler\n\t\t\t\tblock.chunks.init.push(b`\n\t\t\t\t\tfunction ${select_block_ctx}(#ctx, #index) {\n\t\t\t\t\t\t${this.branches.map(({ get_ctx_name }, i) => {\n\t\t\t\t\t\t\treturn get_ctx_name\n\t\t\t\t\t\t\t\t? b`if (#index === ${i}) return ${get_ctx_name}(#ctx);`\n\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\t}).filter(Boolean)}\n\t\t\t\t\t\treturn #ctx;\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\t\t}\n\n\t\tif (has_else) {\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\t${current_block_type_index} = ${select_block_type}(#ctx, ${this.renderer.get_initial_dirty()});\n\t\t\t\t${name} = ${if_blocks}[${current_block_type_index}] = ${if_block_creators}[${current_block_type_index}](${if_ctx});\n\t\t\t`);\n\t\t} else {\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\tif (~(${current_block_type_index} = ${select_block_type}(#ctx, ${this.renderer.get_initial_dirty()}))) {\n\t\t\t\t\t${name} = ${if_blocks}[${current_block_type_index}] = ${if_block_creators}[${current_block_type_index}](${if_ctx});\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tconst initial_mount_node = parent_node || '#target';\n\t\tconst anchor_node = parent_node ? 'null' : '#anchor';\n\n\t\tblock.chunks.mount.push(\n\t\t\tif_current_block_type_index(\n\t\t\t\tb`${if_blocks}[${current_block_type_index}].m(${initial_mount_node}, ${anchor_node});`\n\t\t\t)\n\t\t);\n\n\t\tif (this.needs_update) {\n\t\t\tconst update_mount_node = this.get_update_mount_node(anchor);\n\n\t\t\tconst destroy_old_block = b`\n\t\t\t\t@group_outros();\n\t\t\t\t@transition_out(${if_blocks}[${previous_block_index}], 1, 1, () => {\n\t\t\t\t\t${if_blocks}[${previous_block_index}] = null;\n\t\t\t\t});\n\t\t\t\t@check_outros();\n\t\t\t`;\n\n\t\t\tconst create_new_block = b`\n\t\t\t\t${name} = ${if_blocks}[${current_block_type_index}];\n\t\t\t\tif (!${name}) {\n\t\t\t\t\t${name} = ${if_blocks}[${current_block_type_index}] = ${if_block_creators}[${current_block_type_index}](${if_ctx});\n\t\t\t\t\t${name}.c();\n\t\t\t\t} else {\n\t\t\t\t\t${dynamic && b`${name}.p(${if_ctx}, #dirty);`}\n\t\t\t\t}\n\t\t\t\t${has_transitions && b`@transition_in(${name}, 1);`}\n\t\t\t\t${name}.m(${update_mount_node}, ${anchor});\n\t\t\t`;\n\n\t\t\tconst change_block = has_else\n\t\t\t\t? b`\n\t\t\t\t\t${destroy_old_block}\n\n\t\t\t\t\t${create_new_block}\n\t\t\t\t`\n\t\t\t\t: b`\n\t\t\t\t\tif (${name}) {\n\t\t\t\t\t\t${destroy_old_block}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (~${current_block_type_index}) {\n\t\t\t\t\t\t${create_new_block}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t${name} = null;\n\t\t\t\t\t}\n\t\t\t\t`;\n\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tlet ${previous_block_index} = ${current_block_type_index};\n\t\t\t\t${current_block_type_index} = ${select_block_type}(#ctx, #dirty);\n\t\t\t`);\n\n\t\t\tif (dynamic) {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${current_block_type_index} === ${previous_block_index}) {\n\t\t\t\t\t\t${if_current_block_type_index(b`${if_blocks}[${current_block_type_index}].p(${if_ctx}, #dirty);`)}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t${change_block}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${current_block_type_index} !== ${previous_block_index}) {\n\t\t\t\t\t\t${change_block}\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\t\t} else if (dynamic) {\n\t\t\tif (if_exists_condition) {\n\t\t\t\tblock.chunks.update.push(b`if (${if_exists_condition}) ${name}.p(${if_ctx}, #dirty);`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.update.push(b`${name}.p(${if_ctx}, #dirty);`);\n\t\t\t}\n\t\t}\n\n\t\tblock.chunks.destroy.push(\n\t\t\tif_current_block_type_index(b`${if_blocks}[${current_block_type_index}].d(${detaching});`)\n\t\t);\n\t}\n\n\trender_simple(\n\t\tblock: Block,\n\t\tparent_node: Identifier,\n\t\t_parent_nodes: Identifier,\n\t\tdynamic: boolean,\n\t\t{ name, anchor, if_exists_condition, has_transitions },\n\t\tdetaching: DetachingOrNull\n\t) {\n\t\tconst branch = this.branches[0];\n\t\tconst if_ctx = branch.get_ctx_name ? x`${branch.get_ctx_name}(#ctx)` : x`#ctx`;\n\n\t\tif (branch.snippet) block.add_variable(branch.condition, branch.snippet);\n\n\t\tblock.chunks.init.push(b`\n\t\t\tlet ${name} = ${branch.condition} && ${branch.block.name}(${if_ctx});\n\t\t`);\n\n\t\tconst initial_mount_node = parent_node || '#target';\n\t\tconst anchor_node = parent_node ? 'null' : '#anchor';\n\n\t\tblock.chunks.mount.push(\n\t\t\tb`if (${name}) ${name}.m(${initial_mount_node}, ${anchor_node});`\n\t\t);\n\n\t\tif (branch.dependencies.length > 0) {\n\t\t\tconst update_mount_node = this.get_update_mount_node(anchor);\n\n\t\t\tconst enter = b`\n\t\t\t\tif (${name}) {\n\t\t\t\t\t${dynamic && b`${name}.p(${if_ctx}, #dirty);`}\n\t\t\t\t\t${has_transitions &&\n\t\t\t\t\t\tb`if (${block.renderer.dirty(branch.dependencies)}) {\n\t\t\t\t\t\t\t\t\t@transition_in(${name}, 1);\n\t\t\t\t\t\t\t\t}`\n\t\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t${name} = ${branch.block.name}(${if_ctx});\n\t\t\t\t\t${name}.c();\n\t\t\t\t\t${has_transitions && b`@transition_in(${name}, 1);`}\n\t\t\t\t\t${name}.m(${update_mount_node}, ${anchor});\n\t\t\t\t}\n\t\t\t`;\n\n\t\t\tif (branch.snippet) {\n\t\t\t\tblock.chunks.update.push(b`if (${block.renderer.dirty(branch.dependencies)}) ${branch.condition} = ${branch.snippet}`);\n\t\t\t}\n\n\t\t\t// no `p()` here — we don't want to update outroing nodes,\n\t\t\t// as that will typically result in glitching\n\t\t\tif (branch.block.has_outro_method) {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${branch.condition}) {\n\t\t\t\t\t\t${enter}\n\t\t\t\t\t} else if (${name}) {\n\t\t\t\t\t\t@group_outros();\n\t\t\t\t\t\t@transition_out(${name}, 1, 1, () => {\n\t\t\t\t\t\t\t${name} = null;\n\t\t\t\t\t\t});\n\t\t\t\t\t\t@check_outros();\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${branch.condition}) {\n\t\t\t\t\t\t${enter}\n\t\t\t\t\t} else if (${name}) {\n\t\t\t\t\t\t${name}.d(1);\n\t\t\t\t\t\t${name} = null;\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\t\t} else if (dynamic) {\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${branch.condition}) ${name}.p(${if_ctx}, #dirty);\n\t\t\t`);\n\t\t}\n\n\t\tif (if_exists_condition) {\n\t\t\tblock.chunks.destroy.push(b`\n\t\t\t\tif (${if_exists_condition}) ${name}.d(${detaching});\n\t\t\t`);\n\t\t} else {\n\t\t\tblock.chunks.destroy.push(b`\n\t\t\t\t${name}.d(${detaching});\n\t\t\t`);\n\t\t}\n\t}\n}\n","import Wrapper from './shared/Wrapper';\nimport Renderer from '../Renderer';\nimport Block from '../Block';\nimport KeyBlock from '../../nodes/KeyBlock';\nimport create_debugging_comment from './shared/create_debugging_comment';\nimport FragmentWrapper from './Fragment';\nimport { b, x } from 'code-red';\nimport { Identifier } from 'estree';\n\nexport default class KeyBlockWrapper extends Wrapper {\n\tnode: KeyBlock;\n\tfragment: FragmentWrapper;\n\tblock: Block;\n\tdependencies: string[];\n\tvar: Identifier = { type: 'Identifier', name: 'key_block' };\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: KeyBlock,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tthis.cannot_use_innerhtml();\n\t\tthis.not_static_content();\n\n\t\tthis.dependencies = node.expression.dynamic_dependencies();\n\n\t\tif (this.dependencies.length) {\n\t\t\tblock = block.child({\n\t\t\t\tcomment: create_debugging_comment(node, renderer.component),\n\t\t\t\tname: renderer.component.get_unique_name('create_key_block'),\n\t\t\t\ttype: 'key'\n\t\t\t});\n\t\t\tblock.add_dependencies(node.expression.dependencies);\n\t\t\trenderer.blocks.push(block);\n\t\t}\n\n\t\tthis.block = block;\n\t\tthis.fragment = new FragmentWrapper(\n\t\t\trenderer,\n\t\t\tthis.block,\n\t\t\tnode.children,\n\t\t\tthis,\n\t\t\tstrip_whitespace,\n\t\t\tnext_sibling\n\t\t);\n\t}\n\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tif (this.dependencies.length === 0) {\n\t\t\tthis.render_static_key(block, parent_node, parent_nodes);\n\t\t} else {\n\t\t\tthis.render_dynamic_key(block, parent_node, parent_nodes);\n\t\t}\n\t}\n\n\trender_static_key(_block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tthis.fragment.render(this.block, parent_node, parent_nodes);\n\t}\n\n\trender_dynamic_key(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tthis.fragment.render(\n\t\t\tthis.block,\n\t\t\tnull,\n\t\t\t(x`#nodes` as unknown) as Identifier\n\t\t);\n\n\t\tconst has_transitions = !!(\n\t\t\tthis.block.has_intro_method || this.block.has_outro_method\n\t\t);\n\t\tconst dynamic = this.block.has_update_method;\n\n\t\tconst previous_key = block.get_unique_name('previous_key');\n\t\tconst snippet = this.node.expression.manipulate(block);\n\t\tblock.add_variable(previous_key, snippet);\n\n\t\tconst not_equal = this.renderer.component.component_options.immutable ? x`@not_equal` : x`@safe_not_equal`;\n\t\tconst condition = x`${this.renderer.dirty(this.dependencies)} && ${not_equal}(${previous_key}, ${previous_key} = ${snippet})`;\n\n\t\tblock.chunks.init.push(b`\n\t\t\tlet ${this.var} = ${this.block.name}(#ctx);\n\t\t`);\n\t\tblock.chunks.create.push(b`${this.var}.c();`);\n\t\tif (this.renderer.options.hydratable) {\n\t\t\tblock.chunks.claim.push(b`${this.var}.l(${parent_nodes});`);\n\t\t}\n\t\tblock.chunks.mount.push(\n\t\t\tb`${this.var}.m(${parent_node || '#target'}, ${\n\t\t\t\tparent_node ? 'null' : '#anchor'\n\t\t\t});`\n\t\t);\n\t\tconst anchor = this.get_or_create_anchor(block, parent_node, parent_nodes);\n\t\tconst body = b`\n\t\t\t${\n\t\t\t\thas_transitions\n\t\t\t\t\t? b`\n\t\t\t\t\t\t@group_outros();\n\t\t\t\t\t\t@transition_out(${this.var}, 1, 1, @noop);\n\t\t\t\t\t\t@check_outros();\n\t\t\t\t\t`\n\t\t\t\t\t: b`${this.var}.d(1);`\n\t\t\t}\n\t\t\t${this.var} = ${this.block.name}(#ctx);\n\t\t\t${this.var}.c();\n\t\t\t${has_transitions && b`@transition_in(${this.var}, 1)`}\n\t\t\t${this.var}.m(${this.get_update_mount_node(anchor)}, ${anchor});\n\t\t`;\n\n\t\tif (dynamic) {\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${condition}) {\n\t\t\t\t\t${body}\n\t\t\t\t} else {\n\t\t\t\t\t${this.var}.p(#ctx, #dirty);\n\t\t\t\t}\n\t\t\t`);\n\t\t} else {\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${condition}) {\n\t\t\t\t\t${body}\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tif (has_transitions) {\n\t\t\tblock.chunks.intro.push(b`@transition_in(${this.var})`);\n\t\t\tblock.chunks.outro.push(b`@transition_out(${this.var})`);\n\t\t}\n\n\t\tblock.chunks.destroy.push(b`${this.var}.d(detaching)`);\n\t}\n}\n","import Let from '../../../nodes/Let';\nimport { x, p } from 'code-red';\nimport Block from '../../Block';\nimport TemplateScope from '../../../nodes/shared/TemplateScope';\nimport { BinaryExpression, Identifier } from 'estree';\n\nexport function get_slot_definition(block: Block, scope: TemplateScope, lets: Let[]) {\n\tif (lets.length === 0) return { block, scope };\n\n\tconst context_input = {\n\t\ttype: 'ObjectPattern',\n\t\tproperties: lets.map(l => ({\n\t\t\ttype: 'Property',\n\t\t\tkind: 'init',\n\t\t\tkey: l.name,\n\t\t\tvalue: l.value || l.name\n\t\t}))\n\t};\n\n\tconst properties = [];\n\tconst value_map = new Map();\n\n\tlets.forEach(l => {\n\t\tlet value: Identifier;\n\t\tif (l.names.length > 1) {\n\t\t\t// more than one, probably destructuring\n\t\t\tconst unique_name = block.get_unique_name(l.names.join('_')).name;\n\t\t\tvalue_map.set(l.value, unique_name);\n\t\t\tvalue = { type: 'Identifier', name: unique_name };\n\t\t} else {\n\t\t\tvalue = l.value || l.name;\n\t\t}\n\t\tproperties.push({\n\t\t\ttype: 'Property',\n\t\t\tkind: 'init',\n\t\t\tkey: l.name,\n\t\t\tvalue\n\t\t});\n\t});\n\n\tconst changes_input = {\n\t\ttype: 'ObjectPattern',\n\t\tproperties\n\t};\n\n\tconst names: Set<string> = new Set();\n\tconst names_lookup: Map<string, string> = new Map();\n\n\tlets.forEach(l => {\n\t\tl.names.forEach(name => {\n\t\t\tnames.add(name);\n\t\t\tif (value_map.has(l.value)) {\n\t\t\t\tnames_lookup.set(name, value_map.get(l.value));\n\t\t\t}\n\t\t});\n\t});\n\n\tconst context = {\n\t\ttype: 'ObjectExpression',\n\t\tproperties: Array.from(names).map(name => p`${block.renderer.context_lookup.get(name).index}: ${name}`)\n\t};\n\n\tconst { context_lookup } = block.renderer;\n\n\t// i am well aware that this code is gross\n\t// TODO: context-overflow make it less gross\n\tconst changes = {\n\t\ttype: 'ParenthesizedExpression',\n\t\tget expression() {\n\t\t\tif (block.renderer.context_overflow) {\n\t\t\t\tconst grouped = [];\n\n\t\t\t\tArray.from(names).forEach(name => {\n\t\t\t\t\tconst i = context_lookup.get(name).index.value as number;\n\t\t\t\t\tconst g = Math.floor(i / 31);\n\n\t\t\t\t\tconst lookup_name = names_lookup.has(name) ? names_lookup.get(name) : name;\n\n\t\t\t\t\tif (!grouped[g]) grouped[g] = [];\n\t\t\t\t\tgrouped[g].push({ name: lookup_name, n: i % 31 });\n\t\t\t\t});\n\n\t\t\t\tconst elements = [];\n\n\t\t\t\tfor (let g = 0; g < grouped.length; g += 1) {\n\t\t\t\t\telements[g] = grouped[g]\n\t\t\t\t\t\t? grouped[g]\n\t\t\t\t\t\t\t.map(({ name, n }) => x`${name} ? ${1 << n} : 0`)\n\t\t\t\t\t\t\t.reduce((lhs: ReturnType<typeof x>, rhs: ReturnType<typeof x>) => x`${lhs} | ${rhs}`)\n\t\t\t\t\t\t: x`0`;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\ttype: 'ArrayExpression',\n\t\t\t\t\telements\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn Array.from(names)\n\t\t\t\t.map(name => {\n\t\t\t\t\tconst lookup_name = names_lookup.has(name) ? names_lookup.get(name) : name;\n\t\t\t\t\tconst i = context_lookup.get(name).index.value as number;\n\t\t\t\t\treturn x`${lookup_name} ? ${1 << i} : 0`;\n\t\t\t\t})\n\t\t\t\t.reduce((lhs, rhs) => x`${lhs} | ${rhs}`) as BinaryExpression;\n\t\t}\n\t};\n\n\treturn {\n\t\tblock,\n\t\tscope,\n\t\tget_context: x`${context_input} => ${context}`,\n\t\tget_changes: x`${changes_input} => ${changes}`\n\t};\n}\n","import Wrapper from './shared/Wrapper';\nimport Renderer from '../Renderer';\nimport Block from '../Block';\nimport FragmentWrapper from './Fragment';\nimport create_debugging_comment from './shared/create_debugging_comment';\nimport { get_slot_definition } from './shared/get_slot_definition';\nimport { b, x } from 'code-red';\nimport { sanitize } from '../../../utils/names';\nimport { Identifier } from 'estree';\nimport InlineComponentWrapper from './InlineComponent';\nimport { extract_names } from 'periscopic';\nimport SlotTemplate from '../../nodes/SlotTemplate';\nimport { add_const_tags, add_const_tags_context } from './shared/add_const_tags';\n\nexport default class SlotTemplateWrapper extends Wrapper {\n\tnode: SlotTemplate;\n\tfragment: FragmentWrapper;\n\tblock: Block;\n\tparent: InlineComponentWrapper;\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: SlotTemplate,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tconst { scope, lets, const_tags, slot_template_name } = this.node;\n\n\t\tlets.forEach(l => {\n\t\t\textract_names(l.value || l.name).forEach(name => {\n\t\t\t\trenderer.add_to_context(name, true);\n\t\t\t});\n\t\t});\n\n\t\tadd_const_tags_context(renderer, const_tags);\n\n\t\tthis.block = block.child({\n\t\t\tcomment: create_debugging_comment(this.node, this.renderer.component),\n\t\t\tname: this.renderer.component.get_unique_name(\n\t\t\t\t`create_${sanitize(slot_template_name)}_slot`\n\t\t\t),\n\t\t\ttype: 'slot'\n\t\t});\n\t\tthis.renderer.blocks.push(this.block);\n\n\t\tconst seen = new Set(lets.map(l => l.name.name));\n\t\tthis.parent.node.lets.forEach(l => {\n\t\t\tif (!seen.has(l.name.name)) lets.push(l);\n\t\t});\n\n\t\tthis.parent.set_slot(\n\t\t\tslot_template_name,\n\t\t\tget_slot_definition(this.block, scope, lets)\n\t\t);\n\n\t\tthis.fragment = new FragmentWrapper(\n\t\t\trenderer,\n\t\t\tthis.block,\n\t\t\tnode.type === 'SlotTemplate' ? node.children : [node],\n\t\t\tthis,\n\t\t\tstrip_whitespace,\n\t\t\tnext_sibling\n\t\t);\n\n\t\tthis.block.parent.add_dependencies(this.block.dependencies);\n\t}\n\n\trender() {\n\t\tthis.fragment.render(this.block, null, x`#nodes` as Identifier);\n\n\t\tif (this.node.const_tags.length > 0) {\n\t\t\tthis.render_get_context();\n\t\t}\n\t}\n\trender_get_context() {\n\t\tconst get_context = this.block.renderer.component.get_unique_name('get_context');\n\t\tthis.block.renderer.blocks.push(b`\n\t\t\tfunction ${get_context}(#ctx) {\n\t\t\t\t${add_const_tags(this.block, this.node.const_tags, '#ctx')}\n\t\t\t}\n\t\t`);\n\t\tthis.block.chunks.declarations.push(b`${get_context}(#ctx)`);\n\t\tif (this.block.has_update_method) {\n\t\t\tthis.block.chunks.update.unshift(b`${get_context}(#ctx)`);\n\t\t}\n\t}\n}\n","import { MemberExpression, Identifier } from 'estree';\n\nexport function string_to_member_expression(name: string) {\n\tconst parts = name.split('.');\n\tlet node: MemberExpression | Identifier = {\n\t\ttype: 'Identifier',\n\t\tname: parts[0]\n\t};\n\tfor (let i = 1; i < parts.length; i++) {\n\t\tnode = {\n\t\t\ttype: 'MemberExpression',\n\t\t\tobject: node,\n\t\t\tproperty: { type: 'Identifier', name: parts[i] }\n\t\t} as MemberExpression;\n\t}\n\treturn node;\n}\n","import Wrapper from '../shared/Wrapper';\nimport BindingWrapper from '../Element/Binding';\nimport Renderer from '../../Renderer';\nimport Block from '../../Block';\nimport InlineComponent from '../../../nodes/InlineComponent';\nimport FragmentWrapper from '../Fragment';\nimport SlotTemplateWrapper from '../SlotTemplate';\nimport { sanitize } from '../../../../utils/names';\nimport add_to_set from '../../../utils/add_to_set';\nimport { b, x, p } from 'code-red';\nimport Attribute from '../../../nodes/Attribute';\nimport TemplateScope from '../../../nodes/shared/TemplateScope';\nimport is_dynamic from '../shared/is_dynamic';\nimport bind_this from '../shared/bind_this';\nimport { Node, Identifier, ObjectExpression } from 'estree';\nimport EventHandler from '../Element/EventHandler';\nimport { extract_names } from 'periscopic';\nimport mark_each_block_bindings from '../shared/mark_each_block_bindings';\nimport { string_to_member_expression } from '../../../utils/string_to_member_expression';\nimport SlotTemplate from '../../../nodes/SlotTemplate';\nimport { is_head } from '../shared/is_head';\nimport compiler_warnings from '../../../compiler_warnings';\nimport { namespaces } from '../../../../utils/namespaces';\nimport { extract_ignores_above_node } from '../../../../utils/extract_svelte_ignore';\n\ntype SlotDefinition = { block: Block; scope: TemplateScope; get_context?: Node; get_changes?: Node };\n\nconst regex_invalid_variable_identifier_characters = /[^a-zA-Z_$]/g;\n\nexport default class InlineComponentWrapper extends Wrapper {\n\tvar: Identifier;\n\tslots: Map<string, SlotDefinition> = new Map();\n\tnode: InlineComponent;\n\tfragment: FragmentWrapper;\n\tchildren: Array<Wrapper | FragmentWrapper> = [];\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: InlineComponent,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\n\t\tthis.cannot_use_innerhtml();\n\t\tthis.not_static_content();\n\n\t\tif (this.node.expression) {\n\t\t\tblock.add_dependencies(this.node.expression.dependencies);\n\t\t}\n\n\t\tthis.node.attributes.forEach(attr => {\n\t\t\tblock.add_dependencies(attr.dependencies);\n\t\t});\n\n\t\tthis.node.bindings.forEach(binding => {\n\t\t\tif (binding.is_contextual) {\n\t\t\t\tmark_each_block_bindings(this, binding);\n\t\t\t}\n\n\t\t\tblock.add_dependencies(binding.expression.dependencies);\n\t\t});\n\n\t\tthis.node.handlers.forEach(handler => {\n\t\t\tif (handler.expression) {\n\t\t\t\tblock.add_dependencies(handler.expression.dependencies);\n\t\t\t}\n\t\t});\n\n\t\tthis.node.css_custom_properties.forEach(attr => {\n\t\t\tblock.add_dependencies(attr.dependencies);\n\t\t});\n\n\t\tthis.var = {\n\t\t\ttype: 'Identifier',\n\t\t\tname: (\n\t\t\t\tthis.node.name === 'svelte:self' ? renderer.component.name.name :\n\t\t\t\t\tthis.node.name === 'svelte:component' ? 'switch_instance' :\n\t\t\t\t\t\tsanitize(this.node.name)\n\t\t\t).toLowerCase()\n\t\t};\n\n\t\tif (this.node.children.length) {\n\t\t\tthis.node.lets.forEach(l => {\n\t\t\t\textract_names(l.value || l.name).forEach(name => {\n\t\t\t\t\trenderer.add_to_context(name, true);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tthis.children = this.node.children.map(child => new SlotTemplateWrapper(renderer, block, this, child as SlotTemplate, strip_whitespace, next_sibling));\n\t\t}\n\n\t\tblock.add_outro();\n\t}\n\n\tset_slot(name: string, slot_definition: SlotDefinition) {\n\t\tif (this.slots.has(name)) {\n\t\t\tif (name === 'default') {\n\t\t\t\tthrow new Error('Found elements without slot attribute when using slot=\"default\"');\n\t\t\t}\n\t\t\tthrow new Error(`Duplicate slot name \"${name}\" in <${this.node.name}>`);\n\t\t}\n\t\tthis.slots.set(name, slot_definition);\n\t}\n\n\twarn_if_reactive() {\n\t\tconst { name } = this.node;\n\t\tconst variable = this.renderer.component.var_lookup.get(name);\n\t\tif (!variable) {\n\t\t\treturn;\n\t\t}\n\n const ignores = extract_ignores_above_node(this.node); \n this.renderer.component.push_ignores(ignores);\n\t\tif (variable.reassigned || variable.export_name || variable.is_reactive_dependency) {\n\t\t\tthis.renderer.component.warn(this.node, compiler_warnings.reactive_component(name));\n\t\t}\n this.renderer.component.pop_ignores();\n\t}\n\n\trender(\n\t\tblock: Block,\n\t\tparent_node: Identifier,\n\t\tparent_nodes: Identifier\n\t) {\n\t\tthis.warn_if_reactive();\n\n\t\tconst { renderer } = this;\n\t\tconst { component } = renderer;\n\n\t\tconst name = this.var;\n\t\tblock.add_variable(name);\n\n\t\tconst component_opts = x`{}` as ObjectExpression;\n\n\t\tconst statements: Array<Node | Node[]> = [];\n\t\tconst updates: Array<Node | Node[]> = [];\n\n\t\tthis.children.forEach((child) => {\n\t\t\tthis.renderer.add_to_context('$$scope', true);\n\t\t\tchild.render(block, null, x`#nodes` as Identifier);\n\t\t});\n\n\t\tlet props: Identifier | undefined;\n\t\tconst name_changes = block.get_unique_name(`${name.name}_changes`);\n\n\t\tconst uses_spread = !!this.node.attributes.find(a => a.is_spread);\n\n\t\t// removing empty slot\n\t\tfor (const slot of this.slots.keys()) {\n\t\t\tif (!this.slots.get(slot).block.has_content()) {\n\t\t\t\tthis.renderer.remove_block(this.slots.get(slot).block);\n\t\t\t\tthis.slots.delete(slot);\n\t\t\t}\n\t\t}\n\n\t\tconst has_css_custom_properties = this.node.css_custom_properties.length > 0;\n\t\tconst is_svg_namespace = this.node.namespace === namespaces.svg;\n\t\tconst css_custom_properties_wrapper_element = is_svg_namespace ? 'g' : 'div';\n\t\tconst css_custom_properties_wrapper = has_css_custom_properties ? block.get_unique_name(css_custom_properties_wrapper_element) : null;\n\t\tif (has_css_custom_properties) {\n\t\t\tblock.add_variable(css_custom_properties_wrapper);\n\t\t}\n\n\t\tconst initial_props = this.slots.size > 0\n\t\t\t? [\n\t\t\t\tp`$$slots: {\n\t\t\t\t\t${Array.from(this.slots).map(([name, slot]) => {\n\t\t\t\t\t\treturn p`${name}: [${slot.block.name}, ${slot.get_context || null}, ${slot.get_changes || null}]`;\n\t\t\t\t\t})}\n\t\t\t\t}`,\n\t\t\t\tp`$$scope: {\n\t\t\t\t\tctx: #ctx\n\t\t\t\t}`\n\t\t\t]\n\t\t\t: [];\n\n\t\tconst attribute_object = uses_spread\n\t\t\t? x`{ ${initial_props} }`\n\t\t\t: x`{\n\t\t\t\t${this.node.attributes.map(attr => p`${attr.name}: ${attr.get_value(block)}`)},\n\t\t\t\t${initial_props}\n\t\t\t}`;\n\n\t\tif (this.node.attributes.length || this.node.bindings.length || initial_props.length) {\n\t\t\tif (!uses_spread && this.node.bindings.length === 0) {\n\t\t\t\tcomponent_opts.properties.push(p`props: ${attribute_object}`);\n\t\t\t} else {\n\t\t\t\tprops = block.get_unique_name(`${name.name}_props`);\n\t\t\t\tcomponent_opts.properties.push(p`props: ${props}`);\n\t\t\t}\n\t\t}\n\n\t\tif (component.compile_options.dev) {\n\t\t\t// TODO this is a terrible hack, but without it the component\n\t\t\t// will complain that options.target is missing. This would\n\t\t\t// work better if components had separate public and private\n\t\t\t// APIs\n\t\t\tcomponent_opts.properties.push(p`$$inline: true`);\n\t\t}\n\n\t\tconst fragment_dependencies = new Set(this.slots.size ? ['$$scope'] : []);\n\t\tthis.slots.forEach(slot => {\n\t\t\tslot.block.dependencies.forEach(name => {\n\t\t\t\tconst is_let = slot.scope.is_let(name);\n\t\t\t\tconst variable = renderer.component.var_lookup.get(name);\n\n\t\t\t\tif (is_let || is_dynamic(variable)) fragment_dependencies.add(name);\n\t\t\t});\n\t\t});\n\n\t\tconst dynamic_attributes = this.node.attributes.filter(a => a.get_dependencies().length > 0);\n\n\t\tif (!uses_spread && (dynamic_attributes.length > 0 || this.node.bindings.length > 0 || fragment_dependencies.size > 0)) {\n\t\t\tupdates.push(b`const ${name_changes} = {};`);\n\t\t}\n\n\t\tif (this.node.attributes.length) {\n\t\t\tif (uses_spread) {\n\t\t\t\tconst levels = block.get_unique_name(`${this.var.name}_spread_levels`);\n\n\t\t\t\tconst initial_props = [];\n\t\t\t\tconst changes = [];\n\n\t\t\t\tconst all_dependencies: Set<string> = new Set();\n\n\t\t\t\tthis.node.attributes.forEach(attr => {\n\t\t\t\t\tadd_to_set(all_dependencies, attr.dependencies);\n\t\t\t\t});\n\n\t\t\t\tthis.node.attributes.forEach((attr, i) => {\n\t\t\t\t\tconst { name, dependencies } = attr;\n\n\t\t\t\t\tconst condition = dependencies.size > 0 && (dependencies.size !== all_dependencies.size)\n\t\t\t\t\t\t? renderer.dirty(Array.from(dependencies))\n\t\t\t\t\t\t: null;\n\t\t\t\t\tconst unchanged = dependencies.size === 0;\n\n\t\t\t\t\tlet change_object: Node | ReturnType<typeof x>;\n\t\t\t\t\tif (attr.is_spread) {\n\t\t\t\t\t\tconst value = attr.expression.manipulate(block);\n\t\t\t\t\t\tinitial_props.push(value);\n\n\t\t\t\t\t\tlet value_object = value;\n\t\t\t\t\t\tif (attr.expression.node.type !== 'ObjectExpression') {\n\t\t\t\t\t\t\tvalue_object = x`@get_spread_object(${value})`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchange_object = value_object;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst obj = x`{ ${name}: ${attr.get_value(block)} }`;\n\t\t\t\t\t\tinitial_props.push(obj);\n\t\t\t\t\t\tchange_object = obj;\n\t\t\t\t\t}\n\n\t\t\t\t\tchanges.push(\n\t\t\t\t\t\tunchanged\n\t\t\t\t\t\t\t? x`${levels}[${i}]`\n\t\t\t\t\t\t\t: condition\n\t\t\t\t\t\t\t? x`${condition} && ${change_object}`\n\t\t\t\t\t\t\t: change_object\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tblock.chunks.init.push(b`\n\t\t\t\t\tconst ${levels} = [\n\t\t\t\t\t\t${initial_props}\n\t\t\t\t\t];\n\t\t\t\t`);\n\n\t\t\t\tstatements.push(b`\n\t\t\t\t\tfor (let #i = 0; #i < ${levels}.length; #i += 1) {\n\t\t\t\t\t\t${props} = @assign(${props}, ${levels}[#i]);\n\t\t\t\t\t}\n\t\t\t\t`);\n\n\t\t\t\tif (all_dependencies.size) {\n\t\t\t\t\tconst condition = renderer.dirty(Array.from(all_dependencies));\n\n\t\t\t\t\tupdates.push(b`\n\t\t\t\t\t\tconst ${name_changes} = ${condition} ? @get_spread_update(${levels}, [\n\t\t\t\t\t\t\t${changes}\n\t\t\t\t\t\t]) : {}\n\t\t\t\t\t`);\n\t\t\t\t} else {\n\t\t\t\t\tupdates.push(b`\n\t\t\t\t\t\tconst ${name_changes} = {};\n\t\t\t\t\t`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdynamic_attributes.forEach((attribute: Attribute) => {\n\t\t\t\t\tconst dependencies = attribute.get_dependencies();\n\t\t\t\t\tif (dependencies.length > 0) {\n\t\t\t\t\t\tconst condition = renderer.dirty(dependencies);\n\n\t\t\t\t\t\tupdates.push(b`\n\t\t\t\t\t\t\tif (${condition}) ${name_changes}.${attribute.name} = ${attribute.get_value(block)};\n\t\t\t\t\t\t`);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (fragment_dependencies.size > 0) {\n\t\t\tupdates.push(b`\n\t\t\t\tif (${renderer.dirty(Array.from(fragment_dependencies))}) {\n\t\t\t\t\t${name_changes}.$$scope = { dirty: #dirty, ctx: #ctx };\n\t\t\t\t}`);\n\t\t}\n\n\t\tconst munged_bindings = this.node.bindings.map(binding => {\n\t\t\tcomponent.has_reactive_assignments = true;\n\n\t\t\tif (binding.name === 'this') {\n\t\t\t\treturn bind_this(component, block, new BindingWrapper(block, binding, this), this.var);\n\t\t\t}\n\n\t\t\tconst id = component.get_unique_name(`${this.var.name}_${binding.name}_binding`);\n\t\t\trenderer.add_to_context(id.name);\n\t\t\tconst callee = renderer.reference(id);\n\n\t\t\tconst updating = block.get_unique_name(`updating_${binding.name}`);\n\t\t\tblock.add_variable(updating);\n\n\t\t\tconst snippet = binding.expression.manipulate(block);\n\n\t\t\tstatements.push(b`\n\t\t\t\tif (${snippet} !== void 0) {\n\t\t\t\t\t${props}.${binding.name} = ${snippet};\n\t\t\t\t}`\n\t\t\t);\n\n\t\t\tupdates.push(b`\n\t\t\t\tif (!${updating} && ${renderer.dirty(Array.from(binding.expression.dependencies))}) {\n\t\t\t\t\t${updating} = true;\n\t\t\t\t\t${name_changes}.${binding.name} = ${snippet};\n\t\t\t\t\t@add_flush_callback(() => ${updating} = false);\n\t\t\t\t}\n\t\t\t`);\n\n\t\t\tconst contextual_dependencies = Array.from(binding.expression.contextual_dependencies);\n\t\t\tconst dependencies = Array.from(binding.expression.dependencies);\n\n\t\t\tlet lhs = binding.raw_expression;\n\n\t\t\tif (binding.is_contextual && binding.expression.node.type === 'Identifier') {\n\t\t\t\t// bind:x={y} — we can't just do `y = x`, we need to\n\t\t\t\t// to `array[index] = x;\n\t\t\t\tconst { name } = binding.expression.node;\n\t\t\t\tconst { object, property, snippet } = block.bindings.get(name);\n\t\t\t\tlhs = snippet;\n\t\t\t\tcontextual_dependencies.push(object.name, property.name);\n\t\t\t}\n\n\t\t\tconst params: Identifier[] = [x`#value` as Identifier];\n\t\t\tconst args = [x`#value`];\n\t\t\tif (contextual_dependencies.length > 0) {\n\n\t\t\t\tcontextual_dependencies.forEach(name => {\n\t\t\t\t\tparams.push({\n\t\t\t\t\t\ttype: 'Identifier',\n\t\t\t\t\t\tname\n\t\t\t\t\t});\n\n\t\t\t\t\trenderer.add_to_context(name, true);\n\t\t\t\t\targs.push(renderer.reference(name));\n\t\t\t\t});\n\n\n\t\t\t\tblock.maintain_context = true; // TODO put this somewhere more logical\n\t\t\t}\n\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\tfunction ${id}(#value) {\n\t\t\t\t\t${callee}(${args});\n\t\t\t\t}\n\t\t\t`);\n\n\t\t\tlet invalidate_binding = b`\n\t\t\t\t${lhs} = #value;\n\t\t\t\t${renderer.invalidate(dependencies[0])};\n\t\t\t`;\n\t\t\tif (binding.expression.node.type === 'MemberExpression') {\n\t\t\t\tinvalidate_binding = b`\n\t\t\t\t\tif ($$self.$$.not_equal(${lhs}, #value)) {\n\t\t\t\t\t\t${invalidate_binding}\n\t\t\t\t\t}\n\t\t\t\t`;\n\t\t\t}\n\n\t\t\tconst body = b`\n\t\t\t\tfunction ${id}(${params}) {\n\t\t\t\t\t${invalidate_binding}\n\t\t\t\t}\n\t\t\t`;\n\n\t\t\tcomponent.partly_hoisted.push(body);\n\n\t\t\treturn b`@binding_callbacks.push(() => @bind(${this.var}, '${binding.name}', ${id}));`;\n\t\t});\n\n\t\tconst munged_handlers = this.node.handlers.map(handler => {\n\t\t\tconst event_handler = new EventHandler(handler, this);\n\t\t\tlet snippet = event_handler.get_snippet(block);\n\t\t\tif (handler.modifiers.has('once')) snippet = x`@once(${snippet})`;\n\n\t\t\treturn b`${name}.$on(\"${handler.name}\", ${snippet});`;\n\t\t});\n\n\t\tconst mount_target = has_css_custom_properties ? css_custom_properties_wrapper : (parent_node || '#target');\n\t\tconst mount_anchor = has_css_custom_properties ? 'null' : (parent_node ? 'null' : '#anchor');\n\t\tconst to_claim = parent_nodes && this.renderer.options.hydratable;\n\t\tlet claim_nodes = parent_nodes;\n\n\t\tif (this.node.name === 'svelte:component') {\n\t\t\tconst switch_value = block.get_unique_name('switch_value');\n\t\t\tconst switch_props = block.get_unique_name('switch_props');\n\n\t\t\tconst snippet = this.node.expression.manipulate(block);\n\t\t\tconst dependencies = this.node.expression.dynamic_dependencies();\n\n\t\t\tif (has_css_custom_properties) {\n\t\t\t\tthis.set_css_custom_properties(block, css_custom_properties_wrapper, css_custom_properties_wrapper_element, is_svg_namespace);\n\t\t\t}\n\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\tvar ${switch_value} = ${snippet};\n\n\t\t\t\tfunction ${switch_props}(#ctx) {\n\t\t\t\t\t${(this.node.attributes.length > 0 || this.node.bindings.length > 0) && b`\n\t\t\t\t\t${props && b`let ${props} = ${attribute_object};`}`}\n\t\t\t\t\t${statements}\n\t\t\t\t\treturn ${component_opts};\n\t\t\t\t}\n\n\t\t\t\tif (${switch_value}) {\n\t\t\t\t\t${name} = @construct_svelte_component(${switch_value}, ${switch_props}(#ctx));\n\n\t\t\t\t\t${munged_bindings}\n\t\t\t\t\t${munged_handlers}\n\t\t\t\t}\n\t\t\t`);\n\n\t\t\tblock.chunks.create.push(\n\t\t\t\tb`if (${name}) @create_component(${name}.$$.fragment);`\n\t\t\t);\n\n\t\t\tif (css_custom_properties_wrapper) this.create_css_custom_properties_wrapper_mount_chunk(block, parent_node, css_custom_properties_wrapper);\n\t\t\tblock.chunks.mount.push(b`if (${name}) @mount_component(${name}, ${mount_target}, ${mount_anchor});`);\n\n\t\t\tif (to_claim) {\n\t\t\t\tif (css_custom_properties_wrapper) claim_nodes = this.create_css_custom_properties_wrapper_claim_chunk(block, claim_nodes, css_custom_properties_wrapper, css_custom_properties_wrapper_element, is_svg_namespace);\n\t\t\t\tblock.chunks.claim.push(b`if (${name}) @claim_component(${name}.$$.fragment, ${claim_nodes});`);\n\t\t\t}\n\n\t\t\tif (updates.length) {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\t${updates}\n\t\t\t\t`);\n\t\t\t}\n\n\t\t\tconst tmp_anchor = this.get_or_create_anchor(block, parent_node, parent_nodes);\n\t\t\tconst anchor = has_css_custom_properties ? 'null' : tmp_anchor;\n\t\t\tconst update_mount_node = has_css_custom_properties ? css_custom_properties_wrapper : this.get_update_mount_node(tmp_anchor);\n\t\t\tconst update_insert =\n\t\t\t\tcss_custom_properties_wrapper &&\n\t\t\t\t(tmp_anchor.name !== 'null'\n\t\t\t\t\t? b`@insert(${tmp_anchor}.parentNode, ${css_custom_properties_wrapper}, ${tmp_anchor});`\n\t\t\t\t\t: b`@insert(${parent_node}, ${css_custom_properties_wrapper}, ${tmp_anchor});`);\n\n\t\t\tlet update_condition = x`${switch_value} !== (${switch_value} = ${snippet})`;\n\t\t\tif (dependencies.length > 0) {\n\t\t\t\tupdate_condition = x`${block.renderer.dirty(dependencies)} && ${update_condition}`;\n\t\t\t}\n\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${update_condition}) {\n\t\t\t\t\tif (${name}) {\n\t\t\t\t\t\t@group_outros();\n\t\t\t\t\t\tconst old_component = ${name};\n\t\t\t\t\t\t@transition_out(old_component.$$.fragment, 1, 0, () => {\n\t\t\t\t\t\t\t@destroy_component(old_component, 1);\n\t\t\t\t\t\t\t${has_css_custom_properties ? b`@detach(${update_mount_node})` : null}\n\t\t\t\t\t\t});\n\t\t\t\t\t\t@check_outros();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (${switch_value}) {\n\t\t\t\t\t\t${update_insert}\n\t\t\t\t\t\t${name} = @construct_svelte_component(${switch_value}, ${switch_props}(#ctx));\n\n\t\t\t\t\t\t${munged_bindings}\n\t\t\t\t\t\t${munged_handlers}\n\n\t\t\t\t\t\t@create_component(${name}.$$.fragment);\n\t\t\t\t\t\t@transition_in(${name}.$$.fragment, 1);\n\t\t\t\t\t\t@mount_component(${name}, ${update_mount_node}, ${anchor});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t${name} = null;\n\t\t\t\t\t}\n\t\t\t\t} else if (${switch_value}) {\n\t\t\t\t\t${updates.length > 0 && b`${name}.$set(${name_changes});`}\n\t\t\t\t}\n\t\t\t`);\n\n\t\t\tblock.chunks.intro.push(b`\n\t\t\t\tif (${name}) @transition_in(${name}.$$.fragment, #local);\n\t\t\t`);\n\n\t\t\tblock.chunks.outro.push(\n\t\t\t\tb`if (${name}) @transition_out(${name}.$$.fragment, #local);`\n\t\t\t);\n\n\t\t\tblock.chunks.destroy.push(b`if (${name}) @destroy_component(${name}, ${parent_node ? null : 'detaching'});`);\n\t\t} else {\n\t\t\tconst expression = this.node.name === 'svelte:self'\n\t\t\t\t? component.name\n\t\t\t\t: this.renderer.reference(string_to_member_expression(this.node.name));\n\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\t${(this.node.attributes.length > 0 || this.node.bindings.length > 0) && b`\n\t\t\t\t${props && b`let ${props} = ${attribute_object};`}`}\n\t\t\t\t${statements}\n\t\t\t\t${name} = new ${expression}(${component_opts});\n\n\t\t\t\t${munged_bindings}\n\t\t\t\t${munged_handlers}\n\t\t\t`);\n\n\t\t\tif (has_css_custom_properties) {\n\t\t\t\tthis.set_css_custom_properties(block, css_custom_properties_wrapper, css_custom_properties_wrapper_element, is_svg_namespace);\n\t\t\t}\n\t\t\tblock.chunks.create.push(b`@create_component(${name}.$$.fragment);`);\n\n\t\t\tif (css_custom_properties_wrapper) this.create_css_custom_properties_wrapper_mount_chunk(block, parent_node, css_custom_properties_wrapper);\n\t\t\tblock.chunks.mount.push(b`@mount_component(${name}, ${mount_target}, ${mount_anchor});`);\n\n\t\t\tif (to_claim) {\n\t\t\t\tif (css_custom_properties_wrapper) claim_nodes = this.create_css_custom_properties_wrapper_claim_chunk(block, claim_nodes, css_custom_properties_wrapper, css_custom_properties_wrapper_element, is_svg_namespace);\n\t\t\t\tblock.chunks.claim.push(b`@claim_component(${name}.$$.fragment, ${claim_nodes});`);\n\t\t\t}\n\n\t\t\tblock.chunks.intro.push(b`\n\t\t\t\t@transition_in(${name}.$$.fragment, #local);\n\t\t\t`);\n\n\t\t\tif (updates.length) {\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\t${updates}\n\t\t\t\t\t${name}.$set(${name_changes});\n\t\t\t\t`);\n\t\t\t}\n\n\t\t\tblock.chunks.destroy.push(b`\n\t\t\t\t@destroy_component(${name}, ${parent_node ? null : 'detaching'});\n\t\t\t`);\n\n\t\t\tblock.chunks.outro.push(\n\t\t\t\tb`@transition_out(${name}.$$.fragment, #local);`\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate create_css_custom_properties_wrapper_mount_chunk(\n\t\tblock: Block,\n\t\tparent_node: Identifier,\n\t\tcss_custom_properties_wrapper: Identifier | null\n\t) {\n\t\t\tif (parent_node) {\n\t\t\t\tblock.chunks.mount.push(b`@append(${parent_node}, ${css_custom_properties_wrapper})`);\n\t\t\t\tif (is_head(parent_node)) {\n\t\t\t\t\tblock.chunks.destroy.push(b`@detach(${css_custom_properties_wrapper});`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tblock.chunks.mount.push(b`@insert(#target, ${css_custom_properties_wrapper}, #anchor);`);\n\t\t\t\t// TODO we eventually need to consider what happens to elements\n\t\t\t\t// that belong to the same outgroup as an outroing element...\n\t\t\t\tblock.chunks.destroy.push(b`if (detaching && ${this.var}) @detach(${css_custom_properties_wrapper});`);\n\t\t\t}\n\t}\n\n\tprivate create_css_custom_properties_wrapper_claim_chunk(\n\t\tblock: Block,\n\t\tparent_nodes: Identifier,\n\t\tcss_custom_properties_wrapper: Identifier | null,\n\t\tcss_custom_properties_wrapper_element: string,\n\t\tis_svg_namespace: boolean\n\t) {\n\t\tconst nodes = block.get_unique_name(`${css_custom_properties_wrapper.name}_nodes`);\n\t\tconst claim_element = is_svg_namespace ? x`@claim_svg_element` : x`@claim_element`;\n\t\tblock.chunks.claim.push(b`\n\t\t\t${css_custom_properties_wrapper} = ${claim_element}(${parent_nodes}, \"${css_custom_properties_wrapper_element.toUpperCase()}\", { style: true })\n\t\t\tvar ${nodes} = @children(${css_custom_properties_wrapper});\n\t\t`);\n\t\treturn nodes;\n\t}\n\n\tprivate set_css_custom_properties(\n\t\tblock: Block,\n\t\tcss_custom_properties_wrapper: Identifier,\n\t\tcss_custom_properties_wrapper_element: string,\n\t\tis_svg_namespace: boolean\n\t) {\n\t\tconst element = is_svg_namespace ? x`@svg_element` : x`@element`;\n\t\tblock.chunks.create.push(b`${css_custom_properties_wrapper} = ${element}(\"${css_custom_properties_wrapper_element}\");`);\n\t\tif (!is_svg_namespace) block.chunks.hydrate.push(b`@set_style(${css_custom_properties_wrapper}, \"display\", \"contents\");`);\n\t\tthis.node.css_custom_properties.forEach((attr) => {\n\t\t\tconst dependencies = attr.get_dependencies();\n\t\t\tconst should_cache = attr.should_cache();\n\t\t\tconst last = should_cache &&\tblock.get_unique_name(`${attr.name.replace(regex_invalid_variable_identifier_characters, '_')}_last`);\n\t\t\tif (should_cache) block.add_variable(last);\n\t\t\tconst value = attr.get_value(block);\n\t\t\tconst init = should_cache ? x`${last} = ${value}` : value;\n\n\t\t\tblock.chunks.hydrate.push(\n\t\t\t\tb`@set_style(${css_custom_properties_wrapper}, \"${attr.name}\", ${init});`\n\t\t\t);\n\t\t\tif (dependencies.length > 0) {\n\t\t\t\tlet condition = block.renderer.dirty(dependencies);\n\t\t\t\tif (should_cache) condition = x`${condition} && (${last} !== (${last} = ${value}))`;\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${condition}) {\n\t\t\t\t\t\t@set_style(${css_custom_properties_wrapper}, \"${attr.name}\", ${should_cache ? last : value});\n\t\t\t\t\t}\n\t\t\t\t`);\n\t\t\t}\n\t\t});\n\t}\n}\n","import Attribute from '../nodes/Attribute';\nimport { p, x } from 'code-red';\nimport { string_literal } from './stringify';\nimport Block from '../render_dom/Block';\n\nexport default function get_slot_data(values: Map<string, Attribute>, block: Block = null) {\n\treturn {\n\t\ttype: 'ObjectExpression',\n\t\tproperties: Array.from(values.values())\n\t\t\t.filter(attribute => attribute.name !== 'name')\n\t\t\t.map(attribute => {\n\t\t\t\tif (attribute.is_spread) {\n\t\t\t\t\tconst argument = get_spread_value(block, attribute);\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'SpreadElement',\n\t\t\t\t\t\targument\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst value = get_value(block, attribute);\n\t\t\t\treturn p`${attribute.name}: ${value}`;\n\t\t\t})\n\t};\n}\n\nfunction get_value(block: Block, attribute: Attribute) {\n\tif (attribute.is_true) return x`true`;\n\tif (attribute.chunks.length === 0) return x`\"\"`;\n\n\tlet value = attribute.chunks\n\t\t.map(chunk => chunk.type === 'Text' ? string_literal(chunk.data) : (block ? chunk.manipulate(block) : chunk.node))\n\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\n\n\tif (attribute.chunks.length > 1 && attribute.chunks[0].type !== 'Text') {\n\t\tvalue = x`\"\" + ${value}`;\n\t}\n\n\treturn value;\n}\n\nfunction get_spread_value(block: Block, attribute: Attribute) {\n\treturn block ? attribute.expression.manipulate(block) : attribute.expression.node;\n}\n","import Wrapper from './shared/Wrapper';\nimport Renderer from '../Renderer';\nimport Block from '../Block';\nimport Slot from '../../nodes/Slot';\nimport FragmentWrapper from './Fragment';\nimport { b, p, x } from 'code-red';\nimport { sanitize } from '../../../utils/names';\nimport add_to_set from '../../utils/add_to_set';\nimport get_slot_data from '../../utils/get_slot_data';\nimport { is_reserved_keyword } from '../../utils/reserved_keywords';\nimport is_dynamic from './shared/is_dynamic';\nimport { Identifier, ObjectExpression, Node } from 'estree';\nimport create_debugging_comment from './shared/create_debugging_comment';\n\nexport default class SlotWrapper extends Wrapper {\n\tnode: Slot;\n\tfragment: FragmentWrapper;\n\tfallback: Block | null = null;\n\tslot_block: Block;\n\n\tvar: Identifier = { type: 'Identifier', name: 'slot' };\n\tdependencies: Set<string> = new Set(['$$scope']);\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: Slot,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\t\tthis.cannot_use_innerhtml();\n\t\tthis.not_static_content();\n\n\t\tif (this.node.children.length) {\n\t\t\tthis.fallback = block.child({\n\t\t\t\tcomment: create_debugging_comment(this.node.children[0], this.renderer.component),\n\t\t\t\tname: this.renderer.component.get_unique_name('fallback_block'),\n\t\t\t\ttype: 'fallback'\n\t\t\t});\n\t\t\trenderer.blocks.push(this.fallback);\n\t\t}\n\n\t\tthis.fragment = new FragmentWrapper(\n\t\t\trenderer,\n\t\t\tthis.fallback,\n\t\t\tnode.children,\n\t\t\tthis,\n\t\t\tstrip_whitespace,\n\t\t\tnext_sibling\n\t\t);\n\n\t\tthis.node.values.forEach(attribute => {\n\t\t\tadd_to_set(this.dependencies, attribute.dependencies);\n\t\t});\n\n\t\tblock.add_dependencies(this.dependencies);\n\n\t\t// we have to do this, just in case\n\t\tblock.add_intro();\n\t\tblock.add_outro();\n\t}\n\n\trender(\n\t\tblock: Block,\n\t\tparent_node: Identifier,\n\t\tparent_nodes: Identifier\n\t) {\n\t\tconst { renderer } = this;\n\n\t\tconst { slot_name } = this.node;\n\n\t\tif (this.slot_block) {\n\t\t\tblock = this.slot_block;\n\t\t}\n\n\t\tlet get_slot_changes_fn: Identifier | 'null';\n\t\tlet get_slot_spread_changes_fn: Identifier | undefined;\n\t\tlet get_slot_context_fn: Identifier | 'null';\n\n\t\tif (this.node.values.size > 0) {\n\t\t\tget_slot_changes_fn = renderer.component.get_unique_name(`get_${sanitize(slot_name)}_slot_changes`);\n\t\t\tget_slot_context_fn = renderer.component.get_unique_name(`get_${sanitize(slot_name)}_slot_context`);\n\n\t\t\tconst changes = x`{}` as ObjectExpression;\n\n\t\t\tconst spread_dynamic_dependencies = new Set<string>();\n\n\t\t\tthis.node.values.forEach(attribute => {\n\t\t\t\tif (attribute.type === 'Spread') {\n\t\t\t\t\tadd_to_set(spread_dynamic_dependencies, Array.from(attribute.dependencies).filter((name) => this.is_dependency_dynamic(name)));\n\t\t\t\t} else {\n\t\t\t\t\tconst dynamic_dependencies = Array.from(attribute.dependencies).filter((name) => this.is_dependency_dynamic(name));\n\n\t\t\t\t\tif (dynamic_dependencies.length > 0) {\n\t\t\t\t\t\tchanges.properties.push(p`${attribute.name}: ${renderer.dirty(dynamic_dependencies)}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\trenderer.blocks.push(b`\n\t\t\t\tconst ${get_slot_changes_fn} = #dirty => ${changes};\n\t\t\t\tconst ${get_slot_context_fn} = #ctx => ${get_slot_data(this.node.values, block)};\n\t\t\t`);\n\n\t\t\tif (spread_dynamic_dependencies.size) {\n\t\t\t\tget_slot_spread_changes_fn = renderer.component.get_unique_name(`get_${sanitize(slot_name)}_slot_spread_changes`);\n\t\t\t\trenderer.blocks.push(b`\n\t\t\t\t\tconst ${get_slot_spread_changes_fn} = #dirty => ${renderer.dirty(Array.from(spread_dynamic_dependencies))};\n\t\t\t\t`);\n\t\t\t}\n\t\t} else {\n\t\t\tget_slot_changes_fn = 'null';\n\t\t\tget_slot_context_fn = 'null';\n\t\t}\n\n\t\tlet has_fallback = !!this.fallback;\n\t\tif (this.fallback) {\n\t\t\tthis.fragment.render(this.fallback, null, x`#nodes` as Identifier);\n\t\t\thas_fallback = this.fallback.has_content();\n\t\t\tif (!has_fallback) {\n\t\t\t\trenderer.remove_block(this.fallback);\n\t\t\t}\n\t\t}\n\n\t\tconst slot = block.get_unique_name(`${sanitize(slot_name)}_slot`);\n\t\tconst slot_definition = block.get_unique_name(`${sanitize(slot_name)}_slot_template`);\n\t\tconst slot_or_fallback = has_fallback ? block.get_unique_name(`${sanitize(slot_name)}_slot_or_fallback`) : slot;\n\n\t\tblock.chunks.init.push(b`\n\t\t\tconst ${slot_definition} = ${renderer.reference('#slots')}.${slot_name};\n\t\t\tconst ${slot} = @create_slot(${slot_definition}, #ctx, ${renderer.reference('$$scope')}, ${get_slot_context_fn});\n\t\t\t${has_fallback ? b`const ${slot_or_fallback} = ${slot} || ${this.fallback.name}(#ctx);` : null}\n\t\t`);\n\n\t\tblock.chunks.create.push(\n\t\t\tb`if (${slot_or_fallback}) ${slot_or_fallback}.c();`\n\t\t);\n\n\t\tif (renderer.options.hydratable) {\n\t\t\tblock.chunks.claim.push(\n\t\t\t\tb`if (${slot_or_fallback}) ${slot_or_fallback}.l(${parent_nodes});`\n\t\t\t);\n\t\t}\n\n\t\tblock.chunks.mount.push(b`\n\t\t\tif (${slot_or_fallback}) {\n\t\t\t\t${slot_or_fallback}.m(${parent_node || '#target'}, ${parent_node ? 'null' : '#anchor'});\n\t\t\t}\n\t\t`);\n\n\t\tblock.chunks.intro.push(\n\t\t\tb`@transition_in(${slot_or_fallback}, #local);`\n\t\t);\n\n\t\tblock.chunks.outro.push(\n\t\t\tb`@transition_out(${slot_or_fallback}, #local);`\n\t\t);\n\n\t\tconst dynamic_dependencies = Array.from(this.dependencies).filter((name) => this.is_dependency_dynamic(name));\n\n\t\tconst fallback_dynamic_dependencies = has_fallback\n\t\t\t? Array.from(this.fallback.dependencies).filter((name) => this.is_dependency_dynamic(name))\n\t\t\t: [];\n\n\t\tlet condition = renderer.dirty(dynamic_dependencies);\n\t\tif (block.has_outros) {\n\t\t\tcondition = x`!#current || ${condition}`;\n\t\t}\n\n\t\t// conditions to treat everything as dirty\n\t\tconst all_dirty_conditions = [\n\t\t\tget_slot_spread_changes_fn ? x`${get_slot_spread_changes_fn}(#dirty)` : null,\n\t\t\tblock.has_outros ? x`!#current` : null\n\t\t].filter(Boolean);\n\t\tconst all_dirty_condition = all_dirty_conditions.length ? all_dirty_conditions.reduce((condition1, condition2) => x`${condition1} || ${condition2}`) : null;\n\n\t\tlet slot_update: Node[];\n\t\tif (all_dirty_condition) {\n\t\t\tconst dirty = x`${all_dirty_condition} ? @get_all_dirty_from_scope(${renderer.reference('$$scope')}) : @get_slot_changes(${slot_definition}, ${renderer.reference('$$scope')}, #dirty, ${get_slot_changes_fn})`;\n\n\t\t\tslot_update = b`\n\t\t\t\tif (${slot}.p && ${condition}) {\n\t\t\t\t\t@update_slot_base(${slot}, ${slot_definition}, #ctx, ${renderer.reference('$$scope')}, ${dirty}, ${get_slot_context_fn});\n\t\t\t\t}\n\t\t\t`;\n\t\t} else {\n\t\t\tslot_update = b`\n\t\t\t\tif (${slot}.p && ${condition}) {\n\t\t\t\t\t@update_slot(${slot}, ${slot_definition}, #ctx, ${renderer.reference('$$scope')}, #dirty, ${get_slot_changes_fn}, ${get_slot_context_fn});\n\t\t\t\t}\n\t\t\t`;\n\t\t}\n\n\t\tlet fallback_condition = renderer.dirty(fallback_dynamic_dependencies);\n\t\tlet fallback_dirty = x`#dirty`;\n\t\tif (block.has_outros) {\n\t\t\tfallback_condition = x`!#current || ${fallback_condition}`;\n\t\t\tfallback_dirty = x`!#current ? ${renderer.get_initial_dirty()} : ${fallback_dirty}`;\n\t\t}\n\n\t\tconst fallback_update = has_fallback && fallback_dynamic_dependencies.length > 0 && b`\n\t\t\tif (${slot_or_fallback} && ${slot_or_fallback}.p && ${fallback_condition}) {\n\t\t\t\t${slot_or_fallback}.p(#ctx, ${fallback_dirty});\n\t\t\t}\n\t\t`;\n\n\t\tif (fallback_update) {\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${slot}) {\n\t\t\t\t\t${slot_update}\n\t\t\t\t} else {\n\t\t\t\t\t${fallback_update}\n\t\t\t\t}\n\t\t\t`);\n\t\t} else {\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${slot}) {\n\t\t\t\t\t${slot_update}\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\tblock.chunks.destroy.push(\n\t\t\tb`if (${slot_or_fallback}) ${slot_or_fallback}.d(detaching);`\n\t\t);\n\t}\n\n\tis_dependency_dynamic(name: string) {\n\t\tif (name === '$$scope') return true;\n\t\tif (this.node.scope.is_let(name)) return true;\n\t\tif (is_reserved_keyword(name)) return true;\n\t\tconst variable = this.renderer.component.var_lookup.get(name);\n\t\treturn is_dynamic(variable);\n\t}\n}\n","import { b, x } from 'code-red';\nimport Wrapper from './shared/Wrapper';\nimport Renderer from '../Renderer';\nimport Block from '../Block';\nimport Title from '../../nodes/Title';\nimport { string_literal } from '../../utils/stringify';\nimport add_to_set from '../../utils/add_to_set';\nimport Text from '../../nodes/Text';\nimport { Identifier } from 'estree';\nimport MustacheTag from '../../nodes/MustacheTag';\n\nexport default class TitleWrapper extends Wrapper {\n\tnode: Title;\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tparent: Wrapper,\n\t\tnode: Title,\n\t\t_strip_whitespace: boolean,\n\t\t_next_sibling: Wrapper\n\t) {\n\t\tsuper(renderer, block, parent, node);\n\t}\n\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\n\t\tconst is_dynamic = !!this.node.children.find(node => node.type !== 'Text');\n\n\t\tif (is_dynamic) {\n\t\t\tlet value;\n\n\t\t\tconst all_dependencies: Set<string> = new Set();\n\n\t\t\t// TODO some of this code is repeated in Tag.ts — would be good to\n\t\t\t// DRY it out if that's possible without introducing crazy indirection\n\t\t\tif (this.node.children.length === 1) {\n\t\t\t\t// single {tag} — may be a non-string\n\t\t\t\t// @ts-ignore todo: check this\n\t\t\t\tconst { expression } = this.node.children[0];\n\t\t\t\tvalue = expression.manipulate(block);\n\t\t\t\tadd_to_set(all_dependencies, expression.dependencies);\n\t\t\t} else {\n\t\t\t\t// '{foo} {bar}' — treat as string concatenation\n\t\t\t\tvalue = this.node.children\n\t\t\t\t\t.map(chunk => {\n\t\t\t\t\t\tif (chunk.type === 'Text') return string_literal(chunk.data);\n\n\t\t\t\t\t\t(chunk as MustacheTag).expression.dependencies.forEach(d => {\n\t\t\t\t\t\t\tall_dependencies.add(d);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn (chunk as MustacheTag).expression.manipulate(block);\n\t\t\t\t\t})\n\t\t\t\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\n\n\t\t\t\tif (this.node.children[0].type !== 'Text') {\n\t\t\t\t\tvalue = x`\"\" + ${value}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst last = this.node.should_cache && block.get_unique_name(\n\t\t\t\t'title_value'\n\t\t\t);\n\n\t\t\tif (this.node.should_cache) block.add_variable(last);\n\n\t\t\tconst init = this.node.should_cache ? x`${last} = ${value}` : value;\n\n\t\t\tblock.chunks.init.push(\n\t\t\t\tb`@_document.title = ${init};`\n\t\t\t);\n\n\t\t\tconst updater = b`@_document.title = ${this.node.should_cache ? last : value};`;\n\n\t\t\tif (all_dependencies.size) {\n\t\t\t\tconst dependencies = Array.from(all_dependencies);\n\n\t\t\t\tlet condition = block.renderer.dirty(dependencies);\n\n\t\t\t\tif (block.has_outros) {\n\t\t\t\t\tcondition = x`!#current || ${condition}`;\n\t\t\t\t}\n\n\t\t\t\tif (this.node.should_cache) {\n\t\t\t\t\tcondition = x`${condition} && (${last} !== (${last} = ${value}))`;\n\t\t\t\t}\n\n\t\t\t\tblock.chunks.update.push(b`\n\t\t\t\t\tif (${condition}) {\n\t\t\t\t\t\t${updater}\n\t\t\t\t\t}`);\n\t\t\t}\n\t\t} else {\n\t\t\tconst value = this.node.children.length > 0\n\t\t\t\t? string_literal((this.node.children[0] as Text).data)\n\t\t\t\t: x`\"\"`;\n\n\t\t\tblock.chunks.hydrate.push(b`@_document.title = ${value};`);\n\t\t}\n\t}\n}\n","import Renderer from '../Renderer';\nimport Block from '../Block';\nimport Wrapper from './shared/Wrapper';\nimport { b, x } from 'code-red';\nimport add_event_handlers from './shared/add_event_handlers';\nimport Window from '../../nodes/Window';\nimport add_actions from './shared/add_actions';\nimport { Identifier } from 'estree';\nimport { TemplateNode } from '../../../interfaces';\nimport EventHandler from './Element/EventHandler';\n\nconst associated_events = {\n\tinnerWidth: 'resize',\n\tinnerHeight: 'resize',\n\touterWidth: 'resize',\n\touterHeight: 'resize',\n\n\tscrollX: 'scroll',\n\tscrollY: 'scroll'\n};\n\nconst properties = {\n\tscrollX: 'pageXOffset',\n\tscrollY: 'pageYOffset'\n};\n\nconst readonly = new Set([\n\t'innerWidth',\n\t'innerHeight',\n\t'outerWidth',\n\t'outerHeight',\n\t'online'\n]);\n\nexport default class WindowWrapper extends Wrapper {\n\tnode: Window;\n\thandlers: EventHandler[];\n\n\tconstructor(renderer: Renderer, block: Block, parent: Wrapper, node: TemplateNode) {\n\t\tsuper(renderer, block, parent, node);\n\t\tthis.handlers = this.node.handlers.map(handler => new EventHandler(handler, this));\n\t}\n\n\trender(block: Block, _parent_node: Identifier, _parent_nodes: Identifier) {\n\t\tconst { renderer } = this;\n\t\tconst { component } = renderer;\n\n\t\tconst events: Record<string, Array<{ name: string; value: string }>> = {};\n\t\tconst bindings: Record<string, string> = {};\n\n\t\tadd_actions(block, '@_window', this.node.actions);\n\t\tadd_event_handlers(block, '@_window', this.handlers);\n\n\t\tthis.node.bindings.forEach(binding => {\n\t\t\t// TODO: what if it's a MemberExpression?\n\t\t\tconst binding_name = (binding.expression.node as Identifier).name;\n\n\t\t\t// in dev mode, throw if read-only values are written to\n\t\t\tif (readonly.has(binding.name)) {\n\t\t\t\trenderer.readonly.add(binding_name);\n\t\t\t}\n\n\t\t\tbindings[binding.name] = binding_name;\n\n\t\t\t// bind:online is a special case, we need to listen for two separate events\n\t\t\tif (binding.name === 'online') return;\n\n\t\t\tconst associated_event = associated_events[binding.name];\n\t\t\tconst property = properties[binding.name] || binding.name;\n\n\t\t\tif (!events[associated_event]) events[associated_event] = [];\n\t\t\tevents[associated_event].push({\n\t\t\t\tname: binding_name,\n\t\t\t\tvalue: property\n\t\t\t});\n\t\t});\n\n\t\tconst scrolling = block.get_unique_name('scrolling');\n\t\tconst clear_scrolling = block.get_unique_name('clear_scrolling');\n\t\tconst scrolling_timeout = block.get_unique_name('scrolling_timeout');\n\n\t\tObject.keys(events).forEach(event => {\n\t\t\tconst id = block.get_unique_name(`onwindow${event}`);\n\t\t\tconst props = events[event];\n\n\t\t\trenderer.add_to_context(id.name);\n\t\t\tconst fn = renderer.reference(id.name);\n\n\t\t\tif (event === 'scroll') {\n\t\t\t\t// TODO other bidirectional bindings...\n\t\t\t\tblock.add_variable(scrolling, x`false`);\n\t\t\t\tblock.add_variable(clear_scrolling, x`() => { ${scrolling} = false }`);\n\t\t\t\tblock.add_variable(scrolling_timeout);\n\n\t\t\t\tconst condition = bindings.scrollX && bindings.scrollY\n\t\t\t\t\t? x`\"${bindings.scrollX}\" in this._state || \"${bindings.scrollY}\" in this._state`\n\t\t\t\t\t: x`\"${bindings.scrollX || bindings.scrollY}\" in this._state`;\n\n\t\t\t\tconst scrollX = bindings.scrollX && x`this._state.${bindings.scrollX}`;\n\t\t\t\tconst scrollY = bindings.scrollY && x`this._state.${bindings.scrollY}`;\n\n\t\t\t\trenderer.meta_bindings.push(b`\n\t\t\t\t\tif (${condition}) {\n\t\t\t\t\t\t@_scrollTo(${scrollX || '@_window.pageXOffset'}, ${scrollY || '@_window.pageYOffset'});\n\t\t\t\t\t}\n\t\t\t\t\t${scrollX && `${scrollX} = @_window.pageXOffset;`}\n\t\t\t\t\t${scrollY && `${scrollY} = @_window.pageYOffset;`}\n\t\t\t\t`);\n\n\t\t\t\tblock.event_listeners.push(x`\n\t\t\t\t\t@listen(@_window, \"${event}\", () => {\n\t\t\t\t\t\t${scrolling} = true;\n\t\t\t\t\t\t@_clearTimeout(${scrolling_timeout});\n\t\t\t\t\t\t${scrolling_timeout} = @_setTimeout(${clear_scrolling}, 100);\n\t\t\t\t\t\t${fn}();\n\t\t\t\t\t})\n\t\t\t\t`);\n\t\t\t} else {\n\t\t\t\tprops.forEach(prop => {\n\t\t\t\t\trenderer.meta_bindings.push(\n\t\t\t\t\t\tb`this._state.${prop.name} = @_window.${prop.value};`\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tblock.event_listeners.push(x`\n\t\t\t\t\t@listen(@_window, \"${event}\", ${fn})\n\t\t\t\t`);\n\t\t\t}\n\n\t\t\tcomponent.partly_hoisted.push(b`\n\t\t\t\tfunction ${id}() {\n\t\t\t\t\t${props.map(prop => renderer.invalidate(prop.name, x`${prop.name} = @_window.${prop.value}`))}\n\t\t\t\t}\n\t\t\t`);\n\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\t@add_render_callback(${fn});\n\t\t\t`);\n\n\t\t\tcomponent.has_reactive_assignments = true;\n\t\t});\n\n\t\t// special case... might need to abstract this out if we add more special cases\n\t\tif (bindings.scrollX || bindings.scrollY) {\n\t\t\tconst condition = renderer.dirty([bindings.scrollX, bindings.scrollY].filter(Boolean));\n\n\t\t\tconst scrollX = bindings.scrollX ? renderer.reference(bindings.scrollX) : x`@_window.pageXOffset`;\n\t\t\tconst scrollY = bindings.scrollY ? renderer.reference(bindings.scrollY) : x`@_window.pageYOffset`;\n\n\t\t\tblock.chunks.update.push(b`\n\t\t\t\tif (${condition} && !${scrolling}) {\n\t\t\t\t\t${scrolling} = true;\n\t\t\t\t\t@_clearTimeout(${scrolling_timeout});\n\t\t\t\t\t@_scrollTo(${scrollX}, ${scrollY});\n\t\t\t\t\t${scrolling_timeout} = @_setTimeout(${clear_scrolling}, 100);\n\t\t\t\t}\n\t\t\t`);\n\t\t}\n\n\t\t// another special case. (I'm starting to think these are all special cases.)\n\t\tif (bindings.online) {\n\t\t\tconst id = block.get_unique_name('onlinestatuschanged');\n\t\t\tconst name = bindings.online;\n\n\t\t\trenderer.add_to_context(id.name);\n\t\t\tconst reference = renderer.reference(id.name);\n\n\t\t\tcomponent.partly_hoisted.push(b`\n\t\t\t\tfunction ${id}() {\n\t\t\t\t\t${renderer.invalidate(name, x`${name} = @_navigator.onLine`)}\n\t\t\t\t}\n\t\t\t`);\n\n\t\t\tblock.chunks.init.push(b`\n\t\t\t\t@add_render_callback(${reference});\n\t\t\t`);\n\n\t\t\tblock.event_listeners.push(\n\t\t\t\tx`@listen(@_window, \"online\", ${reference})`,\n\t\t\t\tx`@listen(@_window, \"offline\", ${reference})`\n\t\t\t);\n\n\t\t\tcomponent.has_reactive_assignments = true;\n\t\t}\n\t}\n}\n","export function link<T extends { next?: T; prev?: T }>(next: T, prev: T) {\n\tprev.next = next;\n\tif (next) next.prev = prev;\n}\n","import Wrapper from './shared/Wrapper';\nimport AwaitBlock from './AwaitBlock';\nimport Body from './Body';\nimport DebugTag from './DebugTag';\nimport EachBlock from './EachBlock';\nimport Element from './Element/index';\nimport Head from './Head';\nimport IfBlock from './IfBlock';\nimport KeyBlock from './KeyBlock';\nimport InlineComponent from './InlineComponent/index';\nimport MustacheTag from './MustacheTag';\nimport RawMustacheTag from './RawMustacheTag';\nimport Slot from './Slot';\nimport SlotTemplate from './SlotTemplate';\nimport Text from './Text';\nimport Title from './Title';\nimport Window from './Window';\nimport { INode } from '../../nodes/interfaces';\nimport Renderer from '../Renderer';\nimport Block from '../Block';\nimport { trim_start, trim_end } from '../../../utils/trim';\nimport { link } from '../../../utils/link';\nimport { Identifier } from 'estree';\nimport { regex_starts_with_whitespace } from '../../../utils/patterns';\n\nconst wrappers = {\n\tAwaitBlock,\n\tBody,\n\tComment: null,\n\tDebugTag,\n\tEachBlock,\n\tElement,\n\tHead,\n\tIfBlock,\n\tInlineComponent,\n\tKeyBlock,\n\tMustacheTag,\n\tOptions: null,\n\tRawMustacheTag,\n\tSlot,\n\tSlotTemplate,\n\tText,\n\tTitle,\n\tWindow\n};\n\nfunction trimmable_at(child: INode, next_sibling: Wrapper): boolean {\n\t// Whitespace is trimmable if one of the following is true:\n\t// The child and its sibling share a common nearest each block (not at an each block boundary)\n\t// The next sibling's previous node is an each block\n\treturn (next_sibling.node.find_nearest(/EachBlock/) === child.find_nearest(/EachBlock/)) || next_sibling.node.prev.type === 'EachBlock';\n}\n\nexport default class FragmentWrapper {\n\tnodes: Wrapper[];\n\n\tconstructor(\n\t\trenderer: Renderer,\n\t\tblock: Block,\n\t\tnodes: INode[],\n\t\tparent: Wrapper,\n\t\tstrip_whitespace: boolean,\n\t\tnext_sibling: Wrapper\n\t) {\n\t\tthis.nodes = [];\n\n\t\tlet last_child: Wrapper;\n\t\tlet window_wrapper: Window | undefined;\n\n\t\tlet i = nodes.length;\n\t\twhile (i--) {\n\t\t\tconst child = nodes[i];\n\n\t\t\tif (!child.type) {\n\t\t\t\tthrow new Error('missing type');\n\t\t\t}\n\n\t\t\tif (!(child.type in wrappers)) {\n\t\t\t\tthrow new Error(`TODO implement ${child.type}`);\n\t\t\t}\n\n\t\t\t// special case — this is an easy way to remove whitespace surrounding\n\t\t\t// <svelte:window/>. lil hacky but it works\n\t\t\tif (child.type === 'Window') {\n\t\t\t\twindow_wrapper = new Window(renderer, block, parent, child);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (child.type === 'Text') {\n\t\t\t\tlet { data } = child;\n\n\t\t\t\t// We want to remove trailing whitespace inside an element/component/block,\n\t\t\t\t// *unless* there is no whitespace between this node and its next sibling\n\t\t\t\tif (this.nodes.length === 0) {\n\t\t\t\t\tconst should_trim = (\n\t\t\t\t\t\tnext_sibling ? (next_sibling.node.type === 'Text' && regex_starts_with_whitespace.test(next_sibling.node.data) && trimmable_at(child, next_sibling)) : !child.has_ancestor('EachBlock')\n\t\t\t\t\t);\n\n\t\t\t\t\tif (should_trim && !child.keep_space()) {\n\t\t\t\t\t\tdata = trim_end(data);\n\t\t\t\t\t\tif (!data) continue;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// glue text nodes (which could e.g. be separated by comments) together\n\t\t\t\tif (last_child && last_child.node.type === 'Text') {\n\t\t\t\t\t(last_child as Text).data = data + (last_child as Text).data;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst wrapper = new Text(renderer, block, parent, child, data);\n\t\t\t\tif (wrapper.skip) continue;\n\n\t\t\t\tthis.nodes.unshift(wrapper);\n\n\t\t\t\tlink(last_child, last_child = wrapper);\n\t\t\t} else {\n\t\t\t\tconst Wrapper = wrappers[child.type];\n\t\t\t\tif (!Wrapper) continue;\n\n\t\t\t\tconst wrapper = new Wrapper(renderer, block, parent, child, strip_whitespace, last_child || next_sibling);\n\t\t\t\tthis.nodes.unshift(wrapper);\n\n\t\t\t\tlink(last_child, last_child = wrapper);\n\t\t\t}\n\t\t}\n\n\t\tif (strip_whitespace) {\n\t\t\tconst first = this.nodes[0] as Text;\n\n\t\t\tif (first && first.node.type === 'Text' && !first.node.keep_space()) {\n\t\t\t\tfirst.data = trim_start(first.data);\n\t\t\t\tif (!first.data) {\n\t\t\t\t\tfirst.var = null;\n\t\t\t\t\tthis.nodes.shift();\n\n\t\t\t\t\tif (this.nodes[0]) {\n\t\t\t\t\t\tthis.nodes[0].prev = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (window_wrapper) {\n\t\t\tthis.nodes.unshift(window_wrapper);\n\t\t\tlink(last_child, window_wrapper);\n\t\t}\n\t}\n\n\trender(block: Block, parent_node: Identifier, parent_nodes: Identifier) {\n\t\tfor (let i = 0; i < this.nodes.length; i += 1) {\n\t\t\tthis.nodes[i].render(block, parent_node, parent_nodes);\n\t\t}\n\t}\n}\n","import Block from './Block';\nimport { CompileOptions, Var } from '../../interfaces';\nimport Component from '../Component';\nimport FragmentWrapper from './wrappers/Fragment';\nimport { x } from 'code-red';\nimport { Node, Identifier, MemberExpression, Literal, Expression, BinaryExpression, UnaryExpression, ArrayExpression } from 'estree';\nimport flatten_reference from '../utils/flatten_reference';\nimport { reserved_keywords } from '../utils/reserved_keywords';\nimport { renderer_invalidate } from './invalidate';\n\ninterface ContextMember {\n\tname: string;\n\tindex: Literal;\n\tis_contextual: boolean;\n\tis_non_contextual: boolean;\n\tvariable: Var;\n\tpriority: number;\n}\n\ntype BitMasks = Array<{\n\tn: number;\n\tnames: string[];\n}>;\n\nexport interface BindingGroup {\n\tbinding_group: (to_reference?: boolean) => Node;\n\tcontexts: string[];\n\tlist_dependencies: Set<string>;\n\tkeypath: string;\n\telements: Identifier[];\n\trender: () => void;\n}\n\nexport default class Renderer {\n\tcomponent: Component; // TODO Maybe Renderer shouldn't know about Component?\n\toptions: CompileOptions;\n\n\tcontext: ContextMember[] = [];\n\tinitial_context: ContextMember[] = [];\n\tcontext_lookup: Map<string, ContextMember> = new Map();\n\tcontext_overflow: boolean;\n\tblocks: Array<Block | Node | Node[]> = [];\n\treadonly: Set<string> = new Set();\n\tmeta_bindings: Array<Node | Node[]> = []; // initial values for e.g. window.innerWidth, if there's a <svelte:window> meta tag\n\tbinding_groups: Map<string, BindingGroup> = new Map();\n\n\tblock: Block;\n\tfragment: FragmentWrapper;\n\n\tfile_var: Identifier;\n\tlocate: (c: number) => { line: number; column: number };\n\n\tconstructor(component: Component, options: CompileOptions) {\n\t\tthis.component = component;\n\t\tthis.options = options;\n\t\tthis.locate = component.locate; // TODO messy\n\n\t\tthis.file_var = options.dev && this.component.get_unique_name('file');\n\n\t\tcomponent.vars.filter(v => !v.hoistable || (v.export_name && !v.module)).forEach(v => this.add_to_context(v.name));\n\n\t\t// ensure store values are included in context\n\t\tcomponent.vars.filter(v => v.subscribable).forEach(v => this.add_to_context(`$${v.name}`));\n\n\t\treserved_keywords.forEach(keyword => {\n\t\t\tif (component.var_lookup.has(keyword)) {\n\t\t\t\tthis.add_to_context(keyword);\n\t\t\t}\n\t\t});\n\n\t\tif (component.slots.size > 0) {\n\t\t\tthis.add_to_context('$$scope');\n\t\t\tthis.add_to_context('#slots');\n\t\t}\n\n\t\t// main block\n\t\tthis.block = new Block({\n\t\t\trenderer: this,\n\t\t\tname: null,\n\t\t\ttype: 'component',\n\t\t\tkey: null,\n\n\t\t\tbindings: new Map(),\n\n\t\t\tdependencies: new Set()\n\t\t});\n\n\t\tthis.block.has_update_method = true;\n\n\t\tthis.fragment = new FragmentWrapper(\n\t\t\tthis,\n\t\t\tthis.block,\n\t\t\tcomponent.fragment.children,\n\t\t\tnull,\n\t\t\ttrue,\n\t\t\tnull\n\t\t);\n\n\t\t// TODO messy\n\t\tthis.blocks.forEach(block => {\n\t\t\tif (block instanceof Block) {\n\t\t\t\tblock.assign_variable_names();\n\t\t\t}\n\t\t});\n\n\t\tthis.block.assign_variable_names();\n\n\t\tthis.fragment.render(this.block, null, x`#nodes` as Identifier);\n\n\t\tthis.context_overflow = this.context.length > 31;\n\n\t\tthis.context.forEach(member => {\n\t\t\tconst { variable } = member;\n\t\t\tif (variable) {\n\t\t\t\tmember.priority += 2;\n\t\t\t\tif (variable.mutated || variable.reassigned) member.priority += 4;\n\n\t\t\t\t// these determine whether variable is included in initial context\n\t\t\t\t// array, so must have the highest priority\n\t\t\t\tif (variable.is_reactive_dependency && (variable.mutated || variable.reassigned)) member.priority += 16;\n\t\t\t\tif (variable.export_name) member.priority += 32;\n\t\t\t\tif (variable.referenced) member.priority += 64;\n\t\t\t} else if (member.is_non_contextual) {\n\t\t\t\t// determine whether variable is included in initial context\n\t\t\t\t// array, so must have the highest priority\n\t\t\t\tmember.priority += 8;\n\t\t\t}\n\n\t\t\tif (!member.is_contextual) {\n\t\t\t\tmember.priority += 1;\n\t\t\t}\n\t\t});\n\n\t\tthis.context.sort((a, b) => (b.priority - a.priority) || ((a.index.value as number) - (b.index.value as number)));\n\t\tthis.context.forEach((member, i) => member.index.value = i);\n\n\t\tlet i = this.context.length;\n\t\twhile (i--) {\n\t\t\tconst member = this.context[i];\n\t\t\tif (member.variable) {\n\t\t\t\tif (member.variable.referenced || member.variable.export_name || (member.variable.is_reactive_dependency && (member.variable.mutated || member.variable.reassigned))) break;\n\t\t\t} else if (member.is_non_contextual) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.initial_context = this.context.slice(0, i + 1);\n\t}\n\n\tadd_to_context(name: string, contextual = false) {\n\t\tif (!this.context_lookup.has(name)) {\n\t\t\tconst member: ContextMember = {\n\t\t\t\tname,\n\t\t\t\tindex: { type: 'Literal', value: this.context.length }, // index is updated later, but set here to preserve order within groups\n\t\t\t\tis_contextual: false,\n\t\t\t\tis_non_contextual: false, // shadowed vars could be contextual and non-contextual\n\t\t\t\tvariable: null,\n\t\t\t\tpriority: 0\n\t\t\t};\n\n\t\t\tthis.context_lookup.set(name, member);\n\t\t\tthis.context.push(member);\n\t\t}\n\n\t\tconst member = this.context_lookup.get(name);\n\n\t\tif (contextual) {\n\t\t\tmember.is_contextual = true;\n\t\t} else {\n\t\t\tmember.is_non_contextual = true;\n\t\t\tmember.variable = this.component.var_lookup.get(name);\n\t\t}\n\n\t\treturn member;\n\t}\n\n\tinvalidate(name: string, value?: unknown, main_execution_context: boolean = false) {\n\t\treturn renderer_invalidate(this, name, value, main_execution_context);\n\t}\n\n\tdirty(names: string[], is_reactive_declaration = false): Expression {\n\t\tconst renderer = this;\n\n\t\tconst dirty = (is_reactive_declaration\n\t\t\t? x`$$self.$$.dirty`\n\t\t\t: x`#dirty`) as Identifier | MemberExpression;\n\n\t\tconst get_bitmask = () => {\n\t\t\tconst bitmask: BitMasks = [];\n\t\t\tnames.forEach((name) => {\n\t\t\t\tconst member = renderer.context_lookup.get(name);\n\n\t\t\t\tif (!member) return;\n\n\t\t\t\tif (member.index.value === -1) {\n\t\t\t\t\tthrow new Error('unset index');\n\t\t\t\t}\n\n\t\t\t\tconst value = member.index.value as number;\n\t\t\t\tconst i = (value / 31) | 0;\n\t\t\t\tconst n = 1 << (value % 31);\n\n\t\t\t\tif (!bitmask[i]) bitmask[i] = { n: 0, names: [] };\n\n\t\t\t\tbitmask[i].n |= n;\n\t\t\t\tbitmask[i].names.push(name);\n\t\t\t});\n\t\t\treturn bitmask;\n\t\t};\n\n\t\t// TODO: context-overflow make it less gross\n\t\treturn {\n\t\t\t// Using a ParenthesizedExpression allows us to create\n\t\t\t// the expression lazily. TODO would be better if\n\t\t\t// context was determined before rendering, so that\n\t\t\t// this indirection was unnecessary\n\t\t\ttype: 'ParenthesizedExpression',\n\t\t\tget expression() {\n\t\t\t\tconst bitmask = get_bitmask();\n\n\t\t\t\tif (!bitmask.length) {\n\t\t\t\t\treturn x`${dirty} & /*${names.join(', ')}*/ 0` as BinaryExpression;\n\t\t\t\t}\n\n\t\t\t\tif (renderer.context_overflow) {\n\t\t\t\t\treturn bitmask\n\t\t\t\t\t\t.map((b, i) => ({ b, i }))\n\t\t\t\t\t\t.filter(({ b }) => b)\n\t\t\t\t\t\t.map(({ b, i }) => x`${dirty}[${i}] & /*${b.names.join(', ')}*/ ${b.n}`)\n\t\t\t\t\t\t.reduce((lhs, rhs) => x`${lhs} | ${rhs}`);\n\t\t\t\t}\n\n\t\t\t\treturn x`${dirty} & /*${names.join(', ')}*/ ${bitmask[0].n}` as BinaryExpression;\n\t\t\t}\n\t\t} as any;\n\t}\n\n\t// NOTE: this method may be called before this.context_overflow / this.context is fully defined\n\t// therefore, they can only be evaluated later in a getter function\n\tget_initial_dirty(): UnaryExpression | ArrayExpression {\n\t\tconst _this = this;\n\t\t// TODO: context-overflow make it less gross\n\t\tconst val: UnaryExpression = x`-1` as UnaryExpression;\n\t\treturn {\n\t\t\tget type() {\n\t\t\t\treturn _this.context_overflow ? 'ArrayExpression' : 'UnaryExpression';\n\t\t\t},\n\t\t\t// as [-1]\n\t\t\tget elements() {\n\t\t\t\tconst elements = [];\n\t\t\t\tfor (let i = 0; i < _this.context.length; i += 31) {\n\t\t\t\t\telements.push(val);\n\t\t\t\t}\n\t\t\t\treturn elements;\n\t\t\t},\n\t\t\t// as -1\n\t\t\toperator: val.operator,\n\t\t\tprefix: val.prefix,\n\t\t\targument: val.argument\n\t\t};\n\t}\n\n\treference(node: string | Identifier | MemberExpression, ctx: string | void = '#ctx') {\n\t\tif (typeof node === 'string') {\n\t\t\tnode = { type: 'Identifier', name: node };\n\t\t}\n\n\t\tconst { name, nodes } = flatten_reference(node);\n\t\tconst member = this.context_lookup.get(name);\n\n\t\t// TODO is this correct?\n\t\tif (this.component.var_lookup.get(name)) {\n\t\t\tthis.component.add_reference(node, name);\n\t\t}\n\n\t\tif (member !== undefined) {\n\t\t\tconst replacement = x`/*${member.name}*/ ${ctx}[${member.index}]` as MemberExpression;\n\n\t\t\tif (nodes[0].loc) replacement.object.loc = nodes[0].loc;\n\t\t\tnodes[0] = replacement;\n\n\t\t\treturn nodes.reduce((lhs, rhs) => x`${lhs}.${rhs}`);\n\t\t}\n\n\t\treturn node;\n\t}\n\n\tremove_block(block: Block | Node | Node[]) {\n\t\tthis.blocks.splice(this.blocks.indexOf(block), 1);\n\t}\n}\n","var charToInteger = {};\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nfor (var i = 0; i < chars.length; i++) {\n charToInteger[chars.charCodeAt(i)] = i;\n}\nfunction decode(mappings) {\n var decoded = [];\n var line = [];\n var segment = [\n 0,\n 0,\n 0,\n 0,\n 0,\n ];\n var j = 0;\n for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {\n var c = mappings.charCodeAt(i);\n if (c === 44) { // \",\"\n segmentify(line, segment, j);\n j = 0;\n }\n else if (c === 59) { // \";\"\n segmentify(line, segment, j);\n j = 0;\n decoded.push(line);\n line = [];\n segment[0] = 0;\n }\n else {\n var integer = charToInteger[c];\n if (integer === undefined) {\n throw new Error('Invalid character (' + String.fromCharCode(c) + ')');\n }\n var hasContinuationBit = integer & 32;\n integer &= 31;\n value += integer << shift;\n if (hasContinuationBit) {\n shift += 5;\n }\n else {\n var shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = value === 0 ? -0x80000000 : -value;\n }\n segment[j] += value;\n j++;\n value = shift = 0; // reset\n }\n }\n }\n segmentify(line, segment, j);\n decoded.push(line);\n return decoded;\n}\nfunction segmentify(line, segment, j) {\n // This looks ugly, but we're creating specialized arrays with a specific\n // length. This is much faster than creating a new array (which v8 expands to\n // a capacity of 17 after pushing the first item), or slicing out a subarray\n // (which is slow). Length 4 is assumed to be the most frequent, followed by\n // length 5 (since not everything will have an associated name), followed by\n // length 1 (it's probably rare for a source substring to not have an\n // associated segment data).\n if (j === 4)\n line.push([segment[0], segment[1], segment[2], segment[3]]);\n else if (j === 5)\n line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);\n else if (j === 1)\n line.push([segment[0]]);\n}\nfunction encode(decoded) {\n var sourceFileIndex = 0; // second field\n var sourceCodeLine = 0; // third field\n var sourceCodeColumn = 0; // fourth field\n var nameIndex = 0; // fifth field\n var mappings = '';\n for (var i = 0; i < decoded.length; i++) {\n var line = decoded[i];\n if (i > 0)\n mappings += ';';\n if (line.length === 0)\n continue;\n var generatedCodeColumn = 0; // first field\n var lineMappings = [];\n for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {\n var segment = line_1[_i];\n var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);\n generatedCodeColumn = segment[0];\n if (segment.length > 1) {\n segmentMappings +=\n encodeInteger(segment[1] - sourceFileIndex) +\n encodeInteger(segment[2] - sourceCodeLine) +\n encodeInteger(segment[3] - sourceCodeColumn);\n sourceFileIndex = segment[1];\n sourceCodeLine = segment[2];\n sourceCodeColumn = segment[3];\n }\n if (segment.length === 5) {\n segmentMappings += encodeInteger(segment[4] - nameIndex);\n nameIndex = segment[4];\n }\n lineMappings.push(segmentMappings);\n }\n mappings += lineMappings.join(',');\n }\n return mappings;\n}\nfunction encodeInteger(num) {\n var result = '';\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n var clamped = num & 31;\n num >>>= 5;\n if (num > 0) {\n clamped |= 32;\n }\n result += chars[clamped];\n } while (num > 0);\n return result;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Creates a brand new (prototype-less) object with the enumerable-own\n * properties of `target`. Any enumerable-own properties from `source` which\n * are not present on `target` will be copied as well.\n */\nfunction defaults(target, source) {\n return Object.assign(Object.create(null), source, target);\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Decodes an input sourcemap into a `DecodedSourceMap` sourcemap object.\n *\n * Valid input maps include a `DecodedSourceMap`, a `RawSourceMap`, or JSON\n * representations of either type.\n */\nfunction decodeSourceMap(map) {\n if (typeof map === 'string') {\n map = JSON.parse(map);\n }\n let { mappings } = map;\n if (typeof mappings === 'string') {\n mappings = decode(mappings);\n }\n else {\n // Clone the Line so that we can sort it. We don't want to mutate an array\n // that we don't own directly.\n mappings = mappings.map(cloneSegmentLine);\n }\n // Sort each Line's segments. There's no guarantee that segments are sorted for us,\n // and even Chrome's implementation sorts:\n // https://cs.chromium.org/chromium/src/third_party/devtools-frontend/src/front_end/sdk/SourceMap.js?l=507-508&rcl=109232bcf479c8f4ef8ead3cf56c49eb25f8c2f0\n mappings.forEach(sortSegments);\n return defaults({ mappings }, map);\n}\nfunction cloneSegmentLine(segments) {\n return segments.slice();\n}\nfunction sortSegments(segments) {\n segments.sort(segmentComparator);\n}\nfunction segmentComparator(a, b) {\n return a[0] - b[0];\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A \"leaf\" node in the sourcemap tree, representing an original, unmodified\n * source file. Recursive segment tracing ends at the `OriginalSource`.\n */\nclass OriginalSource {\n constructor(filename, content) {\n this.filename = filename;\n this.content = content;\n }\n /**\n * Tracing a `SourceMapSegment` ends when we get to an `OriginalSource`,\n * meaning this line/column location originated from this source file.\n */\n traceSegment(line, column, name) {\n return { column, line, name, source: this };\n }\n}\n\n/* istanbul ignore next */\nconst Url = (typeof URL !== 'undefined' ? URL : require('url').URL);\n// Matches \"..\", which must be preceeded by \"/\" or the start of the string, and\n// must be followed by a \"/\". We do not eat the following \"/\", so that the next\n// iteration can match on it.\nconst parentRegex = /(^|\\/)\\.\\.(?=\\/|$)/g;\nfunction isAbsoluteUrl(url) {\n try {\n return !!new Url(url);\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Creates a directory name that is guaranteed to not be in `str`.\n */\nfunction uniqInStr(str) {\n let uniq = String(Math.random()).slice(2);\n while (str.indexOf(uniq) > -1) {\n /* istanbul ignore next */\n uniq += uniq;\n }\n return uniq;\n}\n/**\n * Removes the filename from the path (everything trailing the last \"/\"). This\n * is only safe to call on a path, never call with an absolute or protocol\n * relative URL.\n */\nfunction stripPathFilename(path) {\n path = normalizePath(path);\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n/**\n * Normalizes a protocol-relative URL, but keeps it protocol relative by\n * stripping out the protocl before returning it.\n */\nfunction normalizeProtocolRelative(input, absoluteBase) {\n const { href, protocol } = new Url(input, absoluteBase);\n return href.slice(protocol.length);\n}\n/**\n * Normalizes a simple path (one that has no \"..\"s, or is absolute so \"..\"s can\n * be normalized absolutely).\n */\nfunction normalizeSimplePath(input) {\n const { href } = new Url(input, 'https://foo.com/');\n return href.slice('https://foo.com/'.length);\n}\n/**\n * Normalizes a path, ensuring that excess \"..\"s are preserved for relative\n * paths in the output.\n *\n * If the input is absolute, this will return an absolutey normalized path, but\n * it will not have a leading \"/\".\n *\n * If the input has a leading \"..\", the output will have a leading \"..\".\n *\n * If the input has a leading \".\", the output will not have a leading \".\"\n * unless there are too many \"..\"s, in which case there will be a leading \"..\".\n */\nfunction normalizePath(input) {\n // If there are no \"..\"s, we can treat this as if it were an absolute path.\n // The return won't be an absolute path, so it's easy.\n if (!parentRegex.test(input))\n return normalizeSimplePath(input);\n // We already found one \"..\". Let's see how many there are.\n let total = 1;\n while (parentRegex.test(input))\n total++;\n // If there are \"..\"s, we need to prefix the the path with the same number of\n // unique directories. This is to ensure that we \"remember\" how many parent\n // directories we are accessing. Eg, \"../../..\" must keep 3, and \"foo/../..\"\n // must keep 1.\n const uniqDirectory = `z${uniqInStr(input)}/`;\n // uniqDirectory is just a \"z\", followed by numbers, followed by a \"/\". So\n // generating a runtime regex from it is safe. We'll use this search regex to\n // strip out our uniq directory names and insert any needed \"..\"s.\n const search = new RegExp(`^(?:${uniqDirectory})*`);\n // Now we can resolve the total path. If there are excess \"..\"s, they will\n // eliminate one or more of the unique directories we prefix with.\n const relative = normalizeSimplePath(uniqDirectory.repeat(total) + input);\n // We can now count the number of unique directories that were eliminated. If\n // there were 3, and 1 was eliminated, we know we only need to add 1 \"..\". If\n // 2 were eliminated, we need to insert 2 \"..\"s. If all 3 were eliminated,\n // then we need 3, etc. This replace is guranteed to match (it may match 0 or\n // more times), and we can count the total match to see how many were eliminated.\n return relative.replace(search, (all) => {\n const leftover = all.length / uniqDirectory.length;\n return '../'.repeat(total - leftover);\n });\n}\n/**\n * Attempts to resolve `input` URL relative to `base`.\n */\nfunction resolve(input, base) {\n if (!base)\n base = '';\n // Absolute URLs are very easy to resolve right.\n if (isAbsoluteUrl(input))\n return new Url(input).href;\n if (base) {\n // Absolute URLs are easy...\n if (isAbsoluteUrl(base))\n return new Url(input, base).href;\n // If base is protocol relative, we'll resolve with it but keep the result\n // protocol relative.\n if (base.startsWith('//'))\n return normalizeProtocolRelative(input, `https:${base}`);\n }\n // Normalize input, but keep it protocol relative. We know base doesn't supply\n // a protocol, because that would have been handled above.\n if (input.startsWith('//'))\n return normalizeProtocolRelative(input, 'https://foo.com/');\n // We now know that base (if there is one) and input are paths. We've handled\n // both absolute and protocol-relative variations above.\n // Absolute paths don't need any special handling, because they cannot have\n // extra \".\" or \"..\"s. That'll all be stripped away. Input takes priority here,\n // because if input is an absolute path, base path won't affect it in any way.\n if (input.startsWith('/'))\n return '/' + normalizeSimplePath(input);\n // Since input and base are paths, we need to join them to do any further\n // processing. Paths are joined at the directory level, so we need to remove\n // the base's filename before joining. We also know that input does not have a\n // leading slash, and that the stripped base will have a trailing slash if\n // there are any directories (or it'll be empty).\n const joined = stripPathFilename(base) + input;\n // If base is an absolute path, then input will be relative to it.\n if (base.startsWith('/'))\n return '/' + normalizeSimplePath(joined);\n // We now know both base (if there is one) and input are relative paths.\n const relative = normalizePath(joined);\n // If base started with a leading \".\", or there is no base and input started\n // with a \".\", then we need to ensure that the relative path starts with a\n // \".\". We don't know if relative starts with a \"..\", though, so check before\n // prepending.\n if ((base || input).startsWith('.') && !relative.startsWith('.')) {\n return './' + relative;\n }\n return relative;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction resolve$1(input, base) {\n // The base is always treated as a directory, if it's not empty.\n // https://github.com/mozilla/source-map/blob/8cb3ee57/lib/util.js#L327\n // https://github.com/chromium/chromium/blob/da4adbb3/third_party/blink/renderer/devtools/front_end/sdk/SourceMap.js#L400-L401\n if (base && !base.endsWith('/'))\n base += '/';\n return resolve(input, base);\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A binary search implementation that returns the index if a match is found,\n * or the negated index of where the `needle` should be inserted.\n *\n * The `comparator` callback receives both the `item` under comparison and the\n * needle we are searching for. It must return `0` if the `item` is a match,\n * any negative number if `item` is too small (and we must search after it), or\n * any positive number if the `item` is too large (and we must search before\n * it).\n *\n * If no match is found, a negated index of where to insert the `needle` is\n * returned. This negated index is guaranteed to be less than 0. To insert an\n * item, negate it (again) and splice:\n *\n * ```js\n * const array = [1, 3];\n * const needle = 2;\n * const index = binarySearch(array, needle, (item, needle) => item - needle);\n *\n * assert.equal(index, -2);\n * assert.equal(~index, 1);\n * array.splice(~index, 0, needle);\n * assert.deepEqual(array, [1, 2, 3]);\n * ```\n */\nfunction binarySearch(haystack, needle, comparator) {\n let low = 0;\n let high = haystack.length - 1;\n while (low <= high) {\n const mid = low + ((high - low) >> 1);\n const cmp = comparator(haystack[mid], needle);\n if (cmp === 0) {\n return mid;\n }\n if (cmp < 0) {\n low = mid + 1;\n }\n else {\n high = mid - 1;\n }\n }\n return ~low;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * FastStringArray acts like a `Set` (allowing only one occurrence of a string\n * `key`), but provides the index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of\n * the backing array, like how `sourcesContent[i]` is the source content\n * associated with `source[i]`, and there are never duplicates.\n */\nclass FastStringArray {\n constructor() {\n this.indexes = Object.create(null);\n this.array = [];\n }\n /**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\n put(key) {\n const { array, indexes } = this;\n // The key may or may not be present. If it is present, it's a number.\n let index = indexes[key];\n // If it's not yet present, we need to insert it and track the index in the\n // indexes.\n if (index === undefined) {\n index = indexes[key] = array.length;\n array.push(key);\n }\n return index;\n }\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * SourceMapTree represents a single sourcemap, with the ability to trace\n * mappings into its child nodes (which may themselves be SourceMapTrees).\n */\nclass SourceMapTree {\n constructor(map, sources) {\n this.map = map;\n this.sources = sources;\n }\n /**\n * traceMappings is only called on the root level SourceMapTree, and begins\n * the process of resolving each mapping in terms of the original source\n * files.\n */\n traceMappings() {\n const mappings = [];\n const names = new FastStringArray();\n const sources = new FastStringArray();\n const sourcesContent = [];\n const { mappings: rootMappings, names: rootNames } = this.map;\n for (let i = 0; i < rootMappings.length; i++) {\n const segments = rootMappings[i];\n const tracedSegments = [];\n for (let j = 0; j < segments.length; j++) {\n const segment = segments[j];\n // 1-length segments only move the current generated column, there's no\n // source information to gather from it.\n if (segment.length === 1)\n continue;\n const source = this.sources[segment[1]];\n const traced = source.traceSegment(segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : '');\n if (!traced)\n continue;\n // So we traced a segment down into its original source file. Now push a\n // new segment pointing to this location.\n const { column, line, name } = traced;\n const { content, filename } = traced.source;\n // Store the source location, and ensure we keep sourcesContent up to\n // date with the sources array.\n const sourceIndex = sources.put(filename);\n sourcesContent[sourceIndex] = content;\n // This looks like unnecessary duplication, but it noticeably increases\n // performance. If we were to push the nameIndex onto length-4 array, v8\n // would internally allocate 22 slots! That's 68 wasted bytes! Array\n // literals have the same capacity as their length, saving memory.\n if (name) {\n tracedSegments.push([segment[0], sourceIndex, line, column, names.put(name)]);\n }\n else {\n tracedSegments.push([segment[0], sourceIndex, line, column]);\n }\n }\n mappings.push(tracedSegments);\n }\n // TODO: Make all sources relative to the sourceRoot.\n return defaults({\n mappings,\n names: names.array,\n sources: sources.array,\n sourcesContent,\n }, this.map);\n }\n /**\n * traceSegment is only called on children SourceMapTrees. It recurses down\n * into its own child SourceMapTrees, until we find the original source map.\n */\n traceSegment(line, column, name) {\n const { mappings, names } = this.map;\n // It's common for parent sourcemaps to have pointers to lines that have no\n // mapping (like a \"//# sourceMappingURL=\") at the end of the child file.\n if (line >= mappings.length)\n return null;\n const segments = mappings[line];\n if (segments.length === 0)\n return null;\n let index = binarySearch(segments, column, segmentComparator$1);\n if (index === -1)\n return null; // we come before any mapped segment\n // If we can't find a segment that lines up to this column, we use the\n // segment before.\n if (index < 0) {\n index = ~index - 1;\n }\n const segment = segments[index];\n // 1-length segments only move the current generated column, there's no\n // source information to gather from it.\n if (segment.length === 1)\n return null;\n const source = this.sources[segment[1]];\n // So now we can recurse down, until we hit the original source file.\n return source.traceSegment(segment[2], segment[3], \n // A child map's recorded name for this segment takes precedence over the\n // parent's mapped name. Imagine a mangler changing the name over, etc.\n segment.length === 5 ? names[segment[4]] : name);\n }\n}\nfunction segmentComparator$1(segment, column) {\n return segment[0] - column;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Removes the filename from a path.\n */\nfunction stripFilename(path) {\n if (!path)\n return '';\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nfunction asArray(value) {\n if (Array.isArray(value))\n return value;\n return [value];\n}\n/**\n * Recursively builds a tree structure out of sourcemap files, with each node\n * being either an `OriginalSource` \"leaf\" or a `SourceMapTree` composed of\n * `OriginalSource`s and `SourceMapTree`s.\n *\n * Every sourcemap is composed of a collection of source files and mappings\n * into locations of those source files. When we generate a `SourceMapTree` for\n * the sourcemap, we attempt to load each source file's own sourcemap. If it\n * does not have an associated sourcemap, it is considered an original,\n * unmodified source file.\n */\nfunction buildSourceMapTree(input, loader, relativeRoot) {\n const maps = asArray(input).map(decodeSourceMap);\n const map = maps.pop();\n for (let i = 0; i < maps.length; i++) {\n if (maps[i].sources.length !== 1) {\n throw new Error(`Transformation map ${i} must have exactly one source file.\\n` +\n 'Did you specify these with the most recent transformation maps first?');\n }\n }\n const { sourceRoot, sources, sourcesContent } = map;\n const children = sources.map((sourceFile, i) => {\n // Each source file is loaded relative to the sourcemap's own sourceRoot,\n // which is itself relative to the sourcemap's parent.\n const uri = resolve$1(sourceFile || '', resolve$1(sourceRoot || '', stripFilename(relativeRoot)));\n // Use the provided loader callback to retrieve the file's sourcemap.\n // TODO: We should eventually support async loading of sourcemap files.\n const sourceMap = loader(uri);\n // If there is no sourcemap, then it is an unmodified source file.\n if (!sourceMap) {\n // The source file's actual contents must be included in the sourcemap\n // (done when generating the sourcemap) for it to be included as a\n // sourceContent in the output sourcemap.\n const sourceContent = sourcesContent ? sourcesContent[i] : null;\n return new OriginalSource(uri, sourceContent);\n }\n // Else, it's a real sourcemap, and we need to recurse into it to load its\n // source files.\n return buildSourceMapTree(decodeSourceMap(sourceMap), loader, uri);\n });\n let tree = new SourceMapTree(map, children);\n for (let i = maps.length - 1; i >= 0; i--) {\n tree = new SourceMapTree(maps[i], [tree]);\n }\n return tree;\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * A SourceMap v3 compatible sourcemap, which only includes fields that were\n * provided to it.\n */\nclass SourceMap {\n constructor(map, excludeContent) {\n this.version = 3; // SourceMap spec says this should be first.\n if ('file' in map)\n this.file = map.file;\n this.mappings = encode(map.mappings);\n this.names = map.names;\n // TODO: We first need to make all source URIs relative to the sourceRoot\n // before we can support a sourceRoot.\n // if ('sourceRoot' in map) this.sourceRoot = map.sourceRoot;\n this.sources = map.sources;\n if (!excludeContent && 'sourcesContent' in map)\n this.sourcesContent = map.sourcesContent;\n }\n toString() {\n return JSON.stringify(this);\n }\n}\n\n/**\n * Copyright 2019 The AMP HTML Authors. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Traces through all the mappings in the root sourcemap, through the sources\n * (and their sourcemaps), all the way back to the original source location.\n *\n * `loader` will be called every time we encounter a source file. If it returns\n * a sourcemap, we will recurse into that sourcemap to continue the trace. If\n * it returns a falsey value, that source file is treated as an original,\n * unmodified source file.\n *\n * Pass `excludeContent` content to exclude any self-containing source file\n * content from the output sourcemap.\n */\nfunction remapping(input, loader, excludeContent) {\n const graph = buildSourceMapTree(input, loader);\n return new SourceMap(graph.traceMappings(), !!excludeContent);\n}\n\nexport default remapping;\n//# sourceMappingURL=remapping.mjs.map\n","import { DecodedSourceMap, RawSourceMap, SourceMapLoader } from '@ampproject/remapping/dist/types/types';\nimport remapping from '@ampproject/remapping';\nimport { SourceMap } from 'magic-string';\nimport { Source, Processed } from '../preprocess/types';\nimport { push_array } from './push_array';\n\nexport type SourceLocation = {\n\tline: number;\n\tcolumn: number;\n};\n\nfunction last_line_length(s: string) {\n\treturn s.length - s.lastIndexOf('\\n') - 1;\n}\n\n// mutate map in-place\nexport function sourcemap_add_offset(\n\tmap: DecodedSourceMap, offset: SourceLocation, source_index: number\n) {\n\tif (map.mappings.length == 0) return;\n\tfor (let line = 0; line < map.mappings.length; line++) {\n\t\tconst segment_list = map.mappings[line];\n\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\n\t\t\tconst seg = segment_list[segment];\n\t\t\t// shift only segments that belong to component source file\n\t\t\tif (seg[1] === source_index) { // also ensures that seg.length >= 4\n\t\t\t\t// shift column if it points at the first line\n\t\t\t\tif (seg[2] === 0) {\n\t\t\t\t\tseg[3] += offset.column;\n\t\t\t\t}\n\t\t\t\t// shift line\n\t\t\t\tseg[2] += offset.line;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction merge_tables<T>(this_table: T[], other_table: T[]): [T[], number[], boolean, boolean] {\n\tconst new_table = this_table.slice();\n\tconst idx_map = [];\n\tother_table = other_table || [];\n\tlet val_changed = false;\n\tfor (const [other_idx, other_val] of other_table.entries()) {\n\t\tconst this_idx = this_table.indexOf(other_val);\n\t\tif (this_idx >= 0) {\n\t\t\tidx_map[other_idx] = this_idx;\n\t\t} else {\n\t\t\tconst new_idx = new_table.length;\n\t\t\tnew_table[new_idx] = other_val;\n\t\t\tidx_map[other_idx] = new_idx;\n\t\t\tval_changed = true;\n\t\t}\n\t}\n\tlet idx_changed = val_changed;\n\tif (val_changed) {\n\t\tif (idx_map.find((val, idx) => val != idx) === undefined) {\n\t\t\t// idx_map is identity map [0, 1, 2, 3, 4, ....]\n\t\t\tidx_changed = false;\n\t\t}\n\t}\n\treturn [new_table, idx_map, val_changed, idx_changed];\n}\n\nconst regex_line_token = /([^\\d\\w\\s]|\\s+)/g;\n\nexport class MappedCode {\n\tstring: string;\n\tmap: DecodedSourceMap;\n\n\tconstructor(string = '', map: DecodedSourceMap = null) {\n\t\tthis.string = string;\n\t\tif (map) {\n\t\t\tthis.map = map as DecodedSourceMap;\n\t\t} else {\n\t\t\tthis.map = {\n\t\t\t\tversion: 3,\n\t\t\t\tmappings: [],\n\t\t\t\tsources: [],\n\t\t\t\tnames: []\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * concat in-place (mutable), return this (chainable)\n\t * will also mutate the `other` object\n\t */\n\tconcat(other: MappedCode): MappedCode {\n\t\t// noop: if one is empty, return the other\n\t\tif (other.string == '') return this;\n\t\tif (this.string == '') {\n\t\t\tthis.string = other.string;\n\t\t\tthis.map = other.map;\n\t\t\treturn this;\n\t\t}\n\n\t\t// compute last line length before mutating\n\t\tconst column_offset = last_line_length(this.string);\n\n\t\tthis.string += other.string;\n\n\t\tconst m1 = this.map;\n\t\tconst m2 = other.map;\n\n\t\tif (m2.mappings.length == 0) return this;\n\n\t\t// combine sources and names\n\t\tconst [sources, new_source_idx, sources_changed, sources_idx_changed] = merge_tables(m1.sources, m2.sources);\n\t\tconst [names, new_name_idx, names_changed, names_idx_changed] = merge_tables(m1.names, m2.names);\n\n\t\tif (sources_changed) m1.sources = sources;\n\t\tif (names_changed) m1.names = names;\n\n\t\t// unswitched loops are faster\n\t\tif (sources_idx_changed && names_idx_changed) {\n\t\t\tfor (let line = 0; line < m2.mappings.length; line++) {\n\t\t\t\tconst segment_list = m2.mappings[line];\n\t\t\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\n\t\t\t\t\tconst seg = segment_list[segment];\n\t\t\t\t\tif (seg[1] >= 0) seg[1] = new_source_idx[seg[1]];\n\t\t\t\t\tif (seg[4] >= 0) seg[4] = new_name_idx[seg[4]];\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (sources_idx_changed) {\n\t\t\tfor (let line = 0; line < m2.mappings.length; line++) {\n\t\t\t\tconst segment_list = m2.mappings[line];\n\t\t\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\n\t\t\t\t\tconst seg = segment_list[segment];\n\t\t\t\t\tif (seg[1] >= 0) seg[1] = new_source_idx[seg[1]];\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (names_idx_changed) {\n\t\t\tfor (let line = 0; line < m2.mappings.length; line++) {\n\t\t\t\tconst segment_list = m2.mappings[line];\n\t\t\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\n\t\t\t\t\tconst seg = segment_list[segment];\n\t\t\t\t\tif (seg[4] >= 0) seg[4] = new_name_idx[seg[4]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// combine the mappings\n\n\t\t// combine\n\t\t// 1. last line of first map\n\t\t// 2. first line of second map\n\t\t// columns of 2 must be shifted\n\n\t\tif (m2.mappings.length > 0 && column_offset > 0) {\n\t\t\tconst first_line = m2.mappings[0];\n\t\t\tfor (let i = 0; i < first_line.length; i++) {\n\t\t\t\tfirst_line[i][0] += column_offset;\n\t\t\t}\n\t\t}\n\n\t\t// combine last line + first line\n\t\tpush_array(m1.mappings[m1.mappings.length - 1], m2.mappings.shift());\n\n\t\t// append other lines\n\t\tpush_array(m1.mappings, m2.mappings);\n\n\t\treturn this;\n\t}\n\n\tstatic from_processed(string: string, map?: DecodedSourceMap): MappedCode {\n\t\tconst line_count = string.split('\\n').length;\n\n\t\tif (map) {\n\t\t\t// ensure that count of source map mappings lines\n\t\t\t// is equal to count of generated code lines\n\t\t\t// (some tools may produce less)\n\t\t\tconst missing_lines = line_count - map.mappings.length;\n\t\t\tfor (let i = 0; i < missing_lines; i++) {\n\t\t\t\tmap.mappings.push([]);\n\t\t\t}\n\t\t\treturn new MappedCode(string, map);\n\t\t}\n\n\t\tif (string == '') return new MappedCode();\n\t\tmap = { version: 3, names: [], sources: [], mappings: [] };\n\n\t\t// add empty SourceMapSegment[] for every line\n\t\tfor (let i = 0; i < line_count; i++) map.mappings.push([]);\n\t\treturn new MappedCode(string, map);\n\t}\n\n\tstatic from_source({ source, file_basename, get_location }: Source): MappedCode {\n\t\tlet offset: SourceLocation = get_location(0);\n\n\t\tif (!offset) offset = { line: 0, column: 0 };\n\t\tconst map: DecodedSourceMap = { version: 3, names: [], sources: [file_basename], mappings: [] };\n\t\tif (source == '') return new MappedCode(source, map);\n\n\t\t// we create a high resolution identity map here,\n\t\t// we know that it will eventually be merged with svelte's map,\n\t\t// at which stage the resolution will decrease.\n\t\tconst line_list = source.split('\\n');\n\t\tfor (let line = 0; line < line_list.length; line++) {\n\t\t\tmap.mappings.push([]);\n\t\t\tconst token_list = line_list[line].split(regex_line_token);\n\t\t\tfor (let token = 0, column = 0; token < token_list.length; token++) {\n\t\t\t\tif (token_list[token] == '') continue;\n\t\t\t\tmap.mappings[line].push([column, 0, offset.line + line, column]);\n\t\t\t\tcolumn += token_list[token].length;\n\t\t\t}\n\t\t}\n\t\t// shift columns in first line\n\t\tconst segment_list = map.mappings[0];\n\t\tfor (let segment = 0; segment < segment_list.length; segment++) {\n\t\t\tsegment_list[segment][3] += offset.column;\n\t\t}\n\t\treturn new MappedCode(source, map);\n\t}\n}\n\nexport function combine_sourcemaps(\n\tfilename: string,\n\tsourcemap_list: Array<DecodedSourceMap | RawSourceMap>\n): RawSourceMap {\n\tif (sourcemap_list.length == 0) return null;\n\n\tlet map_idx = 1;\n\tconst map: RawSourceMap =\n\t\tsourcemap_list.slice(0, -1)\n\t\t\t.find(m => m.sources.length !== 1) === undefined\n\n\t\t\t? remapping( // use array interface\n\t\t\t\t// only the oldest sourcemap can have multiple sources\n\t\t\t\tsourcemap_list,\n\t\t\t\t() => null,\n\t\t\t\ttrue // skip optional field `sourcesContent`\n\t\t\t)\n\n\t\t\t: remapping( // use loader interface\n\t\t\t\tsourcemap_list[0], // last map\n\t\t\t\tfunction loader(sourcefile) {\n\t\t\t\t\tif (sourcefile === filename && sourcemap_list[map_idx]) {\n\t\t\t\t\t\treturn sourcemap_list[map_idx++]; // idx 1, 2, ...\n\t\t\t\t\t\t// bundle file = branch node\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn null; // source file = leaf node\n\t\t\t\t\t}\n\t\t\t\t} as SourceMapLoader,\n\t\t\t\ttrue\n\t\t\t);\n\n\tif (!map.file) delete map.file; // skip optional field `file`\n\n\t// When source maps are combined and the leading map is empty, sources is not set.\n\t// Add the filename to the empty array in this case.\n\t// Further improvements to remapping may help address this as well https://github.com/ampproject/remapping/issues/116\n\tif (!map.sources.length) map.sources = [filename];\n\n\treturn map;\n}\n\n// browser vs node.js\nconst b64enc = typeof btoa == 'function' ? btoa : b => Buffer.from(b).toString('base64');\nconst b64dec = typeof atob == 'function' ? atob : a => Buffer.from(a, 'base64').toString();\n\nexport function apply_preprocessor_sourcemap(filename: string, svelte_map: SourceMap, preprocessor_map_input: string | DecodedSourceMap | RawSourceMap): SourceMap {\n\tif (!svelte_map || !preprocessor_map_input) return svelte_map;\n\n\tconst preprocessor_map = typeof preprocessor_map_input === 'string' ? JSON.parse(preprocessor_map_input) : preprocessor_map_input;\n\n\tconst result_map = combine_sourcemaps(\n\t\tfilename,\n\t\t[\n\t\t\tsvelte_map as RawSourceMap,\n\t\t\tpreprocessor_map\n\t\t]\n\t) as RawSourceMap;\n\n\t// Svelte expects a SourceMap which includes toUrl and toString. Instead of wrapping our output in a class,\n\t// we just tack on the extra properties.\n\tObject.defineProperties(result_map, {\n\t\ttoString: {\n\t\t\tenumerable: false,\n\t\t\tvalue: function toString() {\n\t\t\t\treturn JSON.stringify(this);\n\t\t\t}\n\t\t},\n\t\ttoUrl: {\n\t\t\tenumerable: false,\n\t\t\tvalue: function toUrl() {\n\t\t\t\treturn 'data:application/json;charset=utf-8;base64,' + b64enc(this.toString());\n\t\t\t}\n\t\t}\n\t});\n\n\treturn result_map as SourceMap;\n}\n\nconst regex_data_uri = /data:(?:application|text)\\/json;(?:charset[:=]\\S+?;)?base64,(\\S*)/;\n\n// parse attached sourcemap in processed.code\nexport function parse_attached_sourcemap(processed: Processed, tag_name: 'script' | 'style'): void {\n\tconst r_in = '[#@]\\\\s*sourceMappingURL\\\\s*=\\\\s*(\\\\S*)';\n\tconst regex = (tag_name == 'script')\n\t\t? new RegExp('(?://' + r_in + ')|(?:/\\\\*' + r_in + '\\\\s*\\\\*/)$')\n\t\t: new RegExp('/\\\\*' + r_in + '\\\\s*\\\\*/$');\n\tfunction log_warning(message) {\n\t\t// code_start: help to find preprocessor\n\t\tconst code_start = processed.code.length < 100 ? processed.code : (processed.code.slice(0, 100) + ' [...]');\n\t\tconsole.warn(`warning: ${message}. processed.code = ${JSON.stringify(code_start)}`);\n\t}\n\tprocessed.code = processed.code.replace(regex, (_, match1, match2) => {\n\t\tconst map_url = (tag_name == 'script') ? (match1 || match2) : match1;\n\t\tconst map_data = (map_url.match(regex_data_uri) || [])[1];\n\t\tif (map_data) {\n\t\t\t// sourceMappingURL is data URL\n\t\t\tif (processed.map) {\n\t\t\t\tlog_warning('Not implemented. ' +\n\t\t\t\t\t'Found sourcemap in both processed.code and processed.map. ' +\n\t\t\t\t\t'Please update your preprocessor to return only one sourcemap.');\n\t\t\t\t// ignore attached sourcemap\n\t\t\t\treturn '';\n\t\t\t}\n\t\t\tprocessed.map = b64dec(map_data); // use attached sourcemap\n\t\t\treturn ''; // remove from processed.code\n\t\t}\n\t\t// sourceMappingURL is path or URL\n\t\tif (!processed.map) {\n\t\t\tlog_warning(`Found sourcemap path ${JSON.stringify(map_url)} in processed.code, but no sourcemap data. ` +\n\t\t\t\t'Please update your preprocessor to return sourcemap data directly.');\n\t\t}\n\t\t// ignore sourcemap path\n\t\treturn ''; // remove from processed.code\n\t});\n}\n","import { EnableSourcemap } from '../../interfaces';\n\nexport default function check_enable_sourcemap(\n enable_sourcemap: EnableSourcemap,\n namespace: keyof Extract<EnableSourcemap, object>\n) {\n return typeof enable_sourcemap === 'boolean'\n ? enable_sourcemap\n : enable_sourcemap[namespace];\n}\n","import { b, x, p } from 'code-red';\nimport Component from '../Component';\nimport Renderer from './Renderer';\nimport { CompileOptions, CssResult } from '../../interfaces';\nimport { walk } from 'estree-walker';\nimport { extract_names, Scope } from 'periscopic';\nimport { invalidate } from './invalidate';\nimport Block from './Block';\nimport { ImportDeclaration, ClassDeclaration, FunctionExpression, Node, Statement, ObjectExpression, Expression } from 'estree';\nimport { apply_preprocessor_sourcemap } from '../../utils/mapped_code';\nimport { RawSourceMap, DecodedSourceMap } from '@ampproject/remapping/dist/types/types';\nimport { flatten } from '../../utils/flatten';\nimport check_enable_sourcemap from '../utils/check_enable_sourcemap';\nimport { push_array } from '../../utils/push_array';\nimport { regex_backslashes } from '../../utils/patterns';\n\nexport default function dom(\n\tcomponent: Component,\n\toptions: CompileOptions\n): { js: Node[]; css: CssResult } {\n\tconst { name } = component;\n\n\tconst renderer = new Renderer(component, options);\n\tconst { block } = renderer;\n\n\tblock.has_outro_method = true;\n\n\t// prevent fragment being created twice (#1063)\n\tif (options.customElement) block.chunks.create.push(b`this.c = @noop;`);\n\n\tconst body = [];\n\n\tif (renderer.file_var) {\n\t\tconst file = component.file ? x`\"${component.file}\"` : x`undefined`;\n\t\tbody.push(b`const ${renderer.file_var} = ${file};`);\n\t}\n\n\tconst css = component.stylesheet.render(options.filename, !options.customElement);\n\n\tconst css_sourcemap_enabled = check_enable_sourcemap(options.enableSourcemap, 'css');\n\n\tif (css_sourcemap_enabled) {\n\t\tcss.map = apply_preprocessor_sourcemap(options.filename, css.map, options.sourcemap as string | RawSourceMap | DecodedSourceMap);\n\t} else {\n\t\tcss.map = null;\n\t}\n\n\tconst styles = css_sourcemap_enabled && component.stylesheet.has_styles && options.dev\n\t\t? `${css.code}\\n/*# sourceMappingURL=${css.map.toUrl()} */`\n\t\t: css.code;\n\n\tconst add_css = component.get_unique_name('add_css');\n\n\tconst should_add_css = (\n\t\t!options.customElement &&\n\t\t!!styles &&\n\t\toptions.css === 'injected'\n\t);\n\n\tif (should_add_css) {\n\t\tbody.push(b`\n\t\t\tfunction ${add_css}(target) {\n\t\t\t\t@append_styles(target, \"${component.stylesheet.id}\", \"${styles}\");\n\t\t\t}\n\t\t`);\n\t}\n\n\t// fix order\n\t// TODO the deconflicted names of blocks are reversed... should set them here\n\tconst blocks = renderer.blocks.slice().reverse();\n\n\tpush_array(body, blocks.map(block => {\n\t\t// TODO this is a horrible mess — renderer.blocks\n\t\t// contains a mixture of Blocks and Nodes\n\t\tif ((block as Block).render) return (block as Block).render();\n\t\treturn block;\n\t}));\n\n\tif (options.dev && !options.hydratable) {\n\t\tblock.chunks.claim.push(\n\t\t\tb`throw new @_Error(\"options.hydrate only works if the component was compiled with the \\`hydratable: true\\` option\");`\n\t\t);\n\t}\n\n\tconst uses_slots = component.var_lookup.has('$$slots');\n\tlet compute_slots: Node[] | undefined;\n\tif (uses_slots) {\n\t\tcompute_slots = b`\n\t\t\tconst $$slots = @compute_slots(#slots);\n\t\t`;\n\t}\n\n\n\tconst uses_props = component.var_lookup.has('$$props');\n\tconst uses_rest = component.var_lookup.has('$$restProps');\n\tconst $$props = uses_props || uses_rest ? '$$new_props' : '$$props';\n\tconst props = component.vars.filter(variable => !variable.module && variable.export_name);\n\tconst writable_props = props.filter(variable => variable.writable);\n\n\tconst omit_props_names = component.get_unique_name('omit_props_names');\n\tconst compute_rest = x`@compute_rest_props($$props, ${omit_props_names.name})`;\n\tconst rest = uses_rest ? b`\n\t\tconst ${omit_props_names.name} = [${props.map(prop => `\"${prop.export_name}\"`).join(',')}];\n\t\tlet $$restProps = ${compute_rest};\n\t` : null;\n\n\tconst set = (uses_props || uses_rest || writable_props.length > 0 || component.slots.size > 0)\n\t\t? x`\n\t\t\t${$$props} => {\n\t\t\t\t${uses_props && renderer.invalidate('$$props', x`$$props = @assign(@assign({}, $$props), @exclude_internal_props($$new_props))`)}\n\t\t\t\t${uses_rest && !uses_props && x`$$props = @assign(@assign({}, $$props), @exclude_internal_props($$new_props))`}\n\t\t\t\t${uses_rest && renderer.invalidate('$$restProps', x`$$restProps = ${compute_rest}`)}\n\t\t\t\t${writable_props.map(prop =>\n\t\t\t\t\tb`if ('${prop.export_name}' in ${$$props}) ${renderer.invalidate(prop.name, x`${prop.name} = ${$$props}.${prop.export_name}`)};`\n\t\t\t\t)}\n\t\t\t\t${component.slots.size > 0 &&\n\t\t\t\tb`if ('$$scope' in ${$$props}) ${renderer.invalidate('$$scope', x`$$scope = ${$$props}.$$scope`)};`}\n\t\t\t}\n\t\t`\n\t\t: null;\n\n\tconst accessors = [];\n\n\tconst not_equal = component.component_options.immutable ? x`@not_equal` : x`@safe_not_equal`;\n\tlet missing_props_check: Node[] | Node;\n\tlet inject_state: Expression;\n\tlet capture_state: Expression;\n\tlet props_inject: Node[] | Node;\n\n\tprops.forEach(prop => {\n\t\tconst variable = component.var_lookup.get(prop.name);\n\n\t\tif (!variable.writable || component.component_options.accessors) {\n\t\t\taccessors.push({\n\t\t\t\ttype: 'MethodDefinition',\n\t\t\t\tkind: 'get',\n\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\n\t\t\t\tvalue: x`function() {\n\t\t\t\t\treturn ${prop.hoistable ? prop.name : x`this.$$.ctx[${renderer.context_lookup.get(prop.name).index}]`}\n\t\t\t\t}`\n\t\t\t});\n\t\t} else if (component.compile_options.dev) {\n\t\t\taccessors.push({\n\t\t\t\ttype: 'MethodDefinition',\n\t\t\t\tkind: 'get',\n\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\n\t\t\t\tvalue: x`function() {\n\t\t\t\t\tthrow new @_Error(\"<${component.tag}>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'\");\n\t\t\t\t}`\n\t\t\t});\n\t\t}\n\n\t\tif (component.component_options.accessors) {\n\t\t\tif (variable.writable && !renderer.readonly.has(prop.name)) {\n\t\t\t\taccessors.push({\n\t\t\t\t\ttype: 'MethodDefinition',\n\t\t\t\t\tkind: 'set',\n\t\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\n\t\t\t\t\tvalue: x`function(${prop.name}) {\n\t\t\t\t\t\tthis.$$set({ ${prop.export_name}: ${prop.name} });\n\t\t\t\t\t\t@flush();\n\t\t\t\t\t}`\n\t\t\t\t});\n\t\t\t} else if (component.compile_options.dev) {\n\t\t\t\taccessors.push({\n\t\t\t\t\ttype: 'MethodDefinition',\n\t\t\t\t\tkind: 'set',\n\t\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\n\t\t\t\t\tvalue: x`function(value) {\n\t\t\t\t\t\tthrow new @_Error(\"<${component.tag}>: Cannot set read-only property '${prop.export_name}'\");\n\t\t\t\t\t}`\n\t\t\t\t});\n\t\t\t}\n\t\t} else if (component.compile_options.dev) {\n\t\t\taccessors.push({\n\t\t\t\ttype: 'MethodDefinition',\n\t\t\t\tkind: 'set',\n\t\t\t\tkey: { type: 'Identifier', name: prop.export_name },\n\t\t\t\tvalue: x`function(value) {\n\t\t\t\t\tthrow new @_Error(\"<${component.tag}>: Props cannot be set directly on the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'\");\n\t\t\t\t}`\n\t\t\t});\n\t\t}\n\t});\n\n\tcomponent.instance_exports_from.forEach(exports_from => {\n\t\tconst import_declaration = {\n\t\t\t...exports_from,\n\t\t\ttype: 'ImportDeclaration',\n\t\t\tspecifiers: [],\n\t\t\tsource: exports_from.source\n\t\t};\n\t\tcomponent.imports.push(import_declaration as ImportDeclaration);\n\n\t\texports_from.specifiers.forEach(specifier => {\n\t\t\tif (component.component_options.accessors) {\n\t\t\t\tconst name = component.get_unique_name(specifier.exported.name);\n\t\t\t\timport_declaration.specifiers.push({\n\t\t\t\t\t...specifier,\n\t\t\t\t\ttype: 'ImportSpecifier',\n\t\t\t\t\timported: specifier.local,\n\t\t\t\t\tlocal: name\n\t\t\t\t});\n\n\t\t\t\taccessors.push({\n\t\t\t\t\ttype: 'MethodDefinition',\n\t\t\t\t\tkind: 'get',\n\t\t\t\t\tkey: { type: 'Identifier', name: specifier.exported.name },\n\t\t\t\t\tvalue: x`function() {\n\t\t\t\t\t\treturn ${name}\n\t\t\t\t\t}`\n\t\t\t\t});\n\t\t\t} else if (component.compile_options.dev) {\n\t\t\t\taccessors.push({\n\t\t\t\t\ttype: 'MethodDefinition',\n\t\t\t\t\tkind: 'get',\n\t\t\t\t\tkey: { type: 'Identifier', name: specifier.exported.name },\n\t\t\t\t\tvalue: x`function() {\n\t\t\t\t\t\tthrow new @_Error(\"<${component.tag}>: Props cannot be read directly from the component instance unless compiling with 'accessors: true' or '<svelte:options accessors/>'\");\n\t\t\t\t\t}`\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t});\n\n\tif (component.compile_options.dev) {\n\t\t// checking that expected ones were passed\n\t\tconst expected = props.filter(prop => prop.writable && !prop.initialised);\n\n\t\tif (expected.length) {\n\t\t\tmissing_props_check = b`\n\t\t\t\t$$self.$$.on_mount.push(function () {\n\t\t\t\t\t${expected.map(prop => b`\n\t\t\t\t\tif (${prop.name} === undefined && !(('${prop.export_name}' in $$props) || $$self.$$.bound[$$self.$$.props['${prop.export_name}']])) {\n\t\t\t\t\t\t@_console.warn(\"<${component.tag}> was created without expected prop '${prop.export_name}'\");\n\t\t\t\t\t}`)}\n\t\t\t\t});\n\t\t\t`;\n\t\t}\n\n\t\tconst capturable_vars = component.vars.filter(v => !v.internal && !v.global && !v.name.startsWith('$$'));\n\n\t\tif (capturable_vars.length > 0) {\n\t\t\tcapture_state = x`() => ({ ${capturable_vars.map(prop => p`${prop.name}`)} })`;\n\t\t}\n\n\t\tconst injectable_vars = capturable_vars.filter(v => !v.module && v.writable && v.name[0] !== '$');\n\n\t\tif (uses_props || injectable_vars.length > 0) {\n\t\t\tinject_state = x`\n\t\t\t\t${$$props} => {\n\t\t\t\t\t${uses_props && renderer.invalidate('$$props', x`$$props = @assign(@assign({}, $$props), $$new_props)`)}\n\t\t\t\t\t${injectable_vars.map(\n\t\t\t\t\t\tv => b`if ('${v.name}' in $$props) ${renderer.invalidate(v.name, x`${v.name} = ${$$props}.${v.name}`)};`\n\t\t\t\t\t)}\n\t\t\t\t}\n\t\t\t`;\n\n\t\t\tprops_inject = b`\n\t\t\t\tif ($$props && \"$$inject\" in $$props) {\n\t\t\t\t\t$$self.$inject_state($$props.$$inject);\n\t\t\t\t}\n\t\t\t`;\n\t\t}\n\t}\n\n\t// instrument assignments\n\tif (component.ast.instance) {\n\t\tlet scope = component.instance_scope;\n\t\tconst map = component.instance_scope_map;\n\t\tlet execution_context: Node | null = null;\n\n\t\twalk(component.ast.instance.content, {\n\t\t\tenter(node: Node) {\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = map.get(node) as Scope;\n\n\t\t\t\t\tif (!execution_context && !scope.block) {\n\t\t\t\t\t\texecution_context = node;\n\t\t\t\t\t}\n\t\t\t\t} else if (!execution_context && node.type === 'LabeledStatement' && node.label.name === '$') {\n\t\t\t\t\texecution_context = node;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tleave(node: Node) {\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = scope.parent;\n\t\t\t\t}\n\n\t\t\t\tif (execution_context === node) {\n\t\t\t\t\texecution_context = null;\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') {\n\t\t\t\t\tconst assignee = node.type === 'AssignmentExpression' ? node.left : node.argument;\n\n\t\t\t\t\t// normally (`a = 1`, `b.c = 2`), there'll be a single name\n\t\t\t\t\t// (a or b). In destructuring cases (`[d, e] = [e, d]`) there\n\t\t\t\t\t// may be more, in which case we need to tack the extra ones\n\t\t\t\t\t// onto the initial function call\n\t\t\t\t\tconst names = new Set(extract_names(assignee as Node));\n\n\t\t\t\t\tthis.replace(invalidate(renderer, scope, node, names, execution_context === null));\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tcomponent.rewrite_props(({ name, reassigned, export_name }) => {\n\t\t\tconst value = `$${name}`;\n\t\t\tconst i = renderer.context_lookup.get(`$${name}`).index;\n\n\t\t\tconst insert = (reassigned || export_name)\n\t\t\t\t? b`${`$$subscribe_${name}`}()`\n\t\t\t\t: b`@component_subscribe($$self, ${name}, #value => $$invalidate(${i}, ${value} = #value))`;\n\n\t\t\tif (component.compile_options.dev) {\n\t\t\t\treturn b`@validate_store(${name}, '${name}'); ${insert}`;\n\t\t\t}\n\n\t\t\treturn insert;\n\t\t});\n\t}\n\n\tconst args = [x`$$self`];\n\tconst has_invalidate = props.length > 0 ||\n\t\tcomponent.has_reactive_assignments ||\n\t\tcomponent.slots.size > 0 ||\n\t\tcapture_state ||\n\t\tinject_state;\n\tif (has_invalidate) {\n\t\targs.push(x`$$props`, x`$$invalidate`);\n\t} else if (component.compile_options.dev) {\n\t\t// $$props arg is still needed for unknown prop check\n\t\targs.push(x`$$props`);\n\t}\n\t// has_create_fragment is intentionally to be true in dev mode.\n\tconst has_create_fragment = component.compile_options.dev || block.has_content();\n\tif (has_create_fragment) {\n\t\tbody.push(b`\n\t\t\tfunction create_fragment(#ctx) {\n\t\t\t\t${block.get_contents()}\n\t\t\t}\n\t\t`);\n\t}\n\n\tbody.push(b`\n\t\t${component.extract_javascript(component.ast.module)}\n\n\t\t${component.fully_hoisted}\n\t`);\n\n\tconst filtered_props = props.filter(prop => {\n\t\tconst variable = component.var_lookup.get(prop.name);\n\n\t\tif (variable.hoistable) return false;\n\t\treturn prop.name[0] !== '$';\n\t});\n\n\tconst reactive_stores = component.vars.filter(variable => variable.name[0] === '$' && variable.name[1] !== '$');\n\n\tconst instance_javascript = component.extract_javascript(component.ast.instance);\n\n\tconst has_definition = (\n\t\tcomponent.compile_options.dev ||\n\t\t(instance_javascript && instance_javascript.length > 0) ||\n\t\tfiltered_props.length > 0 ||\n\t\tuses_props ||\n\t\tcomponent.partly_hoisted.length > 0 ||\n\t\trenderer.initial_context.length > 0 ||\n\t\tcomponent.reactive_declarations.length > 0 ||\n\t\tcapture_state ||\n\t\tinject_state\n\t);\n\n\tconst definition = has_definition\n\t\t? component.alias('instance')\n\t\t: { type: 'Literal', value: null };\n\n\tconst reactive_store_subscriptions = reactive_stores\n\t\t.filter(store => {\n\t\t\tconst variable = component.var_lookup.get(store.name.slice(1));\n\t\t\treturn !variable || variable.hoistable;\n\t\t})\n\t\t.map(({ name }) => b`\n\t\t\t${component.compile_options.dev && b`@validate_store(${name.slice(1)}, '${name.slice(1)}');`}\n\t\t\t@component_subscribe($$self, ${name.slice(1)}, $$value => $$invalidate(${renderer.context_lookup.get(name).index}, ${name} = $$value));\n\t\t`);\n\n\tconst resubscribable_reactive_store_unsubscribers = reactive_stores\n\t\t.filter(store => {\n\t\t\tconst variable = component.var_lookup.get(store.name.slice(1));\n\t\t\treturn variable && (variable.reassigned || variable.export_name) && !variable.is_reactive_static;\n\t\t})\n\t\t.map(({ name }) => b`$$self.$$.on_destroy.push(() => ${`$$unsubscribe_${name.slice(1)}`}());`);\n\n\tif (has_definition) {\n\t\tconst reactive_declarations: Node[] = [];\n\t\tconst fixed_reactive_declarations: Array<Node | Node[]> = []; // not really 'reactive' but whatever\n\n\t\tcomponent.reactive_declarations.forEach(d => {\n\t\t\tconst dependencies = Array.from(d.dependencies);\n\t\t\tconst uses_rest_or_props = !!dependencies.find(n => n === '$$props' || n === '$$restProps');\n\n\t\t\tconst writable = dependencies.filter(n => {\n\t\t\t\tconst variable = component.var_lookup.get(n);\n\t\t\t\treturn variable && (variable.export_name || variable.mutated || variable.reassigned);\n\t\t\t});\n\n\t\t\tconst condition = !uses_rest_or_props && writable.length > 0 && renderer.dirty(writable, true);\n\n\t\t\tlet statement = d.node; // TODO remove label (use d.node.body) if it's not referenced\n\n\t\t\tif (condition) statement = b`if (${condition}) { ${statement} }`[0] as Statement;\n\n\t\t\tif (condition || uses_rest_or_props) {\n\t\t\t\treactive_declarations.push(statement);\n\t\t\t} else {\n\t\t\t\tfixed_reactive_declarations.push(statement);\n\t\t\t\tfor (const assignee of d.assignees) {\n\t\t\t\t\tconst variable = component.var_lookup.get(assignee);\n\t\t\t\t\tif (variable && variable.subscribable) {\n\t\t\t\t\t\tfixed_reactive_declarations.push(b`\n\t\t\t\t\t\t\t${component.compile_options.dev && b`@validate_store(${assignee}, '${assignee}');`}\n\t\t\t\t\t\t\t@component_subscribe($$self, ${assignee}, $$value => $$invalidate(${renderer.context_lookup.get('$' + assignee).index}, ${'$' + assignee} = $$value));\n\t\t\t\t\t\t`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tconst injected = Array.from(component.injected_reactive_declaration_vars).filter(name => {\n\t\t\tconst variable = component.var_lookup.get(name);\n\t\t\treturn variable.injected && variable.name[0] !== '$';\n\t\t});\n\n\t\tconst reactive_store_declarations = reactive_stores.map(variable => {\n\t\t\tconst $name = variable.name;\n\t\t\tconst name = $name.slice(1);\n\n\t\t\tconst store = component.var_lookup.get(name);\n\t\t\tif (store && (store.reassigned || store.export_name) && !store.is_reactive_static) {\n\t\t\t\tconst unsubscribe = `$$unsubscribe_${name}`;\n\t\t\t\tconst subscribe = `$$subscribe_${name}`;\n\t\t\t\tconst i = renderer.context_lookup.get($name).index;\n\n\t\t\t\treturn b`let ${$name}, ${unsubscribe} = @noop, ${subscribe} = () => (${unsubscribe}(), ${unsubscribe} = @subscribe(${name}, $$value => $$invalidate(${i}, ${$name} = $$value)), ${name})`;\n\t\t\t}\n\n\t\t\treturn b`let ${$name};`;\n\t\t});\n\n\t\tlet unknown_props_check: Node[] | undefined;\n\t\tif (component.compile_options.dev && !(uses_props || uses_rest)) {\n\t\t\tunknown_props_check = b`\n\t\t\t\tconst writable_props = [${writable_props.map(prop => x`'${prop.export_name}'`)}];\n\t\t\t\t@_Object.keys($$props).forEach(key => {\n\t\t\t\t\tif (!~writable_props.indexOf(key) && key.slice(0, 2) !== '$$' && key !== 'slot') @_console.warn(\\`<${component.tag}> was created with unknown prop '\\${key}'\\`);\n\t\t\t\t});\n\t\t\t`;\n\t\t}\n\n\t\tconst return_value = {\n\t\t\ttype: 'ArrayExpression',\n\t\t\telements: renderer.initial_context.map(member => ({\n\t\t\t\ttype: 'Identifier',\n\t\t\t\tname: member.name\n\t\t\t}) as Expression)\n\t\t};\n\n\t\tbody.push(b`\n\t\t\tfunction ${definition}(${args}) {\n\t\t\t\t${injected.map(name => b`let ${name};`)}\n\n\t\t\t\t${rest}\n\n\t\t\t\t${reactive_store_declarations}\n\n\t\t\t\t${reactive_store_subscriptions}\n\n\t\t\t\t${resubscribable_reactive_store_unsubscribers}\n\n\t\t\t\t${component.slots.size || component.compile_options.dev || uses_slots ? b`let { $$slots: #slots = {}, $$scope } = $$props;` : null}\n\t\t\t\t${component.compile_options.dev && b`@validate_slots('${component.tag}', #slots, [${[...component.slots.keys()].map(key => `'${key}'`).join(',')}]);`}\n\t\t\t\t${compute_slots}\n\n\t\t\t\t${instance_javascript}\n\n\t\t\t\t${missing_props_check}\n\t\t\t\t${unknown_props_check}\n\n\t\t\t\t${renderer.binding_groups.size > 0 && b`const $$binding_groups = [${[...renderer.binding_groups.keys()].map(_ => x`[]`)}];`}\n\n\t\t\t\t${component.partly_hoisted}\n\n\t\t\t\t${set && b`$$self.$$set = ${set};`}\n\n\t\t\t\t${capture_state && b`$$self.$capture_state = ${capture_state};`}\n\n\t\t\t\t${inject_state && b`$$self.$inject_state = ${inject_state};`}\n\n\t\t\t\t${/* before reactive declarations */ props_inject}\n\n\t\t\t\t${reactive_declarations.length > 0 && b`\n\t\t\t\t$$self.$$.update = () => {\n\t\t\t\t\t${reactive_declarations}\n\t\t\t\t};\n\t\t\t\t`}\n\n\t\t\t\t${fixed_reactive_declarations}\n\n\t\t\t\t${uses_props && b`$$props = @exclude_internal_props($$props);`}\n\n\t\t\t\treturn ${return_value};\n\t\t\t}\n\t\t`);\n\t}\n\n\tconst prop_indexes = x`{\n\t\t${props.filter(v => v.export_name && !v.module).map(v => p`${v.export_name}: ${renderer.context_lookup.get(v.name).index}`)}\n\t}` as ObjectExpression;\n\n\tlet dirty;\n\tif (renderer.context_overflow) {\n\t\tdirty = x`[]`;\n\t\tfor (let i = 0; i < renderer.context.length; i += 31) {\n\t\t\tdirty.elements.push(x`-1`);\n\t\t}\n\t}\n\n\tif (options.customElement) {\n\n\t\tlet init_props = x`@attribute_to_object(this.attributes)`;\n\t\tif (uses_slots) {\n\t\t\tinit_props = x`{ ...${init_props}, $$slots: @get_custom_elements_slots(this) }`;\n\t\t}\n\n\t\tconst declaration = b`\n\t\t\tclass ${name} extends @SvelteElement {\n\t\t\t\tconstructor(options) {\n\t\t\t\t\tsuper();\n\n\t\t\t\t\t${css.code && b`\n\t\t\t\t\t\tconst style = document.createElement('style');\n\t\t\t\t\t\tstyle.textContent = \\`${css.code.replace(regex_backslashes, '\\\\\\\\')}${css_sourcemap_enabled && options.dev ? `\\n/*# sourceMappingURL=${css.map.toUrl()} */` : ''}\\`\n\t\t\t\t\t\tthis.shadowRoot.appendChild(style)`}\n\n\t\t\t\t\t@init(this, { target: this.shadowRoot, props: ${init_props}, customElement: true }, ${definition}, ${has_create_fragment ? 'create_fragment' : 'null'}, ${not_equal}, ${prop_indexes}, null, ${dirty});\n\n\t\t\t\t\tif (options) {\n\t\t\t\t\t\tif (options.target) {\n\t\t\t\t\t\t\t@insert(options.target, this, options.anchor);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t${(props.length > 0 || uses_props || uses_rest) && b`\n\t\t\t\t\t\tif (options.props) {\n\t\t\t\t\t\t\tthis.$set(options.props);\n\t\t\t\t\t\t\t@flush();\n\t\t\t\t\t\t}`}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t`[0] as ClassDeclaration;\n\n\t\tif (props.length > 0) {\n\t\t\tdeclaration.body.body.push({\n\t\t\t\ttype: 'MethodDefinition',\n\t\t\t\tkind: 'get',\n\t\t\t\tstatic: true,\n\t\t\t\tcomputed: false,\n\t\t\t\tkey: { type: 'Identifier', name: 'observedAttributes' },\n\t\t\t\tvalue: x`function() {\n\t\t\t\t\treturn [${props.map(prop => x`\"${prop.export_name}\"`)}];\n\t\t\t\t}` as FunctionExpression\n\t\t\t});\n\t\t}\n\n\t\tpush_array(declaration.body.body, accessors);\n\n\t\tbody.push(declaration);\n\n\t\tif (component.tag != null) {\n\t\t\tbody.push(b`\n\t\t\t\t@_customElements.define(\"${component.tag}\", ${name});\n\t\t\t`);\n\t\t}\n\t} else {\n\t\tconst superclass = {\n\t\t\ttype: 'Identifier',\n\t\t\tname: options.dev ? '@SvelteComponentDev' : '@SvelteComponent'\n\t\t};\n\n\t\tconst optional_parameters = [];\n\t\tif (should_add_css) {\n\t\t\toptional_parameters.push(add_css);\n\t\t} else if (dirty) {\n\t\t\toptional_parameters.push(x`null`);\n\t\t}\n\t\tif (dirty) {\n\t\t\toptional_parameters.push(dirty);\n\t\t}\n\n\t\tconst declaration = b`\n\t\t\tclass ${name} extends ${superclass} {\n\t\t\t\tconstructor(options) {\n\t\t\t\t\tsuper(${options.dev && 'options'});\n\t\t\t\t\t@init(this, options, ${definition}, ${has_create_fragment ? 'create_fragment' : 'null'}, ${not_equal}, ${prop_indexes}, ${optional_parameters});\n\t\t\t\t\t${options.dev && b`@dispatch_dev(\"SvelteRegisterComponent\", { component: this, tagName: \"${name.name}\", options, id: create_fragment.name });`}\n\t\t\t\t}\n\t\t\t}\n\t\t`[0] as ClassDeclaration;\n\n\t\tpush_array(declaration.body.body, accessors);\n\n\t\tbody.push(declaration);\n\t}\n\n\treturn { js: flatten(body), css };\n}\n","import ConstTag from '../../../nodes/ConstTag';\n\nexport function get_const_tags(const_tags: ConstTag[]) {\n if (const_tags.length === 0) return null;\n return {\n type: 'VariableDeclaration',\n kind: 'let',\n declarations: const_tags.map(const_tag => {\n const assignment = const_tag.node.expression;\n return {\n type: 'VariableDeclarator',\n id: assignment.left,\n init: assignment.right\n };\n })\n };\n}\n","import Renderer, { RenderOptions } from '../Renderer';\nimport AwaitBlock from '../../nodes/AwaitBlock';\nimport { x } from 'code-red';\nimport { get_const_tags } from './shared/get_const_tags';\n\nexport default function(node: AwaitBlock, renderer: Renderer, options: RenderOptions) {\n\trenderer.push();\n\trenderer.render(node.pending.children, options);\n\tconst pending = renderer.pop();\n\n\trenderer.push();\n\trenderer.render(node.then.children, options);\n\tconst then = renderer.pop();\n\n\trenderer.add_expression(x`\n\t\tfunction(__value) {\n\t\t\tif (@is_promise(__value)) {\n\t\t\t\t__value.then(null, @noop);\n\t\t\t\treturn ${pending};\n\t\t\t}\n\t\t\treturn (function(${node.then_node ? node.then_node : ''}) { ${get_const_tags(node.then.const_tags)}; return ${then}; }(__value));\n\t\t}(${node.expression.node})\n\t`);\n}\n","import Renderer, { RenderOptions } from '../Renderer';\nimport Comment from '../../nodes/Comment';\n\nexport default function(node: Comment, renderer: Renderer, options: RenderOptions) {\n\tif (options.preserveComments) {\n\t\trenderer.add_string(`<!--${node.data}-->`);\n\t}\n}\n","import DebugTag from '../../nodes/DebugTag';\nimport Renderer, { RenderOptions } from '../Renderer';\nimport { x, p } from 'code-red';\nimport { Identifier } from 'estree';\n\nexport default function(node: DebugTag, renderer: Renderer, options: RenderOptions) {\n\tif (!options.dev) return;\n\n\tconst filename = options.filename || null;\n\tconst { line, column } = options.locate(node.start + 1);\n\n\tconst obj = x`{\n\t\t${node.expressions.map(e => p`${(e.node as Identifier).name}`)}\n\t}`;\n\n\trenderer.add_expression(x`@debug(${filename ? x`\"${filename}\"` : x`null`}, ${line - 1}, ${column}, ${obj})`);\n}\n","import Renderer, { RenderOptions } from '../Renderer';\nimport EachBlock from '../../nodes/EachBlock';\nimport { x } from 'code-red';\nimport { get_const_tags } from './shared/get_const_tags';\nimport { Node } from 'estree';\n\nexport default function(node: EachBlock, renderer: Renderer, options: RenderOptions) {\n\tconst args = [node.context_node];\n\tif (node.index) args.push({ type: 'Identifier', name: node.index });\n\n\trenderer.push();\n\trenderer.render(node.children, options);\n\tconst result = renderer.pop();\n\n\tconst consequent = x`@each(${node.expression.node}, (${args}) => { ${get_const_tags(node.const_tags)}; return ${result} })`;\n\n\tif (node.else) {\n\t\trenderer.push();\n\t\trenderer.render(node.else.children, options);\n\t\tlet alternate: Node = renderer.pop();\n\t\tif (node.else.const_tags.length > 0) alternate = x`(() => { ${get_const_tags(node.else.const_tags)}; return ${alternate} })()`;\n\n\t\trenderer.add_expression(x`${node.expression.node}.length ? ${consequent} : ${alternate}`);\n\t} else {\n\t\trenderer.add_expression(consequent);\n\t}\n}\n","import Attribute from '../../../nodes/Attribute';\nimport { string_literal } from '../../../utils/stringify';\nimport Text from '../../../nodes/Text';\nimport { x } from 'code-red';\nimport Expression from '../../../nodes/shared/Expression';\nimport { Expression as ESTreeExpression } from 'estree';\nimport { regex_double_quotes } from '../../../../utils/patterns';\n\nexport function get_class_attribute_value(attribute: Attribute): ESTreeExpression {\n\t// handle special case — `class={possiblyUndefined}` with scoped CSS\n\tif (attribute.chunks.length === 2 && (attribute.chunks[1] as Text).synthetic) {\n\t\tconst value = (attribute.chunks[0] as Expression).node;\n\t\treturn x`@escape(@null_to_empty(${value}), true) + \"${(attribute.chunks[1] as Text).data}\"`;\n\t}\n\n\treturn get_attribute_value(attribute);\n}\n\nexport function get_attribute_value(attribute: Attribute): ESTreeExpression {\n\tif (attribute.chunks.length === 0) return x`\"\"`;\n\n\treturn attribute.chunks\n\t\t.map((chunk) => {\n\t\t\treturn chunk.type === 'Text'\n\t\t\t\t? string_literal(chunk.data.replace(regex_double_quotes, '"')) as ESTreeExpression\n\t\t\t\t: x`@escape(${chunk.node}, true)`;\n\t\t})\n\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\n}\n\nexport function get_attribute_expression(attribute: Attribute): ESTreeExpression {\n\tif (attribute.chunks.length === 1 && attribute.chunks[0].type === 'Expression') {\n\t\treturn (attribute.chunks[0] as Expression).node as ESTreeExpression;\n\t}\n\treturn get_attribute_value(attribute);\n}\n","import { INode } from '../../../nodes/interfaces';\nimport { trim_end, trim_start } from '../../../../utils/trim';\nimport { link } from '../../../../utils/link';\nimport { regex_starts_with_whitespace } from '../../../../utils/patterns';\n\n// similar logic from `compile/render_dom/wrappers/Fragment`\n// We want to remove trailing whitespace inside an element/component/block,\n// *unless* there is no whitespace between this node and its next sibling\nexport default function remove_whitespace_children(children: INode[], next?: INode): INode[] {\n\tconst nodes: INode[] = [];\n\tlet last_child: INode;\n\tlet i = children.length;\n\twhile (i--) {\n\t\tconst child = children[i];\n\n\t\tif (child.type === 'Text') {\n\t\t\tif (child.should_skip()) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tlet { data } = child;\n\n\t\t\tif (nodes.length === 0) {\n\t\t\t\tconst should_trim = next\n\t\t\t\t\t? next.type === 'Text' &&\n\t\t\t\t\tregex_starts_with_whitespace.test(next.data) &&\n\t\t\t\t\t trimmable_at(child, next)\n\t\t\t\t\t: !child.has_ancestor('EachBlock');\n\n\t\t\t\tif (should_trim && !child.keep_space()) {\n\t\t\t\t\tdata = trim_end(data);\n\t\t\t\t\tif (!data) continue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// glue text nodes (which could e.g. be separated by comments) together\n\t\t\tif (last_child && last_child.type === 'Text') {\n\t\t\t\tlast_child.data = data + last_child.data;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnodes.unshift(child);\n\t\t\tlink(last_child, last_child = child);\n\t\t} else {\n\t\t\tnodes.unshift(child);\n\t\t\tlink(last_child, last_child = child);\n\t\t}\n\t}\n\n\tconst first = nodes[0];\n\tif (first && first.type === 'Text' && !first.keep_space()) {\n\t\tfirst.data = trim_start(first.data);\n\t\tif (!first.data) {\n\t\t\tfirst.var = null;\n\t\t\tnodes.shift();\n\n\t\t\tif (nodes[0]) {\n\t\t\t\tnodes[0].prev = null;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn nodes;\n}\n\nfunction trimmable_at(child: INode, next_sibling: INode): boolean {\n\t// Whitespace is trimmable if one of the following is true:\n\t// The child and its sibling share a common nearest each block (not at an each block boundary)\n\t// The next sibling's previous node is an each block\n\treturn (\n\t\tnext_sibling.find_nearest(/EachBlock/) ===\n\t\t\tchild.find_nearest(/EachBlock/) || next_sibling.prev.type === 'EachBlock'\n\t);\n}\n","import { is_void } from '../../../../shared/utils/names';\nimport { get_attribute_expression, get_attribute_value, get_class_attribute_value } from './shared/get_attribute_value';\nimport { boolean_attributes } from '../../../../shared/boolean_attributes';\nimport Renderer, { RenderOptions } from '../Renderer';\nimport Element from '../../nodes/Element';\nimport { p, x } from 'code-red';\nimport Expression from '../../nodes/shared/Expression';\nimport remove_whitespace_children from './utils/remove_whitespace_children';\nimport fix_attribute_casing from '../../render_dom/wrappers/Element/fix_attribute_casing';\nimport { namespaces } from '../../../utils/namespaces';\nimport { regex_starts_with_newline } from '../../../utils/patterns';\nimport { Node, Expression as ESExpression } from 'estree';\n\nexport default function (node: Element, renderer: Renderer, options: RenderOptions) {\n\n\tconst children = remove_whitespace_children(node.children, node.next);\n\n\t// awkward special case\n\tlet node_contents;\n\n\tconst contenteditable = (\n\t\tnode.name !== 'textarea' &&\n\t\tnode.name !== 'input' &&\n\t\tnode.attributes.some((attribute) => attribute.name === 'contenteditable')\n\t);\n\n\tif (node.is_dynamic_element) {\n\t\trenderer.push();\n\t}\n\n\trenderer.add_string('<');\n\tadd_tag_name();\n\n\tconst class_expression_list = node.classes.map(class_directive => {\n\t\tconst { expression, name } = class_directive;\n\t\tconst snippet = expression ? expression.node : x`#ctx.${name}`; // TODO is this right?\n\t\treturn x`${snippet} ? \"${name}\" : \"\"`;\n\t});\n\tif (node.needs_manual_style_scoping) {\n\t\tclass_expression_list.push(x`\"${node.component.stylesheet.id}\"`);\n\t}\n\tconst class_expression =\n\t\tclass_expression_list.length > 0 &&\n\t\tclass_expression_list.reduce((lhs, rhs) => x`${lhs} + ' ' + ${rhs}`);\n\n\tconst style_expression_list = node.styles.map(style_directive => {\n\t\tlet { name, important, expression: { node: expression } } = style_directive;\n\t\tif (important) {\n\t\t\texpression = x`${expression} + ' !important'`;\n\t\t}\n\t\treturn p`\"${name}\": ${expression}`;\n\t});\n\n\tconst style_expression =\n\t\tstyle_expression_list.length > 0 &&\n\t\tx`{ ${style_expression_list} }`;\n\n\tif (node.attributes.some(attr => attr.is_spread)) {\n\t\t// TODO dry this out\n\t\tconst args = [];\n\t\tnode.attributes.forEach(attribute => {\n\t\t\tif (attribute.is_spread) {\n\t\t\t\targs.push(x`@escape_object(${attribute.expression.node})`);\n\t\t\t} else {\n\t\t\t\tconst attr_name = node.namespace === namespaces.foreign ? attribute.name : fix_attribute_casing(attribute.name);\n\t\t\t\tconst name = attribute.name.toLowerCase();\n\t\t\t\tif (name === 'value' && node.name.toLowerCase() === 'textarea') {\n\t\t\t\t\tnode_contents = get_attribute_value(attribute);\n\t\t\t\t} else if (attribute.is_true) {\n\t\t\t\t\targs.push(x`{ ${attr_name}: true }`);\n\t\t\t\t} else if (\n\t\t\t\t\tboolean_attributes.has(name) &&\n\t\t\t\t\tattribute.chunks.length === 1 &&\n\t\t\t\t\tattribute.chunks[0].type !== 'Text'\n\t\t\t\t) {\n\t\t\t\t\t// a boolean attribute with one non-Text chunk\n\t\t\t\t\targs.push(x`{ ${attr_name}: ${(attribute.chunks[0] as Expression).node} || null }`);\n\t\t\t\t} else if (attribute.chunks.length === 1 && attribute.chunks[0].type !== 'Text') {\n\t\t\t\t\tconst snippet = (attribute.chunks[0] as Expression).node;\n\t\t\t\t\targs.push(x`{ ${attr_name}: @escape_attribute_value(${snippet}) }`);\n\t\t\t\t} else {\n\t\t\t\t\targs.push(x`{ ${attr_name}: ${get_attribute_value(attribute)} }`);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\trenderer.add_expression(x`@spread([${args}], { classes: ${class_expression}, styles: ${style_expression} })`);\n\t} else {\n\t\tlet add_class_attribute = !!class_expression;\n\t\tlet add_style_attribute = !!style_expression;\n\t\tnode.attributes.forEach(attribute => {\n\t\t\tconst name = attribute.name.toLowerCase();\n\t\t\tconst attr_name = node.namespace === namespaces.foreign ? attribute.name : fix_attribute_casing(attribute.name);\n\t\t\tif (name === 'value' && node.name.toLowerCase() === 'textarea') {\n\t\t\t\tnode_contents = get_attribute_value(attribute);\n\t\t\t} else if (attribute.is_true) {\n\t\t\t\trenderer.add_string(` ${attr_name}`);\n\t\t\t} else if (\n\t\t\t\tboolean_attributes.has(name) &&\n\t\t\t\tattribute.chunks.length === 1 &&\n\t\t\t\tattribute.chunks[0].type !== 'Text'\n\t\t\t) {\n\t\t\t\t// a boolean attribute with one non-Text chunk\n\t\t\t\trenderer.add_string(' ');\n\t\t\t\trenderer.add_expression(x`${(attribute.chunks[0] as Expression).node} ? \"${attr_name}\" : \"\"`);\n\t\t\t} else if (name === 'class' && class_expression) {\n\t\t\t\tadd_class_attribute = false;\n\t\t\t\trenderer.add_string(` ${attr_name}=\"`);\n\t\t\t\trenderer.add_expression(x`[${get_class_attribute_value(attribute)}, ${class_expression}].join(' ').trim()`);\n\t\t\t\trenderer.add_string('\"');\n\t\t\t} else if (name === 'style' && style_expression) {\n\t\t\t\tadd_style_attribute = false;\n\t\t\t\trenderer.add_expression(x`@add_styles(@merge_ssr_styles(${get_attribute_value(attribute)}, ${style_expression}))`);\n\t\t\t} else if (attribute.chunks.length === 1 && attribute.chunks[0].type !== 'Text') {\n\t\t\t\tconst snippet = (attribute.chunks[0] as Expression).node;\n\t\t\t\trenderer.add_expression(x`@add_attribute(\"${attr_name}\", ${snippet}, ${boolean_attributes.has(name) ? 1 : 0})`);\n\t\t\t} else {\n\t\t\t\trenderer.add_string(` ${attr_name}=\"`);\n\t\t\t\trenderer.add_expression((name === 'class' ? get_class_attribute_value : get_attribute_value)(attribute));\n\t\t\t\trenderer.add_string('\"');\n\t\t\t}\n\t\t});\n\t\tif (add_class_attribute) {\n\t\t\trenderer.add_expression(x`@add_classes((${class_expression}).trim())`);\n\t\t}\n\t\tif (add_style_attribute) {\n\t\t\trenderer.add_expression(x`@add_styles(${style_expression})`);\n\t\t}\n\t}\n\n\tnode.bindings.forEach(binding => {\n\t\tconst { name, expression } = binding;\n\n\t\tif (binding.is_readonly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (name === 'group') {\n\t\t\tconst value_attribute = node.attributes.find(({ name }) => name === 'value');\n\t\t\tif (value_attribute) {\n\t\t\t\tconst value = get_attribute_expression(value_attribute);\n\t\t\t\tconst type = node.get_static_attribute_value('type');\n\t\t\t\tconst bound = expression.node;\n\t\t\t\tconst condition = type === 'checkbox' ? x`~${bound}.indexOf(${value})` : x`${value} === ${bound}`;\n\t\t\t\trenderer.add_expression(x`${condition} ? @add_attribute(\"checked\", true, 1) : \"\"`);\n\t\t\t}\n\t\t} else if (contenteditable && (name === 'textContent' || name === 'innerHTML')) {\n\t\t\tnode_contents = expression.node;\n\n\t\t\t// TODO where was this used?\n\t\t\t// value = name === 'textContent' ? x`@escape($$value)` : x`$$value`;\n\t\t} else if (binding.name === 'value' && node.name === 'textarea') {\n\t\t\tconst snippet = expression.node;\n\t\t\tnode_contents = x`${snippet} || \"\"`;\n\t\t} else if (binding.name === 'value' && node.name === 'select') {\n\t\t\t// NOTE: do not add \"value\" attribute on <select />\n\t\t} else {\n\t\t\tconst snippet = expression.node;\n\t\t\trenderer.add_expression(x`@add_attribute(\"${name}\", ${snippet}, ${boolean_attributes.has(name) ? 1 : 0})`);\n\t\t}\n\t});\n\n\trenderer.add_string('>');\n\n\tif (node_contents !== undefined) {\n\t\tif (contenteditable) {\n\t\t\trenderer.push();\n\t\t\trenderer.render(children, options);\n\t\t\tconst result = renderer.pop();\n\n\t\t\trenderer.add_expression(x`($$value => $$value === void 0 ? ${result} : $$value)(${node_contents})`);\n\t\t} else {\n\t\t\tif (node.name === 'textarea') {\n\t\t\t\t// Two or more leading newlines are required to restore the leading newline immediately after `<textarea>`.\n\t\t\t\t// see https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n\t\t\t\tconst value_attribute = node.attributes.find(({ name }) => name === 'value');\n\t\t\t\tif (value_attribute) {\n\t\t\t\t\tconst first = value_attribute.chunks[0];\n\t\t\t\t\tif (first && first.type === 'Text' && regex_starts_with_newline.test(first.data)) {\n\t\t\t\t\t\trenderer.add_string('\\n');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\trenderer.add_expression(node_contents);\n\t\t}\n\n\t\tadd_close_tag();\n\t} else {\n\t\tif (node.name === 'pre') {\n\t\t\t// Two or more leading newlines are required to restore the leading newline immediately after `<pre>`.\n\t\t\t// see https://html.spec.whatwg.org/multipage/grouping-content.html#the-pre-element\n\t\t\t// see https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n\t\t\tconst first = children[0];\n\t\t\tif (first && first.type === 'Text' && regex_starts_with_newline.test(first.data)) {\n\t\t\t\trenderer.add_string('\\n');\n\t\t\t}\n\t\t}\n\t\tif (node.is_dynamic_element) renderer.push();\n\t\trenderer.render(children, options);\n\t\tif (node.is_dynamic_element) {\n\t\t\tconst children = renderer.pop();\n\t\t\trenderer.add_expression(x`@is_void(#tag) ? '' : ${children}`);\n\t\t}\n\t\tadd_close_tag();\n\t}\n\n\tif (node.is_dynamic_element) {\n\t\tlet content: Node = renderer.pop();\n\t\tif (options.dev && node.children.length > 0) content = x`(() => { @validate_void_dynamic_element(#tag); return ${content}; })()`;\n\t\trenderer.add_expression(x`((#tag) => {\n\t\t\t${options.dev && x`@validate_dynamic_element(#tag)`}\n\t\t\treturn #tag ? ${content} : '';\n\t\t})(${node.tag_expr.node})`);\n\t}\n\n\tfunction add_close_tag() {\n\t\tif (node.tag_expr.node.type === 'Literal') {\n\t\t\tif (!is_void(node.tag_expr.node.value as string)) {\n\t\t\t\trenderer.add_string('</');\n\t\t\t\tadd_tag_name();\n\t\t\t\trenderer.add_string('>');\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\trenderer.add_expression(x`@is_void(#tag) ? '' : \\`</\\${#tag}>\\``);\n\t}\n\n\tfunction add_tag_name() {\n\t\tif (node.tag_expr.node.type === 'Literal') {\n\t\t\trenderer.add_string(node.tag_expr.node.value as string);\n\t\t} else {\n\t\t\trenderer.add_expression(node.tag_expr.node as ESExpression);\n\t\t}\n\t}\n}\n\n","import Renderer, { RenderOptions } from '../Renderer';\nimport Head from '../../nodes/Head';\nimport { x } from 'code-red';\nimport { Node } from 'estree';\n\nexport default function(node: Head, renderer: Renderer, options: RenderOptions) {\n\tconst head_options = {\n\t\t...options,\n\t\thead_id: node.id\n\t};\n\n\trenderer.push();\n\trenderer.render(node.children, head_options);\n\tconst result = renderer.pop();\n\tlet expression: Node = result;\n\tif (options.hydratable) {\n\t\tconst start_comment = `HEAD_${node.id}_START`;\n\t\tconst end_comment = `HEAD_${node.id}_END`;\n\t\texpression = x`'<!-- ${start_comment} -->' + ${expression} + '<!-- ${end_comment} -->'`;\n\t}\n\n\trenderer.add_expression(x`$$result.head += ${expression}, \"\"`);\n}\n","import Renderer, { RenderOptions } from '../Renderer';\nimport RawMustacheTag from '../../nodes/RawMustacheTag';\nimport { Expression } from 'estree';\n\nexport default function(node: RawMustacheTag, renderer: Renderer, options: RenderOptions) {\n\tif (options.hydratable) renderer.add_string('<!-- HTML_TAG_START -->');\n\trenderer.add_expression(node.expression.node as Expression);\n\tif (options.hydratable) renderer.add_string('<!-- HTML_TAG_END -->');\n}\n","import IfBlock from '../../nodes/IfBlock';\nimport Renderer, { RenderOptions } from '../Renderer';\nimport { x } from 'code-red';\nimport { get_const_tags } from './shared/get_const_tags';\nimport { Node } from 'estree';\n\nexport default function (node: IfBlock, renderer: Renderer, options: RenderOptions) {\n\tconst condition = node.expression.node;\n\n\trenderer.push();\n\trenderer.render(node.children, options);\n\tlet consequent: Node = renderer.pop();\n\tif (node.const_tags.length > 0) consequent = x`(() => { ${get_const_tags(node.const_tags)}; return ${consequent} })()`;\n\n\trenderer.push();\n\tif (node.else) renderer.render(node.else.children, options);\n\tlet alternate: Node = renderer.pop();\n\tif (node.else && node.else.const_tags.length > 0) alternate = x`(() => { ${get_const_tags(node.else.const_tags)}; return ${alternate} })()`;\n\n\trenderer.add_expression(x`${condition} ? ${consequent} : ${alternate}`);\n}\n","import { string_literal } from '../../utils/stringify';\nimport { get_attribute_value } from './shared/get_attribute_value';\nimport Renderer, { RenderOptions } from '../Renderer';\nimport InlineComponent from '../../nodes/InlineComponent';\nimport { p, x } from 'code-red';\nimport { namespaces } from '../../../utils/namespaces';\n\nfunction get_prop_value(attribute) {\n\tif (attribute.is_true) return x`true`;\n\tif (attribute.chunks.length === 0) return x`''`;\n\n\treturn attribute.chunks\n\t\t.map(chunk => {\n\t\t\tif (chunk.type === 'Text') return string_literal(chunk.data);\n\t\t\treturn chunk.node;\n\t\t})\n\t\t.reduce((lhs, rhs) => x`${lhs} + ${rhs}`);\n}\n\nexport default function(node: InlineComponent, renderer: Renderer, options: RenderOptions) {\n\tconst binding_props = [];\n\tconst binding_fns = [];\n\n\tnode.bindings.forEach(binding => {\n\t\trenderer.has_bindings = true;\n\n\t\t// TODO this probably won't work for contextual bindings\n\t\tconst snippet = binding.expression.node;\n\n\t\tbinding_props.push(p`${binding.name}: ${snippet}`);\n\t\tbinding_fns.push(p`${binding.name}: $$value => { ${snippet} = $$value; $$settled = false }`);\n\t});\n\n\tconst uses_spread = node.attributes.find(attr => attr.is_spread);\n\n\tlet props;\n\n\tif (uses_spread) {\n\t\tprops = x`@_Object.assign({}, ${\n\t\t\tnode.attributes\n\t\t\t\t.map(attribute => {\n\t\t\t\t\tif (attribute.is_spread) {\n\t\t\t\t\t\treturn attribute.expression.node;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn x`{ ${attribute.name}: ${get_prop_value(attribute)} }`;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.concat(binding_props.map(p => x`{ ${p} }`))\n\t\t})`;\n\t} else {\n\t\tprops = x`{\n\t\t\t${node.attributes.map(attribute => p`${attribute.name}: ${get_prop_value(attribute)}`)},\n\t\t\t${binding_props}\n\t\t}`;\n\t}\n\n\tconst bindings = x`{\n\t\t${binding_fns}\n\t}`;\n\n\tconst expression = (\n\t\tnode.name === 'svelte:self'\n\t\t\t? renderer.name\n\t\t\t: node.name === 'svelte:component'\n\t\t\t\t? x`(${node.expression.node}) || @missing_component`\n\t\t\t\t: node.name.split('.').reduce(((lhs, rhs) => x`${lhs}.${rhs}`) as any)\n\t);\n\n\tconst slot_fns = [];\n\n\tconst children = node.children;\n\n\tif (children.length) {\n\t\tconst slot_scopes = new Map();\n\n\t\trenderer.render(children, Object.assign({}, options, {\n\t\t\tslot_scopes\n\t\t}));\n\n\t\tslot_scopes.forEach(({ input, output, statements }, name) => {\n\t\t\tslot_fns.push(\n\t\t\t\tp`${name}: (${input}) => { ${statements}; return ${output}; }`\n\t\t\t);\n\t\t});\n\t}\n\n\tconst slots = x`{\n\t\t${slot_fns}\n\t}`;\n\n\tif (node.css_custom_properties.length > 0) {\n\t\tif (node.namespace === namespaces.svg) {\n\t\t\trenderer.add_string('<g style=\"');\n\t\t} else {\n\t\t\trenderer.add_string('<div style=\"display: contents; ');\n\t\t}\n\t\tnode.css_custom_properties.forEach((attr, index) => {\n\t\t\trenderer.add_string(`${attr.name}:`);\n\t\t\trenderer.add_expression(get_attribute_value(attr));\n\t\t\trenderer.add_string(';');\n\t\t\tif (index < node.css_custom_properties.length - 1) renderer.add_string(' ');\n\t\t});\n\t\trenderer.add_string('\">');\n\t}\n\n\trenderer.add_expression(x`@validate_component(${expression}, \"${node.name}\").$$render($$result, ${props}, ${bindings}, ${slots})`);\n\n\tif (node.css_custom_properties.length > 0) {\n\t\tif (node.namespace === namespaces.svg) {\n\t\t\trenderer.add_string('</g>');\n\t\t} else {\n\t\t\trenderer.add_string('</div>');\n\t\t}\n\t}\n}\n","import KeyBlock from '../../nodes/KeyBlock';\nimport Renderer, { RenderOptions } from '../Renderer';\n\nexport default function(node: KeyBlock, renderer: Renderer, options: RenderOptions) {\n\trenderer.render(node.children, options);\n}\n","import Let from '../../../nodes/Let';\nimport { ObjectPattern } from 'estree';\n\nexport function get_slot_scope(lets: Let[]): ObjectPattern {\n\tif (lets.length === 0) return null;\n\n\treturn {\n\t\ttype: 'ObjectPattern',\n\t\tproperties: lets.map(l => {\n\t\t\treturn {\n\t\t\t\ttype: 'Property',\n\t\t\t\tkind: 'init',\n\t\t\t\tmethod: false,\n\t\t\t\tshorthand: false,\n\t\t\t\tcomputed: false,\n\t\t\t\tkey: l.name,\n\t\t\t\tvalue: l.value || l.name\n\t\t\t};\n\t\t})\n\t};\n}\n","import Renderer, { RenderOptions } from '../Renderer';\nimport Slot from '../../nodes/Slot';\nimport { x } from 'code-red';\nimport get_slot_data from '../../utils/get_slot_data';\nimport { get_slot_scope } from './shared/get_slot_scope';\n\nexport default function(node: Slot, renderer: Renderer, options: RenderOptions & {\n\tslot_scopes: Map<any, any>;\n}) {\n\tconst slot_data = get_slot_data(node.values);\n\tconst slot = node.get_static_attribute_value('slot');\n\tconst nearest_inline_component = node.find_nearest(/InlineComponent/);\n\n\tif (slot && nearest_inline_component) {\n\t\trenderer.push();\n\t}\n\n\trenderer.push();\n\trenderer.render(node.children, options);\n\tconst result = renderer.pop();\n\n\trenderer.add_expression(x`\n\t\t#slots.${node.slot_name}\n\t\t\t? #slots.${node.slot_name}(${slot_data})\n\t\t\t: ${result}\n\t`);\n\n\tif (slot && nearest_inline_component) {\n\t\tconst lets = node.lets;\n\t\tconst seen = new Set(lets.map(l => l.name.name));\n\n\t\tnearest_inline_component.lets.forEach(l => {\n\t\t\tif (!seen.has(l.name.name)) lets.push(l);\n\t\t});\n\t\toptions.slot_scopes.set(slot, {\n\t\t\tinput: get_slot_scope(node.lets),\n\t\t\toutput: renderer.pop()\n\t\t});\n\t}\n}\n","import Renderer, { RenderOptions } from '../Renderer';\nimport SlotTemplate from '../../nodes/SlotTemplate';\nimport remove_whitespace_children from './utils/remove_whitespace_children';\nimport { get_slot_scope } from './shared/get_slot_scope';\nimport InlineComponent from '../../nodes/InlineComponent';\nimport { get_const_tags } from './shared/get_const_tags';\n\nexport default function(node: SlotTemplate, renderer: Renderer, options: RenderOptions & {\n\tslot_scopes: Map<any, any>;\n}) {\n\tconst parent_inline_component = node.parent as InlineComponent;\n\tconst children = remove_whitespace_children(node instanceof SlotTemplate ? node.children : [node], node.next);\n\n\trenderer.push();\n\trenderer.render(children, options);\n\n\tconst lets = node.lets;\n\tconst seen = new Set(lets.map(l => l.name.name));\n\tparent_inline_component.lets.forEach(l => {\n\t\tif (!seen.has(l.name.name)) lets.push(l);\n\t});\n\n\tconst slot_fragment_content = renderer.pop();\n\tif (!is_empty_template_literal(slot_fragment_content)) {\n\t\tif (options.slot_scopes.has(node.slot_template_name)) {\n\t\t\tif (node.slot_template_name === 'default') {\n\t\t\t\tthrow new Error('Found elements without slot attribute when using slot=\"default\"');\n\t\t\t}\n\t\t\tthrow new Error(`Duplicate slot name \"${node.slot_template_name}\" in <${parent_inline_component.name}>`);\n\t\t}\n\n\t\toptions.slot_scopes.set(node.slot_template_name, {\n\t\t\tinput: get_slot_scope(node.lets),\n\t\t\toutput: slot_fragment_content,\n\t\t\tstatements: get_const_tags(node.const_tags)\n\t\t});\n\t}\n}\n\nfunction is_empty_template_literal(template_literal) {\n\treturn (\n\t\ttemplate_literal.expressions.length === 0 &&\n\t\ttemplate_literal.quasis.length === 1 &&\n\t\ttemplate_literal.quasis[0].value.raw === ''\n\t);\n}\n","\nimport Renderer, { RenderOptions } from '../Renderer';\nimport { x } from 'code-red';\n\nexport default function(node, renderer: Renderer, _options: RenderOptions) {\n\tconst snippet = node.expression.node;\n\n\trenderer.add_expression(\n\t\tnode.parent &&\n\t\tnode.parent.type === 'Element' &&\n\t\tnode.parent.name === 'style'\n\t\t\t? snippet\n\t\t\t: x`@escape(${snippet})`\n\t);\n}\n","import { escape_html } from '../../utils/stringify';\nimport Renderer, { RenderOptions } from '../Renderer';\nimport Text from '../../nodes/Text';\nimport Element from '../../nodes/Element';\n\nexport default function(node: Text, renderer: Renderer, _options: RenderOptions) {\n\tlet text = node.data;\n\tif (\n\t\t!node.parent ||\n\t\tnode.parent.type !== 'Element' ||\n\t\t((node.parent as Element).name !== 'script' && (node.parent as Element).name !== 'style')\n\t) {\n\t\t// unless this Text node is inside a <script> or <style> element, escape &,<,>\n\t\ttext = escape_html(text);\n\t}\n\n\trenderer.add_string(text);\n}\n","import Renderer, { RenderOptions } from '../Renderer';\nimport Title from '../../nodes/Title';\nimport { x } from 'code-red';\n\nexport default function(node: Title, renderer: Renderer, options: RenderOptions) {\n\trenderer.push();\n\n\trenderer.add_string('<title>');\n\n\trenderer.render(node.children, options);\n\n\trenderer.add_string('</title>');\n\tconst result = renderer.pop();\n\n\trenderer.add_expression(x`$$result.title = ${result}, \"\"`);\n}\n","import { TemplateLiteral } from 'estree';\nimport { escape_template } from './stringify';\n\n/**\n * Collapse string literals together\n */ \nexport function collapse_template_literal(literal: TemplateLiteral) {\n\tif (!literal.quasis.length) return;\n\n\tconst collapsed_quasis = [];\n\tconst collapsed_expressions = [];\n\n\tlet cur_quasi = literal.quasis[0];\n\n\t// An expression always follows a quasi and vice versa, ending with a quasi\n\tfor (let i = 0; i < literal.quasis.length; i++) {\n\t\tconst expr = literal.expressions[i];\n\t\tconst next_quasi = literal.quasis[i + 1];\n\t\t// If an expression is a simple string literal, combine it with its preceding\n\t\t// and following quasi\n\t\tif (next_quasi && expr && expr.type === 'Literal' && typeof expr.value === 'string') {\n\t\t\tcur_quasi.value.raw += escape_template(expr.value) + next_quasi.value.raw;\n\t\t} else {\n\t\t\tif (expr) {\n\t\t\t\tcollapsed_expressions.push(expr);\n\t\t\t}\n\t\t\tcollapsed_quasis.push(cur_quasi);\n\t\t\tcur_quasi = next_quasi;\n\t\t}\n\t}\n\n\tliteral.quasis = collapsed_quasis;\n\tliteral.expressions = collapsed_expressions;\n}\n","import AwaitBlock from './handlers/AwaitBlock';\nimport Comment from './handlers/Comment';\nimport DebugTag from './handlers/DebugTag';\nimport EachBlock from './handlers/EachBlock';\nimport Element from './handlers/Element';\nimport Head from './handlers/Head';\nimport HtmlTag from './handlers/HtmlTag';\nimport IfBlock from './handlers/IfBlock';\nimport InlineComponent from './handlers/InlineComponent';\nimport KeyBlock from './handlers/KeyBlock';\nimport Slot from './handlers/Slot';\nimport SlotTemplate from './handlers/SlotTemplate';\nimport Tag from './handlers/Tag';\nimport Text from './handlers/Text';\nimport Title from './handlers/Title';\nimport { AppendTarget, CompileOptions } from '../../interfaces';\nimport { INode } from '../nodes/interfaces';\nimport { Expression, TemplateLiteral, Identifier } from 'estree';\nimport { collapse_template_literal } from '../utils/collapse_template_literal';\nimport { escape_template } from '../utils/stringify';\n\ntype Handler = (node: any, renderer: Renderer, options: CompileOptions) => void;\n\nfunction noop() {}\n\nconst handlers: Record<string, Handler> = {\n\tAwaitBlock,\n\tBody: noop,\n\tComment,\n\tDebugTag,\n\tEachBlock,\n\tElement,\n\tHead,\n\tIfBlock,\n\tInlineComponent,\n\tKeyBlock,\n\tMustacheTag: Tag, // TODO MustacheTag is an anachronism\n\tOptions: noop,\n\tRawMustacheTag: HtmlTag,\n\tSlot,\n\tSlotTemplate,\n\tText,\n\tTitle,\n\tWindow: noop\n};\n\nexport interface RenderOptions extends CompileOptions{\n\tlocate: (c: number) => { line: number; column: number };\n\thead_id?: string;\n}\n\nexport default class Renderer {\n\thas_bindings = false;\n\n\tname: Identifier;\n\n\tstack: Array<{ current: { value: string }; literal: TemplateLiteral }> = [];\n\tcurrent: { value: string }; // TODO can it just be `current: string`?\n\tliteral: TemplateLiteral;\n\n\ttargets: AppendTarget[] = [];\n\n\tconstructor({ name }) {\n\t\tthis.name = name;\n\t\tthis.push();\n\t}\n\n\tadd_string(str: string) {\n\t\tthis.current.value += escape_template(str);\n\t}\n\n\tadd_expression(node: Expression) {\n\t\tthis.literal.quasis.push({\n\t\t\ttype: 'TemplateElement',\n\t\t\tvalue: { raw: this.current.value, cooked: null },\n\t\t\ttail: false\n\t\t});\n\n\t\tthis.literal.expressions.push(node);\n\t\tthis.current.value = '';\n\t}\n\n\tpush() {\n\t\tconst current = this.current = { value: '' };\n\n\t\tconst literal = this.literal = {\n\t\t\ttype: 'TemplateLiteral',\n\t\t\texpressions: [],\n\t\t\tquasis: []\n\t\t};\n\n\t\tthis.stack.push({ current, literal });\n\t}\n\n\tpop() {\n\t\tthis.literal.quasis.push({\n\t\t\ttype: 'TemplateElement',\n\t\t\tvalue: { raw: this.current.value, cooked: null },\n\t\t\ttail: true\n\t\t});\n\n\t\tconst popped = this.stack.pop();\n\t\tconst last = this.stack[this.stack.length - 1];\n\n\t\tif (last) {\n\t\t\tthis.literal = last.literal;\n\t\t\tthis.current = last.current;\n\t\t}\n\n\t\t// Optimize the TemplateLiteral to remove unnecessary nodes\n\t\tcollapse_template_literal(popped.literal);\n\n\t\treturn popped.literal;\n\t}\n\n\trender(nodes: INode[], options: RenderOptions) {\n\t\tnodes.forEach(node => {\n\t\t\tconst handler = handlers[node.type];\n\n\t\t\tif (!handler) {\n\t\t\t\tthrow new Error(`No handler for '${node.type}' nodes`);\n\t\t\t}\n\n\t\t\thandler(node, this, options);\n\t\t});\n\t}\n}\n","import { b } from 'code-red';\nimport Component from '../Component';\nimport { CompileOptions, CssResult } from '../../interfaces';\nimport { string_literal } from '../utils/stringify';\nimport Renderer from './Renderer';\nimport { INode as TemplateNode } from '../nodes/interfaces'; // TODO\nimport Text from '../nodes/Text';\nimport { LabeledStatement, Statement, Node } from 'estree';\nimport { extract_names } from 'periscopic';\nimport { walk } from 'estree-walker';\n\nimport { invalidate } from '../render_dom/invalidate';\nimport check_enable_sourcemap from '../utils/check_enable_sourcemap';\n\nexport default function ssr(\n\tcomponent: Component,\n\toptions: CompileOptions\n): {js: Node[]; css: CssResult} {\n\tconst renderer = new Renderer({\n\t\tname: component.name\n\t});\n\n\tconst { name } = component;\n\n\t// create $$render function\n\trenderer.render(trim(component.fragment.children), Object.assign({\n\t\tlocate: component.locate\n\t}, options));\n\n\t// TODO put this inside the Renderer class\n\tconst literal = renderer.pop();\n\n\t// TODO concatenate CSS maps\n\tconst css = options.customElement ?\n\t\t{ code: null, map: null } :\n\t\tcomponent.stylesheet.render(options.filename, true);\n\n\tconst uses_rest = component.var_lookup.has('$$restProps');\n\tconst props = component.vars.filter(variable => !variable.module && variable.export_name);\n\tconst rest = uses_rest ? b`let $$restProps = @compute_rest_props($$props, [${props.map(prop => `\"${prop.export_name}\"`).join(',')}]);` : null;\n\n\tconst uses_slots = component.var_lookup.has('$$slots');\n\tconst slots = uses_slots ? b`let $$slots = @compute_slots(#slots);` : null;\n\n\tconst reactive_stores = component.vars.filter(variable => variable.name[0] === '$' && variable.name[1] !== '$');\n\tconst reactive_store_subscriptions = reactive_stores\n\t\t.filter(store => {\n\t\t\tconst variable = component.var_lookup.get(store.name.slice(1));\n\t\t\treturn !variable || variable.hoistable;\n\t\t})\n\t\t.map(({ name }) => {\n\t\t\tconst store_name = name.slice(1);\n\t\t\treturn b`\n\t\t\t\t${component.compile_options.dev && b`@validate_store(${store_name}, '${store_name}');`}\n\t\t\t\t${`$$unsubscribe_${store_name}`} = @subscribe(${store_name}, #value => ${name} = #value)\n\t\t\t`;\n\t\t});\n\tconst reactive_store_unsubscriptions = reactive_stores.map(\n\t\t({ name }) => b`${`$$unsubscribe_${name.slice(1)}`}()`\n\t);\n\n\tconst reactive_store_declarations = reactive_stores\n\t\t.map(({ name }) => {\n\t\t\tconst store_name = name.slice(1);\n\t\t\tconst store = component.var_lookup.get(store_name);\n\n\t\t\tif (store && store.reassigned) {\n\t\t\t\tconst unsubscribe = `$$unsubscribe_${store_name}`;\n\t\t\t\tconst subscribe = `$$subscribe_${store_name}`;\n\n\t\t\t\treturn b`let ${name}, ${unsubscribe} = @noop, ${subscribe} = () => (${unsubscribe}(), ${unsubscribe} = @subscribe(${store_name}, $$value => ${name} = $$value), ${store_name})`;\n\t\t\t}\n\t\t\treturn b`let ${name}, ${`$$unsubscribe_${store_name}`};`;\n\t\t});\n\n\t// instrument get/set store value\n\tif (component.ast.instance) {\n\t\tlet scope = component.instance_scope;\n\t\tconst map = component.instance_scope_map;\n\n\t\twalk(component.ast.instance.content, {\n\t\t\tenter(node: Node) {\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = map.get(node);\n\t\t\t\t}\n\t\t\t},\n\t\t\tleave(node: Node) {\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = scope.parent;\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') {\n\t\t\t\t\tconst assignee = node.type === 'AssignmentExpression' ? node.left : node.argument;\n\t\t\t\t\tconst names = new Set(extract_names(assignee as Node));\n\t\t\t\t\tconst to_invalidate = new Set<string>();\n\n\t\t\t\t\tfor (const name of names) {\n\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\n\t\t\t\t\t\tif (variable &&\n\t\t\t\t\t\t\t!variable.hoistable &&\n\t\t\t\t\t\t\t!variable.global &&\n\t\t\t\t\t\t\t!variable.module &&\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tvariable.subscribable || variable.name[0] === '$'\n\t\t\t\t\t\t\t)) {\n\t\t\t\t\t\t\t\tto_invalidate.add(variable.name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (to_invalidate.size) {\n\t\t\t\t\t\tthis.replace(\n\t\t\t\t\t\t\tinvalidate(\n\t\t\t\t\t\t\t\t{ component } as any,\n\t\t\t\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\tnode,\n\t\t\t\t\t\t\t\tto_invalidate,\n\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tcomponent.rewrite_props(({ name, reassigned }) => {\n\t\tconst value = `$${name}`;\n\n\t\tlet insert = reassigned\n\t\t\t? b`${`$$subscribe_${name}`}()`\n\t\t\t: b`${`$$unsubscribe_${name}`} = @subscribe(${name}, #value => $${value} = #value)`;\n\n\t\tif (component.compile_options.dev) {\n\t\t\tinsert = b`@validate_store(${name}, '${name}'); ${insert}`;\n\t\t}\n\n\t\treturn insert;\n\t});\n\n\tconst instance_javascript = component.extract_javascript(component.ast.instance);\n\n\t// TODO only do this for props with a default value\n\tconst parent_bindings = instance_javascript\n\t\t? component.vars\n\t\t\t.filter(variable => !variable.module && variable.export_name)\n\t\t\t.map(prop => {\n\t\t\t\treturn b`if ($$props.${prop.export_name} === void 0 && $$bindings.${prop.export_name} && ${prop.name} !== void 0) $$bindings.${prop.export_name}(${prop.name});`;\n\t\t\t})\n\t\t: [];\n\n\tconst injected = Array.from(component.injected_reactive_declaration_vars).filter(name => {\n\t\tconst variable = component.var_lookup.get(name);\n\t\treturn variable.injected;\n\t});\n\n\tconst reactive_declarations = component.reactive_declarations.map(d => {\n\t\tconst body: Statement = (d.node as LabeledStatement).body;\n\n\t\tlet statement = b`${body}`;\n\n\t\tif (!d.declaration) { // TODO do not add label if it's not referenced\n\t\t\tstatement = b`$: { ${statement} }`;\n\t\t}\n\n\t\treturn statement;\n\t});\n\n\tconst main = renderer.has_bindings\n\t\t? b`\n\t\t\tlet $$settled;\n\t\t\tlet $$rendered;\n\n\t\t\tdo {\n\t\t\t\t$$settled = true;\n\n\t\t\t\t${reactive_declarations}\n\n\t\t\t\t$$rendered = ${literal};\n\t\t\t} while (!$$settled);\n\n\t\t\t${reactive_store_unsubscriptions}\n\n\t\t\treturn $$rendered;\n\t\t`\n\t\t: b`\n\t\t\t${reactive_declarations}\n\n\t\t\t${reactive_store_unsubscriptions}\n\n\t\t\treturn ${literal};`;\n\n\tconst blocks = [\n\t\t...injected.map(name => b`let ${name};`),\n\t\trest,\n\t\tslots,\n\t\t...reactive_store_declarations,\n\t\t...reactive_store_subscriptions,\n\t\tinstance_javascript,\n\t\t...parent_bindings,\n\t\tcss.code && b`$$result.css.add(#css);`,\n\t\tmain\n\t].filter(Boolean);\n\n\tconst css_sourcemap_enabled = check_enable_sourcemap(options.enableSourcemap, 'css');\n\n\tconst js = b`\n\t\t${css.code ? b`\n\t\tconst #css = {\n\t\t\tcode: \"${css.code}\",\n\t\t\tmap: ${css_sourcemap_enabled && css.map ? string_literal(css.map.toString()) : 'null'}\n\t\t};` : null}\n\n\t\t${component.extract_javascript(component.ast.module)}\n\n\t\t${component.fully_hoisted}\n\n\t\tconst ${name} = @create_ssr_component(($$result, $$props, $$bindings, #slots) => {\n\t\t\t${blocks}\n\t\t});\n\t`;\n\n\treturn {js, css};\n}\n\nfunction trim(nodes: TemplateNode[]) {\n\tlet start = 0;\n\tfor (; start < nodes.length; start += 1) {\n\t\tconst node = nodes[start] as Text;\n\t\tif (node.type !== 'Text') break;\n\n\t\tnode.data = node.data.replace(/^\\s+/, '');\n\t\tif (node.data) break;\n\t}\n\n\tlet end = nodes.length;\n\tfor (; end > start; end -= 1) {\n\t\tconst node = nodes[end - 1] as Text;\n\t\tif (node.type !== 'Text') break;\n\n\t\tnode.data = node.data.trimRight();\n\t\tif (node.data) break;\n\t}\n\n\treturn nodes.slice(start, end);\n}\n","/** ----------------------------------------------------------------------\nThis file is automatically generated by `scripts/globals-extractor.mjs`.\nGenerated At: 2022-09-03T15:22:37.415Z\n---------------------------------------------------------------------- */\n\nexport default new Set([\n\t'AbortController',\n\t'AbortSignal',\n\t'AbstractRange',\n\t'ActiveXObject',\n\t'AggregateError',\n\t'AnalyserNode',\n\t'Animation',\n\t'AnimationEffect',\n\t'AnimationEvent',\n\t'AnimationPlaybackEvent',\n\t'AnimationTimeline',\n\t'Array',\n\t'ArrayBuffer',\n\t'Atomics',\n\t'Attr',\n\t'Audio',\n\t'AudioBuffer',\n\t'AudioBufferSourceNode',\n\t'AudioContext',\n\t'AudioDestinationNode',\n\t'AudioListener',\n\t'AudioNode',\n\t'AudioParam',\n\t'AudioParamMap',\n\t'AudioProcessingEvent',\n\t'AudioScheduledSourceNode',\n\t'AudioWorklet',\n\t'AudioWorkletNode',\n\t'AuthenticatorAssertionResponse',\n\t'AuthenticatorAttestationResponse',\n\t'AuthenticatorResponse',\n\t'BarProp',\n\t'BaseAudioContext',\n\t'BeforeUnloadEvent',\n\t'BigInt',\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'BiquadFilterNode',\n\t'Blob',\n\t'BlobEvent',\n\t'Boolean',\n\t'BroadcastChannel',\n\t'ByteLengthQueuingStrategy',\n\t'CDATASection',\n\t'CSS',\n\t'CSSAnimation',\n\t'CSSConditionRule',\n\t'CSSCounterStyleRule',\n\t'CSSFontFaceRule',\n\t'CSSGroupingRule',\n\t'CSSImportRule',\n\t'CSSKeyframeRule',\n\t'CSSKeyframesRule',\n\t'CSSMediaRule',\n\t'CSSNamespaceRule',\n\t'CSSPageRule',\n\t'CSSRule',\n\t'CSSRuleList',\n\t'CSSStyleDeclaration',\n\t'CSSStyleRule',\n\t'CSSStyleSheet',\n\t'CSSSupportsRule',\n\t'CSSTransition',\n\t'Cache',\n\t'CacheStorage',\n\t'CanvasCaptureMediaStreamTrack',\n\t'CanvasGradient',\n\t'CanvasPattern',\n\t'CanvasRenderingContext2D',\n\t'ChannelMergerNode',\n\t'ChannelSplitterNode',\n\t'CharacterData',\n\t'ClientRect',\n\t'Clipboard',\n\t'ClipboardEvent',\n\t'ClipboardItem',\n\t'CloseEvent',\n\t'Comment',\n\t'CompositionEvent',\n\t'ConstantSourceNode',\n\t'ConvolverNode',\n\t'CountQueuingStrategy',\n\t'Credential',\n\t'CredentialsContainer',\n\t'Crypto',\n\t'CryptoKey',\n\t'CustomElementRegistry',\n\t'CustomEvent',\n\t'DOMException',\n\t'DOMImplementation',\n\t'DOMMatrix',\n\t'DOMMatrixReadOnly',\n\t'DOMParser',\n\t'DOMPoint',\n\t'DOMPointReadOnly',\n\t'DOMQuad',\n\t'DOMRect',\n\t'DOMRectList',\n\t'DOMRectReadOnly',\n\t'DOMStringList',\n\t'DOMStringMap',\n\t'DOMTokenList',\n\t'DataTransfer',\n\t'DataTransferItem',\n\t'DataTransferItemList',\n\t'DataView',\n\t'Date',\n\t'DelayNode',\n\t'DeviceMotionEvent',\n\t'DeviceOrientationEvent',\n\t'Document',\n\t'DocumentFragment',\n\t'DocumentTimeline',\n\t'DocumentType',\n\t'DragEvent',\n\t'DynamicsCompressorNode',\n\t'Element',\n\t'ElementInternals',\n\t'Enumerator',\n\t'Error',\n\t'ErrorEvent',\n\t'EvalError',\n\t'Event',\n\t'EventCounts',\n\t'EventSource',\n\t'EventTarget',\n\t'External',\n\t'File',\n\t'FileList',\n\t'FileReader',\n\t'FileSystem',\n\t'FileSystemDirectoryEntry',\n\t'FileSystemDirectoryHandle',\n\t'FileSystemDirectoryReader',\n\t'FileSystemEntry',\n\t'FileSystemFileEntry',\n\t'FileSystemFileHandle',\n\t'FileSystemHandle',\n\t'FinalizationRegistry',\n\t'Float32Array',\n\t'Float64Array',\n\t'FocusEvent',\n\t'FontFace',\n\t'FontFaceSet',\n\t'FontFaceSetLoadEvent',\n\t'FormData',\n\t'FormDataEvent',\n\t'Function',\n\t'GainNode',\n\t'Gamepad',\n\t'GamepadButton',\n\t'GamepadEvent',\n\t'GamepadHapticActuator',\n\t'Geolocation',\n\t'GeolocationCoordinates',\n\t'GeolocationPosition',\n\t'GeolocationPositionError',\n\t'HTMLAllCollection',\n\t'HTMLAnchorElement',\n\t'HTMLAreaElement',\n\t'HTMLAudioElement',\n\t'HTMLBRElement',\n\t'HTMLBaseElement',\n\t'HTMLBodyElement',\n\t'HTMLButtonElement',\n\t'HTMLCanvasElement',\n\t'HTMLCollection',\n\t'HTMLDListElement',\n\t'HTMLDataElement',\n\t'HTMLDataListElement',\n\t'HTMLDetailsElement',\n\t'HTMLDialogElement',\n\t'HTMLDirectoryElement',\n\t'HTMLDivElement',\n\t'HTMLDocument',\n\t'HTMLElement',\n\t'HTMLEmbedElement',\n\t'HTMLFieldSetElement',\n\t'HTMLFontElement',\n\t'HTMLFormControlsCollection',\n\t'HTMLFormElement',\n\t'HTMLFrameElement',\n\t'HTMLFrameSetElement',\n\t'HTMLHRElement',\n\t'HTMLHeadElement',\n\t'HTMLHeadingElement',\n\t'HTMLHtmlElement',\n\t'HTMLIFrameElement',\n\t'HTMLImageElement',\n\t'HTMLInputElement',\n\t'HTMLLIElement',\n\t'HTMLLabelElement',\n\t'HTMLLegendElement',\n\t'HTMLLinkElement',\n\t'HTMLMapElement',\n\t'HTMLMarqueeElement',\n\t'HTMLMediaElement',\n\t'HTMLMenuElement',\n\t'HTMLMetaElement',\n\t'HTMLMeterElement',\n\t'HTMLModElement',\n\t'HTMLOListElement',\n\t'HTMLObjectElement',\n\t'HTMLOptGroupElement',\n\t'HTMLOptionElement',\n\t'HTMLOptionsCollection',\n\t'HTMLOutputElement',\n\t'HTMLParagraphElement',\n\t'HTMLParamElement',\n\t'HTMLPictureElement',\n\t'HTMLPreElement',\n\t'HTMLProgressElement',\n\t'HTMLQuoteElement',\n\t'HTMLScriptElement',\n\t'HTMLSelectElement',\n\t'HTMLSlotElement',\n\t'HTMLSourceElement',\n\t'HTMLSpanElement',\n\t'HTMLStyleElement',\n\t'HTMLTableCaptionElement',\n\t'HTMLTableCellElement',\n\t'HTMLTableColElement',\n\t'HTMLTableElement',\n\t'HTMLTableRowElement',\n\t'HTMLTableSectionElement',\n\t'HTMLTemplateElement',\n\t'HTMLTextAreaElement',\n\t'HTMLTimeElement',\n\t'HTMLTitleElement',\n\t'HTMLTrackElement',\n\t'HTMLUListElement',\n\t'HTMLUnknownElement',\n\t'HTMLVideoElement',\n\t'HashChangeEvent',\n\t'Headers',\n\t'History',\n\t'IDBCursor',\n\t'IDBCursorWithValue',\n\t'IDBDatabase',\n\t'IDBFactory',\n\t'IDBIndex',\n\t'IDBKeyRange',\n\t'IDBObjectStore',\n\t'IDBOpenDBRequest',\n\t'IDBRequest',\n\t'IDBTransaction',\n\t'IDBVersionChangeEvent',\n\t'IIRFilterNode',\n\t'IdleDeadline',\n\t'Image',\n\t'ImageBitmap',\n\t'ImageBitmapRenderingContext',\n\t'ImageData',\n\t'Infinity',\n\t'InputDeviceInfo',\n\t'InputEvent',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'InternalError',\n\t'IntersectionObserver',\n\t'IntersectionObserverEntry',\n\t'Intl',\n\t'JSON',\n\t'KeyboardEvent',\n\t'KeyframeEffect',\n\t'Location',\n\t'Lock',\n\t'LockManager',\n\t'Map',\n\t'Math',\n\t'MathMLElement',\n\t'MediaCapabilities',\n\t'MediaDeviceInfo',\n\t'MediaDevices',\n\t'MediaElementAudioSourceNode',\n\t'MediaEncryptedEvent',\n\t'MediaError',\n\t'MediaKeyMessageEvent',\n\t'MediaKeySession',\n\t'MediaKeyStatusMap',\n\t'MediaKeySystemAccess',\n\t'MediaKeys',\n\t'MediaList',\n\t'MediaMetadata',\n\t'MediaQueryList',\n\t'MediaQueryListEvent',\n\t'MediaRecorder',\n\t'MediaRecorderErrorEvent',\n\t'MediaSession',\n\t'MediaSource',\n\t'MediaStream',\n\t'MediaStreamAudioDestinationNode',\n\t'MediaStreamAudioSourceNode',\n\t'MediaStreamTrack',\n\t'MediaStreamTrackEvent',\n\t'MessageChannel',\n\t'MessageEvent',\n\t'MessagePort',\n\t'MimeType',\n\t'MimeTypeArray',\n\t'MouseEvent',\n\t'MutationEvent',\n\t'MutationObserver',\n\t'MutationRecord',\n\t'NaN',\n\t'NamedNodeMap',\n\t'NavigationPreloadManager',\n\t'Navigator',\n\t'NetworkInformation',\n\t'Node',\n\t'NodeFilter',\n\t'NodeIterator',\n\t'NodeList',\n\t'Notification',\n\t'Number',\n\t'Object',\n\t'OfflineAudioCompletionEvent',\n\t'OfflineAudioContext',\n\t'Option',\n\t'OscillatorNode',\n\t'OverconstrainedError',\n\t'PageTransitionEvent',\n\t'PannerNode',\n\t'Path2D',\n\t'PaymentAddress',\n\t'PaymentMethodChangeEvent',\n\t'PaymentRequest',\n\t'PaymentRequestUpdateEvent',\n\t'PaymentResponse',\n\t'Performance',\n\t'PerformanceEntry',\n\t'PerformanceEventTiming',\n\t'PerformanceMark',\n\t'PerformanceMeasure',\n\t'PerformanceNavigation',\n\t'PerformanceNavigationTiming',\n\t'PerformanceObserver',\n\t'PerformanceObserverEntryList',\n\t'PerformancePaintTiming',\n\t'PerformanceResourceTiming',\n\t'PerformanceServerTiming',\n\t'PerformanceTiming',\n\t'PeriodicWave',\n\t'PermissionStatus',\n\t'Permissions',\n\t'PictureInPictureWindow',\n\t'Plugin',\n\t'PluginArray',\n\t'PointerEvent',\n\t'PopStateEvent',\n\t'ProcessingInstruction',\n\t'ProgressEvent',\n\t'Promise',\n\t'PromiseRejectionEvent',\n\t'Proxy',\n\t'PublicKeyCredential',\n\t'PushManager',\n\t'PushSubscription',\n\t'PushSubscriptionOptions',\n\t'RTCCertificate',\n\t'RTCDTMFSender',\n\t'RTCDTMFToneChangeEvent',\n\t'RTCDataChannel',\n\t'RTCDataChannelEvent',\n\t'RTCDtlsTransport',\n\t'RTCEncodedAudioFrame',\n\t'RTCEncodedVideoFrame',\n\t'RTCError',\n\t'RTCErrorEvent',\n\t'RTCIceCandidate',\n\t'RTCIceTransport',\n\t'RTCPeerConnection',\n\t'RTCPeerConnectionIceErrorEvent',\n\t'RTCPeerConnectionIceEvent',\n\t'RTCRtpReceiver',\n\t'RTCRtpSender',\n\t'RTCRtpTransceiver',\n\t'RTCSctpTransport',\n\t'RTCSessionDescription',\n\t'RTCStatsReport',\n\t'RTCTrackEvent',\n\t'RadioNodeList',\n\t'Range',\n\t'RangeError',\n\t'ReadableByteStreamController',\n\t'ReadableStream',\n\t'ReadableStreamBYOBReader',\n\t'ReadableStreamBYOBRequest',\n\t'ReadableStreamDefaultController',\n\t'ReadableStreamDefaultReader',\n\t'ReferenceError',\n\t'Reflect',\n\t'RegExp',\n\t'RemotePlayback',\n\t'Request',\n\t'ResizeObserver',\n\t'ResizeObserverEntry',\n\t'ResizeObserverSize',\n\t'Response',\n\t'SVGAElement',\n\t'SVGAngle',\n\t'SVGAnimateElement',\n\t'SVGAnimateMotionElement',\n\t'SVGAnimateTransformElement',\n\t'SVGAnimatedAngle',\n\t'SVGAnimatedBoolean',\n\t'SVGAnimatedEnumeration',\n\t'SVGAnimatedInteger',\n\t'SVGAnimatedLength',\n\t'SVGAnimatedLengthList',\n\t'SVGAnimatedNumber',\n\t'SVGAnimatedNumberList',\n\t'SVGAnimatedPreserveAspectRatio',\n\t'SVGAnimatedRect',\n\t'SVGAnimatedString',\n\t'SVGAnimatedTransformList',\n\t'SVGAnimationElement',\n\t'SVGCircleElement',\n\t'SVGClipPathElement',\n\t'SVGComponentTransferFunctionElement',\n\t'SVGCursorElement',\n\t'SVGDefsElement',\n\t'SVGDescElement',\n\t'SVGElement',\n\t'SVGEllipseElement',\n\t'SVGFEBlendElement',\n\t'SVGFEColorMatrixElement',\n\t'SVGFEComponentTransferElement',\n\t'SVGFECompositeElement',\n\t'SVGFEConvolveMatrixElement',\n\t'SVGFEDiffuseLightingElement',\n\t'SVGFEDisplacementMapElement',\n\t'SVGFEDistantLightElement',\n\t'SVGFEDropShadowElement',\n\t'SVGFEFloodElement',\n\t'SVGFEFuncAElement',\n\t'SVGFEFuncBElement',\n\t'SVGFEFuncGElement',\n\t'SVGFEFuncRElement',\n\t'SVGFEGaussianBlurElement',\n\t'SVGFEImageElement',\n\t'SVGFEMergeElement',\n\t'SVGFEMergeNodeElement',\n\t'SVGFEMorphologyElement',\n\t'SVGFEOffsetElement',\n\t'SVGFEPointLightElement',\n\t'SVGFESpecularLightingElement',\n\t'SVGFESpotLightElement',\n\t'SVGFETileElement',\n\t'SVGFETurbulenceElement',\n\t'SVGFilterElement',\n\t'SVGForeignObjectElement',\n\t'SVGGElement',\n\t'SVGGeometryElement',\n\t'SVGGradientElement',\n\t'SVGGraphicsElement',\n\t'SVGImageElement',\n\t'SVGLength',\n\t'SVGLengthList',\n\t'SVGLineElement',\n\t'SVGLinearGradientElement',\n\t'SVGMPathElement',\n\t'SVGMarkerElement',\n\t'SVGMaskElement',\n\t'SVGMatrix',\n\t'SVGMetadataElement',\n\t'SVGNumber',\n\t'SVGNumberList',\n\t'SVGPathElement',\n\t'SVGPatternElement',\n\t'SVGPoint',\n\t'SVGPointList',\n\t'SVGPolygonElement',\n\t'SVGPolylineElement',\n\t'SVGPreserveAspectRatio',\n\t'SVGRadialGradientElement',\n\t'SVGRect',\n\t'SVGRectElement',\n\t'SVGSVGElement',\n\t'SVGScriptElement',\n\t'SVGSetElement',\n\t'SVGStopElement',\n\t'SVGStringList',\n\t'SVGStyleElement',\n\t'SVGSwitchElement',\n\t'SVGSymbolElement',\n\t'SVGTSpanElement',\n\t'SVGTextContentElement',\n\t'SVGTextElement',\n\t'SVGTextPathElement',\n\t'SVGTextPositioningElement',\n\t'SVGTitleElement',\n\t'SVGTransform',\n\t'SVGTransformList',\n\t'SVGUnitTypes',\n\t'SVGUseElement',\n\t'SVGViewElement',\n\t'SafeArray',\n\t'Screen',\n\t'ScreenOrientation',\n\t'ScriptProcessorNode',\n\t'SecurityPolicyViolationEvent',\n\t'Selection',\n\t'ServiceWorker',\n\t'ServiceWorkerContainer',\n\t'ServiceWorkerRegistration',\n\t'Set',\n\t'ShadowRoot',\n\t'SharedArrayBuffer',\n\t'SharedWorker',\n\t'SourceBuffer',\n\t'SourceBufferList',\n\t'SpeechRecognitionAlternative',\n\t'SpeechRecognitionErrorEvent',\n\t'SpeechRecognitionResult',\n\t'SpeechRecognitionResultList',\n\t'SpeechSynthesis',\n\t'SpeechSynthesisErrorEvent',\n\t'SpeechSynthesisEvent',\n\t'SpeechSynthesisUtterance',\n\t'SpeechSynthesisVoice',\n\t'StaticRange',\n\t'StereoPannerNode',\n\t'Storage',\n\t'StorageEvent',\n\t'StorageManager',\n\t'String',\n\t'StyleMedia',\n\t'StyleSheet',\n\t'StyleSheetList',\n\t'SubmitEvent',\n\t'SubtleCrypto',\n\t'Symbol',\n\t'SyntaxError',\n\t'Text',\n\t'TextDecoder',\n\t'TextDecoderStream',\n\t'TextEncoder',\n\t'TextEncoderStream',\n\t'TextMetrics',\n\t'TextTrack',\n\t'TextTrackCue',\n\t'TextTrackCueList',\n\t'TextTrackList',\n\t'TimeRanges',\n\t'Touch',\n\t'TouchEvent',\n\t'TouchList',\n\t'TrackEvent',\n\t'TransformStream',\n\t'TransformStreamDefaultController',\n\t'TransitionEvent',\n\t'TreeWalker',\n\t'TypeError',\n\t'UIEvent',\n\t'URIError',\n\t'URL',\n\t'URLSearchParams',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'VBArray',\n\t'VTTCue',\n\t'VTTRegion',\n\t'ValidityState',\n\t'VarDate',\n\t'VideoColorSpace',\n\t'VideoPlaybackQuality',\n\t'VisualViewport',\n\t'WSH',\n\t'WScript',\n\t'WaveShaperNode',\n\t'WeakMap',\n\t'WeakRef',\n\t'WeakSet',\n\t'WebAssembly',\n\t'WebGL2RenderingContext',\n\t'WebGLActiveInfo',\n\t'WebGLBuffer',\n\t'WebGLContextEvent',\n\t'WebGLFramebuffer',\n\t'WebGLProgram',\n\t'WebGLQuery',\n\t'WebGLRenderbuffer',\n\t'WebGLRenderingContext',\n\t'WebGLSampler',\n\t'WebGLShader',\n\t'WebGLShaderPrecisionFormat',\n\t'WebGLSync',\n\t'WebGLTexture',\n\t'WebGLTransformFeedback',\n\t'WebGLUniformLocation',\n\t'WebGLVertexArrayObject',\n\t'WebKitCSSMatrix',\n\t'WebSocket',\n\t'WheelEvent',\n\t'Window',\n\t'Worker',\n\t'Worklet',\n\t'WritableStream',\n\t'WritableStreamDefaultController',\n\t'WritableStreamDefaultWriter',\n\t'XMLDocument',\n\t'XMLHttpRequest',\n\t'XMLHttpRequestEventTarget',\n\t'XMLHttpRequestUpload',\n\t'XMLSerializer',\n\t'XPathEvaluator',\n\t'XPathExpression',\n\t'XPathResult',\n\t'XSLTProcessor',\n\t'addEventListener',\n\t'alert',\n\t'atob',\n\t'blur',\n\t'btoa',\n\t'caches',\n\t'cancelAnimationFrame',\n\t'cancelIdleCallback',\n\t'captureEvents',\n\t'clearInterval',\n\t'clearTimeout',\n\t'clientInformation',\n\t'close',\n\t'closed',\n\t'confirm',\n\t'console',\n\t'createImageBitmap',\n\t'crossOriginIsolated',\n\t'crypto',\n\t'customElements',\n\t'decodeURI',\n\t'decodeURIComponent',\n\t'devicePixelRatio',\n\t'dispatchEvent',\n\t'document',\n\t'encodeURI',\n\t'encodeURIComponent',\n\t'escape',\n\t'eval',\n\t'event',\n\t'external',\n\t'fetch',\n\t'focus',\n\t'frameElement',\n\t'frames',\n\t'getComputedStyle',\n\t'getSelection',\n\t'global',\n\t'globalThis',\n\t'history',\n\t'importScripts',\n\t'indexedDB',\n\t'innerHeight',\n\t'innerWidth',\n\t'isFinite',\n\t'isNaN',\n\t'isSecureContext',\n\t'length',\n\t'localStorage',\n\t'location',\n\t'locationbar',\n\t'matchMedia',\n\t'menubar',\n\t'moveBy',\n\t'moveTo',\n\t'name',\n\t'navigator',\n\t'onabort',\n\t'onafterprint',\n\t'onanimationcancel',\n\t'onanimationend',\n\t'onanimationiteration',\n\t'onanimationstart',\n\t'onauxclick',\n\t'onbeforeprint',\n\t'onbeforeunload',\n\t'onblur',\n\t'oncanplay',\n\t'oncanplaythrough',\n\t'onchange',\n\t'onclick',\n\t'onclose',\n\t'oncontextmenu',\n\t'oncuechange',\n\t'ondblclick',\n\t'ondevicemotion',\n\t'ondeviceorientation',\n\t'ondrag',\n\t'ondragend',\n\t'ondragenter',\n\t'ondragleave',\n\t'ondragover',\n\t'ondragstart',\n\t'ondrop',\n\t'ondurationchange',\n\t'onemptied',\n\t'onended',\n\t'onerror',\n\t'onfocus',\n\t'onformdata',\n\t'ongamepadconnected',\n\t'ongamepaddisconnected',\n\t'ongotpointercapture',\n\t'onhashchange',\n\t'oninput',\n\t'oninvalid',\n\t'onkeydown',\n\t'onkeypress',\n\t'onkeyup',\n\t'onlanguagechange',\n\t'onload',\n\t'onloadeddata',\n\t'onloadedmetadata',\n\t'onloadstart',\n\t'onlostpointercapture',\n\t'onmessage',\n\t'onmessageerror',\n\t'onmousedown',\n\t'onmouseenter',\n\t'onmouseleave',\n\t'onmousemove',\n\t'onmouseout',\n\t'onmouseover',\n\t'onmouseup',\n\t'onoffline',\n\t'ononline',\n\t'onorientationchange',\n\t'onpagehide',\n\t'onpageshow',\n\t'onpause',\n\t'onplay',\n\t'onplaying',\n\t'onpointercancel',\n\t'onpointerdown',\n\t'onpointerenter',\n\t'onpointerleave',\n\t'onpointermove',\n\t'onpointerout',\n\t'onpointerover',\n\t'onpointerup',\n\t'onpopstate',\n\t'onprogress',\n\t'onratechange',\n\t'onrejectionhandled',\n\t'onreset',\n\t'onresize',\n\t'onscroll',\n\t'onsecuritypolicyviolation',\n\t'onseeked',\n\t'onseeking',\n\t'onselect',\n\t'onselectionchange',\n\t'onselectstart',\n\t'onslotchange',\n\t'onstalled',\n\t'onstorage',\n\t'onsubmit',\n\t'onsuspend',\n\t'ontimeupdate',\n\t'ontoggle',\n\t'ontouchcancel',\n\t'ontouchend',\n\t'ontouchmove',\n\t'ontouchstart',\n\t'ontransitioncancel',\n\t'ontransitionend',\n\t'ontransitionrun',\n\t'ontransitionstart',\n\t'onunhandledrejection',\n\t'onunload',\n\t'onvolumechange',\n\t'onwaiting',\n\t'onwebkitanimationend',\n\t'onwebkitanimationiteration',\n\t'onwebkitanimationstart',\n\t'onwebkittransitionend',\n\t'onwheel',\n\t'open',\n\t'opener',\n\t'orientation',\n\t'origin',\n\t'outerHeight',\n\t'outerWidth',\n\t'pageXOffset',\n\t'pageYOffset',\n\t'parent',\n\t'parseFloat',\n\t'parseInt',\n\t'performance',\n\t'personalbar',\n\t'postMessage',\n\t'print',\n\t'process',\n\t'prompt',\n\t'queueMicrotask',\n\t'releaseEvents',\n\t'removeEventListener',\n\t'reportError',\n\t'requestAnimationFrame',\n\t'requestIdleCallback',\n\t'resizeBy',\n\t'resizeTo',\n\t'screen',\n\t'screenLeft',\n\t'screenTop',\n\t'screenX',\n\t'screenY',\n\t'scroll',\n\t'scrollBy',\n\t'scrollTo',\n\t'scrollX',\n\t'scrollY',\n\t'scrollbars',\n\t'self',\n\t'sessionStorage',\n\t'setInterval',\n\t'setTimeout',\n\t'speechSynthesis',\n\t'status',\n\t'statusbar',\n\t'stop',\n\t'structuredClone',\n\t'toString',\n\t'toolbar',\n\t'top',\n\t'undefined',\n\t'unescape',\n\t'visualViewport',\n\t'webkitURL',\n\t'window'\n]);\n","import list from '../utils/list';\nimport { ModuleFormat } from '../interfaces';\nimport { b, x } from 'code-red';\nimport { Identifier, ImportDeclaration, ExportNamedDeclaration } from 'estree';\n\nconst wrappers = { esm, cjs };\n\ninterface Export {\n\tname: string;\n\tas: string;\n}\n\nexport default function create_module(\n\tprogram: any,\n\tformat: ModuleFormat,\n\tname: Identifier,\n\tbanner: string,\n\tsveltePath = 'svelte',\n\thelpers: Array<{ name: string; alias: Identifier }>,\n\tglobals: Array<{ name: string; alias: Identifier }>,\n\timports: ImportDeclaration[],\n\tmodule_exports: Export[],\n\texports_from: ExportNamedDeclaration[]\n) {\n\tconst internal_path = `${sveltePath}/internal`;\n\n\thelpers.sort((a, b) => (a.name < b.name) ? -1 : 1);\n\tglobals.sort((a, b) => (a.name < b.name) ? -1 : 1);\n\n\tconst formatter = wrappers[format];\n\n\tif (!formatter) {\n\t\tthrow new Error(`options.format is invalid (must be ${list(Object.keys(wrappers))})`);\n\t}\n\n\treturn formatter(program, name, banner, sveltePath, internal_path, helpers, globals, imports, module_exports, exports_from);\n}\n\nfunction edit_source(source, sveltePath) {\n\treturn source === 'svelte' || source.startsWith('svelte/')\n\t\t? source.replace('svelte', sveltePath)\n\t\t: source;\n}\n\nfunction get_internal_globals(\n\tglobals: Array<{ name: string; alias: Identifier }>,\n\thelpers: Array<{ name: string; alias: Identifier }>\n) {\n\treturn globals.length > 0 && {\n\t\ttype: 'VariableDeclaration',\n\t\tkind: 'const',\n\t\tdeclarations: [{\n\t\t\ttype: 'VariableDeclarator',\n\t\t\tid: {\n\t\t\t\ttype: 'ObjectPattern',\n\t\t\t\tproperties: globals.map(g => ({\n\t\t\t\t\ttype: 'Property',\n\t\t\t\t\tmethod: false,\n\t\t\t\t\tshorthand: false,\n\t\t\t\t\tcomputed: false,\n\t\t\t\t\tkey: { type: 'Identifier', name: g.name },\n\t\t\t\t\tvalue: g.alias,\n\t\t\t\t\tkind: 'init'\n\t\t\t\t}))\n\t\t\t},\n\t\t\tinit: helpers.find(({ name }) => name === 'globals').alias\n\t\t}]\n\t};\n}\n\nfunction esm(\n\tprogram: any,\n\tname: Identifier,\n\tbanner: string,\n\tsveltePath: string,\n\tinternal_path: string,\n\thelpers: Array<{ name: string; alias: Identifier }>,\n\tglobals: Array<{ name: string; alias: Identifier }>,\n\timports: ImportDeclaration[],\n\tmodule_exports: Export[],\n\texports_from: ExportNamedDeclaration[]\n) {\n\tconst import_declaration = {\n\t\ttype: 'ImportDeclaration',\n\t\tspecifiers: helpers.map(h => ({\n\t\t\ttype: 'ImportSpecifier',\n\t\t\tlocal: h.alias,\n\t\t\timported: { type: 'Identifier', name: h.name }\n\t\t})),\n\t\tsource: { type: 'Literal', value: internal_path }\n\t};\n\n\tconst internal_globals = get_internal_globals(globals, helpers);\n\n\t// edit user imports\n\tfunction rewrite_import(node) {\n\t\tconst value = edit_source(node.source.value, sveltePath);\n\t\tif (node.source.value !== value) {\n\t\t\tnode.source.value = value;\n\t\t\tnode.source.raw = null;\n\t\t}\n\t}\n\timports.forEach(rewrite_import);\n\texports_from.forEach(rewrite_import);\n\n\tconst exports = module_exports.length > 0 && {\n\t\ttype: 'ExportNamedDeclaration',\n\t\tspecifiers: module_exports.map(x => ({\n\t\t\ttype: 'Specifier',\n\t\t\tlocal: { type: 'Identifier', name: x.name },\n\t\t\texported: { type: 'Identifier', name: x.as }\n\t\t}))\n\t};\n\n\tprogram.body = b`\n\t\t/* ${banner} */\n\n\t\t${import_declaration}\n\t\t${internal_globals}\n\t\t${imports}\n\t\t${exports_from}\n\n\t\t${program.body}\n\n\t\texport default ${name};\n\t\t${exports}\n\t`;\n}\n\nfunction cjs(\n\tprogram: any,\n\tname: Identifier,\n\tbanner: string,\n\tsveltePath: string,\n\tinternal_path: string,\n\thelpers: Array<{ name: string; alias: Identifier }>,\n\tglobals: Array<{ name: string; alias: Identifier }>,\n\timports: ImportDeclaration[],\n\tmodule_exports: Export[],\n\texports_from: ExportNamedDeclaration[]\n) {\n\tconst internal_requires = {\n\t\ttype: 'VariableDeclaration',\n\t\tkind: 'const',\n\t\tdeclarations: [{\n\t\t\ttype: 'VariableDeclarator',\n\t\t\tid: {\n\t\t\t\ttype: 'ObjectPattern',\n\t\t\t\tproperties: helpers.map(h => ({\n\t\t\t\t\ttype: 'Property',\n\t\t\t\t\tmethod: false,\n\t\t\t\t\tshorthand: false,\n\t\t\t\t\tcomputed: false,\n\t\t\t\t\tkey: { type: 'Identifier', name: h.name },\n\t\t\t\t\tvalue: h.alias,\n\t\t\t\t\tkind: 'init'\n\t\t\t\t}))\n\t\t\t},\n\t\t\tinit: x`require(\"${internal_path}\")`\n\t\t}]\n\t};\n\n\tconst internal_globals = get_internal_globals(globals, helpers);\n\n\tconst user_requires = imports.map(node => {\n\t\tconst init = x`require(\"${edit_source(node.source.value, sveltePath)}\")`;\n\t\tif (node.specifiers.length === 0) {\n\t\t\treturn b`${init};`;\n\t\t}\n\t\treturn {\n\t\t\ttype: 'VariableDeclaration',\n\t\t\tkind: 'const',\n\t\t\tdeclarations: [{\n\t\t\t\ttype: 'VariableDeclarator',\n\t\t\t\tid: node.specifiers[0].type === 'ImportNamespaceSpecifier'\n\t\t\t\t\t? { type: 'Identifier', name: node.specifiers[0].local.name }\n\t\t\t\t\t: {\n\t\t\t\t\t\ttype: 'ObjectPattern',\n\t\t\t\t\t\tproperties: node.specifiers.map(s => ({\n\t\t\t\t\t\t\ttype: 'Property',\n\t\t\t\t\t\t\tmethod: false,\n\t\t\t\t\t\t\tshorthand: false,\n\t\t\t\t\t\t\tcomputed: false,\n\t\t\t\t\t\t\tkey: s.type === 'ImportSpecifier' ? s.imported : { type: 'Identifier', name: 'default' },\n\t\t\t\t\t\t\tvalue: s.local,\n\t\t\t\t\t\t\tkind: 'init'\n\t\t\t\t\t\t}))\n\t\t\t\t\t},\n\t\t\t\tinit\n\t\t\t}]\n\t\t};\n\t});\n\n\tconst exports = module_exports.map(x => b`exports.${{ type: 'Identifier', name: x.as }} = ${{ type: 'Identifier', name: x.name }};`);\n\n\tconst user_exports_from = exports_from.map(node => {\n\t\tconst init = x`require(\"${edit_source(node.source.value, sveltePath)}\")`;\n\t\treturn node.specifiers.map(specifier => {\n\t\t\treturn b`exports.${specifier.exported} = ${init}.${specifier.local};`;\n\t\t});\n\t});\n\n\tprogram.body = b`\n\t\t/* ${banner} */\n\n\t\t\"use strict\";\n\t\t${internal_requires}\n\t\t${internal_globals}\n\t\t${user_requires}\n\t\t${user_exports_from}\n\n\t\t${program.body}\n\n\t\texports.default = ${name};\n\t\t${exports}\n\t`;\n}\n","import { encode } from '@jridgewell/sourcemap-codec';\n\nclass BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n\nclass Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\t{\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.end - trimmed.length);\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n}\n\nfunction getBtoa () {\n\tif (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n\t\treturn (str) => window.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nclass SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n\nfunction guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nconst toString = Object.prototype.toString;\n\nfunction isObject(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n\nclass Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t}\n\n\t\tthis.advance(content);\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\tthis.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);\n\t\t\t}\n\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t} else {\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nclass MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t});\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [options.source ? getRelativePath(options.file || '', options.source) : (options.file || '')],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)'\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead'\n\t\t\t); // eslint-disable-line no-console\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead'\n\t\t\t); // eslint-disable-line no-console\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\twhile (start < 0) start += this.original.length;\n\t\twhile (end < 0) end += this.original.length;\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead'\n\t\t\t);\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string'\n\t\t\t\t); // eslint-disable-line no-console\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\twhile (start < 0) start += this.original.length;\n\t\twhile (end < 0) end += this.original.length;\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length) {\n\t\twhile (start < 0) start += this.original.length;\n\t\twhile (end < 0) end += this.original.length;\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null)\n\t\t\t\t\tthis.overwrite(\n\t\t\t\t\t\tmatch.index,\n\t\t\t\t\t\tmatch.index + match[0].length,\n\t\t\t\t\t\tgetReplacement(match, this.original)\n\t\t\t\t\t);\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null)\n\t\t\t\tthis.overwrite(\n\t\t\t\t\tmatch.index,\n\t\t\t\t\tmatch.index + match[0].length,\n\t\t\t\t\tgetReplacement(match, this.original)\n\t\t\t\t);\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tthis.overwrite(index, index + stringLength, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument'\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nclass Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`'\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n}\n\nexport { Bundle, SourceMap, MagicString as default };\n//# sourceMappingURL=magic-string.es.mjs.map\n","import { Node } from 'estree';\n\nexport const UNKNOWN = {};\n\nexport function gather_possible_values(node: Node, set: Set<string | {}>) {\n\tif (node.type === 'Literal') {\n\t\tset.add(node.value);\n\t} else if (node.type === 'ConditionalExpression') {\n\t\tgather_possible_values(node.consequent, set);\n\t\tgather_possible_values(node.alternate, set);\n\t} else {\n\t\tset.add(UNKNOWN);\n\t}\n}\n","import MagicString from 'magic-string';\nimport Stylesheet from './Stylesheet';\nimport { gather_possible_values, UNKNOWN } from './gather_possible_values';\nimport { CssNode } from './interfaces';\nimport Component from '../Component';\nimport Element from '../nodes/Element';\nimport { INode } from '../nodes/interfaces';\nimport EachBlock from '../nodes/EachBlock';\nimport IfBlock from '../nodes/IfBlock';\nimport AwaitBlock from '../nodes/AwaitBlock';\nimport compiler_errors from '../compiler_errors';\nimport { regex_starts_with_whitespace, regex_ends_with_whitespace } from '../../utils/patterns';\n\nenum BlockAppliesToNode {\n\tNotPossible,\n\tPossible,\n\tUnknownSelectorType\n}\nenum NodeExist {\n\tProbably = 1,\n\tDefinitely = 2,\n}\n\nconst whitelist_attribute_selector = new Map([\n\t['details', new Set(['open'])],\n\t['dialog', new Set(['open'])]\n]);\n\nconst regex_is_single_css_selector = /[^\\\\],(?!([^([]+[^\\\\]|[^([\\\\])[)\\]])/;\n\nexport default class Selector {\n\tnode: CssNode;\n\tstylesheet: Stylesheet;\n\tblocks: Block[];\n\tlocal_blocks: Block[];\n\tused: boolean;\n\n\tconstructor(node: CssNode, stylesheet: Stylesheet) {\n\t\tthis.node = node;\n\t\tthis.stylesheet = stylesheet;\n\n\t\tthis.blocks = group_selectors(node);\n\n\t\t// take trailing :global(...) selectors out of consideration\n\t\tlet i = this.blocks.length;\n\t\twhile (i > 0) {\n\t\t\tif (!this.blocks[i - 1].global) break;\n\t\t\ti -= 1;\n\t\t}\n\n\t\tthis.local_blocks = this.blocks.slice(0, i);\n\n\t\tconst host_only = this.blocks.length === 1 && this.blocks[0].host;\n\t\tconst root_only = this.blocks.length === 1 && this.blocks[0].root;\n\n\t\tthis.used = this.local_blocks.length === 0 || host_only || root_only;\n\t}\n\n\tapply(node: Element) {\n\t\tconst to_encapsulate: Array<{ node: Element, block: Block }> = [];\n\n\t\tapply_selector(this.local_blocks.slice(), node, to_encapsulate);\n\n\t\tif (to_encapsulate.length > 0) {\n\t\t\tto_encapsulate.forEach(({ node, block }) => {\n\t\t\t\tthis.stylesheet.nodes_with_css_class.add(node);\n\t\t\t\tblock.should_encapsulate = true;\n\t\t\t});\n\n\t\t\tthis.used = true;\n\t\t}\n\t}\n\n\tminify(code: MagicString) {\n\t\tlet c: number = null;\n\t\tthis.blocks.forEach((block, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tif (block.start - c > 1) {\n\t\t\t\t\tcode.update(c, block.start, block.combinator.name || ' ');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc = block.end;\n\t\t});\n\t}\n\n\ttransform(code: MagicString, attr: string, max_amount_class_specificity_increased: number) {\n\t\tconst amount_class_specificity_to_increase = max_amount_class_specificity_increased - this.blocks.filter(block => block.should_encapsulate).length;\n\n\t\tfunction remove_global_pseudo_class(selector: CssNode) {\n\t\t\tconst first = selector.children[0];\n\t\t\tconst last = selector.children[selector.children.length - 1];\n\t\t\tcode.remove(selector.start, first.start).remove(last.end, selector.end);\n\t\t}\n\n\t\tfunction encapsulate_block(block: Block, attr: string) {\n\t\t\tfor (const selector of block.selectors) {\n\t\t\t\tif (selector.type === 'PseudoClassSelector' && selector.name === 'global') {\n\t\t\t\t\tremove_global_pseudo_class(selector);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet i = block.selectors.length;\n\n\t\t\twhile (i--) {\n\t\t\t\tconst selector = block.selectors[i];\n\t\t\t\tif (selector.type === 'PseudoElementSelector' || selector.type === 'PseudoClassSelector') {\n\t\t\t\t\tif (selector.name !== 'root' && selector.name !== 'host') {\n\t\t\t\t\t\tif (i === 0) code.prependRight(selector.start, attr);\n\t\t\t\t\t}\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (selector.type === 'TypeSelector' && selector.name === '*') {\n\t\t\t\t\tcode.update(selector.start, selector.end, attr);\n\t\t\t\t} else {\n\t\t\t\t\tcode.appendLeft(selector.end, attr);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tthis.blocks.forEach((block, index) => {\n\t\t\tif (block.global) {\n\t\t\t\tremove_global_pseudo_class(block.selectors[0]);\n\t\t\t}\n\t\t\tif (block.should_encapsulate) encapsulate_block(block, index === this.blocks.length - 1 ? attr.repeat(amount_class_specificity_to_increase + 1) : attr);\n\t\t});\n\t}\n\n\tvalidate(component: Component) {\n\t\tlet start = 0;\n\t\tlet end = this.blocks.length;\n\n\t\tfor (; start < end; start += 1) {\n\t\t\tif (!this.blocks[start].global) break;\n\t\t}\n\n\t\tfor (; end > start; end -= 1) {\n\t\t\tif (!this.blocks[end - 1].global) break;\n\t\t}\n\n\t\tfor (let i = start; i < end; i += 1) {\n\t\t\tif (this.blocks[i].global) {\n\t\t\t\treturn component.error(this.blocks[i].selectors[0], compiler_errors.css_invalid_global);\n\t\t\t}\n\t\t}\n\n\t\tthis.validate_global_with_multiple_selectors(component);\n\t\tthis.validate_global_compound_selector(component);\n\t\tthis.validate_invalid_combinator_without_selector(component);\n\t}\n\n\tvalidate_global_with_multiple_selectors(component: Component) {\n\t\tif (this.blocks.length === 1 && this.blocks[0].selectors.length === 1) {\n\t\t\t// standalone :global() with multiple selectors is OK\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const block of this.blocks) {\n\t\t\tfor (const selector of block.selectors) {\n\t\t\t\tif (selector.type === 'PseudoClassSelector' && selector.name === 'global') {\n\t\t\t\t\tif (regex_is_single_css_selector.test(selector.children[0].value)) {\n\t\t\t\t\t\tcomponent.error(selector, compiler_errors.css_invalid_global_selector);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvalidate_invalid_combinator_without_selector(component: Component) {\n\t\tfor (let i = 0; i < this.blocks.length; i++) {\n\t\t\tconst block = this.blocks[i];\n\t\t\tif (block.combinator && block.selectors.length === 0) {\n\t\t\t\tcomponent.error(this.node, compiler_errors.css_invalid_selector(component.source.slice(this.node.start, this.node.end)));\n\t\t\t}\n\t\t\tif (!block.combinator && block.selectors.length === 0) {\n\t\t\t\tcomponent.error(this.node, compiler_errors.css_invalid_selector(component.source.slice(this.node.start, this.node.end)));\n\t\t\t}\n\t\t}\n\t}\n\n\tvalidate_global_compound_selector(component: Component) {\n\t\tfor (const block of this.blocks) {\n\t\t\tfor (let index = 0; index < block.selectors.length; index++) {\n\t\t\t\tconst selector = block.selectors[index];\n\t\t\t\tif (selector.type === 'PseudoClassSelector' &&\n\t\t\t\t\tselector.name === 'global' &&\n\t\t\t\t\tindex !== 0 &&\n\t\t\t\t\tselector.children &&\n\t\t\t\t\tselector.children.length > 0 &&\n\t\t\t\t\t!/[.:#\\s]/.test(selector.children[0].value[0])\n\t\t\t\t) {\n\t\t\t\t\tcomponent.error(selector, compiler_errors.css_invalid_global_selector_position);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tget_amount_class_specificity_increased() {\n\t\tlet count = 0;\n\t\tfor (const block of this.blocks) {\n\t\t\tif (block.should_encapsulate) {\n\t\t\t\tcount ++;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t}\n}\n\nfunction apply_selector(blocks: Block[], node: Element, to_encapsulate: Array<{ node: Element, block: Block }>): boolean {\n\tconst block = blocks.pop();\n\tif (!block) return false;\n\n\tif (!node) {\n\t\treturn (\n\t\t\t(block.global && blocks.every(block => block.global)) ||\n\t\t\t(block.host && blocks.length === 0)\n\t\t);\n\t}\n\n\tswitch (block_might_apply_to_node(block, node)) {\n\t\tcase BlockAppliesToNode.NotPossible:\n\t\t\treturn false;\n\n\t\tcase BlockAppliesToNode.UnknownSelectorType:\n\t\t// bail. TODO figure out what these could be\n\t\t\tto_encapsulate.push({ node, block });\n\t\t\treturn true;\n\t}\n\n\tif (block.combinator) {\n\t\tif (block.combinator.type === 'Combinator' && block.combinator.name === ' ') {\n\t\t\tfor (const ancestor_block of blocks) {\n\t\t\t\tif (ancestor_block.global) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (ancestor_block.host) {\n\t\t\t\t\tto_encapsulate.push({ node, block });\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet parent = node;\n\t\t\t\twhile (parent = get_element_parent(parent)) {\n\t\t\t\t\tif (block_might_apply_to_node(ancestor_block, parent) !== BlockAppliesToNode.NotPossible) {\n\t\t\t\t\t\tto_encapsulate.push({ node: parent, block: ancestor_block });\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (to_encapsulate.length) {\n\t\t\t\t\tto_encapsulate.push({ node, block });\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (blocks.every(block => block.global)) {\n\t\t\t\tto_encapsulate.push({ node, block });\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} else if (block.combinator.name === '>') {\n\t\t\tconst has_global_parent = blocks.every(block => block.global);\n\t\t\tif (has_global_parent || apply_selector(blocks, get_element_parent(node), to_encapsulate)) {\n\t\t\t\tto_encapsulate.push({ node, block });\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t} else if (block.combinator.name === '+' || block.combinator.name === '~') {\n\t\t\tconst siblings = get_possible_element_siblings(node, block.combinator.name === '+');\n\t\t\tlet has_match = false;\n\n\t\t\t// NOTE: if we have :global(), we couldn't figure out what is selected within `:global` due to the\n\t\t\t// css-tree limitation that does not parse the inner selector of :global\n\t\t\t// so unless we are sure there will be no sibling to match, we will consider it as matched\n\t\t\tconst has_global = blocks.some(block => block.global);\n\t\t\tif (has_global) {\n\t\t\t\tif (siblings.size === 0 && get_element_parent(node) !== null) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tto_encapsulate.push({ node, block });\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tfor (const possible_sibling of siblings.keys()) {\n\t\t\t\tif (apply_selector(blocks.slice(), possible_sibling, to_encapsulate)) {\n\t\t\t\t\tto_encapsulate.push({ node, block });\n\t\t\t\t\thas_match = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn has_match;\n\t\t}\n\n\t\t// TODO other combinators\n\t\tto_encapsulate.push({ node, block });\n\t\treturn true;\n\t}\n\n\tto_encapsulate.push({ node, block });\n\treturn true;\n}\n\nconst regex_backslash_and_following_character = /\\\\(.)/g;\n\nfunction block_might_apply_to_node(block: Block, node: Element): BlockAppliesToNode {\n\tlet i = block.selectors.length;\n\n\twhile (i--) {\n\t\tconst selector = block.selectors[i];\n\t\tconst name = typeof selector.name === 'string' && selector.name.replace(regex_backslash_and_following_character, '$1');\n\n\t\tif (selector.type === 'PseudoClassSelector' && (name === 'host' || name === 'root')) {\n\t\t\treturn BlockAppliesToNode.NotPossible;\n\t\t}\n\n\t\tif (block.selectors.length === 1 && selector.type === 'PseudoClassSelector' && name === 'global') {\n\t\t\treturn BlockAppliesToNode.NotPossible;\n\t\t}\n\n\t\tif (selector.type === 'PseudoClassSelector' || selector.type === 'PseudoElementSelector') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (selector.type === 'ClassSelector') {\n\t\t\tif (!attribute_matches(node, 'class', name, '~=', false) && !node.classes.some(c => c.name === name)) return BlockAppliesToNode.NotPossible;\n\t\t} else if (selector.type === 'IdSelector') {\n\t\t\tif (!attribute_matches(node, 'id', name, '=', false)) return BlockAppliesToNode.NotPossible;\n\t\t} else if (selector.type === 'AttributeSelector') {\n\t\t\tif (\n\t\t\t\t!(whitelist_attribute_selector.has(node.name.toLowerCase()) && whitelist_attribute_selector.get(node.name.toLowerCase()).has(selector.name.name.toLowerCase())) &&\n\t\t\t\t!attribute_matches(node, selector.name.name, selector.value && unquote(selector.value), selector.matcher, selector.flags)) {\n\t\t\t\treturn BlockAppliesToNode.NotPossible;\n\t\t\t}\n\t\t} else if (selector.type === 'TypeSelector') {\n\t\t\tif (node.name.toLowerCase() !== name.toLowerCase() && name !== '*' && !node.is_dynamic_element) return BlockAppliesToNode.NotPossible;\n\t\t} else {\n\t\t\treturn BlockAppliesToNode.UnknownSelectorType;\n\t\t}\n\t}\n\n\treturn BlockAppliesToNode.Possible;\n}\n\nfunction test_attribute(operator, expected_value, case_insensitive, value) {\n\tif (case_insensitive) {\n\t\texpected_value = expected_value.toLowerCase();\n\t\tvalue = value.toLowerCase();\n\t}\n\tswitch (operator) {\n\t\tcase '=': return value === expected_value;\n\t\tcase '~=': return value.split(/\\s/).includes(expected_value);\n\t\tcase '|=': return `${value}-`.startsWith(`${expected_value}-`);\n\t\tcase '^=': return value.startsWith(expected_value);\n\t\tcase '$=': return value.endsWith(expected_value);\n\t\tcase '*=': return value.includes(expected_value);\n\t\tdefault: throw new Error(\"this shouldn't happen\");\n\t}\n}\n\nfunction attribute_matches(node: CssNode, name: string, expected_value: string, operator: string, case_insensitive: boolean) {\n\tconst spread = node.attributes.find(attr => attr.type === 'Spread');\n\tif (spread) return true;\n\n\tif (node.bindings.some((binding: CssNode) => binding.name === name)) return true;\n\n\tconst attr = node.attributes.find((attr: CssNode) => attr.name === name);\n\tif (!attr) return false;\n\tif (attr.is_true) return operator === null;\n\tif (expected_value == null) return true;\n\n\tif (attr.chunks.length === 1) {\n\t\tconst value = attr.chunks[0];\n\t\tif (!value) return false;\n\t\tif (value.type === 'Text') return test_attribute(operator, expected_value, case_insensitive, value.data);\n\t}\n\n\tconst possible_values = new Set();\n\n\tlet prev_values = [];\n\tfor (const chunk of attr.chunks) {\n\t\tconst current_possible_values = new Set();\n\t\tif (chunk.type === 'Text') {\n\t\t\tcurrent_possible_values.add(chunk.data);\n\t\t} else {\n\t\t\tgather_possible_values(chunk.node, current_possible_values);\n\t\t}\n\n\t\t// impossible to find out all combinations\n\t\tif (current_possible_values.has(UNKNOWN)) return true;\n\n\t\tif (prev_values.length > 0) {\n\t\t\tconst start_with_space = [];\n\t\t\tconst remaining = [];\n\t\t\tcurrent_possible_values.forEach((current_possible_value: string) => {\n\t\t\t\tif (regex_starts_with_whitespace.test(current_possible_value)) {\n\t\t\t\t\tstart_with_space.push(current_possible_value);\n\t\t\t\t} else {\n\t\t\t\t\tremaining.push(current_possible_value);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (remaining.length > 0) {\n\t\t\t\tif (start_with_space.length > 0) {\n\t\t\t\t\tprev_values.forEach(prev_value => possible_values.add(prev_value));\n\t\t\t\t}\n\n\t\t\t\tconst combined = [];\n\t\t\t\tprev_values.forEach((prev_value: string) => {\n\t\t\t\t\tremaining.forEach((value: string) => {\n\t\t\t\t\t\tcombined.push(prev_value + value);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tprev_values = combined;\n\n\t\t\t\tstart_with_space.forEach((value: string) => {\n\t\t\t\t\tif (regex_ends_with_whitespace.test(value)) {\n\t\t\t\t\t\tpossible_values.add(value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tprev_values.push(value);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tcontinue;\n\t\t\t} else {\n\t\t\t\tprev_values.forEach(prev_value => possible_values.add(prev_value));\n\t\t\t\tprev_values = [];\n\t\t\t}\n\t\t}\n\n\t\tcurrent_possible_values.forEach((current_possible_value: string) => {\n\t\t\tif (regex_ends_with_whitespace.test(current_possible_value)) {\n\t\t\t\tpossible_values.add(current_possible_value);\n\t\t\t} else {\n\t\t\t\tprev_values.push(current_possible_value);\n\t\t\t}\n\t\t});\n\t\tif (prev_values.length < current_possible_values.size) {\n\t\t\tprev_values.push(' ');\n\t\t}\n\n\t\tif (prev_values.length > 20) {\n\t\t\t// might grow exponentially, bail out\n\t\t\treturn true;\n\t\t}\n\t}\n\tprev_values.forEach(prev_value => possible_values.add(prev_value));\n\n\tif (possible_values.has(UNKNOWN)) return true;\n\n\tfor (const value of possible_values) {\n\t\tif (test_attribute(operator, expected_value, case_insensitive, value)) return true;\n\t}\n\n\treturn false;\n}\n\nfunction unquote(value: CssNode) {\n\tif (value.type === 'Identifier') return value.name;\n\tconst str = value.value;\n\tif (str[0] === str[str.length - 1] && str[0] === \"'\" || str[0] === '\"') {\n\t\treturn str.slice(1, str.length - 1);\n\t}\n\treturn str;\n}\n\nfunction get_element_parent(node: Element): Element | null {\n\tlet parent: INode = node;\n\twhile ((parent = parent.parent) && parent.type !== 'Element');\n\treturn parent as Element | null;\n}\n\nfunction get_possible_element_siblings(node: INode, adjacent_only: boolean): Map<Element, NodeExist> {\n\tconst result: Map<Element, NodeExist> = new Map();\n\tlet prev: INode = node;\n\twhile (prev = prev.prev) {\n\t\tif (prev.type === 'Element') {\n\t\t\tif (!prev.attributes.find(attr => attr.type === 'Attribute' && attr.name.toLowerCase() === 'slot')) {\n\t\t\t\tresult.set(prev, NodeExist.Definitely);\n\t\t\t}\n\n\t\t\tif (adjacent_only) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} else if (prev.type === 'EachBlock' || prev.type === 'IfBlock' || prev.type === 'AwaitBlock') {\n\t\t\tconst possible_last_child = get_possible_last_child(prev, adjacent_only);\n\n\t\t\tadd_to_map(possible_last_child, result);\n\t\t\tif (adjacent_only && has_definite_elements(possible_last_child)) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!prev || !adjacent_only) {\n\t\tlet parent: INode = node;\n\t\tlet skip_each_for_last_child = node.type === 'ElseBlock';\n\t\twhile ((parent = parent.parent) && (parent.type === 'EachBlock' || parent.type === 'IfBlock' || parent.type === 'ElseBlock' || parent.type === 'AwaitBlock')) {\n\t\t\tconst possible_siblings = get_possible_element_siblings(parent, adjacent_only);\n\t\t\tadd_to_map(possible_siblings, result);\n\n\t\t\tif (parent.type === 'EachBlock') {\n\t\t\t\t// first child of each block can select the last child of each block as previous sibling\n\t\t\t\tif (skip_each_for_last_child) {\n\t\t\t\t\tskip_each_for_last_child = false;\n\t\t\t\t} else {\n\t\t\t\t\tadd_to_map(get_possible_last_child(parent, adjacent_only), result);\n\t\t\t\t}\n\t\t\t} else if (parent.type === 'ElseBlock') {\n\t\t\t\tskip_each_for_last_child = true;\n\t\t\t\tparent = parent.parent;\n\t\t\t}\n\n\t\t\tif (adjacent_only && has_definite_elements(possible_siblings)) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction get_possible_last_child(block: EachBlock | IfBlock | AwaitBlock, adjacent_only: boolean): Map<Element, NodeExist> {\n\tconst result: Map<Element, NodeExist> = new Map();\n\n\tif (block.type === 'EachBlock') {\n\t\tconst each_result: Map<Element, NodeExist> = loop_child(block.children, adjacent_only);\n\t\tconst else_result: Map<Element, NodeExist> = block.else ? loop_child(block.else.children, adjacent_only) : new Map();\n\n\t\tconst not_exhaustive = !has_definite_elements(else_result);\n\n\t\tif (not_exhaustive) {\n\t\t\tmark_as_probably(each_result);\n\t\t\tmark_as_probably(else_result);\n\t\t}\n\t\tadd_to_map(each_result, result);\n\t\tadd_to_map(else_result, result);\n\t} else if (block.type === 'IfBlock') {\n\t\tconst if_result: Map<Element, NodeExist> = loop_child(block.children, adjacent_only);\n\t\tconst else_result: Map<Element, NodeExist> = block.else ? loop_child(block.else.children, adjacent_only) : new Map();\n\n\t\tconst not_exhaustive = !has_definite_elements(if_result) || !has_definite_elements(else_result);\n\n\t\tif (not_exhaustive) {\n\t\t\tmark_as_probably(if_result);\n\t\t\tmark_as_probably(else_result);\n\t\t}\n\n\t\tadd_to_map(if_result, result);\n\t\tadd_to_map(else_result, result);\n\t} else if (block.type === 'AwaitBlock') {\n\t\tconst pending_result: Map<Element, NodeExist> = block.pending ? loop_child(block.pending.children, adjacent_only) : new Map();\n\t\tconst then_result: Map<Element, NodeExist> = block.then ? loop_child(block.then.children, adjacent_only) : new Map();\n\t\tconst catch_result: Map<Element, NodeExist> = block.catch ? loop_child(block.catch.children, adjacent_only) : new Map();\n\n\t\tconst not_exhaustive = !has_definite_elements(pending_result) || !has_definite_elements(then_result) || !has_definite_elements(catch_result);\n\n\t\tif (not_exhaustive) {\n\t\t\tmark_as_probably(pending_result);\n\t\t\tmark_as_probably(then_result);\n\t\t\tmark_as_probably(catch_result);\n\t\t}\n\n\t\tadd_to_map(pending_result, result);\n\t\tadd_to_map(then_result, result);\n\t\tadd_to_map(catch_result, result);\n\t}\n\n\treturn result;\n}\n\nfunction has_definite_elements(result: Map<Element, NodeExist>): boolean {\n\tif (result.size === 0) return false;\n\tfor (const exist of result.values()) {\n\t\tif (exist === NodeExist.Definitely) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction add_to_map(from: Map<Element, NodeExist>, to: Map<Element, NodeExist>) {\n\tfrom.forEach((exist, element) => {\n\t\tto.set(element, higher_existence(exist, to.get(element)));\n\t});\n}\n\nfunction higher_existence(exist1: NodeExist | null, exist2: NodeExist | null): NodeExist {\n\tif (exist1 === undefined || exist2 === undefined) return exist1 || exist2;\n\treturn exist1 > exist2 ? exist1 : exist2;\n}\n\nfunction mark_as_probably(result: Map<Element, NodeExist>) {\n\tfor (const key of result.keys()) {\n\t\tresult.set(key, NodeExist.Probably);\n\t}\n}\n\nfunction loop_child(children: INode[], adjacent_only: boolean) {\n\tconst result: Map<Element, NodeExist> = new Map();\n\tfor (let i = children.length - 1; i >= 0; i--) {\n\t\tconst child = children[i];\n\t\tif (child.type === 'Element') {\n\t\t\tresult.set(child, NodeExist.Definitely);\n\t\t\tif (adjacent_only) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} else if (child.type === 'EachBlock' || child.type === 'IfBlock' || child.type === 'AwaitBlock') {\n\t\t\tconst child_result = get_possible_last_child(child, adjacent_only);\n\t\t\tadd_to_map(child_result, result);\n\t\t\tif (adjacent_only && has_definite_elements(child_result)) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn result;\n}\n\nclass Block {\n\thost: boolean;\n\troot: boolean;\n\tcombinator: CssNode;\n\tselectors: CssNode[];\n\tstart: number;\n\tend: number;\n\tshould_encapsulate: boolean;\n\n\tconstructor(combinator: CssNode) {\n\t\tthis.combinator = combinator;\n\t\tthis.host = false;\n\t\tthis.root = false;\n\t\tthis.selectors = [];\n\n\t\tthis.start = null;\n\t\tthis.end = null;\n\n\t\tthis.should_encapsulate = false;\n\t}\n\n\tadd(selector: CssNode) {\n\t\tif (this.selectors.length === 0) {\n\t\t\tthis.start = selector.start;\n\t\t\tthis.host = selector.type === 'PseudoClassSelector' && selector.name === 'host';\n\t\t}\n\t\tthis.root = this.root || selector.type === 'PseudoClassSelector' && selector.name === 'root';\n\n\t\tthis.selectors.push(selector);\n\t\tthis.end = selector.end;\n\t}\n\n\tget global() {\n\t\treturn (\n\t\t\tthis.selectors.length >= 1 &&\n\t\t\tthis.selectors[0].type === 'PseudoClassSelector' &&\n\t\t\tthis.selectors[0].name === 'global' &&\n\t\t\tthis.selectors.every((selector) => selector.type === 'PseudoClassSelector' || selector.type === 'PseudoElementSelector')\n\t\t);\n\t}\n}\n\nfunction group_selectors(selector: CssNode) {\n\tlet block: Block = new Block(null);\n\n\tconst blocks = [block];\n\n\tselector.children.forEach((child: CssNode) => {\n\t\tif (child.type === 'WhiteSpace' || child.type === 'Combinator') {\n\t\t\tblock = new Block(child);\n\t\t\tblocks.push(block);\n\t\t} else {\n\t\t\tblock.add(child);\n\t\t}\n\t});\n\n\treturn blocks;\n}\n","import MagicString from 'magic-string';\nimport { walk } from 'estree-walker';\nimport Selector from './Selector';\nimport Element from '../nodes/Element';\nimport { Ast, CssHashGetter } from '../../interfaces';\nimport Component from '../Component';\nimport { CssNode } from './interfaces';\nimport hash from '../utils/hash';\nimport compiler_warnings from '../compiler_warnings';\nimport { extract_ignores_above_position } from '../../utils/extract_svelte_ignore';\nimport { push_array } from '../../utils/push_array';\nimport { regex_only_whitespaces, regex_whitespace } from '../../utils/patterns';\n\nconst regex_css_browser_prefix = /^-((webkit)|(moz)|(o)|(ms))-/;\n\nfunction remove_css_prefix(name: string): string {\n\treturn name.replace(regex_css_browser_prefix, '');\n}\n\nconst is_keyframes_node = (node: CssNode) =>\n\tremove_css_prefix(node.name) === 'keyframes';\n\nconst at_rule_has_declaration = ({ block }: CssNode): true =>\n\tblock &&\n\tblock.children &&\n\tblock.children.find((node: CssNode) => node.type === 'Declaration');\n\nfunction minify_declarations(\n\tcode: MagicString,\n\tstart: number,\n\tdeclarations: Declaration[]\n): number {\n\tlet c = start;\n\n\tdeclarations.forEach((declaration, i) => {\n\t\tconst separator = i > 0 ? ';' : '';\n\t\tif ((declaration.node.start - c) > separator.length) {\n\t\t\tcode.update(c, declaration.node.start, separator);\n\t\t}\n\t\tdeclaration.minify(code);\n\t\tc = declaration.node.end;\n\t});\n\n\treturn c;\n}\n\nclass Rule {\n\tselectors: Selector[];\n\tdeclarations: Declaration[];\n\tnode: CssNode;\n\tparent: Atrule;\n\n\tconstructor(node: CssNode, stylesheet, parent?: Atrule) {\n\t\tthis.node = node;\n\t\tthis.parent = parent;\n\t\tthis.selectors = node.prelude.children.map((node: CssNode) => new Selector(node, stylesheet));\n\t\tthis.declarations = node.block.children.map((node: CssNode) => new Declaration(node));\n\t}\n\n\tapply(node: Element) {\n\t\tthis.selectors.forEach(selector => selector.apply(node)); // TODO move the logic in here?\n\t}\n\n\tis_used(dev: boolean) {\n\t\tif (this.parent && this.parent.node.type === 'Atrule' && is_keyframes_node(this.parent.node)) return true;\n\t\tif (this.declarations.length === 0) return dev;\n\t\treturn this.selectors.some(s => s.used);\n\t}\n\n\tminify(code: MagicString, _dev: boolean) {\n\t\tlet c = this.node.start;\n\t\tlet started = false;\n\n\t\tthis.selectors.forEach((selector) => {\n\t\t\tif (selector.used) {\n\t\t\t\tconst separator = started ? ',' : '';\n\t\t\t\tif ((selector.node.start - c) > separator.length) {\n\t\t\t\t\tcode.update(c, selector.node.start, separator);\n\t\t\t\t}\n\n\t\t\t\tselector.minify(code);\n\t\t\t\tc = selector.node.end;\n\n\t\t\t\tstarted = true;\n\t\t\t}\n\t\t});\n\n\t\tcode.remove(c, this.node.block.start);\n\n\t\tc = this.node.block.start + 1;\n\t\tc = minify_declarations(code, c, this.declarations);\n\n\t\tcode.remove(c, this.node.block.end - 1);\n\t}\n\n\ttransform(code: MagicString, id: string, keyframes: Map<string, string>, max_amount_class_specificity_increased: number) {\n\t\tif (this.parent && this.parent.node.type === 'Atrule' && is_keyframes_node(this.parent.node)) return true;\n\n\t\tconst attr = `.${id}`;\n\n\t\tthis.selectors.forEach(selector => selector.transform(code, attr, max_amount_class_specificity_increased));\n\t\tthis.declarations.forEach(declaration => declaration.transform(code, keyframes));\n\t}\n\n\tvalidate(component: Component) {\n\t\tthis.selectors.forEach(selector => {\n\t\t\tselector.validate(component);\n\t\t});\n\t}\n\n\twarn_on_unused_selector(handler: (selector: Selector) => void) {\n\t\tthis.selectors.forEach(selector => {\n\t\t\tif (!selector.used) handler(selector);\n\t\t});\n\t}\n\n\tget_max_amount_class_specificity_increased() {\n\t\treturn Math.max(...this.selectors.map(selector => selector.get_amount_class_specificity_increased()));\n\t}\n}\n\nclass Declaration {\n\tnode: CssNode;\n\n\tconstructor(node: CssNode) {\n\t\tthis.node = node;\n\t}\n\n\ttransform(code: MagicString, keyframes: Map<string, string>) {\n\t\tconst property = this.node.property && remove_css_prefix(this.node.property.toLowerCase());\n\t\tif (property === 'animation' || property === 'animation-name') {\n\t\t\tthis.node.value.children.forEach((block: CssNode) => {\n\t\t\t\tif (block.type === 'Identifier') {\n\t\t\t\t\tconst name = block.name;\n\t\t\t\t\tif (keyframes.has(name)) {\n\t\t\t\t\t\tcode.update(block.start, block.end, keyframes.get(name));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tminify(code: MagicString) {\n\t\tif (!this.node.property) return; // @apply, and possibly other weird cases?\n\n\t\tconst c = this.node.start + this.node.property.length;\n\t\tconst first = this.node.value.children\n\t\t\t? this.node.value.children[0]\n\t\t\t: this.node.value;\n\n\t\t// Don't minify whitespace in custom properties, since some browsers (Chromium < 99)\n\t\t// treat --foo: ; and --foo:; differently\n\t\tif (first.type === 'Raw' && regex_only_whitespaces.test(first.value)) return;\n\n\t\tlet start = first.start;\n\t\twhile (regex_whitespace.test(code.original[start])) start += 1;\n\n\t\tif (start - c > 1) {\n\t\t\tcode.update(c, start, ':');\n\t\t}\n\t}\n}\n\nclass Atrule {\n\tnode: CssNode;\n\tchildren: Array<Atrule | Rule>;\n\tdeclarations: Declaration[];\n\n\tconstructor(node: CssNode) {\n\t\tthis.node = node;\n\t\tthis.children = [];\n\t\tthis.declarations = [];\n\t}\n\n\tapply(node: Element) {\n\t\tif (this.node.name === 'media' || this.node.name === 'supports' || this.node.name === 'layer') {\n\t\t\tthis.children.forEach(child => {\n\t\t\t\tchild.apply(node);\n\t\t\t});\n\t\t} else if (is_keyframes_node(this.node)) {\n\t\t\tthis.children.forEach((rule: Rule) => {\n\t\t\t\trule.selectors.forEach(selector => {\n\t\t\t\t\tselector.used = true;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\tis_used(_dev: boolean) {\n\t\treturn true; // TODO\n\t}\n\n\tminify(code: MagicString, dev: boolean) {\n\t\tif (this.node.name === 'media') {\n\t\t\tconst expression_char = code.original[this.node.prelude.start];\n\t\t\tlet c = this.node.start + (expression_char === '(' ? 6 : 7);\n\t\t\tif (this.node.prelude.start > c) code.remove(c, this.node.prelude.start);\n\n\t\t\tthis.node.prelude.children.forEach((query: CssNode) => {\n\t\t\t\t// TODO minify queries\n\t\t\t\tc = query.end;\n\t\t\t});\n\n\t\t\tcode.remove(c, this.node.block.start);\n\t\t} else if (this.node.name === 'supports') {\n\t\t\tlet c = this.node.start + 9;\n\t\t\tif (this.node.prelude.start - c > 1) code.update(c, this.node.prelude.start, ' ');\n\t\t\tthis.node.prelude.children.forEach((query: CssNode) => {\n\t\t\t\t// TODO minify queries\n\t\t\t\tc = query.end;\n\t\t\t});\n\t\t\tcode.remove(c, this.node.block.start);\n\t\t} else {\n\t\t\tlet c = this.node.start + this.node.name.length + 1;\n\t\t\tif (this.node.prelude) {\n\t\t\t\tif (this.node.prelude.start - c > 1) code.update(c, this.node.prelude.start, ' ');\n\t\t\t\tc = this.node.prelude.end;\n\t\t\t}\n\t\t\tif (this.node.block && this.node.block.start - c > 0) {\n\t\t\t\tcode.remove(c, this.node.block.start);\n\t\t\t}\n\t\t}\n\n\t\t// TODO other atrules\n\n\t\tif (this.node.block) {\n\t\t\tlet c = this.node.block.start + 1;\n\t\t\tif (this.declarations.length) {\n\t\t\t\tc = minify_declarations(code, c, this.declarations);\n\t\t\t\t// if the atrule has children, leave the last declaration semicolon alone\n\t\t\t\tif (this.children.length) c++;\n\t\t\t}\n\n\t\t\tthis.children.forEach(child => {\n\t\t\t\tif (child.is_used(dev)) {\n\t\t\t\t\tcode.remove(c, child.node.start);\n\t\t\t\t\tchild.minify(code, dev);\n\t\t\t\t\tc = child.node.end;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tcode.remove(c, this.node.block.end - 1);\n\t\t}\n\t}\n\n\ttransform(code: MagicString, id: string, keyframes: Map<string, string>, max_amount_class_specificity_increased: number) {\n\t\tif (is_keyframes_node(this.node)) {\n\t\t\tthis.node.prelude.children.forEach(({ type, name, start, end }: CssNode) => {\n\t\t\t\tif (type === 'Identifier') {\n\t\t\t\t\tif (name.startsWith('-global-')) {\n\t\t\t\t\t\tcode.remove(start, start + 8);\n\t\t\t\t\t\tthis.children.forEach((rule: Rule) => {\n\t\t\t\t\t\t\trule.selectors.forEach(selector => {\n\t\t\t\t\t\t\t\tselector.used = true;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcode.update(start, end, keyframes.get(name));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.children.forEach(child => {\n\t\t\tchild.transform(code, id, keyframes, max_amount_class_specificity_increased);\n\t\t});\n\t}\n\n\tvalidate(component: Component) {\n\t\tthis.children.forEach(child => {\n\t\t\tchild.validate(component);\n\t\t});\n\t}\n\n\twarn_on_unused_selector(handler: (selector: Selector) => void) {\n\t\tif (this.node.name !== 'media') return;\n\n\t\tthis.children.forEach(child => {\n\t\t\tchild.warn_on_unused_selector(handler);\n\t\t});\n\t}\n\n\tget_max_amount_class_specificity_increased() {\n\t\treturn Math.max(...this.children.map(rule => rule.get_max_amount_class_specificity_increased()));\n\t}\n}\n\nconst get_default_css_hash: CssHashGetter = ({ css, hash }) => {\n\treturn `svelte-${hash(css)}`;\n};\n\nexport default class Stylesheet {\n\tsource: string;\n\tast: Ast;\n\tfilename: string;\n\tdev: boolean;\n\n\thas_styles: boolean;\n\tid: string;\n\n\tchildren: Array<Rule | Atrule> = [];\n\tkeyframes: Map<string, string> = new Map();\n\n\tnodes_with_css_class: Set<CssNode> = new Set();\n\n\tconstructor({\n\t\tsource,\n\t\tast,\n\t\tcomponent_name,\n\t\tfilename,\n\t\tdev,\n\t\tget_css_hash = get_default_css_hash\n\t}: {\n\t\tsource: string;\n\t\tast: Ast;\n\t\tfilename: string | undefined;\n\t\tcomponent_name: string | undefined;\n\t\tdev: boolean;\n\t\tget_css_hash: CssHashGetter;\n\t}) {\n\t\tthis.source = source;\n\t\tthis.ast = ast;\n\t\tthis.filename = filename;\n\t\tthis.dev = dev;\n\n\t\tif (ast.css && ast.css.children.length) {\n\t\t\tthis.id = get_css_hash({\n\t\t\t\tfilename,\n\t\t\t\tname: component_name,\n\t\t\t\tcss: ast.css.content.styles,\n\t\t\t\thash\n\t\t\t});\n\n\t\t\tthis.has_styles = true;\n\n\t\t\tconst stack: Atrule[] = [];\n\t\t\tlet depth = 0;\n\t\t\tlet current_atrule: Atrule = null;\n\n\t\t\twalk(ast.css as any, {\n\t\t\t\tenter: (node: any) => {\n\t\t\t\t\tif (node.type === 'Atrule') {\n\t\t\t\t\t\tconst atrule = new Atrule(node);\n\t\t\t\t\t\tstack.push(atrule);\n\n\t\t\t\t\t\tif (current_atrule) {\n\t\t\t\t\t\t\tcurrent_atrule.children.push(atrule);\n\t\t\t\t\t\t} else if (depth <= 1) {\n\t\t\t\t\t\t\tthis.children.push(atrule);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (is_keyframes_node(node)) {\n\t\t\t\t\t\t\tnode.prelude.children.forEach((expression: CssNode) => {\n\t\t\t\t\t\t\t\tif (expression.type === 'Identifier' && !expression.name.startsWith('-global-')) {\n\t\t\t\t\t\t\t\t\tthis.keyframes.set(expression.name, `${this.id}-${expression.name}`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if (at_rule_has_declaration(node)) {\n\t\t\t\t\t\t\tconst at_rule_declarations = node.block.children\n\t\t\t\t\t\t\t\t.filter(node => node.type === 'Declaration')\n\t\t\t\t\t\t\t\t.map(node => new Declaration(node));\n\t\t\t\t\t\t\tpush_array(atrule.declarations, at_rule_declarations);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcurrent_atrule = atrule;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (node.type === 'Rule') {\n\t\t\t\t\t\tconst rule = new Rule(node, this, current_atrule);\n\n\t\t\t\t\t\tif (current_atrule) {\n\t\t\t\t\t\t\tcurrent_atrule.children.push(rule);\n\t\t\t\t\t\t} else if (depth <= 1) {\n\t\t\t\t\t\t\tthis.children.push(rule);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tdepth += 1;\n\t\t\t\t},\n\n\t\t\t\tleave: (node: any) => {\n\t\t\t\t\tif (node.type === 'Atrule') {\n\t\t\t\t\t\tstack.pop();\n\t\t\t\t\t\tcurrent_atrule = stack[stack.length - 1];\n\t\t\t\t\t}\n\n\t\t\t\t\tdepth -= 1;\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.has_styles = false;\n\t\t}\n\t}\n\n\tapply(node: Element) {\n\t\tif (!this.has_styles) return;\n\n\t\tfor (let i = 0; i < this.children.length; i += 1) {\n\t\t\tconst child = this.children[i];\n\t\t\tchild.apply(node);\n\t\t}\n\t}\n\n\treify() {\n\t\tthis.nodes_with_css_class.forEach((node: Element) => {\n\t\t\tnode.add_css_class();\n\t\t});\n\t}\n\n\trender(file: string, should_transform_selectors: boolean) {\n\t\tif (!this.has_styles) {\n\t\t\treturn { code: null, map: null };\n\t\t}\n\n\t\tconst code = new MagicString(this.source);\n\n\t\twalk(this.ast.css as any, {\n\t\t\tenter: (node: any) => {\n\t\t\t\tcode.addSourcemapLocation(node.start);\n\t\t\t\tcode.addSourcemapLocation(node.end);\n\t\t\t}\n\t\t});\n\n\t\tif (should_transform_selectors) {\n\t\t\tconst max = Math.max(...this.children.map(rule => rule.get_max_amount_class_specificity_increased()));\n\t\t\tthis.children.forEach((child: (Atrule | Rule)) => {\n\t\t\t\tchild.transform(code, this.id, this.keyframes, max);\n\t\t\t});\n\t\t}\n\n\t\tlet c = 0;\n\t\tthis.children.forEach(child => {\n\t\t\tif (child.is_used(this.dev)) {\n\t\t\t\tcode.remove(c, child.node.start);\n\t\t\t\tchild.minify(code, this.dev);\n\t\t\t\tc = child.node.end;\n\t\t\t}\n\t\t});\n\n\t\tcode.remove(c, this.source.length);\n\n\t\treturn {\n\t\t\tcode: code.toString(),\n\t\t\tmap: code.generateMap({\n\t\t\t\tincludeContent: true,\n\t\t\t\tsource: this.filename,\n\t\t\t\tfile\n\t\t\t})\n\t\t};\n\t}\n\n\tvalidate(component: Component) {\n\t\tthis.children.forEach(child => {\n\t\t\tchild.validate(component);\n\t\t});\n\t}\n\n\twarn_on_unused_selectors(component: Component) {\n\t\tconst ignores = !this.ast.css ? [] : extract_ignores_above_position(this.ast.css.start, this.ast.html.children);\n\t\tcomponent.push_ignores(ignores);\n\t\tthis.children.forEach(child => {\n\t\t\tchild.warn_on_unused_selector((selector: Selector) => {\n\t\t\t\tcomponent.warn(selector.node, compiler_warnings.css_unused_selector(this.source.slice(selector.node.start, selector.node.end)));\n\t\t\t});\n\t\t});\n\t\tcomponent.pop_ignores();\n\t}\n}\n","export const test = typeof process !== 'undefined' && process.env.TEST;\n","import EachBlock from '../EachBlock';\nimport ThenBlock from '../ThenBlock';\nimport CatchBlock from '../CatchBlock';\nimport InlineComponent from '../InlineComponent';\nimport Element from '../Element';\nimport SlotTemplate from '../SlotTemplate';\nimport ConstTag from '../ConstTag';\n\ntype NodeWithScope = EachBlock | ThenBlock | CatchBlock | InlineComponent | Element | SlotTemplate | ConstTag;\n\nexport default class TemplateScope {\n\tnames: Set<string>;\n\tdependencies_for_name: Map<string, Set<string>>;\n\towners: Map<string, NodeWithScope> = new Map();\n\tparent?: TemplateScope;\n\n\tconstructor(parent?: TemplateScope) {\n\t\tthis.parent = parent;\n\t\tthis.names = new Set(parent ? parent.names : []);\n\t\tthis.dependencies_for_name = new Map(parent ? parent.dependencies_for_name : []);\n\t}\n\n\tadd(name, dependencies: Set<string>, owner) {\n\t\tthis.names.add(name);\n\t\tthis.dependencies_for_name.set(name, dependencies);\n\t\tthis.owners.set(name, owner);\n\t\treturn this;\n\t}\n\n\tchild() {\n\t\tconst child = new TemplateScope(this);\n\t\treturn child;\n\t}\n\n\tis_top_level(name: string) {\n\t\treturn !this.parent || !this.names.has(name) && this.parent.is_top_level(name);\n\t}\n\n\tget_owner(name: string): NodeWithScope {\n\t\treturn this.owners.get(name) || (this.parent && this.parent.get_owner(name));\n\t}\n\n\tis_let(name: string) {\n\t\tconst owner = this.get_owner(name);\n\t\treturn owner && (owner.type === 'Element' || owner.type === 'InlineComponent' || owner.type === 'SlotTemplate');\n\t}\n\n\tis_await(name: string) {\n\t\tconst owner = this.get_owner(name);\n\t\treturn owner && (owner.type === 'ThenBlock' || owner.type === 'CatchBlock');\n\t}\n\n\tis_const(name: string) {\n\t\tconst owner = this.get_owner(name);\n\t\treturn owner && owner.type === 'ConstTag';\n\t}\n}\n","import Node from './shared/Node';\nimport Component from '../Component';\nimport map_children from './shared/map_children';\nimport Block from '../render_dom/Block';\nimport TemplateScope from './shared/TemplateScope';\nimport { INode } from './interfaces';\nimport { TemplateNode } from '../../interfaces';\n\nexport default class Fragment extends Node {\n\ttype: 'Fragment';\n\tblock: Block;\n\tchildren: INode[];\n\tscope: TemplateScope;\n\n\tconstructor(component: Component, info: TemplateNode) {\n\t\tconst scope = new TemplateScope();\n\t\tsuper(component, null, scope, info);\n\n\t\tthis.scope = scope;\n\t\tthis.children = map_children(component, this, scope, info.children);\n\t}\n}\n","// This file is automatically generated\nexport default new Set([\"HtmlTag\",\"HtmlTagHydration\",\"SvelteComponent\",\"SvelteComponentDev\",\"SvelteComponentTyped\",\"SvelteElement\",\"action_destroyer\",\"add_attribute\",\"add_classes\",\"add_flush_callback\",\"add_location\",\"add_render_callback\",\"add_resize_listener\",\"add_styles\",\"add_transform\",\"afterUpdate\",\"append\",\"append_dev\",\"append_empty_stylesheet\",\"append_hydration\",\"append_hydration_dev\",\"append_styles\",\"assign\",\"attr\",\"attr_dev\",\"attribute_to_object\",\"beforeUpdate\",\"bind\",\"binding_callbacks\",\"blank_object\",\"bubble\",\"check_outros\",\"children\",\"claim_component\",\"claim_element\",\"claim_html_tag\",\"claim_space\",\"claim_svg_element\",\"claim_text\",\"clear_loops\",\"component_subscribe\",\"compute_rest_props\",\"compute_slots\",\"construct_svelte_component\",\"construct_svelte_component_dev\",\"createEventDispatcher\",\"create_animation\",\"create_bidirectional_transition\",\"create_component\",\"create_in_transition\",\"create_out_transition\",\"create_slot\",\"create_ssr_component\",\"current_component\",\"custom_event\",\"dataset_dev\",\"debug\",\"destroy_block\",\"destroy_component\",\"destroy_each\",\"detach\",\"detach_after_dev\",\"detach_before_dev\",\"detach_between_dev\",\"detach_dev\",\"dirty_components\",\"dispatch_dev\",\"each\",\"element\",\"element_is\",\"empty\",\"end_hydrating\",\"escape\",\"escape_attribute_value\",\"escape_object\",\"exclude_internal_props\",\"fix_and_destroy_block\",\"fix_and_outro_and_destroy_block\",\"fix_position\",\"flush\",\"flush_render_callbacks\",\"getAllContexts\",\"getContext\",\"get_all_dirty_from_scope\",\"get_binding_group_value\",\"get_current_component\",\"get_custom_elements_slots\",\"get_root_for_style\",\"get_slot_changes\",\"get_spread_object\",\"get_spread_update\",\"get_store_value\",\"globals\",\"group_outros\",\"handle_promise\",\"hasContext\",\"has_prop\",\"head_selector\",\"identity\",\"init\",\"init_binding_group\",\"init_binding_group_dynamic\",\"insert\",\"insert_dev\",\"insert_hydration\",\"insert_hydration_dev\",\"intros\",\"invalid_attribute_name_character\",\"is_client\",\"is_crossorigin\",\"is_empty\",\"is_function\",\"is_promise\",\"is_void\",\"listen\",\"listen_dev\",\"loop\",\"loop_guard\",\"merge_ssr_styles\",\"missing_component\",\"mount_component\",\"noop\",\"not_equal\",\"now\",\"null_to_empty\",\"object_without_properties\",\"onDestroy\",\"onMount\",\"once\",\"outro_and_destroy_block\",\"prevent_default\",\"prop_dev\",\"query_selector_all\",\"raf\",\"run\",\"run_all\",\"safe_not_equal\",\"schedule_update\",\"select_multiple_value\",\"select_option\",\"select_options\",\"select_value\",\"self\",\"setContext\",\"set_attributes\",\"set_current_component\",\"set_custom_element_data\",\"set_custom_element_data_map\",\"set_data\",\"set_data_dev\",\"set_dynamic_element_data\",\"set_input_type\",\"set_input_value\",\"set_now\",\"set_raf\",\"set_store_value\",\"set_style\",\"set_svg_attributes\",\"space\",\"spread\",\"src_url_equal\",\"start_hydrating\",\"stop_immediate_propagation\",\"stop_propagation\",\"subscribe\",\"svg_element\",\"text\",\"tick\",\"time_ranges_to_array\",\"to_number\",\"toggle_class\",\"transition_in\",\"transition_out\",\"trusted\",\"update_await_block_branch\",\"update_keyed_each\",\"update_slot\",\"update_slot_base\",\"validate_component\",\"validate_dynamic_element\",\"validate_each_argument\",\"validate_each_keys\",\"validate_slots\",\"validate_store\",\"validate_void_dynamic_element\",\"xlink_attr\"]);","import { Node } from 'estree';\nimport is_reference, { NodeWithPropertyDefinition } from 'is-reference';\n\nexport default function is_used_as_reference(\n\tnode: Node,\n\tparent: Node\n): boolean {\n\tif (!is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\n\t\treturn false;\n\t}\n\tif (!parent) {\n\t\treturn true;\n\t}\n\n\t/* eslint-disable no-fallthrough */\n\tswitch (parent.type) {\n\t\t// disregard the `foo` in `const foo = bar`\n\t\tcase 'VariableDeclarator':\n\t\t\treturn node !== parent.id;\n\t\t// disregard the `foo`, `bar` in `function foo(bar){}`\n\t\tcase 'FunctionDeclaration':\n\t\t// disregard the `foo` in `import { foo } from 'foo'`\n\t\tcase 'ImportSpecifier':\n\t\t// disregard the `foo` in `import foo from 'foo'`\n\t\tcase 'ImportDefaultSpecifier':\n\t\t// disregard the `foo` in `import * as foo from 'foo'`\n\t\tcase 'ImportNamespaceSpecifier':\n\t\t// disregard the `foo` in `export { foo }`\n\t\tcase 'ExportSpecifier':\n\t\t\treturn false;\n\t\tdefault:\n\t\t\treturn true;\n\t}\n}\n","import { walk } from 'estree-walker';\nimport { getLocator } from 'locate-character';\nimport Stats from '../Stats';\nimport { reserved, is_valid } from '../utils/names';\nimport globals from '../utils/globals';\nimport { namespaces, valid_namespaces } from '../utils/namespaces';\nimport create_module from './create_module';\nimport {\n\tcreate_scopes,\n\textract_names,\n\tScope,\n\textract_identifiers\n} from './utils/scope';\nimport Stylesheet from './css/Stylesheet';\nimport { test } from '../config';\nimport Fragment from './nodes/Fragment';\nimport internal_exports from './internal_exports';\nimport { Ast, CompileOptions, Var, Warning, CssResult } from '../interfaces';\nimport error from '../utils/error';\nimport get_code_frame from '../utils/get_code_frame';\nimport flatten_reference from './utils/flatten_reference';\nimport is_used_as_reference from './utils/is_used_as_reference';\nimport is_reference, { NodeWithPropertyDefinition } from 'is-reference';\nimport TemplateScope from './nodes/shared/TemplateScope';\nimport fuzzymatch from '../utils/fuzzymatch';\nimport get_object from './utils/get_object';\nimport Slot from './nodes/Slot';\nimport { Node, ImportDeclaration, ExportNamedDeclaration, Identifier, ExpressionStatement, AssignmentExpression, Literal, Property, RestElement, ExportDefaultDeclaration, ExportAllDeclaration, FunctionDeclaration, FunctionExpression } from 'estree';\nimport add_to_set from './utils/add_to_set';\nimport check_graph_for_cycles from './utils/check_graph_for_cycles';\nimport { print, b } from 'code-red';\nimport { is_reserved_keyword } from './utils/reserved_keywords';\nimport { apply_preprocessor_sourcemap } from '../utils/mapped_code';\nimport Element from './nodes/Element';\nimport { DecodedSourceMap, RawSourceMap } from '@ampproject/remapping/dist/types/types';\nimport { clone } from '../utils/clone';\nimport compiler_warnings from './compiler_warnings';\nimport compiler_errors from './compiler_errors';\nimport { extract_ignores_above_position, extract_svelte_ignore_from_comments } from '../utils/extract_svelte_ignore';\nimport check_enable_sourcemap from './utils/check_enable_sourcemap';\nimport is_dynamic from './render_dom/wrappers/shared/is_dynamic';\n\ninterface ComponentOptions {\n\tnamespace?: string;\n\ttag?: string;\n\timmutable?: boolean;\n\taccessors?: boolean;\n\tpreserveWhitespace?: boolean;\n}\n\nconst regex_leading_directory_separator = /^[/\\\\]/;\nconst regex_starts_with_term_export = /^Export/;\nconst regex_contains_term_function = /Function/;\n\nexport default class Component {\n\tstats: Stats;\n\twarnings: Warning[];\n\tignores: Set<string>;\n\tignore_stack: Array<Set<string>> = [];\n\n\tast: Ast;\n\toriginal_ast: Ast;\n\tsource: string;\n\tname: Identifier;\n\tcompile_options: CompileOptions;\n\tfragment: Fragment;\n\tmodule_scope: Scope;\n\tinstance_scope: Scope;\n\tinstance_scope_map: WeakMap<Node, Scope>;\n\n\tcomponent_options: ComponentOptions;\n\tnamespace: string;\n\ttag: string;\n\taccessors: boolean;\n\n\tvars: Var[] = [];\n\tvar_lookup: Map<string, Var> = new Map();\n\n\timports: ImportDeclaration[] = [];\n\texports_from: ExportNamedDeclaration[] = [];\n\tinstance_exports_from: ExportNamedDeclaration[] = [];\n\n\thoistable_nodes: Set<Node> = new Set();\n\tnode_for_declaration: Map<string, Node> = new Map();\n\tpartly_hoisted: Array<(Node | Node[])> = [];\n\tfully_hoisted: Array<(Node | Node[])> = [];\n\treactive_declarations: Array<{\n\t\tassignees: Set<string>;\n\t\tdependencies: Set<string>;\n\t\tnode: Node;\n\t\tdeclaration: Node;\n\t}> = [];\n\treactive_declaration_nodes: Set<Node> = new Set();\n\thas_reactive_assignments = false;\n\tinjected_reactive_declaration_vars: Set<string> = new Set();\n\thelpers: Map<string, Identifier> = new Map();\n\tglobals: Map<string, Identifier> = new Map();\n\n\tindirect_dependencies: Map<string, Set<string>> = new Map();\n\n\tfile: string;\n\tlocate: (c: number) => { line: number; column: number };\n\n\telements: Element[] = [];\n\tstylesheet: Stylesheet;\n\n\taliases: Map<string, Identifier> = new Map();\n\tused_names: Set<string> = new Set();\n\tglobally_used_names: Set<string> = new Set();\n\n\tslots: Map<string, Slot> = new Map();\n\tslot_outlets: Set<string> = new Set();\n\n\tconstructor(\n\t\tast: Ast,\n\t\tsource: string,\n\t\tname: string,\n\t\tcompile_options: CompileOptions,\n\t\tstats: Stats,\n\t\twarnings: Warning[]\n\t) {\n\t\tthis.name = { type: 'Identifier', name };\n\n\t\tthis.stats = stats;\n\t\tthis.warnings = warnings;\n\t\tthis.ast = ast;\n\t\tthis.source = source;\n\t\tthis.compile_options = compile_options;\n\n\t\t// the instance JS gets mutated, so we park\n\t\t// a copy here for later. TODO this feels gross\n\t\tthis.original_ast = clone({\n\t\t\thtml: ast.html,\n\t\t\tcss: ast.css,\n\t\t\tinstance: ast.instance,\n\t\t\tmodule: ast.module\n\t\t});\n\n\t\tthis.file =\n\t\t\tcompile_options.filename &&\n\t\t\t(typeof process !== 'undefined'\n\t\t\t\t? compile_options.filename\n\t\t\t\t\t.replace(process.cwd(), '')\n\t\t\t\t\t.replace(regex_leading_directory_separator, '')\n\t\t\t\t: compile_options.filename);\n\t\tthis.locate = getLocator(this.source, { offsetLine: 1 });\n\n\t\t// styles\n\t\tthis.stylesheet = new Stylesheet({\n\t\t\tsource,\n\t\t\tast,\n\t\t\tfilename: compile_options.filename,\n\t\t\tcomponent_name: name,\n\t\t\tdev: compile_options.dev,\n\t\t\tget_css_hash: compile_options.cssHash\n\t\t});\n\t\tthis.stylesheet.validate(this);\n\n\t\tthis.component_options = process_component_options(\n\t\t\tthis,\n\t\t\tthis.ast.html.children\n\t\t);\n\t\tthis.namespace =\n\t\t\tnamespaces[this.component_options.namespace] ||\n\t\t\tthis.component_options.namespace;\n\n\t\tif (compile_options.customElement) {\n\t\t\tif (\n\t\t\t\tthis.component_options.tag === undefined &&\n\t\t\t\tcompile_options.tag === undefined\n\t\t\t) {\n\t\t\t\tconst svelteOptions = ast.html.children.find(\n\t\t\t\t\tchild => child.name === 'svelte:options'\n\t\t\t\t) || { start: 0, end: 0 };\n\t\t\t\tthis.warn(svelteOptions, compiler_warnings.custom_element_no_tag);\n\t\t\t}\n\t\t\tthis.tag = this.component_options.tag || compile_options.tag;\n\t\t} else {\n\t\t\tthis.tag = this.name.name;\n\t\t}\n\n\t\tthis.walk_module_js();\n\n\t\tthis.push_ignores(this.ast.instance ? extract_ignores_above_position(this.ast.instance.start, this.ast.html.children) : []);\n\t\tthis.walk_instance_js_pre_template();\n\t\tthis.pop_ignores();\n\n\t\tthis.fragment = new Fragment(this, ast.html);\n\t\tthis.name = this.get_unique_name(name);\n\n\t\tthis.push_ignores(this.ast.instance ? extract_ignores_above_position(this.ast.instance.start, this.ast.html.children) : []);\n\t\tthis.walk_instance_js_post_template();\n\t\tthis.pop_ignores();\n\n\t\tthis.elements.forEach(element => this.stylesheet.apply(element));\n\t\tif (!compile_options.customElement) this.stylesheet.reify();\n\t\tthis.stylesheet.warn_on_unused_selectors(this);\n\t}\n\n\tadd_var(node: Node, variable: Var, add_to_lookup = true) {\n\t\tthis.vars.push(variable);\n\n\t\tif (add_to_lookup) {\n\t\t\tif (this.var_lookup.has(variable.name)) {\n\t\t\t\tconst exists_var = this.var_lookup.get(variable.name);\n\t\t\t\tif (exists_var.module && exists_var.imported) {\n\t\t\t\t\tthis.error(node as any, compiler_errors.illegal_variable_declaration);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.var_lookup.set(variable.name, variable);\n\t\t}\n\t}\n\n\tadd_reference(node: Node, name: string) {\n\t\tconst variable = this.var_lookup.get(name);\n\n\t\tif (variable) {\n\t\t\tvariable.referenced = true;\n\t\t} else if (is_reserved_keyword(name)) {\n\t\t\tthis.add_var(node, {\n\t\t\t\tname,\n\t\t\t\tinjected: true,\n\t\t\t\treferenced: true\n\t\t\t});\n\t\t} else if (name[0] === '$') {\n\t\t\tthis.add_var(node, {\n\t\t\t\tname,\n\t\t\t\tinjected: true,\n\t\t\t\treferenced: true,\n\t\t\t\tmutated: true,\n\t\t\t\twritable: true\n\t\t\t});\n\n\t\t\tconst subscribable_name = name.slice(1);\n\n\t\t\tconst variable = this.var_lookup.get(subscribable_name);\n\t\t\tif (variable) {\n\t\t\t\tvariable.referenced = true;\n\t\t\t\tvariable.subscribable = true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.compile_options.varsReport === 'full') {\n\t\t\t\tthis.add_var(node, { name, referenced: true }, false);\n\t\t\t}\n\n\t\t\tthis.used_names.add(name);\n\t\t}\n\t}\n\n\talias(name: string) {\n\t\tif (!this.aliases.has(name)) {\n\t\t\tthis.aliases.set(name, this.get_unique_name(name));\n\t\t}\n\n\t\treturn this.aliases.get(name);\n\t}\n\n\tapply_stylesheet(element: Element) {\n\t\tthis.elements.push(element);\n\t}\n\n\tglobal(name: string) {\n\t\tconst alias = this.alias(name);\n\t\tthis.globals.set(name, alias);\n\t\treturn alias;\n\t}\n\n\tgenerate(result?: { js: Node[]; css: CssResult }) {\n\t\tlet js = null;\n\t\tlet css = null;\n\n\t\tif (result) {\n\t\t\tconst { compile_options, name } = this;\n\t\t\tconst { format = 'esm' } = compile_options;\n\n\t\t\tconst banner = `${this.file ? `${this.file} ` : ''}generated by Svelte v${'__VERSION__'}`;\n\n\t\t\tconst program: any = { type: 'Program', body: result.js };\n\n\t\t\twalk(program, {\n\t\t\t\tenter: (node: Node, parent: Node, key) => {\n\t\t\t\t\tif (node.type === 'Identifier') {\n\t\t\t\t\t\tif (node.name[0] === '@') {\n\t\t\t\t\t\t\tif (node.name[1] === '_') {\n\t\t\t\t\t\t\t\tconst alias = this.global(node.name.slice(2));\n\t\t\t\t\t\t\t\tnode.name = alias.name;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlet name = node.name.slice(1);\n\n\t\t\t\t\t\t\t\tif (compile_options.hydratable) {\n\t\t\t\t\t\t\t\t\tif (internal_exports.has(`${name}_hydration`)) {\n\t\t\t\t\t\t\t\t\t\tname += '_hydration';\n\t\t\t\t\t\t\t\t\t} else if (internal_exports.has(`${name}Hydration`)) {\n\t\t\t\t\t\t\t\t\t\tname += 'Hydration';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (compile_options.dev) {\n\t\t\t\t\t\t\t\t\tif (internal_exports.has(`${name}_dev`)) {\n\t\t\t\t\t\t\t\t\t\tname += '_dev';\n\t\t\t\t\t\t\t\t\t} else if (internal_exports.has(`${name}Dev`)) {\n\t\t\t\t\t\t\t\t\t\tname += 'Dev';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tconst alias = this.alias(name);\n\t\t\t\t\t\t\t\tthis.helpers.set(name, alias);\n\t\t\t\t\t\t\t\tnode.name = alias.name;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (node.name[0] !== '#' && !is_valid(node.name)) {\n\t\t\t\t\t\t\t// this hack allows x`foo.${bar}` where bar could be invalid\n\t\t\t\t\t\t\tconst literal: Literal = { type: 'Literal', value: node.name };\n\n\t\t\t\t\t\t\tif (parent.type === 'Property' && key === 'key') {\n\t\t\t\t\t\t\t\tparent.key = literal;\n\t\t\t\t\t\t\t} else if (parent.type === 'MemberExpression' && key === 'property') {\n\t\t\t\t\t\t\t\tparent.property = literal;\n\t\t\t\t\t\t\t\tparent.computed = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst referenced_globals = Array.from(\n\t\t\t\tthis.globals,\n\t\t\t\t([name, alias]) => name !== alias.name && { name, alias }\n\t\t\t).filter(Boolean);\n\t\t\tif (referenced_globals.length) {\n\t\t\t\tthis.helpers.set('globals', this.alias('globals'));\n\t\t\t}\n\t\t\tconst imported_helpers = Array.from(this.helpers, ([name, alias]) => ({\n\t\t\t\tname,\n\t\t\t\talias\n\t\t\t}));\n\n\t\t\tcreate_module(\n\t\t\t\tprogram,\n\t\t\t\tformat,\n\t\t\t\tname,\n\t\t\t\tbanner,\n\t\t\t\tcompile_options.sveltePath,\n\t\t\t\timported_helpers,\n\t\t\t\treferenced_globals,\n\t\t\t\tthis.imports,\n\t\t\t\tthis.vars\n\t\t\t\t\t.filter(variable => variable.module && variable.export_name)\n\t\t\t\t\t.map(variable => ({\n\t\t\t\t\t\tname: variable.name,\n\t\t\t\t\t\tas: variable.export_name\n\t\t\t\t\t})),\n\t\t\t\tthis.exports_from\n\t\t\t);\n\n\t\t\tcss = compile_options.customElement\n\t\t\t\t? { code: null, map: null }\n\t\t\t\t: result.css;\n\n\t\t\tconst js_sourcemap_enabled = check_enable_sourcemap(compile_options.enableSourcemap, 'js');\n\n\t\t\tif (!js_sourcemap_enabled) {\n\t\t\t\tjs = print(program);\n\t\t\t\tjs.map = null;\n\t\t\t} else {\n\t\t\t\tconst sourcemap_source_filename = get_sourcemap_source_filename(compile_options);\n\n\t\t\t\tjs = print(program, {\n\t\t\t\t\tsourceMapSource: sourcemap_source_filename\n\t\t\t\t});\n\n\t\t\t\tjs.map.sources = [\n\t\t\t\t\tsourcemap_source_filename\n\t\t\t\t];\n\n\t\t\t\tjs.map.sourcesContent = [\n\t\t\t\t\tthis.source\n\t\t\t\t];\n\n\t\t\t\tjs.map = apply_preprocessor_sourcemap(sourcemap_source_filename, js.map, compile_options.sourcemap as (string | RawSourceMap | DecodedSourceMap));\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tjs,\n\t\t\tcss,\n\t\t\tast: this.original_ast,\n\t\t\twarnings: this.warnings,\n\t\t\tvars: this.get_vars_report(),\n\t\t\tstats: this.stats.render()\n\t\t};\n\t}\n\n\tget_unique_name(name: string, scope?: Scope): Identifier {\n\t\tif (test) name = `${name}$`;\n\t\tlet alias = name;\n\t\tfor (\n\t\t\tlet i = 1;\n\t\t\treserved.has(alias) ||\n\t\t\tthis.var_lookup.has(alias) ||\n\t\t\tthis.used_names.has(alias) ||\n\t\t\tthis.globally_used_names.has(alias) ||\n\t\t\t(scope && scope.has(alias));\n\t\t\talias = `${name}_${i++}`\n\t\t);\n\t\tthis.used_names.add(alias);\n\t\treturn { type: 'Identifier', name: alias };\n\t}\n\n\tget_unique_name_maker() {\n\t\tconst local_used_names = new Set();\n\n\t\tfunction add(name: string) {\n\t\t\tlocal_used_names.add(name);\n\t\t}\n\n\t\treserved.forEach(add);\n\t\tinternal_exports.forEach(add);\n\t\tthis.var_lookup.forEach((_value, key) => add(key));\n\n\t\treturn (name: string): Identifier => {\n\t\t\tif (test) name = `${name}$`;\n\t\t\tlet alias = name;\n\t\t\tfor (\n\t\t\t\tlet i = 1;\n\t\t\t\tthis.used_names.has(alias) || local_used_names.has(alias);\n\t\t\t\talias = `${name}_${i++}`\n\t\t\t);\n\t\t\tlocal_used_names.add(alias);\n\t\t\tthis.globally_used_names.add(alias);\n\n\t\t\treturn {\n\t\t\t\ttype: 'Identifier',\n\t\t\t\tname: alias\n\t\t\t};\n\t\t};\n\t}\n\n\tget_vars_report(): Var[] {\n\t\tconst { compile_options, vars } = this;\n\n\t\tconst vars_report = compile_options.varsReport === false\n\t\t\t? []\n\t\t\t: compile_options.varsReport === 'full'\n\t\t\t\t? vars\n\t\t\t\t: vars.filter(v => !v.global && !v.internal);\n\n\t\treturn vars_report.map(v => ({\n\t\t\tname: v.name,\n\t\t\texport_name: v.export_name || null,\n\t\t\tinjected: v.injected || false,\n\t\t\tmodule: v.module || false,\n\t\t\tmutated: v.mutated || false,\n\t\t\treassigned: v.reassigned || false,\n\t\t\treferenced: v.referenced || false,\n\t\t\twritable: v.writable || false,\n\t\t\treferenced_from_script: v.referenced_from_script || false\n\t\t}));\n\t}\n\n\terror(\n\t\tpos: {\n\t\t\tstart: number;\n\t\t\tend: number;\n\t\t},\n\t\te: {\n\t\t\tcode: string;\n\t\t\tmessage: string;\n\t\t}\n\t) {\n\t\tif (this.compile_options.errorMode === 'warn') {\n\t\t\tthis.warn(pos, e);\n\t\t} else {\n\t\t\terror(e.message, {\n\t\t\t\tname: 'ValidationError',\n\t\t\t\tcode: e.code,\n\t\t\t\tsource: this.source,\n\t\t\t\tstart: pos.start,\n\t\t\t\tend: pos.end,\n\t\t\t\tfilename: this.compile_options.filename\n\t\t\t});\n\t\t}\n\t}\n\n\twarn(\n\t\tpos: {\n\t\t\tstart: number;\n\t\t\tend: number;\n\t\t},\n\t\twarning: {\n\t\t\tcode: string;\n\t\t\tmessage: string;\n\t\t}\n\t) {\n\t\tif (this.ignores && this.ignores.has(warning.code)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst start = this.locate(pos.start);\n\t\tconst end = this.locate(pos.end);\n\n\t\tconst frame = get_code_frame(this.source, start.line - 1, start.column);\n\n\t\tthis.warnings.push({\n\t\t\tcode: warning.code,\n\t\t\tmessage: warning.message,\n\t\t\tframe,\n\t\t\tstart,\n\t\t\tend,\n\t\t\tpos: pos.start,\n\t\t\tfilename: this.compile_options.filename,\n\t\t\ttoString: () =>\n\t\t\t\t`${warning.message} (${start.line}:${start.column})\\n${frame}`\n\t\t});\n\t}\n\n\textract_imports(node) {\n\t\tthis.imports.push(node);\n\t}\n\n\textract_exports(node, module_script = false) {\n\t\tconst ignores = extract_svelte_ignore_from_comments(node);\n\t\tif (ignores.length) this.push_ignores(ignores);\n\t\tconst result = this._extract_exports(node, module_script);\n\t\tif (ignores.length) this.pop_ignores();\n\t\treturn result;\n\t}\n\n\tprivate _extract_exports(node: ExportDefaultDeclaration | ExportNamedDeclaration | ExportAllDeclaration, module_script: boolean) {\n\t\tif (node.type === 'ExportDefaultDeclaration') {\n\t\t\treturn this.error(node as any, compiler_errors.default_export);\n\t\t}\n\n\t\tif (node.type === 'ExportNamedDeclaration') {\n\t\t\tif (node.source) {\n\t\t\t\tif (module_script) {\n\t\t\t\t\tthis.exports_from.push(node);\n\t\t\t\t} else {\n\t\t\t\t\tthis.instance_exports_from.push(node);\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tif (node.declaration) {\n\t\t\t\tif (node.declaration.type === 'VariableDeclaration') {\n\t\t\t\t\tnode.declaration.declarations.forEach(declarator => {\n\t\t\t\t\t\textract_names(declarator.id).forEach(name => {\n\t\t\t\t\t\t\tconst variable = this.var_lookup.get(name);\n\t\t\t\t\t\t\tvariable.export_name = name;\n\t\t\t\t\t\t\tif (!module_script && variable.writable && !(variable.referenced || variable.referenced_from_script || variable.subscribable)) {\n\t\t\t\t\t\t\t\tthis.warn(declarator as any, compiler_warnings.unused_export_let(this.name.name, name));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconst { name } = node.declaration.id;\n\n\t\t\t\t\tconst variable = this.var_lookup.get(name);\n\t\t\t\t\tvariable.export_name = name;\n\t\t\t\t}\n\n\t\t\t\treturn node.declaration;\n\t\t\t} else {\n\t\t\t\tnode.specifiers.forEach(specifier => {\n\t\t\t\t\tconst variable = this.var_lookup.get(specifier.local.name);\n\n\t\t\t\t\tif (variable) {\n\t\t\t\t\t\tvariable.export_name = specifier.exported.name;\n\n\t\t\t\t\t\tif (!module_script && variable.writable && !(variable.referenced || variable.referenced_from_script || variable.subscribable)) {\n\t\t\t\t\t\t\tthis.warn(specifier as any, compiler_warnings.unused_export_let(this.name.name, specifier.exported.name));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t}\n\n\textract_javascript(script) {\n\t\tif (!script) return null;\n\n\t\treturn script.content.body.filter(node => {\n\t\t\tif (!node) return false;\n\t\t\tif (this.hoistable_nodes.has(node)) return false;\n\t\t\tif (this.reactive_declaration_nodes.has(node)) return false;\n\t\t\tif (node.type === 'ImportDeclaration') return false;\n\t\t\tif (node.type === 'ExportDeclaration' && node.specifiers.length > 0) return false;\n\t\t\treturn true;\n\t\t});\n\t}\n\n\twalk_module_js() {\n\t\tconst component = this;\n\t\tconst script = this.ast.module;\n\t\tif (!script) return;\n\n\t\twalk(script.content, {\n\t\t\tenter(node: Node) {\n\t\t\t\tif (node.type === 'LabeledStatement' && node.label.name === '$') {\n\t\t\t\t\tcomponent.warn(node as any, compiler_warnings.module_script_reactive_declaration);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tconst { scope, globals } = create_scopes(script.content);\n\t\tthis.module_scope = scope;\n\n\t\tscope.declarations.forEach((node, name) => {\n\t\t\tif (name[0] === '$') {\n\t\t\t\treturn this.error(node as any, compiler_errors.illegal_declaration);\n\t\t\t}\n\n\t\t\tconst writable = node.type === 'VariableDeclaration' && (node.kind === 'var' || node.kind === 'let');\n\t\t\tconst imported = node.type.startsWith('Import');\n\n\t\t\tthis.add_var(node, {\n\t\t\t\tname,\n\t\t\t\tmodule: true,\n\t\t\t\thoistable: true,\n\t\t\t\twritable,\n\t\t\t\timported\n\t\t\t});\n\t\t});\n\n\t\tglobals.forEach((node, name) => {\n\t\t\tif (name[0] === '$') {\n\t\t\t\treturn this.error(node as any, compiler_errors.illegal_subscription);\n\t\t\t} else {\n\t\t\t\tthis.add_var(node, {\n\t\t\t\t\tname,\n\t\t\t\t\tglobal: true,\n\t\t\t\t\thoistable: true\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tconst { body } = script.content;\n\t\tlet i = body.length;\n\t\twhile (--i >= 0) {\n\t\t\tconst node = body[i];\n\t\t\tif (node.type === 'ImportDeclaration') {\n\t\t\t\tthis.extract_imports(node);\n\t\t\t\tbody.splice(i, 1);\n\t\t\t}\n\n\t\t\tif (regex_starts_with_term_export.test(node.type)) {\n\t\t\t\tconst replacement = this.extract_exports(node, true);\n\t\t\t\tif (replacement) {\n\t\t\t\t\tbody[i] = replacement;\n\t\t\t\t} else {\n\t\t\t\t\tbody.splice(i, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\twalk_instance_js_pre_template() {\n\t\tconst script = this.ast.instance;\n\t\tif (!script) return;\n\n\t\t// inject vars for reactive declarations\n\t\tscript.content.body.forEach(node => {\n\t\t\tif (node.type !== 'LabeledStatement') return;\n\t\t\tif (node.body.type !== 'ExpressionStatement') return;\n\n\t\t\tconst { expression } = node.body;\n\t\t\tif (expression.type !== 'AssignmentExpression') return;\n\t\t\tif (expression.left.type === 'MemberExpression') return;\n\n\t\t\textract_names(expression.left).forEach(name => {\n\t\t\t\tif (!this.var_lookup.has(name) && name[0] !== '$') {\n\t\t\t\t\tthis.injected_reactive_declaration_vars.add(name);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tconst { scope: instance_scope, map, globals } = create_scopes(\n\t\t\tscript.content\n\t\t);\n\t\tthis.instance_scope = instance_scope;\n\t\tthis.instance_scope_map = map;\n\n\t\tinstance_scope.declarations.forEach((node, name) => {\n\t\t\tif (name[0] === '$') {\n\t\t\t\treturn this.error(node as any, compiler_errors.illegal_declaration);\n\t\t\t}\n\n\t\t\tconst writable = node.type === 'VariableDeclaration' && (node.kind === 'var' || node.kind === 'let');\n\t\t\tconst imported = node.type.startsWith('Import');\n\n\t\t\tthis.add_var(node, {\n\t\t\t\tname,\n\t\t\t\tinitialised: instance_scope.initialised_declarations.has(name),\n\t\t\t\twritable,\n\t\t\t\timported\n\t\t\t});\n\n\t\t\tthis.node_for_declaration.set(name, node);\n\t\t});\n\n\t\t// NOTE: add store variable first, then only $store value\n\t\t// as `$store` will mark `store` variable as referenced and subscribable\n\t\tconst global_keys = Array.from(globals.keys());\n\t\tconst sorted_globals = [\n\t\t\t...global_keys.filter(key => key[0] !== '$'),\n\t\t\t...global_keys.filter(key => key[0] === '$')\n\t\t];\n\n\t\tsorted_globals.forEach(name => {\n\t\t\tif (this.var_lookup.has(name)) return;\n\t\t\tconst node = globals.get(name);\n\n\t\t\tif (this.injected_reactive_declaration_vars.has(name)) {\n\t\t\t\tthis.add_var(node, {\n\t\t\t\t\tname,\n\t\t\t\t\tinjected: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\treassigned: true,\n\t\t\t\t\tinitialised: true\n\t\t\t\t});\n\t\t\t} else if (is_reserved_keyword(name)) {\n\t\t\t\tthis.add_var(node, {\n\t\t\t\t\tname,\n\t\t\t\t\tinjected: true\n\t\t\t\t});\n\t\t\t} else if (name[0] === '$') {\n\t\t\t\tif (name === '$' || name[1] === '$') {\n\t\t\t\t\treturn this.error(node as any, compiler_errors.illegal_global(name));\n\t\t\t\t}\n\n\t\t\t\tthis.add_var(node, {\n\t\t\t\t\tname,\n\t\t\t\t\tinjected: true,\n\t\t\t\t\tmutated: true,\n\t\t\t\t\twritable: true\n\t\t\t\t});\n\n\t\t\t\tthis.add_reference(node, name.slice(1));\n\n\t\t\t\tconst variable = this.var_lookup.get(name.slice(1));\n\t\t\t\tif (variable) {\n\t\t\t\t\tvariable.subscribable = true;\n\t\t\t\t\tvariable.referenced_from_script = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.add_var(node, {\n\t\t\t\t\tname,\n\t\t\t\t\tglobal: true,\n\t\t\t\t\thoistable: true\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.track_references_and_mutations();\n\t}\n\n\twalk_instance_js_post_template() {\n\t\tconst script = this.ast.instance;\n\t\tif (!script) return;\n\n\t\tthis.post_template_walk();\n\n\t\tthis.hoist_instance_declarations();\n\t\tthis.extract_reactive_declarations();\n\t}\n\n\tpost_template_walk() {\n\t\tconst script = this.ast.instance;\n\t\tif (!script) return;\n\n\t\tconst component = this;\n\t\tconst { content } = script;\n\t\tconst { instance_scope, instance_scope_map: map } = this;\n\n\t\tlet scope = instance_scope;\n\n\t\tconst to_remove = [];\n\t\tconst remove = (parent, prop, index) => {\n\t\t\tto_remove.unshift([parent, prop, index]);\n\t\t};\n\t\tlet scope_updated = false;\n\n\t\tconst current_function_stack = [];\n\t\tlet current_function: FunctionDeclaration | FunctionExpression = null;\n\n\t\twalk(content, {\n\t\t\tenter(node: Node, parent: Node, prop, index) {\n\t\t\t\tif ((node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression')) {\n\t\t\t\t\tcurrent_function_stack.push(current_function = node);\n\t\t\t\t}\n\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = map.get(node);\n\t\t\t\t}\n\n\t\t\t\tlet deep = false;\n\t\t\t\tlet names: string[] = [];\n\n\t\t\t\tif (node.type === 'AssignmentExpression') {\n\t\t\t\t\tif (node.left.type === 'ArrayPattern') {\n\t\t\t\t\t\twalk(node.left, {\n\t\t\t\t\t\t\tenter(node: Node, parent: Node) {\n\t\t\t\t\t\t\t\tif (node.type === 'Identifier' &&\n\t\t\t\t\t\t\t\t\tparent.type !== 'MemberExpression' &&\n\t\t\t\t\t\t\t\t\t(parent.type !== 'AssignmentPattern' || parent.right !== node)) {\n\t\t\t\t\t\t\t\t\t\tnames.push(node.name);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdeep = node.left.type === 'MemberExpression';\n\t\t\t\t\t\tnames = deep\n\t\t\t\t\t\t\t? [get_object(node.left).name]\n\t\t\t\t\t\t\t: extract_names(node.left);\n\t\t\t\t\t}\n\t\t\t\t} else if (node.type === 'UpdateExpression') {\n\t\t\t\t\tdeep = node.argument.type === 'MemberExpression';\n\t\t\t\t\tconst { name } = get_object(node.argument);\n\t\t\t\t\tnames.push(name);\n\t\t\t\t}\n\t\t\t\tif (names.length > 0) {\n\t\t\t\t\tnames.forEach(name => {\n\t\t\t\t\t\tlet current_scope = scope;\n\t\t\t\t\t\tlet declaration;\n\n\t\t\t\t\t\twhile (current_scope) {\n\t\t\t\t\t\t\tif (current_scope.declarations.has(name)) {\n\t\t\t\t\t\t\t\tdeclaration = current_scope.declarations.get(name);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcurrent_scope = current_scope.parent;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (declaration && declaration.kind === 'const' && !deep) {\n\t\t\t\t\t\t\tcomponent.error(node as any, {\n\t\t\t\t\t\t\t\tcode: 'assignment-to-const',\n\t\t\t\t\t\t\t\tmessage: 'You are assigning to a const'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'ImportDeclaration') {\n\t\t\t\t\tcomponent.extract_imports(node);\n\t\t\t\t\t// TODO: to use actual remove\n\t\t\t\t\tremove(parent, prop, index);\n\t\t\t\t\treturn this.skip();\n\t\t\t\t}\n\n\t\t\t\tif (regex_starts_with_term_export.test(node.type)) {\n\t\t\t\t\tconst replacement = component.extract_exports(node);\n\t\t\t\t\tif (replacement) {\n\t\t\t\t\t\tthis.replace(replacement);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// TODO: to use actual remove\n\t\t\t\t\t\tremove(parent, prop, index);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.skip();\n\t\t\t\t}\n\n\t\t\t\tcomponent.warn_on_undefined_store_value_references(node, parent, prop, scope);\n\t\t\t},\n\n\t\t\tleave(node: Node) {\n\t\t\t\tif ((node.type === 'FunctionDeclaration' || node.type === 'FunctionExpression')) {\n\t\t\t\t\tcurrent_function_stack.pop();\n\t\t\t\t\tcurrent_function = current_function_stack[current_function_stack.length - 1];\n\t\t\t\t}\n\n\t\t\t\t// do it on leave, to prevent infinite loop\n\t\t\t\tif (component.compile_options.dev && component.compile_options.loopGuardTimeout > 0 && (!current_function || (!current_function.generator && !current_function.async))) {\n\t\t\t\t\tconst to_replace_for_loop_protect = component.loop_protect(node, scope, component.compile_options.loopGuardTimeout);\n\t\t\t\t\tif (to_replace_for_loop_protect) {\n\t\t\t\t\t\tthis.replace(to_replace_for_loop_protect);\n\t\t\t\t\t\tscope_updated = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = scope.parent;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tfor (const [parent, prop, index] of to_remove) {\n\t\t\tif (parent) {\n\t\t\t\tif (index !== null) {\n\t\t\t\t\tparent[prop].splice(index, 1);\n\t\t\t\t} else {\n\t\t\t\t\tdelete parent[prop];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (scope_updated) {\n\t\t\tconst { scope, map } = create_scopes(script.content);\n\t\t\tthis.instance_scope = scope;\n\t\t\tthis.instance_scope_map = map;\n\t\t}\n\t}\n\n\ttrack_references_and_mutations() {\n\t\tconst script = this.ast.instance;\n\t\tif (!script) return;\n\n\t\tconst component = this;\n\t\tconst { content } = script;\n\t\tconst { instance_scope, module_scope, instance_scope_map: map } = this;\n\n\t\tlet scope = instance_scope;\n\n\t\twalk(content, {\n\t\t\tenter(node: Node, parent: Node) {\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = map.get(node);\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'AssignmentExpression' || node.type === 'UpdateExpression') {\n\t\t\t\t\tconst assignee = node.type === 'AssignmentExpression' ? node.left : node.argument;\n\t\t\t\t\tconst names = extract_names(assignee as Node);\n\n\t\t\t\t\tconst deep = assignee.type === 'MemberExpression';\n\n\t\t\t\t\tnames.forEach(name => {\n\t\t\t\t\t\tconst scope_owner = scope.find_owner(name);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tscope_owner !== null\n\t\t\t\t\t\t\t\t? scope_owner === instance_scope\n\t\t\t\t\t\t\t\t: module_scope && module_scope.has(name)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\n\t\t\t\t\t\t\tvariable[deep ? 'mutated' : 'reassigned'] = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (is_used_as_reference(node, parent)) {\n\t\t\t\t\tconst object = get_object(node);\n\t\t\t\t\tif (scope.find_owner(object.name) === instance_scope) {\n\t\t\t\t\t\tconst variable = component.var_lookup.get(object.name);\n\t\t\t\t\t\tvariable.referenced_from_script = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tleave(node: Node) {\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = scope.parent;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\twarn_on_undefined_store_value_references(node: Node, parent: Node, prop: string | number | symbol, scope: Scope) {\n\t\tif (\n\t\t\tnode.type === 'LabeledStatement' &&\n\t\t\tnode.label.name === '$' &&\n\t\t\tparent.type !== 'Program'\n\t\t) {\n\t\t\tthis.warn(node as any, compiler_warnings.non_top_level_reactive_declaration);\n\t\t}\n\n\t\tif (is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\n\t\t\tconst object = get_object(node);\n\t\t\tconst { name } = object;\n\n\t\t\tif (name[0] === '$') {\n\t\t\t\tif (!scope.has(name)) {\n\t\t\t\t\tthis.warn_if_undefined(name, object, null);\n\t\t\t\t}\n\n\t\t\t\tif (name[1] !== '$' && scope.has(name.slice(1)) && scope.find_owner(name.slice(1)) !== this.instance_scope) {\n\t\t\t\t\tif (!((regex_contains_term_function.test(parent.type) && prop === 'params') || (parent.type === 'VariableDeclarator' && prop === 'id'))) {\n\t\t\t\t\t\treturn this.error(node as any, compiler_errors.contextual_store);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tloop_protect(node, scope: Scope, timeout: number): Node | null {\n\t\tif (node.type === 'WhileStatement' ||\n\t\t\tnode.type === 'ForStatement' ||\n\t\t\tnode.type === 'DoWhileStatement') {\n\t\t\tconst guard = this.get_unique_name('guard', scope);\n\t\t\tthis.used_names.add(guard.name);\n\n\t\t\tconst before = b`const ${guard} = @loop_guard(${timeout})`;\n\t\t\tconst inside = b`${guard}();`;\n\n\t\t\t// wrap expression statement with BlockStatement\n\t\t\tif (node.body.type !== 'BlockStatement') {\n\t\t\t\tnode.body = {\n\t\t\t\t\ttype: 'BlockStatement',\n\t\t\t\t\tbody: [node.body]\n\t\t\t\t};\n\t\t\t}\n\t\t\tnode.body.body.push(inside[0]);\n\n\t\t\treturn {\n\t\t\t\ttype: 'BlockStatement',\n\t\t\t\tbody: [\n\t\t\t\t\tbefore[0],\n\t\t\t\t\tnode\n\t\t\t\t]\n\t\t\t};\n\t\t}\n\t\treturn null;\n\t}\n\n\trewrite_props(get_insert: (variable: Var) => Node[]) {\n\t\tif (!this.ast.instance) return;\n\n\t\tconst component = this;\n\t\tconst { instance_scope, instance_scope_map: map } = this;\n\t\tlet scope = instance_scope;\n\n\t\twalk(this.ast.instance.content, {\n\t\t\tenter(node: Node) {\n\t\t\t\tif (regex_contains_term_function.test(node.type)) {\n\t\t\t\t\treturn this.skip();\n\t\t\t\t}\n\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = map.get(node);\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'ExportNamedDeclaration' && node.declaration) {\n\t\t\t\t\treturn this.replace(node.declaration);\n\t\t\t\t}\n\n\t\t\t\tif (node.type === 'VariableDeclaration') {\n\t\t\t\t\t// NOTE: `var` does not follow block scoping\n\t\t\t\t\tif (node.kind === 'var' || scope === instance_scope) {\n\t\t\t\t\t\tconst inserts = [];\n\t\t\t\t\t\tconst props = [];\n\n\t\t\t\t\t\tfunction add_new_props(exported, local, default_value) {\n\t\t\t\t\t\t\tprops.push({\n\t\t\t\t\t\t\t\ttype: 'Property',\n\t\t\t\t\t\t\t\tmethod: false,\n\t\t\t\t\t\t\t\tshorthand: false,\n\t\t\t\t\t\t\t\tcomputed: false,\n\t\t\t\t\t\t\t\tkind: 'init',\n\t\t\t\t\t\t\t\tkey: exported,\n\t\t\t\t\t\t\t\tvalue: default_value\n\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\ttype: 'AssignmentPattern',\n\t\t\t\t\t\t\t\t\t\tleft: local,\n\t\t\t\t\t\t\t\t\t\tright: default_value\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t: local\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// transform\n\t\t\t\t\t\t// ```\n\t\t\t\t\t\t// export let { x, y = 123 } = OBJ, z = 456\n\t\t\t\t\t\t// ```\n\t\t\t\t\t\t// into\n\t\t\t\t\t\t// ```\n\t\t\t\t\t\t// let { x: x$, y: y$ = 123 } = OBJ;\n\t\t\t\t\t\t// let { x = x$, y = y$, z = 456 } = $$props;\n\t\t\t\t\t\t// ```\n\t\t\t\t\t\tfor (let index = 0; index < node.declarations.length; index++) {\n\t\t\t\t\t\t\tconst declarator = node.declarations[index];\n\t\t\t\t\t\t\tif (declarator.id.type !== 'Identifier') {\n\t\t\t\t\t\t\t\tfunction get_new_name(local) {\n\t\t\t\t\t\t\t\t\tconst variable = component.var_lookup.get(local.name);\n\t\t\t\t\t\t\t\t\tif (variable.subscribable) {\n\t\t\t\t\t\t\t\t\t\tinserts.push(get_insert(variable));\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (variable.export_name && variable.writable) {\n\t\t\t\t\t\t\t\t\t\tconst alias_name = component.get_unique_name(local.name);\n\t\t\t\t\t\t\t\t\t\tadd_new_props({ type: 'Identifier', name: variable.export_name }, local, alias_name);\n\t\t\t\t\t\t\t\t\t\treturn alias_name;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn local;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfunction rename_identifiers(param: Node) {\n\t\t\t\t\t\t\t\t\tswitch (param.type) {\n\t\t\t\t\t\t\t\t\t\tcase 'ObjectPattern': {\n\t\t\t\t\t\t\t\t\t\t\tconst handle_prop = (prop: Property | RestElement) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (prop.type === 'RestElement') {\n\t\t\t\t\t\t\t\t\t\t\t\t\trename_identifiers(prop);\n\t\t\t\t\t\t\t\t\t\t\t\t} else if (prop.value.type === 'Identifier') {\n\t\t\t\t\t\t\t\t\t\t\t\t\tprop.value = get_new_name(prop.value);\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\trename_identifiers(prop.value);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\tparam.properties.forEach(handle_prop);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tcase 'ArrayPattern': {\n\t\t\t\t\t\t\t\t\t\t\tconst handle_element = (element: Node, index: number, array: Node[]) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (element) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (element.type === 'Identifier') {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tarray[index] = get_new_name(element);\n\t\t\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\trename_identifiers(element);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t\t\t\t\tparam.elements.forEach(handle_element);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tcase 'RestElement':\n\t\t\t\t\t\t\t\t\t\t\tparam.argument = get_new_name(param.argument);\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\t\tcase 'AssignmentPattern':\n\t\t\t\t\t\t\t\t\t\t\tif (param.left.type === 'Identifier') {\n\t\t\t\t\t\t\t\t\t\t\t\tparam.left = get_new_name(param.left);\n\t\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t\trename_identifiers(param.left);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\trename_identifiers(declarator.id);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst { name } = declarator.id;\n\t\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\n\t\t\t\t\t\t\t\tconst is_props = variable.export_name && variable.writable;\n\t\t\t\t\t\t\t\tif (is_props) {\n\t\t\t\t\t\t\t\t\tadd_new_props({ type: 'Identifier', name: variable.export_name }, declarator.id, declarator.init);\n\t\t\t\t\t\t\t\t\tnode.declarations.splice(index--, 1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (variable.subscribable && (is_props || declarator.init)) {\n\t\t\t\t\t\t\t\t\tinserts.push(get_insert(variable));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.replace(b`\n\t\t\t\t\t\t\t${node.declarations.length ? node : null}\n\t\t\t\t\t\t\t${ props.length > 0 && b`let { ${props} } = $$props;`}\n\t\t\t\t\t\t\t${inserts}\n\t\t\t\t\t\t` as any);\n\t\t\t\t\t\treturn this.skip();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tleave(node: Node) {\n\t\t\t\tif (map.has(node)) {\n\t\t\t\t\tscope = scope.parent;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\thoist_instance_declarations() {\n\t\t// we can safely hoist variable declarations that are\n\t\t// initialised to literals, and functions that don't\n\t\t// reference instance variables other than other\n\t\t// hoistable functions. TODO others?\n\n\t\tconst {\n\t\t\thoistable_nodes,\n\t\t\tvar_lookup,\n\t\t\tinjected_reactive_declaration_vars,\n\t\t\timports\n\t\t} = this;\n\n\t\tconst top_level_function_declarations = new Map();\n\n\t\tconst { body } = this.ast.instance.content;\n\n\t\tfor (let i = 0; i < body.length; i += 1) {\n\t\t\tconst node = body[i];\n\n\t\t\tif (node.type === 'VariableDeclaration') {\n\t\t\t\tconst all_hoistable = node.declarations.every(d => {\n\t\t\t\t\tif (!d.init) return false;\n\t\t\t\t\tif (d.init.type !== 'Literal') return false;\n\n\t\t\t\t\t// everything except const values can be changed by e.g. svelte devtools\n\t\t\t\t\t// which means we can't hoist it\n\t\t\t\t\tif (node.kind !== 'const' && this.compile_options.dev) return false;\n\n\t\t\t\t\tconst { name } = d.id as Identifier;\n\n\t\t\t\t\tconst v = this.var_lookup.get(name);\n\t\t\t\t\tif (v.reassigned) return false;\n\t\t\t\t\tif (v.export_name) return false;\n\n\t\t\t\t\tif (this.var_lookup.get(name).reassigned) return false;\n\t\t\t\t\tif (\n\t\t\t\t\t\tthis.vars.find(\n\t\t\t\t\t\t\tvariable => variable.name === name && variable.module\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn true;\n\t\t\t\t});\n\n\t\t\t\tif (all_hoistable) {\n\t\t\t\t\tnode.declarations.forEach(d => {\n\t\t\t\t\t\tconst variable = this.var_lookup.get((d.id as Identifier).name);\n\t\t\t\t\t\tvariable.hoistable = true;\n\t\t\t\t\t});\n\n\t\t\t\t\thoistable_nodes.add(node);\n\n\t\t\t\t\tbody.splice(i--, 1);\n\t\t\t\t\tthis.fully_hoisted.push(node);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tnode.type === 'ExportNamedDeclaration' &&\n\t\t\t\tnode.declaration &&\n\t\t\t\tnode.declaration.type === 'FunctionDeclaration'\n\t\t\t) {\n\t\t\t\ttop_level_function_declarations.set(node.declaration.id.name, node);\n\t\t\t}\n\n\t\t\tif (node.type === 'FunctionDeclaration') {\n\t\t\t\ttop_level_function_declarations.set(node.id.name, node);\n\t\t\t}\n\t\t}\n\n\t\tconst checked = new Set();\n\t\tconst walking = new Set();\n\n\t\tconst is_hoistable = fn_declaration => {\n\t\t\tif (fn_declaration.type === 'ExportNamedDeclaration') {\n\t\t\t\tfn_declaration = fn_declaration.declaration;\n\t\t\t}\n\n\t\t\tconst instance_scope = this.instance_scope;\n\t\t\tlet scope = this.instance_scope;\n\t\t\tconst map = this.instance_scope_map;\n\n\t\t\tlet hoistable = true;\n\n\t\t\t// handle cycles\n\t\t\twalking.add(fn_declaration);\n\n\t\t\twalk(fn_declaration, {\n\t\t\t\tenter(node: Node, parent) {\n\t\t\t\t\tif (!hoistable) return this.skip();\n\n\t\t\t\t\tif (map.has(node)) {\n\t\t\t\t\t\tscope = map.get(node);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\n\t\t\t\t\t\tconst { name } = flatten_reference(node);\n\t\t\t\t\t\tconst owner = scope.find_owner(name);\n\n\t\t\t\t\t\tif (injected_reactive_declaration_vars.has(name)) {\n\t\t\t\t\t\t\thoistable = false;\n\t\t\t\t\t\t} else if (name[0] === '$' && !owner) {\n\t\t\t\t\t\t\thoistable = false;\n\t\t\t\t\t\t} else if (owner === instance_scope) {\n\t\t\t\t\t\t\tconst variable = var_lookup.get(name);\n\n\t\t\t\t\t\t\tif (variable.reassigned || variable.mutated) hoistable = false;\n\n\t\t\t\t\t\t\tif (name === fn_declaration.id.name) return;\n\n\t\t\t\t\t\t\tif (variable.hoistable) return;\n\n\t\t\t\t\t\t\tif (top_level_function_declarations.has(name)) {\n\t\t\t\t\t\t\t\tconst other_declaration = top_level_function_declarations.get(\n\t\t\t\t\t\t\t\t\tname\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\tif (walking.has(other_declaration)) {\n\t\t\t\t\t\t\t\t\thoistable = false;\n\t\t\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\t\t\tother_declaration.type === 'ExportNamedDeclaration' &&\n\t\t\t\t\t\t\t\t\twalking.has(other_declaration.declaration)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\thoistable = false;\n\t\t\t\t\t\t\t\t} else if (!is_hoistable(other_declaration)) {\n\t\t\t\t\t\t\t\t\thoistable = false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\thoistable = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.skip();\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tleave(node: Node) {\n\t\t\t\t\tif (map.has(node)) {\n\t\t\t\t\t\tscope = scope.parent;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tchecked.add(fn_declaration);\n\t\t\twalking.delete(fn_declaration);\n\n\t\t\treturn hoistable;\n\t\t};\n\n\t\tfor (const [name, node] of top_level_function_declarations) {\n\t\t\tif (is_hoistable(node)) {\n\t\t\t\tconst variable = this.var_lookup.get(name);\n\t\t\t\tvariable.hoistable = true;\n\t\t\t\thoistable_nodes.add(node);\n\n\t\t\t\tconst i = body.indexOf(node);\n\t\t\t\tbody.splice(i, 1);\n\t\t\t\tthis.fully_hoisted.push(node);\n\t\t\t}\n\t\t}\n\n\t\tfor (const { specifiers } of imports) {\n\t\t\tfor (const specifier of specifiers) {\n\t\t\t\tconst variable = var_lookup.get(specifier.local.name);\n\n\t\t\t\tif (!variable.mutated || variable.subscribable) {\n\t\t\t\t\tvariable.hoistable = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\textract_reactive_declarations() {\n\t\tconst component = this;\n\n\t\tconst unsorted_reactive_declarations: Array<{\n\t\t\tassignees: Set<string>;\n\t\t\tdependencies: Set<string>;\n\t\t\tnode: Node;\n\t\t\tdeclaration: Node;\n\t\t}> = [];\n\n\t\tthis.ast.instance.content.body.forEach(node => {\n\t\t\tconst ignores = extract_svelte_ignore_from_comments(node);\n\t\t\tif (ignores.length) this.push_ignores(ignores);\n\n\t\t\tif (node.type === 'LabeledStatement' && node.label.name === '$') {\n\t\t\t\tthis.reactive_declaration_nodes.add(node);\n\n\t\t\t\tconst assignees = new Set<string>();\n\t\t\t\tconst assignee_nodes = new Set();\n\t\t\t\tconst dependencies = new Set<string>();\n\t\t\t\tconst module_dependencies = new Set<string>();\n\n\t\t\t\tlet scope = this.instance_scope;\n\t\t\t\tconst map = this.instance_scope_map;\n\n\t\t\t\twalk(node.body, {\n\t\t\t\t\tenter(node: Node, parent) {\n\t\t\t\t\t\tif (map.has(node)) {\n\t\t\t\t\t\t\tscope = map.get(node);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (node.type === 'AssignmentExpression') {\n\t\t\t\t\t\t\tconst left = get_object(node.left);\n\n\t\t\t\t\t\t\textract_identifiers(left).forEach(node => {\n\t\t\t\t\t\t\t\tassignee_nodes.add(node);\n\t\t\t\t\t\t\t\tassignees.add(node.name);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (node.operator !== '=') {\n\t\t\t\t\t\t\t\tdependencies.add(left.name);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (node.type === 'UpdateExpression') {\n\t\t\t\t\t\t\tconst identifier = get_object(node.argument);\n\t\t\t\t\t\t\tassignees.add(identifier.name);\n\t\t\t\t\t\t} else if (is_reference(node as NodeWithPropertyDefinition, parent as NodeWithPropertyDefinition)) {\n\t\t\t\t\t\t\tconst identifier = get_object(node);\n\t\t\t\t\t\t\tif (!assignee_nodes.has(identifier)) {\n\t\t\t\t\t\t\t\tconst { name } = identifier;\n\t\t\t\t\t\t\t\tconst owner = scope.find_owner(name);\n\t\t\t\t\t\t\t\tconst variable = component.var_lookup.get(name);\n\t\t\t\t\t\t\t\tlet should_add_as_dependency = true;\n\n\t\t\t\t\t\t\t\tif (variable) {\n\t\t\t\t\t\t\t\t\tvariable.is_reactive_dependency = true;\n\t\t\t\t\t\t\t\t\tif (variable.module && variable.writable) {\n\t\t\t\t\t\t\t\t\t\tshould_add_as_dependency = false;\n\t\t\t\t\t\t\t\t\t\tmodule_dependencies.add(name);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tshould_add_as_dependency &&\n\t\t\t\t\t\t\t\t\t(!owner || owner === component.instance_scope) &&\n\t\t\t\t\t\t\t\t\t(name[0] === '$' || variable)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tdependencies.add(name);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.skip();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\tleave(node: Node) {\n\t\t\t\t\t\tif (map.has(node)) {\n\t\t\t\t\t\t\tscope = scope.parent;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (module_dependencies.size > 0 && dependencies.size === 0) {\n\t\t\t\t\tcomponent.warn(node.body as any, compiler_warnings.module_script_variable_reactive_declaration(Array.from(module_dependencies)));\n\t\t\t\t}\n\n\t\t\t\tconst { expression } = node.body as ExpressionStatement;\n\t\t\t\tconst declaration = expression && (expression as AssignmentExpression).left;\n\n\t\t\t\tconst is_dependency_static = Array.from(dependencies).every(\n\t\t\t\t\tdependency => dependency !== '$$props' && dependency !== '$$restProps' && !is_dynamic(this.var_lookup.get(dependency))\n\t\t\t\t);\n\n\t\t\t\tif (is_dependency_static) {\n\t\t\t\t\tassignees.forEach(assignee => {\n\t\t\t\t\t\tconst variable = component.var_lookup.get(assignee);\n\t\t\t\t\t\tif (variable) {\n\t\t\t\t\t\t\tvariable.is_reactive_static = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tunsorted_reactive_declarations.push({\n\t\t\t\t\tassignees,\n\t\t\t\t\tdependencies,\n\t\t\t\t\tnode,\n\t\t\t\t\tdeclaration\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (ignores.length) this.pop_ignores();\n\t\t});\n\n\t\tconst lookup = new Map();\n\n\t\tunsorted_reactive_declarations.forEach(declaration => {\n\t\t\tdeclaration.assignees.forEach(name => {\n\t\t\t\tif (!lookup.has(name)) {\n\t\t\t\t\tlookup.set(name, []);\n\t\t\t\t}\n\n\t\t\t\t// TODO warn or error if a name is assigned to in\n\t\t\t\t// multiple reactive declarations?\n\t\t\t\tlookup.get(name).push(declaration);\n\t\t\t});\n\t\t});\n\n\t\tconst cycle = check_graph_for_cycles(unsorted_reactive_declarations.reduce((acc, declaration) => {\n\t\t\tdeclaration.assignees.forEach(v => {\n\t\t\t\tdeclaration.dependencies.forEach(w => {\n\t\t\t\t\tif (!declaration.assignees.has(w)) {\n\t\t\t\t\t\tacc.push([v, w]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn acc;\n\t\t}, []));\n\n\t\tif (cycle && cycle.length) {\n\t\t\tconst declarationList = lookup.get(cycle[0]);\n\t\t\tconst declaration = declarationList[0];\n\t\t\treturn this.error(declaration.node, compiler_errors.cyclical_reactive_declaration(cycle));\n\t\t}\n\n\t\tconst add_declaration = declaration => {\n\t\t\tif (this.reactive_declarations.includes(declaration)) return;\n\n\t\t\tdeclaration.dependencies.forEach(name => {\n\t\t\t\tif (declaration.assignees.has(name)) return;\n\t\t\t\tconst earlier_declarations = lookup.get(name);\n\t\t\t\tif (earlier_declarations) {\n\t\t\t\t\tearlier_declarations.forEach(add_declaration);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.reactive_declarations.push(declaration);\n\t\t};\n\n\t\tunsorted_reactive_declarations.forEach(add_declaration);\n\t}\n\n\twarn_if_undefined(name: string, node, template_scope: TemplateScope) {\n\t\tif (name[0] === '$') {\n\t\t\tif (name === '$' || name[1] === '$' && !is_reserved_keyword(name)) {\n\t\t\t\treturn this.error(node, compiler_errors.illegal_global(name));\n\t\t\t}\n\n\t\t\tthis.has_reactive_assignments = true; // TODO does this belong here?\n\n\t\t\tif (is_reserved_keyword(name)) return;\n\n\t\t\tname = name.slice(1);\n\t\t}\n\n\t\tif (this.var_lookup.has(name) && !this.var_lookup.get(name).global) return;\n\t\tif (template_scope && template_scope.names.has(name)) return;\n\t\tif (globals.has(name) && node.type !== 'InlineComponent') return;\n\n\t\tthis.warn(node, compiler_warnings.missing_declaration(name, !!this.ast.instance));\n\t}\n\n\tpush_ignores(ignores) {\n\t\tthis.ignores = new Set(this.ignores || []);\n\t\tadd_to_set(this.ignores, ignores);\n\t\tthis.ignore_stack.push(this.ignores);\n\t}\n\n\tpop_ignores() {\n\t\tthis.ignore_stack.pop();\n\t\tthis.ignores = this.ignore_stack[this.ignore_stack.length - 1];\n\t}\n}\n\nconst regex_valid_tag_name = /^[a-zA-Z][a-zA-Z0-9]*-[a-zA-Z0-9-]+$/;\n\nfunction process_component_options(component: Component, nodes) {\n\tconst component_options: ComponentOptions = {\n\t\timmutable: component.compile_options.immutable || false,\n\t\taccessors:\n\t\t\t'accessors' in component.compile_options\n\t\t\t\t? component.compile_options.accessors\n\t\t\t\t: !!component.compile_options.customElement,\n\t\tpreserveWhitespace: !!component.compile_options.preserveWhitespace,\n\t\tnamespace: component.compile_options.namespace\n\t};\n\n\tconst node = nodes.find(node => node.name === 'svelte:options');\n\n\tfunction get_value(attribute, { code, message }) {\n\t\tconst { value } = attribute;\n\t\tconst chunk = value[0];\n\n\t\tif (!chunk) return true;\n\n\t\tif (value.length > 1) {\n\t\t\treturn component.error(attribute, { code, message });\n\t\t}\n\n\t\tif (chunk.type === 'Text') return chunk.data;\n\n\t\tif (chunk.expression.type !== 'Literal') {\n\t\t\treturn component.error(attribute, { code, message });\n\t\t}\n\n\t\treturn chunk.expression.value;\n\t}\n\n\tif (node) {\n\t\tnode.attributes.forEach(attribute => {\n\t\t\tif (attribute.type === 'Attribute') {\n\t\t\t\tconst { name } = attribute;\n\n\t\t\t\tswitch (name) {\n\t\t\t\t\tcase 'tag': {\n\t\t\t\t\t\tconst tag = get_value(attribute, compiler_errors.invalid_tag_attribute);\n\n\t\t\t\t\t\tif (typeof tag !== 'string' && tag !== null) {\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_tag_attribute);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (tag && !regex_valid_tag_name.test(tag)) {\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_tag_property);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (tag && !component.compile_options.customElement) {\n\t\t\t\t\t\t\tcomponent.warn(attribute, compiler_warnings.missing_custom_element_compile_options);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcomponent_options.tag = tag;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase 'namespace': {\n\t\t\t\t\t\tconst ns = get_value(attribute, compiler_errors.invalid_namespace_attribute);\n\n\t\t\t\t\t\tif (typeof ns !== 'string') {\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_namespace_attribute);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (valid_namespaces.indexOf(ns) === -1) {\n\t\t\t\t\t\t\tconst match = fuzzymatch(ns, valid_namespaces);\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_namespace_property(ns, match));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcomponent_options.namespace = ns;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tcase 'accessors':\n\t\t\t\t\tcase 'immutable':\n\t\t\t\t\tcase 'preserveWhitespace': {\n\t\t\t\t\t\tconst value = get_value(attribute, compiler_errors.invalid_attribute_value(name));\n\n\t\t\t\t\t\tif (typeof value !== 'boolean') {\n\t\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_attribute_value(name));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcomponent_options[name] = value;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn component.error(attribute, compiler_errors.invalid_options_attribute_unknown);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn component.error(attribute, compiler_errors.invalid_options_attribute);\n\t\t\t}\n\t\t});\n\t}\n\n\treturn component_options;\n}\n\nfunction get_relative_path(from: string, to: string) {\n\tconst from_parts = from.split(/[/\\\\]/);\n\tconst to_parts = to.split(/[/\\\\]/);\n\n\tfrom_parts.pop(); // get dirname\n\n\twhile (from_parts[0] === to_parts[0]) {\n\t\tfrom_parts.shift();\n\t\tto_parts.shift();\n\t}\n\n\tif (from_parts.length) {\n\t\tlet i = from_parts.length;\n\t\twhile (i--) from_parts[i] = '..';\n\t}\n\n\treturn from_parts.concat(to_parts).join('/');\n}\n\nfunction get_basename(filename: string) {\n\treturn filename.split(/[/\\\\]/).pop();\n}\n\nfunction get_sourcemap_source_filename(compile_options: CompileOptions) {\n\tif (!compile_options.filename) return null;\n\n\treturn compile_options.outputFilename\n\t\t? get_relative_path(compile_options.outputFilename, compile_options.filename)\n\t\t: get_basename(compile_options.filename);\n}\n","const regex_percentage_characters = /%/g;\nconst regex_file_ending = /\\.[^.]+$/;\nconst regex_repeated_invalid_variable_identifier_characters = /[^a-zA-Z_$0-9]+/g;\nconst regex_starts_with_digit = /^(\\d)/;\nconst regex_may_starts_or_ends_with_underscore = /^_?(.+?)_?$/;\n\nexport default function get_name_from_filename(filename: string) {\n\tif (!filename) return null;\n\n\tconst parts = filename.split(/[/\\\\]/).map(encodeURI);\n\n\tif (parts.length > 1) {\n\t\tconst index_match = parts[parts.length - 1].match(/^index(\\.\\w+)/);\n\t\tif (index_match) {\n\t\t\tparts.pop();\n\t\t\tparts[parts.length - 1] += index_match[1];\n\t\t}\n\t}\n\n\tconst base = parts\n\t\t.pop()\n\t\t.replace(regex_percentage_characters, 'u')\n\t\t.replace(regex_file_ending, '')\n\t\t.replace(regex_repeated_invalid_variable_identifier_characters, '_')\n\t\t.replace(regex_may_starts_or_ends_with_underscore, '$1')\n\t\t.replace(regex_starts_with_digit, '_$1');\n\n\tif (!base) {\n\t\tthrow new Error(`Could not derive component name from file ${filename}`);\n\t}\n\n\treturn base[0].toUpperCase() + base.slice(1);\n}\n","import Stats from '../Stats';\nimport parse from '../parse/index';\nimport render_dom from './render_dom/index';\nimport render_ssr from './render_ssr/index';\nimport { CompileOptions, Warning } from '../interfaces';\nimport Component from './Component';\nimport fuzzymatch from '../utils/fuzzymatch';\nimport get_name_from_filename from './utils/get_name_from_filename';\nimport { valid_namespaces } from '../utils/namespaces';\n\nconst valid_options = [\n\t'format',\n\t'name',\n\t'filename',\n\t'sourcemap',\n\t'enableSourcemap',\n\t'generate',\n\t'errorMode',\n\t'varsReport',\n\t'outputFilename',\n\t'cssOutputFilename',\n\t'sveltePath',\n\t'dev',\n\t'accessors',\n\t'immutable',\n\t'hydratable',\n\t'legacy',\n\t'customElement',\n\t'namespace',\n\t'tag',\n\t'css',\n\t'loopGuardTimeout',\n\t'preserveComments',\n\t'preserveWhitespace',\n\t'cssHash'\n];\n\nconst valid_css_values = [\n\ttrue,\n\tfalse,\n\t'injected',\n\t'external',\n\t'none'\n];\n\nconst regex_valid_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;\nconst regex_starts_with_lowercase_character = /^[a-z]/;\n\nfunction validate_options(options: CompileOptions, warnings: Warning[]) {\n\tconst { name, filename, loopGuardTimeout, dev, namespace, css } = options;\n\n\tObject.keys(options).forEach(key => {\n\t\tif (!valid_options.includes(key)) {\n\t\t\tconst match = fuzzymatch(key, valid_options);\n\t\t\tlet message = `Unrecognized option '${key}'`;\n\t\t\tif (match) message += ` (did you mean '${match}'?)`;\n\n\t\t\tthrow new Error(message);\n\t\t}\n\t});\n\n\tif (name && !regex_valid_identifier.test(name)) {\n\t\tthrow new Error(`options.name must be a valid identifier (got '${name}')`);\n\t}\n\n\tif (name && regex_starts_with_lowercase_character.test(name)) {\n\t\tconst message = 'options.name should be capitalised';\n\t\twarnings.push({\n\t\t\tcode: 'options-lowercase-name',\n\t\t\tmessage,\n\t\t\tfilename,\n\t\t\ttoString: () => message\n\t\t});\n\t}\n\n\tif (loopGuardTimeout && !dev) {\n\t\tconst message = 'options.loopGuardTimeout is for options.dev = true only';\n\t\twarnings.push({\n\t\t\tcode: 'options-loop-guard-timeout',\n\t\t\tmessage,\n\t\t\tfilename,\n\t\t\ttoString: () => message\n\t\t});\n\t}\n\n\tif (valid_css_values.indexOf(css) === -1) {\n\t\tthrow new Error(`options.css must be true, false, 'injected', 'external', or 'none' (got '${css}')`);\n\t}\n\n\tif (css === true || css === false) {\n\t\toptions.css = css === true ? 'injected' : 'external';\n\t\t// possibly show this warning once we decided how Svelte 4 looks like\n\t\t// const message = `options.css as a boolean is deprecated. Use '${options.css}' instead of ${css}.`;\n\t\t// warnings.push({\n\t\t// \tcode: 'options-css-boolean-deprecated',\n\t\t// \tmessage,\n\t\t// \tfilename,\n\t\t// \ttoString: () => message\n\t\t// });\n\t\t// }\n\t}\n\n\tif (namespace && valid_namespaces.indexOf(namespace) === -1) {\n\t\tconst match = fuzzymatch(namespace, valid_namespaces);\n\t\tif (match) {\n\t\t\tthrow new Error(`Invalid namespace '${namespace}' (did you mean '${match}'?)`);\n\t\t} else {\n\t\t\tthrow new Error(`Invalid namespace '${namespace}'`);\n\t\t}\n\t}\n}\n\nexport default function compile(source: string, options: CompileOptions = {}) {\n\toptions = Object.assign({ generate: 'dom', dev: false, enableSourcemap: true, css: 'injected' }, options);\n\n\tconst stats = new Stats();\n\tconst warnings = [];\n\n\tvalidate_options(options, warnings);\n\n\tstats.start('parse');\n\tconst ast = parse(source, options);\n\tstats.stop('parse');\n\n\tstats.start('create component');\n\tconst component = new Component(\n\t\tast,\n\t\tsource,\n\t\toptions.name || get_name_from_filename(options.filename) || 'Component',\n\t\toptions,\n\t\tstats,\n\t\twarnings\n\t);\n\tstats.stop('create component');\n\n\tconst result = options.generate === false\n\t\t? null\n\t\t: options.generate === 'ssr'\n\t\t\t? render_ssr(component, options)\n\t\t\t: render_dom(component, options);\n\n\treturn component.generate(result);\n}\n","import { decode as decode_mappings } from '@jridgewell/sourcemap-codec';\nimport { Processed } from './types';\n\n/**\n * Import decoded sourcemap from mozilla/source-map/SourceMapGenerator\n * Forked from source-map/lib/source-map-generator.js\n * from methods _serializeMappings and toJSON.\n * We cannot use source-map.d.ts types, because we access hidden properties.\n */\nfunction decoded_sourcemap_from_generator(generator: any) {\n\tlet previous_generated_line = 1;\n\tconst converted_mappings = [[]];\n\tlet result_line;\n\tlet result_segment;\n\tlet mapping;\n\n\tconst source_idx = generator._sources.toArray()\n\t\t.reduce((acc, val, idx) => (acc[val] = idx, acc), {});\n\n\tconst name_idx = generator._names.toArray()\n\t\t.reduce((acc, val, idx) => (acc[val] = idx, acc), {});\n\n\tconst mappings = generator._mappings.toArray();\n\tresult_line = converted_mappings[0];\n\n\tfor (let i = 0, len = mappings.length; i < len; i++) {\n\t\tmapping = mappings[i];\n\n\t\tif (mapping.generatedLine > previous_generated_line) {\n\t\t\twhile (mapping.generatedLine > previous_generated_line) {\n\t\t\t\tconverted_mappings.push([]);\n\t\t\t\tprevious_generated_line++;\n\t\t\t}\n\t\t\tresult_line = converted_mappings[mapping.generatedLine - 1]; // line is one-based\n\t\t} else if (i > 0) {\n\t\t\tconst previous_mapping = mappings[i - 1];\n\t\t\tif (\n\t\t\t\t// sorted by selectivity\n\t\t\t\tmapping.generatedColumn === previous_mapping.generatedColumn &&\n\t\t\t\tmapping.originalColumn === previous_mapping.originalColumn &&\n\t\t\t\tmapping.name === previous_mapping.name &&\n\t\t\t\tmapping.generatedLine === previous_mapping.generatedLine &&\n\t\t\t\tmapping.originalLine === previous_mapping.originalLine &&\n\t\t\t\tmapping.source === previous_mapping.source\n\t\t) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tresult_line.push([mapping.generatedColumn]);\n\t\tresult_segment = result_line[result_line.length - 1];\n\n\t\tif (mapping.source != null) {\n\t\t\tresult_segment.push(...[\n\t\t\t\tsource_idx[mapping.source],\n\t\t\t\tmapping.originalLine - 1, // line is one-based\n\t\t\t\tmapping.originalColumn\n\t\t\t]);\n\t\t\tif (mapping.name != null) {\n\t\t\t\tresult_segment.push(name_idx[mapping.name]);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst map = {\n\t\tversion: generator._version,\n\t\tsources: generator._sources.toArray(),\n\t\tnames: generator._names.toArray(),\n\t\tmappings: converted_mappings\n\t};\n\tif (generator._file != null) {\n\t\t(map as any).file = generator._file;\n\t}\n\t// not needed: map.sourcesContent and map.sourceRoot\n\treturn map;\n}\n\nexport function decode_map(processed: Processed) {\n\tlet decoded_map = typeof processed.map === 'string' ? JSON.parse(processed.map) : processed.map;\n\tif (typeof(decoded_map.mappings) === 'string') {\n\t\tdecoded_map.mappings = decode_mappings(decoded_map.mappings);\n\t}\n\tif ((decoded_map as any)._mappings && decoded_map.constructor.name === 'SourceMapGenerator') {\n\t\t// import decoded sourcemap from mozilla/source-map/SourceMapGenerator\n\t\tdecoded_map = decoded_sourcemap_from_generator(decoded_map);\n\t}\n\n\treturn decoded_map;\n}\n","import { MappedCode } from '../utils/mapped_code';\nimport { Source } from './types';\n\ninterface Replacement {\n\toffset: number;\n\tlength: number;\n\treplacement: MappedCode;\n}\n\nexport function slice_source(\n\tcode_slice: string,\n\toffset: number,\n\t{ file_basename, filename, get_location }: Source\n): Source {\n\treturn {\n\t\tsource: code_slice,\n\t\tget_location: (index: number) => get_location(index + offset),\n\t\tfile_basename,\n\t\tfilename\n\t};\n}\n\nfunction calculate_replacements(\n\tre: RegExp,\n\tget_replacement: (...match: any[]) => Promise<MappedCode>,\n\tsource: string\n) {\n\tconst replacements: Array<Promise<Replacement>> = [];\n\n\tsource.replace(re, (...match) => {\n\t\treplacements.push(\n\t\t\tget_replacement(...match).then(\n\t\t\t\treplacement => {\n\t\t\t\t\tconst matched_string = match[0];\n\t\t\t\t\tconst offset = match[match.length - 2];\n\n\t\t\t\t\treturn ({ offset, length: matched_string.length, replacement });\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\t\treturn '';\n\t});\n\n\treturn Promise.all(replacements);\n}\n\nfunction perform_replacements(\n\treplacements: Replacement[],\n\tsource: Source\n): MappedCode {\n\tconst out = new MappedCode();\n\tlet last_end = 0;\n\n\tfor (const { offset, length, replacement } of replacements) {\n\t\tconst unchanged_prefix = MappedCode.from_source(\n\t\t\tslice_source(source.source.slice(last_end, offset), last_end, source)\n\t\t);\n\t\tout.concat(unchanged_prefix).concat(replacement);\n\t\tlast_end = offset + length;\n\t}\n\n\tconst unchanged_suffix = MappedCode.from_source(slice_source(source.source.slice(last_end), last_end, source));\n\n\treturn out.concat(unchanged_suffix);\n}\n\nexport async function replace_in_code(\n\tregex: RegExp,\n\tget_replacement: (...match: any[]) => Promise<MappedCode>,\n\tlocation: Source\n): Promise<MappedCode> {\n\tconst replacements = await calculate_replacements(regex, get_replacement, location.source);\n\n\treturn perform_replacements(replacements, location);\n}\n","import { RawSourceMap, DecodedSourceMap } from '@ampproject/remapping/dist/types/types';\nimport { getLocator } from 'locate-character';\nimport { MappedCode, SourceLocation, parse_attached_sourcemap, sourcemap_add_offset, combine_sourcemaps } from '../utils/mapped_code';\nimport { decode_map } from './decode_sourcemap';\nimport { replace_in_code, slice_source } from './replace_in_code';\nimport { MarkupPreprocessor, Source, Preprocessor, PreprocessorGroup, Processed } from './types';\nimport { regex_whitespaces } from '../utils/patterns';\n\nexport * from './types';\n\ninterface SourceUpdate {\n\tstring?: string;\n\tmap?: DecodedSourceMap;\n\tdependencies?: string[];\n}\n\nconst regex_filepath_separator = /[/\\\\]/;\n\nfunction get_file_basename(filename: string) {\n\treturn filename.split(regex_filepath_separator).pop();\n}\n\n/**\n * Represents intermediate states of the preprocessing.\n */\nclass PreprocessResult implements Source {\n\t// sourcemap_list is sorted in reverse order from last map (index 0) to first map (index -1)\n\t// so we use sourcemap_list.unshift() to add new maps\n\t// https://github.com/ampproject/remapping#multiple-transformations-of-a-file\n\tsourcemap_list: Array<DecodedSourceMap | RawSourceMap> = [];\n\tdependencies: string[] = [];\n\tfile_basename: string;\n\n\tget_location: ReturnType<typeof getLocator>;\n\n\tconstructor(public source: string, public filename?: string) {\n\t\tthis.update_source({ string: source });\n\n\t\t// preprocess source must be relative to itself or equal null\n\t\tthis.file_basename = filename == null ? null : get_file_basename(filename);\n\t}\n\n\tupdate_source({ string: source, map, dependencies }: SourceUpdate) {\n\t\tif (source != null) {\n\t\t\tthis.source = source;\n\t\t\tthis.get_location = getLocator(source);\n\t\t}\n\n\t\tif (map) {\n\t\t\tthis.sourcemap_list.unshift(map);\n\t\t}\n\n\t\tif (dependencies) {\n\t\t\tthis.dependencies.push(...dependencies);\n\t\t}\n\t}\n\n\tto_processed(): Processed {\n\t\t// Combine all the source maps for each preprocessor function into one\n\t\tconst map: RawSourceMap = combine_sourcemaps(this.file_basename, this.sourcemap_list);\n\n\t\treturn {\n\t\t\t// TODO return separated output, in future version where svelte.compile supports it:\n\t\t\t// style: { code: styleCode, map: styleMap },\n\t\t\t// script { code: scriptCode, map: scriptMap },\n\t\t\t// markup { code: markupCode, map: markupMap },\n\n\t\t\tcode: this.source,\n\t\t\tdependencies: [...new Set(this.dependencies)],\n\t\t\tmap: map as object,\n\t\t\ttoString: () => this.source\n\t\t};\n\t}\n}\n\n/**\n * Convert preprocessor output for the tag content into MappedCode\n */\nfunction processed_content_to_code(processed: Processed, location: SourceLocation, file_basename: string): MappedCode {\n\t// Convert the preprocessed code and its sourcemap to a MappedCode\n\tlet decoded_map: DecodedSourceMap;\n\tif (processed.map) {\n\t\tdecoded_map = decode_map(processed);\n\n\t\t// decoded map may not have sources for empty maps like `{ mappings: '' }`\n\t\tif (decoded_map.sources) {\n\t\t\t// offset only segments pointing at original component source\n\t\t\tconst source_index = decoded_map.sources.indexOf(file_basename);\n\t\t\tif (source_index !== -1) {\n\t\t\t\tsourcemap_add_offset(decoded_map, location, source_index);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn MappedCode.from_processed(processed.code, decoded_map);\n}\n\n/**\n * Given the whole tag including content, return a `MappedCode`\n * representing the tag content replaced with `processed`.\n */\nfunction processed_tag_to_code(\n\tprocessed: Processed,\n\ttag_name: 'style' | 'script',\n\tattributes: string,\n\tsource: Source\n): MappedCode {\n\tconst { file_basename, get_location } = source;\n\n\tconst build_mapped_code = (code: string, offset: number) =>\n\t\tMappedCode.from_source(slice_source(code, offset, source));\n\n\tconst tag_open = `<${tag_name}${attributes || ''}>`;\n\tconst tag_close = `</${tag_name}>`;\n\n\tconst tag_open_code = build_mapped_code(tag_open, 0);\n\tconst tag_close_code = build_mapped_code(tag_close, tag_open.length + source.source.length);\n\n\tparse_attached_sourcemap(processed, tag_name);\n\n\tconst content_code = processed_content_to_code(processed, get_location(tag_open.length), file_basename);\n\n\treturn tag_open_code.concat(content_code).concat(tag_close_code);\n}\n\nconst regex_quoted_value = /^['\"](.*)['\"]$/;\n\nfunction parse_tag_attributes(str: string) {\n\t// note: won't work with attribute values containing spaces.\n\treturn str\n\t\t.split(regex_whitespaces)\n\t\t.filter(Boolean)\n\t\t.reduce((attrs, attr) => {\n\t\t\tconst i = attr.indexOf('=');\n\t\t\tconst [key, value] = i > 0 ? [attr.slice(0, i), attr.slice(i + 1)] : [attr];\n\t\t\tconst [, unquoted] = (value && value.match(regex_quoted_value)) || [];\n\n\t\t\treturn { ...attrs, [key]: unquoted ?? value ?? true };\n\t\t}, {});\n}\n\n\nconst regex_style_tags = /<!--[^]*?-->|<style(\\s[^]*?)?(?:>([^]*?)<\\/style>|\\/>)/gi;\nconst regex_script_tags = /<!--[^]*?-->|<script(\\s[^]*?)?(?:>([^]*?)<\\/script>|\\/>)/gi;\n\n/**\n * Calculate the updates required to process all instances of the specified tag.\n */\nasync function process_tag(\n\ttag_name: 'style' | 'script',\n\tpreprocessor: Preprocessor,\n\tsource: Source\n): Promise<SourceUpdate> {\n\tconst { filename, source: markup } = source;\n\tconst tag_regex = tag_name === 'style' ? regex_style_tags : regex_script_tags;\n\n\tconst dependencies: string[] = [];\n\n\tasync function process_single_tag(\n\t\ttag_with_content: string,\n\t\tattributes = '',\n\t\tcontent = '',\n\t\ttag_offset: number\n\t): Promise<MappedCode> {\n\t\tconst no_change = () => MappedCode.from_source(slice_source(tag_with_content, tag_offset, source));\n\n\t\tif (!attributes && !content) return no_change();\n\n\t\tconst processed = await preprocessor({\n\t\t\tcontent: content || '',\n\t\t\tattributes: parse_tag_attributes(attributes || ''),\n\t\t\tmarkup,\n\t\t\tfilename\n\t\t});\n\n\t\tif (!processed) return no_change();\n\t\tif (processed.dependencies) dependencies.push(...processed.dependencies);\n\t\tif (!processed.map && processed.code === content) return no_change();\n\n\t\treturn processed_tag_to_code(processed, tag_name, attributes, slice_source(content, tag_offset, source));\n\t}\n\n\tconst { string, map } = await replace_in_code(tag_regex, process_single_tag, source);\n\n\treturn { string, map, dependencies };\n}\n\nasync function process_markup(process: MarkupPreprocessor, source: Source) {\n\tconst processed = await process({\n\t\tcontent: source.source,\n\t\tfilename: source.filename\n\t});\n\n\tif (processed) {\n\t\treturn {\n\t\t\tstring: processed.code,\n\t\t\tmap: processed.map\n\t\t\t\t? // TODO: can we use decode_sourcemap?\n\t\t\t\ttypeof processed.map === 'string'\n\t\t\t\t\t? JSON.parse(processed.map)\n\t\t\t\t\t: processed.map\n\t\t\t\t: undefined,\n\t\t\tdependencies: processed.dependencies\n\t\t};\n\t} else {\n\t\treturn {};\n\t}\n}\n\nexport default async function preprocess(\n\tsource: string,\n\tpreprocessor: PreprocessorGroup | PreprocessorGroup[],\n\toptions?: { filename?: string }\n): Promise<Processed> {\n\tconst filename: string | undefined = (options && options.filename) || (preprocessor as any).filename; // legacy\n\n\tconst preprocessors = preprocessor ? (Array.isArray(preprocessor) ? preprocessor : [preprocessor]) : [];\n\n\tconst markup = preprocessors.map(p => p.markup).filter(Boolean);\n\tconst script = preprocessors.map(p => p.script).filter(Boolean);\n\tconst style = preprocessors.map(p => p.style).filter(Boolean);\n\n\tconst result = new PreprocessResult(source, filename);\n\n\t// TODO keep track: what preprocessor generated what sourcemap?\n\t// to make debugging easier = detect low-resolution sourcemaps in fn combine_mappings\n\n\tfor (const process of markup) {\n\t\tresult.update_source(await process_markup(process, result));\n\t}\n\n\tfor (const process of script) {\n\t\tresult.update_source(await process_tag('script', process, result));\n\t}\n\n\tfor (const preprocess of style) {\n\t\tresult.update_source(await process_tag('style', preprocess, result));\n\t}\n\n\treturn result.to_processed();\n}\n","export { default as compile } from './compile/index';\nexport { default as parse } from './parse/index';\nexport { default as preprocess } from './preprocess/index';\nexport { walk } from 'estree-walker';\n\nexport const VERSION = '__VERSION__';\n// additional exports added through generate-type-definitions.js\n"],"names":["hasOwnProperty","list","Scope","btoa","perisopic.analyze","join","flatten","acorn.parse","acorn.parseExpressionAt","parse","parseExpressionAt","code_red.parse","code_red.parseExpressionAt","SyntaxError","Function","String","Number","EOF","isHexDigit","isIdentifierStart","FunctionToken","TYPE.Dimension","TYPE.Percentage","TYPE.Number","TYPE.Function","TYPE.Ident","TYPE.String","TYPE.BadString","TYPE.Url","TYPE.BadUrl","TYPE.WhiteSpace","TYPE.Hash","TYPE.Delim","TYPE.LeftParenthesis","TYPE.RightParenthesis","TYPE.Comma","TYPE.CDC","TYPE.Comment","TYPE.Colon","TYPE.Semicolon","TYPE.CDO","TYPE.AtKeyword","TYPE.LeftSquareBracket","TYPE.RightSquareBracket","TYPE.LeftCurlyBracket","TYPE.RightCurlyBracket","NumberToken","NUMBERSIGN","StringToken","getNode","ASTERISK","PLUSSIGN","SOLIDUS","readSequence","selector","HYPHENMINUS","N","consumeRaw","VERTICALLINE","TILDE","AMPERSAND","FULLSTOP","GREATERTHANSIGN","EXCLAMATIONMARK","DOLLARSIGN","consumeNumber","decode","REVERSE_SOLIDUS","url.decode","string.decode","Parser","Node","to_string","regex_contains_term_function_expression","Comment","svg","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","require$$39","require$$40","require$$41","require$$42","require$$43","require$$44","require$$45","require$$46","require$$47","require$$48","require$$49","require$$50","require$$51","require$$52","require$$53","require$$54","require$$55","require$$56","require$$57","require$$58","require$$59","require$$60","require$$61","require$$62","require$$63","require$$64","require$$65","require$$66","require$$67","require$$68","require$$69","require$$70","require$$71","require$$72","require$$73","require$$74","require$$75","require$$76","require$$77","require$$78","require$$79","require$$80","require$$81","toStr","keysShim","isArgs","hasSymbols","hasSymbolSham","slice","implementation","bind","undefined","hasOwn","GetIntrinsic","hasPropertyDescriptors","keys","polyfill","getPolyfill","define","hasToStringTag","has","$exec","$toString","gOPD","supportsDescriptors","$gOPD","defineProperty","getProto","shim","toString","isNumber","isBoolean","isBigInt","$Map","$Set","exported","$mapHas","$setHas","isWeakMap","isWeakSet","fnToStr","global","g","$indexOf","forEach","typedArrays","$slice","toStrTags","getPrototypeOf","tryTypedArrays","isArgumentsObject","util","$replace","$concat","isEnumerable","utilInspect","isSymbol","isArray","indexOf","isElement","isMap","isSet","isString","$TypeError","$WeakMap","inspect","defineProperties","gPO","$mapGet","getIterator","assign","is","isBuffer","isArguments","flags","isDate","getSideChannel","require$$82","require$$83","require$$84","require$$85","require$$86","require$$87","require$$88","require$$89","require$$90","require$$91","require$$92","require$$93","require$$94","require$$95","require$$96","require$$97","require$$98","require$$99","require$$100","require$$101","require$$102","require$$103","require$$104","require$$105","require$$106","require$$107","require$$108","require$$109","require$$110","require$$111","require$$112","require$$113","require$$114","require$$115","require$$116","require$$117","require$$118","require$$119","require$$120","require$$121","require$$122","require$$123","roles_map","elementRoles","AXObjects","elementAXObjects","AXObjectRoles","roles","valid_modifiers","aria","get_namespace","push_array","EventHandler","regex_non_whitespace_characters","regex_minus_sign","regex_invalid_variable_identifier_characters","is_dynamic","Tag","Binding","AwaitBlock","Body","DebugTag","EachBlock","Element","Head","IfBlock","InlineComponent","KeyBlock","MustacheTag","RawMustacheTag","Slot","SlotTemplate","Text","Title","Window","chars","i","encode","encodeInteger","Url","get_const_tags","trimmable_at","handlers","Renderer","wrappers","SourceMap","getLocator","Block","render_ssr","render_dom","decode_mappings"],"mappings":"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AE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;;;AAG7hC,IAAI,0BAA0B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,C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mB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,GAAG;IACxB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,KAAK;IACzB,kBAAkB,EAAE,KAAK;IACzB,kBAAkB,EAAE,KAAK;IACzB,kBAAkB,EAAE,KAAK;IACzB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,GAAG;IACtB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,iBAAiB,EAAE,IAAI;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,IAAI;IACtB,gBAAgB,EAAE,KAAK;IACvB,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,eAAe,EAAE,IAAI;IACrB,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KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,EAAE;IACb,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,KAAK;IAChB,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,I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"} |