@snowcone-app/canvas 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +70 -0
- package/README.md +357 -0
- package/dist/CanvasStateV1-D5GzvmnY.cjs +65 -0
- package/dist/CanvasStateV1-D5GzvmnY.cjs.map +1 -0
- package/dist/CanvasStateV1-ejb4d_LM.js +3692 -0
- package/dist/CanvasStateV1-ejb4d_LM.js.map +1 -0
- package/dist/ElementFactory-B7UOaJSD.cjs +23865 -0
- package/dist/ElementFactory-B7UOaJSD.cjs.map +1 -0
- package/dist/ElementFactory-uJTXU-nP.js +29615 -0
- package/dist/ElementFactory-uJTXU-nP.js.map +1 -0
- package/dist/HybridHistoryManager-BV6XV0nD.js +8048 -0
- package/dist/HybridHistoryManager-BV6XV0nD.js.map +1 -0
- package/dist/HybridHistoryManager-BXD93pp8.cjs +8 -0
- package/dist/HybridHistoryManager-BXD93pp8.cjs.map +1 -0
- package/dist/ImportManager-BYwuK6n4.cjs +2 -0
- package/dist/ImportManager-BYwuK6n4.cjs.map +1 -0
- package/dist/ImportManager-CxiaRg1N.js +222 -0
- package/dist/ImportManager-CxiaRg1N.js.map +1 -0
- package/dist/ThemeContext-4mJ_y0Me.cjs +2 -0
- package/dist/ThemeContext-4mJ_y0Me.cjs.map +1 -0
- package/dist/ThemeContext-H0Z-MqqR.js +1077 -0
- package/dist/ThemeContext-H0Z-MqqR.js.map +1 -0
- package/dist/advanced.d.ts +2 -0
- package/dist/advanced.js +48 -0
- package/dist/advanced.js.map +1 -0
- package/dist/advanced.mjs +15679 -0
- package/dist/advanced.mjs.map +1 -0
- package/dist/api/advanced.d.ts +110 -0
- package/dist/api/internals.d.ts +39 -0
- package/dist/api/stable.d.ts +44 -0
- package/dist/api/testing.d.ts +25 -0
- package/dist/browser-module-D0gHY9rY.cjs +9 -0
- package/dist/browser-module-D0gHY9rY.cjs.map +1 -0
- package/dist/browser-module-DFvKXBUE.js +15474 -0
- package/dist/browser-module-DFvKXBUE.js.map +1 -0
- package/dist/components/ArtboardDistressPanel.d.ts +7 -0
- package/dist/components/ArtboardImageMaskPanel.d.ts +7 -0
- package/dist/components/ArtboardPropertiesToolbar.d.ts +19 -0
- package/dist/components/ArtboardToolbar.d.ts +10 -0
- package/dist/components/BackButton.d.ts +7 -0
- package/dist/components/BackgroundPickerDropdown.d.ts +11 -0
- package/dist/components/BackgroundSwitcher.d.ts +7 -0
- package/dist/components/CanvasA11yFallback.d.ts +62 -0
- package/dist/components/CanvasEditor/CanvasRendererComponent.d.ts +51 -0
- package/dist/components/CanvasEditor/handlers/cropModeHandlers.d.ts +114 -0
- package/dist/components/CanvasEditor/handlers/groupChildHandlers.d.ts +65 -0
- package/dist/components/CanvasEditor/handlers/index.d.ts +10 -0
- package/dist/components/CanvasEditor/handlers/multiSelectionHandlers.d.ts +86 -0
- package/dist/components/CanvasEditor/hooks/buildSpreadClipShape.d.ts +20 -0
- package/dist/components/CanvasEditor/hooks/index.d.ts +24 -0
- package/dist/components/CanvasEditor/hooks/useActiveChild.d.ts +23 -0
- package/dist/components/CanvasEditor/hooks/useAnimatedFocusRect.d.ts +17 -0
- package/dist/components/CanvasEditor/hooks/useCanvasInteraction.d.ts +284 -0
- package/dist/components/CanvasEditor/hooks/useCanvasLayout.d.ts +50 -0
- package/dist/components/CanvasEditor/hooks/useCanvasRenderLoop.d.ts +140 -0
- package/dist/components/CanvasEditor/hooks/useCropMode.d.ts +4 -0
- package/dist/components/CanvasEditor/hooks/useHoverState.d.ts +9 -0
- package/dist/components/CanvasEditor/hooks/useInteractionState.d.ts +23 -0
- package/dist/components/CanvasEditor/hooks/useKeyboardHandlers.d.ts +16 -0
- package/dist/components/CanvasEditor/hooks/useMarqueeSelection.d.ts +22 -0
- package/dist/components/CanvasEditor/hooks/useMultiSelection.d.ts +5 -0
- package/dist/components/CanvasEditor/hooks/usePenTool.d.ts +10 -0
- package/dist/components/CanvasEditor/hooks/useRenderState.d.ts +31 -0
- package/dist/components/CanvasEditor/hooks/useSnapAndSpacing.d.ts +42 -0
- package/dist/components/CanvasEditor/hooks/useTextEditing.d.ts +56 -0
- package/dist/components/CanvasEditor/hooks/useTextEditingHandlers.d.ts +75 -0
- package/dist/components/CanvasEditor/renderers/hoverRenderer.d.ts +12 -0
- package/dist/components/CanvasEditor/renderers/index.d.ts +10 -0
- package/dist/components/CanvasEditor/renderers/marqueeRenderer.d.ts +21 -0
- package/dist/components/CanvasEditor/renderers/multiSelectionRenderer.d.ts +52 -0
- package/dist/components/CanvasEditor/renderers/renderingConstants.d.ts +59 -0
- package/dist/components/CanvasEditor/types/index.d.ts +11 -0
- package/dist/components/CanvasEditor.d.ts +102 -0
- package/dist/components/ColorPickerDropdown.d.ts +29 -0
- package/dist/components/CompositingPanel.d.ts +8 -0
- package/dist/components/ContextualToolbars.d.ts +150 -0
- package/dist/components/CropPanel.d.ts +20 -0
- package/dist/components/DistressPanel.d.ts +7 -0
- package/dist/components/DocsPage.d.ts +6 -0
- package/dist/components/Drawer.d.ts +39 -0
- package/dist/components/EffectsPanel.d.ts +14 -0
- package/dist/components/ExportTestPanel.d.ts +16 -0
- package/dist/components/FontBrowserDrawer.d.ts +20 -0
- package/dist/components/FontSizeDropdown.d.ts +12 -0
- package/dist/components/GlyphBrowserDrawer.d.ts +13 -0
- package/dist/components/GlyphPicker.d.ts +14 -0
- package/dist/components/IconMatchTest.d.ts +3 -0
- package/dist/components/IconSizeTest.d.ts +3 -0
- package/dist/components/ImageBrowserDrawer.d.ts +27 -0
- package/dist/components/ImageToolbar.d.ts +47 -0
- package/dist/components/LayerEffects.d.ts +11 -0
- package/dist/components/LayerLeadingChip.d.ts +9 -0
- package/dist/components/LayersPanel.d.ts +30 -0
- package/dist/components/MaskItem.d.ts +12 -0
- package/dist/components/MasksPanel.d.ts +7 -0
- package/dist/components/MonotypeDemoPage.d.ts +2 -0
- package/dist/components/MoreMenu.d.ts +15 -0
- package/dist/components/OpenTypeFeaturesPanel.d.ts +12 -0
- package/dist/components/PathToolbar.d.ts +10 -0
- package/dist/components/PenToolDemo.d.ts +3 -0
- package/dist/components/ProgressiveBlur.d.ts +25 -0
- package/dist/components/RotationHandle.d.ts +47 -0
- package/dist/components/SaveLoadMenu.d.ts +15 -0
- package/dist/components/ShapeToolbar.d.ts +71 -0
- package/dist/components/ShapeTypeDrawer.d.ts +10 -0
- package/dist/components/StrokePanel.d.ts +7 -0
- package/dist/components/TailwindDemo.d.ts +3 -0
- package/dist/components/TextEffectsDropdown.d.ts +14 -0
- package/dist/components/TextToolbar.d.ts +47 -0
- package/dist/components/TextTypeDrawer.d.ts +8 -0
- package/dist/components/ThemeToggle.d.ts +2 -0
- package/dist/components/TransformControlPanel.d.ts +12 -0
- package/dist/components/VisualGuideOverlay.d.ts +156 -0
- package/dist/components/embed/ArtboardTabs.d.ts +74 -0
- package/dist/components/embed/Canvas.d.ts +72 -0
- package/dist/components/embed/EffectsPanel.d.ts +76 -0
- package/dist/components/embed/ErrorBoundary.d.ts +34 -0
- package/dist/components/embed/ExportPanel.d.ts +51 -0
- package/dist/components/embed/GlyphPanel.d.ts +70 -0
- package/dist/components/embed/ImagePanel.d.ts +58 -0
- package/dist/components/embed/LayersPanel.d.ts +13 -0
- package/dist/components/embed/LoadingStates.d.ts +32 -0
- package/dist/components/embed/MenuButton.d.ts +47 -0
- package/dist/components/embed/SnowconeCanvas.d.ts +844 -0
- package/dist/components/embed/ZoomControls.d.ts +16 -0
- package/dist/components/embed/index.d.ts +129 -0
- package/dist/components/embed/primitives/index.d.ts +42 -0
- package/dist/components/embed/ui/index.d.ts +52 -0
- package/dist/components/embed/utils/index.d.ts +31 -0
- package/dist/components/embedded/ArtboardEmbed.d.ts +70 -0
- package/dist/components/embedded/MerchifyThemeWrapper.d.ts +30 -0
- package/dist/components/embedded/ProductPreviewCard.d.ts +8 -0
- package/dist/components/embedded/index.d.ts +7 -0
- package/dist/components/primitives/ButtonGroup.d.ts +27 -0
- package/dist/components/primitives/ControlGroup.d.ts +15 -0
- package/dist/components/primitives/Dropdown.d.ts +27 -0
- package/dist/components/primitives/DropdownMenu.d.ts +9 -0
- package/dist/components/primitives/MenuItem.d.ts +13 -0
- package/dist/components/primitives/Panel.d.ts +25 -0
- package/dist/components/primitives/SecondaryToolbar.d.ts +9 -0
- package/dist/components/primitives/Switch.d.ts +10 -0
- package/dist/components/primitives/Toggle.d.ts +17 -0
- package/dist/components/primitives/index.d.ts +22 -0
- package/dist/components/stories/utils/MockEditorProvider.d.ts +32 -0
- package/dist/components/stories/utils/QACanvasCard.d.ts +41 -0
- package/dist/components/stories/utils/VisualQACard.d.ts +24 -0
- package/dist/components/stories/utils/element-factories.d.ts +188 -0
- package/dist/components/stories/utils/spec-to-elements.d.ts +74 -0
- package/dist/components/stories/utils/themeDecorator.d.ts +45 -0
- package/dist/components/stories/utils/unified-test-cases.d.ts +27 -0
- package/dist/components/text-toolbar/BoldButton.d.ts +5 -0
- package/dist/components/text-toolbar/FontColorButton.d.ts +6 -0
- package/dist/components/text-toolbar/FontSizeGroup.d.ts +5 -0
- package/dist/components/text-toolbar/ItalicButton.d.ts +5 -0
- package/dist/components/text-toolbar/TextAlignButton.d.ts +5 -0
- package/dist/components/text-toolbar/TextMoreMenu.d.ts +7 -0
- package/dist/components/text-toolbar/UnderlineButton.d.ts +5 -0
- package/dist/components/text-toolbar/UppercaseButton.d.ts +5 -0
- package/dist/components/text-toolbar/index.d.ts +25 -0
- package/dist/components/toolbars/EmbeddedToolbarLayout.d.ts +49 -0
- package/dist/components/toolbars/ExpandedPanelIcon.d.ts +13 -0
- package/dist/components/toolbars/FloatingPanels.d.ts +23 -0
- package/dist/components/toolbars/GroupElementToolbar.d.ts +35 -0
- package/dist/components/toolbars/SecondaryPanels.d.ts +125 -0
- package/dist/components/toolbars/index.d.ts +18 -0
- package/dist/components/toolbars/shared/ColorPanelWrapper.d.ts +9 -0
- package/dist/components/toolbars/shared/SecondaryPanelWrapper.d.ts +9 -0
- package/dist/components/ui/PresetCarousel.d.ts +21 -0
- package/dist/components/ui/SecondaryPanel.d.ts +28 -0
- package/dist/components/ui/SliderRow.d.ts +30 -0
- package/dist/components/ui/collapsed-toolbar-header.d.ts +14 -0
- package/dist/components/ui/custom-icons.d.ts +25 -0
- package/dist/components/ui/icons.d.ts +100 -0
- package/dist/components/ui/index.d.ts +48 -0
- package/dist/components/ui/normalized-icon.d.ts +63 -0
- package/dist/components/ui/toolbar-button.d.ts +24 -0
- package/dist/compose-Bo108juW.cjs +33 -0
- package/dist/compose-Bo108juW.cjs.map +1 -0
- package/dist/compose-DQ1FZS3O.js +7690 -0
- package/dist/compose-DQ1FZS3O.js.map +1 -0
- package/dist/constants.d.ts +121 -0
- package/dist/contexts/CommandContext.d.ts +87 -0
- package/dist/contexts/EditorContext.d.ts +190 -0
- package/dist/contexts/ElementsContext.d.ts +104 -0
- package/dist/contexts/HistoryContext.d.ts +60 -0
- package/dist/contexts/KitContext.d.ts +50 -0
- package/dist/contexts/SelectionContext.d.ts +51 -0
- package/dist/contexts/ThemeContext.d.ts +55 -0
- package/dist/contexts/ToolStateContext.d.ts +60 -0
- package/dist/contexts/ViewportContext.d.ts +87 -0
- package/dist/core/AlignmentSnapSystem.d.ts +270 -0
- package/dist/core/ArtboardElement.d.ts +106 -0
- package/dist/core/ArtboardManager.d.ts +130 -0
- package/dist/core/ArtboardRenderer.d.ts +97 -0
- package/dist/core/BaseElement.d.ts +94 -0
- package/dist/core/CanvasRenderer.d.ts +237 -0
- package/dist/core/CommandHistory.d.ts +173 -0
- package/dist/core/CoordinateTransform.d.ts +69 -0
- package/dist/core/CropModeController.d.ts +90 -0
- package/dist/core/EditModeRenderer.d.ts +51 -0
- package/dist/core/ElementFactory.d.ts +73 -0
- package/dist/core/ElementStore.d.ts +69 -0
- package/dist/core/EventBus.d.ts +163 -0
- package/dist/core/GeometryUtils.d.ts +247 -0
- package/dist/core/GroupElement.d.ts +134 -0
- package/dist/core/HoverRenderer.d.ts +103 -0
- package/dist/core/HybridHistoryManager.d.ts +137 -0
- package/dist/core/ImageCache.d.ts +63 -0
- package/dist/core/ImageElement.d.ts +226 -0
- package/dist/core/ImageLoadEvents.d.ts +23 -0
- package/dist/core/InteractionFeedbackRenderer.d.ts +15 -0
- package/dist/core/InteractionStateMachine.d.ts +199 -0
- package/dist/core/PathElement.d.ts +84 -0
- package/dist/core/PenToolManager.d.ts +112 -0
- package/dist/core/PinchHandler.d.ts +32 -0
- package/dist/core/ResizeHandler.d.ts +51 -0
- package/dist/core/ResizePipeline.d.ts +83 -0
- package/dist/core/ResizeUtils.d.ts +17 -0
- package/dist/core/RotationAnchorResolver.d.ts +60 -0
- package/dist/core/RotationUtils.d.ts +28 -0
- package/dist/core/SelectionRenderer.d.ts +24 -0
- package/dist/core/ShapeElement.d.ts +121 -0
- package/dist/core/SpacingSystem.d.ts +73 -0
- package/dist/core/SpatialGrid.d.ts +53 -0
- package/dist/core/TextElement.d.ts +80 -0
- package/dist/core/TextMetrics.d.ts +117 -0
- package/dist/core/Transform.d.ts +158 -0
- package/dist/core/TransformConverter.d.ts +16 -0
- package/dist/core/TransformHandles.d.ts +55 -0
- package/dist/core/artboardReducer.d.ts +46 -0
- package/dist/effects/DistressGenerator.d.ts +26 -0
- package/dist/effects/DistressTextureCache.d.ts +49 -0
- package/dist/effects/distress-presets.d.ts +86 -0
- package/dist/effects/distress-textures.d.ts +34 -0
- package/dist/effects/distress-utils.d.ts +39 -0
- package/dist/effects/mask-presets.d.ts +36 -0
- package/dist/fonts/google-fonts.d.ts +48 -0
- package/dist/google-fonts.json +1 -0
- package/dist/hooks/index.d.ts +42 -0
- package/dist/hooks/useArtboards.d.ts +71 -0
- package/dist/hooks/useAutoExport.d.ts +66 -0
- package/dist/hooks/useBreakpoint.d.ts +53 -0
- package/dist/hooks/useCanvasEvents.d.ts +8 -0
- package/dist/hooks/useCanvasReady.d.ts +22 -0
- package/dist/hooks/useClickOutside.d.ts +3 -0
- package/dist/hooks/useCommandHistory.d.ts +39 -0
- package/dist/hooks/useCommands.d.ts +47 -0
- package/dist/hooks/useContentReady.d.ts +18 -0
- package/dist/hooks/useElementById.d.ts +20 -0
- package/dist/hooks/useElementByName.d.ts +10 -0
- package/dist/hooks/useElementProperties.d.ts +29 -0
- package/dist/hooks/useExport.d.ts +89 -0
- package/dist/hooks/useImageBinding.d.ts +34 -0
- package/dist/hooks/useKeyboardShortcuts.d.ts +13 -0
- package/dist/hooks/useLayerDndKit.d.ts +24 -0
- package/dist/hooks/useLayerDragDrop.d.ts +58 -0
- package/dist/hooks/useLayerPreview.d.ts +31 -0
- package/dist/hooks/useLayerSelection.d.ts +76 -0
- package/dist/hooks/useLayers.d.ts +91 -0
- package/dist/hooks/usePerformance.d.ts +48 -0
- package/dist/hooks/useProjectLoader.d.ts +64 -0
- package/dist/hooks/useSelectedElement.d.ts +17 -0
- package/dist/hooks/useTextBinding.d.ts +26 -0
- package/dist/hooks/useTextToolbar.d.ts +61 -0
- package/dist/hooks/useViewport.d.ts +46 -0
- package/dist/icons/icon-data.d.ts +2 -0
- package/dist/icons/registry.d.ts +28 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1138 -0
- package/dist/index.mjs.map +1 -0
- package/dist/internals.d.ts +2 -0
- package/dist/internals.js +2 -0
- package/dist/internals.js.map +1 -0
- package/dist/internals.mjs +219 -0
- package/dist/internals.mjs.map +1 -0
- package/dist/kits/compose.d.ts +69 -0
- package/dist/kits/index.d.ts +21 -0
- package/dist/kits/presets.d.ts +40 -0
- package/dist/kits/registry.d.ts +33 -0
- package/dist/kits/sections.d.ts +119 -0
- package/dist/kits/serialization.d.ts +78 -0
- package/dist/kits/types.d.ts +129 -0
- package/dist/kits/validation.d.ts +36 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/plugins/ElementTypePlugin.d.ts +90 -0
- package/dist/presets/artboard-color-presets.d.ts +22 -0
- package/dist/presets/tshirt-presets.d.ts +60 -0
- package/dist/rendering/CompositingRenderer.d.ts +33 -0
- package/dist/rendering/DistressTextureRenderer.d.ts +39 -0
- package/dist/rendering/ElementRenderUtils.d.ts +17 -0
- package/dist/rendering/MaskRenderer.d.ts +41 -0
- package/dist/rendering/PieceGuideRenderer.d.ts +177 -0
- package/dist/rendering/StrokeRenderer.d.ts +24 -0
- package/dist/rendering/canvas-renderer.d.ts +18 -0
- package/dist/rendering/element-serializer.d.ts +143 -0
- package/dist/rendering/image-renderer.d.ts +6 -0
- package/dist/rendering/knockout-utils.d.ts +48 -0
- package/dist/rendering/mask-utils.d.ts +65 -0
- package/dist/rendering/renderer-types.d.ts +79 -0
- package/dist/rendering/rich-text-renderer.d.ts +43 -0
- package/dist/rendering/serialize-for-server.d.ts +45 -0
- package/dist/rendering/shape-renderer.d.ts +6 -0
- package/dist/rendering/stroke-utils.d.ts +18 -0
- package/dist/rendering/text-renderer.d.ts +71 -0
- package/dist/rendering/transform-renderer.d.ts +33 -0
- package/dist/services/AutoExportManager.d.ts +107 -0
- package/dist/services/falApi.d.ts +63 -0
- package/dist/services/nounProjectApi.d.ts +90 -0
- package/dist/services/recraftApi.d.ts +65 -0
- package/dist/services/runwareApi.d.ts +69 -0
- package/dist/state/CanvasStateV1.d.ts +373 -0
- package/dist/state/index.d.ts +10 -0
- package/dist/style.css +1 -0
- package/dist/taco-reference-cropped.jpg +0 -0
- package/dist/testing/MockEditorProvider.d.ts +49 -0
- package/dist/testing/index.d.ts +25 -0
- package/dist/testing/utils.d.ts +128 -0
- package/dist/testing.d.ts +2 -0
- package/dist/testing.js +2 -0
- package/dist/testing.js.map +1 -0
- package/dist/testing.mjs +140 -0
- package/dist/testing.mjs.map +1 -0
- package/dist/textures/glass-frame.svg +32 -0
- package/dist/theme.d.ts +99 -0
- package/dist/themes/index.d.ts +23 -0
- package/dist/transforms/ArchTransform.d.ts +14 -0
- package/dist/transforms/AscendTransform.d.ts +14 -0
- package/dist/transforms/CircleTransform.d.ts +51 -0
- package/dist/transforms/CustomTransform.d.ts +81 -0
- package/dist/transforms/FlagTransform.d.ts +14 -0
- package/dist/transforms/LeanTransform.d.ts +14 -0
- package/dist/transforms/WaveTransform.d.ts +16 -0
- package/dist/transforms/defaults.d.ts +33 -0
- package/dist/transforms/index.d.ts +10 -0
- package/dist/transforms/registry.d.ts +51 -0
- package/dist/types/capabilities.d.ts +50 -0
- package/dist/types/guards.d.ts +31 -0
- package/dist/types/index.d.ts +765 -0
- package/dist/types/public.d.ts +31 -0
- package/dist/types/react.d.ts +132 -0
- package/dist/utils/ArtworkPlacement.d.ts +97 -0
- package/dist/utils/ElementPreviewRenderer.d.ts +19 -0
- package/dist/utils/ExportManager.d.ts +208 -0
- package/dist/utils/FontAnalyzer.d.ts +137 -0
- package/dist/utils/GlyphRenderer.d.ts +55 -0
- package/dist/utils/GoogleFontsService.d.ts +37 -0
- package/dist/utils/ImageLoader.d.ts +124 -0
- package/dist/utils/ImportManager.d.ts +72 -0
- package/dist/utils/MonotypeCategoryMapping.d.ts +36 -0
- package/dist/utils/MonotypeService.d.ts +148 -0
- package/dist/utils/PerformanceMonitor.d.ts +54 -0
- package/dist/utils/TextureManager.d.ts +60 -0
- package/dist/utils/UnifiedFontService.d.ts +117 -0
- package/dist/utils/WorkerExportManager.d.ts +185 -0
- package/dist/utils/clickProtection.d.ts +39 -0
- package/dist/utils/cn.d.ts +4 -0
- package/dist/utils/colorConversion.d.ts +101 -0
- package/dist/utils/documentColors.d.ts +108 -0
- package/dist/utils/featureApplied.d.ts +14 -0
- package/dist/utils/google-fonts-loader.d.ts +67 -0
- package/dist/utils/logger.d.ts +66 -0
- package/dist/utils/selectionPreservation.d.ts +42 -0
- package/dist/utils/textCursorUtils.d.ts +39 -0
- package/dist/utils/textUtils.d.ts +11 -0
- package/dist/workers/export-protocol.d.ts +119 -0
- package/dist/workers/export-worker.bundle.string.d.ts +2 -0
- package/dist/workers/export-worker.d.ts +5 -0
- package/package.json +201 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-module-DFvKXBUE.js","sources":["../../../node_modules/.pnpm/vite-plugin-node-polyfills@0.24.0_rollup@4.60.3_vite@5.4.21_@types+node@25.7.0_lightningcss@1.32.0_terser@5.47.1_/node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/DecodeStream.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/EncodeStream.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Base.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Number.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/utils.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Array.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/LazyArray.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Bitfield.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Buffer.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Optional.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Reserved.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/String.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Struct.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/VersionedStruct.js","../../../node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Pointer.js","../../../node_modules/.pnpm/@swc+helpers@0.5.21/node_modules/@swc/helpers/esm/_define_property.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js","../../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js","../../../node_modules/.pnpm/tiny-inflate@1.0.3/node_modules/tiny-inflate/index.js","../../../node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/swap.js","../../../node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/index.js","../../../node_modules/.pnpm/unicode-properties@1.4.1/node_modules/unicode-properties/dist/module.mjs","../../../node_modules/.pnpm/dfa@1.2.0/node_modules/dfa/index.js","../../../node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/streams.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/bit_reader.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.bin.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary-browser.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/huffman.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/context.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/prefix.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/transform.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/decode.js","../../../node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/decompress.js","../../../node_modules/.pnpm/fontkit@2.0.4/node_modules/fontkit/dist/browser-module.mjs"],"sourcesContent":["var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return '<Buffer ' + str + '>'\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","// Node back-compat.\nconst ENCODING_MAPPING = {\n utf16le: 'utf-16le',\n ucs2: 'utf-16le',\n utf16be: 'utf-16be'\n}\n\nexport class DecodeStream {\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n this.pos = 0;\n this.length = this.buffer.length;\n }\n\n readString(length, encoding = 'ascii') {\n encoding = ENCODING_MAPPING[encoding] || encoding;\n\n let buf = this.readBuffer(length);\n try {\n let decoder = new TextDecoder(encoding);\n return decoder.decode(buf);\n } catch (err) {\n return buf;\n }\n }\n\n readBuffer(length) {\n return this.buffer.slice(this.pos, (this.pos += length));\n }\n\n readUInt24BE() {\n return (this.readUInt16BE() << 8) + this.readUInt8();\n }\n\n readUInt24LE() {\n return this.readUInt16LE() + (this.readUInt8() << 16);\n }\n\n readInt24BE() {\n return (this.readInt16BE() << 8) + this.readUInt8();\n }\n\n readInt24LE() {\n return this.readUInt16LE() + (this.readInt8() << 16);\n }\n}\n\nDecodeStream.TYPES = {\n UInt8: 1,\n UInt16: 2,\n UInt24: 3,\n UInt32: 4,\n Int8: 1,\n Int16: 2,\n Int24: 3,\n Int32: 4,\n Float: 4,\n Double: 8\n};\n\nfor (let key of Object.getOwnPropertyNames(DataView.prototype)) {\n if (key.slice(0, 3) === 'get') {\n let type = key.slice(3).replace('Ui', 'UI');\n if (type === 'Float32') {\n type = 'Float';\n } else if (type === 'Float64') {\n type = 'Double';\n }\n let bytes = DecodeStream.TYPES[type];\n DecodeStream.prototype['read' + type + (bytes === 1 ? '' : 'BE')] = function () {\n const ret = this.view[key](this.pos, false);\n this.pos += bytes;\n return ret;\n };\n\n if (bytes !== 1) {\n DecodeStream.prototype['read' + type + 'LE'] = function () {\n const ret = this.view[key](this.pos, true);\n this.pos += bytes;\n return ret;\n };\n }\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\n\nconst textEncoder = new TextEncoder();\nconst isBigEndian = new Uint8Array(new Uint16Array([0x1234]).buffer)[0] == 0x12;\n\nexport class EncodeStream {\n constructor(buffer) {\n this.buffer = buffer;\n this.view = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n this.pos = 0;\n }\n\n writeBuffer(buffer) {\n this.buffer.set(buffer, this.pos);\n this.pos += buffer.length;\n }\n\n writeString(string, encoding = 'ascii') {\n let buf;\n switch (encoding) {\n case 'utf16le':\n case 'utf16-le':\n case 'ucs2': // node treats this the same as utf16.\n buf = stringToUtf16(string, isBigEndian);\n break;\n\n case 'utf16be':\n case 'utf16-be':\n buf = stringToUtf16(string, !isBigEndian);\n break;\n\n case 'utf8':\n buf = textEncoder.encode(string);\n break;\n\n case 'ascii':\n buf = stringToAscii(string);\n break;\n\n default:\n throw new Error(`Unsupported encoding: ${encoding}`);\n }\n\n this.writeBuffer(buf);\n }\n\n writeUInt24BE(val) {\n this.buffer[this.pos++] = (val >>> 16) & 0xff;\n this.buffer[this.pos++] = (val >>> 8) & 0xff;\n this.buffer[this.pos++] = val & 0xff;\n }\n\n writeUInt24LE(val) {\n this.buffer[this.pos++] = val & 0xff;\n this.buffer[this.pos++] = (val >>> 8) & 0xff;\n this.buffer[this.pos++] = (val >>> 16) & 0xff;\n }\n\n writeInt24BE(val) {\n if (val >= 0) {\n this.writeUInt24BE(val);\n } else {\n this.writeUInt24BE(val + 0xffffff + 1);\n }\n }\n\n writeInt24LE(val) {\n if (val >= 0) {\n this.writeUInt24LE(val);\n } else {\n this.writeUInt24LE(val + 0xffffff + 1);\n }\n }\n\n fill(val, length) {\n if (length < this.buffer.length) {\n this.buffer.fill(val, this.pos, this.pos + length);\n this.pos += length;\n } else {\n const buf = new Uint8Array(length);\n buf.fill(val);\n this.writeBuffer(buf);\n }\n }\n}\n\nfunction stringToUtf16(string, swap) {\n let buf = new Uint16Array(string.length);\n for (let i = 0; i < string.length; i++) {\n let code = string.charCodeAt(i);\n if (swap) {\n code = (code >> 8) | ((code & 0xff) << 8);\n }\n buf[i] = code;\n }\n return new Uint8Array(buf.buffer);\n}\n\nfunction stringToAscii(string) {\n let buf = new Uint8Array(string.length);\n for (let i = 0; i < string.length; i++) {\n // Match node.js behavior - encoding allows 8-bit rather than 7-bit.\n buf[i] = string.charCodeAt(i);\n }\n return buf;\n}\n\nfor (let key of Object.getOwnPropertyNames(DataView.prototype)) {\n if (key.slice(0, 3) === 'set') {\n let type = key.slice(3).replace('Ui', 'UI');\n if (type === 'Float32') {\n type = 'Float';\n } else if (type === 'Float64') {\n type = 'Double';\n }\n let bytes = DecodeStream.TYPES[type];\n EncodeStream.prototype['write' + type + (bytes === 1 ? '' : 'BE')] = function (value) {\n this.view[key](this.pos, value, false);\n this.pos += bytes;\n };\n\n if (bytes !== 1) {\n EncodeStream.prototype['write' + type + 'LE'] = function (value) {\n this.view[key](this.pos, value, true);\n this.pos += bytes;\n };\n }\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\nimport {EncodeStream} from './EncodeStream.js';\n\nexport class Base {\n fromBuffer(buffer) {\n let stream = new DecodeStream(buffer);\n return this.decode(stream);\n }\n\n toBuffer(value) {\n let size = this.size(value);\n let buffer = new Uint8Array(size);\n let stream = new EncodeStream(buffer);\n this.encode(stream, value);\n return buffer;\n }\n}\n","import {DecodeStream} from './DecodeStream.js';\nimport {Base} from './Base.js';\n\nclass NumberT extends Base {\n constructor(type, endian = 'BE') {\n super();\n this.type = type;\n this.endian = endian;\n this.fn = this.type;\n if (this.type[this.type.length - 1] !== '8') {\n this.fn += this.endian;\n }\n }\n\n size() {\n return DecodeStream.TYPES[this.type];\n }\n\n decode(stream) {\n return stream[`read${this.fn}`]();\n }\n\n encode(stream, val) {\n return stream[`write${this.fn}`](val);\n }\n}\n\nexport {NumberT as Number};\n\nexport const uint8 = new NumberT('UInt8');\nexport const uint16be = new NumberT('UInt16', 'BE');\nexport const uint16 = uint16be;\nexport const uint16le = new NumberT('UInt16', 'LE');\nexport const uint24be = new NumberT('UInt24', 'BE');\nexport const uint24 = uint24be;\nexport const uint24le = new NumberT('UInt24', 'LE');\nexport const uint32be = new NumberT('UInt32', 'BE');\nexport const uint32 = uint32be;\nexport const uint32le = new NumberT('UInt32', 'LE');\nexport const int8 = new NumberT('Int8');\nexport const int16be = new NumberT('Int16', 'BE');\nexport const int16 = int16be;\nexport const int16le = new NumberT('Int16', 'LE');\nexport const int24be = new NumberT('Int24', 'BE');\nexport const int24 = int24be;\nexport const int24le = new NumberT('Int24', 'LE');\nexport const int32be = new NumberT('Int32', 'BE');\nexport const int32 = int32be;\nexport const int32le = new NumberT('Int32', 'LE');\nexport const floatbe = new NumberT('Float', 'BE');\nexport const float = floatbe;\nexport const floatle = new NumberT('Float', 'LE');\nexport const doublebe = new NumberT('Double', 'BE');\nexport const double = doublebe;\nexport const doublele = new NumberT('Double', 'LE');\n\nexport class Fixed extends NumberT {\n constructor(size, endian, fracBits = size >> 1) {\n super(`Int${size}`, endian);\n this._point = 1 << fracBits;\n }\n\n decode(stream) {\n return super.decode(stream) / this._point;\n }\n\n encode(stream, val) {\n return super.encode(stream, (val * this._point) | 0);\n }\n}\n\nexport const fixed16be = new Fixed(16, 'BE');\nexport const fixed16 = fixed16be;\nexport const fixed16le = new Fixed(16, 'LE');\nexport const fixed32be = new Fixed(32, 'BE');\nexport const fixed32 = fixed32be;\nexport const fixed32le = new Fixed(32, 'LE');\n","import {Number as NumberT} from './Number.js';\n\nexport function resolveLength(length, stream, parent) {\n let res;\n if (typeof length === 'number') {\n res = length;\n\n } else if (typeof length === 'function') {\n res = length.call(parent, parent);\n\n } else if (parent && (typeof length === 'string')) {\n res = parent[length];\n\n } else if (stream && length instanceof NumberT) {\n res = length.decode(stream);\n }\n\n if (isNaN(res)) {\n throw new Error('Not a fixed size');\n }\n\n return res;\n};\n\nexport class PropertyDescriptor {\n constructor(opts = {}) {\n this.enumerable = true;\n this.configurable = true;\n\n for (let key in opts) {\n const val = opts[key];\n this[key] = val;\n }\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nclass ArrayT extends Base {\n constructor(type, length, lengthType = 'count') {\n super();\n this.type = type;\n this.length = length;\n this.lengthType = lengthType;\n }\n\n decode(stream, parent) {\n let length;\n const { pos } = stream;\n\n const res = [];\n let ctx = parent;\n\n if (this.length != null) {\n length = utils.resolveLength(this.length, stream, parent);\n }\n\n if (this.length instanceof NumberT) {\n // define hidden properties\n Object.defineProperties(res, {\n parent: { value: parent },\n _startOffset: { value: pos },\n _currentOffset: { value: 0, writable: true },\n _length: { value: length }\n });\n\n ctx = res;\n }\n\n if ((length == null) || (this.lengthType === 'bytes')) {\n const target = (length != null) ?\n stream.pos + length\n : (parent != null ? parent._length : undefined) ?\n parent._startOffset + parent._length\n :\n stream.length;\n\n while (stream.pos < target) {\n res.push(this.type.decode(stream, ctx));\n }\n\n } else {\n for (let i = 0, end = length; i < end; i++) {\n res.push(this.type.decode(stream, ctx));\n }\n }\n\n return res;\n }\n\n size(array, ctx, includePointers = true) {\n if (!array) {\n return this.type.size(null, ctx) * utils.resolveLength(this.length, null, ctx);\n }\n\n let size = 0;\n if (this.length instanceof NumberT) {\n size += this.length.size();\n ctx = {parent: ctx, pointerSize: 0};\n }\n\n for (let item of array) {\n size += this.type.size(item, ctx);\n }\n\n if (ctx && includePointers && this.length instanceof NumberT) {\n size += ctx.pointerSize;\n }\n \n return size;\n }\n\n encode(stream, array, parent) {\n let ctx = parent;\n if (this.length instanceof NumberT) {\n ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent\n };\n\n ctx.pointerOffset = stream.pos + this.size(array, ctx, false);\n this.length.encode(stream, array.length);\n }\n\n for (let item of array) {\n this.type.encode(stream, item, ctx);\n }\n\n if (this.length instanceof NumberT) {\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n }\n}\n\nexport {ArrayT as Array};\n","import {Array as ArrayT} from './Array.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nexport class LazyArray extends ArrayT {\n decode(stream, parent) {\n const { pos } = stream;\n const length = utils.resolveLength(this.length, stream, parent);\n\n if (this.length instanceof NumberT) {\n parent = {\n parent,\n _startOffset: pos,\n _currentOffset: 0,\n _length: length\n };\n }\n\n const res = new LazyArrayValue(this.type, length, stream, parent);\n\n stream.pos += length * this.type.size(null, parent);\n return res;\n }\n\n size(val, ctx) {\n if (val instanceof LazyArrayValue) {\n val = val.toArray();\n }\n\n return super.size(val, ctx);\n }\n\n encode(stream, val, ctx) {\n if (val instanceof LazyArrayValue) {\n val = val.toArray();\n }\n\n return super.encode(stream, val, ctx);\n }\n}\n\nclass LazyArrayValue {\n constructor(type, length, stream, ctx) {\n this.type = type;\n this.length = length;\n this.stream = stream;\n this.ctx = ctx;\n this.base = this.stream.pos;\n this.items = [];\n }\n\n get(index) {\n if ((index < 0) || (index >= this.length)) {\n return undefined;\n }\n\n if (this.items[index] == null) {\n const { pos } = this.stream;\n this.stream.pos = this.base + (this.type.size(null, this.ctx) * index);\n this.items[index] = this.type.decode(this.stream, this.ctx);\n this.stream.pos = pos;\n }\n\n return this.items[index];\n }\n\n toArray() {\n const result = [];\n for (let i = 0, end = this.length; i < end; i++) {\n result.push(this.get(i));\n }\n return result;\n }\n}\n","import {Base} from './Base.js';\n\nexport class Bitfield extends Base {\n constructor(type, flags = []) {\n super();\n this.type = type;\n this.flags = flags;\n }\n\n decode(stream) {\n const val = this.type.decode(stream);\n\n const res = {};\n for (let i = 0; i < this.flags.length; i++) {\n const flag = this.flags[i];\n if (flag != null) {\n res[flag] = !!(val & (1 << i));\n }\n }\n\n return res;\n }\n\n size() {\n return this.type.size();\n }\n\n encode(stream, keys) {\n let val = 0;\n for (let i = 0; i < this.flags.length; i++) {\n const flag = this.flags[i];\n if (flag != null) {\n if (keys[flag]) { val |= (1 << i); }\n }\n }\n\n return this.type.encode(stream, val);\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nexport class BufferT extends Base {\n constructor(length) {\n super();\n this.length = length;\n }\n \n decode(stream, parent) {\n const length = utils.resolveLength(this.length, stream, parent);\n return stream.readBuffer(length);\n }\n\n size(val, parent) {\n if (!val) {\n return utils.resolveLength(this.length, null, parent);\n }\n\n let len = val.length;\n if (this.length instanceof NumberT) {\n len += this.length.size();\n }\n\n return len;\n }\n\n encode(stream, buf, parent) {\n if (this.length instanceof NumberT) {\n this.length.encode(stream, buf.length);\n }\n\n return stream.writeBuffer(buf);\n }\n}\n\nexport {BufferT as Buffer};\n","import {Base} from './Base.js';\n\nexport class Optional extends Base {\n constructor(type, condition = true) {\n super();\n this.type = type;\n this.condition = condition;\n }\n\n decode(stream, parent) {\n let { condition } = this;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n\n if (condition) {\n return this.type.decode(stream, parent);\n }\n }\n\n size(val, parent) {\n let { condition } = this;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n\n if (condition) {\n return this.type.size(val, parent);\n } else {\n return 0;\n }\n }\n\n encode(stream, val, parent) {\n let { condition } = this;\n if (typeof condition === 'function') {\n condition = condition.call(parent, parent);\n }\n\n if (condition) {\n return this.type.encode(stream, val, parent);\n }\n }\n}\n","import {Base} from './Base.js';\nimport * as utils from './utils.js';\n\nexport class Reserved extends Base {\n constructor(type, count = 1) {\n super();\n this.type = type;\n this.count = count;\n }\n decode(stream, parent) {\n stream.pos += this.size(null, parent);\n return undefined;\n }\n\n size(data, parent) {\n const count = utils.resolveLength(this.count, null, parent);\n return this.type.size() * count;\n }\n\n encode(stream, val, parent) {\n return stream.fill(0, this.size(val, parent));\n }\n}\n","import {Base} from './Base.js';\nimport {Number as NumberT} from './Number.js';\nimport * as utils from './utils.js';\n\nclass StringT extends Base {\n constructor(length, encoding = 'ascii') {\n super();\n this.length = length;\n this.encoding = encoding;\n }\n\n decode(stream, parent) {\n let length, pos;\n\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent, parent) || 'ascii';\n }\n let width = encodingWidth(encoding);\n\n if (this.length != null) {\n length = utils.resolveLength(this.length, stream, parent);\n } else {\n let buffer;\n ({buffer, length, pos} = stream);\n\n while ((pos < length - width + 1) &&\n (buffer[pos] !== 0x00 ||\n (width === 2 && buffer[pos+1] !== 0x00)\n )) {\n pos += width;\n }\n\n length = pos - stream.pos;\n }\n\n\n const string = stream.readString(length, encoding);\n\n if ((this.length == null) && (stream.pos < stream.length)) {\n stream.pos+=width;\n }\n\n return string;\n }\n\n size(val, parent) {\n // Use the defined value if no value was given\n if (val === undefined || val === null) {\n return utils.resolveLength(this.length, null, parent);\n }\n\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : undefined, parent != null ? parent.val : undefined) || 'ascii';\n }\n\n if (encoding === 'utf16be') {\n encoding = 'utf16le';\n }\n\n let size = byteLength(val, encoding);\n if (this.length instanceof NumberT) {\n size += this.length.size();\n }\n\n if ((this.length == null)) {\n size += encodingWidth(encoding);\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let { encoding } = this;\n if (typeof encoding === 'function') {\n encoding = encoding.call(parent != null ? parent.val : undefined, parent != null ? parent.val : undefined) || 'ascii';\n }\n\n if (this.length instanceof NumberT) {\n this.length.encode(stream, byteLength(val, encoding));\n }\n\n stream.writeString(val, encoding);\n\n if ((this.length == null)) {\n return encodingWidth(encoding) == 2 ?\n stream.writeUInt16LE(0x0000) :\n stream.writeUInt8(0x00);\n }\n }\n}\n\nfunction encodingWidth(encoding) {\n switch(encoding) {\n case 'ascii':\n case 'utf8': // utf8 is a byte-based encoding for zero-term string\n return 1;\n case 'utf16le':\n case 'utf16-le':\n case 'utf-16be':\n case 'utf-16le':\n case 'utf16be':\n case 'utf16-be':\n case 'ucs2':\n return 2;\n default:\n //TODO: assume all other encodings are 1-byters\n //throw new Error('Unknown encoding ' + encoding);\n return 1;\n }\n}\n\nfunction byteLength(string, encoding) {\n switch (encoding) {\n case 'ascii':\n return string.length;\n case 'utf8':\n let len = 0;\n for (let i = 0; i < string.length; i++) {\n let c = string.charCodeAt(i);\n\n if (c >= 0xd800 && c <= 0xdbff && i < string.length - 1) {\n let c2 = string.charCodeAt(++i);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = ((c & 0x3ff) << 10) + (c2 & 0x3ff) + 0x10000;\n } else {\n // unmatched surrogate.\n i--;\n }\n }\n\n if ((c & 0xffffff80) === 0) {\n len++;\n } else if ((c & 0xfffff800) === 0) {\n len += 2;\n } else if ((c & 0xffff0000) === 0) {\n len += 3;\n } else if ((c & 0xffe00000) === 0) {\n len += 4;\n }\n }\n return len;\n case 'utf16le':\n case 'utf16-le':\n case 'utf16be':\n case 'utf16-be':\n case 'ucs2':\n return string.length * 2;\n default:\n throw new Error('Unknown encoding ' + encoding);\n }\n}\n\nexport {StringT as String};\n","import {Base} from './Base.js';\nimport * as utils from './utils.js';\n\nexport class Struct extends Base {\n constructor(fields = {}) {\n super();\n this.fields = fields;\n }\n\n decode(stream, parent, length = 0) {\n const res = this._setup(stream, parent, length);\n this._parseFields(stream, res, this.fields);\n\n if (this.process != null) {\n this.process.call(res, stream);\n }\n return res;\n }\n\n _setup(stream, parent, length) {\n const res = {};\n\n // define hidden properties\n Object.defineProperties(res, {\n parent: { value: parent },\n _startOffset: { value: stream.pos },\n _currentOffset: { value: 0, writable: true },\n _length: { value: length }\n });\n\n return res;\n }\n\n _parseFields(stream, res, fields) {\n for (let key in fields) {\n var val;\n const type = fields[key];\n if (typeof type === 'function') {\n val = type.call(res, res);\n } else {\n val = type.decode(stream, res);\n }\n\n if (val !== undefined) {\n if (val instanceof utils.PropertyDescriptor) {\n Object.defineProperty(res, key, val);\n } else {\n res[key] = val;\n }\n }\n\n res._currentOffset = stream.pos - res._startOffset;\n }\n\n }\n\n size(val, parent, includePointers = true) {\n if (val == null) { val = {}; }\n const ctx = {\n parent,\n val,\n pointerSize: 0\n };\n\n if (this.preEncode != null) {\n this.preEncode.call(val);\n }\n\n let size = 0;\n for (let key in this.fields) {\n const type = this.fields[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n\n if (includePointers) {\n size += ctx.pointerSize;\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let type;\n if (this.preEncode != null) {\n this.preEncode.call(val, stream);\n }\n\n const ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent,\n val,\n pointerSize: 0\n };\n\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n\n for (let key in this.fields) {\n type = this.fields[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n}\n","import {Struct} from './Struct.js';\n\nconst getPath = (object, pathArray) => {\n return pathArray.reduce((prevObj, key) => prevObj && prevObj[key], object);\n};\n\nexport class VersionedStruct extends Struct {\n constructor(type, versions = {}) {\n super();\n this.type = type;\n this.versions = versions;\n if (typeof type === 'string') {\n this.versionPath = type.split('.');\n }\n }\n\n decode(stream, parent, length = 0) {\n const res = this._setup(stream, parent, length);\n\n if (typeof this.type === 'string') {\n res.version = getPath(parent, this.versionPath);\n } else {\n res.version = this.type.decode(stream);\n }\n\n if (this.versions.header) {\n this._parseFields(stream, res, this.versions.header);\n }\n\n const fields = this.versions[res.version];\n if ((fields == null)) {\n throw new Error(`Unknown version ${res.version}`);\n }\n\n if (fields instanceof VersionedStruct) {\n return fields.decode(stream, parent);\n }\n\n this._parseFields(stream, res, fields);\n\n if (this.process != null) {\n this.process.call(res, stream);\n }\n return res;\n }\n\n size(val, parent, includePointers = true) {\n let key, type;\n if (!val) {\n throw new Error('Not a fixed size');\n }\n\n if (this.preEncode != null) {\n this.preEncode.call(val);\n }\n\n const ctx = {\n parent,\n val,\n pointerSize: 0\n };\n\n let size = 0;\n if (typeof this.type !== 'string') {\n size += this.type.size(val.version, ctx);\n }\n\n if (this.versions.header) {\n for (key in this.versions.header) {\n type = this.versions.header[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n }\n\n const fields = this.versions[val.version];\n if ((fields == null)) {\n throw new Error(`Unknown version ${val.version}`);\n }\n\n for (key in fields) {\n type = fields[key];\n if (type.size != null) {\n size += type.size(val[key], ctx);\n }\n }\n\n if (includePointers) {\n size += ctx.pointerSize;\n }\n\n return size;\n }\n\n encode(stream, val, parent) {\n let key, type;\n if (this.preEncode != null) {\n this.preEncode.call(val, stream);\n }\n\n const ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent,\n val,\n pointerSize: 0\n };\n\n ctx.pointerOffset = stream.pos + this.size(val, ctx, false);\n\n if (typeof this.type !== 'string') {\n this.type.encode(stream, val.version);\n }\n\n if (this.versions.header) {\n for (key in this.versions.header) {\n type = this.versions.header[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n }\n\n const fields = this.versions[val.version];\n for (key in fields) {\n type = fields[key];\n if (type.encode != null) {\n type.encode(stream, val[key], ctx);\n }\n }\n\n let i = 0;\n while (i < ctx.pointers.length) {\n const ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n }\n}\n","import * as utils from './utils.js';\nimport {Base} from './Base.js';\n\nexport class Pointer extends Base {\n constructor(offsetType, type, options = {}) {\n super();\n this.offsetType = offsetType;\n this.type = type;\n this.options = options;\n if (this.type === 'void') { this.type = null; }\n if (this.options.type == null) { this.options.type = 'local'; }\n if (this.options.allowNull == null) { this.options.allowNull = true; }\n if (this.options.nullValue == null) { this.options.nullValue = 0; }\n if (this.options.lazy == null) { this.options.lazy = false; }\n if (this.options.relativeTo) {\n if (typeof this.options.relativeTo !== 'function') {\n throw new Error('relativeTo option must be a function');\n }\n this.relativeToGetter = options.relativeTo;\n }\n }\n\n decode(stream, ctx) {\n const offset = this.offsetType.decode(stream, ctx);\n\n // handle NULL pointers\n if ((offset === this.options.nullValue) && this.options.allowNull) {\n return null;\n }\n\n let relative;\n switch (this.options.type) {\n case 'local': relative = ctx._startOffset; break;\n case 'immediate': relative = stream.pos - this.offsetType.size(); break;\n case 'parent': relative = ctx.parent._startOffset; break;\n default:\n var c = ctx;\n while (c.parent) {\n c = c.parent;\n }\n\n relative = c._startOffset || 0;\n }\n\n if (this.options.relativeTo) {\n relative += this.relativeToGetter(ctx);\n }\n\n const ptr = offset + relative;\n\n if (this.type != null) {\n let val = null;\n const decodeValue = () => {\n if (val != null) { return val; }\n\n const { pos } = stream;\n stream.pos = ptr;\n val = this.type.decode(stream, ctx);\n stream.pos = pos;\n return val;\n };\n\n // If this is a lazy pointer, define a getter to decode only when needed.\n // This obviously only works when the pointer is contained by a Struct.\n if (this.options.lazy) {\n return new utils.PropertyDescriptor({\n get: decodeValue});\n }\n\n return decodeValue();\n } else {\n return ptr;\n }\n }\n\n size(val, ctx) {\n const parent = ctx;\n switch (this.options.type) {\n case 'local': case 'immediate':\n break;\n case 'parent':\n ctx = ctx.parent;\n break;\n default: // global\n while (ctx.parent) {\n ctx = ctx.parent;\n }\n }\n\n let { type } = this;\n if (type == null) {\n if (!(val instanceof VoidPointer)) {\n throw new Error(\"Must be a VoidPointer\");\n }\n\n ({ type } = val);\n val = val.value;\n }\n\n if (val && ctx) {\n // Must be written as two separate lines rather than += in case `type.size` mutates ctx.pointerSize.\n let size = type.size(val, parent);\n ctx.pointerSize += size;\n }\n\n return this.offsetType.size();\n }\n\n encode(stream, val, ctx) {\n let relative;\n const parent = ctx;\n if ((val == null)) {\n this.offsetType.encode(stream, this.options.nullValue);\n return;\n }\n\n switch (this.options.type) {\n case 'local':\n relative = ctx.startOffset;\n break;\n case 'immediate':\n relative = stream.pos + this.offsetType.size(val, parent);\n break;\n case 'parent':\n ctx = ctx.parent;\n relative = ctx.startOffset;\n break;\n default: // global\n relative = 0;\n while (ctx.parent) {\n ctx = ctx.parent;\n }\n }\n\n if (this.options.relativeTo) {\n relative += this.relativeToGetter(parent.val);\n }\n\n this.offsetType.encode(stream, ctx.pointerOffset - relative);\n\n let { type } = this;\n if (type == null) {\n if (!(val instanceof VoidPointer)) {\n throw new Error(\"Must be a VoidPointer\");\n }\n\n ({ type } = val);\n val = val.value;\n }\n\n ctx.pointers.push({\n type,\n val,\n parent\n });\n\n return ctx.pointerOffset += type.size(val, parent);\n }\n}\n\n// A pointer whose type is determined at decode time\nexport class VoidPointer {\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n}\n","function _define_property(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });\n } else obj[key] = value;\n\n return obj;\n}\nexport { _define_property as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","var TINF_OK = 0;\nvar TINF_DATA_ERROR = -3;\n\nfunction Tree() {\n this.table = new Uint16Array(16); /* table of code length counts */\n this.trans = new Uint16Array(288); /* code -> symbol translation table */\n}\n\nfunction Data(source, dest) {\n this.source = source;\n this.sourceIndex = 0;\n this.tag = 0;\n this.bitcount = 0;\n \n this.dest = dest;\n this.destLen = 0;\n \n this.ltree = new Tree(); /* dynamic length/symbol tree */\n this.dtree = new Tree(); /* dynamic distance tree */\n}\n\n/* --------------------------------------------------- *\n * -- uninitialized global data (static structures) -- *\n * --------------------------------------------------- */\n\nvar sltree = new Tree();\nvar sdtree = new Tree();\n\n/* extra bits and base tables for length codes */\nvar length_bits = new Uint8Array(30);\nvar length_base = new Uint16Array(30);\n\n/* extra bits and base tables for distance codes */\nvar dist_bits = new Uint8Array(30);\nvar dist_base = new Uint16Array(30);\n\n/* special ordering of code length codes */\nvar clcidx = new Uint8Array([\n 16, 17, 18, 0, 8, 7, 9, 6,\n 10, 5, 11, 4, 12, 3, 13, 2,\n 14, 1, 15\n]);\n\n/* used by tinf_decode_trees, avoids allocations every call */\nvar code_tree = new Tree();\nvar lengths = new Uint8Array(288 + 32);\n\n/* ----------------------- *\n * -- utility functions -- *\n * ----------------------- */\n\n/* build extra bits and base tables */\nfunction tinf_build_bits_base(bits, base, delta, first) {\n var i, sum;\n\n /* build bits table */\n for (i = 0; i < delta; ++i) bits[i] = 0;\n for (i = 0; i < 30 - delta; ++i) bits[i + delta] = i / delta | 0;\n\n /* build base table */\n for (sum = first, i = 0; i < 30; ++i) {\n base[i] = sum;\n sum += 1 << bits[i];\n }\n}\n\n/* build the fixed huffman trees */\nfunction tinf_build_fixed_trees(lt, dt) {\n var i;\n\n /* build fixed length tree */\n for (i = 0; i < 7; ++i) lt.table[i] = 0;\n\n lt.table[7] = 24;\n lt.table[8] = 152;\n lt.table[9] = 112;\n\n for (i = 0; i < 24; ++i) lt.trans[i] = 256 + i;\n for (i = 0; i < 144; ++i) lt.trans[24 + i] = i;\n for (i = 0; i < 8; ++i) lt.trans[24 + 144 + i] = 280 + i;\n for (i = 0; i < 112; ++i) lt.trans[24 + 144 + 8 + i] = 144 + i;\n\n /* build fixed distance tree */\n for (i = 0; i < 5; ++i) dt.table[i] = 0;\n\n dt.table[5] = 32;\n\n for (i = 0; i < 32; ++i) dt.trans[i] = i;\n}\n\n/* given an array of code lengths, build a tree */\nvar offs = new Uint16Array(16);\n\nfunction tinf_build_tree(t, lengths, off, num) {\n var i, sum;\n\n /* clear code length count table */\n for (i = 0; i < 16; ++i) t.table[i] = 0;\n\n /* scan symbol lengths, and sum code length counts */\n for (i = 0; i < num; ++i) t.table[lengths[off + i]]++;\n\n t.table[0] = 0;\n\n /* compute offset table for distribution sort */\n for (sum = 0, i = 0; i < 16; ++i) {\n offs[i] = sum;\n sum += t.table[i];\n }\n\n /* create code->symbol translation table (symbols sorted by code) */\n for (i = 0; i < num; ++i) {\n if (lengths[off + i]) t.trans[offs[lengths[off + i]]++] = i;\n }\n}\n\n/* ---------------------- *\n * -- decode functions -- *\n * ---------------------- */\n\n/* get one bit from source stream */\nfunction tinf_getbit(d) {\n /* check if tag is empty */\n if (!d.bitcount--) {\n /* load next tag */\n d.tag = d.source[d.sourceIndex++];\n d.bitcount = 7;\n }\n\n /* shift bit out of tag */\n var bit = d.tag & 1;\n d.tag >>>= 1;\n\n return bit;\n}\n\n/* read a num bit value from a stream and add base */\nfunction tinf_read_bits(d, num, base) {\n if (!num)\n return base;\n\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n\n var val = d.tag & (0xffff >>> (16 - num));\n d.tag >>>= num;\n d.bitcount -= num;\n return val + base;\n}\n\n/* given a data stream and a tree, decode a symbol */\nfunction tinf_decode_symbol(d, t) {\n while (d.bitcount < 24) {\n d.tag |= d.source[d.sourceIndex++] << d.bitcount;\n d.bitcount += 8;\n }\n \n var sum = 0, cur = 0, len = 0;\n var tag = d.tag;\n\n /* get more bits while code value is above sum */\n do {\n cur = 2 * cur + (tag & 1);\n tag >>>= 1;\n ++len;\n\n sum += t.table[len];\n cur -= t.table[len];\n } while (cur >= 0);\n \n d.tag = tag;\n d.bitcount -= len;\n\n return t.trans[sum + cur];\n}\n\n/* given a data stream, decode dynamic trees from it */\nfunction tinf_decode_trees(d, lt, dt) {\n var hlit, hdist, hclen;\n var i, num, length;\n\n /* get 5 bits HLIT (257-286) */\n hlit = tinf_read_bits(d, 5, 257);\n\n /* get 5 bits HDIST (1-32) */\n hdist = tinf_read_bits(d, 5, 1);\n\n /* get 4 bits HCLEN (4-19) */\n hclen = tinf_read_bits(d, 4, 4);\n\n for (i = 0; i < 19; ++i) lengths[i] = 0;\n\n /* read code lengths for code length alphabet */\n for (i = 0; i < hclen; ++i) {\n /* get 3 bits code length (0-7) */\n var clen = tinf_read_bits(d, 3, 0);\n lengths[clcidx[i]] = clen;\n }\n\n /* build code length tree */\n tinf_build_tree(code_tree, lengths, 0, 19);\n\n /* decode code lengths for the dynamic trees */\n for (num = 0; num < hlit + hdist;) {\n var sym = tinf_decode_symbol(d, code_tree);\n\n switch (sym) {\n case 16:\n /* copy previous code length 3-6 times (read 2 bits) */\n var prev = lengths[num - 1];\n for (length = tinf_read_bits(d, 2, 3); length; --length) {\n lengths[num++] = prev;\n }\n break;\n case 17:\n /* repeat code length 0 for 3-10 times (read 3 bits) */\n for (length = tinf_read_bits(d, 3, 3); length; --length) {\n lengths[num++] = 0;\n }\n break;\n case 18:\n /* repeat code length 0 for 11-138 times (read 7 bits) */\n for (length = tinf_read_bits(d, 7, 11); length; --length) {\n lengths[num++] = 0;\n }\n break;\n default:\n /* values 0-15 represent the actual code lengths */\n lengths[num++] = sym;\n break;\n }\n }\n\n /* build dynamic trees */\n tinf_build_tree(lt, lengths, 0, hlit);\n tinf_build_tree(dt, lengths, hlit, hdist);\n}\n\n/* ----------------------------- *\n * -- block inflate functions -- *\n * ----------------------------- */\n\n/* given a stream and two trees, inflate a block of data */\nfunction tinf_inflate_block_data(d, lt, dt) {\n while (1) {\n var sym = tinf_decode_symbol(d, lt);\n\n /* check for end of block */\n if (sym === 256) {\n return TINF_OK;\n }\n\n if (sym < 256) {\n d.dest[d.destLen++] = sym;\n } else {\n var length, dist, offs;\n var i;\n\n sym -= 257;\n\n /* possibly get more bits from length code */\n length = tinf_read_bits(d, length_bits[sym], length_base[sym]);\n\n dist = tinf_decode_symbol(d, dt);\n\n /* possibly get more bits from distance code */\n offs = d.destLen - tinf_read_bits(d, dist_bits[dist], dist_base[dist]);\n\n /* copy match */\n for (i = offs; i < offs + length; ++i) {\n d.dest[d.destLen++] = d.dest[i];\n }\n }\n }\n}\n\n/* inflate an uncompressed block of data */\nfunction tinf_inflate_uncompressed_block(d) {\n var length, invlength;\n var i;\n \n /* unread from bitbuffer */\n while (d.bitcount > 8) {\n d.sourceIndex--;\n d.bitcount -= 8;\n }\n\n /* get length */\n length = d.source[d.sourceIndex + 1];\n length = 256 * length + d.source[d.sourceIndex];\n\n /* get one's complement of length */\n invlength = d.source[d.sourceIndex + 3];\n invlength = 256 * invlength + d.source[d.sourceIndex + 2];\n\n /* check length */\n if (length !== (~invlength & 0x0000ffff))\n return TINF_DATA_ERROR;\n\n d.sourceIndex += 4;\n\n /* copy block */\n for (i = length; i; --i)\n d.dest[d.destLen++] = d.source[d.sourceIndex++];\n\n /* make sure we start next block on a byte boundary */\n d.bitcount = 0;\n\n return TINF_OK;\n}\n\n/* inflate stream from source to dest */\nfunction tinf_uncompress(source, dest) {\n var d = new Data(source, dest);\n var bfinal, btype, res;\n\n do {\n /* read final block flag */\n bfinal = tinf_getbit(d);\n\n /* read block type (2 bits) */\n btype = tinf_read_bits(d, 2, 0);\n\n /* decompress block */\n switch (btype) {\n case 0:\n /* decompress uncompressed block */\n res = tinf_inflate_uncompressed_block(d);\n break;\n case 1:\n /* decompress block with fixed huffman trees */\n res = tinf_inflate_block_data(d, sltree, sdtree);\n break;\n case 2:\n /* decompress block with dynamic huffman trees */\n tinf_decode_trees(d, d.ltree, d.dtree);\n res = tinf_inflate_block_data(d, d.ltree, d.dtree);\n break;\n default:\n res = TINF_DATA_ERROR;\n }\n\n if (res !== TINF_OK)\n throw new Error('Data error');\n\n } while (!bfinal);\n\n if (d.destLen < d.dest.length) {\n if (typeof d.dest.slice === 'function')\n return d.dest.slice(0, d.destLen);\n else\n return d.dest.subarray(0, d.destLen);\n }\n \n return d.dest;\n}\n\n/* -------------------- *\n * -- initialization -- *\n * -------------------- */\n\n/* build fixed huffman trees */\ntinf_build_fixed_trees(sltree, sdtree);\n\n/* build extra bits and base tables */\ntinf_build_bits_base(length_bits, length_base, 4, 3);\ntinf_build_bits_base(dist_bits, dist_base, 2, 1);\n\n/* fix a special case */\nlength_bits[28] = 0;\nlength_base[28] = 258;\n\nmodule.exports = tinf_uncompress;\n","const isBigEndian = (new Uint8Array(new Uint32Array([0x12345678]).buffer)[0] === 0x12);\n\nconst swap = (b, n, m) => {\n let i = b[n];\n b[n] = b[m];\n b[m] = i;\n};\n\nconst swap32 = array => {\n const len = array.length;\n for (let i = 0; i < len; i += 4) {\n swap(array, i, i + 3);\n swap(array, i + 1, i + 2);\n }\n};\n\nconst swap32LE = array => {\n if (isBigEndian) {\n swap32(array);\n }\n};\n\nmodule.exports = {\n swap32LE: swap32LE\n};\n","const inflate = require('tiny-inflate');\nconst { swap32LE } = require('./swap');\n\n// Shift size for getting the index-1 table offset.\nconst SHIFT_1 = 6 + 5;\n\n// Shift size for getting the index-2 table offset.\nconst SHIFT_2 = 5;\n\n// Difference between the two shift sizes,\n// for getting an index-1 offset from an index-2 offset. 6=11-5\nconst SHIFT_1_2 = SHIFT_1 - SHIFT_2;\n\n// Number of index-1 entries for the BMP. 32=0x20\n// This part of the index-1 table is omitted from the serialized form.\nconst OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> SHIFT_1;\n\n// Number of entries in an index-2 block. 64=0x40\nconst INDEX_2_BLOCK_LENGTH = 1 << SHIFT_1_2;\n\n// Mask for getting the lower bits for the in-index-2-block offset. */\nconst INDEX_2_MASK = INDEX_2_BLOCK_LENGTH - 1;\n\n// Shift size for shifting left the index array values.\n// Increases possible data size with 16-bit index values at the cost\n// of compactability.\n// This requires data blocks to be aligned by DATA_GRANULARITY.\nconst INDEX_SHIFT = 2;\n\n// Number of entries in a data block. 32=0x20\nconst DATA_BLOCK_LENGTH = 1 << SHIFT_2;\n\n// Mask for getting the lower bits for the in-data-block offset.\nconst DATA_MASK = DATA_BLOCK_LENGTH - 1;\n\n// The part of the index-2 table for U+D800..U+DBFF stores values for\n// lead surrogate code _units_ not code _points_.\n// Values for lead surrogate code _points_ are indexed with this portion of the table.\n// Length=32=0x20=0x400>>SHIFT_2. (There are 1024=0x400 lead surrogates.)\nconst LSCP_INDEX_2_OFFSET = 0x10000 >> SHIFT_2;\nconst LSCP_INDEX_2_LENGTH = 0x400 >> SHIFT_2;\n\n// Count the lengths of both BMP pieces. 2080=0x820\nconst INDEX_2_BMP_LENGTH = LSCP_INDEX_2_OFFSET + LSCP_INDEX_2_LENGTH;\n\n// The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n// Length 32=0x20 for lead bytes C0..DF, regardless of SHIFT_2.\nconst UTF8_2B_INDEX_2_OFFSET = INDEX_2_BMP_LENGTH;\nconst UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; // U+0800 is the first code point after 2-byte UTF-8\n\n// The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n// Variable length, for code points up to highStart, where the last single-value range starts.\n// Maximum length 512=0x200=0x100000>>SHIFT_1.\n// (For 0x100000 supplementary code points U+10000..U+10ffff.)\n//\n// The part of the index-2 table for supplementary code points starts\n// after this index-1 table.\n//\n// Both the index-1 table and the following part of the index-2 table\n// are omitted completely if there is only BMP data.\nconst INDEX_1_OFFSET = UTF8_2B_INDEX_2_OFFSET + UTF8_2B_INDEX_2_LENGTH;\n\n// The alignment size of a data block. Also the granularity for compaction.\nconst DATA_GRANULARITY = 1 << INDEX_SHIFT;\n\nclass UnicodeTrie {\n constructor(data) {\n const isBuffer = (typeof data.readUInt32BE === 'function') && (typeof data.slice === 'function');\n\n if (isBuffer || data instanceof Uint8Array) {\n // read binary format\n let uncompressedLength;\n if (isBuffer) {\n this.highStart = data.readUInt32LE(0);\n this.errorValue = data.readUInt32LE(4);\n uncompressedLength = data.readUInt32LE(8);\n data = data.slice(12);\n } else {\n const view = new DataView(data.buffer);\n this.highStart = view.getUint32(0, true);\n this.errorValue = view.getUint32(4, true);\n uncompressedLength = view.getUint32(8, true);\n data = data.subarray(12);\n }\n\n // double inflate the actual trie data\n data = inflate(data, new Uint8Array(uncompressedLength));\n data = inflate(data, new Uint8Array(uncompressedLength));\n\n // swap bytes from little-endian\n swap32LE(data);\n\n this.data = new Uint32Array(data.buffer);\n\n } else {\n // pre-parsed data\n ({ data: this.data, highStart: this.highStart, errorValue: this.errorValue } = data);\n }\n }\n\n get(codePoint) {\n let index;\n if ((codePoint < 0) || (codePoint > 0x10ffff)) {\n return this.errorValue;\n }\n\n if ((codePoint < 0xd800) || ((codePoint > 0xdbff) && (codePoint <= 0xffff))) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the index.\n // data is stored in the index array itself.\n index = (this.data[codePoint >> SHIFT_2] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n index = (this.data[LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> SHIFT_2)] << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n index = this.data[(INDEX_1_OFFSET - OMITTED_BMP_INDEX_1_LENGTH) + (codePoint >> SHIFT_1)];\n index = this.data[index + ((codePoint >> SHIFT_2) & INDEX_2_MASK)];\n index = (index << INDEX_SHIFT) + (codePoint & DATA_MASK);\n return this.data[index];\n }\n\n return this.data[this.data.length - DATA_GRANULARITY];\n }\n}\n\nmodule.exports = UnicodeTrie;","import $bdjGp$base64js from \"base64-js\";\nimport $bdjGp$unicodetrie from \"unicode-trie\";\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\n\nvar $f4087201da764553$exports = {};\n$f4087201da764553$exports = JSON.parse('{\"categories\":[\"Cc\",\"Zs\",\"Po\",\"Sc\",\"Ps\",\"Pe\",\"Sm\",\"Pd\",\"Nd\",\"Lu\",\"Sk\",\"Pc\",\"Ll\",\"So\",\"Lo\",\"Pi\",\"Cf\",\"No\",\"Pf\",\"Lt\",\"Lm\",\"Mn\",\"Me\",\"Mc\",\"Nl\",\"Zl\",\"Zp\",\"Cs\",\"Co\"],\"combiningClasses\":[\"Not_Reordered\",\"Above\",\"Above_Right\",\"Below\",\"Attached_Above_Right\",\"Attached_Below\",\"Overlay\",\"Iota_Subscript\",\"Double_Below\",\"Double_Above\",\"Below_Right\",\"Above_Left\",\"CCC10\",\"CCC11\",\"CCC12\",\"CCC13\",\"CCC14\",\"CCC15\",\"CCC16\",\"CCC17\",\"CCC18\",\"CCC19\",\"CCC20\",\"CCC21\",\"CCC22\",\"CCC23\",\"CCC24\",\"CCC25\",\"CCC30\",\"CCC31\",\"CCC32\",\"CCC27\",\"CCC28\",\"CCC29\",\"CCC33\",\"CCC34\",\"CCC35\",\"CCC36\",\"Nukta\",\"Virama\",\"CCC84\",\"CCC91\",\"CCC103\",\"CCC107\",\"CCC118\",\"CCC122\",\"CCC129\",\"CCC130\",\"CCC132\",\"Attached_Above\",\"Below_Left\",\"Left\",\"Kana_Voicing\",\"CCC26\",\"Right\"],\"scripts\":[\"Common\",\"Latin\",\"Bopomofo\",\"Inherited\",\"Greek\",\"Coptic\",\"Cyrillic\",\"Armenian\",\"Hebrew\",\"Arabic\",\"Syriac\",\"Thaana\",\"Nko\",\"Samaritan\",\"Mandaic\",\"Devanagari\",\"Bengali\",\"Gurmukhi\",\"Gujarati\",\"Oriya\",\"Tamil\",\"Telugu\",\"Kannada\",\"Malayalam\",\"Sinhala\",\"Thai\",\"Lao\",\"Tibetan\",\"Myanmar\",\"Georgian\",\"Hangul\",\"Ethiopic\",\"Cherokee\",\"Canadian_Aboriginal\",\"Ogham\",\"Runic\",\"Tagalog\",\"Hanunoo\",\"Buhid\",\"Tagbanwa\",\"Khmer\",\"Mongolian\",\"Limbu\",\"Tai_Le\",\"New_Tai_Lue\",\"Buginese\",\"Tai_Tham\",\"Balinese\",\"Sundanese\",\"Batak\",\"Lepcha\",\"Ol_Chiki\",\"Braille\",\"Glagolitic\",\"Tifinagh\",\"Han\",\"Hiragana\",\"Katakana\",\"Yi\",\"Lisu\",\"Vai\",\"Bamum\",\"Syloti_Nagri\",\"Phags_Pa\",\"Saurashtra\",\"Kayah_Li\",\"Rejang\",\"Javanese\",\"Cham\",\"Tai_Viet\",\"Meetei_Mayek\",\"null\",\"Linear_B\",\"Lycian\",\"Carian\",\"Old_Italic\",\"Gothic\",\"Old_Permic\",\"Ugaritic\",\"Old_Persian\",\"Deseret\",\"Shavian\",\"Osmanya\",\"Osage\",\"Elbasan\",\"Caucasian_Albanian\",\"Linear_A\",\"Cypriot\",\"Imperial_Aramaic\",\"Palmyrene\",\"Nabataean\",\"Hatran\",\"Phoenician\",\"Lydian\",\"Meroitic_Hieroglyphs\",\"Meroitic_Cursive\",\"Kharoshthi\",\"Old_South_Arabian\",\"Old_North_Arabian\",\"Manichaean\",\"Avestan\",\"Inscriptional_Parthian\",\"Inscriptional_Pahlavi\",\"Psalter_Pahlavi\",\"Old_Turkic\",\"Old_Hungarian\",\"Hanifi_Rohingya\",\"Old_Sogdian\",\"Sogdian\",\"Elymaic\",\"Brahmi\",\"Kaithi\",\"Sora_Sompeng\",\"Chakma\",\"Mahajani\",\"Sharada\",\"Khojki\",\"Multani\",\"Khudawadi\",\"Grantha\",\"Newa\",\"Tirhuta\",\"Siddham\",\"Modi\",\"Takri\",\"Ahom\",\"Dogra\",\"Warang_Citi\",\"Nandinagari\",\"Zanabazar_Square\",\"Soyombo\",\"Pau_Cin_Hau\",\"Bhaiksuki\",\"Marchen\",\"Masaram_Gondi\",\"Gunjala_Gondi\",\"Makasar\",\"Cuneiform\",\"Egyptian_Hieroglyphs\",\"Anatolian_Hieroglyphs\",\"Mro\",\"Bassa_Vah\",\"Pahawh_Hmong\",\"Medefaidrin\",\"Miao\",\"Tangut\",\"Nushu\",\"Duployan\",\"SignWriting\",\"Nyiakeng_Puachue_Hmong\",\"Wancho\",\"Mende_Kikakui\",\"Adlam\"],\"eaw\":[\"N\",\"Na\",\"A\",\"W\",\"H\",\"F\"]}');\n\n\nconst $747425b437e121da$var$trie = new (0, $bdjGp$unicodetrie)((0, $bdjGp$base64js).toByteArray(\"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\"));\nconst $747425b437e121da$var$log2 = Math.log2 || ((n)=>Math.log(n) / Math.LN2);\nconst $747425b437e121da$var$bits = (n)=>$747425b437e121da$var$log2(n) + 1 | 0;\n// compute the number of bits stored for each field\nconst $747425b437e121da$var$CATEGORY_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).categories.length - 1);\nconst $747425b437e121da$var$COMBINING_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).combiningClasses.length - 1);\nconst $747425b437e121da$var$SCRIPT_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).scripts.length - 1);\nconst $747425b437e121da$var$EAW_BITS = $747425b437e121da$var$bits((0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).eaw.length - 1);\nconst $747425b437e121da$var$NUMBER_BITS = 10;\n// compute shift and mask values for each field\nconst $747425b437e121da$var$CATEGORY_SHIFT = $747425b437e121da$var$COMBINING_BITS + $747425b437e121da$var$SCRIPT_BITS + $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$COMBINING_SHIFT = $747425b437e121da$var$SCRIPT_BITS + $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$SCRIPT_SHIFT = $747425b437e121da$var$EAW_BITS + $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$EAW_SHIFT = $747425b437e121da$var$NUMBER_BITS;\nconst $747425b437e121da$var$CATEGORY_MASK = (1 << $747425b437e121da$var$CATEGORY_BITS) - 1;\nconst $747425b437e121da$var$COMBINING_MASK = (1 << $747425b437e121da$var$COMBINING_BITS) - 1;\nconst $747425b437e121da$var$SCRIPT_MASK = (1 << $747425b437e121da$var$SCRIPT_BITS) - 1;\nconst $747425b437e121da$var$EAW_MASK = (1 << $747425b437e121da$var$EAW_BITS) - 1;\nconst $747425b437e121da$var$NUMBER_MASK = (1 << $747425b437e121da$var$NUMBER_BITS) - 1;\nfunction $747425b437e121da$export$410364bbb673ddbc(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).categories[val >> $747425b437e121da$var$CATEGORY_SHIFT & $747425b437e121da$var$CATEGORY_MASK];\n}\nfunction $747425b437e121da$export$c03b919c6651ed55(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).combiningClasses[val >> $747425b437e121da$var$COMBINING_SHIFT & $747425b437e121da$var$COMBINING_MASK];\n}\nfunction $747425b437e121da$export$941569448d136665(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).scripts[val >> $747425b437e121da$var$SCRIPT_SHIFT & $747425b437e121da$var$SCRIPT_MASK];\n}\nfunction $747425b437e121da$export$92f6187db8ca6d26(codePoint) {\n const val = $747425b437e121da$var$trie.get(codePoint);\n return (0, (/*@__PURE__*/$parcel$interopDefault($f4087201da764553$exports))).eaw[val >> $747425b437e121da$var$EAW_SHIFT & $747425b437e121da$var$EAW_MASK];\n}\nfunction $747425b437e121da$export$7d1258ebb7625a0d(codePoint) {\n let val = $747425b437e121da$var$trie.get(codePoint);\n let num = val & $747425b437e121da$var$NUMBER_MASK;\n if (num === 0) return null;\n else if (num <= 50) return num - 1;\n else if (num < 0x1e0) {\n const numerator = (num >> 4) - 12;\n const denominator = (num & 0xf) + 1;\n return numerator / denominator;\n } else if (num < 0x300) {\n val = (num >> 5) - 14;\n let exp = (num & 0x1f) + 2;\n while(exp > 0){\n val *= 10;\n exp--;\n }\n return val;\n } else {\n val = (num >> 2) - 0xbf;\n let exp = (num & 3) + 1;\n while(exp > 0){\n val *= 60;\n exp--;\n }\n return val;\n }\n}\nfunction $747425b437e121da$export$52c8ea63abd07594(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Lu\" || category === \"Ll\" || category === \"Lt\" || category === \"Lm\" || category === \"Lo\" || category === \"Nl\";\n}\nfunction $747425b437e121da$export$727d9dbc4fbb948f(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Nd\";\n}\nfunction $747425b437e121da$export$a5b49f4dc6a07d2c(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Pc\" || category === \"Pd\" || category === \"Pe\" || category === \"Pf\" || category === \"Pi\" || category === \"Po\" || category === \"Ps\";\n}\nfunction $747425b437e121da$export$7b6804e8df61fcf5(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Ll\";\n}\nfunction $747425b437e121da$export$aebd617640818cda(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Lu\";\n}\nfunction $747425b437e121da$export$de8b4ee23b2cf823(codePoint) {\n return $747425b437e121da$export$410364bbb673ddbc(codePoint) === \"Lt\";\n}\nfunction $747425b437e121da$export$3c52dd84024ae72c(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Zs\" || category === \"Zl\" || category === \"Zp\";\n}\nfunction $747425b437e121da$export$a11bdcffe109e74b(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Nd\" || category === \"No\" || category === \"Nl\" || category === \"Lu\" || category === \"Ll\" || category === \"Lt\" || category === \"Lm\" || category === \"Lo\" || category === \"Me\" || category === \"Mc\";\n}\nfunction $747425b437e121da$export$e33ad6871e762338(codePoint) {\n const category = $747425b437e121da$export$410364bbb673ddbc(codePoint);\n return category === \"Mn\" || category === \"Me\" || category === \"Mc\";\n}\nvar // Backwards compatibility.\n$747425b437e121da$export$2e2bcd8739ae039 = {\n getCategory: $747425b437e121da$export$410364bbb673ddbc,\n getCombiningClass: $747425b437e121da$export$c03b919c6651ed55,\n getScript: $747425b437e121da$export$941569448d136665,\n getEastAsianWidth: $747425b437e121da$export$92f6187db8ca6d26,\n getNumericValue: $747425b437e121da$export$7d1258ebb7625a0d,\n isAlphabetic: $747425b437e121da$export$52c8ea63abd07594,\n isDigit: $747425b437e121da$export$727d9dbc4fbb948f,\n isPunctuation: $747425b437e121da$export$a5b49f4dc6a07d2c,\n isLowerCase: $747425b437e121da$export$7b6804e8df61fcf5,\n isUpperCase: $747425b437e121da$export$aebd617640818cda,\n isTitleCase: $747425b437e121da$export$de8b4ee23b2cf823,\n isWhiteSpace: $747425b437e121da$export$3c52dd84024ae72c,\n isBaseForm: $747425b437e121da$export$a11bdcffe109e74b,\n isMark: $747425b437e121da$export$e33ad6871e762338\n};\n\n\nexport {$747425b437e121da$export$410364bbb673ddbc as getCategory, $747425b437e121da$export$c03b919c6651ed55 as getCombiningClass, $747425b437e121da$export$941569448d136665 as getScript, $747425b437e121da$export$92f6187db8ca6d26 as getEastAsianWidth, $747425b437e121da$export$7d1258ebb7625a0d as getNumericValue, $747425b437e121da$export$52c8ea63abd07594 as isAlphabetic, $747425b437e121da$export$727d9dbc4fbb948f as isDigit, $747425b437e121da$export$a5b49f4dc6a07d2c as isPunctuation, $747425b437e121da$export$7b6804e8df61fcf5 as isLowerCase, $747425b437e121da$export$aebd617640818cda as isUpperCase, $747425b437e121da$export$de8b4ee23b2cf823 as isTitleCase, $747425b437e121da$export$3c52dd84024ae72c as isWhiteSpace, $747425b437e121da$export$a11bdcffe109e74b as isBaseForm, $747425b437e121da$export$e33ad6871e762338 as isMark, $747425b437e121da$export$2e2bcd8739ae039 as default};\n//# sourceMappingURL=module.mjs.map\n","'use strict';\n\nvar INITIAL_STATE = 1;\nvar FAIL_STATE = 0;\n/**\n * A StateMachine represents a deterministic finite automaton.\n * It can perform matches over a sequence of values, similar to a regular expression.\n */\n\nclass StateMachine {\n constructor(dfa) {\n this.stateTable = dfa.stateTable;\n this.accepting = dfa.accepting;\n this.tags = dfa.tags;\n }\n /**\n * Returns an iterable object that yields pattern matches over the input sequence.\n * Matches are of the form [startIndex, endIndex, tags].\n */\n\n\n match(str) {\n var self = this;\n return {\n *[Symbol.iterator]() {\n var state = INITIAL_STATE;\n var startRun = null;\n var lastAccepting = null;\n var lastState = null;\n\n for (var p = 0; p < str.length; p++) {\n var c = str[p];\n lastState = state;\n state = self.stateTable[state][c];\n\n if (state === FAIL_STATE) {\n // yield the last match if any\n if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {\n yield [startRun, lastAccepting, self.tags[lastState]];\n } // reset the state as if we started over from the initial state\n\n\n state = self.stateTable[INITIAL_STATE][c];\n startRun = null;\n } // start a run if not in the failure state\n\n\n if (state !== FAIL_STATE && startRun == null) {\n startRun = p;\n } // if accepting, mark the potential match end\n\n\n if (self.accepting[state]) {\n lastAccepting = p;\n } // reset the state to the initial state if we get into the failure state\n\n\n if (state === FAIL_STATE) {\n state = INITIAL_STATE;\n }\n } // yield the last match if any\n\n\n if (startRun != null && lastAccepting != null && lastAccepting >= startRun) {\n yield [startRun, lastAccepting, self.tags[state]];\n }\n }\n\n };\n }\n /**\n * For each match over the input sequence, action functions matching\n * the tag definitions in the input pattern are called with the startIndex,\n * endIndex, and sub-match sequence.\n */\n\n\n apply(str, actions) {\n for (var [start, end, tags] of this.match(str)) {\n for (var tag of tags) {\n if (typeof actions[tag] === 'function') {\n actions[tag](start, end, str.slice(start, end + 1));\n }\n }\n }\n }\n\n}\n\nmodule.exports = StateMachine;\n//# sourceMappingURL=index.js.map\n","var clone = (function() {\n'use strict';\n\nfunction _instanceof(obj, type) {\n return type != null && obj instanceof type;\n}\n\nvar nativeMap;\ntry {\n nativeMap = Map;\n} catch(_) {\n // maybe a reference error because no `Map`. Give it a dummy value that no\n // value will ever be an instanceof.\n nativeMap = function() {};\n}\n\nvar nativeSet;\ntry {\n nativeSet = Set;\n} catch(_) {\n nativeSet = function() {};\n}\n\nvar nativePromise;\ntry {\n nativePromise = Promise;\n} catch(_) {\n nativePromise = function() {};\n}\n\n/**\n * Clones (copies) an Object using deep copying.\n *\n * This function supports circular references by default, but if you are certain\n * there are no circular references in your object, you can save some CPU time\n * by calling clone(obj, false).\n *\n * Caution: if `circular` is false and `parent` contains circular references,\n * your program may enter an infinite loop and crash.\n *\n * @param `parent` - the object to be cloned\n * @param `circular` - set to true if the object to be cloned may contain\n * circular references. (optional - true by default)\n * @param `depth` - set to a number if the object is only to be cloned to\n * a particular depth. (optional - defaults to Infinity)\n * @param `prototype` - sets the prototype to be used when cloning an object.\n * (optional - defaults to parent prototype).\n * @param `includeNonEnumerable` - set to true if the non-enumerable properties\n * should be cloned as well. Non-enumerable properties on the prototype\n * chain will be ignored. (optional - false by default)\n*/\nfunction clone(parent, circular, depth, prototype, includeNonEnumerable) {\n if (typeof circular === 'object') {\n depth = circular.depth;\n prototype = circular.prototype;\n includeNonEnumerable = circular.includeNonEnumerable;\n circular = circular.circular;\n }\n // maintain two arrays for circular references, where corresponding parents\n // and children have the same index\n var allParents = [];\n var allChildren = [];\n\n var useBuffer = typeof Buffer != 'undefined';\n\n if (typeof circular == 'undefined')\n circular = true;\n\n if (typeof depth == 'undefined')\n depth = Infinity;\n\n // recurse this function so we don't reset allParents and allChildren\n function _clone(parent, depth) {\n // cloning null always returns null\n if (parent === null)\n return null;\n\n if (depth === 0)\n return parent;\n\n var child;\n var proto;\n if (typeof parent != 'object') {\n return parent;\n }\n\n if (_instanceof(parent, nativeMap)) {\n child = new nativeMap();\n } else if (_instanceof(parent, nativeSet)) {\n child = new nativeSet();\n } else if (_instanceof(parent, nativePromise)) {\n child = new nativePromise(function (resolve, reject) {\n parent.then(function(value) {\n resolve(_clone(value, depth - 1));\n }, function(err) {\n reject(_clone(err, depth - 1));\n });\n });\n } else if (clone.__isArray(parent)) {\n child = [];\n } else if (clone.__isRegExp(parent)) {\n child = new RegExp(parent.source, __getRegExpFlags(parent));\n if (parent.lastIndex) child.lastIndex = parent.lastIndex;\n } else if (clone.__isDate(parent)) {\n child = new Date(parent.getTime());\n } else if (useBuffer && Buffer.isBuffer(parent)) {\n if (Buffer.allocUnsafe) {\n // Node.js >= 4.5.0\n child = Buffer.allocUnsafe(parent.length);\n } else {\n // Older Node.js versions\n child = new Buffer(parent.length);\n }\n parent.copy(child);\n return child;\n } else if (_instanceof(parent, Error)) {\n child = Object.create(parent);\n } else {\n if (typeof prototype == 'undefined') {\n proto = Object.getPrototypeOf(parent);\n child = Object.create(proto);\n }\n else {\n child = Object.create(prototype);\n proto = prototype;\n }\n }\n\n if (circular) {\n var index = allParents.indexOf(parent);\n\n if (index != -1) {\n return allChildren[index];\n }\n allParents.push(parent);\n allChildren.push(child);\n }\n\n if (_instanceof(parent, nativeMap)) {\n parent.forEach(function(value, key) {\n var keyChild = _clone(key, depth - 1);\n var valueChild = _clone(value, depth - 1);\n child.set(keyChild, valueChild);\n });\n }\n if (_instanceof(parent, nativeSet)) {\n parent.forEach(function(value) {\n var entryChild = _clone(value, depth - 1);\n child.add(entryChild);\n });\n }\n\n for (var i in parent) {\n var attrs;\n if (proto) {\n attrs = Object.getOwnPropertyDescriptor(proto, i);\n }\n\n if (attrs && attrs.set == null) {\n continue;\n }\n child[i] = _clone(parent[i], depth - 1);\n }\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(parent);\n for (var i = 0; i < symbols.length; i++) {\n // Don't need to worry about cloning a symbol because it is a primitive,\n // like a number or string.\n var symbol = symbols[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, symbol);\n if (descriptor && !descriptor.enumerable && !includeNonEnumerable) {\n continue;\n }\n child[symbol] = _clone(parent[symbol], depth - 1);\n if (!descriptor.enumerable) {\n Object.defineProperty(child, symbol, {\n enumerable: false\n });\n }\n }\n }\n\n if (includeNonEnumerable) {\n var allPropertyNames = Object.getOwnPropertyNames(parent);\n for (var i = 0; i < allPropertyNames.length; i++) {\n var propertyName = allPropertyNames[i];\n var descriptor = Object.getOwnPropertyDescriptor(parent, propertyName);\n if (descriptor && descriptor.enumerable) {\n continue;\n }\n child[propertyName] = _clone(parent[propertyName], depth - 1);\n Object.defineProperty(child, propertyName, {\n enumerable: false\n });\n }\n }\n\n return child;\n }\n\n return _clone(parent, depth);\n}\n\n/**\n * Simple flat clone using prototype, accepts only objects, usefull for property\n * override on FLAT configuration object (no nested props).\n *\n * USE WITH CAUTION! This may not behave as you wish if you do not know how this\n * works.\n */\nclone.clonePrototype = function clonePrototype(parent) {\n if (parent === null)\n return null;\n\n var c = function () {};\n c.prototype = parent;\n return new c();\n};\n\n// private utility functions\n\nfunction __objToStr(o) {\n return Object.prototype.toString.call(o);\n}\nclone.__objToStr = __objToStr;\n\nfunction __isDate(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Date]';\n}\nclone.__isDate = __isDate;\n\nfunction __isArray(o) {\n return typeof o === 'object' && __objToStr(o) === '[object Array]';\n}\nclone.__isArray = __isArray;\n\nfunction __isRegExp(o) {\n return typeof o === 'object' && __objToStr(o) === '[object RegExp]';\n}\nclone.__isRegExp = __isRegExp;\n\nfunction __getRegExpFlags(re) {\n var flags = '';\n if (re.global) flags += 'g';\n if (re.ignoreCase) flags += 'i';\n if (re.multiline) flags += 'm';\n return flags;\n}\nclone.__getRegExpFlags = __getRegExpFlags;\n\nreturn clone;\n})();\n\nif (typeof module === 'object' && module.exports) {\n module.exports = clone;\n}\n","function BrotliInput(buffer) {\n this.buffer = buffer;\n this.pos = 0;\n}\n\nBrotliInput.prototype.read = function(buf, i, count) {\n if (this.pos + count > this.buffer.length) {\n count = this.buffer.length - this.pos;\n }\n \n for (var p = 0; p < count; p++)\n buf[i + p] = this.buffer[this.pos + p];\n \n this.pos += count;\n return count;\n}\n\nexports.BrotliInput = BrotliInput;\n\nfunction BrotliOutput(buf) {\n this.buffer = buf;\n this.pos = 0;\n}\n\nBrotliOutput.prototype.write = function(buf, count) {\n if (this.pos + count > this.buffer.length)\n throw new Error('Output buffer is not large enough');\n \n this.buffer.set(buf.subarray(0, count), this.pos);\n this.pos += count;\n return count;\n};\n\nexports.BrotliOutput = BrotliOutput;\n","/* Copyright 2013 Google Inc. 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 Bit reading helpers\n*/\n\nvar BROTLI_READ_SIZE = 4096;\nvar BROTLI_IBUF_SIZE = (2 * BROTLI_READ_SIZE + 32);\nvar BROTLI_IBUF_MASK = (2 * BROTLI_READ_SIZE - 1);\n\nvar kBitMask = new Uint32Array([\n 0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767,\n 65535, 131071, 262143, 524287, 1048575, 2097151, 4194303, 8388607, 16777215\n]);\n\n/* Input byte buffer, consist of a ringbuffer and a \"slack\" region where */\n/* bytes from the start of the ringbuffer are copied. */\nfunction BrotliBitReader(input) {\n this.buf_ = new Uint8Array(BROTLI_IBUF_SIZE);\n this.input_ = input; /* input callback */\n \n this.reset();\n}\n\nBrotliBitReader.READ_SIZE = BROTLI_READ_SIZE;\nBrotliBitReader.IBUF_MASK = BROTLI_IBUF_MASK;\n\nBrotliBitReader.prototype.reset = function() {\n this.buf_ptr_ = 0; /* next input will write here */\n this.val_ = 0; /* pre-fetched bits */\n this.pos_ = 0; /* byte position in stream */\n this.bit_pos_ = 0; /* current bit-reading position in val_ */\n this.bit_end_pos_ = 0; /* bit-reading end position from LSB of val_ */\n this.eos_ = 0; /* input stream is finished */\n \n this.readMoreInput();\n for (var i = 0; i < 4; i++) {\n this.val_ |= this.buf_[this.pos_] << (8 * i);\n ++this.pos_;\n }\n \n return this.bit_end_pos_ > 0;\n};\n\n/* Fills up the input ringbuffer by calling the input callback.\n\n Does nothing if there are at least 32 bytes present after current position.\n\n Returns 0 if either:\n - the input callback returned an error, or\n - there is no more input and the position is past the end of the stream.\n\n After encountering the end of the input stream, 32 additional zero bytes are\n copied to the ringbuffer, therefore it is safe to call this function after\n every 32 bytes of input is read.\n*/\nBrotliBitReader.prototype.readMoreInput = function() {\n if (this.bit_end_pos_ > 256) {\n return;\n } else if (this.eos_) {\n if (this.bit_pos_ > this.bit_end_pos_)\n throw new Error('Unexpected end of input ' + this.bit_pos_ + ' ' + this.bit_end_pos_);\n } else {\n var dst = this.buf_ptr_;\n var bytes_read = this.input_.read(this.buf_, dst, BROTLI_READ_SIZE);\n if (bytes_read < 0) {\n throw new Error('Unexpected end of input');\n }\n \n if (bytes_read < BROTLI_READ_SIZE) {\n this.eos_ = 1;\n /* Store 32 bytes of zero after the stream end. */\n for (var p = 0; p < 32; p++)\n this.buf_[dst + bytes_read + p] = 0;\n }\n \n if (dst === 0) {\n /* Copy the head of the ringbuffer to the slack region. */\n for (var p = 0; p < 32; p++)\n this.buf_[(BROTLI_READ_SIZE << 1) + p] = this.buf_[p];\n\n this.buf_ptr_ = BROTLI_READ_SIZE;\n } else {\n this.buf_ptr_ = 0;\n }\n \n this.bit_end_pos_ += bytes_read << 3;\n }\n};\n\n/* Guarantees that there are at least 24 bits in the buffer. */\nBrotliBitReader.prototype.fillBitWindow = function() { \n while (this.bit_pos_ >= 8) {\n this.val_ >>>= 8;\n this.val_ |= this.buf_[this.pos_ & BROTLI_IBUF_MASK] << 24;\n ++this.pos_;\n this.bit_pos_ = this.bit_pos_ - 8 >>> 0;\n this.bit_end_pos_ = this.bit_end_pos_ - 8 >>> 0;\n }\n};\n\n/* Reads the specified number of bits from Read Buffer. */\nBrotliBitReader.prototype.readBits = function(n_bits) {\n if (32 - this.bit_pos_ < n_bits) {\n this.fillBitWindow();\n }\n \n var val = ((this.val_ >>> this.bit_pos_) & kBitMask[n_bits]);\n this.bit_pos_ += n_bits;\n return val;\n};\n\nmodule.exports = BrotliBitReader;\n","module.exports=\"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\";\n","var base64 = require('base64-js');\n\n/**\n * The normal dictionary-data.js is quite large, which makes it \n * unsuitable for browser usage. In order to make it smaller, \n * we read dictionary.bin, which is a compressed version of\n * the dictionary, and on initial load, Brotli decompresses \n * it's own dictionary. 😜\n */\nexports.init = function() {\n var BrotliDecompressBuffer = require('./decode').BrotliDecompressBuffer;\n var compressed = base64.toByteArray(require('./dictionary.bin.js'));\n return BrotliDecompressBuffer(compressed);\n};\n","/* Copyright 2013 Google Inc. 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 Collection of static dictionary words.\n*/\n\nvar data = require('./dictionary-data');\nexports.init = function() {\n exports.dictionary = data.init();\n};\n\nexports.offsetsByLength = new Uint32Array([\n 0, 0, 0, 0, 0, 4096, 9216, 21504, 35840, 44032,\n 53248, 63488, 74752, 87040, 93696, 100864, 104704, 106752, 108928, 113536,\n 115968, 118528, 119872, 121280, 122016,\n]);\n\nexports.sizeBitsByLength = new Uint8Array([\n 0, 0, 0, 0, 10, 10, 11, 11, 10, 10,\n 10, 10, 10, 9, 9, 8, 7, 7, 8, 7,\n 7, 6, 6, 5, 5,\n]);\n\nexports.minDictionaryWordLength = 4;\nexports.maxDictionaryWordLength = 24;\n","function HuffmanCode(bits, value) {\n this.bits = bits; /* number of bits used for this symbol */\n this.value = value; /* symbol value or table offset */\n}\n\nexports.HuffmanCode = HuffmanCode;\n\nvar MAX_LENGTH = 15;\n\n/* Returns reverse(reverse(key, len) + 1, len), where reverse(key, len) is the\n bit-wise reversal of the len least significant bits of key. */\nfunction GetNextKey(key, len) {\n var step = 1 << (len - 1);\n while (key & step) {\n step >>= 1;\n }\n return (key & (step - 1)) + step;\n}\n\n/* Stores code in table[0], table[step], table[2*step], ..., table[end] */\n/* Assumes that end is an integer multiple of step */\nfunction ReplicateValue(table, i, step, end, code) {\n do {\n end -= step;\n table[i + end] = new HuffmanCode(code.bits, code.value);\n } while (end > 0);\n}\n\n/* Returns the table width of the next 2nd level table. count is the histogram\n of bit lengths for the remaining symbols, len is the code length of the next\n processed symbol */\nfunction NextTableBitSize(count, len, root_bits) {\n var left = 1 << (len - root_bits);\n while (len < MAX_LENGTH) {\n left -= count[len];\n if (left <= 0) break;\n ++len;\n left <<= 1;\n }\n return len - root_bits;\n}\n\nexports.BrotliBuildHuffmanTable = function(root_table, table, root_bits, code_lengths, code_lengths_size) {\n var start_table = table;\n var code; /* current table entry */\n var len; /* current code length */\n var symbol; /* symbol index in original or sorted table */\n var key; /* reversed prefix code */\n var step; /* step size to replicate values in current table */\n var low; /* low bits for current root entry */\n var mask; /* mask for low bits */\n var table_bits; /* key length of current table */\n var table_size; /* size of current table */\n var total_size; /* sum of root table size and 2nd level table sizes */\n var sorted; /* symbols sorted by code length */\n var count = new Int32Array(MAX_LENGTH + 1); /* number of codes of each length */\n var offset = new Int32Array(MAX_LENGTH + 1); /* offsets in sorted table for each length */\n\n sorted = new Int32Array(code_lengths_size);\n\n /* build histogram of code lengths */\n for (symbol = 0; symbol < code_lengths_size; symbol++) {\n count[code_lengths[symbol]]++;\n }\n\n /* generate offsets into sorted symbol table by code length */\n offset[1] = 0;\n for (len = 1; len < MAX_LENGTH; len++) {\n offset[len + 1] = offset[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (symbol = 0; symbol < code_lengths_size; symbol++) {\n if (code_lengths[symbol] !== 0) {\n sorted[offset[code_lengths[symbol]]++] = symbol;\n }\n }\n \n table_bits = root_bits;\n table_size = 1 << table_bits;\n total_size = table_size;\n\n /* special case code with only one value */\n if (offset[MAX_LENGTH] === 1) {\n for (key = 0; key < total_size; ++key) {\n root_table[table + key] = new HuffmanCode(0, sorted[0] & 0xffff);\n }\n \n return total_size;\n }\n\n /* fill in root table */\n key = 0;\n symbol = 0;\n for (len = 1, step = 2; len <= root_bits; ++len, step <<= 1) {\n for (; count[len] > 0; --count[len]) {\n code = new HuffmanCode(len & 0xff, sorted[symbol++] & 0xffff);\n ReplicateValue(root_table, table + key, step, table_size, code);\n key = GetNextKey(key, len);\n }\n }\n\n /* fill in 2nd level tables and add pointers to root table */\n mask = total_size - 1;\n low = -1;\n for (len = root_bits + 1, step = 2; len <= MAX_LENGTH; ++len, step <<= 1) {\n for (; count[len] > 0; --count[len]) {\n if ((key & mask) !== low) {\n table += table_size;\n table_bits = NextTableBitSize(count, len, root_bits);\n table_size = 1 << table_bits;\n total_size += table_size;\n low = key & mask;\n root_table[start_table + low] = new HuffmanCode((table_bits + root_bits) & 0xff, ((table - start_table) - low) & 0xffff);\n }\n code = new HuffmanCode((len - root_bits) & 0xff, sorted[symbol++] & 0xffff);\n ReplicateValue(root_table, table + (key >> root_bits), step, table_size, code);\n key = GetNextKey(key, len);\n }\n }\n \n return total_size;\n}\n","/* Copyright 2013 Google Inc. 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 Lookup table to map the previous two bytes to a context id.\n\n There are four different context modeling modes defined here:\n CONTEXT_LSB6: context id is the least significant 6 bits of the last byte,\n CONTEXT_MSB6: context id is the most significant 6 bits of the last byte,\n CONTEXT_UTF8: second-order context model tuned for UTF8-encoded text,\n CONTEXT_SIGNED: second-order context model tuned for signed integers.\n\n The context id for the UTF8 context model is calculated as follows. If p1\n and p2 are the previous two bytes, we calcualte the context as\n\n context = kContextLookup[p1] | kContextLookup[p2 + 256].\n\n If the previous two bytes are ASCII characters (i.e. < 128), this will be\n equivalent to\n\n context = 4 * context1(p1) + context2(p2),\n\n where context1 is based on the previous byte in the following way:\n\n 0 : non-ASCII control\n 1 : \\t, \\n, \\r\n 2 : space\n 3 : other punctuation\n 4 : \" '\n 5 : %\n 6 : ( < [ {\n 7 : ) > ] }\n 8 : , ; :\n 9 : .\n 10 : =\n 11 : number\n 12 : upper-case vowel\n 13 : upper-case consonant\n 14 : lower-case vowel\n 15 : lower-case consonant\n\n and context2 is based on the second last byte:\n\n 0 : control, space\n 1 : punctuation\n 2 : upper-case letter, number\n 3 : lower-case letter\n\n If the last byte is ASCII, and the second last byte is not (in a valid UTF8\n stream it will be a continuation byte, value between 128 and 191), the\n context is the same as if the second last byte was an ASCII control or space.\n\n If the last byte is a UTF8 lead byte (value >= 192), then the next byte will\n be a continuation byte and the context id is 2 or 3 depending on the LSB of\n the last byte and to a lesser extent on the second last byte if it is ASCII.\n\n If the last byte is a UTF8 continuation byte, the second last byte can be:\n - continuation byte: the next byte is probably ASCII or lead byte (assuming\n 4-byte UTF8 characters are rare) and the context id is 0 or 1.\n - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1\n - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3\n\n The possible value combinations of the previous two bytes, the range of\n context ids and the type of the next byte is summarized in the table below:\n\n |--------\\-----------------------------------------------------------------|\n | \\ Last byte |\n | Second \\---------------------------------------------------------------|\n | last byte \\ ASCII | cont. byte | lead byte |\n | \\ (0-127) | (128-191) | (192-) |\n |=============|===================|=====================|==================|\n | ASCII | next: ASCII/lead | not valid | next: cont. |\n | (0-127) | context: 4 - 63 | | context: 2 - 3 |\n |-------------|-------------------|---------------------|------------------|\n | cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. |\n | (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 |\n |-------------|-------------------|---------------------|------------------|\n | lead byte | not valid | next: ASCII/lead | not valid |\n | (192-207) | | context: 0 - 1 | |\n |-------------|-------------------|---------------------|------------------|\n | lead byte | not valid | next: cont. | not valid |\n | (208-) | | context: 2 - 3 | |\n |-------------|-------------------|---------------------|------------------|\n\n The context id for the signed context mode is calculated as:\n\n context = (kContextLookup[512 + p1] << 3) | kContextLookup[512 + p2].\n\n For any context modeling modes, the context ids can be calculated by |-ing\n together two lookups from one table using context model dependent offsets:\n\n context = kContextLookup[offset1 + p1] | kContextLookup[offset2 + p2].\n\n where offset1 and offset2 are dependent on the context mode.\n*/\n\nvar CONTEXT_LSB6 = 0;\nvar CONTEXT_MSB6 = 1;\nvar CONTEXT_UTF8 = 2;\nvar CONTEXT_SIGNED = 3;\n\n/* Common context lookup table for all context modes. */\nexports.lookup = new Uint8Array([\n /* CONTEXT_UTF8, last byte. */\n /* ASCII range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 8, 12, 16, 12, 12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12,\n 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 32, 32, 24, 40, 28, 12,\n 12, 48, 52, 52, 52, 48, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48,\n 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24, 12, 28, 12, 12,\n 12, 56, 60, 60, 60, 56, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56,\n 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 24, 12, 28, 12, 0,\n /* UTF8 continuation byte range. */\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\n /* UTF8 lead byte range. */\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\n /* CONTEXT_UTF8 second last byte. */\n /* ASCII range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,\n 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,\n 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0,\n /* UTF8 continuation byte range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n /* UTF8 lead byte range. */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n /* CONTEXT_SIGNED, second last byte. */\n 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7,\n /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */\n 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\n 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\n 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\n 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56,\n /* CONTEXT_LSB6, last byte. */\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\n /* CONTEXT_MSB6, last byte. */\n 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3,\n 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,\n 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11,\n 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15,\n 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19,\n 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23,\n 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27,\n 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31,\n 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35,\n 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39,\n 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43,\n 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47,\n 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51,\n 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55,\n 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59,\n 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63,\n /* CONTEXT_{M,L}SB6, second last byte, */\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n]);\n\nexports.lookupOffsets = new Uint16Array([\n /* CONTEXT_LSB6 */\n 1024, 1536,\n /* CONTEXT_MSB6 */\n 1280, 1536,\n /* CONTEXT_UTF8 */\n 0, 256,\n /* CONTEXT_SIGNED */\n 768, 512,\n]);\n","/* Copyright 2013 Google Inc. 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 Lookup tables to map prefix codes to value ranges. This is used during\n decoding of the block lengths, literal insertion lengths and copy lengths.\n*/\n\n/* Represents the range of values belonging to a prefix code: */\n/* [offset, offset + 2^nbits) */\nfunction PrefixCodeRange(offset, nbits) {\n this.offset = offset;\n this.nbits = nbits;\n}\n\nexports.kBlockLengthPrefixCode = [\n new PrefixCodeRange(1, 2), new PrefixCodeRange(5, 2), new PrefixCodeRange(9, 2), new PrefixCodeRange(13, 2),\n new PrefixCodeRange(17, 3), new PrefixCodeRange(25, 3), new PrefixCodeRange(33, 3), new PrefixCodeRange(41, 3),\n new PrefixCodeRange(49, 4), new PrefixCodeRange(65, 4), new PrefixCodeRange(81, 4), new PrefixCodeRange(97, 4),\n new PrefixCodeRange(113, 5), new PrefixCodeRange(145, 5), new PrefixCodeRange(177, 5), new PrefixCodeRange(209, 5),\n new PrefixCodeRange(241, 6), new PrefixCodeRange(305, 6), new PrefixCodeRange(369, 7), new PrefixCodeRange(497, 8),\n new PrefixCodeRange(753, 9), new PrefixCodeRange(1265, 10), new PrefixCodeRange(2289, 11), new PrefixCodeRange(4337, 12),\n new PrefixCodeRange(8433, 13), new PrefixCodeRange(16625, 24)\n];\n\nexports.kInsertLengthPrefixCode = [\n new PrefixCodeRange(0, 0), new PrefixCodeRange(1, 0), new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0),\n new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0), new PrefixCodeRange(6, 1), new PrefixCodeRange(8, 1),\n new PrefixCodeRange(10, 2), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 3), new PrefixCodeRange(26, 3),\n new PrefixCodeRange(34, 4), new PrefixCodeRange(50, 4), new PrefixCodeRange(66, 5), new PrefixCodeRange(98, 5),\n new PrefixCodeRange(130, 6), new PrefixCodeRange(194, 7), new PrefixCodeRange(322, 8), new PrefixCodeRange(578, 9),\n new PrefixCodeRange(1090, 10), new PrefixCodeRange(2114, 12), new PrefixCodeRange(6210, 14), new PrefixCodeRange(22594, 24),\n];\n\nexports.kCopyLengthPrefixCode = [\n new PrefixCodeRange(2, 0), new PrefixCodeRange(3, 0), new PrefixCodeRange(4, 0), new PrefixCodeRange(5, 0),\n new PrefixCodeRange(6, 0), new PrefixCodeRange(7, 0), new PrefixCodeRange(8, 0), new PrefixCodeRange(9, 0),\n new PrefixCodeRange(10, 1), new PrefixCodeRange(12, 1), new PrefixCodeRange(14, 2), new PrefixCodeRange(18, 2),\n new PrefixCodeRange(22, 3), new PrefixCodeRange(30, 3), new PrefixCodeRange(38, 4), new PrefixCodeRange(54, 4),\n new PrefixCodeRange(70, 5), new PrefixCodeRange(102, 5), new PrefixCodeRange(134, 6), new PrefixCodeRange(198, 7),\n new PrefixCodeRange(326, 8), new PrefixCodeRange(582, 9), new PrefixCodeRange(1094, 10), new PrefixCodeRange(2118, 24),\n];\n\nexports.kInsertRangeLut = [\n 0, 0, 8, 8, 0, 16, 8, 16, 16,\n];\n\nexports.kCopyRangeLut = [\n 0, 8, 0, 8, 16, 0, 16, 8, 16,\n];\n","/* Copyright 2013 Google Inc. 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 Transformations on dictionary words.\n*/\n\nvar BrotliDictionary = require('./dictionary');\n\nvar kIdentity = 0;\nvar kOmitLast1 = 1;\nvar kOmitLast2 = 2;\nvar kOmitLast3 = 3;\nvar kOmitLast4 = 4;\nvar kOmitLast5 = 5;\nvar kOmitLast6 = 6;\nvar kOmitLast7 = 7;\nvar kOmitLast8 = 8;\nvar kOmitLast9 = 9;\nvar kUppercaseFirst = 10;\nvar kUppercaseAll = 11;\nvar kOmitFirst1 = 12;\nvar kOmitFirst2 = 13;\nvar kOmitFirst3 = 14;\nvar kOmitFirst4 = 15;\nvar kOmitFirst5 = 16;\nvar kOmitFirst6 = 17;\nvar kOmitFirst7 = 18;\nvar kOmitFirst8 = 19;\nvar kOmitFirst9 = 20;\n\nfunction Transform(prefix, transform, suffix) {\n this.prefix = new Uint8Array(prefix.length);\n this.transform = transform;\n this.suffix = new Uint8Array(suffix.length);\n \n for (var i = 0; i < prefix.length; i++)\n this.prefix[i] = prefix.charCodeAt(i);\n \n for (var i = 0; i < suffix.length; i++)\n this.suffix[i] = suffix.charCodeAt(i);\n}\n\nvar kTransforms = [\n new Transform( \"\", kIdentity, \"\" ),\n new Transform( \"\", kIdentity, \" \" ),\n new Transform( \" \", kIdentity, \" \" ),\n new Transform( \"\", kOmitFirst1, \"\" ),\n new Transform( \"\", kUppercaseFirst, \" \" ),\n new Transform( \"\", kIdentity, \" the \" ),\n new Transform( \" \", kIdentity, \"\" ),\n new Transform( \"s \", kIdentity, \" \" ),\n new Transform( \"\", kIdentity, \" of \" ),\n new Transform( \"\", kUppercaseFirst, \"\" ),\n new Transform( \"\", kIdentity, \" and \" ),\n new Transform( \"\", kOmitFirst2, \"\" ),\n new Transform( \"\", kOmitLast1, \"\" ),\n new Transform( \", \", kIdentity, \" \" ),\n new Transform( \"\", kIdentity, \", \" ),\n new Transform( \" \", kUppercaseFirst, \" \" ),\n new Transform( \"\", kIdentity, \" in \" ),\n new Transform( \"\", kIdentity, \" to \" ),\n new Transform( \"e \", kIdentity, \" \" ),\n new Transform( \"\", kIdentity, \"\\\"\" ),\n new Transform( \"\", kIdentity, \".\" ),\n new Transform( \"\", kIdentity, \"\\\">\" ),\n new Transform( \"\", kIdentity, \"\\n\" ),\n new Transform( \"\", kOmitLast3, \"\" ),\n new Transform( \"\", kIdentity, \"]\" ),\n new Transform( \"\", kIdentity, \" for \" ),\n new Transform( \"\", kOmitFirst3, \"\" ),\n new Transform( \"\", kOmitLast2, \"\" ),\n new Transform( \"\", kIdentity, \" a \" ),\n new Transform( \"\", kIdentity, \" that \" ),\n new Transform( \" \", kUppercaseFirst, \"\" ),\n new Transform( \"\", kIdentity, \". \" ),\n new Transform( \".\", kIdentity, \"\" ),\n new Transform( \" \", kIdentity, \", \" ),\n new Transform( \"\", kOmitFirst4, \"\" ),\n new Transform( \"\", kIdentity, \" with \" ),\n new Transform( \"\", kIdentity, \"'\" ),\n new Transform( \"\", kIdentity, \" from \" ),\n new Transform( \"\", kIdentity, \" by \" ),\n new Transform( \"\", kOmitFirst5, \"\" ),\n new Transform( \"\", kOmitFirst6, \"\" ),\n new Transform( \" the \", kIdentity, \"\" ),\n new Transform( \"\", kOmitLast4, \"\" ),\n new Transform( \"\", kIdentity, \". The \" ),\n new Transform( \"\", kUppercaseAll, \"\" ),\n new Transform( \"\", kIdentity, \" on \" ),\n new Transform( \"\", kIdentity, \" as \" ),\n new Transform( \"\", kIdentity, \" is \" ),\n new Transform( \"\", kOmitLast7, \"\" ),\n new Transform( \"\", kOmitLast1, \"ing \" ),\n new Transform( \"\", kIdentity, \"\\n\\t\" ),\n new Transform( \"\", kIdentity, \":\" ),\n new Transform( \" \", kIdentity, \". \" ),\n new Transform( \"\", kIdentity, \"ed \" ),\n new Transform( \"\", kOmitFirst9, \"\" ),\n new Transform( \"\", kOmitFirst7, \"\" ),\n new Transform( \"\", kOmitLast6, \"\" ),\n new Transform( \"\", kIdentity, \"(\" ),\n new Transform( \"\", kUppercaseFirst, \", \" ),\n new Transform( \"\", kOmitLast8, \"\" ),\n new Transform( \"\", kIdentity, \" at \" ),\n new Transform( \"\", kIdentity, \"ly \" ),\n new Transform( \" the \", kIdentity, \" of \" ),\n new Transform( \"\", kOmitLast5, \"\" ),\n new Transform( \"\", kOmitLast9, \"\" ),\n new Transform( \" \", kUppercaseFirst, \", \" ),\n new Transform( \"\", kUppercaseFirst, \"\\\"\" ),\n new Transform( \".\", kIdentity, \"(\" ),\n new Transform( \"\", kUppercaseAll, \" \" ),\n new Transform( \"\", kUppercaseFirst, \"\\\">\" ),\n new Transform( \"\", kIdentity, \"=\\\"\" ),\n new Transform( \" \", kIdentity, \".\" ),\n new Transform( \".com/\", kIdentity, \"\" ),\n new Transform( \" the \", kIdentity, \" of the \" ),\n new Transform( \"\", kUppercaseFirst, \"'\" ),\n new Transform( \"\", kIdentity, \". This \" ),\n new Transform( \"\", kIdentity, \",\" ),\n new Transform( \".\", kIdentity, \" \" ),\n new Transform( \"\", kUppercaseFirst, \"(\" ),\n new Transform( \"\", kUppercaseFirst, \".\" ),\n new Transform( \"\", kIdentity, \" not \" ),\n new Transform( \" \", kIdentity, \"=\\\"\" ),\n new Transform( \"\", kIdentity, \"er \" ),\n new Transform( \" \", kUppercaseAll, \" \" ),\n new Transform( \"\", kIdentity, \"al \" ),\n new Transform( \" \", kUppercaseAll, \"\" ),\n new Transform( \"\", kIdentity, \"='\" ),\n new Transform( \"\", kUppercaseAll, \"\\\"\" ),\n new Transform( \"\", kUppercaseFirst, \". \" ),\n new Transform( \" \", kIdentity, \"(\" ),\n new Transform( \"\", kIdentity, \"ful \" ),\n new Transform( \" \", kUppercaseFirst, \". \" ),\n new Transform( \"\", kIdentity, \"ive \" ),\n new Transform( \"\", kIdentity, \"less \" ),\n new Transform( \"\", kUppercaseAll, \"'\" ),\n new Transform( \"\", kIdentity, \"est \" ),\n new Transform( \" \", kUppercaseFirst, \".\" ),\n new Transform( \"\", kUppercaseAll, \"\\\">\" ),\n new Transform( \" \", kIdentity, \"='\" ),\n new Transform( \"\", kUppercaseFirst, \",\" ),\n new Transform( \"\", kIdentity, \"ize \" ),\n new Transform( \"\", kUppercaseAll, \".\" ),\n new Transform( \"\\xc2\\xa0\", kIdentity, \"\" ),\n new Transform( \" \", kIdentity, \",\" ),\n new Transform( \"\", kUppercaseFirst, \"=\\\"\" ),\n new Transform( \"\", kUppercaseAll, \"=\\\"\" ),\n new Transform( \"\", kIdentity, \"ous \" ),\n new Transform( \"\", kUppercaseAll, \", \" ),\n new Transform( \"\", kUppercaseFirst, \"='\" ),\n new Transform( \" \", kUppercaseFirst, \",\" ),\n new Transform( \" \", kUppercaseAll, \"=\\\"\" ),\n new Transform( \" \", kUppercaseAll, \", \" ),\n new Transform( \"\", kUppercaseAll, \",\" ),\n new Transform( \"\", kUppercaseAll, \"(\" ),\n new Transform( \"\", kUppercaseAll, \". \" ),\n new Transform( \" \", kUppercaseAll, \".\" ),\n new Transform( \"\", kUppercaseAll, \"='\" ),\n new Transform( \" \", kUppercaseAll, \". \" ),\n new Transform( \" \", kUppercaseFirst, \"=\\\"\" ),\n new Transform( \" \", kUppercaseAll, \"='\" ),\n new Transform( \" \", kUppercaseFirst, \"='\" )\n];\n\nexports.kTransforms = kTransforms;\nexports.kNumTransforms = kTransforms.length;\n\nfunction ToUpperCase(p, i) {\n if (p[i] < 0xc0) {\n if (p[i] >= 97 && p[i] <= 122) {\n p[i] ^= 32;\n }\n return 1;\n }\n \n /* An overly simplified uppercasing model for utf-8. */\n if (p[i] < 0xe0) {\n p[i + 1] ^= 32;\n return 2;\n }\n \n /* An arbitrary transform for three byte characters. */\n p[i + 2] ^= 5;\n return 3;\n}\n\nexports.transformDictionaryWord = function(dst, idx, word, len, transform) {\n var prefix = kTransforms[transform].prefix;\n var suffix = kTransforms[transform].suffix;\n var t = kTransforms[transform].transform;\n var skip = t < kOmitFirst1 ? 0 : t - (kOmitFirst1 - 1);\n var i = 0;\n var start_idx = idx;\n var uppercase;\n \n if (skip > len) {\n skip = len;\n }\n \n var prefix_pos = 0;\n while (prefix_pos < prefix.length) {\n dst[idx++] = prefix[prefix_pos++];\n }\n \n word += skip;\n len -= skip;\n \n if (t <= kOmitLast9) {\n len -= t;\n }\n \n for (i = 0; i < len; i++) {\n dst[idx++] = BrotliDictionary.dictionary[word + i];\n }\n \n uppercase = idx - len;\n \n if (t === kUppercaseFirst) {\n ToUpperCase(dst, uppercase);\n } else if (t === kUppercaseAll) {\n while (len > 0) {\n var step = ToUpperCase(dst, uppercase);\n uppercase += step;\n len -= step;\n }\n }\n \n var suffix_pos = 0;\n while (suffix_pos < suffix.length) {\n dst[idx++] = suffix[suffix_pos++];\n }\n \n return idx - start_idx;\n}\n","/* Copyright 2013 Google Inc. 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\nvar BrotliInput = require('./streams').BrotliInput;\nvar BrotliOutput = require('./streams').BrotliOutput;\nvar BrotliBitReader = require('./bit_reader');\nvar BrotliDictionary = require('./dictionary');\nvar HuffmanCode = require('./huffman').HuffmanCode;\nvar BrotliBuildHuffmanTable = require('./huffman').BrotliBuildHuffmanTable;\nvar Context = require('./context');\nvar Prefix = require('./prefix');\nvar Transform = require('./transform');\n\nvar kDefaultCodeLength = 8;\nvar kCodeLengthRepeatCode = 16;\nvar kNumLiteralCodes = 256;\nvar kNumInsertAndCopyCodes = 704;\nvar kNumBlockLengthCodes = 26;\nvar kLiteralContextBits = 6;\nvar kDistanceContextBits = 2;\n\nvar HUFFMAN_TABLE_BITS = 8;\nvar HUFFMAN_TABLE_MASK = 0xff;\n/* Maximum possible Huffman table size for an alphabet size of 704, max code\n * length 15 and root table bits 8. */\nvar HUFFMAN_MAX_TABLE_SIZE = 1080;\n\nvar CODE_LENGTH_CODES = 18;\nvar kCodeLengthCodeOrder = new Uint8Array([\n 1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n]);\n\nvar NUM_DISTANCE_SHORT_CODES = 16;\nvar kDistanceShortCodeIndexOffset = new Uint8Array([\n 3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2\n]);\n\nvar kDistanceShortCodeValueOffset = new Int8Array([\n 0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3\n]);\n\nvar kMaxHuffmanTableSize = new Uint16Array([\n 256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822,\n 854, 886, 920, 952, 984, 1016, 1048, 1080\n]);\n\nfunction DecodeWindowBits(br) {\n var n;\n if (br.readBits(1) === 0) {\n return 16;\n }\n \n n = br.readBits(3);\n if (n > 0) {\n return 17 + n;\n }\n \n n = br.readBits(3);\n if (n > 0) {\n return 8 + n;\n }\n \n return 17;\n}\n\n/* Decodes a number in the range [0..255], by reading 1 - 11 bits. */\nfunction DecodeVarLenUint8(br) {\n if (br.readBits(1)) {\n var nbits = br.readBits(3);\n if (nbits === 0) {\n return 1;\n } else {\n return br.readBits(nbits) + (1 << nbits);\n }\n }\n return 0;\n}\n\nfunction MetaBlockLength() {\n this.meta_block_length = 0;\n this.input_end = 0;\n this.is_uncompressed = 0;\n this.is_metadata = false;\n}\n\nfunction DecodeMetaBlockLength(br) {\n var out = new MetaBlockLength; \n var size_nibbles;\n var size_bytes;\n var i;\n \n out.input_end = br.readBits(1);\n if (out.input_end && br.readBits(1)) {\n return out;\n }\n \n size_nibbles = br.readBits(2) + 4;\n if (size_nibbles === 7) {\n out.is_metadata = true;\n \n if (br.readBits(1) !== 0)\n throw new Error('Invalid reserved bit');\n \n size_bytes = br.readBits(2);\n if (size_bytes === 0)\n return out;\n \n for (i = 0; i < size_bytes; i++) {\n var next_byte = br.readBits(8);\n if (i + 1 === size_bytes && size_bytes > 1 && next_byte === 0)\n throw new Error('Invalid size byte');\n \n out.meta_block_length |= next_byte << (i * 8);\n }\n } else {\n for (i = 0; i < size_nibbles; ++i) {\n var next_nibble = br.readBits(4);\n if (i + 1 === size_nibbles && size_nibbles > 4 && next_nibble === 0)\n throw new Error('Invalid size nibble');\n \n out.meta_block_length |= next_nibble << (i * 4);\n }\n }\n \n ++out.meta_block_length;\n \n if (!out.input_end && !out.is_metadata) {\n out.is_uncompressed = br.readBits(1);\n }\n \n return out;\n}\n\n/* Decodes the next Huffman code from bit-stream. */\nfunction ReadSymbol(table, index, br) {\n var start_index = index;\n \n var nbits;\n br.fillBitWindow();\n index += (br.val_ >>> br.bit_pos_) & HUFFMAN_TABLE_MASK;\n nbits = table[index].bits - HUFFMAN_TABLE_BITS;\n if (nbits > 0) {\n br.bit_pos_ += HUFFMAN_TABLE_BITS;\n index += table[index].value;\n index += (br.val_ >>> br.bit_pos_) & ((1 << nbits) - 1);\n }\n br.bit_pos_ += table[index].bits;\n return table[index].value;\n}\n\nfunction ReadHuffmanCodeLengths(code_length_code_lengths, num_symbols, code_lengths, br) {\n var symbol = 0;\n var prev_code_len = kDefaultCodeLength;\n var repeat = 0;\n var repeat_code_len = 0;\n var space = 32768;\n \n var table = [];\n for (var i = 0; i < 32; i++)\n table.push(new HuffmanCode(0, 0));\n \n BrotliBuildHuffmanTable(table, 0, 5, code_length_code_lengths, CODE_LENGTH_CODES);\n\n while (symbol < num_symbols && space > 0) {\n var p = 0;\n var code_len;\n \n br.readMoreInput();\n br.fillBitWindow();\n p += (br.val_ >>> br.bit_pos_) & 31;\n br.bit_pos_ += table[p].bits;\n code_len = table[p].value & 0xff;\n if (code_len < kCodeLengthRepeatCode) {\n repeat = 0;\n code_lengths[symbol++] = code_len;\n if (code_len !== 0) {\n prev_code_len = code_len;\n space -= 32768 >> code_len;\n }\n } else {\n var extra_bits = code_len - 14;\n var old_repeat;\n var repeat_delta;\n var new_len = 0;\n if (code_len === kCodeLengthRepeatCode) {\n new_len = prev_code_len;\n }\n if (repeat_code_len !== new_len) {\n repeat = 0;\n repeat_code_len = new_len;\n }\n old_repeat = repeat;\n if (repeat > 0) {\n repeat -= 2;\n repeat <<= extra_bits;\n }\n repeat += br.readBits(extra_bits) + 3;\n repeat_delta = repeat - old_repeat;\n if (symbol + repeat_delta > num_symbols) {\n throw new Error('[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols');\n }\n \n for (var x = 0; x < repeat_delta; x++)\n code_lengths[symbol + x] = repeat_code_len;\n \n symbol += repeat_delta;\n \n if (repeat_code_len !== 0) {\n space -= repeat_delta << (15 - repeat_code_len);\n }\n }\n }\n if (space !== 0) {\n throw new Error(\"[ReadHuffmanCodeLengths] space = \" + space);\n }\n \n for (; symbol < num_symbols; symbol++)\n code_lengths[symbol] = 0;\n}\n\nfunction ReadHuffmanCode(alphabet_size, tables, table, br) {\n var table_size = 0;\n var simple_code_or_skip;\n var code_lengths = new Uint8Array(alphabet_size);\n \n br.readMoreInput();\n \n /* simple_code_or_skip is used as follows:\n 1 for simple code;\n 0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */\n simple_code_or_skip = br.readBits(2);\n if (simple_code_or_skip === 1) {\n /* Read symbols, codes & code lengths directly. */\n var i;\n var max_bits_counter = alphabet_size - 1;\n var max_bits = 0;\n var symbols = new Int32Array(4);\n var num_symbols = br.readBits(2) + 1;\n while (max_bits_counter) {\n max_bits_counter >>= 1;\n ++max_bits;\n }\n\n for (i = 0; i < num_symbols; ++i) {\n symbols[i] = br.readBits(max_bits) % alphabet_size;\n code_lengths[symbols[i]] = 2;\n }\n code_lengths[symbols[0]] = 1;\n switch (num_symbols) {\n case 1:\n break;\n case 3:\n if ((symbols[0] === symbols[1]) ||\n (symbols[0] === symbols[2]) ||\n (symbols[1] === symbols[2])) {\n throw new Error('[ReadHuffmanCode] invalid symbols');\n }\n break;\n case 2:\n if (symbols[0] === symbols[1]) {\n throw new Error('[ReadHuffmanCode] invalid symbols');\n }\n \n code_lengths[symbols[1]] = 1;\n break;\n case 4:\n if ((symbols[0] === symbols[1]) ||\n (symbols[0] === symbols[2]) ||\n (symbols[0] === symbols[3]) ||\n (symbols[1] === symbols[2]) ||\n (symbols[1] === symbols[3]) ||\n (symbols[2] === symbols[3])) {\n throw new Error('[ReadHuffmanCode] invalid symbols');\n }\n \n if (br.readBits(1)) {\n code_lengths[symbols[2]] = 3;\n code_lengths[symbols[3]] = 3;\n } else {\n code_lengths[symbols[0]] = 2;\n }\n break;\n }\n } else { /* Decode Huffman-coded code lengths. */\n var i;\n var code_length_code_lengths = new Uint8Array(CODE_LENGTH_CODES);\n var space = 32;\n var num_codes = 0;\n /* Static Huffman code for the code length code lengths */\n var huff = [\n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), \n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 1),\n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(3, 2), \n new HuffmanCode(2, 0), new HuffmanCode(2, 4), new HuffmanCode(2, 3), new HuffmanCode(4, 5)\n ];\n for (i = simple_code_or_skip; i < CODE_LENGTH_CODES && space > 0; ++i) {\n var code_len_idx = kCodeLengthCodeOrder[i];\n var p = 0;\n var v;\n br.fillBitWindow();\n p += (br.val_ >>> br.bit_pos_) & 15;\n br.bit_pos_ += huff[p].bits;\n v = huff[p].value;\n code_length_code_lengths[code_len_idx] = v;\n if (v !== 0) {\n space -= (32 >> v);\n ++num_codes;\n }\n }\n \n if (!(num_codes === 1 || space === 0))\n throw new Error('[ReadHuffmanCode] invalid num_codes or space');\n \n ReadHuffmanCodeLengths(code_length_code_lengths, alphabet_size, code_lengths, br);\n }\n \n table_size = BrotliBuildHuffmanTable(tables, table, HUFFMAN_TABLE_BITS, code_lengths, alphabet_size);\n \n if (table_size === 0) {\n throw new Error(\"[ReadHuffmanCode] BuildHuffmanTable failed: \");\n }\n \n return table_size;\n}\n\nfunction ReadBlockLength(table, index, br) {\n var code;\n var nbits;\n code = ReadSymbol(table, index, br);\n nbits = Prefix.kBlockLengthPrefixCode[code].nbits;\n return Prefix.kBlockLengthPrefixCode[code].offset + br.readBits(nbits);\n}\n\nfunction TranslateShortCodes(code, ringbuffer, index) {\n var val;\n if (code < NUM_DISTANCE_SHORT_CODES) {\n index += kDistanceShortCodeIndexOffset[code];\n index &= 3;\n val = ringbuffer[index] + kDistanceShortCodeValueOffset[code];\n } else {\n val = code - NUM_DISTANCE_SHORT_CODES + 1;\n }\n return val;\n}\n\nfunction MoveToFront(v, index) {\n var value = v[index];\n var i = index;\n for (; i; --i) v[i] = v[i - 1];\n v[0] = value;\n}\n\nfunction InverseMoveToFrontTransform(v, v_len) {\n var mtf = new Uint8Array(256);\n var i;\n for (i = 0; i < 256; ++i) {\n mtf[i] = i;\n }\n for (i = 0; i < v_len; ++i) {\n var index = v[i];\n v[i] = mtf[index];\n if (index) MoveToFront(mtf, index);\n }\n}\n\n/* Contains a collection of huffman trees with the same alphabet size. */\nfunction HuffmanTreeGroup(alphabet_size, num_htrees) {\n this.alphabet_size = alphabet_size;\n this.num_htrees = num_htrees;\n this.codes = new Array(num_htrees + num_htrees * kMaxHuffmanTableSize[(alphabet_size + 31) >>> 5]); \n this.htrees = new Uint32Array(num_htrees);\n}\n\nHuffmanTreeGroup.prototype.decode = function(br) {\n var i;\n var table_size;\n var next = 0;\n for (i = 0; i < this.num_htrees; ++i) {\n this.htrees[i] = next;\n table_size = ReadHuffmanCode(this.alphabet_size, this.codes, next, br);\n next += table_size;\n }\n};\n\nfunction DecodeContextMap(context_map_size, br) {\n var out = { num_htrees: null, context_map: null };\n var use_rle_for_zeros;\n var max_run_length_prefix = 0;\n var table;\n var i;\n \n br.readMoreInput();\n var num_htrees = out.num_htrees = DecodeVarLenUint8(br) + 1;\n\n var context_map = out.context_map = new Uint8Array(context_map_size);\n if (num_htrees <= 1) {\n return out;\n }\n\n use_rle_for_zeros = br.readBits(1);\n if (use_rle_for_zeros) {\n max_run_length_prefix = br.readBits(4) + 1;\n }\n \n table = [];\n for (i = 0; i < HUFFMAN_MAX_TABLE_SIZE; i++) {\n table[i] = new HuffmanCode(0, 0);\n }\n \n ReadHuffmanCode(num_htrees + max_run_length_prefix, table, 0, br);\n \n for (i = 0; i < context_map_size;) {\n var code;\n\n br.readMoreInput();\n code = ReadSymbol(table, 0, br);\n if (code === 0) {\n context_map[i] = 0;\n ++i;\n } else if (code <= max_run_length_prefix) {\n var reps = 1 + (1 << code) + br.readBits(code);\n while (--reps) {\n if (i >= context_map_size) {\n throw new Error(\"[DecodeContextMap] i >= context_map_size\");\n }\n context_map[i] = 0;\n ++i;\n }\n } else {\n context_map[i] = code - max_run_length_prefix;\n ++i;\n }\n }\n if (br.readBits(1)) {\n InverseMoveToFrontTransform(context_map, context_map_size);\n }\n \n return out;\n}\n\nfunction DecodeBlockType(max_block_type, trees, tree_type, block_types, ringbuffers, indexes, br) {\n var ringbuffer = tree_type * 2;\n var index = tree_type;\n var type_code = ReadSymbol(trees, tree_type * HUFFMAN_MAX_TABLE_SIZE, br);\n var block_type;\n if (type_code === 0) {\n block_type = ringbuffers[ringbuffer + (indexes[index] & 1)];\n } else if (type_code === 1) {\n block_type = ringbuffers[ringbuffer + ((indexes[index] - 1) & 1)] + 1;\n } else {\n block_type = type_code - 2;\n }\n if (block_type >= max_block_type) {\n block_type -= max_block_type;\n }\n block_types[tree_type] = block_type;\n ringbuffers[ringbuffer + (indexes[index] & 1)] = block_type;\n ++indexes[index];\n}\n\nfunction CopyUncompressedBlockToOutput(output, len, pos, ringbuffer, ringbuffer_mask, br) {\n var rb_size = ringbuffer_mask + 1;\n var rb_pos = pos & ringbuffer_mask;\n var br_pos = br.pos_ & BrotliBitReader.IBUF_MASK;\n var nbytes;\n\n /* For short lengths copy byte-by-byte */\n if (len < 8 || br.bit_pos_ + (len << 3) < br.bit_end_pos_) {\n while (len-- > 0) {\n br.readMoreInput();\n ringbuffer[rb_pos++] = br.readBits(8);\n if (rb_pos === rb_size) {\n output.write(ringbuffer, rb_size);\n rb_pos = 0;\n }\n }\n return;\n }\n\n if (br.bit_end_pos_ < 32) {\n throw new Error('[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32');\n }\n\n /* Copy remaining 0-4 bytes from br.val_ to ringbuffer. */\n while (br.bit_pos_ < 32) {\n ringbuffer[rb_pos] = (br.val_ >>> br.bit_pos_);\n br.bit_pos_ += 8;\n ++rb_pos;\n --len;\n }\n\n /* Copy remaining bytes from br.buf_ to ringbuffer. */\n nbytes = (br.bit_end_pos_ - br.bit_pos_) >> 3;\n if (br_pos + nbytes > BrotliBitReader.IBUF_MASK) {\n var tail = BrotliBitReader.IBUF_MASK + 1 - br_pos;\n for (var x = 0; x < tail; x++)\n ringbuffer[rb_pos + x] = br.buf_[br_pos + x];\n \n nbytes -= tail;\n rb_pos += tail;\n len -= tail;\n br_pos = 0;\n }\n\n for (var x = 0; x < nbytes; x++)\n ringbuffer[rb_pos + x] = br.buf_[br_pos + x];\n \n rb_pos += nbytes;\n len -= nbytes;\n\n /* If we wrote past the logical end of the ringbuffer, copy the tail of the\n ringbuffer to its beginning and flush the ringbuffer to the output. */\n if (rb_pos >= rb_size) {\n output.write(ringbuffer, rb_size);\n rb_pos -= rb_size; \n for (var x = 0; x < rb_pos; x++)\n ringbuffer[x] = ringbuffer[rb_size + x];\n }\n\n /* If we have more to copy than the remaining size of the ringbuffer, then we\n first fill the ringbuffer from the input and then flush the ringbuffer to\n the output */\n while (rb_pos + len >= rb_size) {\n nbytes = rb_size - rb_pos;\n if (br.input_.read(ringbuffer, rb_pos, nbytes) < nbytes) {\n throw new Error('[CopyUncompressedBlockToOutput] not enough bytes');\n }\n output.write(ringbuffer, rb_size);\n len -= nbytes;\n rb_pos = 0;\n }\n\n /* Copy straight from the input onto the ringbuffer. The ringbuffer will be\n flushed to the output at a later time. */\n if (br.input_.read(ringbuffer, rb_pos, len) < len) {\n throw new Error('[CopyUncompressedBlockToOutput] not enough bytes');\n }\n\n /* Restore the state of the bit reader. */\n br.reset();\n}\n\n/* Advances the bit reader position to the next byte boundary and verifies\n that any skipped bits are set to zero. */\nfunction JumpToByteBoundary(br) {\n var new_bit_pos = (br.bit_pos_ + 7) & ~7;\n var pad_bits = br.readBits(new_bit_pos - br.bit_pos_);\n return pad_bits == 0;\n}\n\nfunction BrotliDecompressedSize(buffer) {\n var input = new BrotliInput(buffer);\n var br = new BrotliBitReader(input);\n DecodeWindowBits(br);\n var out = DecodeMetaBlockLength(br);\n return out.meta_block_length;\n}\n\nexports.BrotliDecompressedSize = BrotliDecompressedSize;\n\nfunction BrotliDecompressBuffer(buffer, output_size) {\n var input = new BrotliInput(buffer);\n \n if (output_size == null) {\n output_size = BrotliDecompressedSize(buffer);\n }\n \n var output_buffer = new Uint8Array(output_size);\n var output = new BrotliOutput(output_buffer);\n \n BrotliDecompress(input, output);\n \n if (output.pos < output.buffer.length) {\n output.buffer = output.buffer.subarray(0, output.pos);\n }\n \n return output.buffer;\n}\n\nexports.BrotliDecompressBuffer = BrotliDecompressBuffer;\n\nfunction BrotliDecompress(input, output) {\n var i;\n var pos = 0;\n var input_end = 0;\n var window_bits = 0;\n var max_backward_distance;\n var max_distance = 0;\n var ringbuffer_size;\n var ringbuffer_mask;\n var ringbuffer;\n var ringbuffer_end;\n /* This ring buffer holds a few past copy distances that will be used by */\n /* some special distance codes. */\n var dist_rb = [ 16, 15, 11, 4 ];\n var dist_rb_idx = 0;\n /* The previous 2 bytes used for context. */\n var prev_byte1 = 0;\n var prev_byte2 = 0;\n var hgroup = [new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0), new HuffmanTreeGroup(0, 0)];\n var block_type_trees;\n var block_len_trees;\n var br;\n\n /* We need the slack region for the following reasons:\n - always doing two 8-byte copies for fast backward copying\n - transforms\n - flushing the input ringbuffer when decoding uncompressed blocks */\n var kRingBufferWriteAheadSlack = 128 + BrotliBitReader.READ_SIZE;\n\n br = new BrotliBitReader(input);\n\n /* Decode window size. */\n window_bits = DecodeWindowBits(br);\n max_backward_distance = (1 << window_bits) - 16;\n\n ringbuffer_size = 1 << window_bits;\n ringbuffer_mask = ringbuffer_size - 1;\n ringbuffer = new Uint8Array(ringbuffer_size + kRingBufferWriteAheadSlack + BrotliDictionary.maxDictionaryWordLength);\n ringbuffer_end = ringbuffer_size;\n\n block_type_trees = [];\n block_len_trees = [];\n for (var x = 0; x < 3 * HUFFMAN_MAX_TABLE_SIZE; x++) {\n block_type_trees[x] = new HuffmanCode(0, 0);\n block_len_trees[x] = new HuffmanCode(0, 0);\n }\n\n while (!input_end) {\n var meta_block_remaining_len = 0;\n var is_uncompressed;\n var block_length = [ 1 << 28, 1 << 28, 1 << 28 ];\n var block_type = [ 0 ];\n var num_block_types = [ 1, 1, 1 ];\n var block_type_rb = [ 0, 1, 0, 1, 0, 1 ];\n var block_type_rb_index = [ 0 ];\n var distance_postfix_bits;\n var num_direct_distance_codes;\n var distance_postfix_mask;\n var num_distance_codes;\n var context_map = null;\n var context_modes = null;\n var num_literal_htrees;\n var dist_context_map = null;\n var num_dist_htrees;\n var context_offset = 0;\n var context_map_slice = null;\n var literal_htree_index = 0;\n var dist_context_offset = 0;\n var dist_context_map_slice = null;\n var dist_htree_index = 0;\n var context_lookup_offset1 = 0;\n var context_lookup_offset2 = 0;\n var context_mode;\n var htree_command;\n\n for (i = 0; i < 3; ++i) {\n hgroup[i].codes = null;\n hgroup[i].htrees = null;\n }\n\n br.readMoreInput();\n \n var _out = DecodeMetaBlockLength(br);\n meta_block_remaining_len = _out.meta_block_length;\n if (pos + meta_block_remaining_len > output.buffer.length) {\n /* We need to grow the output buffer to fit the additional data. */\n var tmp = new Uint8Array( pos + meta_block_remaining_len );\n tmp.set( output.buffer );\n output.buffer = tmp;\n } \n input_end = _out.input_end;\n is_uncompressed = _out.is_uncompressed;\n \n if (_out.is_metadata) {\n JumpToByteBoundary(br);\n \n for (; meta_block_remaining_len > 0; --meta_block_remaining_len) {\n br.readMoreInput();\n /* Read one byte and ignore it. */\n br.readBits(8);\n }\n \n continue;\n }\n \n if (meta_block_remaining_len === 0) {\n continue;\n }\n \n if (is_uncompressed) {\n br.bit_pos_ = (br.bit_pos_ + 7) & ~7;\n CopyUncompressedBlockToOutput(output, meta_block_remaining_len, pos,\n ringbuffer, ringbuffer_mask, br);\n pos += meta_block_remaining_len;\n continue;\n }\n \n for (i = 0; i < 3; ++i) {\n num_block_types[i] = DecodeVarLenUint8(br) + 1;\n if (num_block_types[i] >= 2) {\n ReadHuffmanCode(num_block_types[i] + 2, block_type_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n ReadHuffmanCode(kNumBlockLengthCodes, block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n block_length[i] = ReadBlockLength(block_len_trees, i * HUFFMAN_MAX_TABLE_SIZE, br);\n block_type_rb_index[i] = 1;\n }\n }\n \n br.readMoreInput();\n \n distance_postfix_bits = br.readBits(2);\n num_direct_distance_codes = NUM_DISTANCE_SHORT_CODES + (br.readBits(4) << distance_postfix_bits);\n distance_postfix_mask = (1 << distance_postfix_bits) - 1;\n num_distance_codes = (num_direct_distance_codes + (48 << distance_postfix_bits));\n context_modes = new Uint8Array(num_block_types[0]);\n\n for (i = 0; i < num_block_types[0]; ++i) {\n br.readMoreInput();\n context_modes[i] = (br.readBits(2) << 1);\n }\n \n var _o1 = DecodeContextMap(num_block_types[0] << kLiteralContextBits, br);\n num_literal_htrees = _o1.num_htrees;\n context_map = _o1.context_map;\n \n var _o2 = DecodeContextMap(num_block_types[2] << kDistanceContextBits, br);\n num_dist_htrees = _o2.num_htrees;\n dist_context_map = _o2.context_map;\n \n hgroup[0] = new HuffmanTreeGroup(kNumLiteralCodes, num_literal_htrees);\n hgroup[1] = new HuffmanTreeGroup(kNumInsertAndCopyCodes, num_block_types[1]);\n hgroup[2] = new HuffmanTreeGroup(num_distance_codes, num_dist_htrees);\n\n for (i = 0; i < 3; ++i) {\n hgroup[i].decode(br);\n }\n\n context_map_slice = 0;\n dist_context_map_slice = 0;\n context_mode = context_modes[block_type[0]];\n context_lookup_offset1 = Context.lookupOffsets[context_mode];\n context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];\n htree_command = hgroup[1].htrees[0];\n\n while (meta_block_remaining_len > 0) {\n var cmd_code;\n var range_idx;\n var insert_code;\n var copy_code;\n var insert_length;\n var copy_length;\n var distance_code;\n var distance;\n var context;\n var j;\n var copy_dst;\n\n br.readMoreInput();\n \n if (block_length[1] === 0) {\n DecodeBlockType(num_block_types[1],\n block_type_trees, 1, block_type, block_type_rb,\n block_type_rb_index, br);\n block_length[1] = ReadBlockLength(block_len_trees, HUFFMAN_MAX_TABLE_SIZE, br);\n htree_command = hgroup[1].htrees[block_type[1]];\n }\n --block_length[1];\n cmd_code = ReadSymbol(hgroup[1].codes, htree_command, br);\n range_idx = cmd_code >> 6;\n if (range_idx >= 2) {\n range_idx -= 2;\n distance_code = -1;\n } else {\n distance_code = 0;\n }\n insert_code = Prefix.kInsertRangeLut[range_idx] + ((cmd_code >> 3) & 7);\n copy_code = Prefix.kCopyRangeLut[range_idx] + (cmd_code & 7);\n insert_length = Prefix.kInsertLengthPrefixCode[insert_code].offset +\n br.readBits(Prefix.kInsertLengthPrefixCode[insert_code].nbits);\n copy_length = Prefix.kCopyLengthPrefixCode[copy_code].offset +\n br.readBits(Prefix.kCopyLengthPrefixCode[copy_code].nbits);\n prev_byte1 = ringbuffer[pos-1 & ringbuffer_mask];\n prev_byte2 = ringbuffer[pos-2 & ringbuffer_mask];\n for (j = 0; j < insert_length; ++j) {\n br.readMoreInput();\n\n if (block_length[0] === 0) {\n DecodeBlockType(num_block_types[0],\n block_type_trees, 0, block_type, block_type_rb,\n block_type_rb_index, br);\n block_length[0] = ReadBlockLength(block_len_trees, 0, br);\n context_offset = block_type[0] << kLiteralContextBits;\n context_map_slice = context_offset;\n context_mode = context_modes[block_type[0]];\n context_lookup_offset1 = Context.lookupOffsets[context_mode];\n context_lookup_offset2 = Context.lookupOffsets[context_mode + 1];\n }\n context = (Context.lookup[context_lookup_offset1 + prev_byte1] |\n Context.lookup[context_lookup_offset2 + prev_byte2]);\n literal_htree_index = context_map[context_map_slice + context];\n --block_length[0];\n prev_byte2 = prev_byte1;\n prev_byte1 = ReadSymbol(hgroup[0].codes, hgroup[0].htrees[literal_htree_index], br);\n ringbuffer[pos & ringbuffer_mask] = prev_byte1;\n if ((pos & ringbuffer_mask) === ringbuffer_mask) {\n output.write(ringbuffer, ringbuffer_size);\n }\n ++pos;\n }\n meta_block_remaining_len -= insert_length;\n if (meta_block_remaining_len <= 0) break;\n\n if (distance_code < 0) {\n var context;\n \n br.readMoreInput();\n if (block_length[2] === 0) {\n DecodeBlockType(num_block_types[2],\n block_type_trees, 2, block_type, block_type_rb,\n block_type_rb_index, br);\n block_length[2] = ReadBlockLength(block_len_trees, 2 * HUFFMAN_MAX_TABLE_SIZE, br);\n dist_context_offset = block_type[2] << kDistanceContextBits;\n dist_context_map_slice = dist_context_offset;\n }\n --block_length[2];\n context = (copy_length > 4 ? 3 : copy_length - 2) & 0xff;\n dist_htree_index = dist_context_map[dist_context_map_slice + context];\n distance_code = ReadSymbol(hgroup[2].codes, hgroup[2].htrees[dist_htree_index], br);\n if (distance_code >= num_direct_distance_codes) {\n var nbits;\n var postfix;\n var offset;\n distance_code -= num_direct_distance_codes;\n postfix = distance_code & distance_postfix_mask;\n distance_code >>= distance_postfix_bits;\n nbits = (distance_code >> 1) + 1;\n offset = ((2 + (distance_code & 1)) << nbits) - 4;\n distance_code = num_direct_distance_codes +\n ((offset + br.readBits(nbits)) <<\n distance_postfix_bits) + postfix;\n }\n }\n\n /* Convert the distance code to the actual distance by possibly looking */\n /* up past distnaces from the ringbuffer. */\n distance = TranslateShortCodes(distance_code, dist_rb, dist_rb_idx);\n if (distance < 0) {\n throw new Error('[BrotliDecompress] invalid distance');\n }\n\n if (pos < max_backward_distance &&\n max_distance !== max_backward_distance) {\n max_distance = pos;\n } else {\n max_distance = max_backward_distance;\n }\n\n copy_dst = pos & ringbuffer_mask;\n\n if (distance > max_distance) {\n if (copy_length >= BrotliDictionary.minDictionaryWordLength &&\n copy_length <= BrotliDictionary.maxDictionaryWordLength) {\n var offset = BrotliDictionary.offsetsByLength[copy_length];\n var word_id = distance - max_distance - 1;\n var shift = BrotliDictionary.sizeBitsByLength[copy_length];\n var mask = (1 << shift) - 1;\n var word_idx = word_id & mask;\n var transform_idx = word_id >> shift;\n offset += word_idx * copy_length;\n if (transform_idx < Transform.kNumTransforms) {\n var len = Transform.transformDictionaryWord(ringbuffer, copy_dst, offset, copy_length, transform_idx);\n copy_dst += len;\n pos += len;\n meta_block_remaining_len -= len;\n if (copy_dst >= ringbuffer_end) {\n output.write(ringbuffer, ringbuffer_size);\n \n for (var _x = 0; _x < (copy_dst - ringbuffer_end); _x++)\n ringbuffer[_x] = ringbuffer[ringbuffer_end + _x];\n }\n } else {\n throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n }\n } else {\n throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n }\n } else {\n if (distance_code > 0) {\n dist_rb[dist_rb_idx & 3] = distance;\n ++dist_rb_idx;\n }\n\n if (copy_length > meta_block_remaining_len) {\n throw new Error(\"Invalid backward reference. pos: \" + pos + \" distance: \" + distance +\n \" len: \" + copy_length + \" bytes left: \" + meta_block_remaining_len);\n }\n\n for (j = 0; j < copy_length; ++j) {\n ringbuffer[pos & ringbuffer_mask] = ringbuffer[(pos - distance) & ringbuffer_mask];\n if ((pos & ringbuffer_mask) === ringbuffer_mask) {\n output.write(ringbuffer, ringbuffer_size);\n }\n ++pos;\n --meta_block_remaining_len;\n }\n }\n\n /* When we get here, we must have inserted at least one literal and */\n /* made a copy of at least length two, therefore accessing the last 2 */\n /* bytes is valid. */\n prev_byte1 = ringbuffer[(pos - 1) & ringbuffer_mask];\n prev_byte2 = ringbuffer[(pos - 2) & ringbuffer_mask];\n }\n\n /* Protect pos from overflow, wrap it around at every GB of input data */\n pos &= 0x3fffffff;\n }\n\n output.write(ringbuffer, pos & ringbuffer_mask);\n}\n\nexports.BrotliDecompress = BrotliDecompress;\n\nBrotliDictionary.init();\n","module.exports = require('./dec/decode').BrotliDecompressBuffer;\n","import {DecodeStream as $6uUbQ$DecodeStream, Struct as $6uUbQ$Struct, String as $6uUbQ$String, uint32 as $6uUbQ$uint32, Pointer as $6uUbQ$Pointer, uint16 as $6uUbQ$uint16, Array as $6uUbQ$Array, VoidPointer as $6uUbQ$VoidPointer, int16 as $6uUbQ$int16, uint24 as $6uUbQ$uint24, uint8 as $6uUbQ$uint8, VersionedStruct as $6uUbQ$VersionedStruct, LazyArray as $6uUbQ$LazyArray, Reserved as $6uUbQ$Reserved, int32 as $6uUbQ$int32, Bitfield as $6uUbQ$Bitfield, fixed32 as $6uUbQ$fixed32, Buffer as $6uUbQ$Buffer, Number as $6uUbQ$Number, resolveLength as $6uUbQ$resolveLength, fixed16 as $6uUbQ$fixed16, PropertyDescriptor as $6uUbQ$PropertyDescriptor, Fixed as $6uUbQ$Fixed, int8 as $6uUbQ$int8, Optional as $6uUbQ$Optional, EncodeStream as $6uUbQ$EncodeStream} from \"restructure\";\nimport {_ as $6uUbQ$_} from \"@swc/helpers/_/_define_property\";\nimport {_ as $6uUbQ$_1} from \"@swc/helpers/_/_ts_decorate\";\nimport $6uUbQ$fastdeepequal from \"fast-deep-equal\";\nimport {getCombiningClass as $6uUbQ$getCombiningClass, getScript as $6uUbQ$getScript, isDigit as $6uUbQ$isDigit, getCategory as $6uUbQ$getCategory, isMark as $6uUbQ$isMark} from \"unicode-properties\";\nimport $6uUbQ$unicodetrie from \"unicode-trie\";\nimport $6uUbQ$dfa from \"dfa\";\nimport $6uUbQ$clone from \"clone\";\nimport $6uUbQ$tinyinflate from \"tiny-inflate\";\nimport $6uUbQ$brotlidecompressjs from \"brotli/decompress.js\";\n\n\nfunction $parcel$export(e, n, v, s) {\n Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});\n}\n\nfunction $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\nvar $d636bc798e7178db$exports = {};\n\n$parcel$export($d636bc798e7178db$exports, \"logErrors\", () => $d636bc798e7178db$export$bd5c5d8b8dcafd78);\n$parcel$export($d636bc798e7178db$exports, \"registerFormat\", () => $d636bc798e7178db$export$36b2f24e97d43be);\n$parcel$export($d636bc798e7178db$exports, \"create\", () => $d636bc798e7178db$export$185802fd694ee1f5);\n$parcel$export($d636bc798e7178db$exports, \"defaultLanguage\", () => $d636bc798e7178db$export$42940898df819940);\n$parcel$export($d636bc798e7178db$exports, \"setDefaultLanguage\", () => $d636bc798e7178db$export$5157e7780d44cc36);\n\nlet $d636bc798e7178db$export$bd5c5d8b8dcafd78 = false;\nlet $d636bc798e7178db$var$formats = [];\nfunction $d636bc798e7178db$export$36b2f24e97d43be(format) {\n $d636bc798e7178db$var$formats.push(format);\n}\nfunction $d636bc798e7178db$export$185802fd694ee1f5(buffer, postscriptName) {\n for(let i = 0; i < $d636bc798e7178db$var$formats.length; i++){\n let format = $d636bc798e7178db$var$formats[i];\n if (format.probe(buffer)) {\n let font = new format(new (0, $6uUbQ$DecodeStream)(buffer));\n if (postscriptName) return font.getFont(postscriptName);\n return font;\n }\n }\n throw new Error('Unknown font format');\n}\nlet $d636bc798e7178db$export$42940898df819940 = 'en';\nfunction $d636bc798e7178db$export$5157e7780d44cc36(lang = 'en') {\n $d636bc798e7178db$export$42940898df819940 = lang;\n}\n\n\n\n\n\n/**\n * This decorator caches the results of a getter or method such that\n * the results are lazily computed once, and then cached.\n * @private\n */ function $e71565f2ce09cb6b$export$69a3209f1a06c04d(target, key, descriptor) {\n if (descriptor.get) {\n let get = descriptor.get;\n descriptor.get = function() {\n let value = get.call(this);\n Object.defineProperty(this, key, {\n value: value\n });\n return value;\n };\n } else if (typeof descriptor.value === 'function') {\n let fn = descriptor.value;\n return {\n get () {\n let cache = new Map;\n function memoized(...args) {\n let key = args.length > 0 ? args[0] : 'value';\n if (cache.has(key)) return cache.get(key);\n let result = fn.apply(this, args);\n cache.set(key, result);\n return result;\n }\n Object.defineProperty(this, key, {\n value: memoized\n });\n return memoized;\n }\n };\n }\n}\n\n\n\n\n\nlet $26a62205ad06574e$var$SubHeader = new $6uUbQ$Struct({\n firstCode: $6uUbQ$uint16,\n entryCount: $6uUbQ$uint16,\n idDelta: $6uUbQ$int16,\n idRangeOffset: $6uUbQ$uint16\n});\nlet $26a62205ad06574e$var$CmapGroup = new $6uUbQ$Struct({\n startCharCode: $6uUbQ$uint32,\n endCharCode: $6uUbQ$uint32,\n glyphID: $6uUbQ$uint32\n});\nlet $26a62205ad06574e$var$UnicodeValueRange = new $6uUbQ$Struct({\n startUnicodeValue: $6uUbQ$uint24,\n additionalCount: $6uUbQ$uint8\n});\nlet $26a62205ad06574e$var$UVSMapping = new $6uUbQ$Struct({\n unicodeValue: $6uUbQ$uint24,\n glyphID: $6uUbQ$uint16\n});\nlet $26a62205ad06574e$var$DefaultUVS = new $6uUbQ$Array($26a62205ad06574e$var$UnicodeValueRange, $6uUbQ$uint32);\nlet $26a62205ad06574e$var$NonDefaultUVS = new $6uUbQ$Array($26a62205ad06574e$var$UVSMapping, $6uUbQ$uint32);\nlet $26a62205ad06574e$var$VarSelectorRecord = new $6uUbQ$Struct({\n varSelector: $6uUbQ$uint24,\n defaultUVS: new $6uUbQ$Pointer($6uUbQ$uint32, $26a62205ad06574e$var$DefaultUVS, {\n type: 'parent'\n }),\n nonDefaultUVS: new $6uUbQ$Pointer($6uUbQ$uint32, $26a62205ad06574e$var$NonDefaultUVS, {\n type: 'parent'\n })\n});\nlet $26a62205ad06574e$var$CmapSubtable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n codeMap: new $6uUbQ$LazyArray($6uUbQ$uint8, 256)\n },\n 2: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n subHeaderKeys: new $6uUbQ$Array($6uUbQ$uint16, 256),\n subHeaderCount: (t)=>Math.max.apply(Math, t.subHeaderKeys),\n subHeaders: new $6uUbQ$LazyArray($26a62205ad06574e$var$SubHeader, 'subHeaderCount'),\n glyphIndexArray: new $6uUbQ$LazyArray($6uUbQ$uint16, 'subHeaderCount')\n },\n 4: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n segCountX2: $6uUbQ$uint16,\n segCount: (t)=>t.segCountX2 >> 1,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16,\n endCode: new $6uUbQ$LazyArray($6uUbQ$uint16, 'segCount'),\n reservedPad: new $6uUbQ$Reserved($6uUbQ$uint16),\n startCode: new $6uUbQ$LazyArray($6uUbQ$uint16, 'segCount'),\n idDelta: new $6uUbQ$LazyArray($6uUbQ$int16, 'segCount'),\n idRangeOffset: new $6uUbQ$LazyArray($6uUbQ$uint16, 'segCount'),\n glyphIndexArray: new $6uUbQ$LazyArray($6uUbQ$uint16, (t)=>(t.length - t._currentOffset) / 2)\n },\n 6: {\n length: $6uUbQ$uint16,\n language: $6uUbQ$uint16,\n firstCode: $6uUbQ$uint16,\n entryCount: $6uUbQ$uint16,\n glyphIndices: new $6uUbQ$LazyArray($6uUbQ$uint16, 'entryCount')\n },\n 8: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint16,\n is32: new $6uUbQ$LazyArray($6uUbQ$uint8, 8192),\n nGroups: $6uUbQ$uint32,\n groups: new $6uUbQ$LazyArray($26a62205ad06574e$var$CmapGroup, 'nGroups')\n },\n 10: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint32,\n firstCode: $6uUbQ$uint32,\n entryCount: $6uUbQ$uint32,\n glyphIndices: new $6uUbQ$LazyArray($6uUbQ$uint16, 'numChars')\n },\n 12: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint32,\n nGroups: $6uUbQ$uint32,\n groups: new $6uUbQ$LazyArray($26a62205ad06574e$var$CmapGroup, 'nGroups')\n },\n 13: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n length: $6uUbQ$uint32,\n language: $6uUbQ$uint32,\n nGroups: $6uUbQ$uint32,\n groups: new $6uUbQ$LazyArray($26a62205ad06574e$var$CmapGroup, 'nGroups')\n },\n 14: {\n length: $6uUbQ$uint32,\n numRecords: $6uUbQ$uint32,\n varSelectors: new $6uUbQ$LazyArray($26a62205ad06574e$var$VarSelectorRecord, 'numRecords')\n }\n});\nlet $26a62205ad06574e$var$CmapEntry = new $6uUbQ$Struct({\n platformID: $6uUbQ$uint16,\n encodingID: $6uUbQ$uint16,\n table: new $6uUbQ$Pointer($6uUbQ$uint32, $26a62205ad06574e$var$CmapSubtable, {\n type: 'parent',\n lazy: true\n })\n});\nvar // character to glyph mapping\n$26a62205ad06574e$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numSubtables: $6uUbQ$uint16,\n tables: new $6uUbQ$Array($26a62205ad06574e$var$CmapEntry, 'numSubtables')\n});\n\n\n\nvar // font header\n$f2612a29f92ac062$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$int32,\n revision: $6uUbQ$int32,\n checkSumAdjustment: $6uUbQ$uint32,\n magicNumber: $6uUbQ$uint32,\n flags: $6uUbQ$uint16,\n unitsPerEm: $6uUbQ$uint16,\n created: new $6uUbQ$Array($6uUbQ$int32, 2),\n modified: new $6uUbQ$Array($6uUbQ$int32, 2),\n xMin: $6uUbQ$int16,\n yMin: $6uUbQ$int16,\n xMax: $6uUbQ$int16,\n yMax: $6uUbQ$int16,\n macStyle: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'bold',\n 'italic',\n 'underline',\n 'outline',\n 'shadow',\n 'condensed',\n 'extended'\n ]),\n lowestRecPPEM: $6uUbQ$uint16,\n fontDirectionHint: $6uUbQ$int16,\n indexToLocFormat: $6uUbQ$int16,\n glyphDataFormat: $6uUbQ$int16 // 0 for current format\n});\n\n\n\nvar // horizontal header\n$2c179dd593583073$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$int32,\n ascent: $6uUbQ$int16,\n descent: $6uUbQ$int16,\n lineGap: $6uUbQ$int16,\n advanceWidthMax: $6uUbQ$uint16,\n minLeftSideBearing: $6uUbQ$int16,\n minRightSideBearing: $6uUbQ$int16,\n xMaxExtent: $6uUbQ$int16,\n caretSlopeRise: $6uUbQ$int16,\n caretSlopeRun: $6uUbQ$int16,\n caretOffset: $6uUbQ$int16,\n reserved: new $6uUbQ$Reserved($6uUbQ$int16, 4),\n metricDataFormat: $6uUbQ$int16,\n numberOfMetrics: $6uUbQ$uint16 // Number of advance widths in 'hmtx' table\n});\n\n\n\nlet $bdc9060542264b85$var$HmtxEntry = new $6uUbQ$Struct({\n advance: $6uUbQ$uint16,\n bearing: $6uUbQ$int16\n});\nvar $bdc9060542264b85$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n metrics: new $6uUbQ$LazyArray($bdc9060542264b85$var$HmtxEntry, (t)=>t.parent.hhea.numberOfMetrics),\n bearings: new $6uUbQ$LazyArray($6uUbQ$int16, (t)=>t.parent.maxp.numGlyphs - t.parent.hhea.numberOfMetrics)\n});\n\n\n\nvar // maxiumum profile\n$dbf51cb3d3fe409d$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$int32,\n numGlyphs: $6uUbQ$uint16,\n maxPoints: $6uUbQ$uint16,\n maxContours: $6uUbQ$uint16,\n maxComponentPoints: $6uUbQ$uint16,\n maxComponentContours: $6uUbQ$uint16,\n maxZones: $6uUbQ$uint16,\n maxTwilightPoints: $6uUbQ$uint16,\n maxStorage: $6uUbQ$uint16,\n maxFunctionDefs: $6uUbQ$uint16,\n maxInstructionDefs: $6uUbQ$uint16,\n maxStackElements: $6uUbQ$uint16,\n maxSizeOfInstructions: $6uUbQ$uint16,\n maxComponentElements: $6uUbQ$uint16,\n maxComponentDepth: $6uUbQ$uint16 // Maximum levels of recursion; 1 for simple components\n});\n\n\n\n/**\n * Gets an encoding name from platform, encoding, and language ids.\n * Returned encoding names can be used in iconv-lite to decode text.\n */ function $e449ad78d50845fe$export$badc544e0651b6b1(platformID, encodingID, languageID = 0) {\n if (platformID === 1 && $e449ad78d50845fe$export$479e671907f486d1[languageID]) return $e449ad78d50845fe$export$479e671907f486d1[languageID];\n return $e449ad78d50845fe$export$6fef87b7618bdf0b[platformID][encodingID];\n}\nconst $e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS = new Set([\n 'x-mac-roman',\n 'x-mac-cyrillic',\n 'iso-8859-6',\n 'iso-8859-8'\n]);\nconst $e449ad78d50845fe$var$MAC_ENCODINGS = {\n 'x-mac-croatian': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\u0160\\u2122\\xb4\\xa8\\u2260\\u017D\\xd8\\u221E\\xb1\\u2264\\u2265\\u2206\\xb5\\u2202\\u2211\\u220F\\u0161\\u222B\\xaa\\xba\\u03A9\\u017E\\xf8\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u0106\\xab\\u010C\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u0110\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\uF8FF\\xa9\\u2044\\u20AC\\u2039\\u203A\\xc6\\xbb\\u2013\\xb7\\u201A\\u201E\\u2030\\xc2\\u0107\\xc1\\u010D\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\u0111\\xd2\\xda\\xdb\\xd9\\u0131\\u02C6\\u02DC\\xaf\\u03C0\\xcb\\u02DA\\xb8\\xca\\xe6\\u02C7\",\n 'x-mac-gaelic': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\xc6\\xd8\\u1E02\\xb1\\u2264\\u2265\\u1E03\\u010A\\u010B\\u1E0A\\u1E0B\\u1E1E\\u1E1F\\u0120\\u0121\\u1E40\\xe6\\xf8\\u1E41\\u1E56\\u1E57\\u027C\\u0192\\u017F\\u1E60\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\u1E61\\u1E9B\\xff\\u0178\\u1E6A\\u20AC\\u2039\\u203A\\u0176\\u0177\\u1E6B\\xb7\\u1EF2\\u1EF3\\u204A\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\u2663\\xd2\\xda\\xdb\\xd9\\u0131\\xdd\\xfd\\u0174\\u0175\\u1E84\\u1E85\\u1E80\\u1E81\\u1E82\\u1E83\",\n 'x-mac-greek': \"\\xc4\\xb9\\xb2\\xc9\\xb3\\xd6\\xdc\\u0385\\xe0\\xe2\\xe4\\u0384\\xa8\\xe7\\xe9\\xe8\\xea\\xeb\\xa3\\u2122\\xee\\xef\\u2022\\xbd\\u2030\\xf4\\xf6\\xa6\\u20AC\\xf9\\xfb\\xfc\\u2020\\u0393\\u0394\\u0398\\u039B\\u039E\\u03A0\\xdf\\xae\\xa9\\u03A3\\u03AA\\xa7\\u2260\\xb0\\xb7\\u0391\\xb1\\u2264\\u2265\\xa5\\u0392\\u0395\\u0396\\u0397\\u0399\\u039A\\u039C\\u03A6\\u03AB\\u03A8\\u03A9\\u03AC\\u039D\\xac\\u039F\\u03A1\\u2248\\u03A4\\xab\\xbb\\u2026 \\u03A5\\u03A7\\u0386\\u0388\\u0153\\u2013\\u2015\\u201C\\u201D\\u2018\\u2019\\xf7\\u0389\\u038A\\u038C\\u038E\\u03AD\\u03AE\\u03AF\\u03CC\\u038F\\u03CD\\u03B1\\u03B2\\u03C8\\u03B4\\u03B5\\u03C6\\u03B3\\u03B7\\u03B9\\u03BE\\u03BA\\u03BB\\u03BC\\u03BD\\u03BF\\u03C0\\u03CE\\u03C1\\u03C3\\u03C4\\u03B8\\u03C9\\u03C2\\u03C7\\u03C5\\u03B6\\u03CA\\u03CB\\u0390\\u03B0\\xad\",\n 'x-mac-icelandic': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\xdd\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\xc6\\xd8\\u221E\\xb1\\u2264\\u2265\\xa5\\xb5\\u2202\\u2211\\u220F\\u03C0\\u222B\\xaa\\xba\\u03A9\\xe6\\xf8\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u2206\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\xff\\u0178\\u2044\\u20AC\\xd0\\xf0\\xde\\xfe\\xfd\\xb7\\u201A\\u201E\\u2030\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\uF8FF\\xd2\\xda\\xdb\\xd9\\u0131\\u02C6\\u02DC\\xaf\\u02D8\\u02D9\\u02DA\\xb8\\u02DD\\u02DB\\u02C7\",\n 'x-mac-inuit': \"\\u1403\\u1404\\u1405\\u1406\\u140A\\u140B\\u1431\\u1432\\u1433\\u1434\\u1438\\u1439\\u1449\\u144E\\u144F\\u1450\\u1451\\u1455\\u1456\\u1466\\u146D\\u146E\\u146F\\u1470\\u1472\\u1473\\u1483\\u148B\\u148C\\u148D\\u148E\\u1490\\u1491\\xb0\\u14A1\\u14A5\\u14A6\\u2022\\xb6\\u14A7\\xae\\xa9\\u2122\\u14A8\\u14AA\\u14AB\\u14BB\\u14C2\\u14C3\\u14C4\\u14C5\\u14C7\\u14C8\\u14D0\\u14EF\\u14F0\\u14F1\\u14F2\\u14F4\\u14F5\\u1505\\u14D5\\u14D6\\u14D7\\u14D8\\u14DA\\u14DB\\u14EA\\u1528\\u1529\\u152A\\u152B\\u152D\\u2026 \\u152E\\u153E\\u1555\\u1556\\u1557\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\u1558\\u1559\\u155A\\u155D\\u1546\\u1547\\u1548\\u1549\\u154B\\u154C\\u1550\\u157F\\u1580\\u1581\\u1582\\u1583\\u1584\\u1585\\u158F\\u1590\\u1591\\u1592\\u1593\\u1594\\u1595\\u1671\\u1672\\u1673\\u1674\\u1675\\u1676\\u1596\\u15A0\\u15A1\\u15A2\\u15A3\\u15A4\\u15A5\\u15A6\\u157C\\u0141\\u0142\",\n 'x-mac-ce': \"\\xc4\\u0100\\u0101\\xc9\\u0104\\xd6\\xdc\\xe1\\u0105\\u010C\\xe4\\u010D\\u0106\\u0107\\xe9\\u0179\\u017A\\u010E\\xed\\u010F\\u0112\\u0113\\u0116\\xf3\\u0117\\xf4\\xf6\\xf5\\xfa\\u011A\\u011B\\xfc\\u2020\\xb0\\u0118\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\u0119\\xa8\\u2260\\u0123\\u012E\\u012F\\u012A\\u2264\\u2265\\u012B\\u0136\\u2202\\u2211\\u0142\\u013B\\u013C\\u013D\\u013E\\u0139\\u013A\\u0145\\u0146\\u0143\\xac\\u221A\\u0144\\u0147\\u2206\\xab\\xbb\\u2026 \\u0148\\u0150\\xd5\\u0151\\u014C\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\u014D\\u0154\\u0155\\u0158\\u2039\\u203A\\u0159\\u0156\\u0157\\u0160\\u201A\\u201E\\u0161\\u015A\\u015B\\xc1\\u0164\\u0165\\xcd\\u017D\\u017E\\u016A\\xd3\\xd4\\u016B\\u016E\\xda\\u016F\\u0170\\u0171\\u0172\\u0173\\xdd\\xfd\\u0137\\u017B\\u0141\\u017C\\u0122\\u02C7\",\n 'x-mac-romanian': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\u0102\\u0218\\u221E\\xb1\\u2264\\u2265\\xa5\\xb5\\u2202\\u2211\\u220F\\u03C0\\u222B\\xaa\\xba\\u03A9\\u0103\\u0219\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u2206\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\xff\\u0178\\u2044\\u20AC\\u2039\\u203A\\u021A\\u021B\\u2021\\xb7\\u201A\\u201E\\u2030\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\uF8FF\\xd2\\xda\\xdb\\xd9\\u0131\\u02C6\\u02DC\\xaf\\u02D8\\u02D9\\u02DA\\xb8\\u02DD\\u02DB\\u02C7\",\n 'x-mac-turkish': \"\\xc4\\xc5\\xc7\\xc9\\xd1\\xd6\\xdc\\xe1\\xe0\\xe2\\xe4\\xe3\\xe5\\xe7\\xe9\\xe8\\xea\\xeb\\xed\\xec\\xee\\xef\\xf1\\xf3\\xf2\\xf4\\xf6\\xf5\\xfa\\xf9\\xfb\\xfc\\u2020\\xb0\\xa2\\xa3\\xa7\\u2022\\xb6\\xdf\\xae\\xa9\\u2122\\xb4\\xa8\\u2260\\xc6\\xd8\\u221E\\xb1\\u2264\\u2265\\xa5\\xb5\\u2202\\u2211\\u220F\\u03C0\\u222B\\xaa\\xba\\u03A9\\xe6\\xf8\\xbf\\xa1\\xac\\u221A\\u0192\\u2248\\u2206\\xab\\xbb\\u2026 \\xc0\\xc3\\xd5\\u0152\\u0153\\u2013\\u2014\\u201C\\u201D\\u2018\\u2019\\xf7\\u25CA\\xff\\u0178\\u011E\\u011F\\u0130\\u0131\\u015E\\u015F\\u2021\\xb7\\u201A\\u201E\\u2030\\xc2\\xca\\xc1\\xcb\\xc8\\xcd\\xce\\xcf\\xcc\\xd3\\xd4\\uF8FF\\xd2\\xda\\xdb\\xd9\\uF8A0\\u02C6\\u02DC\\xaf\\u02D8\\u02D9\\u02DA\\xb8\\u02DD\\u02DB\\u02C7\"\n};\nconst $e449ad78d50845fe$var$encodingCache = new Map();\nfunction $e449ad78d50845fe$export$1dceb3c14ed68bee(encoding) {\n let cached = $e449ad78d50845fe$var$encodingCache.get(encoding);\n if (cached) return cached;\n // These encodings aren't supported by TextDecoder.\n let mapping = $e449ad78d50845fe$var$MAC_ENCODINGS[encoding];\n if (mapping) {\n let res = new Map();\n for(let i = 0; i < mapping.length; i++)res.set(mapping.charCodeAt(i), 0x80 + i);\n $e449ad78d50845fe$var$encodingCache.set(encoding, res);\n return res;\n }\n // Only single byte encodings can be mapped 1:1.\n if ($e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS.has(encoding)) {\n // TextEncoder only supports utf8, whereas TextDecoder supports legacy encodings.\n // Use this to create a mapping of code points.\n let decoder = new TextDecoder(encoding);\n let mapping = new Uint8Array(0x80);\n for(let i = 0; i < 0x80; i++)mapping[i] = 0x80 + i;\n let res = new Map();\n let s = decoder.decode(mapping);\n for(let i = 0; i < 0x80; i++)res.set(s.charCodeAt(i), 0x80 + i);\n $e449ad78d50845fe$var$encodingCache.set(encoding, res);\n return res;\n }\n}\nconst $e449ad78d50845fe$export$6fef87b7618bdf0b = [\n // unicode\n [\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be',\n 'utf-16be'\n ],\n // macintosh\n // Mappings available at http://unicode.org/Public/MAPPINGS/VENDORS/APPLE/\n // 0\tRoman 17\tMalayalam\n // 1\tJapanese\t 18\tSinhalese\n // 2\tTraditional Chinese\t 19\tBurmese\n // 3\tKorean\t 20\tKhmer\n // 4\tArabic\t 21\tThai\n // 5\tHebrew\t 22\tLaotian\n // 6\tGreek\t 23\tGeorgian\n // 7\tRussian\t 24\tArmenian\n // 8\tRSymbol\t 25\tSimplified Chinese\n // 9\tDevanagari\t 26\tTibetan\n // 10\tGurmukhi\t 27\tMongolian\n // 11\tGujarati\t 28\tGeez\n // 12\tOriya\t 29\tSlavic\n // 13\tBengali\t 30\tVietnamese\n // 14\tTamil\t 31\tSindhi\n // 15\tTelugu\t 32\t(Uninterpreted)\n // 16\tKannada\n [\n 'x-mac-roman',\n 'shift-jis',\n 'big5',\n 'euc-kr',\n 'iso-8859-6',\n 'iso-8859-8',\n 'x-mac-greek',\n 'x-mac-cyrillic',\n 'x-mac-symbol',\n 'x-mac-devanagari',\n 'x-mac-gurmukhi',\n 'x-mac-gujarati',\n 'Oriya',\n 'Bengali',\n 'Tamil',\n 'Telugu',\n 'Kannada',\n 'Malayalam',\n 'Sinhalese',\n 'Burmese',\n 'Khmer',\n 'iso-8859-11',\n 'Laotian',\n 'Georgian',\n 'Armenian',\n 'gbk',\n 'Tibetan',\n 'Mongolian',\n 'Geez',\n 'x-mac-ce',\n 'Vietnamese',\n 'Sindhi'\n ],\n // ISO (deprecated)\n [\n 'ascii',\n null,\n 'iso-8859-1'\n ],\n // windows\n // Docs here: http://msdn.microsoft.com/en-us/library/system.text.encoding(v=vs.110).aspx\n [\n 'symbol',\n 'utf-16be',\n 'shift-jis',\n 'gb18030',\n 'big5',\n 'euc-kr',\n 'johab',\n null,\n null,\n null,\n 'utf-16be'\n ]\n];\nconst $e449ad78d50845fe$export$479e671907f486d1 = {\n 15: 'x-mac-icelandic',\n 17: 'x-mac-turkish',\n 18: 'x-mac-croatian',\n 24: 'x-mac-ce',\n 25: 'x-mac-ce',\n 26: 'x-mac-ce',\n 27: 'x-mac-ce',\n 28: 'x-mac-ce',\n 30: 'x-mac-icelandic',\n 37: 'x-mac-romanian',\n 38: 'x-mac-ce',\n 39: 'x-mac-ce',\n 40: 'x-mac-ce',\n 143: 'x-mac-inuit',\n 146: 'x-mac-gaelic'\n};\nconst $e449ad78d50845fe$export$2092376fd002e13 = [\n // unicode\n [],\n {\n 0: 'en',\n 30: 'fo',\n 60: 'ks',\n 90: 'rw',\n 1: 'fr',\n 31: 'fa',\n 61: 'ku',\n 91: 'rn',\n 2: 'de',\n 32: 'ru',\n 62: 'sd',\n 92: 'ny',\n 3: 'it',\n 33: 'zh',\n 63: 'bo',\n 93: 'mg',\n 4: 'nl',\n 34: 'nl-BE',\n 64: 'ne',\n 94: 'eo',\n 5: 'sv',\n 35: 'ga',\n 65: 'sa',\n 128: 'cy',\n 6: 'es',\n 36: 'sq',\n 66: 'mr',\n 129: 'eu',\n 7: 'da',\n 37: 'ro',\n 67: 'bn',\n 130: 'ca',\n 8: 'pt',\n 38: 'cz',\n 68: 'as',\n 131: 'la',\n 9: 'no',\n 39: 'sk',\n 69: 'gu',\n 132: 'qu',\n 10: 'he',\n 40: 'si',\n 70: 'pa',\n 133: 'gn',\n 11: 'ja',\n 41: 'yi',\n 71: 'or',\n 134: 'ay',\n 12: 'ar',\n 42: 'sr',\n 72: 'ml',\n 135: 'tt',\n 13: 'fi',\n 43: 'mk',\n 73: 'kn',\n 136: 'ug',\n 14: 'el',\n 44: 'bg',\n 74: 'ta',\n 137: 'dz',\n 15: 'is',\n 45: 'uk',\n 75: 'te',\n 138: 'jv',\n 16: 'mt',\n 46: 'be',\n 76: 'si',\n 139: 'su',\n 17: 'tr',\n 47: 'uz',\n 77: 'my',\n 140: 'gl',\n 18: 'hr',\n 48: 'kk',\n 78: 'km',\n 141: 'af',\n 19: 'zh-Hant',\n 49: 'az-Cyrl',\n 79: 'lo',\n 142: 'br',\n 20: 'ur',\n 50: 'az-Arab',\n 80: 'vi',\n 143: 'iu',\n 21: 'hi',\n 51: 'hy',\n 81: 'id',\n 144: 'gd',\n 22: 'th',\n 52: 'ka',\n 82: 'tl',\n 145: 'gv',\n 23: 'ko',\n 53: 'mo',\n 83: 'ms',\n 146: 'ga',\n 24: 'lt',\n 54: 'ky',\n 84: 'ms-Arab',\n 147: 'to',\n 25: 'pl',\n 55: 'tg',\n 85: 'am',\n 148: 'el-polyton',\n 26: 'hu',\n 56: 'tk',\n 86: 'ti',\n 149: 'kl',\n 27: 'es',\n 57: 'mn-CN',\n 87: 'om',\n 150: 'az',\n 28: 'lv',\n 58: 'mn',\n 88: 'so',\n 151: 'nn',\n 29: 'se',\n 59: 'ps',\n 89: 'sw'\n },\n // ISO (deprecated)\n [],\n {\n 0x0436: 'af',\n 0x4009: 'en-IN',\n 0x0487: 'rw',\n 0x0432: 'tn',\n 0x041C: 'sq',\n 0x1809: 'en-IE',\n 0x0441: 'sw',\n 0x045B: 'si',\n 0x0484: 'gsw',\n 0x2009: 'en-JM',\n 0x0457: 'kok',\n 0x041B: 'sk',\n 0x045E: 'am',\n 0x4409: 'en-MY',\n 0x0412: 'ko',\n 0x0424: 'sl',\n 0x1401: 'ar-DZ',\n 0x1409: 'en-NZ',\n 0x0440: 'ky',\n 0x2C0A: 'es-AR',\n 0x3C01: 'ar-BH',\n 0x3409: 'en-PH',\n 0x0454: 'lo',\n 0x400A: 'es-BO',\n 0x0C01: 'ar',\n 0x4809: 'en-SG',\n 0x0426: 'lv',\n 0x340A: 'es-CL',\n 0x0801: 'ar-IQ',\n 0x1C09: 'en-ZA',\n 0x0427: 'lt',\n 0x240A: 'es-CO',\n 0x2C01: 'ar-JO',\n 0x2C09: 'en-TT',\n 0x082E: 'dsb',\n 0x140A: 'es-CR',\n 0x3401: 'ar-KW',\n 0x0809: 'en-GB',\n 0x046E: 'lb',\n 0x1C0A: 'es-DO',\n 0x3001: 'ar-LB',\n 0x0409: 'en',\n 0x042F: 'mk',\n 0x300A: 'es-EC',\n 0x1001: 'ar-LY',\n 0x3009: 'en-ZW',\n 0x083E: 'ms-BN',\n 0x440A: 'es-SV',\n 0x1801: 'ary',\n 0x0425: 'et',\n 0x043E: 'ms',\n 0x100A: 'es-GT',\n 0x2001: 'ar-OM',\n 0x0438: 'fo',\n 0x044C: 'ml',\n 0x480A: 'es-HN',\n 0x4001: 'ar-QA',\n 0x0464: 'fil',\n 0x043A: 'mt',\n 0x080A: 'es-MX',\n 0x0401: 'ar-SA',\n 0x040B: 'fi',\n 0x0481: 'mi',\n 0x4C0A: 'es-NI',\n 0x2801: 'ar-SY',\n 0x080C: 'fr-BE',\n 0x047A: 'arn',\n 0x180A: 'es-PA',\n 0x1C01: 'aeb',\n 0x0C0C: 'fr-CA',\n 0x044E: 'mr',\n 0x3C0A: 'es-PY',\n 0x3801: 'ar-AE',\n 0x040C: 'fr',\n 0x047C: 'moh',\n 0x280A: 'es-PE',\n 0x2401: 'ar-YE',\n 0x140C: 'fr-LU',\n 0x0450: 'mn',\n 0x500A: 'es-PR',\n 0x042B: 'hy',\n 0x180C: 'fr-MC',\n 0x0850: 'mn-CN',\n 0x0C0A: 'es',\n 0x044D: 'as',\n 0x100C: 'fr-CH',\n 0x0461: 'ne',\n 0x040A: 'es',\n 0x082C: 'az-Cyrl',\n 0x0462: 'fy',\n 0x0414: 'nb',\n 0x540A: 'es-US',\n 0x042C: 'az',\n 0x0456: 'gl',\n 0x0814: 'nn',\n 0x380A: 'es-UY',\n 0x046D: 'ba',\n 0x0437: 'ka',\n 0x0482: 'oc',\n 0x200A: 'es-VE',\n 0x042D: 'eu',\n 0x0C07: 'de-AT',\n 0x0448: 'or',\n 0x081D: 'sv-FI',\n 0x0423: 'be',\n 0x0407: 'de',\n 0x0463: 'ps',\n 0x041D: 'sv',\n 0x0845: 'bn',\n 0x1407: 'de-LI',\n 0x0415: 'pl',\n 0x045A: 'syr',\n 0x0445: 'bn-IN',\n 0x1007: 'de-LU',\n 0x0416: 'pt',\n 0x0428: 'tg',\n 0x201A: 'bs-Cyrl',\n 0x0807: 'de-CH',\n 0x0816: 'pt-PT',\n 0x085F: 'tzm',\n 0x141A: 'bs',\n 0x0408: 'el',\n 0x0446: 'pa',\n 0x0449: 'ta',\n 0x047E: 'br',\n 0x046F: 'kl',\n 0x046B: 'qu-BO',\n 0x0444: 'tt',\n 0x0402: 'bg',\n 0x0447: 'gu',\n 0x086B: 'qu-EC',\n 0x044A: 'te',\n 0x0403: 'ca',\n 0x0468: 'ha',\n 0x0C6B: 'qu',\n 0x041E: 'th',\n 0x0C04: 'zh-HK',\n 0x040D: 'he',\n 0x0418: 'ro',\n 0x0451: 'bo',\n 0x1404: 'zh-MO',\n 0x0439: 'hi',\n 0x0417: 'rm',\n 0x041F: 'tr',\n 0x0804: 'zh',\n 0x040E: 'hu',\n 0x0419: 'ru',\n 0x0442: 'tk',\n 0x1004: 'zh-SG',\n 0x040F: 'is',\n 0x243B: 'smn',\n 0x0480: 'ug',\n 0x0404: 'zh-TW',\n 0x0470: 'ig',\n 0x103B: 'smj-NO',\n 0x0422: 'uk',\n 0x0483: 'co',\n 0x0421: 'id',\n 0x143B: 'smj',\n 0x042E: 'hsb',\n 0x041A: 'hr',\n 0x045D: 'iu',\n 0x0C3B: 'se-FI',\n 0x0420: 'ur',\n 0x101A: 'hr-BA',\n 0x085D: 'iu-Latn',\n 0x043B: 'se',\n 0x0843: 'uz-Cyrl',\n 0x0405: 'cs',\n 0x083C: 'ga',\n 0x083B: 'se-SE',\n 0x0443: 'uz',\n 0x0406: 'da',\n 0x0434: 'xh',\n 0x203B: 'sms',\n 0x042A: 'vi',\n 0x048C: 'prs',\n 0x0435: 'zu',\n 0x183B: 'sma-NO',\n 0x0452: 'cy',\n 0x0465: 'dv',\n 0x0410: 'it',\n 0x1C3B: 'sms',\n 0x0488: 'wo',\n 0x0813: 'nl-BE',\n 0x0810: 'it-CH',\n 0x044F: 'sa',\n 0x0485: 'sah',\n 0x0413: 'nl',\n 0x0411: 'ja',\n 0x1C1A: 'sr-Cyrl-BA',\n 0x0478: 'ii',\n 0x0C09: 'en-AU',\n 0x044B: 'kn',\n 0x0C1A: 'sr',\n 0x046A: 'yo',\n 0x2809: 'en-BZ',\n 0x043F: 'kk',\n 0x181A: 'sr-Latn-BA',\n 0x1009: 'en-CA',\n 0x0453: 'km',\n 0x081A: 'sr-Latn',\n 0x2409: 'en-029',\n 0x0486: 'quc',\n 0x046C: 'nso'\n }\n];\n\n\nlet $2bcf221753ec8e32$var$NameRecord = new $6uUbQ$Struct({\n platformID: $6uUbQ$uint16,\n encodingID: $6uUbQ$uint16,\n languageID: $6uUbQ$uint16,\n nameID: $6uUbQ$uint16,\n length: $6uUbQ$uint16,\n string: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$String('length', (t)=>(0, $e449ad78d50845fe$export$badc544e0651b6b1)(t.platformID, t.encodingID, t.languageID)), {\n type: 'parent',\n relativeTo: (ctx)=>ctx.parent.stringOffset,\n allowNull: false\n })\n});\nlet $2bcf221753ec8e32$var$LangTagRecord = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n tag: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$String('length', 'utf16be'), {\n type: 'parent',\n relativeTo: (ctx)=>ctx.stringOffset\n })\n});\nvar $2bcf221753ec8e32$var$NameTable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n count: $6uUbQ$uint16,\n stringOffset: $6uUbQ$uint16,\n records: new $6uUbQ$Array($2bcf221753ec8e32$var$NameRecord, 'count')\n },\n 1: {\n count: $6uUbQ$uint16,\n stringOffset: $6uUbQ$uint16,\n records: new $6uUbQ$Array($2bcf221753ec8e32$var$NameRecord, 'count'),\n langTagCount: $6uUbQ$uint16,\n langTags: new $6uUbQ$Array($2bcf221753ec8e32$var$LangTagRecord, 'langTagCount')\n }\n});\nvar $2bcf221753ec8e32$export$2e2bcd8739ae039 = $2bcf221753ec8e32$var$NameTable;\nconst $2bcf221753ec8e32$var$NAMES = [\n 'copyright',\n 'fontFamily',\n 'fontSubfamily',\n 'uniqueSubfamily',\n 'fullName',\n 'version',\n 'postscriptName',\n 'trademark',\n 'manufacturer',\n 'designer',\n 'description',\n 'vendorURL',\n 'designerURL',\n 'license',\n 'licenseURL',\n null,\n 'preferredFamily',\n 'preferredSubfamily',\n 'compatibleFull',\n 'sampleText',\n 'postscriptCIDFontName',\n 'wwsFamilyName',\n 'wwsSubfamilyName'\n];\n$2bcf221753ec8e32$var$NameTable.process = function(stream) {\n var records = {};\n for (let record of this.records){\n // find out what language this is for\n let language = (0, $e449ad78d50845fe$export$2092376fd002e13)[record.platformID][record.languageID];\n if (language == null && this.langTags != null && record.languageID >= 0x8000) language = this.langTags[record.languageID - 0x8000].tag;\n if (language == null) language = record.platformID + '-' + record.languageID;\n // if the nameID is >= 256, it is a font feature record (AAT)\n let key = record.nameID >= 256 ? 'fontFeatures' : $2bcf221753ec8e32$var$NAMES[record.nameID] || record.nameID;\n if (records[key] == null) records[key] = {};\n let obj = records[key];\n if (record.nameID >= 256) obj = obj[record.nameID] || (obj[record.nameID] = {});\n if (typeof record.string === 'string' || typeof obj[language] !== 'string') obj[language] = record.string;\n }\n this.records = records;\n};\n$2bcf221753ec8e32$var$NameTable.preEncode = function() {\n if (Array.isArray(this.records)) return;\n this.version = 0;\n let records = [];\n for(let key in this.records){\n let val = this.records[key];\n if (key === 'fontFeatures') continue;\n records.push({\n platformID: 3,\n encodingID: 1,\n languageID: 0x409,\n nameID: $2bcf221753ec8e32$var$NAMES.indexOf(key),\n length: val.en.length * 2,\n string: val.en\n });\n if (key === 'postscriptName') records.push({\n platformID: 1,\n encodingID: 0,\n languageID: 0,\n nameID: $2bcf221753ec8e32$var$NAMES.indexOf(key),\n length: val.en.length,\n string: val.en\n });\n }\n this.records = records;\n this.count = records.length;\n this.stringOffset = $2bcf221753ec8e32$var$NameTable.size(this, null, false);\n};\n\n\n\nvar $84b272aa31b70606$var$OS2 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n header: {\n xAvgCharWidth: $6uUbQ$int16,\n usWeightClass: $6uUbQ$uint16,\n usWidthClass: $6uUbQ$uint16,\n fsType: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n null,\n 'noEmbedding',\n 'viewOnly',\n 'editable',\n null,\n null,\n null,\n null,\n 'noSubsetting',\n 'bitmapOnly'\n ]),\n ySubscriptXSize: $6uUbQ$int16,\n ySubscriptYSize: $6uUbQ$int16,\n ySubscriptXOffset: $6uUbQ$int16,\n ySubscriptYOffset: $6uUbQ$int16,\n ySuperscriptXSize: $6uUbQ$int16,\n ySuperscriptYSize: $6uUbQ$int16,\n ySuperscriptXOffset: $6uUbQ$int16,\n ySuperscriptYOffset: $6uUbQ$int16,\n yStrikeoutSize: $6uUbQ$int16,\n yStrikeoutPosition: $6uUbQ$int16,\n sFamilyClass: $6uUbQ$int16,\n panose: new $6uUbQ$Array($6uUbQ$uint8, 10),\n ulCharRange: new $6uUbQ$Array($6uUbQ$uint32, 4),\n vendorID: new $6uUbQ$String(4),\n fsSelection: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'italic',\n 'underscore',\n 'negative',\n 'outlined',\n 'strikeout',\n 'bold',\n 'regular',\n 'useTypoMetrics',\n 'wws',\n 'oblique'\n ]),\n usFirstCharIndex: $6uUbQ$uint16,\n usLastCharIndex: $6uUbQ$uint16 // The maximum Unicode index in this font\n },\n // The Apple version of this table ends here, but the Microsoft one continues on...\n 0: {},\n 1: {\n typoAscender: $6uUbQ$int16,\n typoDescender: $6uUbQ$int16,\n typoLineGap: $6uUbQ$int16,\n winAscent: $6uUbQ$uint16,\n winDescent: $6uUbQ$uint16,\n codePageRange: new $6uUbQ$Array($6uUbQ$uint32, 2)\n },\n 2: {\n // these should be common with version 1 somehow\n typoAscender: $6uUbQ$int16,\n typoDescender: $6uUbQ$int16,\n typoLineGap: $6uUbQ$int16,\n winAscent: $6uUbQ$uint16,\n winDescent: $6uUbQ$uint16,\n codePageRange: new $6uUbQ$Array($6uUbQ$uint32, 2),\n xHeight: $6uUbQ$int16,\n capHeight: $6uUbQ$int16,\n defaultChar: $6uUbQ$uint16,\n breakChar: $6uUbQ$uint16,\n maxContent: $6uUbQ$uint16\n },\n 5: {\n typoAscender: $6uUbQ$int16,\n typoDescender: $6uUbQ$int16,\n typoLineGap: $6uUbQ$int16,\n winAscent: $6uUbQ$uint16,\n winDescent: $6uUbQ$uint16,\n codePageRange: new $6uUbQ$Array($6uUbQ$uint32, 2),\n xHeight: $6uUbQ$int16,\n capHeight: $6uUbQ$int16,\n defaultChar: $6uUbQ$uint16,\n breakChar: $6uUbQ$uint16,\n maxContent: $6uUbQ$uint16,\n usLowerOpticalPointSize: $6uUbQ$uint16,\n usUpperOpticalPointSize: $6uUbQ$uint16\n }\n});\nlet $84b272aa31b70606$var$versions = $84b272aa31b70606$var$OS2.versions;\n$84b272aa31b70606$var$versions[3] = $84b272aa31b70606$var$versions[4] = $84b272aa31b70606$var$versions[2];\nvar $84b272aa31b70606$export$2e2bcd8739ae039 = $84b272aa31b70606$var$OS2;\n\n\n\nvar // PostScript information\n$32d9e2eb9565d93c$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$fixed32, {\n header: {\n italicAngle: $6uUbQ$fixed32,\n underlinePosition: $6uUbQ$int16,\n underlineThickness: $6uUbQ$int16,\n isFixedPitch: $6uUbQ$uint32,\n minMemType42: $6uUbQ$uint32,\n maxMemType42: $6uUbQ$uint32,\n minMemType1: $6uUbQ$uint32,\n maxMemType1: $6uUbQ$uint32 // Maximum memory usage when a TrueType font is downloaded as a Type 1 font\n },\n 1: {},\n 2: {\n numberOfGlyphs: $6uUbQ$uint16,\n glyphNameIndex: new $6uUbQ$Array($6uUbQ$uint16, 'numberOfGlyphs'),\n names: new $6uUbQ$Array(new $6uUbQ$String($6uUbQ$uint8))\n },\n 2.5: {\n numberOfGlyphs: $6uUbQ$uint16,\n offsets: new $6uUbQ$Array($6uUbQ$uint8, 'numberOfGlyphs')\n },\n 3: {},\n 4: {\n map: new $6uUbQ$Array($6uUbQ$uint32, (t)=>t.parent.maxp.numGlyphs)\n }\n});\n\n\n\nvar // An array of predefined values accessible by instructions\n$5202bd9d9ad8eaac$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n controlValues: new $6uUbQ$Array($6uUbQ$int16)\n});\n\n\n\nvar // A list of instructions that are executed once when a font is first used.\n// These instructions are known as the font program. The main use of this table\n// is for the definition of functions that are used in many different glyph programs.\n$5c0f37ca5ffb1850$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n instructions: new $6uUbQ$Array($6uUbQ$uint8)\n});\n\n\n\nlet $2b2b260902b1c57e$var$loca = new $6uUbQ$VersionedStruct('head.indexToLocFormat', {\n 0: {\n offsets: new $6uUbQ$Array($6uUbQ$uint16)\n },\n 1: {\n offsets: new $6uUbQ$Array($6uUbQ$uint32)\n }\n});\n$2b2b260902b1c57e$var$loca.process = function() {\n if (this.version === 0 && !this._processed) {\n for(let i = 0; i < this.offsets.length; i++)this.offsets[i] <<= 1;\n this._processed = true;\n }\n};\n$2b2b260902b1c57e$var$loca.preEncode = function() {\n if (this.version === 0 && this._processed !== false) {\n for(let i = 0; i < this.offsets.length; i++)this.offsets[i] >>>= 1;\n this._processed = false;\n }\n};\nvar $2b2b260902b1c57e$export$2e2bcd8739ae039 = $2b2b260902b1c57e$var$loca;\n\n\n\nvar // Set of instructions executed whenever the point size or font transformation change\n$7afb878c7bea4f66$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n controlValueProgram: new $6uUbQ$Array($6uUbQ$uint8)\n});\n\n\n\nvar // only used for encoding\n$6c92b6371bce8bd9$export$2e2bcd8739ae039 = new $6uUbQ$Array(new $6uUbQ$Buffer);\n\n\n\n\nclass $43e9821ef3717eec$export$2e2bcd8739ae039 {\n getCFFVersion(ctx) {\n while(ctx && !ctx.hdrSize)ctx = ctx.parent;\n return ctx ? ctx.version : -1;\n }\n decode(stream, parent) {\n let version = this.getCFFVersion(parent);\n let count = version >= 2 ? stream.readUInt32BE() : stream.readUInt16BE();\n if (count === 0) return [];\n let offSize = stream.readUInt8();\n let offsetType;\n if (offSize === 1) offsetType = $6uUbQ$uint8;\n else if (offSize === 2) offsetType = $6uUbQ$uint16;\n else if (offSize === 3) offsetType = $6uUbQ$uint24;\n else if (offSize === 4) offsetType = $6uUbQ$uint32;\n else throw new Error(`Bad offset size in CFFIndex: ${offSize} ${stream.pos}`);\n let ret = [];\n let startPos = stream.pos + (count + 1) * offSize - 1;\n let start = offsetType.decode(stream);\n for(let i = 0; i < count; i++){\n let end = offsetType.decode(stream);\n if (this.type != null) {\n let pos = stream.pos;\n stream.pos = startPos + start;\n parent.length = end - start;\n ret.push(this.type.decode(stream, parent));\n stream.pos = pos;\n } else ret.push({\n offset: startPos + start,\n length: end - start\n });\n start = end;\n }\n stream.pos = startPos + start;\n return ret;\n }\n size(arr, parent) {\n let size = 2;\n if (arr.length === 0) return size;\n let type = this.type || new $6uUbQ$Buffer;\n // find maximum offset to detminine offset type\n let offset = 1;\n for(let i = 0; i < arr.length; i++){\n let item = arr[i];\n offset += type.size(item, parent);\n }\n let offsetType;\n if (offset <= 0xff) offsetType = $6uUbQ$uint8;\n else if (offset <= 0xffff) offsetType = $6uUbQ$uint16;\n else if (offset <= 0xffffff) offsetType = $6uUbQ$uint24;\n else if (offset <= 0xffffffff) offsetType = $6uUbQ$uint32;\n else throw new Error(\"Bad offset in CFFIndex\");\n size += 1 + offsetType.size() * (arr.length + 1);\n size += offset - 1;\n return size;\n }\n encode(stream, arr, parent) {\n stream.writeUInt16BE(arr.length);\n if (arr.length === 0) return;\n let type = this.type || new $6uUbQ$Buffer;\n // find maximum offset to detminine offset type\n let sizes = [];\n let offset = 1;\n for (let item of arr){\n let s = type.size(item, parent);\n sizes.push(s);\n offset += s;\n }\n let offsetType;\n if (offset <= 0xff) offsetType = $6uUbQ$uint8;\n else if (offset <= 0xffff) offsetType = $6uUbQ$uint16;\n else if (offset <= 0xffffff) offsetType = $6uUbQ$uint24;\n else if (offset <= 0xffffffff) offsetType = $6uUbQ$uint32;\n else throw new Error(\"Bad offset in CFFIndex\");\n // write offset size\n stream.writeUInt8(offsetType.size());\n // write elements\n offset = 1;\n offsetType.encode(stream, offset);\n for (let size of sizes){\n offset += size;\n offsetType.encode(stream, offset);\n }\n for (let item of arr)type.encode(stream, item, parent);\n return;\n }\n constructor(type){\n this.type = type;\n }\n}\n\n\n\n\n\nconst $c2d28e92708f99da$var$FLOAT_EOF = 0xf;\nconst $c2d28e92708f99da$var$FLOAT_LOOKUP = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '.',\n 'E',\n 'E-',\n null,\n '-'\n];\nconst $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP = {\n '.': 10,\n 'E': 11,\n 'E-': 12,\n '-': 14\n};\nclass $c2d28e92708f99da$export$2e2bcd8739ae039 {\n static decode(stream, value) {\n if (32 <= value && value <= 246) return value - 139;\n if (247 <= value && value <= 250) return (value - 247) * 256 + stream.readUInt8() + 108;\n if (251 <= value && value <= 254) return -(value - 251) * 256 - stream.readUInt8() - 108;\n if (value === 28) return stream.readInt16BE();\n if (value === 29) return stream.readInt32BE();\n if (value === 30) {\n let str = '';\n while(true){\n let b = stream.readUInt8();\n let n1 = b >> 4;\n if (n1 === $c2d28e92708f99da$var$FLOAT_EOF) break;\n str += $c2d28e92708f99da$var$FLOAT_LOOKUP[n1];\n let n2 = b & 15;\n if (n2 === $c2d28e92708f99da$var$FLOAT_EOF) break;\n str += $c2d28e92708f99da$var$FLOAT_LOOKUP[n2];\n }\n return parseFloat(str);\n }\n return null;\n }\n static size(value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, set to 32768\n if (value.forceLarge) value = 32768;\n if ((value | 0) !== value) {\n let str = '' + value;\n return 1 + Math.ceil((str.length + 1) / 2);\n } else if (-107 <= value && value <= 107) return 1;\n else if (108 <= value && value <= 1131 || -1131 <= value && value <= -108) return 2;\n else if (-32768 <= value && value <= 32767) return 3;\n else return 5;\n }\n static encode(stream, value) {\n // if the value needs to be forced to the largest size (32 bit)\n // e.g. for unknown pointers, save the old value and set to 32768\n let val = Number(value);\n if (value.forceLarge) {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n } else if ((val | 0) !== val) {\n stream.writeUInt8(30);\n let str = '' + val;\n for(let i = 0; i < str.length; i += 2){\n let c1 = str[i];\n let n1 = $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP[c1] || +c1;\n if (i === str.length - 1) var n2 = $c2d28e92708f99da$var$FLOAT_EOF;\n else {\n let c2 = str[i + 1];\n var n2 = $c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP[c2] || +c2;\n }\n stream.writeUInt8(n1 << 4 | n2 & 15);\n }\n if (n2 !== $c2d28e92708f99da$var$FLOAT_EOF) return stream.writeUInt8($c2d28e92708f99da$var$FLOAT_EOF << 4);\n } else if (-107 <= val && val <= 107) return stream.writeUInt8(val + 139);\n else if (108 <= val && val <= 1131) {\n val -= 108;\n stream.writeUInt8((val >> 8) + 247);\n return stream.writeUInt8(val & 0xff);\n } else if (-1131 <= val && val <= -108) {\n val = -val - 108;\n stream.writeUInt8((val >> 8) + 251);\n return stream.writeUInt8(val & 0xff);\n } else if (-32768 <= val && val <= 32767) {\n stream.writeUInt8(28);\n return stream.writeInt16BE(val);\n } else {\n stream.writeUInt8(29);\n return stream.writeInt32BE(val);\n }\n }\n}\n\n\nclass $61aa549f16d58b9b$export$2e2bcd8739ae039 {\n decodeOperands(type, stream, ret, operands) {\n if (Array.isArray(type)) return operands.map((op, i)=>this.decodeOperands(type[i], stream, ret, [\n op\n ]));\n else if (type.decode != null) return type.decode(stream, ret, operands);\n else switch(type){\n case 'number':\n case 'offset':\n case 'sid':\n return operands[0];\n case 'boolean':\n return !!operands[0];\n default:\n return operands;\n }\n }\n encodeOperands(type, stream, ctx, operands) {\n if (Array.isArray(type)) return operands.map((op, i)=>this.encodeOperands(type[i], stream, ctx, op)[0]);\n else if (type.encode != null) return type.encode(stream, operands, ctx);\n else if (typeof operands === 'number') return [\n operands\n ];\n else if (typeof operands === 'boolean') return [\n +operands\n ];\n else if (Array.isArray(operands)) return operands;\n else return [\n operands\n ];\n }\n decode(stream, parent) {\n let end = stream.pos + parent.length;\n let ret = {};\n let operands = [];\n // define hidden properties\n Object.defineProperties(ret, {\n parent: {\n value: parent\n },\n _startOffset: {\n value: stream.pos\n }\n });\n // fill in defaults\n for(let key in this.fields){\n let field = this.fields[key];\n ret[field[1]] = field[3];\n }\n while(stream.pos < end){\n let b = stream.readUInt8();\n if (b < 28) {\n if (b === 12) b = b << 8 | stream.readUInt8();\n let field = this.fields[b];\n if (!field) throw new Error(`Unknown operator ${b}`);\n let val = this.decodeOperands(field[2], stream, ret, operands);\n if (val != null) {\n if (val instanceof (0, $6uUbQ$PropertyDescriptor)) Object.defineProperty(ret, field[1], val);\n else ret[field[1]] = val;\n }\n operands = [];\n } else operands.push((0, $c2d28e92708f99da$export$2e2bcd8739ae039).decode(stream, b));\n }\n return ret;\n }\n size(dict, parent, includePointers = true) {\n let ctx = {\n parent: parent,\n val: dict,\n pointerSize: 0,\n startOffset: parent.startOffset || 0\n };\n let len = 0;\n for(let k in this.fields){\n let field = this.fields[k];\n let val = dict[field[1]];\n if (val == null || (0, $6uUbQ$fastdeepequal)(val, field[3])) continue;\n let operands = this.encodeOperands(field[2], null, ctx, val);\n for (let op of operands)len += (0, $c2d28e92708f99da$export$2e2bcd8739ae039).size(op);\n let key = Array.isArray(field[0]) ? field[0] : [\n field[0]\n ];\n len += key.length;\n }\n if (includePointers) len += ctx.pointerSize;\n return len;\n }\n encode(stream, dict, parent) {\n let ctx = {\n pointers: [],\n startOffset: stream.pos,\n parent: parent,\n val: dict,\n pointerSize: 0\n };\n ctx.pointerOffset = stream.pos + this.size(dict, ctx, false);\n for (let field of this.ops){\n let val = dict[field[1]];\n if (val == null || (0, $6uUbQ$fastdeepequal)(val, field[3])) continue;\n let operands = this.encodeOperands(field[2], stream, ctx, val);\n for (let op of operands)(0, $c2d28e92708f99da$export$2e2bcd8739ae039).encode(stream, op);\n let key = Array.isArray(field[0]) ? field[0] : [\n field[0]\n ];\n for (let op of key)stream.writeUInt8(op);\n }\n let i = 0;\n while(i < ctx.pointers.length){\n let ptr = ctx.pointers[i++];\n ptr.type.encode(stream, ptr.val, ptr.parent);\n }\n return;\n }\n constructor(ops = []){\n this.ops = ops;\n this.fields = {};\n for (let field of ops){\n let key = Array.isArray(field[0]) ? field[0][0] << 8 | field[0][1] : field[0];\n this.fields[key] = field;\n }\n }\n}\n\n\n\n\nclass $0e34a43d05bde82c$export$2e2bcd8739ae039 extends $6uUbQ$Pointer {\n decode(stream, parent, operands) {\n this.offsetType = {\n decode: ()=>operands[0]\n };\n return super.decode(stream, parent, operands);\n }\n encode(stream, value, ctx) {\n if (!stream) {\n // compute the size (so ctx.pointerSize is correct)\n this.offsetType = {\n size: ()=>0\n };\n this.size(value, ctx);\n return [\n new $0e34a43d05bde82c$var$Ptr(0)\n ];\n }\n let ptr = null;\n this.offsetType = {\n encode: (stream, val)=>ptr = val\n };\n super.encode(stream, value, ctx);\n return [\n new $0e34a43d05bde82c$var$Ptr(ptr)\n ];\n }\n constructor(type, options = {}){\n if (options.type == null) options.type = 'global';\n super(null, type, options);\n }\n}\nclass $0e34a43d05bde82c$var$Ptr {\n valueOf() {\n return this.val;\n }\n constructor(val){\n this.val = val;\n this.forceLarge = true;\n }\n}\n\n\n\n\n\nclass $6d59db2e29cc77b3$var$CFFBlendOp {\n static decode(stream, parent, operands) {\n let numBlends = operands.pop();\n // TODO: actually blend. For now just consume the deltas\n // since we don't use any of the values anyway.\n while(operands.length > numBlends)operands.pop();\n }\n}\nvar $6d59db2e29cc77b3$export$2e2bcd8739ae039 = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n // key name type default\n [\n 6,\n 'BlueValues',\n 'delta',\n null\n ],\n [\n 7,\n 'OtherBlues',\n 'delta',\n null\n ],\n [\n 8,\n 'FamilyBlues',\n 'delta',\n null\n ],\n [\n 9,\n 'FamilyOtherBlues',\n 'delta',\n null\n ],\n [\n [\n 12,\n 9\n ],\n 'BlueScale',\n 'number',\n 0.039625\n ],\n [\n [\n 12,\n 10\n ],\n 'BlueShift',\n 'number',\n 7\n ],\n [\n [\n 12,\n 11\n ],\n 'BlueFuzz',\n 'number',\n 1\n ],\n [\n 10,\n 'StdHW',\n 'number',\n null\n ],\n [\n 11,\n 'StdVW',\n 'number',\n null\n ],\n [\n [\n 12,\n 12\n ],\n 'StemSnapH',\n 'delta',\n null\n ],\n [\n [\n 12,\n 13\n ],\n 'StemSnapV',\n 'delta',\n null\n ],\n [\n [\n 12,\n 14\n ],\n 'ForceBold',\n 'boolean',\n false\n ],\n [\n [\n 12,\n 17\n ],\n 'LanguageGroup',\n 'number',\n 0\n ],\n [\n [\n 12,\n 18\n ],\n 'ExpansionFactor',\n 'number',\n 0.06\n ],\n [\n [\n 12,\n 19\n ],\n 'initialRandomSeed',\n 'number',\n 0\n ],\n [\n 20,\n 'defaultWidthX',\n 'number',\n 0\n ],\n [\n 21,\n 'nominalWidthX',\n 'number',\n 0\n ],\n [\n 22,\n 'vsindex',\n 'number',\n 0\n ],\n [\n 23,\n 'blend',\n $6d59db2e29cc77b3$var$CFFBlendOp,\n null\n ],\n [\n 19,\n 'Subrs',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039), {\n type: 'local'\n }),\n null\n ]\n]);\n\n\n// Automatically generated from Appendix A of the CFF specification; do\n// not edit. Length should be 391.\nvar $229224aec43783c5$export$2e2bcd8739ae039 = [\n \".notdef\",\n \"space\",\n \"exclam\",\n \"quotedbl\",\n \"numbersign\",\n \"dollar\",\n \"percent\",\n \"ampersand\",\n \"quoteright\",\n \"parenleft\",\n \"parenright\",\n \"asterisk\",\n \"plus\",\n \"comma\",\n \"hyphen\",\n \"period\",\n \"slash\",\n \"zero\",\n \"one\",\n \"two\",\n \"three\",\n \"four\",\n \"five\",\n \"six\",\n \"seven\",\n \"eight\",\n \"nine\",\n \"colon\",\n \"semicolon\",\n \"less\",\n \"equal\",\n \"greater\",\n \"question\",\n \"at\",\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n \"G\",\n \"H\",\n \"I\",\n \"J\",\n \"K\",\n \"L\",\n \"M\",\n \"N\",\n \"O\",\n \"P\",\n \"Q\",\n \"R\",\n \"S\",\n \"T\",\n \"U\",\n \"V\",\n \"W\",\n \"X\",\n \"Y\",\n \"Z\",\n \"bracketleft\",\n \"backslash\",\n \"bracketright\",\n \"asciicircum\",\n \"underscore\",\n \"quoteleft\",\n \"a\",\n \"b\",\n \"c\",\n \"d\",\n \"e\",\n \"f\",\n \"g\",\n \"h\",\n \"i\",\n \"j\",\n \"k\",\n \"l\",\n \"m\",\n \"n\",\n \"o\",\n \"p\",\n \"q\",\n \"r\",\n \"s\",\n \"t\",\n \"u\",\n \"v\",\n \"w\",\n \"x\",\n \"y\",\n \"z\",\n \"braceleft\",\n \"bar\",\n \"braceright\",\n \"asciitilde\",\n \"exclamdown\",\n \"cent\",\n \"sterling\",\n \"fraction\",\n \"yen\",\n \"florin\",\n \"section\",\n \"currency\",\n \"quotesingle\",\n \"quotedblleft\",\n \"guillemotleft\",\n \"guilsinglleft\",\n \"guilsinglright\",\n \"fi\",\n \"fl\",\n \"endash\",\n \"dagger\",\n \"daggerdbl\",\n \"periodcentered\",\n \"paragraph\",\n \"bullet\",\n \"quotesinglbase\",\n \"quotedblbase\",\n \"quotedblright\",\n \"guillemotright\",\n \"ellipsis\",\n \"perthousand\",\n \"questiondown\",\n \"grave\",\n \"acute\",\n \"circumflex\",\n \"tilde\",\n \"macron\",\n \"breve\",\n \"dotaccent\",\n \"dieresis\",\n \"ring\",\n \"cedilla\",\n \"hungarumlaut\",\n \"ogonek\",\n \"caron\",\n \"emdash\",\n \"AE\",\n \"ordfeminine\",\n \"Lslash\",\n \"Oslash\",\n \"OE\",\n \"ordmasculine\",\n \"ae\",\n \"dotlessi\",\n \"lslash\",\n \"oslash\",\n \"oe\",\n \"germandbls\",\n \"onesuperior\",\n \"logicalnot\",\n \"mu\",\n \"trademark\",\n \"Eth\",\n \"onehalf\",\n \"plusminus\",\n \"Thorn\",\n \"onequarter\",\n \"divide\",\n \"brokenbar\",\n \"degree\",\n \"thorn\",\n \"threequarters\",\n \"twosuperior\",\n \"registered\",\n \"minus\",\n \"eth\",\n \"multiply\",\n \"threesuperior\",\n \"copyright\",\n \"Aacute\",\n \"Acircumflex\",\n \"Adieresis\",\n \"Agrave\",\n \"Aring\",\n \"Atilde\",\n \"Ccedilla\",\n \"Eacute\",\n \"Ecircumflex\",\n \"Edieresis\",\n \"Egrave\",\n \"Iacute\",\n \"Icircumflex\",\n \"Idieresis\",\n \"Igrave\",\n \"Ntilde\",\n \"Oacute\",\n \"Ocircumflex\",\n \"Odieresis\",\n \"Ograve\",\n \"Otilde\",\n \"Scaron\",\n \"Uacute\",\n \"Ucircumflex\",\n \"Udieresis\",\n \"Ugrave\",\n \"Yacute\",\n \"Ydieresis\",\n \"Zcaron\",\n \"aacute\",\n \"acircumflex\",\n \"adieresis\",\n \"agrave\",\n \"aring\",\n \"atilde\",\n \"ccedilla\",\n \"eacute\",\n \"ecircumflex\",\n \"edieresis\",\n \"egrave\",\n \"iacute\",\n \"icircumflex\",\n \"idieresis\",\n \"igrave\",\n \"ntilde\",\n \"oacute\",\n \"ocircumflex\",\n \"odieresis\",\n \"ograve\",\n \"otilde\",\n \"scaron\",\n \"uacute\",\n \"ucircumflex\",\n \"udieresis\",\n \"ugrave\",\n \"yacute\",\n \"ydieresis\",\n \"zcaron\",\n \"exclamsmall\",\n \"Hungarumlautsmall\",\n \"dollaroldstyle\",\n \"dollarsuperior\",\n \"ampersandsmall\",\n \"Acutesmall\",\n \"parenleftsuperior\",\n \"parenrightsuperior\",\n \"twodotenleader\",\n \"onedotenleader\",\n \"zerooldstyle\",\n \"oneoldstyle\",\n \"twooldstyle\",\n \"threeoldstyle\",\n \"fouroldstyle\",\n \"fiveoldstyle\",\n \"sixoldstyle\",\n \"sevenoldstyle\",\n \"eightoldstyle\",\n \"nineoldstyle\",\n \"commasuperior\",\n \"threequartersemdash\",\n \"periodsuperior\",\n \"questionsmall\",\n \"asuperior\",\n \"bsuperior\",\n \"centsuperior\",\n \"dsuperior\",\n \"esuperior\",\n \"isuperior\",\n \"lsuperior\",\n \"msuperior\",\n \"nsuperior\",\n \"osuperior\",\n \"rsuperior\",\n \"ssuperior\",\n \"tsuperior\",\n \"ff\",\n \"ffi\",\n \"ffl\",\n \"parenleftinferior\",\n \"parenrightinferior\",\n \"Circumflexsmall\",\n \"hyphensuperior\",\n \"Gravesmall\",\n \"Asmall\",\n \"Bsmall\",\n \"Csmall\",\n \"Dsmall\",\n \"Esmall\",\n \"Fsmall\",\n \"Gsmall\",\n \"Hsmall\",\n \"Ismall\",\n \"Jsmall\",\n \"Ksmall\",\n \"Lsmall\",\n \"Msmall\",\n \"Nsmall\",\n \"Osmall\",\n \"Psmall\",\n \"Qsmall\",\n \"Rsmall\",\n \"Ssmall\",\n \"Tsmall\",\n \"Usmall\",\n \"Vsmall\",\n \"Wsmall\",\n \"Xsmall\",\n \"Ysmall\",\n \"Zsmall\",\n \"colonmonetary\",\n \"onefitted\",\n \"rupiah\",\n \"Tildesmall\",\n \"exclamdownsmall\",\n \"centoldstyle\",\n \"Lslashsmall\",\n \"Scaronsmall\",\n \"Zcaronsmall\",\n \"Dieresissmall\",\n \"Brevesmall\",\n \"Caronsmall\",\n \"Dotaccentsmall\",\n \"Macronsmall\",\n \"figuredash\",\n \"hypheninferior\",\n \"Ogoneksmall\",\n \"Ringsmall\",\n \"Cedillasmall\",\n \"questiondownsmall\",\n \"oneeighth\",\n \"threeeighths\",\n \"fiveeighths\",\n \"seveneighths\",\n \"onethird\",\n \"twothirds\",\n \"zerosuperior\",\n \"foursuperior\",\n \"fivesuperior\",\n \"sixsuperior\",\n \"sevensuperior\",\n \"eightsuperior\",\n \"ninesuperior\",\n \"zeroinferior\",\n \"oneinferior\",\n \"twoinferior\",\n \"threeinferior\",\n \"fourinferior\",\n \"fiveinferior\",\n \"sixinferior\",\n \"seveninferior\",\n \"eightinferior\",\n \"nineinferior\",\n \"centinferior\",\n \"dollarinferior\",\n \"periodinferior\",\n \"commainferior\",\n \"Agravesmall\",\n \"Aacutesmall\",\n \"Acircumflexsmall\",\n \"Atildesmall\",\n \"Adieresissmall\",\n \"Aringsmall\",\n \"AEsmall\",\n \"Ccedillasmall\",\n \"Egravesmall\",\n \"Eacutesmall\",\n \"Ecircumflexsmall\",\n \"Edieresissmall\",\n \"Igravesmall\",\n \"Iacutesmall\",\n \"Icircumflexsmall\",\n \"Idieresissmall\",\n \"Ethsmall\",\n \"Ntildesmall\",\n \"Ogravesmall\",\n \"Oacutesmall\",\n \"Ocircumflexsmall\",\n \"Otildesmall\",\n \"Odieresissmall\",\n \"OEsmall\",\n \"Oslashsmall\",\n \"Ugravesmall\",\n \"Uacutesmall\",\n \"Ucircumflexsmall\",\n \"Udieresissmall\",\n \"Yacutesmall\",\n \"Thornsmall\",\n \"Ydieresissmall\",\n \"001.000\",\n \"001.001\",\n \"001.002\",\n \"001.003\",\n \"Black\",\n \"Bold\",\n \"Book\",\n \"Light\",\n \"Medium\",\n \"Regular\",\n \"Roman\",\n \"Semibold\"\n];\n\n\nlet $bc0433d9b7e41f5f$export$dee0027060fa13bd = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n '',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n '',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n '',\n 'questiondown',\n '',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n '',\n 'ring',\n 'cedilla',\n '',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'AE',\n '',\n 'ordfeminine',\n '',\n '',\n '',\n '',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n '',\n '',\n '',\n '',\n '',\n 'ae',\n '',\n '',\n '',\n 'dotlessi',\n '',\n '',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls'\n];\nlet $bc0433d9b7e41f5f$export$4f58f497e14a53c3 = [\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'space',\n 'exclamsmall',\n 'Hungarumlautsmall',\n '',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n '',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n '',\n '',\n 'isuperior',\n '',\n '',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n '',\n '',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n '',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n '',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n '',\n '',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n '',\n 'Dotaccentsmall',\n '',\n '',\n 'Macronsmall',\n '',\n '',\n 'figuredash',\n 'hypheninferior',\n '',\n '',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n '',\n '',\n '',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n '',\n '',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall'\n];\n\n\nlet $ef658f5c9a1488b2$export$c33b50336c234f16 = [\n '.notdef',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quoteright',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'quoteleft',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n 'exclamdown',\n 'cent',\n 'sterling',\n 'fraction',\n 'yen',\n 'florin',\n 'section',\n 'currency',\n 'quotesingle',\n 'quotedblleft',\n 'guillemotleft',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n 'endash',\n 'dagger',\n 'daggerdbl',\n 'periodcentered',\n 'paragraph',\n 'bullet',\n 'quotesinglbase',\n 'quotedblbase',\n 'quotedblright',\n 'guillemotright',\n 'ellipsis',\n 'perthousand',\n 'questiondown',\n 'grave',\n 'acute',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'dieresis',\n 'ring',\n 'cedilla',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'emdash',\n 'AE',\n 'ordfeminine',\n 'Lslash',\n 'Oslash',\n 'OE',\n 'ordmasculine',\n 'ae',\n 'dotlessi',\n 'lslash',\n 'oslash',\n 'oe',\n 'germandbls',\n 'onesuperior',\n 'logicalnot',\n 'mu',\n 'trademark',\n 'Eth',\n 'onehalf',\n 'plusminus',\n 'Thorn',\n 'onequarter',\n 'divide',\n 'brokenbar',\n 'degree',\n 'thorn',\n 'threequarters',\n 'twosuperior',\n 'registered',\n 'minus',\n 'eth',\n 'multiply',\n 'threesuperior',\n 'copyright',\n 'Aacute',\n 'Acircumflex',\n 'Adieresis',\n 'Agrave',\n 'Aring',\n 'Atilde',\n 'Ccedilla',\n 'Eacute',\n 'Ecircumflex',\n 'Edieresis',\n 'Egrave',\n 'Iacute',\n 'Icircumflex',\n 'Idieresis',\n 'Igrave',\n 'Ntilde',\n 'Oacute',\n 'Ocircumflex',\n 'Odieresis',\n 'Ograve',\n 'Otilde',\n 'Scaron',\n 'Uacute',\n 'Ucircumflex',\n 'Udieresis',\n 'Ugrave',\n 'Yacute',\n 'Ydieresis',\n 'Zcaron',\n 'aacute',\n 'acircumflex',\n 'adieresis',\n 'agrave',\n 'aring',\n 'atilde',\n 'ccedilla',\n 'eacute',\n 'ecircumflex',\n 'edieresis',\n 'egrave',\n 'iacute',\n 'icircumflex',\n 'idieresis',\n 'igrave',\n 'ntilde',\n 'oacute',\n 'ocircumflex',\n 'odieresis',\n 'ograve',\n 'otilde',\n 'scaron',\n 'uacute',\n 'ucircumflex',\n 'udieresis',\n 'ugrave',\n 'yacute',\n 'ydieresis',\n 'zcaron'\n];\nlet $ef658f5c9a1488b2$export$3ed0f9e1fee8d489 = [\n '.notdef',\n 'space',\n 'exclamsmall',\n 'Hungarumlautsmall',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'ampersandsmall',\n 'Acutesmall',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'questionsmall',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n 'isuperior',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n 'parenrightinferior',\n 'Circumflexsmall',\n 'hyphensuperior',\n 'Gravesmall',\n 'Asmall',\n 'Bsmall',\n 'Csmall',\n 'Dsmall',\n 'Esmall',\n 'Fsmall',\n 'Gsmall',\n 'Hsmall',\n 'Ismall',\n 'Jsmall',\n 'Ksmall',\n 'Lsmall',\n 'Msmall',\n 'Nsmall',\n 'Osmall',\n 'Psmall',\n 'Qsmall',\n 'Rsmall',\n 'Ssmall',\n 'Tsmall',\n 'Usmall',\n 'Vsmall',\n 'Wsmall',\n 'Xsmall',\n 'Ysmall',\n 'Zsmall',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'Tildesmall',\n 'exclamdownsmall',\n 'centoldstyle',\n 'Lslashsmall',\n 'Scaronsmall',\n 'Zcaronsmall',\n 'Dieresissmall',\n 'Brevesmall',\n 'Caronsmall',\n 'Dotaccentsmall',\n 'Macronsmall',\n 'figuredash',\n 'hypheninferior',\n 'Ogoneksmall',\n 'Ringsmall',\n 'Cedillasmall',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'questiondownsmall',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior',\n 'Agravesmall',\n 'Aacutesmall',\n 'Acircumflexsmall',\n 'Atildesmall',\n 'Adieresissmall',\n 'Aringsmall',\n 'AEsmall',\n 'Ccedillasmall',\n 'Egravesmall',\n 'Eacutesmall',\n 'Ecircumflexsmall',\n 'Edieresissmall',\n 'Igravesmall',\n 'Iacutesmall',\n 'Icircumflexsmall',\n 'Idieresissmall',\n 'Ethsmall',\n 'Ntildesmall',\n 'Ogravesmall',\n 'Oacutesmall',\n 'Ocircumflexsmall',\n 'Otildesmall',\n 'Odieresissmall',\n 'OEsmall',\n 'Oslashsmall',\n 'Ugravesmall',\n 'Uacutesmall',\n 'Ucircumflexsmall',\n 'Udieresissmall',\n 'Yacutesmall',\n 'Thornsmall',\n 'Ydieresissmall'\n];\nlet $ef658f5c9a1488b2$export$dc28be11139d4120 = [\n '.notdef',\n 'space',\n 'dollaroldstyle',\n 'dollarsuperior',\n 'parenleftsuperior',\n 'parenrightsuperior',\n 'twodotenleader',\n 'onedotenleader',\n 'comma',\n 'hyphen',\n 'period',\n 'fraction',\n 'zerooldstyle',\n 'oneoldstyle',\n 'twooldstyle',\n 'threeoldstyle',\n 'fouroldstyle',\n 'fiveoldstyle',\n 'sixoldstyle',\n 'sevenoldstyle',\n 'eightoldstyle',\n 'nineoldstyle',\n 'colon',\n 'semicolon',\n 'commasuperior',\n 'threequartersemdash',\n 'periodsuperior',\n 'asuperior',\n 'bsuperior',\n 'centsuperior',\n 'dsuperior',\n 'esuperior',\n 'isuperior',\n 'lsuperior',\n 'msuperior',\n 'nsuperior',\n 'osuperior',\n 'rsuperior',\n 'ssuperior',\n 'tsuperior',\n 'ff',\n 'fi',\n 'fl',\n 'ffi',\n 'ffl',\n 'parenleftinferior',\n 'parenrightinferior',\n 'hyphensuperior',\n 'colonmonetary',\n 'onefitted',\n 'rupiah',\n 'centoldstyle',\n 'figuredash',\n 'hypheninferior',\n 'onequarter',\n 'onehalf',\n 'threequarters',\n 'oneeighth',\n 'threeeighths',\n 'fiveeighths',\n 'seveneighths',\n 'onethird',\n 'twothirds',\n 'zerosuperior',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'foursuperior',\n 'fivesuperior',\n 'sixsuperior',\n 'sevensuperior',\n 'eightsuperior',\n 'ninesuperior',\n 'zeroinferior',\n 'oneinferior',\n 'twoinferior',\n 'threeinferior',\n 'fourinferior',\n 'fiveinferior',\n 'sixinferior',\n 'seveninferior',\n 'eightinferior',\n 'nineinferior',\n 'centinferior',\n 'dollarinferior',\n 'periodinferior',\n 'commainferior'\n];\n\n\n\n//########################\n// Scripts and Languages #\n//########################\nlet $7cbbe4e24ef3cb75$var$LangSysTable = new $6uUbQ$Struct({\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n reqFeatureIndex: $6uUbQ$uint16,\n featureCount: $6uUbQ$uint16,\n featureIndexes: new $6uUbQ$Array($6uUbQ$uint16, 'featureCount')\n});\nlet $7cbbe4e24ef3cb75$var$LangSysRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n langSys: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$LangSysTable, {\n type: 'parent'\n })\n});\nlet $7cbbe4e24ef3cb75$var$Script = new $6uUbQ$Struct({\n defaultLangSys: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$LangSysTable),\n count: $6uUbQ$uint16,\n langSysRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LangSysRecord, 'count')\n});\nlet $7cbbe4e24ef3cb75$var$ScriptRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n script: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$Script, {\n type: 'parent'\n })\n});\nlet $7cbbe4e24ef3cb75$export$3e15fc05ce864229 = new $6uUbQ$Array($7cbbe4e24ef3cb75$var$ScriptRecord, $6uUbQ$uint16);\n//#######################\n// Features and Lookups #\n//#######################\nlet $7cbbe4e24ef3cb75$var$FeatureParams = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n nameID: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$export$6e91cf7616333d5 = new $6uUbQ$Struct({\n featureParams: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$FeatureParams),\n lookupCount: $6uUbQ$uint16,\n lookupListIndexes: new $6uUbQ$Array($6uUbQ$uint16, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$FeatureRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n feature: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$6e91cf7616333d5, {\n type: 'parent'\n })\n});\nlet $7cbbe4e24ef3cb75$export$aa18130def4b6cb4 = new $6uUbQ$Array($7cbbe4e24ef3cb75$var$FeatureRecord, $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$var$LookupFlags = new $6uUbQ$Struct({\n markAttachmentType: $6uUbQ$uint8,\n flags: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n 'rightToLeft',\n 'ignoreBaseGlyphs',\n 'ignoreLigatures',\n 'ignoreMarks',\n 'useMarkFilteringSet'\n ])\n});\nfunction $7cbbe4e24ef3cb75$export$df0008c6ff2da22a(SubTable) {\n let Lookup = new $6uUbQ$Struct({\n lookupType: $6uUbQ$uint16,\n flags: $7cbbe4e24ef3cb75$var$LookupFlags,\n subTableCount: $6uUbQ$uint16,\n subTables: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, SubTable), 'subTableCount'),\n markFilteringSet: new $6uUbQ$Optional($6uUbQ$uint16, (t)=>t.flags.flags.useMarkFilteringSet)\n });\n return new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, Lookup), $6uUbQ$uint16);\n}\n//#################\n// Coverage Table #\n//#################\nlet $7cbbe4e24ef3cb75$var$RangeRecord = new $6uUbQ$Struct({\n start: $6uUbQ$uint16,\n end: $6uUbQ$uint16,\n startCoverageIndex: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$export$17608c3f81a6111 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n glyphCount: $6uUbQ$uint16,\n glyphs: new $6uUbQ$Array($6uUbQ$uint16, 'glyphCount')\n },\n 2: {\n rangeCount: $6uUbQ$uint16,\n rangeRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$RangeRecord, 'rangeCount')\n }\n});\n//#########################\n// Class Definition Table #\n//#########################\nlet $7cbbe4e24ef3cb75$var$ClassRangeRecord = new $6uUbQ$Struct({\n start: $6uUbQ$uint16,\n end: $6uUbQ$uint16,\n class: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$export$843d551fbbafef71 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n startGlyph: $6uUbQ$uint16,\n glyphCount: $6uUbQ$uint16,\n classValueArray: new $6uUbQ$Array($6uUbQ$uint16, 'glyphCount')\n },\n 2: {\n classRangeCount: $6uUbQ$uint16,\n classRangeRecord: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$ClassRangeRecord, 'classRangeCount')\n }\n});\nlet $7cbbe4e24ef3cb75$export$8215d14a63d9fb10 = new $6uUbQ$Struct({\n a: $6uUbQ$uint16,\n b: $6uUbQ$uint16,\n deltaFormat: $6uUbQ$uint16\n});\n//#############################################\n// Contextual Substitution/Positioning Tables #\n//#############################################\nlet $7cbbe4e24ef3cb75$var$LookupRecord = new $6uUbQ$Struct({\n sequenceIndex: $6uUbQ$uint16,\n lookupListIndex: $6uUbQ$uint16\n});\nlet $7cbbe4e24ef3cb75$var$Rule = new $6uUbQ$Struct({\n glyphCount: $6uUbQ$uint16,\n lookupCount: $6uUbQ$uint16,\n input: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.glyphCount - 1),\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$RuleSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$Rule), $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$var$ClassRule = new $6uUbQ$Struct({\n glyphCount: $6uUbQ$uint16,\n lookupCount: $6uUbQ$uint16,\n classes: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.glyphCount - 1),\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$ClassSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ClassRule), $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$export$841858b892ce1f4c = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n ruleSetCount: $6uUbQ$uint16,\n ruleSets: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$RuleSet), 'ruleSetCount')\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n classDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n classSetCnt: $6uUbQ$uint16,\n classSet: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ClassSet), 'classSetCnt')\n },\n 3: {\n glyphCount: $6uUbQ$uint16,\n lookupCount: $6uUbQ$uint16,\n coverages: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'glyphCount'),\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n }\n});\n//######################################################\n// Chaining Contextual Substitution/Positioning Tables #\n//######################################################\nlet $7cbbe4e24ef3cb75$var$ChainRule = new $6uUbQ$Struct({\n backtrackGlyphCount: $6uUbQ$uint16,\n backtrack: new $6uUbQ$Array($6uUbQ$uint16, 'backtrackGlyphCount'),\n inputGlyphCount: $6uUbQ$uint16,\n input: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.inputGlyphCount - 1),\n lookaheadGlyphCount: $6uUbQ$uint16,\n lookahead: new $6uUbQ$Array($6uUbQ$uint16, 'lookaheadGlyphCount'),\n lookupCount: $6uUbQ$uint16,\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n});\nlet $7cbbe4e24ef3cb75$var$ChainRuleSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ChainRule), $6uUbQ$uint16);\nlet $7cbbe4e24ef3cb75$export$5e6d09e6861162f6 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n chainCount: $6uUbQ$uint16,\n chainRuleSets: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ChainRuleSet), 'chainCount')\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111),\n backtrackClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n inputClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n lookaheadClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$843d551fbbafef71),\n chainCount: $6uUbQ$uint16,\n chainClassSet: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$var$ChainRuleSet), 'chainCount')\n },\n 3: {\n backtrackGlyphCount: $6uUbQ$uint16,\n backtrackCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'backtrackGlyphCount'),\n inputGlyphCount: $6uUbQ$uint16,\n inputCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'inputGlyphCount'),\n lookaheadGlyphCount: $6uUbQ$uint16,\n lookaheadCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $7cbbe4e24ef3cb75$export$17608c3f81a6111), 'lookaheadGlyphCount'),\n lookupCount: $6uUbQ$uint16,\n lookupRecords: new $6uUbQ$Array($7cbbe4e24ef3cb75$var$LookupRecord, 'lookupCount')\n }\n});\n\n\n\n/*******************\n * Variation Store *\n *******************/ let $1a47b0c45c1c22fe$var$F2DOT14 = new $6uUbQ$Fixed(16, 'BE', 14);\nlet $1a47b0c45c1c22fe$var$RegionAxisCoordinates = new $6uUbQ$Struct({\n startCoord: $1a47b0c45c1c22fe$var$F2DOT14,\n peakCoord: $1a47b0c45c1c22fe$var$F2DOT14,\n endCoord: $1a47b0c45c1c22fe$var$F2DOT14\n});\nlet $1a47b0c45c1c22fe$var$VariationRegionList = new $6uUbQ$Struct({\n axisCount: $6uUbQ$uint16,\n regionCount: $6uUbQ$uint16,\n variationRegions: new $6uUbQ$Array(new $6uUbQ$Array($1a47b0c45c1c22fe$var$RegionAxisCoordinates, 'axisCount'), 'regionCount')\n});\nlet $1a47b0c45c1c22fe$var$DeltaSet = new $6uUbQ$Struct({\n shortDeltas: new $6uUbQ$Array($6uUbQ$int16, (t)=>t.parent.shortDeltaCount),\n regionDeltas: new $6uUbQ$Array($6uUbQ$int8, (t)=>t.parent.regionIndexCount - t.parent.shortDeltaCount),\n deltas: (t)=>t.shortDeltas.concat(t.regionDeltas)\n});\nlet $1a47b0c45c1c22fe$var$ItemVariationData = new $6uUbQ$Struct({\n itemCount: $6uUbQ$uint16,\n shortDeltaCount: $6uUbQ$uint16,\n regionIndexCount: $6uUbQ$uint16,\n regionIndexes: new $6uUbQ$Array($6uUbQ$uint16, 'regionIndexCount'),\n deltaSets: new $6uUbQ$Array($1a47b0c45c1c22fe$var$DeltaSet, 'itemCount')\n});\nlet $1a47b0c45c1c22fe$export$fe1b122a2710f241 = new $6uUbQ$Struct({\n format: $6uUbQ$uint16,\n variationRegionList: new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$VariationRegionList),\n variationDataCount: $6uUbQ$uint16,\n itemVariationData: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$ItemVariationData), 'variationDataCount')\n});\n/**********************\n * Feature Variations *\n **********************/ let $1a47b0c45c1c22fe$var$ConditionTable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n axisIndex: $6uUbQ$uint16,\n axisIndex: $6uUbQ$uint16,\n filterRangeMinValue: $1a47b0c45c1c22fe$var$F2DOT14,\n filterRangeMaxValue: $1a47b0c45c1c22fe$var$F2DOT14\n }\n});\nlet $1a47b0c45c1c22fe$var$ConditionSet = new $6uUbQ$Struct({\n conditionCount: $6uUbQ$uint16,\n conditionTable: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$ConditionTable), 'conditionCount')\n});\nlet $1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord = new $6uUbQ$Struct({\n featureIndex: $6uUbQ$uint16,\n alternateFeatureTable: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $7cbbe4e24ef3cb75$export$6e91cf7616333d5), {\n type: 'parent'\n })\n});\nlet $1a47b0c45c1c22fe$var$FeatureTableSubstitution = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n substitutionCount: $6uUbQ$uint16,\n substitutions: new $6uUbQ$Array($1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord, 'substitutionCount')\n});\nlet $1a47b0c45c1c22fe$var$FeatureVariationRecord = new $6uUbQ$Struct({\n conditionSet: new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$ConditionSet, {\n type: 'parent'\n }),\n featureTableSubstitution: new $6uUbQ$Pointer($6uUbQ$uint32, $1a47b0c45c1c22fe$var$FeatureTableSubstitution, {\n type: 'parent'\n })\n});\nlet $1a47b0c45c1c22fe$export$441b70b7971dd419 = new $6uUbQ$Struct({\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n featureVariationRecordCount: $6uUbQ$uint32,\n featureVariationRecords: new $6uUbQ$Array($1a47b0c45c1c22fe$var$FeatureVariationRecord, 'featureVariationRecordCount')\n});\n\n\n// Checks if an operand is an index of a predefined value,\n// otherwise delegates to the provided type.\nclass $b84fd3dd9d8eddb2$var$PredefinedOp {\n decode(stream, parent, operands) {\n if (this.predefinedOps[operands[0]]) return this.predefinedOps[operands[0]];\n return this.type.decode(stream, parent, operands);\n }\n size(value, ctx) {\n return this.type.size(value, ctx);\n }\n encode(stream, value, ctx) {\n let index = this.predefinedOps.indexOf(value);\n if (index !== -1) return index;\n return this.type.encode(stream, value, ctx);\n }\n constructor(predefinedOps, type){\n this.predefinedOps = predefinedOps;\n this.type = type;\n }\n}\nclass $b84fd3dd9d8eddb2$var$CFFEncodingVersion extends $6uUbQ$Number {\n decode(stream) {\n return $6uUbQ$uint8.decode(stream) & 0x7f;\n }\n constructor(){\n super('UInt8');\n }\n}\nlet $b84fd3dd9d8eddb2$var$Range1 = new $6uUbQ$Struct({\n first: $6uUbQ$uint16,\n nLeft: $6uUbQ$uint8\n});\nlet $b84fd3dd9d8eddb2$var$Range2 = new $6uUbQ$Struct({\n first: $6uUbQ$uint16,\n nLeft: $6uUbQ$uint16\n});\nlet $b84fd3dd9d8eddb2$var$CFFCustomEncoding = new $6uUbQ$VersionedStruct(new $b84fd3dd9d8eddb2$var$CFFEncodingVersion(), {\n 0: {\n nCodes: $6uUbQ$uint8,\n codes: new $6uUbQ$Array($6uUbQ$uint8, 'nCodes')\n },\n 1: {\n nRanges: $6uUbQ$uint8,\n ranges: new $6uUbQ$Array($b84fd3dd9d8eddb2$var$Range1, 'nRanges')\n }\n});\nlet $b84fd3dd9d8eddb2$var$CFFEncoding = new $b84fd3dd9d8eddb2$var$PredefinedOp([\n (0, $bc0433d9b7e41f5f$export$dee0027060fa13bd),\n (0, $bc0433d9b7e41f5f$export$4f58f497e14a53c3)\n], new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFCustomEncoding, {\n lazy: true\n}));\n// Decodes an array of ranges until the total\n// length is equal to the provided length.\nclass $b84fd3dd9d8eddb2$var$RangeArray extends $6uUbQ$Array {\n decode(stream, parent) {\n let length = (0, $6uUbQ$resolveLength)(this.length, stream, parent);\n let count = 0;\n let res = [];\n while(count < length){\n let range = this.type.decode(stream, parent);\n range.offset = count;\n count += range.nLeft + 1;\n res.push(range);\n }\n return res;\n }\n}\nlet $b84fd3dd9d8eddb2$var$CFFCustomCharset = new $6uUbQ$VersionedStruct($6uUbQ$uint8, {\n 0: {\n glyphs: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.parent.CharStrings.length - 1)\n },\n 1: {\n ranges: new $b84fd3dd9d8eddb2$var$RangeArray($b84fd3dd9d8eddb2$var$Range1, (t)=>t.parent.CharStrings.length - 1)\n },\n 2: {\n ranges: new $b84fd3dd9d8eddb2$var$RangeArray($b84fd3dd9d8eddb2$var$Range2, (t)=>t.parent.CharStrings.length - 1)\n }\n});\nlet $b84fd3dd9d8eddb2$var$CFFCharset = new $b84fd3dd9d8eddb2$var$PredefinedOp([\n (0, $ef658f5c9a1488b2$export$c33b50336c234f16),\n (0, $ef658f5c9a1488b2$export$3ed0f9e1fee8d489),\n (0, $ef658f5c9a1488b2$export$dc28be11139d4120)\n], new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFCustomCharset, {\n lazy: true\n}));\nlet $b84fd3dd9d8eddb2$var$FDRange3 = new $6uUbQ$Struct({\n first: $6uUbQ$uint16,\n fd: $6uUbQ$uint8\n});\nlet $b84fd3dd9d8eddb2$var$FDRange4 = new $6uUbQ$Struct({\n first: $6uUbQ$uint32,\n fd: $6uUbQ$uint16\n});\nlet $b84fd3dd9d8eddb2$var$FDSelect = new $6uUbQ$VersionedStruct($6uUbQ$uint8, {\n 0: {\n fds: new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.parent.CharStrings.length)\n },\n 3: {\n nRanges: $6uUbQ$uint16,\n ranges: new $6uUbQ$Array($b84fd3dd9d8eddb2$var$FDRange3, 'nRanges'),\n sentinel: $6uUbQ$uint16\n },\n 4: {\n nRanges: $6uUbQ$uint32,\n ranges: new $6uUbQ$Array($b84fd3dd9d8eddb2$var$FDRange4, 'nRanges'),\n sentinel: $6uUbQ$uint32\n }\n});\nlet $b84fd3dd9d8eddb2$var$ptr = new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)((0, $6d59db2e29cc77b3$export$2e2bcd8739ae039));\nclass $b84fd3dd9d8eddb2$var$CFFPrivateOp {\n decode(stream, parent, operands) {\n parent.length = operands[0];\n return $b84fd3dd9d8eddb2$var$ptr.decode(stream, parent, [\n operands[1]\n ]);\n }\n size(dict, ctx) {\n return [\n (0, $6d59db2e29cc77b3$export$2e2bcd8739ae039).size(dict, ctx, false),\n $b84fd3dd9d8eddb2$var$ptr.size(dict, ctx)[0]\n ];\n }\n encode(stream, dict, ctx) {\n return [\n (0, $6d59db2e29cc77b3$export$2e2bcd8739ae039).size(dict, ctx, false),\n $b84fd3dd9d8eddb2$var$ptr.encode(stream, dict, ctx)[0]\n ];\n }\n}\nlet $b84fd3dd9d8eddb2$var$FontDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n // key name type(s) default\n [\n 18,\n 'Private',\n new $b84fd3dd9d8eddb2$var$CFFPrivateOp,\n null\n ],\n [\n [\n 12,\n 38\n ],\n 'FontName',\n 'sid',\n null\n ],\n [\n [\n 12,\n 7\n ],\n 'FontMatrix',\n 'array',\n [\n 0.001,\n 0,\n 0,\n 0.001,\n 0,\n 0\n ]\n ],\n [\n [\n 12,\n 5\n ],\n 'PaintType',\n 'number',\n 0\n ]\n]);\nlet $b84fd3dd9d8eddb2$var$CFFTopDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n // key name type(s) default\n [\n [\n 12,\n 30\n ],\n 'ROS',\n [\n 'sid',\n 'sid',\n 'number'\n ],\n null\n ],\n [\n 0,\n 'version',\n 'sid',\n null\n ],\n [\n 1,\n 'Notice',\n 'sid',\n null\n ],\n [\n [\n 12,\n 0\n ],\n 'Copyright',\n 'sid',\n null\n ],\n [\n 2,\n 'FullName',\n 'sid',\n null\n ],\n [\n 3,\n 'FamilyName',\n 'sid',\n null\n ],\n [\n 4,\n 'Weight',\n 'sid',\n null\n ],\n [\n [\n 12,\n 1\n ],\n 'isFixedPitch',\n 'boolean',\n false\n ],\n [\n [\n 12,\n 2\n ],\n 'ItalicAngle',\n 'number',\n 0\n ],\n [\n [\n 12,\n 3\n ],\n 'UnderlinePosition',\n 'number',\n -100\n ],\n [\n [\n 12,\n 4\n ],\n 'UnderlineThickness',\n 'number',\n 50\n ],\n [\n [\n 12,\n 5\n ],\n 'PaintType',\n 'number',\n 0\n ],\n [\n [\n 12,\n 6\n ],\n 'CharstringType',\n 'number',\n 2\n ],\n [\n [\n 12,\n 7\n ],\n 'FontMatrix',\n 'array',\n [\n 0.001,\n 0,\n 0,\n 0.001,\n 0,\n 0\n ]\n ],\n [\n 13,\n 'UniqueID',\n 'number',\n null\n ],\n [\n 5,\n 'FontBBox',\n 'array',\n [\n 0,\n 0,\n 0,\n 0\n ]\n ],\n [\n [\n 12,\n 8\n ],\n 'StrokeWidth',\n 'number',\n 0\n ],\n [\n 14,\n 'XUID',\n 'array',\n null\n ],\n [\n 15,\n 'charset',\n $b84fd3dd9d8eddb2$var$CFFCharset,\n (0, $ef658f5c9a1488b2$export$c33b50336c234f16)\n ],\n [\n 16,\n 'Encoding',\n $b84fd3dd9d8eddb2$var$CFFEncoding,\n (0, $bc0433d9b7e41f5f$export$dee0027060fa13bd)\n ],\n [\n 17,\n 'CharStrings',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)),\n null\n ],\n [\n 18,\n 'Private',\n new $b84fd3dd9d8eddb2$var$CFFPrivateOp,\n null\n ],\n [\n [\n 12,\n 20\n ],\n 'SyntheticBase',\n 'number',\n null\n ],\n [\n [\n 12,\n 21\n ],\n 'PostScript',\n 'sid',\n null\n ],\n [\n [\n 12,\n 22\n ],\n 'BaseFontName',\n 'sid',\n null\n ],\n [\n [\n 12,\n 23\n ],\n 'BaseFontBlend',\n 'delta',\n null\n ],\n // CID font specific\n [\n [\n 12,\n 31\n ],\n 'CIDFontVersion',\n 'number',\n 0\n ],\n [\n [\n 12,\n 32\n ],\n 'CIDFontRevision',\n 'number',\n 0\n ],\n [\n [\n 12,\n 33\n ],\n 'CIDFontType',\n 'number',\n 0\n ],\n [\n [\n 12,\n 34\n ],\n 'CIDCount',\n 'number',\n 8720\n ],\n [\n [\n 12,\n 35\n ],\n 'UIDBase',\n 'number',\n null\n ],\n [\n [\n 12,\n 37\n ],\n 'FDSelect',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FDSelect),\n null\n ],\n [\n [\n 12,\n 36\n ],\n 'FDArray',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FontDict)),\n null\n ],\n [\n [\n 12,\n 38\n ],\n 'FontName',\n 'sid',\n null\n ]\n]);\nlet $b84fd3dd9d8eddb2$var$VariationStore = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n itemVariationStore: (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241)\n});\nlet $b84fd3dd9d8eddb2$var$CFF2TopDict = new (0, $61aa549f16d58b9b$export$2e2bcd8739ae039)([\n [\n [\n 12,\n 7\n ],\n 'FontMatrix',\n 'array',\n [\n 0.001,\n 0,\n 0,\n 0.001,\n 0,\n 0\n ]\n ],\n [\n 17,\n 'CharStrings',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)),\n null\n ],\n [\n [\n 12,\n 37\n ],\n 'FDSelect',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FDSelect),\n null\n ],\n [\n [\n 12,\n 36\n ],\n 'FDArray',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)(new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$FontDict)),\n null\n ],\n [\n 24,\n 'vstore',\n new (0, $0e34a43d05bde82c$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$VariationStore),\n null\n ],\n [\n 25,\n 'maxstack',\n 'number',\n 193\n ]\n]);\nlet $b84fd3dd9d8eddb2$var$CFFTop = new $6uUbQ$VersionedStruct($6uUbQ$fixed16, {\n 1: {\n hdrSize: $6uUbQ$uint8,\n offSize: $6uUbQ$uint8,\n nameIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)(new $6uUbQ$String('length')),\n topDictIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)($b84fd3dd9d8eddb2$var$CFFTopDict),\n stringIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)(new $6uUbQ$String('length')),\n globalSubrIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)\n },\n 2: {\n hdrSize: $6uUbQ$uint8,\n length: $6uUbQ$uint16,\n topDict: $b84fd3dd9d8eddb2$var$CFF2TopDict,\n globalSubrIndex: new (0, $43e9821ef3717eec$export$2e2bcd8739ae039)\n }\n});\nvar $b84fd3dd9d8eddb2$export$2e2bcd8739ae039 = $b84fd3dd9d8eddb2$var$CFFTop;\n\n\n\n\nclass $822ac0d589e4e237$var$CFFFont {\n static decode(stream) {\n return new $822ac0d589e4e237$var$CFFFont(stream);\n }\n decode() {\n let start = this.stream.pos;\n let top = (0, $b84fd3dd9d8eddb2$export$2e2bcd8739ae039).decode(this.stream);\n for(let key in top){\n let val = top[key];\n this[key] = val;\n }\n if (this.version < 2) {\n if (this.topDictIndex.length !== 1) throw new Error(\"Only a single font is allowed in CFF\");\n this.topDict = this.topDictIndex[0];\n }\n this.isCIDFont = this.topDict.ROS != null;\n return this;\n }\n string(sid) {\n if (this.version >= 2) return null;\n if (sid < (0, $229224aec43783c5$export$2e2bcd8739ae039).length) return (0, $229224aec43783c5$export$2e2bcd8739ae039)[sid];\n return this.stringIndex[sid - (0, $229224aec43783c5$export$2e2bcd8739ae039).length];\n }\n get postscriptName() {\n if (this.version < 2) return this.nameIndex[0];\n return null;\n }\n get fullName() {\n return this.string(this.topDict.FullName);\n }\n get familyName() {\n return this.string(this.topDict.FamilyName);\n }\n getCharString(glyph) {\n this.stream.pos = this.topDict.CharStrings[glyph].offset;\n return this.stream.readBuffer(this.topDict.CharStrings[glyph].length);\n }\n getGlyphName(gid) {\n // CFF2 glyph names are in the post table.\n if (this.version >= 2) return null;\n // CID-keyed fonts don't have glyph names\n if (this.isCIDFont) return null;\n let { charset: charset } = this.topDict;\n if (Array.isArray(charset)) return charset[gid];\n if (gid === 0) return '.notdef';\n gid -= 1;\n switch(charset.version){\n case 0:\n return this.string(charset.glyphs[gid]);\n case 1:\n case 2:\n for(let i = 0; i < charset.ranges.length; i++){\n let range = charset.ranges[i];\n if (range.offset <= gid && gid <= range.offset + range.nLeft) return this.string(range.first + (gid - range.offset));\n }\n break;\n }\n return null;\n }\n fdForGlyph(gid) {\n if (!this.topDict.FDSelect) return null;\n switch(this.topDict.FDSelect.version){\n case 0:\n return this.topDict.FDSelect.fds[gid];\n case 3:\n case 4:\n let { ranges: ranges } = this.topDict.FDSelect;\n let low = 0;\n let high = ranges.length - 1;\n while(low <= high){\n let mid = low + high >> 1;\n if (gid < ranges[mid].first) high = mid - 1;\n else if (mid < high && gid >= ranges[mid + 1].first) low = mid + 1;\n else return ranges[mid].fd;\n }\n default:\n throw new Error(`Unknown FDSelect version: ${this.topDict.FDSelect.version}`);\n }\n }\n privateDictForGlyph(gid) {\n if (this.topDict.FDSelect) {\n let fd = this.fdForGlyph(gid);\n if (this.topDict.FDArray[fd]) return this.topDict.FDArray[fd].Private;\n return null;\n }\n if (this.version < 2) return this.topDict.Private;\n return this.topDict.FDArray[0].Private;\n }\n constructor(stream){\n this.stream = stream;\n this.decode();\n }\n}\nvar $822ac0d589e4e237$export$2e2bcd8739ae039 = $822ac0d589e4e237$var$CFFFont;\n\n\n\nlet $2bbf2bc1ce37cd8f$var$VerticalOrigin = new $6uUbQ$Struct({\n glyphIndex: $6uUbQ$uint16,\n vertOriginY: $6uUbQ$int16\n});\nvar $2bbf2bc1ce37cd8f$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n defaultVertOriginY: $6uUbQ$int16,\n numVertOriginYMetrics: $6uUbQ$uint16,\n metrics: new $6uUbQ$Array($2bbf2bc1ce37cd8f$var$VerticalOrigin, 'numVertOriginYMetrics')\n});\n\n\n\n\nlet $0941618dc22a946d$export$16b227cb15d716a0 = new $6uUbQ$Struct({\n height: $6uUbQ$uint8,\n width: $6uUbQ$uint8,\n horiBearingX: $6uUbQ$int8,\n horiBearingY: $6uUbQ$int8,\n horiAdvance: $6uUbQ$uint8,\n vertBearingX: $6uUbQ$int8,\n vertBearingY: $6uUbQ$int8,\n vertAdvance: $6uUbQ$uint8\n});\nlet $0941618dc22a946d$export$62c53e75f69bfe12 = new $6uUbQ$Struct({\n height: $6uUbQ$uint8,\n width: $6uUbQ$uint8,\n bearingX: $6uUbQ$int8,\n bearingY: $6uUbQ$int8,\n advance: $6uUbQ$uint8\n});\nlet $0941618dc22a946d$var$EBDTComponent = new $6uUbQ$Struct({\n glyph: $6uUbQ$uint16,\n xOffset: $6uUbQ$int8,\n yOffset: $6uUbQ$int8\n});\nclass $0941618dc22a946d$var$ByteAligned {\n}\nclass $0941618dc22a946d$var$BitAligned {\n}\nlet $0941618dc22a946d$export$f1f5ddeb20d14f = new $6uUbQ$VersionedStruct('version', {\n 1: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n data: $0941618dc22a946d$var$ByteAligned\n },\n 2: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n data: $0941618dc22a946d$var$BitAligned\n },\n // format 3 is deprecated\n // format 4 is not supported by Microsoft\n 5: {\n data: $0941618dc22a946d$var$BitAligned\n },\n 6: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n data: $0941618dc22a946d$var$ByteAligned\n },\n 7: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n data: $0941618dc22a946d$var$BitAligned\n },\n 8: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n pad: new $6uUbQ$Reserved($6uUbQ$uint8),\n numComponents: $6uUbQ$uint16,\n components: new $6uUbQ$Array($0941618dc22a946d$var$EBDTComponent, 'numComponents')\n },\n 9: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n pad: new $6uUbQ$Reserved($6uUbQ$uint8),\n numComponents: $6uUbQ$uint16,\n components: new $6uUbQ$Array($0941618dc22a946d$var$EBDTComponent, 'numComponents')\n },\n 17: {\n metrics: $0941618dc22a946d$export$62c53e75f69bfe12,\n dataLen: $6uUbQ$uint32,\n data: new $6uUbQ$Buffer('dataLen')\n },\n 18: {\n metrics: $0941618dc22a946d$export$16b227cb15d716a0,\n dataLen: $6uUbQ$uint32,\n data: new $6uUbQ$Buffer('dataLen')\n },\n 19: {\n dataLen: $6uUbQ$uint32,\n data: new $6uUbQ$Buffer('dataLen')\n }\n});\n\n\nlet $9911c4c7201c13de$var$SBitLineMetrics = new $6uUbQ$Struct({\n ascender: $6uUbQ$int8,\n descender: $6uUbQ$int8,\n widthMax: $6uUbQ$uint8,\n caretSlopeNumerator: $6uUbQ$int8,\n caretSlopeDenominator: $6uUbQ$int8,\n caretOffset: $6uUbQ$int8,\n minOriginSB: $6uUbQ$int8,\n minAdvanceSB: $6uUbQ$int8,\n maxBeforeBL: $6uUbQ$int8,\n minAfterBL: $6uUbQ$int8,\n pad: new $6uUbQ$Reserved($6uUbQ$int8, 2)\n});\nlet $9911c4c7201c13de$var$CodeOffsetPair = new $6uUbQ$Struct({\n glyphCode: $6uUbQ$uint16,\n offset: $6uUbQ$uint16\n});\nlet $9911c4c7201c13de$var$IndexSubtable = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n header: {\n imageFormat: $6uUbQ$uint16,\n imageDataOffset: $6uUbQ$uint32\n },\n 1: {\n offsetArray: new $6uUbQ$Array($6uUbQ$uint32, (t)=>t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1)\n },\n 2: {\n imageSize: $6uUbQ$uint32,\n bigMetrics: (0, $0941618dc22a946d$export$16b227cb15d716a0)\n },\n 3: {\n offsetArray: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.parent.lastGlyphIndex - t.parent.firstGlyphIndex + 1)\n },\n 4: {\n numGlyphs: $6uUbQ$uint32,\n glyphArray: new $6uUbQ$Array($9911c4c7201c13de$var$CodeOffsetPair, (t)=>t.numGlyphs + 1)\n },\n 5: {\n imageSize: $6uUbQ$uint32,\n bigMetrics: (0, $0941618dc22a946d$export$16b227cb15d716a0),\n numGlyphs: $6uUbQ$uint32,\n glyphCodeArray: new $6uUbQ$Array($6uUbQ$uint16, 'numGlyphs')\n }\n});\nlet $9911c4c7201c13de$var$IndexSubtableArray = new $6uUbQ$Struct({\n firstGlyphIndex: $6uUbQ$uint16,\n lastGlyphIndex: $6uUbQ$uint16,\n subtable: new $6uUbQ$Pointer($6uUbQ$uint32, $9911c4c7201c13de$var$IndexSubtable)\n});\nlet $9911c4c7201c13de$var$BitmapSizeTable = new $6uUbQ$Struct({\n indexSubTableArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($9911c4c7201c13de$var$IndexSubtableArray, 1), {\n type: 'parent'\n }),\n indexTablesSize: $6uUbQ$uint32,\n numberOfIndexSubTables: $6uUbQ$uint32,\n colorRef: $6uUbQ$uint32,\n hori: $9911c4c7201c13de$var$SBitLineMetrics,\n vert: $9911c4c7201c13de$var$SBitLineMetrics,\n startGlyphIndex: $6uUbQ$uint16,\n endGlyphIndex: $6uUbQ$uint16,\n ppemX: $6uUbQ$uint8,\n ppemY: $6uUbQ$uint8,\n bitDepth: $6uUbQ$uint8,\n flags: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n 'horizontal',\n 'vertical'\n ])\n});\nvar $9911c4c7201c13de$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n numSizes: $6uUbQ$uint32,\n sizes: new $6uUbQ$Array($9911c4c7201c13de$var$BitmapSizeTable, 'numSizes')\n});\n\n\n\nlet $abb847051efd51b1$var$ImageTable = new $6uUbQ$Struct({\n ppem: $6uUbQ$uint16,\n resolution: $6uUbQ$uint16,\n imageOffsets: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, 'void'), (t)=>t.parent.parent.maxp.numGlyphs + 1)\n});\nvar // This is the Apple sbix table, used by the \"Apple Color Emoji\" font.\n// It includes several image tables with images for each bitmap glyph\n// of several different sizes.\n$abb847051efd51b1$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n flags: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'renderOutlines'\n ]),\n numImgTables: $6uUbQ$uint32,\n imageTables: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, $abb847051efd51b1$var$ImageTable), 'numImgTables')\n});\n\n\n\nlet $eb629188f3dfefdd$var$LayerRecord = new $6uUbQ$Struct({\n gid: $6uUbQ$uint16,\n paletteIndex: $6uUbQ$uint16 // Index value to use in the appropriate palette. This value must\n}); // be less than numPaletteEntries in the CPAL table, except for\n// the special case noted below. Each palette entry is 16 bits.\n// A palette index of 0xFFFF is a special case indicating that\n// the text foreground color should be used.\nlet $eb629188f3dfefdd$var$BaseGlyphRecord = new $6uUbQ$Struct({\n gid: $6uUbQ$uint16,\n // and is not rendered for color.\n firstLayerIndex: $6uUbQ$uint16,\n // There will be numLayers consecutive entries for this base glyph.\n numLayers: $6uUbQ$uint16\n});\nvar $eb629188f3dfefdd$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numBaseGlyphRecords: $6uUbQ$uint16,\n baseGlyphRecord: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($eb629188f3dfefdd$var$BaseGlyphRecord, 'numBaseGlyphRecords')),\n layerRecords: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($eb629188f3dfefdd$var$LayerRecord, 'numLayerRecords'), {\n lazy: true\n }),\n numLayerRecords: $6uUbQ$uint16\n});\n\n\n\nlet $08734b8e7dc64587$var$ColorRecord = new $6uUbQ$Struct({\n blue: $6uUbQ$uint8,\n green: $6uUbQ$uint8,\n red: $6uUbQ$uint8,\n alpha: $6uUbQ$uint8\n});\nvar $08734b8e7dc64587$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n header: {\n numPaletteEntries: $6uUbQ$uint16,\n numPalettes: $6uUbQ$uint16,\n numColorRecords: $6uUbQ$uint16,\n colorRecords: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($08734b8e7dc64587$var$ColorRecord, 'numColorRecords')),\n colorRecordIndices: new $6uUbQ$Array($6uUbQ$uint16, 'numPalettes')\n },\n 0: {},\n 1: {\n offsetPaletteTypeArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($6uUbQ$uint32, 'numPalettes')),\n offsetPaletteLabelArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($6uUbQ$uint16, 'numPalettes')),\n offsetPaletteEntryLabelArray: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($6uUbQ$uint16, 'numPaletteEntries'))\n }\n});\n\n\n\n\n\nlet $497cef411d884e34$var$BaseCoord = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coordinate: $6uUbQ$int16 // X or Y value, in design units\n },\n 2: {\n coordinate: $6uUbQ$int16,\n referenceGlyph: $6uUbQ$uint16,\n baseCoordPoint: $6uUbQ$uint16 // Index of contour point on the referenceGlyph\n },\n 3: {\n coordinate: $6uUbQ$int16,\n deviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10)) // Device table for X or Y value\n }\n});\nlet $497cef411d884e34$var$BaseValues = new $6uUbQ$Struct({\n defaultIndex: $6uUbQ$uint16,\n baseCoordCount: $6uUbQ$uint16,\n baseCoords: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord), 'baseCoordCount')\n});\nlet $497cef411d884e34$var$FeatMinMaxRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n minCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord, {\n type: 'parent'\n }),\n maxCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord, {\n type: 'parent'\n }) // May be NULL\n});\nlet $497cef411d884e34$var$MinMax = new $6uUbQ$Struct({\n minCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord),\n maxCoord: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseCoord),\n featMinMaxCount: $6uUbQ$uint16,\n featMinMaxRecords: new $6uUbQ$Array($497cef411d884e34$var$FeatMinMaxRecord, 'featMinMaxCount') // In alphabetical order\n});\nlet $497cef411d884e34$var$BaseLangSysRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n minMax: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$MinMax, {\n type: 'parent'\n })\n});\nlet $497cef411d884e34$var$BaseScript = new $6uUbQ$Struct({\n baseValues: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseValues),\n defaultMinMax: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$MinMax),\n baseLangSysCount: $6uUbQ$uint16,\n baseLangSysRecords: new $6uUbQ$Array($497cef411d884e34$var$BaseLangSysRecord, 'baseLangSysCount') // in alphabetical order by BaseLangSysTag\n});\nlet $497cef411d884e34$var$BaseScriptRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n script: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseScript, {\n type: 'parent'\n })\n});\nlet $497cef411d884e34$var$BaseScriptList = new $6uUbQ$Array($497cef411d884e34$var$BaseScriptRecord, $6uUbQ$uint16);\n// Array of 4-byte baseline identification tags-must be in alphabetical order\nlet $497cef411d884e34$var$BaseTagList = new $6uUbQ$Array(new $6uUbQ$String(4), $6uUbQ$uint16);\nlet $497cef411d884e34$var$Axis = new $6uUbQ$Struct({\n baseTagList: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseTagList),\n baseScriptList: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$BaseScriptList)\n});\nvar $497cef411d884e34$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n horizAxis: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$Axis),\n vertAxis: new $6uUbQ$Pointer($6uUbQ$uint16, $497cef411d884e34$var$Axis) // May be NULL\n },\n 0x00010000: {},\n 0x00010001: {\n itemVariationStore: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241))\n }\n});\n\n\n\n\n\nlet $cf5f33c63ef209e6$var$AttachPoint = new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16);\nlet $cf5f33c63ef209e6$var$AttachList = new $6uUbQ$Struct({\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n glyphCount: $6uUbQ$uint16,\n attachPoints: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$AttachPoint), 'glyphCount')\n});\nlet $cf5f33c63ef209e6$var$CaretValue = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coordinate: $6uUbQ$int16\n },\n 2: {\n caretValuePoint: $6uUbQ$uint16\n },\n 3: {\n coordinate: $6uUbQ$int16,\n deviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10))\n }\n});\nlet $cf5f33c63ef209e6$var$LigGlyph = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$CaretValue), $6uUbQ$uint16);\nlet $cf5f33c63ef209e6$var$LigCaretList = new $6uUbQ$Struct({\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n ligGlyphCount: $6uUbQ$uint16,\n ligGlyphs: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$LigGlyph), 'ligGlyphCount')\n});\nlet $cf5f33c63ef209e6$var$MarkGlyphSetsDef = new $6uUbQ$Struct({\n markSetTableFormat: $6uUbQ$uint16,\n markSetCount: $6uUbQ$uint16,\n coverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint32, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), 'markSetCount')\n});\nvar $cf5f33c63ef209e6$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n glyphClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),\n attachList: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$AttachList),\n ligCaretList: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$LigCaretList),\n markAttachClassDef: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71))\n },\n 0x00010000: {},\n 0x00010002: {\n markGlyphSetsDef: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$MarkGlyphSetsDef)\n },\n 0x00010003: {\n markGlyphSetsDef: new $6uUbQ$Pointer($6uUbQ$uint16, $cf5f33c63ef209e6$var$MarkGlyphSetsDef),\n itemVariationStore: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241))\n }\n});\n\n\n\n\n\nlet $47e0e8ef515d9903$var$ValueFormat = new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'xPlacement',\n 'yPlacement',\n 'xAdvance',\n 'yAdvance',\n 'xPlaDevice',\n 'yPlaDevice',\n 'xAdvDevice',\n 'yAdvDevice'\n]);\nlet $47e0e8ef515d9903$var$types = {\n xPlacement: $6uUbQ$int16,\n yPlacement: $6uUbQ$int16,\n xAdvance: $6uUbQ$int16,\n yAdvance: $6uUbQ$int16,\n xPlaDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n }),\n yPlaDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n }),\n xAdvDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n }),\n yAdvDevice: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10), {\n type: 'global',\n relativeTo: (ctx)=>ctx.rel\n })\n};\nclass $47e0e8ef515d9903$var$ValueRecord {\n buildStruct(parent) {\n let struct = parent;\n while(!struct[this.key] && struct.parent)struct = struct.parent;\n if (!struct[this.key]) return;\n let fields = {};\n fields.rel = ()=>struct._startOffset;\n let format = struct[this.key];\n for(let key in format)if (format[key]) fields[key] = $47e0e8ef515d9903$var$types[key];\n return new $6uUbQ$Struct(fields);\n }\n size(val, ctx) {\n return this.buildStruct(ctx).size(val, ctx);\n }\n decode(stream, parent) {\n let res = this.buildStruct(parent).decode(stream, parent);\n delete res.rel;\n return res;\n }\n constructor(key = 'valueFormat'){\n this.key = key;\n }\n}\nlet $47e0e8ef515d9903$var$PairValueRecord = new $6uUbQ$Struct({\n secondGlyph: $6uUbQ$uint16,\n value1: new $47e0e8ef515d9903$var$ValueRecord('valueFormat1'),\n value2: new $47e0e8ef515d9903$var$ValueRecord('valueFormat2')\n});\nlet $47e0e8ef515d9903$var$PairSet = new $6uUbQ$Array($47e0e8ef515d9903$var$PairValueRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$Class2Record = new $6uUbQ$Struct({\n value1: new $47e0e8ef515d9903$var$ValueRecord('valueFormat1'),\n value2: new $47e0e8ef515d9903$var$ValueRecord('valueFormat2')\n});\nlet $47e0e8ef515d9903$var$Anchor = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n xCoordinate: $6uUbQ$int16,\n yCoordinate: $6uUbQ$int16\n },\n 2: {\n xCoordinate: $6uUbQ$int16,\n yCoordinate: $6uUbQ$int16,\n anchorPoint: $6uUbQ$uint16\n },\n 3: {\n xCoordinate: $6uUbQ$int16,\n yCoordinate: $6uUbQ$int16,\n xDeviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10)),\n yDeviceTable: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$8215d14a63d9fb10))\n }\n});\nlet $47e0e8ef515d9903$var$EntryExitRecord = new $6uUbQ$Struct({\n entryAnchor: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor, {\n type: 'parent'\n }),\n exitAnchor: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor, {\n type: 'parent'\n })\n});\nlet $47e0e8ef515d9903$var$MarkRecord = new $6uUbQ$Struct({\n class: $6uUbQ$uint16,\n markAnchor: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor, {\n type: 'parent'\n })\n});\nlet $47e0e8ef515d9903$var$MarkArray = new $6uUbQ$Array($47e0e8ef515d9903$var$MarkRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$BaseRecord = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor), (t)=>t.parent.classCount);\nlet $47e0e8ef515d9903$var$BaseArray = new $6uUbQ$Array($47e0e8ef515d9903$var$BaseRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$ComponentRecord = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$Anchor), (t)=>t.parent.parent.classCount);\nlet $47e0e8ef515d9903$var$LigatureAttach = new $6uUbQ$Array($47e0e8ef515d9903$var$ComponentRecord, $6uUbQ$uint16);\nlet $47e0e8ef515d9903$var$LigatureArray = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$LigatureAttach), $6uUbQ$uint16);\nlet $47e0e8ef515d9903$export$73a8cfb19cd43a0f = new $6uUbQ$VersionedStruct('lookupType', {\n 1: new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat: $47e0e8ef515d9903$var$ValueFormat,\n value: new $47e0e8ef515d9903$var$ValueRecord()\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat: $47e0e8ef515d9903$var$ValueFormat,\n valueCount: $6uUbQ$uint16,\n values: new $6uUbQ$LazyArray(new $47e0e8ef515d9903$var$ValueRecord(), 'valueCount')\n }\n }),\n 2: new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat1: $47e0e8ef515d9903$var$ValueFormat,\n valueFormat2: $47e0e8ef515d9903$var$ValueFormat,\n pairSetCount: $6uUbQ$uint16,\n pairSets: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$PairSet), 'pairSetCount')\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n valueFormat1: $47e0e8ef515d9903$var$ValueFormat,\n valueFormat2: $47e0e8ef515d9903$var$ValueFormat,\n classDef1: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),\n classDef2: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$843d551fbbafef71)),\n class1Count: $6uUbQ$uint16,\n class2Count: $6uUbQ$uint16,\n classRecords: new $6uUbQ$LazyArray(new $6uUbQ$LazyArray($47e0e8ef515d9903$var$Class2Record, 'class2Count'), 'class1Count')\n }\n }),\n 3: {\n format: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n entryExitCount: $6uUbQ$uint16,\n entryExitRecords: new $6uUbQ$Array($47e0e8ef515d9903$var$EntryExitRecord, 'entryExitCount')\n },\n 4: {\n format: $6uUbQ$uint16,\n markCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n baseCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n classCount: $6uUbQ$uint16,\n markArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$MarkArray),\n baseArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$BaseArray)\n },\n 5: {\n format: $6uUbQ$uint16,\n markCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n ligatureCoverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n classCount: $6uUbQ$uint16,\n markArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$MarkArray),\n ligatureArray: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$LigatureArray)\n },\n 6: {\n format: $6uUbQ$uint16,\n mark1Coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n mark2Coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n classCount: $6uUbQ$uint16,\n mark1Array: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$MarkArray),\n mark2Array: new $6uUbQ$Pointer($6uUbQ$uint16, $47e0e8ef515d9903$var$BaseArray)\n },\n 7: (0, $7cbbe4e24ef3cb75$export$841858b892ce1f4c),\n 8: (0, $7cbbe4e24ef3cb75$export$5e6d09e6861162f6),\n 9: {\n posFormat: $6uUbQ$uint16,\n lookupType: $6uUbQ$uint16,\n extension: new $6uUbQ$Pointer($6uUbQ$uint32, null)\n }\n});\n// Fix circular reference\n$47e0e8ef515d9903$export$73a8cfb19cd43a0f.versions[9].extension.type = $47e0e8ef515d9903$export$73a8cfb19cd43a0f;\nvar $47e0e8ef515d9903$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n scriptList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$3e15fc05ce864229)),\n featureList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$aa18130def4b6cb4)),\n lookupList: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)($47e0e8ef515d9903$export$73a8cfb19cd43a0f))\n },\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$441b70b7971dd419))\n }\n});\n\n\n\n\n\nlet $d3f442064af66e06$var$Sequence = new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16);\nlet $d3f442064af66e06$var$AlternateSet = $d3f442064af66e06$var$Sequence;\nlet $d3f442064af66e06$var$Ligature = new $6uUbQ$Struct({\n glyph: $6uUbQ$uint16,\n compCount: $6uUbQ$uint16,\n components: new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.compCount - 1)\n});\nlet $d3f442064af66e06$var$LigatureSet = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$Ligature), $6uUbQ$uint16);\nlet $d3f442064af66e06$var$GSUBLookup = new $6uUbQ$VersionedStruct('lookupType', {\n 1: new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 1: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n deltaGlyphID: $6uUbQ$int16\n },\n 2: {\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n glyphCount: $6uUbQ$uint16,\n substitute: new $6uUbQ$LazyArray($6uUbQ$uint16, 'glyphCount')\n }\n }),\n 2: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n count: $6uUbQ$uint16,\n sequences: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$Sequence), 'count')\n },\n 3: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n count: $6uUbQ$uint16,\n alternateSet: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$AlternateSet), 'count')\n },\n 4: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n count: $6uUbQ$uint16,\n ligatureSets: new $6uUbQ$LazyArray(new $6uUbQ$Pointer($6uUbQ$uint16, $d3f442064af66e06$var$LigatureSet), 'count')\n },\n 5: (0, $7cbbe4e24ef3cb75$export$841858b892ce1f4c),\n 6: (0, $7cbbe4e24ef3cb75$export$5e6d09e6861162f6),\n 7: {\n substFormat: $6uUbQ$uint16,\n lookupType: $6uUbQ$uint16,\n extension: new $6uUbQ$Pointer($6uUbQ$uint32, null)\n },\n 8: {\n substFormat: $6uUbQ$uint16,\n coverage: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)),\n backtrackCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), 'backtrackGlyphCount'),\n lookaheadGlyphCount: $6uUbQ$uint16,\n lookaheadCoverage: new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$17608c3f81a6111)), 'lookaheadGlyphCount'),\n glyphCount: $6uUbQ$uint16,\n substitutes: new $6uUbQ$Array($6uUbQ$uint16, 'glyphCount')\n }\n});\n// Fix circular reference\n$d3f442064af66e06$var$GSUBLookup.versions[7].extension.type = $d3f442064af66e06$var$GSUBLookup;\nvar $d3f442064af66e06$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n header: {\n scriptList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$3e15fc05ce864229)),\n featureList: new $6uUbQ$Pointer($6uUbQ$uint16, (0, $7cbbe4e24ef3cb75$export$aa18130def4b6cb4)),\n lookupList: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)($d3f442064af66e06$var$GSUBLookup))\n },\n 0x00010000: {},\n 0x00010001: {\n featureVariations: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$441b70b7971dd419))\n }\n});\n\n\n\n\n\nlet $71cfb3c4767fbd0c$var$JstfGSUBModList = new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16);\nlet $71cfb3c4767fbd0c$var$JstfPriority = new $6uUbQ$Struct({\n shrinkageEnableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageDisableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageEnableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageDisableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n shrinkageJstfMax: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)((0, $47e0e8ef515d9903$export$73a8cfb19cd43a0f))),\n extensionEnableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionDisableGSUB: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionEnableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionDisableGPOS: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfGSUBModList),\n extensionJstfMax: new $6uUbQ$Pointer($6uUbQ$uint16, new (0, $7cbbe4e24ef3cb75$export$df0008c6ff2da22a)((0, $47e0e8ef515d9903$export$73a8cfb19cd43a0f)))\n});\nlet $71cfb3c4767fbd0c$var$JstfLangSys = new $6uUbQ$Array(new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfPriority), $6uUbQ$uint16);\nlet $71cfb3c4767fbd0c$var$JstfLangSysRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n jstfLangSys: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfLangSys)\n});\nlet $71cfb3c4767fbd0c$var$JstfScript = new $6uUbQ$Struct({\n extenderGlyphs: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16)),\n defaultLangSys: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfLangSys),\n langSysCount: $6uUbQ$uint16,\n langSysRecords: new $6uUbQ$Array($71cfb3c4767fbd0c$var$JstfLangSysRecord, 'langSysCount')\n});\nlet $71cfb3c4767fbd0c$var$JstfScriptRecord = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n script: new $6uUbQ$Pointer($6uUbQ$uint16, $71cfb3c4767fbd0c$var$JstfScript, {\n type: 'parent'\n })\n});\nvar $71cfb3c4767fbd0c$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n scriptCount: $6uUbQ$uint16,\n scriptList: new $6uUbQ$Array($71cfb3c4767fbd0c$var$JstfScriptRecord, 'scriptCount')\n});\n\n\n\n\n// TODO: add this to restructure\nclass $d059a6bd2d3b5b63$var$VariableSizeNumber {\n decode(stream, parent) {\n switch(this.size(0, parent)){\n case 1:\n return stream.readUInt8();\n case 2:\n return stream.readUInt16BE();\n case 3:\n return stream.readUInt24BE();\n case 4:\n return stream.readUInt32BE();\n }\n }\n size(val, parent) {\n return (0, $6uUbQ$resolveLength)(this._size, null, parent);\n }\n constructor(size){\n this._size = size;\n }\n}\nlet $d059a6bd2d3b5b63$var$MapDataEntry = new $6uUbQ$Struct({\n entry: new $d059a6bd2d3b5b63$var$VariableSizeNumber((t)=>((t.parent.entryFormat & 0x0030) >> 4) + 1),\n outerIndex: (t)=>t.entry >> (t.parent.entryFormat & 0x000F) + 1,\n innerIndex: (t)=>t.entry & (1 << (t.parent.entryFormat & 0x000F) + 1) - 1\n});\nlet $d059a6bd2d3b5b63$var$DeltaSetIndexMap = new $6uUbQ$Struct({\n entryFormat: $6uUbQ$uint16,\n mapCount: $6uUbQ$uint16,\n mapData: new $6uUbQ$Array($d059a6bd2d3b5b63$var$MapDataEntry, 'mapCount')\n});\nvar $d059a6bd2d3b5b63$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n itemVariationStore: new $6uUbQ$Pointer($6uUbQ$uint32, (0, $1a47b0c45c1c22fe$export$fe1b122a2710f241)),\n advanceWidthMapping: new $6uUbQ$Pointer($6uUbQ$uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap),\n LSBMapping: new $6uUbQ$Pointer($6uUbQ$uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap),\n RSBMapping: new $6uUbQ$Pointer($6uUbQ$uint32, $d059a6bd2d3b5b63$var$DeltaSetIndexMap)\n});\n\n\n\nlet $dceeca3e1977ce30$var$Signature = new $6uUbQ$Struct({\n format: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n offset: $6uUbQ$uint32\n});\nlet $dceeca3e1977ce30$var$SignatureBlock = new $6uUbQ$Struct({\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16, 2),\n cbSignature: $6uUbQ$uint32,\n signature: new $6uUbQ$Buffer('cbSignature')\n});\nvar $dceeca3e1977ce30$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n ulVersion: $6uUbQ$uint32,\n usNumSigs: $6uUbQ$uint16,\n usFlag: $6uUbQ$uint16,\n signatures: new $6uUbQ$Array($dceeca3e1977ce30$var$Signature, 'usNumSigs'),\n signatureBlocks: new $6uUbQ$Array($dceeca3e1977ce30$var$SignatureBlock, 'usNumSigs')\n});\n\n\n\nlet $8acd740a9435aad0$var$GaspRange = new $6uUbQ$Struct({\n rangeMaxPPEM: $6uUbQ$uint16,\n rangeGaspBehavior: new $6uUbQ$Bitfield($6uUbQ$uint16, [\n 'grayscale',\n 'gridfit',\n 'symmetricSmoothing',\n 'symmetricGridfit' // only in version 1, for ClearType\n ])\n});\nvar $8acd740a9435aad0$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numRanges: $6uUbQ$uint16,\n gaspRanges: new $6uUbQ$Array($8acd740a9435aad0$var$GaspRange, 'numRanges') // Sorted by ppem\n});\n\n\n\nlet $b5f380243c34d6a0$var$DeviceRecord = new $6uUbQ$Struct({\n pixelSize: $6uUbQ$uint8,\n maximumWidth: $6uUbQ$uint8,\n widths: new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.parent.parent.maxp.numGlyphs)\n});\nvar // The Horizontal Device Metrics table stores integer advance widths scaled to particular pixel sizes\n$b5f380243c34d6a0$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numRecords: $6uUbQ$int16,\n sizeDeviceRecord: $6uUbQ$int32,\n records: new $6uUbQ$Array($b5f380243c34d6a0$var$DeviceRecord, 'numRecords')\n});\n\n\n\nlet $ca2df1256966e313$var$KernPair = new $6uUbQ$Struct({\n left: $6uUbQ$uint16,\n right: $6uUbQ$uint16,\n value: $6uUbQ$int16\n});\nlet $ca2df1256966e313$var$ClassTable = new $6uUbQ$Struct({\n firstGlyph: $6uUbQ$uint16,\n nGlyphs: $6uUbQ$uint16,\n offsets: new $6uUbQ$Array($6uUbQ$uint16, 'nGlyphs'),\n max: (t)=>t.offsets.length && Math.max.apply(Math, t.offsets)\n});\nlet $ca2df1256966e313$var$Kern2Array = new $6uUbQ$Struct({\n off: (t)=>t._startOffset - t.parent.parent._startOffset,\n len: (t)=>((t.parent.leftTable.max - t.off) / t.parent.rowWidth + 1) * (t.parent.rowWidth / 2),\n values: new $6uUbQ$LazyArray($6uUbQ$int16, 'len')\n});\nlet $ca2df1256966e313$var$KernSubtable = new $6uUbQ$VersionedStruct('format', {\n 0: {\n nPairs: $6uUbQ$uint16,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16,\n pairs: new $6uUbQ$Array($ca2df1256966e313$var$KernPair, 'nPairs')\n },\n 2: {\n rowWidth: $6uUbQ$uint16,\n leftTable: new $6uUbQ$Pointer($6uUbQ$uint16, $ca2df1256966e313$var$ClassTable, {\n type: 'parent'\n }),\n rightTable: new $6uUbQ$Pointer($6uUbQ$uint16, $ca2df1256966e313$var$ClassTable, {\n type: 'parent'\n }),\n array: new $6uUbQ$Pointer($6uUbQ$uint16, $ca2df1256966e313$var$Kern2Array, {\n type: 'parent'\n })\n },\n 3: {\n glyphCount: $6uUbQ$uint16,\n kernValueCount: $6uUbQ$uint8,\n leftClassCount: $6uUbQ$uint8,\n rightClassCount: $6uUbQ$uint8,\n flags: $6uUbQ$uint8,\n kernValue: new $6uUbQ$Array($6uUbQ$int16, 'kernValueCount'),\n leftClass: new $6uUbQ$Array($6uUbQ$uint8, 'glyphCount'),\n rightClass: new $6uUbQ$Array($6uUbQ$uint8, 'glyphCount'),\n kernIndex: new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.leftClassCount * t.rightClassCount)\n }\n});\nlet $ca2df1256966e313$var$KernTable = new $6uUbQ$VersionedStruct('version', {\n 0: {\n subVersion: $6uUbQ$uint16,\n length: $6uUbQ$uint16,\n format: $6uUbQ$uint8,\n coverage: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n 'horizontal',\n 'minimum',\n 'crossStream',\n 'override' // If set to 1 the value in this table replaces the accumulated value\n ]),\n subtable: $ca2df1256966e313$var$KernSubtable,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.length - t._currentOffset)\n },\n 1: {\n length: $6uUbQ$uint32,\n coverage: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n null,\n null,\n null,\n null,\n null,\n 'variation',\n 'crossStream',\n 'vertical' // Set if table has vertical kerning values\n ]),\n format: $6uUbQ$uint8,\n tupleIndex: $6uUbQ$uint16,\n subtable: $ca2df1256966e313$var$KernSubtable,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.length - t._currentOffset)\n }\n});\nvar $ca2df1256966e313$export$2e2bcd8739ae039 = new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n nTables: $6uUbQ$uint16,\n tables: new $6uUbQ$Array($ca2df1256966e313$var$KernTable, 'nTables')\n },\n 1: {\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n nTables: $6uUbQ$uint32,\n tables: new $6uUbQ$Array($ca2df1256966e313$var$KernTable, 'nTables')\n }\n});\n\n\n\nvar // Linear Threshold table\n// Records the ppem for each glyph at which the scaling becomes linear again,\n// despite instructions effecting the advance width\n$7a9f92b0c46ebe33$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numGlyphs: $6uUbQ$uint16,\n yPels: new $6uUbQ$Array($6uUbQ$uint8, 'numGlyphs')\n});\n\n\n\nvar // PCL 5 Table\n// NOTE: The PCLT table is strongly discouraged for OpenType fonts with TrueType outlines\n$2b2ccc419d152631$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n fontNumber: $6uUbQ$uint32,\n pitch: $6uUbQ$uint16,\n xHeight: $6uUbQ$uint16,\n style: $6uUbQ$uint16,\n typeFamily: $6uUbQ$uint16,\n capHeight: $6uUbQ$uint16,\n symbolSet: $6uUbQ$uint16,\n typeface: new $6uUbQ$String(16),\n characterComplement: new $6uUbQ$String(8),\n fileName: new $6uUbQ$String(6),\n strokeWeight: new $6uUbQ$String(1),\n widthType: new $6uUbQ$String(1),\n serifStyle: $6uUbQ$uint8,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint8)\n});\n\n\n\n// VDMX tables contain ascender/descender overrides for certain (usually small)\n// sizes. This is needed in order to match font metrics on Windows.\nlet $ca5b40b9bcda9c9b$var$Ratio = new $6uUbQ$Struct({\n bCharSet: $6uUbQ$uint8,\n xRatio: $6uUbQ$uint8,\n yStartRatio: $6uUbQ$uint8,\n yEndRatio: $6uUbQ$uint8 // Ending y-Ratio value\n});\nlet $ca5b40b9bcda9c9b$var$vTable = new $6uUbQ$Struct({\n yPelHeight: $6uUbQ$uint16,\n yMax: $6uUbQ$int16,\n yMin: $6uUbQ$int16 // Minimum value (in pels) for this yPelHeight\n});\nlet $ca5b40b9bcda9c9b$var$VdmxGroup = new $6uUbQ$Struct({\n recs: $6uUbQ$uint16,\n startsz: $6uUbQ$uint8,\n endsz: $6uUbQ$uint8,\n entries: new $6uUbQ$Array($ca5b40b9bcda9c9b$var$vTable, 'recs') // The VDMX records\n});\nvar $ca5b40b9bcda9c9b$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n numRecs: $6uUbQ$uint16,\n numRatios: $6uUbQ$uint16,\n ratioRanges: new $6uUbQ$Array($ca5b40b9bcda9c9b$var$Ratio, 'numRatios'),\n offsets: new $6uUbQ$Array($6uUbQ$uint16, 'numRatios'),\n groups: new $6uUbQ$Array($ca5b40b9bcda9c9b$var$VdmxGroup, 'numRecs') // The actual VDMX groupings\n});\n\n\n\nvar // Vertical Header Table\n$69530a3c40755af0$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n ascent: $6uUbQ$int16,\n descent: $6uUbQ$int16,\n lineGap: $6uUbQ$int16,\n advanceHeightMax: $6uUbQ$int16,\n minTopSideBearing: $6uUbQ$int16,\n minBottomSideBearing: $6uUbQ$int16,\n yMaxExtent: $6uUbQ$int16,\n caretSlopeRise: $6uUbQ$int16,\n caretSlopeRun: $6uUbQ$int16,\n caretOffset: $6uUbQ$int16,\n reserved: new $6uUbQ$Reserved($6uUbQ$int16, 4),\n metricDataFormat: $6uUbQ$int16,\n numberOfMetrics: $6uUbQ$uint16 // Number of advance heights in the Vertical Metrics table\n});\n\n\n\nlet $344073dd270f0e62$var$VmtxEntry = new $6uUbQ$Struct({\n advance: $6uUbQ$uint16,\n bearing: $6uUbQ$int16 // The top sidebearing of the glyph\n});\nvar // Vertical Metrics Table\n$344073dd270f0e62$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n metrics: new $6uUbQ$LazyArray($344073dd270f0e62$var$VmtxEntry, (t)=>t.parent.vhea.numberOfMetrics),\n bearings: new $6uUbQ$LazyArray($6uUbQ$int16, (t)=>t.parent.maxp.numGlyphs - t.parent.vhea.numberOfMetrics)\n});\n\n\n\nlet $3793b781918cfced$var$shortFrac = new $6uUbQ$Fixed(16, 'BE', 14);\nlet $3793b781918cfced$var$Correspondence = new $6uUbQ$Struct({\n fromCoord: $3793b781918cfced$var$shortFrac,\n toCoord: $3793b781918cfced$var$shortFrac\n});\nlet $3793b781918cfced$var$Segment = new $6uUbQ$Struct({\n pairCount: $6uUbQ$uint16,\n correspondence: new $6uUbQ$Array($3793b781918cfced$var$Correspondence, 'pairCount')\n});\nvar $3793b781918cfced$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n axisCount: $6uUbQ$uint32,\n segment: new $6uUbQ$Array($3793b781918cfced$var$Segment, 'axisCount')\n});\n\n\n\n\nclass $6cb7dd5f47d82580$var$UnboundedArrayAccessor {\n getItem(index) {\n if (this._items[index] == null) {\n let pos = this.stream.pos;\n this.stream.pos = this.base + this.type.size(null, this.parent) * index;\n this._items[index] = this.type.decode(this.stream, this.parent);\n this.stream.pos = pos;\n }\n return this._items[index];\n }\n inspect() {\n return `[UnboundedArray ${this.type.constructor.name}]`;\n }\n constructor(type, stream, parent){\n this.type = type;\n this.stream = stream;\n this.parent = parent;\n this.base = this.stream.pos;\n this._items = [];\n }\n}\nclass $6cb7dd5f47d82580$export$c5af1eebc882e39a extends $6uUbQ$Array {\n decode(stream, parent) {\n return new $6cb7dd5f47d82580$var$UnboundedArrayAccessor(this.type, stream, parent);\n }\n constructor(type){\n super(type, 0);\n }\n}\nlet $6cb7dd5f47d82580$export$8351f8c2ae2f103c = function(ValueType = $6uUbQ$uint16) {\n // Helper class that makes internal structures invisible to pointers\n class Shadow {\n decode(stream, ctx) {\n ctx = ctx.parent.parent;\n return this.type.decode(stream, ctx);\n }\n size(val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.size(val, ctx);\n }\n encode(stream, val, ctx) {\n ctx = ctx.parent.parent;\n return this.type.encode(stream, val, ctx);\n }\n constructor(type){\n this.type = type;\n }\n }\n ValueType = new Shadow(ValueType);\n let BinarySearchHeader = new $6uUbQ$Struct({\n unitSize: $6uUbQ$uint16,\n nUnits: $6uUbQ$uint16,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16\n });\n let LookupSegmentSingle = new $6uUbQ$Struct({\n lastGlyph: $6uUbQ$uint16,\n firstGlyph: $6uUbQ$uint16,\n value: ValueType\n });\n let LookupSegmentArray = new $6uUbQ$Struct({\n lastGlyph: $6uUbQ$uint16,\n firstGlyph: $6uUbQ$uint16,\n values: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$Array(ValueType, (t)=>t.lastGlyph - t.firstGlyph + 1), {\n type: 'parent'\n })\n });\n let LookupSingle = new $6uUbQ$Struct({\n glyph: $6uUbQ$uint16,\n value: ValueType\n });\n return new $6uUbQ$VersionedStruct($6uUbQ$uint16, {\n 0: {\n values: new $6cb7dd5f47d82580$export$c5af1eebc882e39a(ValueType) // length == number of glyphs maybe?\n },\n 2: {\n binarySearchHeader: BinarySearchHeader,\n segments: new $6uUbQ$Array(LookupSegmentSingle, (t)=>t.binarySearchHeader.nUnits)\n },\n 4: {\n binarySearchHeader: BinarySearchHeader,\n segments: new $6uUbQ$Array(LookupSegmentArray, (t)=>t.binarySearchHeader.nUnits)\n },\n 6: {\n binarySearchHeader: BinarySearchHeader,\n segments: new $6uUbQ$Array(LookupSingle, (t)=>t.binarySearchHeader.nUnits)\n },\n 8: {\n firstGlyph: $6uUbQ$uint16,\n count: $6uUbQ$uint16,\n values: new $6uUbQ$Array(ValueType, 'count')\n }\n });\n};\nfunction $6cb7dd5f47d82580$export$79f7d93d790934ba(entryData = {}, lookupType = $6uUbQ$uint16) {\n let entry = Object.assign({\n newState: $6uUbQ$uint16,\n flags: $6uUbQ$uint16\n }, entryData);\n let Entry = new $6uUbQ$Struct(entry);\n let StateArray = new $6cb7dd5f47d82580$export$c5af1eebc882e39a(new $6uUbQ$Array($6uUbQ$uint16, (t)=>t.nClasses));\n let StateHeader = new $6uUbQ$Struct({\n nClasses: $6uUbQ$uint32,\n classTable: new $6uUbQ$Pointer($6uUbQ$uint32, new $6cb7dd5f47d82580$export$8351f8c2ae2f103c(lookupType)),\n stateArray: new $6uUbQ$Pointer($6uUbQ$uint32, StateArray),\n entryTable: new $6uUbQ$Pointer($6uUbQ$uint32, new $6cb7dd5f47d82580$export$c5af1eebc882e39a(Entry))\n });\n return StateHeader;\n}\nfunction $6cb7dd5f47d82580$export$105027425199cc51(entryData = {}, lookupType = $6uUbQ$uint16) {\n let ClassLookupTable = new $6uUbQ$Struct({\n version () {\n return 8;\n },\n firstGlyph: $6uUbQ$uint16,\n values: new $6uUbQ$Array($6uUbQ$uint8, $6uUbQ$uint16)\n });\n let entry = Object.assign({\n newStateOffset: $6uUbQ$uint16,\n // convert offset to stateArray index\n newState: (t)=>(t.newStateOffset - (t.parent.stateArray.base - t.parent._startOffset)) / t.parent.nClasses,\n flags: $6uUbQ$uint16\n }, entryData);\n let Entry = new $6uUbQ$Struct(entry);\n let StateArray = new $6cb7dd5f47d82580$export$c5af1eebc882e39a(new $6uUbQ$Array($6uUbQ$uint8, (t)=>t.nClasses));\n let StateHeader1 = new $6uUbQ$Struct({\n nClasses: $6uUbQ$uint16,\n classTable: new $6uUbQ$Pointer($6uUbQ$uint16, ClassLookupTable),\n stateArray: new $6uUbQ$Pointer($6uUbQ$uint16, StateArray),\n entryTable: new $6uUbQ$Pointer($6uUbQ$uint16, new $6cb7dd5f47d82580$export$c5af1eebc882e39a(Entry))\n });\n return StateHeader1;\n}\n\n\nlet $6a3746e8c708f5a3$var$BslnSubtable = new $6uUbQ$VersionedStruct('format', {\n 0: {\n deltas: new $6uUbQ$Array($6uUbQ$int16, 32)\n },\n 1: {\n deltas: new $6uUbQ$Array($6uUbQ$int16, 32),\n mappingData: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($6uUbQ$uint16)\n },\n 2: {\n standardGlyph: $6uUbQ$uint16,\n controlPoints: new $6uUbQ$Array($6uUbQ$uint16, 32)\n },\n 3: {\n standardGlyph: $6uUbQ$uint16,\n controlPoints: new $6uUbQ$Array($6uUbQ$uint16, 32),\n mappingData: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($6uUbQ$uint16)\n }\n});\nvar $6a3746e8c708f5a3$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n format: $6uUbQ$uint16,\n defaultBaseline: $6uUbQ$uint16,\n subtable: $6a3746e8c708f5a3$var$BslnSubtable\n});\n\n\n\nlet $d0c76fac617b308a$var$Setting = new $6uUbQ$Struct({\n setting: $6uUbQ$uint16,\n nameIndex: $6uUbQ$int16,\n name: (t)=>t.parent.parent.parent.name.records.fontFeatures[t.nameIndex]\n});\nlet $d0c76fac617b308a$var$FeatureName = new $6uUbQ$Struct({\n feature: $6uUbQ$uint16,\n nSettings: $6uUbQ$uint16,\n settingTable: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array($d0c76fac617b308a$var$Setting, 'nSettings'), {\n type: 'parent'\n }),\n featureFlags: new $6uUbQ$Bitfield($6uUbQ$uint8, [\n null,\n null,\n null,\n null,\n null,\n null,\n 'hasDefault',\n 'exclusive'\n ]),\n defaultSetting: $6uUbQ$uint8,\n nameIndex: $6uUbQ$int16,\n name: (t)=>t.parent.parent.name.records.fontFeatures[t.nameIndex]\n});\nvar $d0c76fac617b308a$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n featureNameCount: $6uUbQ$uint16,\n reserved1: new $6uUbQ$Reserved($6uUbQ$uint16),\n reserved2: new $6uUbQ$Reserved($6uUbQ$uint32),\n featureNames: new $6uUbQ$Array($d0c76fac617b308a$var$FeatureName, 'featureNameCount')\n});\n\n\n\nlet $e83fd065f00fcd01$var$Axis = new $6uUbQ$Struct({\n axisTag: new $6uUbQ$String(4),\n minValue: $6uUbQ$fixed32,\n defaultValue: $6uUbQ$fixed32,\n maxValue: $6uUbQ$fixed32,\n flags: $6uUbQ$uint16,\n nameID: $6uUbQ$uint16,\n name: (t)=>t.parent.parent.name.records.fontFeatures[t.nameID]\n});\nlet $e83fd065f00fcd01$var$Instance = new $6uUbQ$Struct({\n nameID: $6uUbQ$uint16,\n name: (t)=>t.parent.parent.name.records.fontFeatures[t.nameID],\n flags: $6uUbQ$uint16,\n coord: new $6uUbQ$Array($6uUbQ$fixed32, (t)=>t.parent.axisCount),\n postscriptNameID: new $6uUbQ$Optional($6uUbQ$uint16, (t)=>t.parent.instanceSize - t._currentOffset > 0)\n});\nvar $e83fd065f00fcd01$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n offsetToData: $6uUbQ$uint16,\n countSizePairs: $6uUbQ$uint16,\n axisCount: $6uUbQ$uint16,\n axisSize: $6uUbQ$uint16,\n instanceCount: $6uUbQ$uint16,\n instanceSize: $6uUbQ$uint16,\n axis: new $6uUbQ$Array($e83fd065f00fcd01$var$Axis, 'axisCount'),\n instance: new $6uUbQ$Array($e83fd065f00fcd01$var$Instance, 'instanceCount')\n});\n\n\n\nlet $dbe33c8d3a7f131c$var$shortFrac = new $6uUbQ$Fixed(16, 'BE', 14);\nclass $dbe33c8d3a7f131c$var$Offset {\n static decode(stream, parent) {\n // In short format, offsets are multiplied by 2.\n // This doesn't seem to be documented by Apple, but it\n // is implemented this way in Freetype.\n return parent.flags ? stream.readUInt32BE() : stream.readUInt16BE() * 2;\n }\n}\nlet $dbe33c8d3a7f131c$var$gvar = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n axisCount: $6uUbQ$uint16,\n globalCoordCount: $6uUbQ$uint16,\n globalCoords: new $6uUbQ$Pointer($6uUbQ$uint32, new $6uUbQ$Array(new $6uUbQ$Array($dbe33c8d3a7f131c$var$shortFrac, 'axisCount'), 'globalCoordCount')),\n glyphCount: $6uUbQ$uint16,\n flags: $6uUbQ$uint16,\n offsetToData: $6uUbQ$uint32,\n offsets: new $6uUbQ$Array(new $6uUbQ$Pointer($dbe33c8d3a7f131c$var$Offset, 'void', {\n relativeTo: (ctx)=>ctx.offsetToData,\n allowNull: false\n }), (t)=>t.glyphCount + 1)\n});\nvar $dbe33c8d3a7f131c$export$2e2bcd8739ae039 = $dbe33c8d3a7f131c$var$gvar;\n\n\n\n\nlet $05b01887df96c4ee$var$ClassTable = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n coverage: $6uUbQ$uint16,\n subFeatureFlags: $6uUbQ$uint32,\n stateTable: new (0, $6cb7dd5f47d82580$export$105027425199cc51)\n});\nlet $05b01887df96c4ee$var$WidthDeltaRecord = new $6uUbQ$Struct({\n justClass: $6uUbQ$uint32,\n beforeGrowLimit: $6uUbQ$fixed32,\n beforeShrinkLimit: $6uUbQ$fixed32,\n afterGrowLimit: $6uUbQ$fixed32,\n afterShrinkLimit: $6uUbQ$fixed32,\n growFlags: $6uUbQ$uint16,\n shrinkFlags: $6uUbQ$uint16\n});\nlet $05b01887df96c4ee$var$WidthDeltaCluster = new $6uUbQ$Array($05b01887df96c4ee$var$WidthDeltaRecord, $6uUbQ$uint32);\nlet $05b01887df96c4ee$var$ActionData = new $6uUbQ$VersionedStruct('actionType', {\n 0: {\n lowerLimit: $6uUbQ$fixed32,\n upperLimit: $6uUbQ$fixed32,\n order: $6uUbQ$uint16,\n glyphs: new $6uUbQ$Array($6uUbQ$uint16, $6uUbQ$uint16)\n },\n 1: {\n addGlyph: $6uUbQ$uint16\n },\n 2: {\n substThreshold: $6uUbQ$fixed32,\n addGlyph: $6uUbQ$uint16,\n substGlyph: $6uUbQ$uint16\n },\n 3: {},\n 4: {\n variationAxis: $6uUbQ$uint32,\n minimumLimit: $6uUbQ$fixed32,\n noStretchValue: $6uUbQ$fixed32,\n maximumLimit: $6uUbQ$fixed32\n },\n 5: {\n flags: $6uUbQ$uint16,\n glyph: $6uUbQ$uint16\n }\n});\nlet $05b01887df96c4ee$var$Action = new $6uUbQ$Struct({\n actionClass: $6uUbQ$uint16,\n actionType: $6uUbQ$uint16,\n actionLength: $6uUbQ$uint32,\n actionData: $05b01887df96c4ee$var$ActionData,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.actionLength - t._currentOffset)\n});\nlet $05b01887df96c4ee$var$PostcompensationAction = new $6uUbQ$Array($05b01887df96c4ee$var$Action, $6uUbQ$uint32);\nlet $05b01887df96c4ee$var$PostCompensationTable = new $6uUbQ$Struct({\n lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$PostcompensationAction))\n});\nlet $05b01887df96c4ee$var$JustificationTable = new $6uUbQ$Struct({\n classTable: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$ClassTable, {\n type: 'parent'\n }),\n wdcOffset: $6uUbQ$uint16,\n postCompensationTable: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$PostCompensationTable, {\n type: 'parent'\n }),\n widthDeltaClusters: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)(new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$WidthDeltaCluster, {\n type: 'parent',\n relativeTo: (ctx)=>ctx.wdcOffset\n }))\n});\nvar $05b01887df96c4ee$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n format: $6uUbQ$uint16,\n horizontal: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$JustificationTable),\n vertical: new $6uUbQ$Pointer($6uUbQ$uint16, $05b01887df96c4ee$var$JustificationTable)\n});\n\n\n\n\nlet $03ee6ebd54db1053$var$LigatureData = {\n action: $6uUbQ$uint16\n};\nlet $03ee6ebd54db1053$var$ContextualData = {\n markIndex: $6uUbQ$uint16,\n currentIndex: $6uUbQ$uint16\n};\nlet $03ee6ebd54db1053$var$InsertionData = {\n currentInsertIndex: $6uUbQ$uint16,\n markedInsertIndex: $6uUbQ$uint16\n};\nlet $03ee6ebd54db1053$var$SubstitutionTable = new $6uUbQ$Struct({\n items: new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)(new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)))\n});\nlet $03ee6ebd54db1053$var$SubtableData = new $6uUbQ$VersionedStruct('type', {\n 0: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)\n },\n 1: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$ContextualData),\n substitutionTable: new $6uUbQ$Pointer($6uUbQ$uint32, $03ee6ebd54db1053$var$SubstitutionTable)\n },\n 2: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$LigatureData),\n ligatureActions: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint32)),\n components: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint16)),\n ligatureList: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint16))\n },\n 4: {\n lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)\n },\n 5: {\n stateTable: new (0, $6cb7dd5f47d82580$export$79f7d93d790934ba)($03ee6ebd54db1053$var$InsertionData),\n insertionActions: new $6uUbQ$Pointer($6uUbQ$uint32, new (0, $6cb7dd5f47d82580$export$c5af1eebc882e39a)($6uUbQ$uint16))\n }\n});\nlet $03ee6ebd54db1053$var$Subtable = new $6uUbQ$Struct({\n length: $6uUbQ$uint32,\n coverage: $6uUbQ$uint24,\n type: $6uUbQ$uint8,\n subFeatureFlags: $6uUbQ$uint32,\n table: $03ee6ebd54db1053$var$SubtableData,\n padding: new $6uUbQ$Reserved($6uUbQ$uint8, (t)=>t.length - t._currentOffset)\n});\nlet $03ee6ebd54db1053$var$FeatureEntry = new $6uUbQ$Struct({\n featureType: $6uUbQ$uint16,\n featureSetting: $6uUbQ$uint16,\n enableFlags: $6uUbQ$uint32,\n disableFlags: $6uUbQ$uint32\n});\nlet $03ee6ebd54db1053$var$MorxChain = new $6uUbQ$Struct({\n defaultFlags: $6uUbQ$uint32,\n chainLength: $6uUbQ$uint32,\n nFeatureEntries: $6uUbQ$uint32,\n nSubtables: $6uUbQ$uint32,\n features: new $6uUbQ$Array($03ee6ebd54db1053$var$FeatureEntry, 'nFeatureEntries'),\n subtables: new $6uUbQ$Array($03ee6ebd54db1053$var$Subtable, 'nSubtables')\n});\nvar $03ee6ebd54db1053$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$uint16,\n unused: new $6uUbQ$Reserved($6uUbQ$uint16),\n nChains: $6uUbQ$uint32,\n chains: new $6uUbQ$Array($03ee6ebd54db1053$var$MorxChain, 'nChains')\n});\n\n\n\n\nlet $b7492a80b0d1a056$var$OpticalBounds = new $6uUbQ$Struct({\n left: $6uUbQ$int16,\n top: $6uUbQ$int16,\n right: $6uUbQ$int16,\n bottom: $6uUbQ$int16\n});\nvar $b7492a80b0d1a056$export$2e2bcd8739ae039 = new $6uUbQ$Struct({\n version: $6uUbQ$fixed32,\n format: $6uUbQ$uint16,\n lookupTable: new (0, $6cb7dd5f47d82580$export$8351f8c2ae2f103c)($b7492a80b0d1a056$var$OpticalBounds)\n});\n\n\nlet $c3395722bea751e2$var$tables = {};\nvar $c3395722bea751e2$export$2e2bcd8739ae039 = $c3395722bea751e2$var$tables;\n$c3395722bea751e2$var$tables.cmap = (0, $26a62205ad06574e$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.head = (0, $f2612a29f92ac062$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.hhea = (0, $2c179dd593583073$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.hmtx = (0, $bdc9060542264b85$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.maxp = (0, $dbf51cb3d3fe409d$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.name = (0, $2bcf221753ec8e32$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['OS/2'] = (0, $84b272aa31b70606$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.post = (0, $32d9e2eb9565d93c$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.fpgm = (0, $5c0f37ca5ffb1850$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.loca = (0, $2b2b260902b1c57e$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.prep = (0, $7afb878c7bea4f66$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['cvt '] = (0, $5202bd9d9ad8eaac$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.glyf = (0, $6c92b6371bce8bd9$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['CFF '] = (0, $822ac0d589e4e237$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables['CFF2'] = (0, $822ac0d589e4e237$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.VORG = (0, $2bbf2bc1ce37cd8f$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.EBLC = (0, $9911c4c7201c13de$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.CBLC = $c3395722bea751e2$var$tables.EBLC;\n$c3395722bea751e2$var$tables.sbix = (0, $abb847051efd51b1$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.COLR = (0, $eb629188f3dfefdd$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.CPAL = (0, $08734b8e7dc64587$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.BASE = (0, $497cef411d884e34$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.GDEF = (0, $cf5f33c63ef209e6$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.GPOS = (0, $47e0e8ef515d9903$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.GSUB = (0, $d3f442064af66e06$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.JSTF = (0, $71cfb3c4767fbd0c$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.HVAR = (0, $d059a6bd2d3b5b63$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.DSIG = (0, $dceeca3e1977ce30$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.gasp = (0, $8acd740a9435aad0$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.hdmx = (0, $b5f380243c34d6a0$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.kern = (0, $ca2df1256966e313$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.LTSH = (0, $7a9f92b0c46ebe33$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.PCLT = (0, $2b2ccc419d152631$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.VDMX = (0, $ca5b40b9bcda9c9b$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.vhea = (0, $69530a3c40755af0$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.vmtx = (0, $344073dd270f0e62$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.avar = (0, $3793b781918cfced$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.bsln = (0, $6a3746e8c708f5a3$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.feat = (0, $d0c76fac617b308a$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.fvar = (0, $e83fd065f00fcd01$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.gvar = (0, $dbe33c8d3a7f131c$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.just = (0, $05b01887df96c4ee$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.morx = (0, $03ee6ebd54db1053$export$2e2bcd8739ae039);\n$c3395722bea751e2$var$tables.opbd = (0, $b7492a80b0d1a056$export$2e2bcd8739ae039);\n\n\nlet $816c07a04b6dba87$var$TableEntry = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n checkSum: $6uUbQ$uint32,\n offset: new $6uUbQ$Pointer($6uUbQ$uint32, 'void', {\n type: 'global'\n }),\n length: $6uUbQ$uint32\n});\nlet $816c07a04b6dba87$var$Directory = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n numTables: $6uUbQ$uint16,\n searchRange: $6uUbQ$uint16,\n entrySelector: $6uUbQ$uint16,\n rangeShift: $6uUbQ$uint16,\n tables: new $6uUbQ$Array($816c07a04b6dba87$var$TableEntry, 'numTables')\n});\n$816c07a04b6dba87$var$Directory.process = function() {\n let tables = {};\n for (let table of this.tables)tables[table.tag] = table;\n this.tables = tables;\n};\n$816c07a04b6dba87$var$Directory.preEncode = function() {\n if (!Array.isArray(this.tables)) {\n let tables = [];\n for(let tag in this.tables){\n let table = this.tables[tag];\n if (table) tables.push({\n tag: tag,\n checkSum: 0,\n offset: new $6uUbQ$VoidPointer((0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag], table),\n length: (0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag].size(table)\n });\n }\n this.tables = tables;\n }\n this.tag = 'true';\n this.numTables = this.tables.length;\n let maxExponentFor2 = Math.floor(Math.log(this.numTables) / Math.LN2);\n let maxPowerOf2 = Math.pow(2, maxExponentFor2);\n this.searchRange = maxPowerOf2 * 16;\n this.entrySelector = Math.log(maxPowerOf2) / Math.LN2;\n this.rangeShift = this.numTables * 16 - this.searchRange;\n};\nvar $816c07a04b6dba87$export$2e2bcd8739ae039 = $816c07a04b6dba87$var$Directory;\n\n\n\n\nfunction $12727730ddfc8bfe$export$2e0ae67339d5f1ac(arr, cmp) {\n let min = 0;\n let max = arr.length - 1;\n while(min <= max){\n let mid = min + max >> 1;\n let res = cmp(arr[mid]);\n if (res < 0) max = mid - 1;\n else if (res > 0) min = mid + 1;\n else return mid;\n }\n return -1;\n}\nfunction $12727730ddfc8bfe$export$d02631cccf789723(index, end) {\n let range = [];\n while(index < end)range.push(index++);\n return range;\n}\nconst $12727730ddfc8bfe$export$3d28c1996ced1f14 = new TextDecoder('ascii');\n// Based on https://github.com/niklasvh/base64-arraybuffer. MIT license.\nconst $12727730ddfc8bfe$var$CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst $12727730ddfc8bfe$var$LOOKUP = new Uint8Array(256);\nfor(let i = 0; i < $12727730ddfc8bfe$var$CHARS.length; i++)$12727730ddfc8bfe$var$LOOKUP[$12727730ddfc8bfe$var$CHARS.charCodeAt(i)] = i;\nfunction $12727730ddfc8bfe$export$94fdf11bafc8de6b(base64) {\n let bufferLength = base64.length * 0.75;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') bufferLength--;\n }\n let bytes = new Uint8Array(bufferLength);\n let p = 0;\n for(let i = 0, len = base64.length; i < len; i += 4){\n let encoded1 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i)];\n let encoded2 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i + 1)];\n let encoded3 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i + 2)];\n let encoded4 = $12727730ddfc8bfe$var$LOOKUP[base64.charCodeAt(i + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return bytes;\n}\n\n\n\n\nclass $f08dd41ef10b694c$export$2e2bcd8739ae039 {\n findSubtable(cmapTable, pairs) {\n for (let [platformID, encodingID] of pairs)for (let cmap of cmapTable.tables){\n if (cmap.platformID === platformID && cmap.encodingID === encodingID) return cmap.table;\n }\n return null;\n }\n lookup(codepoint, variationSelector) {\n // If there is no Unicode cmap in this font, we need to re-encode\n // the codepoint in the encoding that the cmap supports.\n if (this.encoding) codepoint = this.encoding.get(codepoint) || codepoint;\n else if (variationSelector) {\n let gid = this.getVariationSelector(codepoint, variationSelector);\n if (gid) return gid;\n }\n let cmap = this.cmap;\n switch(cmap.version){\n case 0:\n return cmap.codeMap.get(codepoint) || 0;\n case 4:\n {\n let min = 0;\n let max = cmap.segCount - 1;\n while(min <= max){\n let mid = min + max >> 1;\n if (codepoint < cmap.startCode.get(mid)) max = mid - 1;\n else if (codepoint > cmap.endCode.get(mid)) min = mid + 1;\n else {\n let rangeOffset = cmap.idRangeOffset.get(mid);\n let gid;\n if (rangeOffset === 0) gid = codepoint + cmap.idDelta.get(mid);\n else {\n let index = rangeOffset / 2 + (codepoint - cmap.startCode.get(mid)) - (cmap.segCount - mid);\n gid = cmap.glyphIndexArray.get(index) || 0;\n if (gid !== 0) gid += cmap.idDelta.get(mid);\n }\n return gid & 0xffff;\n }\n }\n return 0;\n }\n case 8:\n throw new Error('TODO: cmap format 8');\n case 6:\n case 10:\n return cmap.glyphIndices.get(codepoint - cmap.firstCode) || 0;\n case 12:\n case 13:\n {\n let min = 0;\n let max = cmap.nGroups - 1;\n while(min <= max){\n let mid = min + max >> 1;\n let group = cmap.groups.get(mid);\n if (codepoint < group.startCharCode) max = mid - 1;\n else if (codepoint > group.endCharCode) min = mid + 1;\n else {\n if (cmap.version === 12) return group.glyphID + (codepoint - group.startCharCode);\n else return group.glyphID;\n }\n }\n return 0;\n }\n case 14:\n throw new Error('TODO: cmap format 14');\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n getVariationSelector(codepoint, variationSelector) {\n if (!this.uvs) return 0;\n let selectors = this.uvs.varSelectors.toArray();\n let i = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(selectors, (x)=>variationSelector - x.varSelector);\n let sel = selectors[i];\n if (i !== -1 && sel.defaultUVS) i = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(sel.defaultUVS, (x)=>codepoint < x.startUnicodeValue ? -1 : codepoint > x.startUnicodeValue + x.additionalCount ? 1 : 0);\n if (i !== -1 && sel.nonDefaultUVS) {\n i = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(sel.nonDefaultUVS, (x)=>codepoint - x.unicodeValue);\n if (i !== -1) return sel.nonDefaultUVS[i].glyphID;\n }\n return 0;\n }\n getCharacterSet() {\n let cmap = this.cmap;\n switch(cmap.version){\n case 0:\n return (0, $12727730ddfc8bfe$export$d02631cccf789723)(0, cmap.codeMap.length);\n case 4:\n {\n let res = [];\n let endCodes = cmap.endCode.toArray();\n for(let i = 0; i < endCodes.length; i++){\n let tail = endCodes[i] + 1;\n let start = cmap.startCode.get(i);\n res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(start, tail));\n }\n return res;\n }\n case 8:\n throw new Error('TODO: cmap format 8');\n case 6:\n case 10:\n return (0, $12727730ddfc8bfe$export$d02631cccf789723)(cmap.firstCode, cmap.firstCode + cmap.glyphIndices.length);\n case 12:\n case 13:\n {\n let res = [];\n for (let group of cmap.groups.toArray())res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(group.startCharCode, group.endCharCode + 1));\n return res;\n }\n case 14:\n throw new Error('TODO: cmap format 14');\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n codePointsForGlyph(gid) {\n let cmap = this.cmap;\n switch(cmap.version){\n case 0:\n {\n let res = [];\n for(let i = 0; i < 256; i++)if (cmap.codeMap.get(i) === gid) res.push(i);\n return res;\n }\n case 4:\n {\n let res = [];\n for(let i = 0; i < cmap.segCount; i++){\n let end = cmap.endCode.get(i);\n let start = cmap.startCode.get(i);\n let rangeOffset = cmap.idRangeOffset.get(i);\n let delta = cmap.idDelta.get(i);\n for(var c = start; c <= end; c++){\n let g = 0;\n if (rangeOffset === 0) g = c + delta;\n else {\n let index = rangeOffset / 2 + (c - start) - (cmap.segCount - i);\n g = cmap.glyphIndexArray.get(index) || 0;\n if (g !== 0) g += delta;\n }\n if (g === gid) res.push(c);\n }\n }\n return res;\n }\n case 12:\n {\n let res = [];\n for (let group of cmap.groups.toArray())if (gid >= group.glyphID && gid <= group.glyphID + (group.endCharCode - group.startCharCode)) res.push(group.startCharCode + (gid - group.glyphID));\n return res;\n }\n case 13:\n {\n let res = [];\n for (let group of cmap.groups.toArray())if (gid === group.glyphID) res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(group.startCharCode, group.endCharCode + 1));\n return res;\n }\n default:\n throw new Error(`Unknown cmap format ${cmap.version}`);\n }\n }\n constructor(cmapTable){\n // Attempt to find a Unicode cmap first\n this.encoding = null;\n this.cmap = this.findSubtable(cmapTable, [\n // 32-bit subtables\n [\n 3,\n 10\n ],\n [\n 0,\n 6\n ],\n [\n 0,\n 4\n ],\n // 16-bit subtables\n [\n 3,\n 1\n ],\n [\n 0,\n 3\n ],\n [\n 0,\n 2\n ],\n [\n 0,\n 1\n ],\n [\n 0,\n 0\n ]\n ]);\n // If not unicode cmap was found, take the first table with a supported encoding.\n if (!this.cmap) for (let cmap of cmapTable.tables){\n let encoding = (0, $e449ad78d50845fe$export$badc544e0651b6b1)(cmap.platformID, cmap.encodingID, cmap.table.language - 1);\n let mapping = (0, $e449ad78d50845fe$export$1dceb3c14ed68bee)(encoding);\n if (mapping) {\n this.cmap = cmap.table;\n this.encoding = mapping;\n }\n }\n if (!this.cmap) throw new Error(\"Could not find a supported cmap table\");\n this.uvs = this.findSubtable(cmapTable, [\n [\n 0,\n 5\n ]\n ]);\n if (this.uvs && this.uvs.version !== 14) this.uvs = null;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f08dd41ef10b694c$export$2e2bcd8739ae039.prototype, \"getCharacterSet\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f08dd41ef10b694c$export$2e2bcd8739ae039.prototype, \"codePointsForGlyph\", null);\n\n\n\nclass $0bba3a9db57637f3$export$2e2bcd8739ae039 {\n process(glyphs, positions) {\n for(let glyphIndex = 0; glyphIndex < glyphs.length - 1; glyphIndex++){\n let left = glyphs[glyphIndex].id;\n let right = glyphs[glyphIndex + 1].id;\n positions[glyphIndex].xAdvance += this.getKerning(left, right);\n }\n }\n getKerning(left, right) {\n let res = 0;\n for (let table of this.kern.tables){\n if (table.coverage.crossStream) continue;\n switch(table.version){\n case 0:\n if (!table.coverage.horizontal) continue;\n break;\n case 1:\n if (table.coverage.vertical || table.coverage.variation) continue;\n break;\n default:\n throw new Error(`Unsupported kerning table version ${table.version}`);\n }\n let val = 0;\n let s = table.subtable;\n switch(table.format){\n case 0:\n let pairIdx = (0, $12727730ddfc8bfe$export$2e0ae67339d5f1ac)(s.pairs, function(pair) {\n return left - pair.left || right - pair.right;\n });\n if (pairIdx >= 0) val = s.pairs[pairIdx].value;\n break;\n case 2:\n let leftOffset = 0, rightOffset = 0;\n if (left >= s.leftTable.firstGlyph && left < s.leftTable.firstGlyph + s.leftTable.nGlyphs) leftOffset = s.leftTable.offsets[left - s.leftTable.firstGlyph];\n else leftOffset = s.array.off;\n if (right >= s.rightTable.firstGlyph && right < s.rightTable.firstGlyph + s.rightTable.nGlyphs) rightOffset = s.rightTable.offsets[right - s.rightTable.firstGlyph];\n let index = (leftOffset + rightOffset - s.array.off) / 2;\n val = s.array.values.get(index);\n break;\n case 3:\n if (left >= s.glyphCount || right >= s.glyphCount) return 0;\n val = s.kernValue[s.kernIndex[s.leftClass[left] * s.rightClassCount + s.rightClass[right]]];\n break;\n default:\n throw new Error(`Unsupported kerning sub-table format ${table.format}`);\n }\n // Microsoft supports the override flag, which resets the result\n // Otherwise, the sum of the results from all subtables is returned\n if (table.coverage.override) res = val;\n else res += val;\n }\n return res;\n }\n constructor(font){\n this.kern = font.kern;\n }\n}\n\n\n\nclass $0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039 {\n positionGlyphs(glyphs, positions) {\n // find each base + mark cluster, and position the marks relative to the base\n let clusterStart = 0;\n let clusterEnd = 0;\n for(let index = 0; index < glyphs.length; index++){\n let glyph = glyphs[index];\n if (glyph.isMark) clusterEnd = index;\n else {\n if (clusterStart !== clusterEnd) this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n clusterStart = clusterEnd = index;\n }\n }\n if (clusterStart !== clusterEnd) this.positionCluster(glyphs, positions, clusterStart, clusterEnd);\n return positions;\n }\n positionCluster(glyphs, positions, clusterStart, clusterEnd) {\n let base = glyphs[clusterStart];\n let baseBox = base.cbox.copy();\n // adjust bounding box for ligature glyphs\n if (base.codePoints.length > 1) // LTR. TODO: RTL support.\n baseBox.minX += (base.codePoints.length - 1) * baseBox.width / base.codePoints.length;\n let xOffset = -positions[clusterStart].xAdvance;\n let yOffset = 0;\n let yGap = this.font.unitsPerEm / 16;\n // position each of the mark glyphs relative to the base glyph\n for(let index = clusterStart + 1; index <= clusterEnd; index++){\n let mark = glyphs[index];\n let markBox = mark.cbox;\n let position = positions[index];\n let combiningClass = this.getCombiningClass(mark.codePoints[0]);\n if (combiningClass !== 'Not_Reordered') {\n position.xOffset = position.yOffset = 0;\n // x positioning\n switch(combiningClass){\n case 'Double_Above':\n case 'Double_Below':\n // LTR. TODO: RTL support.\n position.xOffset += baseBox.minX - markBox.width / 2 - markBox.minX;\n break;\n case 'Attached_Below_Left':\n case 'Below_Left':\n case 'Above_Left':\n // left align\n position.xOffset += baseBox.minX - markBox.minX;\n break;\n case 'Attached_Above_Right':\n case 'Below_Right':\n case 'Above_Right':\n // right align\n position.xOffset += baseBox.maxX - markBox.width - markBox.minX;\n break;\n default:\n // center align\n position.xOffset += baseBox.minX + (baseBox.width - markBox.width) / 2 - markBox.minX;\n }\n // y positioning\n switch(combiningClass){\n case 'Double_Below':\n case 'Below_Left':\n case 'Below':\n case 'Below_Right':\n case 'Attached_Below_Left':\n case 'Attached_Below':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Below_Left' || combiningClass === 'Attached_Below') baseBox.minY += yGap;\n position.yOffset = -baseBox.minY - markBox.maxY;\n baseBox.minY += markBox.height;\n break;\n case 'Double_Above':\n case 'Above_Left':\n case 'Above':\n case 'Above_Right':\n case 'Attached_Above':\n case 'Attached_Above_Right':\n // add a small gap between the glyphs if they are not attached\n if (combiningClass === 'Attached_Above' || combiningClass === 'Attached_Above_Right') baseBox.maxY += yGap;\n position.yOffset = baseBox.maxY - markBox.minY;\n baseBox.maxY += markBox.height;\n break;\n }\n position.xAdvance = position.yAdvance = 0;\n position.xOffset += xOffset;\n position.yOffset += yOffset;\n } else {\n xOffset -= position.xAdvance;\n yOffset -= position.yAdvance;\n }\n }\n return;\n }\n getCombiningClass(codePoint) {\n let combiningClass = (0, $6uUbQ$getCombiningClass)(codePoint);\n // Thai / Lao need some per-character work\n if ((codePoint & -256) === 0x0e00) {\n if (combiningClass === 'Not_Reordered') switch(codePoint){\n case 0x0e31:\n case 0x0e34:\n case 0x0e35:\n case 0x0e36:\n case 0x0e37:\n case 0x0e47:\n case 0x0e4c:\n case 0x0e3d:\n case 0x0e4e:\n return 'Above_Right';\n case 0x0eb1:\n case 0x0eb4:\n case 0x0eb5:\n case 0x0eb6:\n case 0x0eb7:\n case 0x0ebb:\n case 0x0ecc:\n case 0x0ecd:\n return 'Above';\n case 0x0ebc:\n return 'Below';\n }\n else if (codePoint === 0x0e3a) return 'Below_Right';\n }\n switch(combiningClass){\n // Hebrew\n case 'CCC10':\n case 'CCC11':\n case 'CCC12':\n case 'CCC13':\n case 'CCC14':\n case 'CCC15':\n case 'CCC16':\n case 'CCC17':\n case 'CCC18':\n case 'CCC20':\n case 'CCC22':\n return 'Below';\n case 'CCC23':\n return 'Attached_Above';\n case 'CCC24':\n return 'Above_Right';\n case 'CCC25':\n case 'CCC19':\n return 'Above_Left';\n case 'CCC26':\n return 'Above';\n case 'CCC21':\n break;\n // Arabic and Syriac\n case 'CCC27':\n case 'CCC28':\n case 'CCC30':\n case 'CCC31':\n case 'CCC33':\n case 'CCC34':\n case 'CCC35':\n case 'CCC36':\n return 'Above';\n case 'CCC29':\n case 'CCC32':\n return 'Below';\n // Thai\n case 'CCC103':\n return 'Below_Right';\n case 'CCC107':\n return 'Above_Right';\n // Lao\n case 'CCC118':\n return 'Below';\n case 'CCC122':\n return 'Above';\n // Tibetan\n case 'CCC129':\n case 'CCC132':\n return 'Below';\n case 'CCC130':\n return 'Above';\n }\n return combiningClass;\n }\n constructor(font){\n this.font = font;\n }\n}\n\n\n/**\n * Represents a glyph bounding box\n */ class $f34600ab9d7f70d8$export$2e2bcd8739ae039 {\n /**\n * The width of the bounding box\n * @type {number}\n */ get width() {\n return this.maxX - this.minX;\n }\n /**\n * The height of the bounding box\n * @type {number}\n */ get height() {\n return this.maxY - this.minY;\n }\n addPoint(x, y) {\n if (Math.abs(x) !== Infinity) {\n if (x < this.minX) this.minX = x;\n if (x > this.maxX) this.maxX = x;\n }\n if (Math.abs(y) !== Infinity) {\n if (y < this.minY) this.minY = y;\n if (y > this.maxY) this.maxY = y;\n }\n }\n copy() {\n return new $f34600ab9d7f70d8$export$2e2bcd8739ae039(this.minX, this.minY, this.maxX, this.maxY);\n }\n constructor(minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity){\n /**\n * The minimum X position in the bounding box\n * @type {number}\n */ this.minX = minX;\n /**\n * The minimum Y position in the bounding box\n * @type {number}\n */ this.minY = minY;\n /**\n * The maxmimum X position in the bounding box\n * @type {number}\n */ this.maxX = maxX;\n /**\n * The maxmimum Y position in the bounding box\n * @type {number}\n */ this.maxY = maxY;\n }\n}\n\n\n\n// This maps the Unicode Script property to an OpenType script tag\n// Data from http://www.microsoft.com/typography/otspec/scripttags.htm\n// and http://www.unicode.org/Public/UNIDATA/PropertyValueAliases.txt.\nconst $130d1a642ebcd2b7$var$UNICODE_SCRIPTS = {\n Caucasian_Albanian: 'aghb',\n Arabic: 'arab',\n Imperial_Aramaic: 'armi',\n Armenian: 'armn',\n Avestan: 'avst',\n Balinese: 'bali',\n Bamum: 'bamu',\n Bassa_Vah: 'bass',\n Batak: 'batk',\n Bengali: [\n 'bng2',\n 'beng'\n ],\n Bopomofo: 'bopo',\n Brahmi: 'brah',\n Braille: 'brai',\n Buginese: 'bugi',\n Buhid: 'buhd',\n Chakma: 'cakm',\n Canadian_Aboriginal: 'cans',\n Carian: 'cari',\n Cham: 'cham',\n Cherokee: 'cher',\n Coptic: 'copt',\n Cypriot: 'cprt',\n Cyrillic: 'cyrl',\n Devanagari: [\n 'dev2',\n 'deva'\n ],\n Deseret: 'dsrt',\n Duployan: 'dupl',\n Egyptian_Hieroglyphs: 'egyp',\n Elbasan: 'elba',\n Ethiopic: 'ethi',\n Georgian: 'geor',\n Glagolitic: 'glag',\n Gothic: 'goth',\n Grantha: 'gran',\n Greek: 'grek',\n Gujarati: [\n 'gjr2',\n 'gujr'\n ],\n Gurmukhi: [\n 'gur2',\n 'guru'\n ],\n Hangul: 'hang',\n Han: 'hani',\n Hanunoo: 'hano',\n Hebrew: 'hebr',\n Hiragana: 'hira',\n Pahawh_Hmong: 'hmng',\n Katakana_Or_Hiragana: 'hrkt',\n Old_Italic: 'ital',\n Javanese: 'java',\n Kayah_Li: 'kali',\n Katakana: 'kana',\n Kharoshthi: 'khar',\n Khmer: 'khmr',\n Khojki: 'khoj',\n Kannada: [\n 'knd2',\n 'knda'\n ],\n Kaithi: 'kthi',\n Tai_Tham: 'lana',\n Lao: 'lao ',\n Latin: 'latn',\n Lepcha: 'lepc',\n Limbu: 'limb',\n Linear_A: 'lina',\n Linear_B: 'linb',\n Lisu: 'lisu',\n Lycian: 'lyci',\n Lydian: 'lydi',\n Mahajani: 'mahj',\n Mandaic: 'mand',\n Manichaean: 'mani',\n Mende_Kikakui: 'mend',\n Meroitic_Cursive: 'merc',\n Meroitic_Hieroglyphs: 'mero',\n Malayalam: [\n 'mlm2',\n 'mlym'\n ],\n Modi: 'modi',\n Mongolian: 'mong',\n Mro: 'mroo',\n Meetei_Mayek: 'mtei',\n Myanmar: [\n 'mym2',\n 'mymr'\n ],\n Old_North_Arabian: 'narb',\n Nabataean: 'nbat',\n Nko: 'nko ',\n Ogham: 'ogam',\n Ol_Chiki: 'olck',\n Old_Turkic: 'orkh',\n Oriya: [\n 'ory2',\n 'orya'\n ],\n Osmanya: 'osma',\n Palmyrene: 'palm',\n Pau_Cin_Hau: 'pauc',\n Old_Permic: 'perm',\n Phags_Pa: 'phag',\n Inscriptional_Pahlavi: 'phli',\n Psalter_Pahlavi: 'phlp',\n Phoenician: 'phnx',\n Miao: 'plrd',\n Inscriptional_Parthian: 'prti',\n Rejang: 'rjng',\n Runic: 'runr',\n Samaritan: 'samr',\n Old_South_Arabian: 'sarb',\n Saurashtra: 'saur',\n Shavian: 'shaw',\n Sharada: 'shrd',\n Siddham: 'sidd',\n Khudawadi: 'sind',\n Sinhala: 'sinh',\n Sora_Sompeng: 'sora',\n Sundanese: 'sund',\n Syloti_Nagri: 'sylo',\n Syriac: 'syrc',\n Tagbanwa: 'tagb',\n Takri: 'takr',\n Tai_Le: 'tale',\n New_Tai_Lue: 'talu',\n Tamil: [\n 'tml2',\n 'taml'\n ],\n Tai_Viet: 'tavt',\n Telugu: [\n 'tel2',\n 'telu'\n ],\n Tifinagh: 'tfng',\n Tagalog: 'tglg',\n Thaana: 'thaa',\n Thai: 'thai',\n Tibetan: 'tibt',\n Tirhuta: 'tirh',\n Ugaritic: 'ugar',\n Vai: 'vai ',\n Warang_Citi: 'wara',\n Old_Persian: 'xpeo',\n Cuneiform: 'xsux',\n Yi: 'yi ',\n Inherited: 'zinh',\n Common: 'zyyy',\n Unknown: 'zzzz'\n};\nconst $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS = {};\nfor(let script in $130d1a642ebcd2b7$var$UNICODE_SCRIPTS){\n let tag = $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n if (Array.isArray(tag)) for (let t of tag)$130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[t] = script;\n else $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[tag] = script;\n}\nfunction $130d1a642ebcd2b7$export$b32f0b5f69d65e51(script) {\n return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n}\nfunction $130d1a642ebcd2b7$export$ce50e82f12a827a4(tag) {\n return $130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS[tag];\n}\nfunction $130d1a642ebcd2b7$export$e5cb25e204fb8450(string) {\n let len = string.length;\n let idx = 0;\n while(idx < len){\n let code = string.charCodeAt(idx++);\n // Check if this is a high surrogate\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n let next = string.charCodeAt(idx);\n // Check if this is a low surrogate\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3FF) << 10) + (next & 0x3FF) + 0x10000;\n }\n }\n let script = (0, $6uUbQ$getScript)(code);\n if (script !== 'Common' && script !== 'Inherited' && script !== 'Unknown') return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n }\n return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS.Unknown;\n}\nfunction $130d1a642ebcd2b7$export$16fab0757cfc223d(codePoints) {\n for(let i = 0; i < codePoints.length; i++){\n let codePoint = codePoints[i];\n let script = (0, $6uUbQ$getScript)(codePoint);\n if (script !== 'Common' && script !== 'Inherited' && script !== 'Unknown') return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS[script];\n }\n return $130d1a642ebcd2b7$var$UNICODE_SCRIPTS.Unknown;\n}\n// The scripts in this map are written from right to left\nconst $130d1a642ebcd2b7$var$RTL = {\n arab: true,\n hebr: true,\n syrc: true,\n thaa: true,\n cprt: true,\n khar: true,\n phnx: true,\n 'nko ': true,\n lydi: true,\n avst: true,\n armi: true,\n phli: true,\n prti: true,\n sarb: true,\n orkh: true,\n samr: true,\n mand: true,\n merc: true,\n mero: true,\n // Unicode 7.0 (not listed on http://www.microsoft.com/typography/otspec/scripttags.htm)\n mani: true,\n mend: true,\n nbat: true,\n narb: true,\n palm: true,\n phlp: true // Psalter Pahlavi\n};\nfunction $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script) {\n if ($130d1a642ebcd2b7$var$RTL[script]) return 'rtl';\n return 'ltr';\n}\n\n\nclass $be07b3e97a42687a$export$2e2bcd8739ae039 {\n /**\n * The total advance width of the run.\n * @type {number}\n */ get advanceWidth() {\n let width = 0;\n for (let position of this.positions)width += position.xAdvance;\n return width;\n }\n /**\n * The total advance height of the run.\n * @type {number}\n */ get advanceHeight() {\n let height = 0;\n for (let position of this.positions)height += position.yAdvance;\n return height;\n }\n /**\n * The bounding box containing all glyphs in the run.\n * @type {BBox}\n */ get bbox() {\n let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n let x = 0;\n let y = 0;\n for(let index = 0; index < this.glyphs.length; index++){\n let glyph = this.glyphs[index];\n let p = this.positions[index];\n let b = glyph.bbox;\n bbox.addPoint(b.minX + x + p.xOffset, b.minY + y + p.yOffset);\n bbox.addPoint(b.maxX + x + p.xOffset, b.maxY + y + p.yOffset);\n x += p.xAdvance;\n y += p.yAdvance;\n }\n return bbox;\n }\n constructor(glyphs, features, script, language, direction){\n /**\n * An array of Glyph objects in the run\n * @type {Glyph[]}\n */ this.glyphs = glyphs;\n /**\n * An array of GlyphPosition objects for each glyph in the run\n * @type {GlyphPosition[]}\n */ this.positions = null;\n /**\n * The script that was requested for shaping. This was either passed in or detected automatically.\n * @type {string}\n */ this.script = script;\n /**\n * The language requested for shaping, as passed in. If `null`, the default language for the\n * script was used.\n * @type {string}\n */ this.language = language || null;\n /**\n * The direction requested for shaping, as passed in (either ltr or rtl).\n * If `null`, the default direction of the script is used.\n * @type {string}\n */ this.direction = direction || $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script);\n /**\n * The features requested during shaping. This is a combination of user\n * specified features and features chosen by the shaper.\n * @type {object}\n */ this.features = {};\n // Convert features to an object\n if (Array.isArray(features)) for (let tag of features)this.features[tag] = true;\n else if (typeof features === 'object') this.features = features;\n }\n}\n\n\n/**\n * Represents positioning information for a glyph in a GlyphRun.\n */ class $1ac75d9a55b67f01$export$2e2bcd8739ae039 {\n constructor(xAdvance = 0, yAdvance = 0, xOffset = 0, yOffset = 0){\n /**\n * The amount to move the virtual pen in the X direction after rendering this glyph.\n * @type {number}\n */ this.xAdvance = xAdvance;\n /**\n * The amount to move the virtual pen in the Y direction after rendering this glyph.\n * @type {number}\n */ this.yAdvance = yAdvance;\n /**\n * The offset from the pen position in the X direction at which to render this glyph.\n * @type {number}\n */ this.xOffset = xOffset;\n /**\n * The offset from the pen position in the Y direction at which to render this glyph.\n * @type {number}\n */ this.yOffset = yOffset;\n }\n}\n\n\n\n// see https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html\n// and /System/Library/Frameworks/CoreText.framework/Versions/A/Headers/SFNTLayoutTypes.h on a Mac\nconst $3b6302b64eccc32c$var$features = {\n allTypographicFeatures: {\n code: 0,\n exclusive: false,\n allTypeFeatures: 0\n },\n ligatures: {\n code: 1,\n exclusive: false,\n requiredLigatures: 0,\n commonLigatures: 2,\n rareLigatures: 4,\n // logos: 6\n rebusPictures: 8,\n diphthongLigatures: 10,\n squaredLigatures: 12,\n abbrevSquaredLigatures: 14,\n symbolLigatures: 16,\n contextualLigatures: 18,\n historicalLigatures: 20\n },\n cursiveConnection: {\n code: 2,\n exclusive: true,\n unconnected: 0,\n partiallyConnected: 1,\n cursive: 2\n },\n letterCase: {\n code: 3,\n exclusive: true\n },\n // upperAndLowerCase: 0 # deprecated\n // allCaps: 1 # deprecated\n // allLowerCase: 2 # deprecated\n // smallCaps: 3 # deprecated\n // initialCaps: 4 # deprecated\n // initialCapsAndSmallCaps: 5 # deprecated\n verticalSubstitution: {\n code: 4,\n exclusive: false,\n substituteVerticalForms: 0\n },\n linguisticRearrangement: {\n code: 5,\n exclusive: false,\n linguisticRearrangement: 0\n },\n numberSpacing: {\n code: 6,\n exclusive: true,\n monospacedNumbers: 0,\n proportionalNumbers: 1,\n thirdWidthNumbers: 2,\n quarterWidthNumbers: 3\n },\n smartSwash: {\n code: 8,\n exclusive: false,\n wordInitialSwashes: 0,\n wordFinalSwashes: 2,\n // lineInitialSwashes: 4\n // lineFinalSwashes: 6\n nonFinalSwashes: 8\n },\n diacritics: {\n code: 9,\n exclusive: true,\n showDiacritics: 0,\n hideDiacritics: 1,\n decomposeDiacritics: 2\n },\n verticalPosition: {\n code: 10,\n exclusive: true,\n normalPosition: 0,\n superiors: 1,\n inferiors: 2,\n ordinals: 3,\n scientificInferiors: 4\n },\n fractions: {\n code: 11,\n exclusive: true,\n noFractions: 0,\n verticalFractions: 1,\n diagonalFractions: 2\n },\n overlappingCharacters: {\n code: 13,\n exclusive: false,\n preventOverlap: 0\n },\n typographicExtras: {\n code: 14,\n exclusive: false,\n // hyphensToEmDash: 0\n // hyphenToEnDash: 2\n slashedZero: 4\n },\n // formInterrobang: 6\n // smartQuotes: 8\n // periodsToEllipsis: 10\n mathematicalExtras: {\n code: 15,\n exclusive: false,\n // hyphenToMinus: 0\n // asteristoMultiply: 2\n // slashToDivide: 4\n // inequalityLigatures: 6\n // exponents: 8\n mathematicalGreek: 10\n },\n ornamentSets: {\n code: 16,\n exclusive: true,\n noOrnaments: 0,\n dingbats: 1,\n piCharacters: 2,\n fleurons: 3,\n decorativeBorders: 4,\n internationalSymbols: 5,\n mathSymbols: 6\n },\n characterAlternatives: {\n code: 17,\n exclusive: true,\n noAlternates: 0\n },\n // user defined options\n designComplexity: {\n code: 18,\n exclusive: true,\n designLevel1: 0,\n designLevel2: 1,\n designLevel3: 2,\n designLevel4: 3,\n designLevel5: 4\n },\n styleOptions: {\n code: 19,\n exclusive: true,\n noStyleOptions: 0,\n displayText: 1,\n engravedText: 2,\n illuminatedCaps: 3,\n titlingCaps: 4,\n tallCaps: 5\n },\n characterShape: {\n code: 20,\n exclusive: true,\n traditionalCharacters: 0,\n simplifiedCharacters: 1,\n JIS1978Characters: 2,\n JIS1983Characters: 3,\n JIS1990Characters: 4,\n traditionalAltOne: 5,\n traditionalAltTwo: 6,\n traditionalAltThree: 7,\n traditionalAltFour: 8,\n traditionalAltFive: 9,\n expertCharacters: 10,\n JIS2004Characters: 11,\n hojoCharacters: 12,\n NLCCharacters: 13,\n traditionalNamesCharacters: 14\n },\n numberCase: {\n code: 21,\n exclusive: true,\n lowerCaseNumbers: 0,\n upperCaseNumbers: 1\n },\n textSpacing: {\n code: 22,\n exclusive: true,\n proportionalText: 0,\n monospacedText: 1,\n halfWidthText: 2,\n thirdWidthText: 3,\n quarterWidthText: 4,\n altProportionalText: 5,\n altHalfWidthText: 6\n },\n transliteration: {\n code: 23,\n exclusive: true,\n noTransliteration: 0\n },\n // hanjaToHangul: 1\n // hiraganaToKatakana: 2\n // katakanaToHiragana: 3\n // kanaToRomanization: 4\n // romanizationToHiragana: 5\n // romanizationToKatakana: 6\n // hanjaToHangulAltOne: 7\n // hanjaToHangulAltTwo: 8\n // hanjaToHangulAltThree: 9\n annotation: {\n code: 24,\n exclusive: true,\n noAnnotation: 0,\n boxAnnotation: 1,\n roundedBoxAnnotation: 2,\n circleAnnotation: 3,\n invertedCircleAnnotation: 4,\n parenthesisAnnotation: 5,\n periodAnnotation: 6,\n romanNumeralAnnotation: 7,\n diamondAnnotation: 8,\n invertedBoxAnnotation: 9,\n invertedRoundedBoxAnnotation: 10\n },\n kanaSpacing: {\n code: 25,\n exclusive: true,\n fullWidthKana: 0,\n proportionalKana: 1\n },\n ideographicSpacing: {\n code: 26,\n exclusive: true,\n fullWidthIdeographs: 0,\n proportionalIdeographs: 1,\n halfWidthIdeographs: 2\n },\n unicodeDecomposition: {\n code: 27,\n exclusive: false,\n canonicalComposition: 0,\n compatibilityComposition: 2,\n transcodingComposition: 4\n },\n rubyKana: {\n code: 28,\n exclusive: false,\n // noRubyKana: 0 # deprecated - use rubyKanaOff instead\n // rubyKana: 1 # deprecated - use rubyKanaOn instead\n rubyKana: 2\n },\n CJKSymbolAlternatives: {\n code: 29,\n exclusive: true,\n noCJKSymbolAlternatives: 0,\n CJKSymbolAltOne: 1,\n CJKSymbolAltTwo: 2,\n CJKSymbolAltThree: 3,\n CJKSymbolAltFour: 4,\n CJKSymbolAltFive: 5\n },\n ideographicAlternatives: {\n code: 30,\n exclusive: true,\n noIdeographicAlternatives: 0,\n ideographicAltOne: 1,\n ideographicAltTwo: 2,\n ideographicAltThree: 3,\n ideographicAltFour: 4,\n ideographicAltFive: 5\n },\n CJKVerticalRomanPlacement: {\n code: 31,\n exclusive: true,\n CJKVerticalRomanCentered: 0,\n CJKVerticalRomanHBaseline: 1\n },\n italicCJKRoman: {\n code: 32,\n exclusive: false,\n // noCJKItalicRoman: 0 # deprecated - use CJKItalicRomanOff instead\n // CJKItalicRoman: 1 # deprecated - use CJKItalicRomanOn instead\n CJKItalicRoman: 2\n },\n caseSensitiveLayout: {\n code: 33,\n exclusive: false,\n caseSensitiveLayout: 0,\n caseSensitiveSpacing: 2\n },\n alternateKana: {\n code: 34,\n exclusive: false,\n alternateHorizKana: 0,\n alternateVertKana: 2\n },\n stylisticAlternatives: {\n code: 35,\n exclusive: false,\n noStylisticAlternates: 0,\n stylisticAltOne: 2,\n stylisticAltTwo: 4,\n stylisticAltThree: 6,\n stylisticAltFour: 8,\n stylisticAltFive: 10,\n stylisticAltSix: 12,\n stylisticAltSeven: 14,\n stylisticAltEight: 16,\n stylisticAltNine: 18,\n stylisticAltTen: 20,\n stylisticAltEleven: 22,\n stylisticAltTwelve: 24,\n stylisticAltThirteen: 26,\n stylisticAltFourteen: 28,\n stylisticAltFifteen: 30,\n stylisticAltSixteen: 32,\n stylisticAltSeventeen: 34,\n stylisticAltEighteen: 36,\n stylisticAltNineteen: 38,\n stylisticAltTwenty: 40\n },\n contextualAlternates: {\n code: 36,\n exclusive: false,\n contextualAlternates: 0,\n swashAlternates: 2,\n contextualSwashAlternates: 4\n },\n lowerCase: {\n code: 37,\n exclusive: true,\n defaultLowerCase: 0,\n lowerCaseSmallCaps: 1,\n lowerCasePetiteCaps: 2\n },\n upperCase: {\n code: 38,\n exclusive: true,\n defaultUpperCase: 0,\n upperCaseSmallCaps: 1,\n upperCasePetiteCaps: 2\n },\n languageTag: {\n code: 39,\n exclusive: true\n },\n CJKRomanSpacing: {\n code: 103,\n exclusive: true,\n halfWidthCJKRoman: 0,\n proportionalCJKRoman: 1,\n defaultCJKRoman: 2,\n fullWidthCJKRoman: 3\n }\n};\nconst $3b6302b64eccc32c$var$feature = (name, selector)=>[\n $3b6302b64eccc32c$var$features[name].code,\n $3b6302b64eccc32c$var$features[name][selector]\n ];\nconst $3b6302b64eccc32c$var$OTMapping = {\n rlig: $3b6302b64eccc32c$var$feature('ligatures', 'requiredLigatures'),\n clig: $3b6302b64eccc32c$var$feature('ligatures', 'contextualLigatures'),\n dlig: $3b6302b64eccc32c$var$feature('ligatures', 'rareLigatures'),\n hlig: $3b6302b64eccc32c$var$feature('ligatures', 'historicalLigatures'),\n liga: $3b6302b64eccc32c$var$feature('ligatures', 'commonLigatures'),\n hist: $3b6302b64eccc32c$var$feature('ligatures', 'historicalLigatures'),\n smcp: $3b6302b64eccc32c$var$feature('lowerCase', 'lowerCaseSmallCaps'),\n pcap: $3b6302b64eccc32c$var$feature('lowerCase', 'lowerCasePetiteCaps'),\n frac: $3b6302b64eccc32c$var$feature('fractions', 'diagonalFractions'),\n dnom: $3b6302b64eccc32c$var$feature('fractions', 'diagonalFractions'),\n numr: $3b6302b64eccc32c$var$feature('fractions', 'diagonalFractions'),\n afrc: $3b6302b64eccc32c$var$feature('fractions', 'verticalFractions'),\n // aalt\n // abvf, abvm, abvs, akhn, blwf, blwm, blws, cfar, cjct, cpsp, falt, isol, jalt, ljmo, mset?\n // ltra, ltrm, nukt, pref, pres, pstf, psts, rand, rkrf, rphf, rtla, rtlm, size, tjmo, tnum?\n // unic, vatu, vhal, vjmo, vpal, vrt2\n // dist -> trak table?\n // kern, vkrn -> kern table\n // lfbd + opbd + rtbd -> opbd table?\n // mark, mkmk -> acnt table?\n // locl -> languageTag + ltag table\n case: $3b6302b64eccc32c$var$feature('caseSensitiveLayout', 'caseSensitiveLayout'),\n ccmp: $3b6302b64eccc32c$var$feature('unicodeDecomposition', 'canonicalComposition'),\n cpct: $3b6302b64eccc32c$var$feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n valt: $3b6302b64eccc32c$var$feature('CJKVerticalRomanPlacement', 'CJKVerticalRomanCentered'),\n swsh: $3b6302b64eccc32c$var$feature('contextualAlternates', 'swashAlternates'),\n cswh: $3b6302b64eccc32c$var$feature('contextualAlternates', 'contextualSwashAlternates'),\n curs: $3b6302b64eccc32c$var$feature('cursiveConnection', 'cursive'),\n c2pc: $3b6302b64eccc32c$var$feature('upperCase', 'upperCasePetiteCaps'),\n c2sc: $3b6302b64eccc32c$var$feature('upperCase', 'upperCaseSmallCaps'),\n init: $3b6302b64eccc32c$var$feature('smartSwash', 'wordInitialSwashes'),\n fin2: $3b6302b64eccc32c$var$feature('smartSwash', 'wordFinalSwashes'),\n medi: $3b6302b64eccc32c$var$feature('smartSwash', 'nonFinalSwashes'),\n med2: $3b6302b64eccc32c$var$feature('smartSwash', 'nonFinalSwashes'),\n fin3: $3b6302b64eccc32c$var$feature('smartSwash', 'wordFinalSwashes'),\n fina: $3b6302b64eccc32c$var$feature('smartSwash', 'wordFinalSwashes'),\n pkna: $3b6302b64eccc32c$var$feature('kanaSpacing', 'proportionalKana'),\n half: $3b6302b64eccc32c$var$feature('textSpacing', 'halfWidthText'),\n halt: $3b6302b64eccc32c$var$feature('textSpacing', 'altHalfWidthText'),\n hkna: $3b6302b64eccc32c$var$feature('alternateKana', 'alternateHorizKana'),\n vkna: $3b6302b64eccc32c$var$feature('alternateKana', 'alternateVertKana'),\n // hngl: feature 'transliteration', 'hanjaToHangulSelector' # deprecated\n ital: $3b6302b64eccc32c$var$feature('italicCJKRoman', 'CJKItalicRoman'),\n lnum: $3b6302b64eccc32c$var$feature('numberCase', 'upperCaseNumbers'),\n onum: $3b6302b64eccc32c$var$feature('numberCase', 'lowerCaseNumbers'),\n mgrk: $3b6302b64eccc32c$var$feature('mathematicalExtras', 'mathematicalGreek'),\n // nalt: not enough info. what type of annotation?\n // ornm: ditto, which ornament style?\n calt: $3b6302b64eccc32c$var$feature('contextualAlternates', 'contextualAlternates'),\n vrt2: $3b6302b64eccc32c$var$feature('verticalSubstitution', 'substituteVerticalForms'),\n vert: $3b6302b64eccc32c$var$feature('verticalSubstitution', 'substituteVerticalForms'),\n tnum: $3b6302b64eccc32c$var$feature('numberSpacing', 'monospacedNumbers'),\n pnum: $3b6302b64eccc32c$var$feature('numberSpacing', 'proportionalNumbers'),\n sups: $3b6302b64eccc32c$var$feature('verticalPosition', 'superiors'),\n subs: $3b6302b64eccc32c$var$feature('verticalPosition', 'inferiors'),\n ordn: $3b6302b64eccc32c$var$feature('verticalPosition', 'ordinals'),\n pwid: $3b6302b64eccc32c$var$feature('textSpacing', 'proportionalText'),\n hwid: $3b6302b64eccc32c$var$feature('textSpacing', 'halfWidthText'),\n qwid: $3b6302b64eccc32c$var$feature('textSpacing', 'quarterWidthText'),\n twid: $3b6302b64eccc32c$var$feature('textSpacing', 'thirdWidthText'),\n fwid: $3b6302b64eccc32c$var$feature('textSpacing', 'proportionalText'),\n palt: $3b6302b64eccc32c$var$feature('textSpacing', 'altProportionalText'),\n trad: $3b6302b64eccc32c$var$feature('characterShape', 'traditionalCharacters'),\n smpl: $3b6302b64eccc32c$var$feature('characterShape', 'simplifiedCharacters'),\n jp78: $3b6302b64eccc32c$var$feature('characterShape', 'JIS1978Characters'),\n jp83: $3b6302b64eccc32c$var$feature('characterShape', 'JIS1983Characters'),\n jp90: $3b6302b64eccc32c$var$feature('characterShape', 'JIS1990Characters'),\n jp04: $3b6302b64eccc32c$var$feature('characterShape', 'JIS2004Characters'),\n expt: $3b6302b64eccc32c$var$feature('characterShape', 'expertCharacters'),\n hojo: $3b6302b64eccc32c$var$feature('characterShape', 'hojoCharacters'),\n nlck: $3b6302b64eccc32c$var$feature('characterShape', 'NLCCharacters'),\n tnam: $3b6302b64eccc32c$var$feature('characterShape', 'traditionalNamesCharacters'),\n ruby: $3b6302b64eccc32c$var$feature('rubyKana', 'rubyKana'),\n titl: $3b6302b64eccc32c$var$feature('styleOptions', 'titlingCaps'),\n zero: $3b6302b64eccc32c$var$feature('typographicExtras', 'slashedZero'),\n ss01: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltOne'),\n ss02: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTwo'),\n ss03: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltThree'),\n ss04: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFour'),\n ss05: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFive'),\n ss06: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSix'),\n ss07: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSeven'),\n ss08: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltEight'),\n ss09: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltNine'),\n ss10: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTen'),\n ss11: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltEleven'),\n ss12: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTwelve'),\n ss13: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltThirteen'),\n ss14: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFourteen'),\n ss15: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltFifteen'),\n ss16: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSixteen'),\n ss17: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltSeventeen'),\n ss18: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltEighteen'),\n ss19: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltNineteen'),\n ss20: $3b6302b64eccc32c$var$feature('stylisticAlternatives', 'stylisticAltTwenty')\n};\n// salt: feature 'stylisticAlternatives', 'stylisticAltOne' # hmm, which one to choose\n// Add cv01-cv99 features\nfor(let i = 1; i <= 99; i++)$3b6302b64eccc32c$var$OTMapping[`cv${`00${i}`.slice(-2)}`] = [\n $3b6302b64eccc32c$var$features.characterAlternatives.code,\n i\n];\n// create inverse mapping\nlet $3b6302b64eccc32c$var$AATMapping = {};\nfor(let ot in $3b6302b64eccc32c$var$OTMapping){\n let aat = $3b6302b64eccc32c$var$OTMapping[ot];\n if ($3b6302b64eccc32c$var$AATMapping[aat[0]] == null) $3b6302b64eccc32c$var$AATMapping[aat[0]] = {};\n $3b6302b64eccc32c$var$AATMapping[aat[0]][aat[1]] = ot;\n}\nfunction $3b6302b64eccc32c$export$b813f7d2a1677c16(features) {\n let res = {};\n for(let k in features){\n let r;\n if (r = $3b6302b64eccc32c$var$OTMapping[k]) {\n if (res[r[0]] == null) res[r[0]] = {};\n res[r[0]][r[1]] = features[k];\n }\n }\n return res;\n}\n// Maps strings in a [featureType, featureSetting]\n// to their equivalent number codes\nfunction $3b6302b64eccc32c$var$mapFeatureStrings(f) {\n let [type, setting] = f;\n if (isNaN(type)) var typeCode = $3b6302b64eccc32c$var$features[type] && $3b6302b64eccc32c$var$features[type].code;\n else var typeCode = type;\n if (isNaN(setting)) var settingCode = $3b6302b64eccc32c$var$features[type] && $3b6302b64eccc32c$var$features[type][setting];\n else var settingCode = setting;\n return [\n typeCode,\n settingCode\n ];\n}\nfunction $3b6302b64eccc32c$export$bd6df347a4f391c4(features) {\n let res = {};\n if (Array.isArray(features)) for(let k = 0; k < features.length; k++){\n let r;\n let f = $3b6302b64eccc32c$var$mapFeatureStrings(features[k]);\n if (r = $3b6302b64eccc32c$var$AATMapping[f[0]] && $3b6302b64eccc32c$var$AATMapping[f[0]][f[1]]) res[r] = true;\n }\n else if (typeof features === 'object') for(let type in features){\n let feature = features[type];\n for(let setting in feature){\n let r;\n let f = $3b6302b64eccc32c$var$mapFeatureStrings([\n type,\n setting\n ]);\n if (feature[setting] && (r = $3b6302b64eccc32c$var$AATMapping[f[0]] && $3b6302b64eccc32c$var$AATMapping[f[0]][f[1]])) res[r] = true;\n }\n }\n return Object.keys(res);\n}\n\n\n\n\n\n\n\nclass $ff5ce077dae0f144$export$2e2bcd8739ae039 {\n lookup(glyph) {\n switch(this.table.version){\n case 0:\n return this.table.values.getItem(glyph);\n case 2:\n case 4:\n {\n let min = 0;\n let max = this.table.binarySearchHeader.nUnits - 1;\n while(min <= max){\n var mid = min + max >> 1;\n var seg = this.table.segments[mid];\n // special end of search value\n if (seg.firstGlyph === 0xffff) return null;\n if (glyph < seg.firstGlyph) max = mid - 1;\n else if (glyph > seg.lastGlyph) min = mid + 1;\n else {\n if (this.table.version === 2) return seg.value;\n else return seg.values[glyph - seg.firstGlyph];\n }\n }\n return null;\n }\n case 6:\n {\n let min = 0;\n let max = this.table.binarySearchHeader.nUnits - 1;\n while(min <= max){\n var mid = min + max >> 1;\n var seg = this.table.segments[mid];\n // special end of search value\n if (seg.glyph === 0xffff) return null;\n if (glyph < seg.glyph) max = mid - 1;\n else if (glyph > seg.glyph) min = mid + 1;\n else return seg.value;\n }\n return null;\n }\n case 8:\n return this.table.values[glyph - this.table.firstGlyph];\n default:\n throw new Error(`Unknown lookup table format: ${this.table.version}`);\n }\n }\n glyphsForValue(classValue) {\n let res = [];\n switch(this.table.version){\n case 2:\n case 4:\n for (let segment of this.table.segments)if (this.table.version === 2 && segment.value === classValue) res.push(...(0, $12727730ddfc8bfe$export$d02631cccf789723)(segment.firstGlyph, segment.lastGlyph + 1));\n else {\n for(let index = 0; index < segment.values.length; index++)if (segment.values[index] === classValue) res.push(segment.firstGlyph + index);\n }\n break;\n case 6:\n for (let segment of this.table.segments)if (segment.value === classValue) res.push(segment.glyph);\n break;\n case 8:\n for(let i = 0; i < this.table.values.length; i++)if (this.table.values[i] === classValue) res.push(this.table.firstGlyph + i);\n break;\n default:\n throw new Error(`Unknown lookup table format: ${this.table.version}`);\n }\n return res;\n }\n constructor(table){\n this.table = table;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $ff5ce077dae0f144$export$2e2bcd8739ae039.prototype, \"glyphsForValue\", null);\n\n\nconst $50c7aac9316f2948$var$START_OF_TEXT_STATE = 0;\nconst $50c7aac9316f2948$var$START_OF_LINE_STATE = 1;\nconst $50c7aac9316f2948$var$END_OF_TEXT_CLASS = 0;\nconst $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS = 1;\nconst $50c7aac9316f2948$var$DELETED_GLYPH_CLASS = 2;\nconst $50c7aac9316f2948$var$END_OF_LINE_CLASS = 3;\nconst $50c7aac9316f2948$var$DONT_ADVANCE = 0x4000;\nclass $50c7aac9316f2948$export$2e2bcd8739ae039 {\n process(glyphs, reverse, processEntry) {\n let currentState = $50c7aac9316f2948$var$START_OF_TEXT_STATE; // START_OF_LINE_STATE is used for kashida glyph insertions sometimes I think?\n let index = reverse ? glyphs.length - 1 : 0;\n let dir = reverse ? -1 : 1;\n while(dir === 1 && index <= glyphs.length || dir === -1 && index >= -1){\n let glyph = null;\n let classCode = $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS;\n let shouldAdvance = true;\n if (index === glyphs.length || index === -1) classCode = $50c7aac9316f2948$var$END_OF_TEXT_CLASS;\n else {\n glyph = glyphs[index];\n if (glyph.id === 0xffff) classCode = $50c7aac9316f2948$var$DELETED_GLYPH_CLASS;\n else {\n classCode = this.lookupTable.lookup(glyph.id);\n if (classCode == null) classCode = $50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS;\n }\n }\n let row = this.stateTable.stateArray.getItem(currentState);\n let entryIndex = row[classCode];\n let entry = this.stateTable.entryTable.getItem(entryIndex);\n if (classCode !== $50c7aac9316f2948$var$END_OF_TEXT_CLASS && classCode !== $50c7aac9316f2948$var$DELETED_GLYPH_CLASS) {\n processEntry(glyph, entry, index);\n shouldAdvance = !(entry.flags & $50c7aac9316f2948$var$DONT_ADVANCE);\n }\n currentState = entry.newState;\n if (shouldAdvance) index += dir;\n }\n return glyphs;\n }\n /**\n * Performs a depth-first traversal of the glyph strings\n * represented by the state machine.\n */ traverse(opts, state = 0, visited = new Set) {\n if (visited.has(state)) return;\n visited.add(state);\n let { nClasses: nClasses, stateArray: stateArray, entryTable: entryTable } = this.stateTable;\n let row = stateArray.getItem(state);\n // Skip predefined classes\n for(let classCode = 4; classCode < nClasses; classCode++){\n let entryIndex = row[classCode];\n let entry = entryTable.getItem(entryIndex);\n // Try all glyphs in the class\n for (let glyph of this.lookupTable.glyphsForValue(classCode)){\n if (opts.enter) opts.enter(glyph, entry);\n if (entry.newState !== 0) this.traverse(opts, entry.newState, visited);\n if (opts.exit) opts.exit(glyph, entry);\n }\n }\n }\n constructor(stateTable){\n this.stateTable = stateTable;\n this.lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(stateTable.classTable);\n }\n}\n\n\n\n\n// indic replacement flags\nconst $55f71433a605c87d$var$MARK_FIRST = 0x8000;\nconst $55f71433a605c87d$var$MARK_LAST = 0x2000;\nconst $55f71433a605c87d$var$VERB = 0x000F;\n// contextual substitution and glyph insertion flag\nconst $55f71433a605c87d$var$SET_MARK = 0x8000;\n// ligature entry flags\nconst $55f71433a605c87d$var$SET_COMPONENT = 0x8000;\nconst $55f71433a605c87d$var$PERFORM_ACTION = 0x2000;\n// ligature action masks\nconst $55f71433a605c87d$var$LAST_MASK = 0x80000000;\nconst $55f71433a605c87d$var$STORE_MASK = 0x40000000;\nconst $55f71433a605c87d$var$OFFSET_MASK = 0x3FFFFFFF;\nconst $55f71433a605c87d$var$VERTICAL_ONLY = 0x800000;\nconst $55f71433a605c87d$var$REVERSE_DIRECTION = 0x400000;\nconst $55f71433a605c87d$var$HORIZONTAL_AND_VERTICAL = 0x200000;\n// glyph insertion flags\nconst $55f71433a605c87d$var$CURRENT_IS_KASHIDA_LIKE = 0x2000;\nconst $55f71433a605c87d$var$MARKED_IS_KASHIDA_LIKE = 0x1000;\nconst $55f71433a605c87d$var$CURRENT_INSERT_BEFORE = 0x0800;\nconst $55f71433a605c87d$var$MARKED_INSERT_BEFORE = 0x0400;\nconst $55f71433a605c87d$var$CURRENT_INSERT_COUNT = 0x03E0;\nconst $55f71433a605c87d$var$MARKED_INSERT_COUNT = 0x001F;\nclass $55f71433a605c87d$export$2e2bcd8739ae039 {\n // Processes an array of glyphs and applies the specified features\n // Features should be in the form of {featureType:{featureSetting:boolean}}\n process(glyphs, features = {}) {\n for (let chain of this.morx.chains){\n let flags = chain.defaultFlags;\n // enable/disable the requested features\n for (let feature of chain.features){\n let f;\n if (f = features[feature.featureType]) {\n if (f[feature.featureSetting]) {\n flags &= feature.disableFlags;\n flags |= feature.enableFlags;\n } else if (f[feature.featureSetting] === false) {\n flags |= ~feature.disableFlags;\n flags &= ~feature.enableFlags;\n }\n }\n }\n for (let subtable of chain.subtables)if (subtable.subFeatureFlags & flags) this.processSubtable(subtable, glyphs);\n }\n // remove deleted glyphs\n let index = glyphs.length - 1;\n while(index >= 0){\n if (glyphs[index].id === 0xffff) glyphs.splice(index, 1);\n index--;\n }\n return glyphs;\n }\n processSubtable(subtable, glyphs) {\n this.subtable = subtable;\n this.glyphs = glyphs;\n if (this.subtable.type === 4) {\n this.processNoncontextualSubstitutions(this.subtable, this.glyphs);\n return;\n }\n this.ligatureStack = [];\n this.markedGlyph = null;\n this.firstGlyph = null;\n this.lastGlyph = null;\n this.markedIndex = null;\n let stateMachine = this.getStateMachine(subtable);\n let process = this.getProcessor();\n let reverse = !!(this.subtable.coverage & $55f71433a605c87d$var$REVERSE_DIRECTION);\n return stateMachine.process(this.glyphs, reverse, process);\n }\n getStateMachine(subtable) {\n return new (0, $50c7aac9316f2948$export$2e2bcd8739ae039)(subtable.table.stateTable);\n }\n getProcessor() {\n switch(this.subtable.type){\n case 0:\n return this.processIndicRearragement;\n case 1:\n return this.processContextualSubstitution;\n case 2:\n return this.processLigature;\n case 4:\n return this.processNoncontextualSubstitutions;\n case 5:\n return this.processGlyphInsertion;\n default:\n throw new Error(`Invalid morx subtable type: ${this.subtable.type}`);\n }\n }\n processIndicRearragement(glyph, entry, index) {\n if (entry.flags & $55f71433a605c87d$var$MARK_FIRST) this.firstGlyph = index;\n if (entry.flags & $55f71433a605c87d$var$MARK_LAST) this.lastGlyph = index;\n $55f71433a605c87d$var$reorderGlyphs(this.glyphs, entry.flags & $55f71433a605c87d$var$VERB, this.firstGlyph, this.lastGlyph);\n }\n processContextualSubstitution(glyph, entry, index) {\n let subsitutions = this.subtable.table.substitutionTable.items;\n if (entry.markIndex !== 0xffff) {\n let lookup = subsitutions.getItem(entry.markIndex);\n let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(lookup);\n glyph = this.glyphs[this.markedGlyph];\n var gid = lookupTable.lookup(glyph.id);\n if (gid) this.glyphs[this.markedGlyph] = this.font.getGlyph(gid, glyph.codePoints);\n }\n if (entry.currentIndex !== 0xffff) {\n let lookup = subsitutions.getItem(entry.currentIndex);\n let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(lookup);\n glyph = this.glyphs[index];\n var gid = lookupTable.lookup(glyph.id);\n if (gid) this.glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n if (entry.flags & $55f71433a605c87d$var$SET_MARK) this.markedGlyph = index;\n }\n processLigature(glyph, entry, index) {\n if (entry.flags & $55f71433a605c87d$var$SET_COMPONENT) this.ligatureStack.push(index);\n if (entry.flags & $55f71433a605c87d$var$PERFORM_ACTION) {\n let actions = this.subtable.table.ligatureActions;\n let components = this.subtable.table.components;\n let ligatureList = this.subtable.table.ligatureList;\n let actionIndex = entry.action;\n let last = false;\n let ligatureIndex = 0;\n let codePoints = [];\n let ligatureGlyphs = [];\n while(!last){\n let componentGlyph = this.ligatureStack.pop();\n codePoints.unshift(...this.glyphs[componentGlyph].codePoints);\n let action = actions.getItem(actionIndex++);\n last = !!(action & $55f71433a605c87d$var$LAST_MASK);\n let store = !!(action & $55f71433a605c87d$var$STORE_MASK);\n let offset = (action & $55f71433a605c87d$var$OFFSET_MASK) << 2 >> 2; // sign extend 30 to 32 bits\n offset += this.glyphs[componentGlyph].id;\n let component = components.getItem(offset);\n ligatureIndex += component;\n if (last || store) {\n let ligatureEntry = ligatureList.getItem(ligatureIndex);\n this.glyphs[componentGlyph] = this.font.getGlyph(ligatureEntry, codePoints);\n ligatureGlyphs.push(componentGlyph);\n ligatureIndex = 0;\n codePoints = [];\n } else this.glyphs[componentGlyph] = this.font.getGlyph(0xffff);\n }\n // Put ligature glyph indexes back on the stack\n this.ligatureStack.push(...ligatureGlyphs);\n }\n }\n processNoncontextualSubstitutions(subtable, glyphs, index) {\n let lookupTable = new (0, $ff5ce077dae0f144$export$2e2bcd8739ae039)(subtable.table.lookupTable);\n for(index = 0; index < glyphs.length; index++){\n let glyph = glyphs[index];\n if (glyph.id !== 0xffff) {\n let gid = lookupTable.lookup(glyph.id);\n if (gid) glyphs[index] = this.font.getGlyph(gid, glyph.codePoints);\n }\n }\n }\n _insertGlyphs(glyphIndex, insertionActionIndex, count, isBefore) {\n let insertions = [];\n while(count--){\n let gid = this.subtable.table.insertionActions.getItem(insertionActionIndex++);\n insertions.push(this.font.getGlyph(gid));\n }\n if (!isBefore) glyphIndex++;\n this.glyphs.splice(glyphIndex, 0, ...insertions);\n }\n processGlyphInsertion(glyph, entry, index) {\n if (entry.flags & $55f71433a605c87d$var$SET_MARK) this.markedIndex = index;\n if (entry.markedInsertIndex !== 0xffff) {\n let count = (entry.flags & $55f71433a605c87d$var$MARKED_INSERT_COUNT) >>> 5;\n let isBefore = !!(entry.flags & $55f71433a605c87d$var$MARKED_INSERT_BEFORE);\n this._insertGlyphs(this.markedIndex, entry.markedInsertIndex, count, isBefore);\n }\n if (entry.currentInsertIndex !== 0xffff) {\n let count = (entry.flags & $55f71433a605c87d$var$CURRENT_INSERT_COUNT) >>> 5;\n let isBefore = !!(entry.flags & $55f71433a605c87d$var$CURRENT_INSERT_BEFORE);\n this._insertGlyphs(index, entry.currentInsertIndex, count, isBefore);\n }\n }\n getSupportedFeatures() {\n let features = [];\n for (let chain of this.morx.chains)for (let feature of chain.features)features.push([\n feature.featureType,\n feature.featureSetting\n ]);\n return features;\n }\n generateInputs(gid) {\n if (!this.inputCache) this.generateInputCache();\n return this.inputCache[gid] || [];\n }\n generateInputCache() {\n this.inputCache = {};\n for (let chain of this.morx.chains){\n let flags = chain.defaultFlags;\n for (let subtable of chain.subtables)if (subtable.subFeatureFlags & flags) this.generateInputsForSubtable(subtable);\n }\n }\n generateInputsForSubtable(subtable) {\n // Currently, only supporting ligature subtables.\n if (subtable.type !== 2) return;\n let reverse = !!(subtable.coverage & $55f71433a605c87d$var$REVERSE_DIRECTION);\n if (reverse) throw new Error('Reverse subtable, not supported.');\n this.subtable = subtable;\n this.ligatureStack = [];\n let stateMachine = this.getStateMachine(subtable);\n let process = this.getProcessor();\n let input = [];\n let stack = [];\n this.glyphs = [];\n stateMachine.traverse({\n enter: (glyph, entry)=>{\n let glyphs = this.glyphs;\n stack.push({\n glyphs: glyphs.slice(),\n ligatureStack: this.ligatureStack.slice()\n });\n // Add glyph to input and glyphs to process.\n let g = this.font.getGlyph(glyph);\n input.push(g);\n glyphs.push(input[input.length - 1]);\n // Process ligature substitution\n process(glyphs[glyphs.length - 1], entry, glyphs.length - 1);\n // Add input to result if only one matching (non-deleted) glyph remains.\n let count = 0;\n let found = 0;\n for(let i = 0; i < glyphs.length && count <= 1; i++)if (glyphs[i].id !== 0xffff) {\n count++;\n found = glyphs[i].id;\n }\n if (count === 1) {\n let result = input.map((g)=>g.id);\n let cache = this.inputCache[found];\n if (cache) cache.push(result);\n else this.inputCache[found] = [\n result\n ];\n }\n },\n exit: ()=>{\n ({ glyphs: this.glyphs, ligatureStack: this.ligatureStack } = stack.pop());\n input.pop();\n }\n });\n }\n constructor(font){\n this.processIndicRearragement = this.processIndicRearragement.bind(this);\n this.processContextualSubstitution = this.processContextualSubstitution.bind(this);\n this.processLigature = this.processLigature.bind(this);\n this.processNoncontextualSubstitutions = this.processNoncontextualSubstitutions.bind(this);\n this.processGlyphInsertion = this.processGlyphInsertion.bind(this);\n this.font = font;\n this.morx = font.morx;\n this.inputCache = null;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $55f71433a605c87d$export$2e2bcd8739ae039.prototype, \"getStateMachine\", null);\n// swaps the glyphs in rangeA with those in rangeB\n// reverse the glyphs inside those ranges if specified\n// ranges are in [offset, length] format\nfunction $55f71433a605c87d$var$swap(glyphs, rangeA, rangeB, reverseA = false, reverseB = false) {\n let end = glyphs.splice(rangeB[0] - (rangeB[1] - 1), rangeB[1]);\n if (reverseB) end.reverse();\n let start = glyphs.splice(rangeA[0], rangeA[1], ...end);\n if (reverseA) start.reverse();\n glyphs.splice(rangeB[0] - (rangeA[1] - 1), 0, ...start);\n return glyphs;\n}\nfunction $55f71433a605c87d$var$reorderGlyphs(glyphs, verb, firstGlyph, lastGlyph) {\n let length = lastGlyph - firstGlyph + 1;\n switch(verb){\n case 0:\n return glyphs;\n case 1:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 0\n ]);\n case 2:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 0\n ], [\n lastGlyph,\n 1\n ]);\n case 3:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 1\n ]);\n case 4:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 0\n ]);\n case 5:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 0\n ], true, false);\n case 6:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 0\n ], [\n lastGlyph,\n 2\n ]);\n case 7:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 0\n ], [\n lastGlyph,\n 2\n ], false, true);\n case 8:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 2\n ]);\n case 9:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 1\n ], [\n lastGlyph,\n 2\n ], false, true);\n case 10:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 1\n ]);\n case 11:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 1\n ], true, false);\n case 12:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ]);\n case 13:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ], true, false);\n case 14:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ], false, true);\n case 15:\n return $55f71433a605c87d$var$swap(glyphs, [\n firstGlyph,\n 2\n ], [\n lastGlyph,\n 2\n ], true, true);\n default:\n throw new Error(`Unknown verb: ${verb}`);\n }\n}\n\n\nclass $ba6dd74203be8728$export$2e2bcd8739ae039 {\n substitute(glyphRun) {\n // AAT expects the glyphs to be in visual order prior to morx processing,\n // so reverse the glyphs if the script is right-to-left.\n if (glyphRun.direction === 'rtl') glyphRun.glyphs.reverse();\n this.morxProcessor.process(glyphRun.glyphs, $3b6302b64eccc32c$export$b813f7d2a1677c16(glyphRun.features));\n }\n getAvailableFeatures(script, language) {\n return $3b6302b64eccc32c$export$bd6df347a4f391c4(this.morxProcessor.getSupportedFeatures());\n }\n stringsForGlyph(gid) {\n let glyphStrings = this.morxProcessor.generateInputs(gid);\n let result = new Set;\n for (let glyphs of glyphStrings)this._addStrings(glyphs, 0, result, '');\n return result;\n }\n _addStrings(glyphs, index, strings, string) {\n let codePoints = this.font._cmapProcessor.codePointsForGlyph(glyphs[index]);\n for (let codePoint of codePoints){\n let s = string + String.fromCodePoint(codePoint);\n if (index < glyphs.length - 1) this._addStrings(glyphs, index + 1, strings, s);\n else strings.add(s);\n }\n }\n constructor(font){\n this.font = font;\n this.morxProcessor = new (0, $55f71433a605c87d$export$2e2bcd8739ae039)(font);\n this.fallbackPosition = false;\n }\n}\n\n\n\nclass $94d7a73bd2edfc9a$export$2e2bcd8739ae039 {\n /**\n * Adds the given features to the last stage.\n * Ignores features that have already been applied.\n */ _addFeatures(features, global) {\n let stageIndex = this.stages.length - 1;\n let stage = this.stages[stageIndex];\n for (let feature of features)if (this.allFeatures[feature] == null) {\n stage.push(feature);\n this.allFeatures[feature] = stageIndex;\n if (global) this.globalFeatures[feature] = true;\n }\n }\n /**\n * Add features to the last stage\n */ add(arg, global = true) {\n if (this.stages.length === 0) this.stages.push([]);\n if (typeof arg === 'string') arg = [\n arg\n ];\n if (Array.isArray(arg)) this._addFeatures(arg, global);\n else if (typeof arg === 'object') {\n this._addFeatures(arg.global || [], true);\n this._addFeatures(arg.local || [], false);\n } else throw new Error(\"Unsupported argument to ShapingPlan#add\");\n }\n /**\n * Add a new stage\n */ addStage(arg, global) {\n if (typeof arg === 'function') this.stages.push(arg, []);\n else {\n this.stages.push([]);\n this.add(arg, global);\n }\n }\n setFeatureOverrides(features) {\n if (Array.isArray(features)) this.add(features);\n else if (typeof features === 'object') for(let tag in features){\n if (features[tag]) this.add(tag);\n else if (this.allFeatures[tag] != null) {\n let stage = this.stages[this.allFeatures[tag]];\n stage.splice(stage.indexOf(tag), 1);\n delete this.allFeatures[tag];\n delete this.globalFeatures[tag];\n }\n }\n }\n /**\n * Assigns the global features to the given glyphs\n */ assignGlobalFeatures(glyphs) {\n for (let glyph of glyphs)for(let feature in this.globalFeatures)glyph.features[feature] = true;\n }\n /**\n * Executes the planned stages using the given OTProcessor\n */ process(processor, glyphs, positions) {\n for (let stage of this.stages){\n if (typeof stage === 'function') {\n if (!positions) stage(this.font, glyphs, this);\n } else if (stage.length > 0) processor.applyFeatures(stage, glyphs, positions);\n }\n }\n constructor(font, script, direction){\n this.font = font;\n this.script = script;\n this.direction = direction;\n this.stages = [];\n this.globalFeatures = {};\n this.allFeatures = {};\n }\n}\n\n\n\n\nconst $649970d87335b30f$var$VARIATION_FEATURES = [\n 'rvrn'\n];\nconst $649970d87335b30f$var$COMMON_FEATURES = [\n 'ccmp',\n 'locl',\n 'rlig',\n 'mark',\n 'mkmk'\n];\nconst $649970d87335b30f$var$FRACTIONAL_FEATURES = [\n 'frac',\n 'numr',\n 'dnom'\n];\nconst $649970d87335b30f$var$HORIZONTAL_FEATURES = [\n 'calt',\n 'clig',\n 'liga',\n 'rclt',\n 'curs',\n 'kern'\n];\nconst $649970d87335b30f$var$VERTICAL_FEATURES = [\n 'vert'\n];\nconst $649970d87335b30f$var$DIRECTIONAL_FEATURES = {\n ltr: [\n 'ltra',\n 'ltrm'\n ],\n rtl: [\n 'rtla',\n 'rtlm'\n ]\n};\nclass $649970d87335b30f$export$2e2bcd8739ae039 {\n static plan(plan, glyphs, features) {\n // Plan the features we want to apply\n this.planPreprocessing(plan);\n this.planFeatures(plan);\n this.planPostprocessing(plan, features);\n // Assign the global features to all the glyphs\n plan.assignGlobalFeatures(glyphs);\n // Assign local features to glyphs\n this.assignFeatures(plan, glyphs);\n }\n static planPreprocessing(plan) {\n plan.add({\n global: [\n ...$649970d87335b30f$var$VARIATION_FEATURES,\n ...$649970d87335b30f$var$DIRECTIONAL_FEATURES[plan.direction]\n ],\n local: $649970d87335b30f$var$FRACTIONAL_FEATURES\n });\n }\n static planFeatures(plan) {\n // Do nothing by default. Let subclasses override this.\n }\n static planPostprocessing(plan, userFeatures) {\n plan.add([\n ...$649970d87335b30f$var$COMMON_FEATURES,\n ...$649970d87335b30f$var$HORIZONTAL_FEATURES\n ]);\n plan.setFeatureOverrides(userFeatures);\n }\n static assignFeatures(plan, glyphs) {\n // Enable contextual fractions\n for(let i = 0; i < glyphs.length; i++){\n let glyph = glyphs[i];\n if (glyph.codePoints[0] === 0x2044) {\n let start = i;\n let end = i + 1;\n // Apply numerator\n while(start > 0 && (0, $6uUbQ$isDigit)(glyphs[start - 1].codePoints[0])){\n glyphs[start - 1].features.numr = true;\n glyphs[start - 1].features.frac = true;\n start--;\n }\n // Apply denominator\n while(end < glyphs.length && (0, $6uUbQ$isDigit)(glyphs[end].codePoints[0])){\n glyphs[end].features.dnom = true;\n glyphs[end].features.frac = true;\n end++;\n }\n // Apply fraction slash\n glyph.features.frac = true;\n i = end - 1;\n }\n }\n }\n}\n(0, $6uUbQ$_)($649970d87335b30f$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'AFTER_GPOS');\n\n\n\n\n\n\nconst $764eb544bbe1ccf0$var$trie = new (0, $6uUbQ$unicodetrie)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)(\"APABAAAAAAAAOAAAAf0BAv7tmi1MxDAUx7vtvjhAgcDgkEgEAnmXEBIMCYaEcygEiqBQ4FAkCE4ikUgMiiBJSAgSiUQSDMn9L9eSl6bddddug9t7yS/trevre+3r27pcNxZiG+yCfdCVv/9LeQxOwRm4AJegD27ALbgD9+ABPJF+z+BN/h7yDj5k/VOWX6SdmU5+wLWknggxDxaS8u0qiiX4uiz9XamQ3wzDMAzDMAzDMAzDVI/h959V/v7BMAzDMAzDMLlyNTNiMSdewVxbiA44B4/guz1qW58VYlMI0WsJ0W+N6kXw0spvPtdwhtkwnGM6uLaV4Xyzg3v3PM9DPfQ/sOg4xPWjipy31P8LTqbU304c/cLCUmWJLNB2Uz2U1KTeRKNmKHVMfbJC+/0loTZRH/W5cvEvBJPMbREkWt3FD1NcqXZBSpuE2Ad0PBehPtNrPtIEdYP+hiRt/V1jIiE69X4NT/uVZI3PUHE9bm5M7ePGdZWy951v7Nn6j8v1WWKP3mt6ttnsigx6VN7Vc0VomSSGqW2mGNP1muZPl7LfjNUaKNFtDGVf2fvE9O7VlBS5j333c5p/eeoOqcs1R/hIqDWLJ7TTlksirVT1SI7l8k4Yp+g3jafGcrU1RM6l9th80XOpnlN97bDNY4i4s61B0Si/ipa0uHMl6zqEjlFfCZm/TM8KmzQDjmuTAQ==\"));\nconst $764eb544bbe1ccf0$var$FEATURES = [\n 'isol',\n 'fina',\n 'fin2',\n 'fin3',\n 'medi',\n 'med2',\n 'init'\n];\nconst $764eb544bbe1ccf0$var$ShapingClasses = {\n Non_Joining: 0,\n Left_Joining: 1,\n Right_Joining: 2,\n Dual_Joining: 3,\n Join_Causing: 3,\n ALAPH: 4,\n 'DALATH RISH': 5,\n Transparent: 6\n};\nconst $764eb544bbe1ccf0$var$ISOL = 'isol';\nconst $764eb544bbe1ccf0$var$FINA = 'fina';\nconst $764eb544bbe1ccf0$var$FIN2 = 'fin2';\nconst $764eb544bbe1ccf0$var$FIN3 = 'fin3';\nconst $764eb544bbe1ccf0$var$MEDI = 'medi';\nconst $764eb544bbe1ccf0$var$MED2 = 'med2';\nconst $764eb544bbe1ccf0$var$INIT = 'init';\nconst $764eb544bbe1ccf0$var$NONE = null;\n// Each entry is [prevAction, curAction, nextState]\nconst $764eb544bbe1ccf0$var$STATE_TABLE = [\n // Non_Joining, Left_Joining, Right_Joining, Dual_Joining, ALAPH, DALATH RISH\n // State 0: prev was U, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 1: prev was R or ISOL/ALAPH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$FIN2,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 2: prev was D/L in ISOL form, willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 3\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 4\n ],\n [\n $764eb544bbe1ccf0$var$INIT,\n $764eb544bbe1ccf0$var$FINA,\n 6\n ]\n ],\n // State 3: prev was D in FINA form, willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 3\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 4\n ],\n [\n $764eb544bbe1ccf0$var$MEDI,\n $764eb544bbe1ccf0$var$FINA,\n 6\n ]\n ],\n // State 4: prev was FINA ALAPH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$FIN2,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$MED2,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 5: prev was FIN2/FIN3 ALAPH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$FIN2,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$ISOL,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ],\n // State 6: prev was DALATH/RISH, not willing to join.\n [\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$NONE,\n 0\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 1\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 2\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$FIN3,\n 5\n ],\n [\n $764eb544bbe1ccf0$var$NONE,\n $764eb544bbe1ccf0$var$ISOL,\n 6\n ]\n ]\n];\nclass $764eb544bbe1ccf0$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.add([\n 'ccmp',\n 'locl'\n ]);\n for(let i = 0; i < $764eb544bbe1ccf0$var$FEATURES.length; i++){\n let feature = $764eb544bbe1ccf0$var$FEATURES[i];\n plan.addStage(feature, false);\n }\n plan.addStage('mset');\n }\n static assignFeatures(plan, glyphs) {\n super.assignFeatures(plan, glyphs);\n let prev = -1;\n let state = 0;\n let actions = [];\n // Apply the state machine to map glyphs to features\n for(let i = 0; i < glyphs.length; i++){\n let curAction, prevAction;\n var glyph = glyphs[i];\n let type = $764eb544bbe1ccf0$var$getShapingClass(glyph.codePoints[0]);\n if (type === $764eb544bbe1ccf0$var$ShapingClasses.Transparent) {\n actions[i] = $764eb544bbe1ccf0$var$NONE;\n continue;\n }\n [prevAction, curAction, state] = $764eb544bbe1ccf0$var$STATE_TABLE[state][type];\n if (prevAction !== $764eb544bbe1ccf0$var$NONE && prev !== -1) actions[prev] = prevAction;\n actions[i] = curAction;\n prev = i;\n }\n // Apply the chosen features to their respective glyphs\n for(let index = 0; index < glyphs.length; index++){\n let feature;\n var glyph = glyphs[index];\n if (feature = actions[index]) glyph.features[feature] = true;\n }\n }\n}\nfunction $764eb544bbe1ccf0$var$getShapingClass(codePoint) {\n let res = $764eb544bbe1ccf0$var$trie.get(codePoint);\n if (res) return res - 1;\n let category = (0, $6uUbQ$getCategory)(codePoint);\n if (category === 'Mn' || category === 'Me' || category === 'Cf') return $764eb544bbe1ccf0$var$ShapingClasses.Transparent;\n return $764eb544bbe1ccf0$var$ShapingClasses.Non_Joining;\n}\n\n\n\n\n\nclass $85d408632270248b$export$2e2bcd8739ae039 {\n reset(options = {}, index = 0) {\n this.options = options;\n this.flags = options.flags || {};\n this.markAttachmentType = options.markAttachmentType || 0;\n this.index = index;\n }\n get cur() {\n return this.glyphs[this.index] || null;\n }\n shouldIgnore(glyph) {\n return this.flags.ignoreMarks && glyph.isMark || this.flags.ignoreBaseGlyphs && glyph.isBase || this.flags.ignoreLigatures && glyph.isLigature || this.markAttachmentType && glyph.isMark && glyph.markAttachmentType !== this.markAttachmentType;\n }\n move(dir) {\n this.index += dir;\n while(0 <= this.index && this.index < this.glyphs.length && this.shouldIgnore(this.glyphs[this.index]))this.index += dir;\n if (0 > this.index || this.index >= this.glyphs.length) return null;\n return this.glyphs[this.index];\n }\n next() {\n return this.move(1);\n }\n prev() {\n return this.move(-1);\n }\n peek(count = 1) {\n let idx = this.index;\n let res = this.increment(count);\n this.index = idx;\n return res;\n }\n peekIndex(count = 1) {\n let idx = this.index;\n this.increment(count);\n let res = this.index;\n this.index = idx;\n return res;\n }\n increment(count = 1) {\n let dir = count < 0 ? -1 : 1;\n count = Math.abs(count);\n while(count--)this.move(dir);\n return this.glyphs[this.index];\n }\n constructor(glyphs, options){\n this.glyphs = glyphs;\n this.reset(options);\n }\n}\n\n\n\nconst $a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS = [\n 'DFLT',\n 'dflt',\n 'latn'\n];\nclass $a83b9c36aaa94fd3$export$2e2bcd8739ae039 {\n findScript(script) {\n if (this.table.scriptList == null) return null;\n if (!Array.isArray(script)) script = [\n script\n ];\n for (let s of script)for (let entry of this.table.scriptList){\n if (entry.tag === s) return entry;\n }\n return null;\n }\n selectScript(script, language, direction) {\n let changed = false;\n let entry;\n if (!this.script || script !== this.scriptTag) {\n entry = this.findScript(script);\n if (!entry) entry = this.findScript($a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS);\n if (!entry) return this.scriptTag;\n this.scriptTag = entry.tag;\n this.script = entry.script;\n this.language = null;\n this.languageTag = null;\n changed = true;\n }\n if (!direction || direction !== this.direction) this.direction = direction || $130d1a642ebcd2b7$export$9fddb9d0dd7d8a54(script);\n if (language && language.length < 4) language += ' '.repeat(4 - language.length);\n if (!language || language !== this.languageTag) {\n this.language = null;\n for (let lang of this.script.langSysRecords)if (lang.tag === language) {\n this.language = lang.langSys;\n this.languageTag = lang.tag;\n break;\n }\n if (!this.language) {\n this.language = this.script.defaultLangSys;\n this.languageTag = null;\n }\n changed = true;\n }\n // Build a feature lookup table\n if (changed) {\n this.features = {};\n if (this.language) for (let featureIndex of this.language.featureIndexes){\n let record = this.table.featureList[featureIndex];\n let substituteFeature = this.substituteFeatureForVariations(featureIndex);\n this.features[record.tag] = substituteFeature || record.feature;\n }\n }\n return this.scriptTag;\n }\n lookupsForFeatures(userFeatures = [], exclude) {\n let lookups = [];\n for (let tag of userFeatures){\n let feature = this.features[tag];\n if (!feature) continue;\n for (let lookupIndex of feature.lookupListIndexes){\n if (exclude && exclude.indexOf(lookupIndex) !== -1) continue;\n lookups.push({\n feature: tag,\n index: lookupIndex,\n lookup: this.table.lookupList.get(lookupIndex)\n });\n }\n }\n lookups.sort((a, b)=>a.index - b.index);\n return lookups;\n }\n substituteFeatureForVariations(featureIndex) {\n if (this.variationsIndex === -1) return null;\n let record = this.table.featureVariations.featureVariationRecords[this.variationsIndex];\n let substitutions = record.featureTableSubstitution.substitutions;\n for (let substitution of substitutions){\n if (substitution.featureIndex === featureIndex) return substitution.alternateFeatureTable;\n }\n return null;\n }\n findVariationsIndex(coords) {\n let variations = this.table.featureVariations;\n if (!variations) return -1;\n let records = variations.featureVariationRecords;\n for(let i = 0; i < records.length; i++){\n let conditions = records[i].conditionSet.conditionTable;\n if (this.variationConditionsMatch(conditions, coords)) return i;\n }\n return -1;\n }\n variationConditionsMatch(conditions, coords) {\n return conditions.every((condition)=>{\n let coord = condition.axisIndex < coords.length ? coords[condition.axisIndex] : 0;\n return condition.filterRangeMinValue <= coord && coord <= condition.filterRangeMaxValue;\n });\n }\n applyFeatures(userFeatures, glyphs, advances) {\n let lookups = this.lookupsForFeatures(userFeatures);\n this.applyLookups(lookups, glyphs, advances);\n }\n applyLookups(lookups, glyphs, positions) {\n this.glyphs = glyphs;\n this.positions = positions;\n this.glyphIterator = new (0, $85d408632270248b$export$2e2bcd8739ae039)(glyphs);\n for (let { feature: feature, lookup: lookup } of lookups){\n this.currentFeature = feature;\n this.glyphIterator.reset(lookup.flags);\n while(this.glyphIterator.index < glyphs.length){\n if (!(feature in this.glyphIterator.cur.features)) {\n this.glyphIterator.next();\n continue;\n }\n for (let table of lookup.subTables){\n let res = this.applyLookup(lookup.lookupType, table);\n if (res) break;\n }\n this.glyphIterator.next();\n }\n }\n }\n applyLookup(lookup, table) {\n throw new Error(\"applyLookup must be implemented by subclasses\");\n }\n applyLookupList(lookupRecords) {\n let options = this.glyphIterator.options;\n let glyphIndex = this.glyphIterator.index;\n for (let lookupRecord of lookupRecords){\n // Reset flags and find glyph index for this lookup record\n this.glyphIterator.reset(options, glyphIndex);\n this.glyphIterator.increment(lookupRecord.sequenceIndex);\n // Get the lookup and setup flags for subtables\n let lookup = this.table.lookupList.get(lookupRecord.lookupListIndex);\n this.glyphIterator.reset(lookup.flags, this.glyphIterator.index);\n // Apply lookup subtables until one matches\n for (let table of lookup.subTables){\n if (this.applyLookup(lookup.lookupType, table)) break;\n }\n }\n this.glyphIterator.reset(options, glyphIndex);\n return true;\n }\n coverageIndex(coverage, glyph) {\n if (glyph == null) glyph = this.glyphIterator.cur.id;\n switch(coverage.version){\n case 1:\n return coverage.glyphs.indexOf(glyph);\n case 2:\n for (let range of coverage.rangeRecords){\n if (range.start <= glyph && glyph <= range.end) return range.startCoverageIndex + glyph - range.start;\n }\n break;\n }\n return -1;\n }\n match(sequenceIndex, sequence, fn, matched) {\n let pos = this.glyphIterator.index;\n let glyph = this.glyphIterator.increment(sequenceIndex);\n let idx = 0;\n while(idx < sequence.length && glyph && fn(sequence[idx], glyph)){\n if (matched) matched.push(this.glyphIterator.index);\n idx++;\n glyph = this.glyphIterator.next();\n }\n this.glyphIterator.index = pos;\n if (idx < sequence.length) return false;\n return matched || true;\n }\n sequenceMatches(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (component, glyph)=>component === glyph.id);\n }\n sequenceMatchIndices(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (component, glyph)=>{\n // If the current feature doesn't apply to this glyph,\n if (!(this.currentFeature in glyph.features)) return false;\n return component === glyph.id;\n }, []);\n }\n coverageSequenceMatches(sequenceIndex, sequence) {\n return this.match(sequenceIndex, sequence, (coverage, glyph)=>this.coverageIndex(coverage, glyph.id) >= 0);\n }\n getClassID(glyph, classDef) {\n switch(classDef.version){\n case 1:\n let i = glyph - classDef.startGlyph;\n if (i >= 0 && i < classDef.classValueArray.length) return classDef.classValueArray[i];\n break;\n case 2:\n for (let range of classDef.classRangeRecord){\n if (range.start <= glyph && glyph <= range.end) return range.class;\n }\n break;\n }\n return 0;\n }\n classSequenceMatches(sequenceIndex, sequence, classDef) {\n return this.match(sequenceIndex, sequence, (classID, glyph)=>classID === this.getClassID(glyph.id, classDef));\n }\n applyContext(table) {\n let index, set;\n switch(table.version){\n case 1:\n index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n set = table.ruleSets[index];\n for (let rule of set){\n if (this.sequenceMatches(1, rule.input)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 2:\n if (this.coverageIndex(table.coverage) === -1) return false;\n index = this.getClassID(this.glyphIterator.cur.id, table.classDef);\n if (index === -1) return false;\n set = table.classSet[index];\n for (let rule of set){\n if (this.classSequenceMatches(1, rule.classes, table.classDef)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 3:\n if (this.coverageSequenceMatches(0, table.coverages)) return this.applyLookupList(table.lookupRecords);\n break;\n }\n return false;\n }\n applyChainingContext(table) {\n let index;\n switch(table.version){\n case 1:\n index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n let set = table.chainRuleSets[index];\n for (let rule of set){\n if (this.sequenceMatches(-rule.backtrack.length, rule.backtrack) && this.sequenceMatches(1, rule.input) && this.sequenceMatches(1 + rule.input.length, rule.lookahead)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 2:\n if (this.coverageIndex(table.coverage) === -1) return false;\n index = this.getClassID(this.glyphIterator.cur.id, table.inputClassDef);\n let rules = table.chainClassSet[index];\n if (!rules) return false;\n for (let rule of rules){\n if (this.classSequenceMatches(-rule.backtrack.length, rule.backtrack, table.backtrackClassDef) && this.classSequenceMatches(1, rule.input, table.inputClassDef) && this.classSequenceMatches(1 + rule.input.length, rule.lookahead, table.lookaheadClassDef)) return this.applyLookupList(rule.lookupRecords);\n }\n break;\n case 3:\n if (this.coverageSequenceMatches(-table.backtrackGlyphCount, table.backtrackCoverage) && this.coverageSequenceMatches(0, table.inputCoverage) && this.coverageSequenceMatches(table.inputGlyphCount, table.lookaheadCoverage)) return this.applyLookupList(table.lookupRecords);\n break;\n }\n return false;\n }\n constructor(font, table){\n this.font = font;\n this.table = table;\n this.script = null;\n this.scriptTag = null;\n this.language = null;\n this.languageTag = null;\n this.features = {};\n this.lookups = {};\n // Setup variation substitutions\n this.variationsIndex = font._variationProcessor ? this.findVariationsIndex(font._variationProcessor.normalizedCoords) : -1;\n // initialize to default script + language\n this.selectScript();\n // current context (set by applyFeatures)\n this.glyphs = [];\n this.positions = []; // only used by GPOS\n this.ligatureID = 1;\n this.currentFeature = null;\n }\n}\n\n\nclass $10e7b257e1a9a756$export$2e2bcd8739ae039 {\n get id() {\n return this._id;\n }\n set id(id) {\n this._id = id;\n this.substituted = true;\n let GDEF = this._font.GDEF;\n if (GDEF && GDEF.glyphClassDef) {\n // TODO: clean this up\n let classID = (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039).prototype.getClassID(id, GDEF.glyphClassDef);\n this.isBase = classID === 1;\n this.isLigature = classID === 2;\n this.isMark = classID === 3;\n this.markAttachmentType = GDEF.markAttachClassDef ? (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039).prototype.getClassID(id, GDEF.markAttachClassDef) : 0;\n } else {\n this.isMark = this.codePoints.length > 0 && this.codePoints.every((0, $6uUbQ$isMark));\n this.isBase = !this.isMark;\n this.isLigature = this.codePoints.length > 1;\n this.markAttachmentType = 0;\n }\n }\n copy() {\n return new $10e7b257e1a9a756$export$2e2bcd8739ae039(this._font, this.id, this.codePoints, this.features);\n }\n constructor(font, id, codePoints = [], features){\n this._font = font;\n this.codePoints = codePoints;\n this.id = id;\n this.features = {};\n if (Array.isArray(features)) for(let i = 0; i < features.length; i++){\n let feature = features[i];\n this.features[feature] = true;\n }\n else if (typeof features === 'object') Object.assign(this.features, features);\n this.ligatureID = null;\n this.ligatureComponent = null;\n this.isLigated = false;\n this.cursiveAttachment = null;\n this.markAttachment = null;\n this.shaperInfo = null;\n this.substituted = false;\n this.isMultiplied = false;\n }\n}\n\n\nclass $e1c6bbc8cb416f8c$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.add([\n 'ljmo',\n 'vjmo',\n 'tjmo'\n ], false);\n }\n static assignFeatures(plan, glyphs) {\n let state = 0;\n let i = 0;\n while(i < glyphs.length){\n let action;\n let glyph = glyphs[i];\n let code = glyph.codePoints[0];\n let type = $e1c6bbc8cb416f8c$var$getType(code);\n [action, state] = $e1c6bbc8cb416f8c$var$STATE_TABLE[state][type];\n switch(action){\n case $e1c6bbc8cb416f8c$var$DECOMPOSE:\n // Decompose the composed syllable if it is not supported by the font.\n if (!plan.font.hasGlyphForCodePoint(code)) i = $e1c6bbc8cb416f8c$var$decompose(glyphs, i, plan.font);\n break;\n case $e1c6bbc8cb416f8c$var$COMPOSE:\n // Found a decomposed syllable. Try to compose if supported by the font.\n i = $e1c6bbc8cb416f8c$var$compose(glyphs, i, plan.font);\n break;\n case $e1c6bbc8cb416f8c$var$TONE_MARK:\n // Got a valid syllable, followed by a tone mark. Move the tone mark to the beginning of the syllable.\n $e1c6bbc8cb416f8c$var$reorderToneMark(glyphs, i, plan.font);\n break;\n case $e1c6bbc8cb416f8c$var$INVALID:\n // Tone mark has no valid syllable to attach to, so insert a dotted circle\n i = $e1c6bbc8cb416f8c$var$insertDottedCircle(glyphs, i, plan.font);\n break;\n }\n i++;\n }\n }\n}\n(0, $6uUbQ$_)($e1c6bbc8cb416f8c$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'NONE');\nconst $e1c6bbc8cb416f8c$var$HANGUL_BASE = 0xac00;\nconst $e1c6bbc8cb416f8c$var$HANGUL_END = 0xd7a4;\nconst $e1c6bbc8cb416f8c$var$HANGUL_COUNT = $e1c6bbc8cb416f8c$var$HANGUL_END - $e1c6bbc8cb416f8c$var$HANGUL_BASE + 1;\nconst $e1c6bbc8cb416f8c$var$L_BASE = 0x1100; // lead\nconst $e1c6bbc8cb416f8c$var$V_BASE = 0x1161; // vowel\nconst $e1c6bbc8cb416f8c$var$T_BASE = 0x11a7; // trail\nconst $e1c6bbc8cb416f8c$var$L_COUNT = 19;\nconst $e1c6bbc8cb416f8c$var$V_COUNT = 21;\nconst $e1c6bbc8cb416f8c$var$T_COUNT = 28;\nconst $e1c6bbc8cb416f8c$var$L_END = $e1c6bbc8cb416f8c$var$L_BASE + $e1c6bbc8cb416f8c$var$L_COUNT - 1;\nconst $e1c6bbc8cb416f8c$var$V_END = $e1c6bbc8cb416f8c$var$V_BASE + $e1c6bbc8cb416f8c$var$V_COUNT - 1;\nconst $e1c6bbc8cb416f8c$var$T_END = $e1c6bbc8cb416f8c$var$T_BASE + $e1c6bbc8cb416f8c$var$T_COUNT - 1;\nconst $e1c6bbc8cb416f8c$var$DOTTED_CIRCLE = 0x25cc;\nconst $e1c6bbc8cb416f8c$var$isL = (code)=>0x1100 <= code && code <= 0x115f || 0xa960 <= code && code <= 0xa97c;\nconst $e1c6bbc8cb416f8c$var$isV = (code)=>0x1160 <= code && code <= 0x11a7 || 0xd7b0 <= code && code <= 0xd7c6;\nconst $e1c6bbc8cb416f8c$var$isT = (code)=>0x11a8 <= code && code <= 0x11ff || 0xd7cb <= code && code <= 0xd7fb;\nconst $e1c6bbc8cb416f8c$var$isTone = (code)=>0x302e <= code && code <= 0x302f;\nconst $e1c6bbc8cb416f8c$var$isLVT = (code)=>$e1c6bbc8cb416f8c$var$HANGUL_BASE <= code && code <= $e1c6bbc8cb416f8c$var$HANGUL_END;\nconst $e1c6bbc8cb416f8c$var$isLV = (code)=>code - $e1c6bbc8cb416f8c$var$HANGUL_BASE < $e1c6bbc8cb416f8c$var$HANGUL_COUNT && (code - $e1c6bbc8cb416f8c$var$HANGUL_BASE) % $e1c6bbc8cb416f8c$var$T_COUNT === 0;\nconst $e1c6bbc8cb416f8c$var$isCombiningL = (code)=>$e1c6bbc8cb416f8c$var$L_BASE <= code && code <= $e1c6bbc8cb416f8c$var$L_END;\nconst $e1c6bbc8cb416f8c$var$isCombiningV = (code)=>$e1c6bbc8cb416f8c$var$V_BASE <= code && code <= $e1c6bbc8cb416f8c$var$V_END;\nconst $e1c6bbc8cb416f8c$var$isCombiningT = (code)=>$e1c6bbc8cb416f8c$var$T_BASE + 1 && 1 <= code && code <= $e1c6bbc8cb416f8c$var$T_END;\n// Character categories\nconst $e1c6bbc8cb416f8c$var$X = 0; // Other character\nconst $e1c6bbc8cb416f8c$var$L = 1; // Leading consonant\nconst $e1c6bbc8cb416f8c$var$V = 2; // Medial vowel\nconst $e1c6bbc8cb416f8c$var$T = 3; // Trailing consonant\nconst $e1c6bbc8cb416f8c$var$LV = 4; // Composed <LV> syllable\nconst $e1c6bbc8cb416f8c$var$LVT = 5; // Composed <LVT> syllable\nconst $e1c6bbc8cb416f8c$var$M = 6; // Tone mark\n// This function classifies a character using the above categories.\nfunction $e1c6bbc8cb416f8c$var$getType(code) {\n if ($e1c6bbc8cb416f8c$var$isL(code)) return $e1c6bbc8cb416f8c$var$L;\n if ($e1c6bbc8cb416f8c$var$isV(code)) return $e1c6bbc8cb416f8c$var$V;\n if ($e1c6bbc8cb416f8c$var$isT(code)) return $e1c6bbc8cb416f8c$var$T;\n if ($e1c6bbc8cb416f8c$var$isLV(code)) return $e1c6bbc8cb416f8c$var$LV;\n if ($e1c6bbc8cb416f8c$var$isLVT(code)) return $e1c6bbc8cb416f8c$var$LVT;\n if ($e1c6bbc8cb416f8c$var$isTone(code)) return $e1c6bbc8cb416f8c$var$M;\n return $e1c6bbc8cb416f8c$var$X;\n}\n// State machine actions\nconst $e1c6bbc8cb416f8c$var$NO_ACTION = 0;\nconst $e1c6bbc8cb416f8c$var$DECOMPOSE = 1;\nconst $e1c6bbc8cb416f8c$var$COMPOSE = 2;\nconst $e1c6bbc8cb416f8c$var$TONE_MARK = 4;\nconst $e1c6bbc8cb416f8c$var$INVALID = 5;\n// Build a state machine that accepts valid syllables, and applies actions along the way.\n// The logic this is implementing is documented at the top of the file.\nconst $e1c6bbc8cb416f8c$var$STATE_TABLE = [\n // X L V T LV LVT M\n // State 0: start state\n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$INVALID,\n 0\n ]\n ],\n // State 1: <L>\n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$COMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$INVALID,\n 0\n ]\n ],\n // State 2: <L,V> or <LV>\n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$COMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$TONE_MARK,\n 0\n ]\n ],\n // State 3: <L,V,T> or <LVT>\n [\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 1\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$NO_ACTION,\n 0\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 2\n ],\n [\n $e1c6bbc8cb416f8c$var$DECOMPOSE,\n 3\n ],\n [\n $e1c6bbc8cb416f8c$var$TONE_MARK,\n 0\n ]\n ]\n];\nfunction $e1c6bbc8cb416f8c$var$getGlyph(font, code, features) {\n return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, font.glyphForCodePoint(code).id, [\n code\n ], features);\n}\nfunction $e1c6bbc8cb416f8c$var$decompose(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyph.codePoints[0];\n let s = code - $e1c6bbc8cb416f8c$var$HANGUL_BASE;\n let t = $e1c6bbc8cb416f8c$var$T_BASE + s % $e1c6bbc8cb416f8c$var$T_COUNT;\n s = s / $e1c6bbc8cb416f8c$var$T_COUNT | 0;\n let l = $e1c6bbc8cb416f8c$var$L_BASE + s / $e1c6bbc8cb416f8c$var$V_COUNT | 0;\n let v = $e1c6bbc8cb416f8c$var$V_BASE + s % $e1c6bbc8cb416f8c$var$V_COUNT;\n // Don't decompose if all of the components are not available\n if (!font.hasGlyphForCodePoint(l) || !font.hasGlyphForCodePoint(v) || t !== $e1c6bbc8cb416f8c$var$T_BASE && !font.hasGlyphForCodePoint(t)) return i;\n // Replace the current glyph with decomposed L, V, and T glyphs,\n // and apply the proper OpenType features to each component.\n let ljmo = $e1c6bbc8cb416f8c$var$getGlyph(font, l, glyph.features);\n ljmo.features.ljmo = true;\n let vjmo = $e1c6bbc8cb416f8c$var$getGlyph(font, v, glyph.features);\n vjmo.features.vjmo = true;\n let insert = [\n ljmo,\n vjmo\n ];\n if (t > $e1c6bbc8cb416f8c$var$T_BASE) {\n let tjmo = $e1c6bbc8cb416f8c$var$getGlyph(font, t, glyph.features);\n tjmo.features.tjmo = true;\n insert.push(tjmo);\n }\n glyphs.splice(i, 1, ...insert);\n return i + insert.length - 1;\n}\nfunction $e1c6bbc8cb416f8c$var$compose(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n let type = $e1c6bbc8cb416f8c$var$getType(code);\n let prev = glyphs[i - 1].codePoints[0];\n let prevType = $e1c6bbc8cb416f8c$var$getType(prev);\n // Figure out what type of syllable we're dealing with\n let lv, ljmo, vjmo, tjmo;\n if (prevType === $e1c6bbc8cb416f8c$var$LV && type === $e1c6bbc8cb416f8c$var$T) {\n // <LV,T>\n lv = prev;\n tjmo = glyph;\n } else {\n if (type === $e1c6bbc8cb416f8c$var$V) {\n // <L,V>\n ljmo = glyphs[i - 1];\n vjmo = glyph;\n } else {\n // <L,V,T>\n ljmo = glyphs[i - 2];\n vjmo = glyphs[i - 1];\n tjmo = glyph;\n }\n let l = ljmo.codePoints[0];\n let v = vjmo.codePoints[0];\n // Make sure L and V are combining characters\n if ($e1c6bbc8cb416f8c$var$isCombiningL(l) && $e1c6bbc8cb416f8c$var$isCombiningV(v)) lv = $e1c6bbc8cb416f8c$var$HANGUL_BASE + ((l - $e1c6bbc8cb416f8c$var$L_BASE) * $e1c6bbc8cb416f8c$var$V_COUNT + (v - $e1c6bbc8cb416f8c$var$V_BASE)) * $e1c6bbc8cb416f8c$var$T_COUNT;\n }\n let t = tjmo && tjmo.codePoints[0] || $e1c6bbc8cb416f8c$var$T_BASE;\n if (lv != null && (t === $e1c6bbc8cb416f8c$var$T_BASE || $e1c6bbc8cb416f8c$var$isCombiningT(t))) {\n let s = lv + (t - $e1c6bbc8cb416f8c$var$T_BASE);\n // Replace with a composed glyph if supported by the font,\n // otherwise apply the proper OpenType features to each component.\n if (font.hasGlyphForCodePoint(s)) {\n let del = prevType === $e1c6bbc8cb416f8c$var$V ? 3 : 2;\n glyphs.splice(i - del + 1, del, $e1c6bbc8cb416f8c$var$getGlyph(font, s, glyph.features));\n return i - del + 1;\n }\n }\n // Didn't compose (either a non-combining component or unsupported by font).\n if (ljmo) ljmo.features.ljmo = true;\n if (vjmo) vjmo.features.vjmo = true;\n if (tjmo) tjmo.features.tjmo = true;\n if (prevType === $e1c6bbc8cb416f8c$var$LV) {\n // Sequence was originally <L,V>, which got combined earlier.\n // Either the T was non-combining, or the LVT glyph wasn't supported.\n // Decompose the glyph again and apply OT features.\n $e1c6bbc8cb416f8c$var$decompose(glyphs, i - 1, font);\n return i + 1;\n }\n return i;\n}\nfunction $e1c6bbc8cb416f8c$var$getLength(code) {\n switch($e1c6bbc8cb416f8c$var$getType(code)){\n case $e1c6bbc8cb416f8c$var$LV:\n case $e1c6bbc8cb416f8c$var$LVT:\n return 1;\n case $e1c6bbc8cb416f8c$var$V:\n return 2;\n case $e1c6bbc8cb416f8c$var$T:\n return 3;\n }\n}\nfunction $e1c6bbc8cb416f8c$var$reorderToneMark(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n // Move tone mark to the beginning of the previous syllable, unless it is zero width\n if (font.glyphForCodePoint(code).advanceWidth === 0) return;\n let prev = glyphs[i - 1].codePoints[0];\n let len = $e1c6bbc8cb416f8c$var$getLength(prev);\n glyphs.splice(i, 1);\n return glyphs.splice(i - len, 0, glyph);\n}\nfunction $e1c6bbc8cb416f8c$var$insertDottedCircle(glyphs, i, font) {\n let glyph = glyphs[i];\n let code = glyphs[i].codePoints[0];\n if (font.hasGlyphForCodePoint($e1c6bbc8cb416f8c$var$DOTTED_CIRCLE)) {\n let dottedCircle = $e1c6bbc8cb416f8c$var$getGlyph(font, $e1c6bbc8cb416f8c$var$DOTTED_CIRCLE, glyph.features);\n // If the tone mark is zero width, insert the dotted circle before, otherwise after\n let idx = font.glyphForCodePoint(code).advanceWidth === 0 ? i : i + 1;\n glyphs.splice(idx, 0, dottedCircle);\n i++;\n }\n return i;\n}\n\n\n\n\n\n\n\n\n\nvar $4b0735ca6c692ea5$exports = {};\n$4b0735ca6c692ea5$exports = JSON.parse(\"{\\\"stateTable\\\":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,14,15,16,17],[0,0,0,18,19,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,28,29,30,31,32,33,0,34,0,0,35,36,0,0,37,0],[0,0,0,38,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,39,0,0,0,40,41,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,12,43,0,0,0,0],[0,0,0,0,43,44,44,8,9,0,0,0,0,0,43,0,0,0,0],[0,0,0,45,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,50,0,0,51,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,52,0,0,0,0,0,0,0,0],[0,0,0,53,54,55,56,57,58,0,59,0,0,60,61,0,0,62,0],[0,0,0,4,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,63,64,0,0,40,41,0,9,0,10,0,0,0,42,0,63,0,0],[0,2,3,4,5,6,7,8,9,0,10,11,11,12,13,0,2,16,0],[0,0,0,18,65,20,21,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,0,0],[0,0,0,69,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,73,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,75,0,0,0,76,77,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,25,79,0,0,0,0],[0,0,0,18,19,20,74,22,23,0,24,0,0,25,26,0,0,27,0],[0,0,0,81,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,86,0,0,87,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,88,0,0,0,0,0,0,0,0],[0,0,0,18,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,89,90,0,0,76,77,0,23,0,24,0,0,0,78,0,89,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,0,0],[0,0,0,94,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,96,0,0,0,97,98,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,35,100,0,0,0,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,102,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,107,0,0,108,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,109,0,0,0,0,0,0,0,0],[0,0,0,28,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,110,111,0,0,97,98,0,33,0,34,0,0,0,99,0,110,0,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,0,0],[0,0,0,0,5,7,7,8,9,0,10,0,0,0,13,0,0,16,0],[0,0,0,115,116,117,118,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,39,0,122,0,123,123,8,9,0,10,0,0,0,42,0,39,0,0],[0,124,64,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0],[0,39,0,0,0,121,125,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,126,126,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,46,47,48,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,47,47,49,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,128,127,127,49,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,129,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,50,0,0,0,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,134,0,0,0,0,0,0,0,0],[0,0,0,135,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,136,0,0,0,137,138,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,60,140,0,0,0,0],[0,0,0,0,140,141,141,57,58,0,0,0,0,0,140,0,0,0,0],[0,0,0,142,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,147,0,0,148,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0],[0,0,0,53,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,150,151,0,0,137,138,0,58,0,59,0,0,0,139,0,150,0,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,0,0],[0,0,0,155,116,156,157,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,0,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,75,3,4,5,159,160,8,161,0,162,0,11,12,163,0,75,16,0],[0,0,0,0,0,40,164,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,0,165,0,0,0,0],[0,124,64,0,0,40,164,0,9,0,10,0,0,0,42,0,124,0,0],[0,0,0,0,0,70,70,0,71,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,71,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,167,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0],[0,0,0,0,19,74,74,22,23,0,24,0,0,0,26,0,0,27,0],[0,0,0,0,79,80,80,22,23,0,0,0,0,0,79,0,0,0,0],[0,0,0,169,170,171,172,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,75,0,176,0,177,177,22,23,0,24,0,0,0,78,0,75,0,0],[0,178,90,0,0,0,0,0,0,0,0,0,0,0,0,0,178,0,0],[0,75,0,0,0,175,179,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,180,180,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,82,83,84,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,83,83,85,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,182,181,181,85,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,183,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,86,0,0,0,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,0],[0,0,0,189,170,190,191,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,0,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,76,193,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,0,194,0,0,0,0],[0,178,90,0,0,76,193,0,23,0,24,0,0,0,78,0,178,0,0],[0,0,0,0,29,95,31,32,33,0,34,0,0,0,36,0,0,37,0],[0,0,0,0,100,101,101,32,33,0,0,0,0,0,100,0,0,0,0],[0,0,0,195,196,197,198,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,96,0,202,0,203,203,32,33,0,34,0,0,0,99,0,96,0,0],[0,204,111,0,0,0,0,0,0,0,0,0,0,0,0,0,204,0,0],[0,96,0,0,0,201,205,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,206,206,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,103,104,105,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,104,104,106,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,208,207,207,106,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,209,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,107,0,0,0,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,0],[0,0,0,215,196,216,217,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,0,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,97,219,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,0,220,0,0,0,0],[0,204,111,0,0,97,219,0,33,0,34,0,0,0,99,0,204,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,223,0,0,0,40,224,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,119,225,0,0,0,0],[0,0,0,115,116,117,222,8,9,0,10,0,0,119,120,0,0,16,0],[0,0,0,115,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,226,64,0,0,40,224,0,9,0,10,0,0,0,42,0,226,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,39,0,0,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,44,44,8,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,227,0,228,229,0,9,0,10,0,0,230,0,0,0,0,0],[0,39,0,122,0,121,121,0,9,0,10,0,0,0,42,0,39,0,0],[0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,231,231,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,232,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,130,131,132,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,131,131,133,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,234,233,233,133,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,235,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,54,56,56,57,58,0,59,0,0,0,61,0,0,62,0],[0,0,0,240,241,242,243,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,136,0,247,0,248,248,57,58,0,59,0,0,0,139,0,136,0,0],[0,249,151,0,0,0,0,0,0,0,0,0,0,0,0,0,249,0,0],[0,136,0,0,0,246,250,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,251,251,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,143,144,145,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,144,144,146,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,253,252,252,146,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,254,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,147,0,0,0,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,259,0,0,0,0,0,0,0,0],[0,0,0,260,241,261,262,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,0,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,137,264,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,0,265,0,0,0,0],[0,249,151,0,0,137,264,0,58,0,59,0,0,0,139,0,249,0,0],[0,0,0,221,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,158,225,0,0,0,0],[0,0,0,155,116,156,222,8,9,0,10,0,0,158,120,0,0,16,0],[0,0,0,155,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,43,266,266,8,161,0,24,0,0,12,267,0,0,0,0],[0,75,0,176,43,268,268,269,161,0,24,0,0,0,267,0,75,0,0],[0,0,0,0,0,270,0,0,271,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,272,0,0,0,0,0,0,0,0],[0,273,274,0,0,40,41,0,9,0,10,0,0,0,42,0,273,0,0],[0,0,0,40,0,123,123,8,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,121,275,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,166,0,0,0,0,72,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,276,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,279,0,0,0,76,280,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,173,281,0,0,0,0],[0,0,0,169,170,171,278,22,23,0,24,0,0,173,174,0,0,27,0],[0,0,0,169,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,282,90,0,0,76,280,0,23,0,24,0,0,0,78,0,282,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,75,0,0,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,80,80,22,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,283,0,284,285,0,23,0,24,0,0,286,0,0,0,0,0],[0,75,0,176,0,175,175,0,23,0,24,0,0,0,78,0,75,0,0],[0,0,0,0,0,0,0,22,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,287,287,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,288,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,184,185,186,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,185,185,187,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,290,289,289,187,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,291,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,277,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,192,281,0,0,0,0],[0,0,0,189,170,190,278,22,23,0,24,0,0,192,174,0,0,27,0],[0,0,0,189,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,76,0,177,177,22,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,175,296,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,299,0,0,0,97,300,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,199,301,0,0,0,0],[0,0,0,195,196,197,298,32,33,0,34,0,0,199,200,0,0,37,0],[0,0,0,195,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,302,111,0,0,97,300,0,33,0,34,0,0,0,99,0,302,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,96,0,0,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,101,101,32,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,303,0,304,305,0,33,0,34,0,0,306,0,0,0,0,0],[0,96,0,202,0,201,201,0,33,0,34,0,0,0,99,0,96,0,0],[0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,307,307,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,308,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,210,211,212,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,211,211,213,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,310,309,309,213,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,311,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,297,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,218,301,0,0,0,0],[0,0,0,215,196,216,298,32,33,0,34,0,0,218,200,0,0,37,0],[0,0,0,215,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,97,0,203,203,32,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,201,316,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,116,222,222,8,9,0,10,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,9,0,0,0,0,0,225,0,0,0,0],[0,0,0,317,318,319,320,8,9,0,10,0,0,321,322,0,0,16,0],[0,223,0,323,0,123,123,8,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,0,0,121,324,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,325,318,326,327,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,64,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,9,0,0,0,0,230,0,0,0,0,0],[0,0,0,227,0,228,121,0,9,0,10,0,0,230,0,0,0,0,0],[0,0,0,227,0,121,121,0,9,0,10,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,49,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0],[0,0,0,0,0,329,329,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,330,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,236,237,238,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,237,237,239,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,332,331,331,239,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,333,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,337,0,0,0,137,338,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,244,339,0,0,0,0],[0,0,0,240,241,242,336,57,58,0,59,0,0,244,245,0,0,62,0],[0,0,0,240,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,340,151,0,0,137,338,0,58,0,59,0,0,0,139,0,340,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,136,0,0,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,141,141,57,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,341,0,342,343,0,58,0,59,0,0,344,0,0,0,0,0],[0,136,0,247,0,246,246,0,58,0,59,0,0,0,139,0,136,0,0],[0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,345,345,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,255,256,257,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,256,256,258,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,348,347,347,258,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,349,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,335,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,263,339,0,0,0,0],[0,0,0,260,241,261,336,57,58,0,59,0,0,263,245,0,0,62,0],[0,0,0,260,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,137,0,248,248,57,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,246,354,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,126,126,8,23,0,0,0,0,0,0,0,0,0,0],[0,355,90,0,0,121,125,0,9,0,10,0,0,0,42,0,355,0,0],[0,0,0,0,0,356,356,269,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,357,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,270,0,0,0,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,363,0,0,0,0,0,0,0,0],[0,0,0,364,116,365,366,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,40,0,121,121,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,170,278,278,22,23,0,24,0,0,0,174,0,0,27,0],[0,0,0,0,281,80,80,22,23,0,0,0,0,0,281,0,0,0,0],[0,0,0,369,370,371,372,22,23,0,24,0,0,373,374,0,0,27,0],[0,279,0,375,0,177,177,22,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,0,0,175,376,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,377,370,378,379,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,90,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,23,0,0,0,0,286,0,0,0,0,0],[0,0,0,283,0,284,175,0,23,0,24,0,0,286,0,0,0,0,0],[0,0,0,283,0,175,175,0,23,0,24,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,85,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0],[0,0,0,0,0,381,381,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,382,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,292,293,294,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,293,293,295,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,0,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,384,383,383,295,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,385,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,76,0,175,175,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,196,298,298,32,33,0,34,0,0,0,200,0,0,37,0],[0,0,0,0,301,101,101,32,33,0,0,0,0,0,301,0,0,0,0],[0,0,0,387,388,389,390,32,33,0,34,0,0,391,392,0,0,37,0],[0,299,0,393,0,203,203,32,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,0,0,201,394,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,395,388,396,397,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,111,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,33,0,0,0,0,306,0,0,0,0,0],[0,0,0,303,0,304,201,0,33,0,34,0,0,306,0,0,0,0,0],[0,0,0,303,0,201,201,0,33,0,34,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,106,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,0,0],[0,0,0,0,0,399,399,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,400,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,312,313,314,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,313,313,315,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,0,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,402,401,401,315,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,403,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,97,0,201,201,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,407,0,0,0,40,408,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,321,409,0,0,0,0],[0,0,0,317,318,319,406,8,9,0,10,0,0,321,322,0,0,16,0],[0,0,0,317,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,410,64,0,0,40,408,0,9,0,10,0,0,0,42,0,410,0,0],[0,223,0,0,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,223,0,323,0,121,121,0,9,0,10,0,0,0,42,0,223,0,0],[0,0,0,405,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,328,409,0,0,0,0],[0,0,0,325,318,326,406,8,9,0,10,0,0,328,322,0,0,16,0],[0,0,0,325,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0],[0,0,0,0,0,411,411,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,412,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,40,121,334,0,9,0,10,0,0,0,42,0,0,0,0],[0,0,0,0,413,0,0,0,9,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,241,336,336,57,58,0,59,0,0,0,245,0,0,62,0],[0,0,0,0,339,141,141,57,58,0,0,0,0,0,339,0,0,0,0],[0,0,0,414,415,416,417,57,58,0,59,0,0,418,419,0,0,62,0],[0,337,0,420,0,248,248,57,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,0,0,246,421,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,422,415,423,424,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,151,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,58,0,0,0,0,344,0,0,0,0,0],[0,0,0,341,0,342,246,0,58,0,59,0,0,344,0,0,0,0,0],[0,0,0,341,0,246,246,0,58,0,59,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,143,0,0],[0,0,0,0,0,426,426,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,427,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,350,351,352,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,351,351,353,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,0,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,429,428,428,353,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,430,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,137,0,246,246,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,432,116,433,434,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,0,0,180,180,269,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,358,359,360,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,359,359,361,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,437,436,436,361,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,438,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,443,274,0,0,0,0,0,0,0,0,0,0,0,0,0,443,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,367,225,0,0,0,0],[0,0,0,364,116,365,445,8,161,0,162,0,0,367,120,0,0,16,0],[0,0,0,364,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,448,0,0,0,76,449,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,373,450,0,0,0,0],[0,0,0,369,370,371,447,22,23,0,24,0,0,373,374,0,0,27,0],[0,0,0,369,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,451,90,0,0,76,449,0,23,0,24,0,0,0,78,0,451,0,0],[0,279,0,0,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,279,0,375,0,175,175,0,23,0,24,0,0,0,78,0,279,0,0],[0,0,0,446,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,380,450,0,0,0,0],[0,0,0,377,370,378,447,22,23,0,24,0,0,380,374,0,0,27,0],[0,0,0,377,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,184,0,0],[0,0,0,0,0,452,452,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,453,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,76,175,386,0,23,0,24,0,0,0,78,0,0,0,0],[0,0,0,0,454,0,0,0,23,0,0,0,0,0,0,0,0,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,457,0,0,0,97,458,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,391,459,0,0,0,0],[0,0,0,387,388,389,456,32,33,0,34,0,0,391,392,0,0,37,0],[0,0,0,387,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,460,111,0,0,97,458,0,33,0,34,0,0,0,99,0,460,0,0],[0,299,0,0,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,299,0,393,0,201,201,0,33,0,34,0,0,0,99,0,299,0,0],[0,0,0,455,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,398,459,0,0,0,0],[0,0,0,395,388,396,456,32,33,0,34,0,0,398,392,0,0,37,0],[0,0,0,395,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,0,0],[0,0,0,0,0,461,461,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,462,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,97,201,404,0,33,0,34,0,0,0,99,0,0,0,0],[0,0,0,0,463,0,0,0,33,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,318,406,406,8,9,0,10,0,0,0,322,0,0,16,0],[0,0,0,0,409,44,44,8,9,0,0,0,0,0,409,0,0,0,0],[0,0,0,464,465,466,467,8,9,0,10,0,0,468,469,0,0,16,0],[0,407,0,470,0,123,123,8,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,0,0,121,471,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,472,465,473,474,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,0,0,0,0,239,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,236,0,0],[0,0,0,0,0,0,476,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,479,0,0,0,137,480,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,418,481,0,0,0,0],[0,0,0,414,415,416,478,57,58,0,59,0,0,418,419,0,0,62,0],[0,0,0,414,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,482,151,0,0,137,480,0,58,0,59,0,0,0,139,0,482,0,0],[0,337,0,0,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,337,0,420,0,246,246,0,58,0,59,0,0,0,139,0,337,0,0],[0,0,0,477,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,425,481,0,0,0,0],[0,0,0,422,415,423,478,57,58,0,59,0,0,425,419,0,0,62,0],[0,0,0,422,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,0,0,0,258,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,0,0],[0,0,0,0,0,483,483,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,484,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,137,246,431,0,58,0,59,0,0,0,139,0,0,0,0],[0,0,0,0,485,0,0,0,58,0,0,0,0,0,0,0,0,0,0],[0,0,0,444,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,435,225,0,0,0,0],[0,0,0,432,116,433,445,8,161,0,162,0,0,435,120,0,0,16,0],[0,0,0,432,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,0,486,486,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,487,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,439,440,441,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,440,440,442,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,489,488,488,442,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,490,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,495,0,496,497,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,0,116,445,445,8,161,0,162,0,0,0,120,0,0,16,0],[0,0,0,0,225,44,44,8,161,0,0,0,0,0,225,0,0,0,0],[0,0,0,0,370,447,447,22,23,0,24,0,0,0,374,0,0,27,0],[0,0,0,0,450,80,80,22,23,0,0,0,0,0,450,0,0,0,0],[0,0,0,499,500,501,502,22,23,0,24,0,0,503,504,0,0,27,0],[0,448,0,505,0,177,177,22,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,0,0,175,506,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,507,500,508,509,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,0,0,0,0,295,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,292,0,0],[0,0,0,0,0,0,511,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,388,456,456,32,33,0,34,0,0,0,392,0,0,37,0],[0,0,0,0,459,101,101,32,33,0,0,0,0,0,459,0,0,0,0],[0,0,0,512,513,514,515,32,33,0,34,0,0,516,517,0,0,37,0],[0,457,0,518,0,203,203,32,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,0,0,201,519,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,520,513,521,522,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,0,0,0,0,315,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,312,0,0],[0,0,0,0,0,0,524,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,527,0,0,0,40,528,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,468,529,0,0,0,0],[0,0,0,464,465,466,526,8,9,0,10,0,0,468,469,0,0,16,0],[0,0,0,464,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,530,64,0,0,40,528,0,9,0,10,0,0,0,42,0,530,0,0],[0,407,0,0,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,407,0,470,0,121,121,0,9,0,10,0,0,0,42,0,407,0,0],[0,0,0,525,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,475,529,0,0,0,0],[0,0,0,472,465,473,526,8,9,0,10,0,0,475,469,0,0,16,0],[0,0,0,472,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0],[0,0,0,0,415,478,478,57,58,0,59,0,0,0,419,0,0,62,0],[0,0,0,0,481,141,141,57,58,0,0,0,0,0,481,0,0,0,0],[0,0,0,531,532,533,534,57,58,0,59,0,0,535,536,0,0,62,0],[0,479,0,537,0,248,248,57,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,0,0,246,538,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,539,532,540,541,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,0,0,0,0,353,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,350,0,0],[0,0,0,0,0,0,543,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,361,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,358,0,0],[0,0,0,0,0,544,544,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,545,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,491,492,493,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,492,492,494,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,547,546,546,494,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,548,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,274,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,161,0,0,0,0,498,0,0,0,0,0],[0,0,0,495,0,496,368,0,161,0,162,0,0,498,0,0,0,0,0],[0,0,0,495,0,368,368,0,161,0,162,0,0,0,0,0,0,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,553,0,0,0,76,554,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,503,555,0,0,0,0],[0,0,0,499,500,501,552,22,23,0,24,0,0,503,504,0,0,27,0],[0,0,0,499,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,556,90,0,0,76,554,0,23,0,24,0,0,0,78,0,556,0,0],[0,448,0,0,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,448,0,505,0,175,175,0,23,0,24,0,0,0,78,0,448,0,0],[0,0,0,551,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,510,555,0,0,0,0],[0,0,0,507,500,508,552,22,23,0,24,0,0,510,504,0,0,27,0],[0,0,0,507,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,559,0,0,0,97,560,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,516,561,0,0,0,0],[0,0,0,512,513,514,558,32,33,0,34,0,0,516,517,0,0,37,0],[0,0,0,512,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,562,111,0,0,97,560,0,33,0,34,0,0,0,99,0,562,0,0],[0,457,0,0,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,457,0,518,0,201,201,0,33,0,34,0,0,0,99,0,457,0,0],[0,0,0,557,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,523,561,0,0,0,0],[0,0,0,520,513,521,558,32,33,0,34,0,0,523,517,0,0,37,0],[0,0,0,520,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0],[0,0,0,0,465,526,526,8,9,0,10,0,0,0,469,0,0,16,0],[0,0,0,0,529,44,44,8,9,0,0,0,0,0,529,0,0,0,0],[0,0,0,563,66,564,565,8,9,0,10,0,0,566,68,0,0,16,0],[0,527,0,567,0,123,123,8,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,0,0,121,568,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,569,66,570,571,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,575,0,0,0,137,576,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,535,577,0,0,0,0],[0,0,0,531,532,533,574,57,58,0,59,0,0,535,536,0,0,62,0],[0,0,0,531,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,578,151,0,0,137,576,0,58,0,59,0,0,0,139,0,578,0,0],[0,479,0,0,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,479,0,537,0,246,246,0,58,0,59,0,0,0,139,0,479,0,0],[0,0,0,573,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,542,577,0,0,0,0],[0,0,0,539,532,540,574,57,58,0,59,0,0,542,536,0,0,62,0],[0,0,0,539,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,0,0],[0,0,0,0,0,0,0,442,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,439,0,0],[0,0,0,0,0,579,579,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,580,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,549,368,550,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,0,368,368,0,161,0,162,0,0,0,362,0,0,0,0],[0,0,0,0,581,0,0,0,161,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,500,552,552,22,23,0,24,0,0,0,504,0,0,27,0],[0,0,0,0,555,80,80,22,23,0,0,0,0,0,555,0,0,0,0],[0,0,0,582,91,583,584,22,23,0,24,0,0,585,93,0,0,27,0],[0,553,0,586,0,177,177,22,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,0,0,175,587,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,588,91,589,590,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,0,513,558,558,32,33,0,34,0,0,0,517,0,0,37,0],[0,0,0,0,561,101,101,32,33,0,0,0,0,0,561,0,0,0,0],[0,0,0,592,112,593,594,32,33,0,34,0,0,595,114,0,0,37,0],[0,559,0,596,0,203,203,32,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,0,0,201,597,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,598,112,599,600,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,566,165,0,0,0,0],[0,0,0,563,66,564,67,8,9,0,10,0,0,566,68,0,0,16,0],[0,0,0,563,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,527,0,0,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,527,0,567,0,121,121,0,9,0,10,0,0,0,42,0,527,0,0],[0,0,0,602,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,165,44,44,8,9,0,0,0,0,572,165,0,0,0,0],[0,0,0,569,66,570,67,8,9,0,10,0,0,572,68,0,0,16,0],[0,0,0,569,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,0,532,574,574,57,58,0,59,0,0,0,536,0,0,62,0],[0,0,0,0,577,141,141,57,58,0,0,0,0,0,577,0,0,0,0],[0,0,0,603,152,604,605,57,58,0,59,0,0,606,154,0,0,62,0],[0,575,0,607,0,248,248,57,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,0,0,246,608,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,609,152,610,611,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,0,0,0,0,494,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,491,0,0],[0,0,0,0,0,0,613,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,585,194,0,0,0,0],[0,0,0,582,91,583,92,22,23,0,24,0,0,585,93,0,0,27,0],[0,0,0,582,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,553,0,0,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,553,0,586,0,175,175,0,23,0,24,0,0,0,78,0,553,0,0],[0,0,0,614,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,194,80,80,22,23,0,0,0,0,591,194,0,0,0,0],[0,0,0,588,91,589,92,22,23,0,24,0,0,591,93,0,0,27,0],[0,0,0,588,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,595,220,0,0,0,0],[0,0,0,592,112,593,113,32,33,0,34,0,0,595,114,0,0,37,0],[0,0,0,592,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,559,0,0,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,559,0,596,0,201,201,0,33,0,34,0,0,0,99,0,559,0,0],[0,0,0,615,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,220,101,101,32,33,0,0,0,0,601,220,0,0,0,0],[0,0,0,598,112,599,113,32,33,0,34,0,0,601,114,0,0,37,0],[0,0,0,598,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,66,67,67,8,9,0,10,0,0,0,68,0,0,16,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,606,265,0,0,0,0],[0,0,0,603,152,604,153,57,58,0,59,0,0,606,154,0,0,62,0],[0,0,0,603,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,575,0,0,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,575,0,607,0,246,246,0,58,0,59,0,0,0,139,0,575,0,0],[0,0,0,616,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,265,141,141,57,58,0,0,0,0,612,265,0,0,0,0],[0,0,0,609,152,610,153,57,58,0,59,0,0,612,154,0,0,62,0],[0,0,0,609,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,549,0,0],[0,0,0,0,91,92,92,22,23,0,24,0,0,0,93,0,0,27,0],[0,0,0,0,112,113,113,32,33,0,34,0,0,0,114,0,0,37,0],[0,0,0,0,152,153,153,57,58,0,59,0,0,0,154,0,0,62,0]],\\\"accepting\\\":[false,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,true,true,true,false,true,false,true,true,false,false,true,true,true,true,true,true,true,false,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,true,false,true,true,false,false,false,false,true,true,false,false,true,true,true,false,true,true,false,false,true,false,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,true,false,true,false,true,true,false,false,true,true,false,false,true,true,true,false,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,false,false,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,false,false,true,true,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,true,true,false,true,true,true,true,true,true,false,true,true,false,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,false,false,false,false,false,true,true,false,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,false,false,false,true,false,true,true,true,true,true,false,true,true,true,false,true,true,true,true,true,false,true,true,true,true,false,true,true,true,true,true,false,true,true,false,true,true,true],\\\"tags\\\":[[],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[],[\\\"broken_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[],[\\\"consonant_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[],[\\\"vowel_syllable\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[\\\"standalone_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[],[],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[],[],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[\\\"consonant_syllable\\\",\\\"broken_cluster\\\"],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[],[],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[],[\\\"consonant_syllable\\\"],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[],[\\\"vowel_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"broken_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"standalone_cluster\\\"],[\\\"standalone_cluster\\\"],[],[\\\"consonant_syllable\\\"],[\\\"vowel_syllable\\\"],[\\\"standalone_cluster\\\"]]}\");\n\n\nvar $aa333a9607471296$exports = {};\n$aa333a9607471296$exports = JSON.parse(\"{\\\"categories\\\":[\\\"O\\\",\\\"IND\\\",\\\"S\\\",\\\"GB\\\",\\\"B\\\",\\\"FM\\\",\\\"CGJ\\\",\\\"VMAbv\\\",\\\"VMPst\\\",\\\"VAbv\\\",\\\"VPst\\\",\\\"CMBlw\\\",\\\"VPre\\\",\\\"VBlw\\\",\\\"H\\\",\\\"VMBlw\\\",\\\"CMAbv\\\",\\\"MBlw\\\",\\\"CS\\\",\\\"R\\\",\\\"SUB\\\",\\\"MPst\\\",\\\"MPre\\\",\\\"FAbv\\\",\\\"FPst\\\",\\\"FBlw\\\",\\\"null\\\",\\\"SMAbv\\\",\\\"SMBlw\\\",\\\"VMPre\\\",\\\"ZWNJ\\\",\\\"ZWJ\\\",\\\"WJ\\\",\\\"M\\\",\\\"VS\\\",\\\"N\\\",\\\"HN\\\",\\\"MAbv\\\"],\\\"decompositions\\\":{\\\"2507\\\":[2503,2494],\\\"2508\\\":[2503,2519],\\\"2888\\\":[2887,2902],\\\"2891\\\":[2887,2878],\\\"2892\\\":[2887,2903],\\\"3018\\\":[3014,3006],\\\"3019\\\":[3015,3006],\\\"3020\\\":[3014,3031],\\\"3144\\\":[3142,3158],\\\"3264\\\":[3263,3285],\\\"3271\\\":[3270,3285],\\\"3272\\\":[3270,3286],\\\"3274\\\":[3270,3266],\\\"3275\\\":[3270,3266,3285],\\\"3402\\\":[3398,3390],\\\"3403\\\":[3399,3390],\\\"3404\\\":[3398,3415],\\\"3546\\\":[3545,3530],\\\"3548\\\":[3545,3535],\\\"3549\\\":[3545,3535,3530],\\\"3550\\\":[3545,3551],\\\"3635\\\":[3661,3634],\\\"3763\\\":[3789,3762],\\\"3955\\\":[3953,3954],\\\"3957\\\":[3953,3956],\\\"3958\\\":[4018,3968],\\\"3959\\\":[4018,3953,3968],\\\"3960\\\":[4019,3968],\\\"3961\\\":[4019,3953,3968],\\\"3969\\\":[3953,3968],\\\"6971\\\":[6970,6965],\\\"6973\\\":[6972,6965],\\\"6976\\\":[6974,6965],\\\"6977\\\":[6975,6965],\\\"6979\\\":[6978,6965],\\\"69934\\\":[69937,69927],\\\"69935\\\":[69938,69927],\\\"70475\\\":[70471,70462],\\\"70476\\\":[70471,70487],\\\"70843\\\":[70841,70842],\\\"70844\\\":[70841,70832],\\\"70846\\\":[70841,70845],\\\"71098\\\":[71096,71087],\\\"71099\\\":[71097,71087]},\\\"stateTable\\\":[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[2,2,3,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,17,18,11,19,20,21,22,0,0,0,23,0,0,2,0,0,24,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,27,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,39,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,9,0,0,12,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,0,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,4,4,5,0,6,7,8,9,10,11,12,13,14,15,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,49,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,22,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,0,0,0,0,0,0,14,0,0,0,0,0,0,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0],[0,0,0,0,0,5,0,6,7,8,9,0,11,12,0,14,0,16,0,0,0,11,0,20,21,22,0,0,0,23,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,33,0,0,36,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,41,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,34,35,36,37,38,39,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,0,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,53,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,45,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,0,0,0,0,0,0,38,0,0,0,0,0,0,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,29,0,30,31,32,33,0,35,36,0,38,0,40,0,0,0,35,0,43,44,45,0,0,0,46,0,0,0,0,0,0,0,0],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,0,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,5,0,6,7,8,9,48,11,12,13,14,48,16,0,0,18,11,19,20,21,22,0,0,0,23,0,0,0,0,0,0,0,25],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,0,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,29,0,30,31,32,33,52,35,36,37,38,52,40,0,0,41,35,42,43,44,45,0,0,0,46,0,0,0,0,0,0,0,47],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,0,51,0]],\\\"accepting\\\":[false,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],\\\"tags\\\":[[],[\\\"broken_cluster\\\"],[\\\"independent_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"numeral_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"independent_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"symbol_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"virama_terminated_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"broken_cluster\\\"],[\\\"numeral_cluster\\\"],[\\\"number_joiner_terminated_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"standard_cluster\\\"],[\\\"numeral_cluster\\\"]]}\");\n\n\n// Cateories used in the OpenType spec:\n// https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx\nconst $90a9d3398ee54fe5$export$a513ea61a7bee91c = {\n X: 1,\n C: 2,\n V: 4,\n N: 8,\n H: 16,\n ZWNJ: 32,\n ZWJ: 64,\n M: 128,\n SM: 256,\n VD: 512,\n A: 1024,\n Placeholder: 2048,\n Dotted_Circle: 4096,\n RS: 8192,\n Coeng: 16384,\n Repha: 32768,\n Ra: 65536,\n CM: 131072,\n Symbol: 262144 // Avagraha, etc that take marks (SM,A,VD).\n};\nconst $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0 = {\n Start: 1,\n Ra_To_Become_Reph: 2,\n Pre_M: 4,\n Pre_C: 8,\n Base_C: 16,\n After_Main: 32,\n Above_C: 64,\n Before_Sub: 128,\n Below_C: 256,\n After_Sub: 512,\n Before_Post: 1024,\n Post_C: 2048,\n After_Post: 4096,\n Final_C: 8192,\n SMVD: 16384,\n End: 32768\n};\nconst $90a9d3398ee54fe5$export$8519deaa7de2b07 = $90a9d3398ee54fe5$export$a513ea61a7bee91c.C | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Ra | $90a9d3398ee54fe5$export$a513ea61a7bee91c.CM | $90a9d3398ee54fe5$export$a513ea61a7bee91c.V | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Placeholder | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Dotted_Circle;\nconst $90a9d3398ee54fe5$export$bbcd928767338e0d = $90a9d3398ee54fe5$export$a513ea61a7bee91c.ZWJ | $90a9d3398ee54fe5$export$a513ea61a7bee91c.ZWNJ;\nconst $90a9d3398ee54fe5$export$ca9599b2a300afc = $90a9d3398ee54fe5$export$a513ea61a7bee91c.H | $90a9d3398ee54fe5$export$a513ea61a7bee91c.Coeng;\nconst $90a9d3398ee54fe5$export$e99d119da76a0fc5 = {\n Default: {\n hasOldSpec: false,\n virama: 0,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Devanagari: {\n hasOldSpec: true,\n virama: 0x094D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Bengali: {\n hasOldSpec: true,\n virama: 0x09CD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Gurmukhi: {\n hasOldSpec: true,\n virama: 0x0A4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Sub,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Gujarati: {\n hasOldSpec: true,\n virama: 0x0ACD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Before_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Oriya: {\n hasOldSpec: true,\n virama: 0x0B4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Main,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Tamil: {\n hasOldSpec: true,\n virama: 0x0BCD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Pre_And_Post'\n },\n Telugu: {\n hasOldSpec: true,\n virama: 0x0C4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,\n rephMode: 'Explicit',\n blwfMode: 'Post_Only'\n },\n Kannada: {\n hasOldSpec: true,\n virama: 0x0CCD,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Post,\n rephMode: 'Implicit',\n blwfMode: 'Post_Only'\n },\n Malayalam: {\n hasOldSpec: true,\n virama: 0x0D4D,\n basePos: 'Last',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.After_Main,\n rephMode: 'Log_Repha',\n blwfMode: 'Pre_And_Post'\n },\n // Handled by UniversalShaper\n // Sinhala: {\n // hasOldSpec: false,\n // virama: 0x0DCA,\n // basePos: 'Last_Sinhala',\n // rephPos: POSITIONS.After_Main,\n // rephMode: 'Explicit',\n // blwfMode: 'Pre_And_Post'\n // },\n Khmer: {\n hasOldSpec: false,\n virama: 0x17D2,\n basePos: 'First',\n rephPos: $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0.Ra_To_Become_Reph,\n rephMode: 'Vis_Repha',\n blwfMode: 'Pre_And_Post'\n }\n};\nconst $90a9d3398ee54fe5$export$f647c9cfdd77d95a = {\n // Khmer\n 0x17BE: [\n 0x17C1,\n 0x17BE\n ],\n 0x17BF: [\n 0x17C1,\n 0x17BF\n ],\n 0x17C0: [\n 0x17C1,\n 0x17C0\n ],\n 0x17C4: [\n 0x17C1,\n 0x17C4\n ],\n 0x17C5: [\n 0x17C1,\n 0x17C5\n ]\n};\n\n\n\nconst { decompositions: $7826f90f6f0cecc9$var$decompositions } = (0, (/*@__PURE__*/$parcel$interopDefault($aa333a9607471296$exports)));\nconst $7826f90f6f0cecc9$var$trie = new (0, $6uUbQ$unicodetrie)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)(\"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\"));\nconst $7826f90f6f0cecc9$var$stateMachine = new (0, $6uUbQ$dfa)((0, (/*@__PURE__*/$parcel$interopDefault($4b0735ca6c692ea5$exports))));\nclass $7826f90f6f0cecc9$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.addStage($7826f90f6f0cecc9$var$setupSyllables);\n plan.addStage([\n 'locl',\n 'ccmp'\n ]);\n plan.addStage($7826f90f6f0cecc9$var$initialReordering);\n plan.addStage('nukt');\n plan.addStage('akhn');\n plan.addStage('rphf', false);\n plan.addStage('rkrf');\n plan.addStage('pref', false);\n plan.addStage('blwf', false);\n plan.addStage('abvf', false);\n plan.addStage('half', false);\n plan.addStage('pstf', false);\n plan.addStage('vatu');\n plan.addStage('cjct');\n plan.addStage('cfar', false);\n plan.addStage($7826f90f6f0cecc9$var$finalReordering);\n plan.addStage({\n local: [\n 'init'\n ],\n global: [\n 'pres',\n 'abvs',\n 'blws',\n 'psts',\n 'haln',\n 'dist',\n 'abvm',\n 'blwm',\n 'calt',\n 'clig'\n ]\n });\n // Setup the indic config for the selected script\n plan.unicodeScript = $130d1a642ebcd2b7$export$ce50e82f12a827a4(plan.script);\n plan.indicConfig = (0, $90a9d3398ee54fe5$export$e99d119da76a0fc5)[plan.unicodeScript] || (0, $90a9d3398ee54fe5$export$e99d119da76a0fc5).Default;\n plan.isOldSpec = plan.indicConfig.hasOldSpec && plan.script[plan.script.length - 1] !== '2';\n // TODO: turn off kern (Khmer) and liga features.\n }\n static assignFeatures(plan, glyphs) {\n // Decompose split matras\n // TODO: do this in a more general unicode normalizer\n for(let i = glyphs.length - 1; i >= 0; i--){\n let codepoint = glyphs[i].codePoints[0];\n let d = (0, $90a9d3398ee54fe5$export$f647c9cfdd77d95a)[codepoint] || $7826f90f6f0cecc9$var$decompositions[codepoint];\n if (d) {\n let decomposed = d.map((c)=>{\n let g = plan.font.glyphForCodePoint(c);\n return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(plan.font, g.id, [\n c\n ], glyphs[i].features);\n });\n glyphs.splice(i, 1, ...decomposed);\n }\n }\n }\n}\n(0, $6uUbQ$_)($7826f90f6f0cecc9$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'NONE');\nfunction $7826f90f6f0cecc9$var$indicCategory(glyph) {\n return $7826f90f6f0cecc9$var$trie.get(glyph.codePoints[0]) >> 8;\n}\nfunction $7826f90f6f0cecc9$var$indicPosition(glyph) {\n return 1 << ($7826f90f6f0cecc9$var$trie.get(glyph.codePoints[0]) & 0xff);\n}\nclass $7826f90f6f0cecc9$var$IndicInfo {\n constructor(category, position, syllableType, syllable){\n this.category = category;\n this.position = position;\n this.syllableType = syllableType;\n this.syllable = syllable;\n }\n}\nfunction $7826f90f6f0cecc9$var$setupSyllables(font, glyphs) {\n let syllable = 0;\n let last = 0;\n for (let [start, end, tags] of $7826f90f6f0cecc9$var$stateMachine.match(glyphs.map($7826f90f6f0cecc9$var$indicCategory))){\n if (start > last) {\n ++syllable;\n for(let i = last; i < start; i++)glyphs[i].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).X, (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).End, 'non_indic_cluster', syllable);\n }\n ++syllable;\n // Create shaper info\n for(let i = start; i <= end; i++)glyphs[i].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo(1 << $7826f90f6f0cecc9$var$indicCategory(glyphs[i]), $7826f90f6f0cecc9$var$indicPosition(glyphs[i]), tags[0], syllable);\n last = end + 1;\n }\n if (last < glyphs.length) {\n ++syllable;\n for(let i = last; i < glyphs.length; i++)glyphs[i].shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).X, (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).End, 'non_indic_cluster', syllable);\n }\n}\nfunction $7826f90f6f0cecc9$var$isConsonant(glyph) {\n return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$8519deaa7de2b07);\n}\nfunction $7826f90f6f0cecc9$var$isJoiner(glyph) {\n return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$bbcd928767338e0d);\n}\nfunction $7826f90f6f0cecc9$var$isHalantOrCoeng(glyph) {\n return glyph.shaperInfo.category & (0, $90a9d3398ee54fe5$export$ca9599b2a300afc);\n}\nfunction $7826f90f6f0cecc9$var$wouldSubstitute(glyphs, feature) {\n for (let glyph of glyphs)glyph.features = {\n [feature]: true\n };\n let GSUB = glyphs[0]._font._layoutEngine.engine.GSUBProcessor;\n GSUB.applyFeatures([\n feature\n ], glyphs);\n return glyphs.length === 1;\n}\nfunction $7826f90f6f0cecc9$var$consonantPosition(font, consonant, virama) {\n let glyphs = [\n virama,\n consonant,\n virama\n ];\n if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), 'blwf') || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), 'blwf')) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C;\n else if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), 'pstf') || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), 'pstf')) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C;\n else if ($7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(0, 2), 'pref') || $7826f90f6f0cecc9$var$wouldSubstitute(glyphs.slice(1, 3), 'pref')) return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C;\n return (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;\n}\nfunction $7826f90f6f0cecc9$var$initialReordering(font, glyphs, plan) {\n let indicConfig = plan.indicConfig;\n let features = font._layoutEngine.engine.GSUBProcessor.features;\n let dottedCircle = font.glyphForCodePoint(0x25cc).id;\n let virama = font.glyphForCodePoint(indicConfig.virama).id;\n if (virama) {\n let info = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, virama, [\n indicConfig.virama\n ]);\n for(let i = 0; i < glyphs.length; i++)if (glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) glyphs[i].shaperInfo.position = $7826f90f6f0cecc9$var$consonantPosition(font, glyphs[i].copy(), info);\n }\n for(let start = 0, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, start)){\n let { category: category, syllableType: syllableType } = glyphs[start].shaperInfo;\n if (syllableType === 'symbol_cluster' || syllableType === 'non_indic_cluster') continue;\n if (syllableType === 'broken_cluster' && dottedCircle) {\n let g = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, dottedCircle, [\n 0x25cc\n ]);\n g.shaperInfo = new $7826f90f6f0cecc9$var$IndicInfo(1 << $7826f90f6f0cecc9$var$indicCategory(g), $7826f90f6f0cecc9$var$indicPosition(g), glyphs[start].shaperInfo.syllableType, glyphs[start].shaperInfo.syllable);\n // Insert after possible Repha.\n let i = start;\n while(i < end && glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha)i++;\n glyphs.splice(i++, 0, g);\n end++;\n }\n // 1. Find base consonant:\n //\n // The shaping engine finds the base consonant of the syllable, using the\n // following algorithm: starting from the end of the syllable, move backwards\n // until a consonant is found that does not have a below-base or post-base\n // form (post-base forms have to follow below-base forms), or that is not a\n // pre-base reordering Ra, or arrive at the first consonant. The consonant\n // stopped at will be the base.\n let base = end;\n let limit = start;\n let hasReph = false;\n // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n if (indicConfig.rephPos !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph && features.rphf && start + 3 <= end && (indicConfig.rephMode === 'Implicit' && !$7826f90f6f0cecc9$var$isJoiner(glyphs[start + 2]) || indicConfig.rephMode === 'Explicit' && glyphs[start + 2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ)) {\n // See if it matches the 'rphf' feature.\n let g = [\n glyphs[start].copy(),\n glyphs[start + 1].copy(),\n glyphs[start + 2].copy()\n ];\n if ($7826f90f6f0cecc9$var$wouldSubstitute(g.slice(0, 2), 'rphf') || indicConfig.rephMode === 'Explicit' && $7826f90f6f0cecc9$var$wouldSubstitute(g, 'rphf')) {\n limit += 2;\n while(limit < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[limit]))limit++;\n base = start;\n hasReph = true;\n }\n } else if (indicConfig.rephMode === 'Log_Repha' && glyphs[start].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha) {\n limit++;\n while(limit < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[limit]))limit++;\n base = start;\n hasReph = true;\n }\n switch(indicConfig.basePos){\n case 'Last':\n {\n // starting from the end of the syllable, move backwards\n let i = end;\n let seenBelow = false;\n do {\n let info = glyphs[--i].shaperInfo;\n // until a consonant is found\n if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i])) {\n // that does not have a below-base or post-base form\n // (post-base forms have to follow below-base forms),\n if (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C && (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C || seenBelow)) {\n base = i;\n break;\n }\n // or that is not a pre-base reordering Ra,\n //\n // IMPLEMENTATION NOTES:\n //\n // Our pre-base reordering Ra's are marked POS_POST_C, so will be skipped\n // by the logic above already.\n //\n // or arrive at the first consonant. The consonant stopped at will\n // be the base.\n if (info.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C) seenBelow = true;\n base = i;\n } else if (start < i && info.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ && glyphs[i - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) break;\n }while (i > limit);\n break;\n }\n case 'First':\n // The first consonant is always the base.\n base = start;\n // Mark all subsequent consonants as below.\n for(let i = base + 1; i < end; i++)if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i])) glyphs[i].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C;\n }\n // If the syllable starts with Ra + Halant (in a script that has Reph)\n // and has more than one consonant, Ra is excluded from candidates for\n // base consonants.\n //\n // Only do this for unforced Reph. (ie. not for Ra,H,ZWJ)\n if (hasReph && base === start && limit - base <= 2) hasReph = false;\n // 2. Decompose and reorder Matras:\n //\n // Each matra and any syllable modifier sign in the cluster are moved to the\n // appropriate position relative to the consonant(s) in the cluster. The\n // shaping engine decomposes two- or three-part matras into their constituent\n // parts before any repositioning. Matra characters are classified by which\n // consonant in a conjunct they have affinity for and are reordered to the\n // following positions:\n //\n // o Before first half form in the syllable\n // o After subjoined consonants\n // o After post-form consonant\n // o After main consonant (for above marks)\n //\n // IMPLEMENTATION NOTES:\n //\n // The normalize() routine has already decomposed matras for us, so we don't\n // need to worry about that.\n // 3. Reorder marks to canonical order:\n //\n // Adjacent nukta and halant or nukta and vedic sign are always repositioned\n // if necessary, so that the nukta is first.\n //\n // IMPLEMENTATION NOTES:\n //\n // We don't need to do this: the normalize() routine already did this for us.\n // Reorder characters\n for(let i = start; i < base; i++){\n let info = glyphs[i].shaperInfo;\n info.position = Math.min((0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_C, info.position);\n }\n if (base < end) glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;\n // Mark final consonants. A final consonant is one appearing after a matra,\n // like in Khmer.\n for(let i = base + 1; i < end; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {\n for(let j = i + 1; j < end; j++)if ($7826f90f6f0cecc9$var$isConsonant(glyphs[j])) {\n glyphs[j].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Final_C;\n break;\n }\n break;\n }\n // Handle beginning Ra\n if (hasReph) glyphs[start].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph;\n // For old-style Indic script tags, move the first post-base Halant after\n // last consonant.\n //\n // Reports suggest that in some scripts Uniscribe does this only if there\n // is *not* a Halant after last consonant already (eg. Kannada), while it\n // does it unconditionally in other scripts (eg. Malayalam). We don't\n // currently know about other scripts, so we single out Malayalam for now.\n //\n // Kannada test case:\n // U+0C9A,U+0CCD,U+0C9A,U+0CCD\n // With some versions of Lohit Kannada.\n // https://bugs.freedesktop.org/show_bug.cgi?id=59118\n //\n // Malayalam test case:\n // U+0D38,U+0D4D,U+0D31,U+0D4D,U+0D31,U+0D4D\n // With lohit-ttf-20121122/Lohit-Malayalam.ttf\n if (plan.isOldSpec) {\n let disallowDoubleHalants = plan.unicodeScript !== 'Malayalam';\n for(let i = base + 1; i < end; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) {\n let j;\n for(j = end - 1; j > i; j--){\n if ($7826f90f6f0cecc9$var$isConsonant(glyphs[j]) || disallowDoubleHalants && glyphs[j].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H) break;\n }\n if (glyphs[j].shaperInfo.category !== (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && j > i) {\n // Move Halant to after last consonant.\n let t = glyphs[i];\n glyphs.splice(i, 0, ...glyphs.splice(i + 1, j - i));\n glyphs[j] = t;\n }\n break;\n }\n }\n // Attach misc marks to previous char to move with them.\n let lastPos = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Start;\n for(let i = start; i < end; i++){\n let info = glyphs[i].shaperInfo;\n if (info.category & ((0, $90a9d3398ee54fe5$export$bbcd928767338e0d) | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).N | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).RS | (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).CM | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc) & info.category)) {\n info.position = lastPos;\n if (info.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && info.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n // Uniscribe doesn't move the Halant with Left Matra.\n // TEST: U+092B,U+093F,U+094DE\n // We follow. This is important for the Sinhala\n // U+0DDA split matra since it decomposes to U+0DD9,U+0DCA\n // where U+0DD9 is a left matra and U+0DCA is the virama.\n // We don't want to move the virama with the left matra.\n // TEST: U+0D9A,U+0DDA\n for(let j = i; j > start; j--)if (glyphs[j - 1].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n info.position = glyphs[j - 1].shaperInfo.position;\n break;\n }\n }\n } else if (info.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD) lastPos = info.position;\n }\n // For post-base consonants let them own anything before them\n // since the last consonant or matra.\n let last = base;\n for(let i = base + 1; i < end; i++){\n if ($7826f90f6f0cecc9$var$isConsonant(glyphs[i])) {\n for(let j = last + 1; j < i; j++)if (glyphs[j].shaperInfo.position < (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD) glyphs[j].shaperInfo.position = glyphs[i].shaperInfo.position;\n last = i;\n } else if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) last = i;\n }\n let arr = glyphs.slice(start, end);\n arr.sort((a, b)=>a.shaperInfo.position - b.shaperInfo.position);\n glyphs.splice(start, arr.length, ...arr);\n // Find base again\n for(let i = start; i < end; i++)if (glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) {\n base = i;\n break;\n }\n // Setup features now\n // Reph\n for(let i = start; i < end && glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph; i++)glyphs[i].features.rphf = true;\n // Pre-base\n let blwf = !plan.isOldSpec && indicConfig.blwfMode === 'Pre_And_Post';\n for(let i = start; i < base; i++){\n glyphs[i].features.half = true;\n if (blwf) glyphs[i].features.blwf = true;\n }\n // Post-base\n for(let i = base + 1; i < end; i++){\n glyphs[i].features.abvf = true;\n glyphs[i].features.pstf = true;\n glyphs[i].features.blwf = true;\n }\n if (plan.isOldSpec && plan.unicodeScript === 'Devanagari') {\n // Old-spec eye-lash Ra needs special handling. From the\n // spec:\n //\n // \"The feature 'below-base form' is applied to consonants\n // having below-base forms and following the base consonant.\n // The exception is vattu, which may appear below half forms\n // as well as below the base glyph. The feature 'below-base\n // form' will be applied to all such occurrences of Ra as well.\"\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+0915\n // with Sanskrit 2003 font.\n //\n // However, note that Ra,Halant,ZWJ is the correct way to\n // request eyelash form of Ra, so we wouldbn't inhibit it\n // in that sequence.\n //\n // Test case: U+0924,U+094D,U+0930,U+094d,U+200D,U+0915\n for(let i = start; i + 1 < base; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Ra && glyphs[i + 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).H && (i + 1 === base || glyphs[i + 2].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ)) {\n glyphs[i].features.blwf = true;\n glyphs[i + 1].features.blwf = true;\n }\n }\n let prefLen = 2;\n if (features.pref && base + prefLen < end) // Find a Halant,Ra sequence and mark it for pre-base reordering processing.\n for(let i = base + 1; i + prefLen - 1 < end; i++){\n let g = [\n glyphs[i].copy(),\n glyphs[i + 1].copy()\n ];\n if ($7826f90f6f0cecc9$var$wouldSubstitute(g, 'pref')) {\n for(let j = 0; j < prefLen; j++)glyphs[i++].features.pref = true;\n // Mark the subsequent stuff with 'cfar'. Used in Khmer.\n // Read the feature spec.\n // This allows distinguishing the following cases with MS Khmer fonts:\n // U+1784,U+17D2,U+179A,U+17D2,U+1782\n // U+1784,U+17D2,U+1782,U+17D2,U+179A\n if (features.cfar) for(; i < end; i++)glyphs[i].features.cfar = true;\n break;\n }\n }\n // Apply ZWJ/ZWNJ effects\n for(let i = start + 1; i < end; i++)if ($7826f90f6f0cecc9$var$isJoiner(glyphs[i])) {\n let nonJoiner = glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWNJ;\n let j = i;\n do {\n j--;\n // ZWJ/ZWNJ should disable CJCT. They do that by simply\n // being there, since we don't skip them for the CJCT\n // feature (ie. F_MANUAL_ZWJ)\n // A ZWNJ disables HALF.\n if (nonJoiner) delete glyphs[j].features.half;\n }while (j > start && !$7826f90f6f0cecc9$var$isConsonant(glyphs[j]));\n }\n }\n}\nfunction $7826f90f6f0cecc9$var$finalReordering(font, glyphs, plan) {\n let indicConfig = plan.indicConfig;\n let features = font._layoutEngine.engine.GSUBProcessor.features;\n for(let start = 0, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = $7826f90f6f0cecc9$var$nextSyllable(glyphs, start)){\n // 4. Final reordering:\n //\n // After the localized forms and basic shaping forms GSUB features have been\n // applied (see below), the shaping engine performs some final glyph\n // reordering before applying all the remaining font features to the entire\n // cluster.\n let tryPref = !!features.pref;\n // Find base again\n let base = start;\n for(; base < end; base++)if (glyphs[base].shaperInfo.position >= (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) {\n if (tryPref && base + 1 < end) {\n for(let i = base + 1; i < end; i++)if (glyphs[i].features.pref) {\n if (!(glyphs[i].substituted && glyphs[i].isLigated && !glyphs[i].isMultiplied)) {\n // Ok, this was a 'pref' candidate but didn't form any.\n // Base is around here...\n base = i;\n while(base < end && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[base]))base++;\n glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).BASE_C;\n tryPref = false;\n }\n break;\n }\n }\n // For Malayalam, skip over unformed below- (but NOT post-) forms.\n if (plan.unicodeScript === 'Malayalam') for(let i = base + 1; i < end; i++){\n while(i < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[i]))i++;\n if (i === end || !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[i])) break;\n i++; // Skip halant.\n while(i < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[i]))i++;\n if (i < end && $7826f90f6f0cecc9$var$isConsonant(glyphs[i]) && glyphs[i].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Below_C) {\n base = i;\n glyphs[base].shaperInfo.position = (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C;\n }\n }\n if (start < base && glyphs[base].shaperInfo.position > (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Base_C) base--;\n break;\n }\n if (base === end && start < base && glyphs[base - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).ZWJ) base--;\n if (base < end) while(start < base && glyphs[base].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).N | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc)))base--;\n // o Reorder matras:\n //\n // If a pre-base matra character had been reordered before applying basic\n // features, the glyph can be moved closer to the main consonant based on\n // whether half-forms had been formed. Actual position for the matra is\n // defined as “after last standalone halant glyph, after initial matra\n // position and before the main consonant”. If ZWJ or ZWNJ follow this\n // halant, position is moved after it.\n //\n if (start + 1 < end && start < base) {\n // If we lost track of base, alas, position before last thingy.\n let newPos = base === end ? base - 2 : base - 1;\n // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while(newPos > start && !(glyphs[newPos].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc))))newPos--;\n // If we found no Halant we are done.\n // Otherwise only proceed if the Halant does\n // not belong to the Matra itself!\n if ($7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newPos]) && glyphs[newPos].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) // If ZWJ or ZWNJ follow this halant, position is moved after it.\n {\n if (newPos + 1 < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[newPos + 1])) newPos++;\n } else newPos = start; // No move.\n }\n if (start < newPos && glyphs[newPos].shaperInfo.position !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n // Now go see if there's actually any matras...\n for(let i = newPos; i > start; i--)if (glyphs[i - 1].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M) {\n let oldPos = i - 1;\n if (oldPos < base && base <= newPos) base--;\n let tmp = glyphs[oldPos];\n glyphs.splice(oldPos, 0, ...glyphs.splice(oldPos + 1, newPos - oldPos));\n glyphs[newPos] = tmp;\n newPos--;\n }\n }\n }\n // o Reorder reph:\n //\n // Reph’s original position is always at the beginning of the syllable,\n // (i.e. it is not reordered at the character reordering stage). However,\n // it will be reordered according to the basic-forms shaping results.\n // Possible positions for reph, depending on the script, are; after main,\n // before post-base consonant forms, and after post-base consonant forms.\n // Two cases:\n //\n // - If repha is encoded as a sequence of characters (Ra,H or Ra,H,ZWJ), then\n // we should only move it if the sequence ligated to the repha form.\n //\n // - If repha is encoded separately and in the logical position, we should only\n // move it if it did NOT ligate. If it ligated, it's probably the font trying\n // to make it work without the reordering.\n if (start + 1 < end && glyphs[start].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Ra_To_Become_Reph && glyphs[start].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).Repha !== (glyphs[start].isLigated && !glyphs[start].isMultiplied)) {\n let newRephPos;\n let rephPos = indicConfig.rephPos;\n let found = false;\n // 1. If reph should be positioned after post-base consonant forms,\n // proceed to step 5.\n if (rephPos !== (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Post) {\n // 2. If the reph repositioning class is not after post-base: target\n // position is after the first explicit halant glyph between the\n // first post-reph consonant and last main consonant. If ZWJ or ZWNJ\n // are following this halant, position is moved after it. If such\n // position is found, this is the target position. Otherwise,\n // proceed to the next step.\n //\n // Note: in old-implementation fonts, where classifications were\n // fixed in shaping engine, there was no case where reph position\n // will be found on this step.\n newRephPos = start + 1;\n while(newRephPos < base && !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos]))newRephPos++;\n if (newRephPos < base && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && $7826f90f6f0cecc9$var$isJoiner(glyphs[newRephPos + 1])) newRephPos++;\n found = true;\n }\n // 3. If reph should be repositioned after the main consonant: find the\n // first consonant not ligated with main, or find the first\n // consonant that is not a potential pre-base reordering Ra.\n if (!found && rephPos === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Main) {\n newRephPos = base;\n while(newRephPos + 1 < end && glyphs[newRephPos + 1].shaperInfo.position <= (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Main)newRephPos++;\n found = newRephPos < end;\n }\n // 4. If reph should be positioned before post-base consonant, find\n // first post-base classified consonant not ligated with main. If no\n // consonant is found, the target position should be before the\n // first matra, syllable modifier sign or vedic sign.\n //\n // This is our take on what step 4 is trying to say (and failing, BADLY).\n if (!found && rephPos === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Sub) {\n newRephPos = base;\n while(newRephPos + 1 < end && !(glyphs[newRephPos + 1].shaperInfo.position & ((0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Post_C | (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).After_Post | (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD)))newRephPos++;\n found = newRephPos < end;\n }\n }\n // 5. If no consonant is found in steps 3 or 4, move reph to a position\n // immediately before the first post-base matra, syllable modifier\n // sign or vedic sign that has a reordering class after the intended\n // reph position. For example, if the reordering position for reph\n // is post-main, it will skip above-base matras that also have a\n // post-main position.\n if (!found) {\n // Copied from step 2.\n newRephPos = start + 1;\n while(newRephPos < base && !$7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos]))newRephPos++;\n if (newRephPos < base && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {\n // ->If ZWJ or ZWNJ are following this halant, position is moved after it.\n if (newRephPos + 1 < base && $7826f90f6f0cecc9$var$isJoiner(glyphs[newRephPos + 1])) newRephPos++;\n found = true;\n }\n }\n // 6. Otherwise, reorder reph to the end of the syllable.\n if (!found) {\n newRephPos = end - 1;\n while(newRephPos > start && glyphs[newRephPos].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).SMVD)newRephPos--;\n // If the Reph is to be ending up after a Matra,Halant sequence,\n // position it before that Halant so it can interact with the Matra.\n // However, if it's a plain Consonant,Halant we shouldn't do that.\n // Uniscribe doesn't do this.\n // TEST: U+0930,U+094D,U+0915,U+094B,U+094D\n if ($7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newRephPos])) {\n for(let i = base + 1; i < newRephPos; i++)if (glyphs[i].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) newRephPos--;\n }\n }\n let reph = glyphs[start];\n glyphs.splice(start, 0, ...glyphs.splice(start + 1, newRephPos - start));\n glyphs[newRephPos] = reph;\n if (start < base && base <= newRephPos) base--;\n }\n // o Reorder pre-base reordering consonants:\n //\n // If a pre-base reordering consonant is found, reorder it according to\n // the following rules:\n if (tryPref && base + 1 < end) {\n for(let i = base + 1; i < end; i++)if (glyphs[i].features.pref) {\n // 1. Only reorder a glyph produced by substitution during application\n // of the <pref> feature. (Note that a font may shape a Ra consonant with\n // the feature generally but block it in certain contexts.)\n // Note: We just check that something got substituted. We don't check that\n // the <pref> feature actually did it...\n //\n // Reorder pref only if it ligated.\n if (glyphs[i].isLigated && !glyphs[i].isMultiplied) {\n // 2. Try to find a target position the same way as for pre-base matra.\n // If it is found, reorder pre-base consonant glyph.\n //\n // 3. If position is not found, reorder immediately before main\n // consonant.\n let newPos = base;\n // Malayalam / Tamil do not have \"half\" forms or explicit virama forms.\n // The glyphs formed by 'half' are Chillus or ligated explicit viramas.\n // We want to position matra after them.\n if (plan.unicodeScript !== 'Malayalam' && plan.unicodeScript !== 'Tamil') {\n while(newPos > start && !(glyphs[newPos - 1].shaperInfo.category & ((0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M | (0, $90a9d3398ee54fe5$export$ca9599b2a300afc))))newPos--;\n // In Khmer coeng model, a H,Ra can go *after* matras. If it goes after a\n // split matra, it should be reordered to *before* the left part of such matra.\n if (newPos > start && glyphs[newPos - 1].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {\n let oldPos = i;\n for(let j = base + 1; j < oldPos; j++)if (glyphs[j].shaperInfo.category === (0, $90a9d3398ee54fe5$export$a513ea61a7bee91c).M) {\n newPos--;\n break;\n }\n }\n }\n if (newPos > start && $7826f90f6f0cecc9$var$isHalantOrCoeng(glyphs[newPos - 1])) // -> If ZWJ or ZWNJ follow this halant, position is moved after it.\n {\n if (newPos < end && $7826f90f6f0cecc9$var$isJoiner(glyphs[newPos])) newPos++;\n }\n let oldPos = i;\n let tmp = glyphs[oldPos];\n glyphs.splice(newPos + 1, 0, ...glyphs.splice(newPos, oldPos - newPos));\n glyphs[newPos] = tmp;\n if (newPos <= base && base < oldPos) base++;\n }\n break;\n }\n }\n // Apply 'init' to the Left Matra if it's a word start.\n if (glyphs[start].shaperInfo.position === (0, $90a9d3398ee54fe5$export$1a1f61c9c4dd9df0).Pre_M && (!start || !/Cf|Mn/.test((0, $6uUbQ$getCategory)(glyphs[start - 1].codePoints[0])))) glyphs[start].features.init = true;\n }\n}\nfunction $7826f90f6f0cecc9$var$nextSyllable(glyphs, start) {\n if (start >= glyphs.length) return start;\n let syllable = glyphs[start].shaperInfo.syllable;\n while(++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable);\n return start;\n}\n\n\n\n\n\n\n\n\n\nconst { categories: $7ab494fe977143c6$var$categories, decompositions: $7ab494fe977143c6$var$decompositions } = (0, (/*@__PURE__*/$parcel$interopDefault($aa333a9607471296$exports)));\nconst $7ab494fe977143c6$var$trie = new (0, $6uUbQ$unicodetrie)((0, $12727730ddfc8bfe$export$94fdf11bafc8de6b)(\"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\"));\nconst $7ab494fe977143c6$var$stateMachine = new (0, $6uUbQ$dfa)((0, (/*@__PURE__*/$parcel$interopDefault($aa333a9607471296$exports))));\nclass $7ab494fe977143c6$export$2e2bcd8739ae039 extends (0, $649970d87335b30f$export$2e2bcd8739ae039) {\n static planFeatures(plan) {\n plan.addStage($7ab494fe977143c6$var$setupSyllables);\n // Default glyph pre-processing group\n plan.addStage([\n 'locl',\n 'ccmp',\n 'nukt',\n 'akhn'\n ]);\n // Reordering group\n plan.addStage($7ab494fe977143c6$var$clearSubstitutionFlags);\n plan.addStage([\n 'rphf'\n ], false);\n plan.addStage($7ab494fe977143c6$var$recordRphf);\n plan.addStage($7ab494fe977143c6$var$clearSubstitutionFlags);\n plan.addStage([\n 'pref'\n ]);\n plan.addStage($7ab494fe977143c6$var$recordPref);\n // Orthographic unit shaping group\n plan.addStage([\n 'rkrf',\n 'abvf',\n 'blwf',\n 'half',\n 'pstf',\n 'vatu',\n 'cjct'\n ]);\n plan.addStage($7ab494fe977143c6$var$reorder);\n // Topographical features\n // Scripts that need this are handled by the Arabic shaper, not implemented here for now.\n // plan.addStage(['isol', 'init', 'medi', 'fina', 'med2', 'fin2', 'fin3'], false);\n // Standard topographic presentation and positional feature application\n plan.addStage([\n 'abvs',\n 'blws',\n 'pres',\n 'psts',\n 'dist',\n 'abvm',\n 'blwm'\n ]);\n }\n static assignFeatures(plan, glyphs) {\n // Decompose split vowels\n // TODO: do this in a more general unicode normalizer\n for(let i = glyphs.length - 1; i >= 0; i--){\n let codepoint = glyphs[i].codePoints[0];\n if ($7ab494fe977143c6$var$decompositions[codepoint]) {\n let decomposed = $7ab494fe977143c6$var$decompositions[codepoint].map((c)=>{\n let g = plan.font.glyphForCodePoint(c);\n return new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(plan.font, g.id, [\n c\n ], glyphs[i].features);\n });\n glyphs.splice(i, 1, ...decomposed);\n }\n }\n }\n}\n(0, $6uUbQ$_)($7ab494fe977143c6$export$2e2bcd8739ae039, \"zeroMarkWidths\", 'BEFORE_GPOS');\nfunction $7ab494fe977143c6$var$useCategory(glyph) {\n return $7ab494fe977143c6$var$trie.get(glyph.codePoints[0]);\n}\nclass $7ab494fe977143c6$var$USEInfo {\n constructor(category, syllableType, syllable){\n this.category = category;\n this.syllableType = syllableType;\n this.syllable = syllable;\n }\n}\nfunction $7ab494fe977143c6$var$setupSyllables(font, glyphs) {\n let syllable = 0;\n for (let [start, end, tags] of $7ab494fe977143c6$var$stateMachine.match(glyphs.map($7ab494fe977143c6$var$useCategory))){\n ++syllable;\n // Create shaper info\n for(let i = start; i <= end; i++)glyphs[i].shaperInfo = new $7ab494fe977143c6$var$USEInfo($7ab494fe977143c6$var$categories[$7ab494fe977143c6$var$useCategory(glyphs[i])], tags[0], syllable);\n // Assign rphf feature\n let limit = glyphs[start].shaperInfo.category === 'R' ? 1 : Math.min(3, end - start);\n for(let i = start; i < start + limit; i++)glyphs[i].features.rphf = true;\n }\n}\nfunction $7ab494fe977143c6$var$clearSubstitutionFlags(font, glyphs) {\n for (let glyph of glyphs)glyph.substituted = false;\n}\nfunction $7ab494fe977143c6$var$recordRphf(font, glyphs) {\n for (let glyph of glyphs)if (glyph.substituted && glyph.features.rphf) // Mark a substituted repha.\n glyph.shaperInfo.category = 'R';\n}\nfunction $7ab494fe977143c6$var$recordPref(font, glyphs) {\n for (let glyph of glyphs)if (glyph.substituted) // Mark a substituted pref as VPre, as they behave the same way.\n glyph.shaperInfo.category = 'VPre';\n}\nfunction $7ab494fe977143c6$var$reorder(font, glyphs) {\n let dottedCircle = font.glyphForCodePoint(0x25cc).id;\n for(let start = 0, end = $7ab494fe977143c6$var$nextSyllable(glyphs, 0); start < glyphs.length; start = end, end = $7ab494fe977143c6$var$nextSyllable(glyphs, start)){\n let i, j;\n let info = glyphs[start].shaperInfo;\n let type = info.syllableType;\n // Only a few syllable types need reordering.\n if (type !== 'virama_terminated_cluster' && type !== 'standard_cluster' && type !== 'broken_cluster') continue;\n // Insert a dotted circle glyph in broken clusters.\n if (type === 'broken_cluster' && dottedCircle) {\n let g = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(font, dottedCircle, [\n 0x25cc\n ]);\n g.shaperInfo = info;\n // Insert after possible Repha.\n for(i = start; i < end && glyphs[i].shaperInfo.category === 'R'; i++);\n glyphs.splice(++i, 0, g);\n end++;\n }\n // Move things forward.\n if (info.category === 'R' && end - start > 1) // Got a repha. Reorder it to after first base, before first halant.\n for(i = start + 1; i < end; i++){\n info = glyphs[i].shaperInfo;\n if ($7ab494fe977143c6$var$isBase(info) || $7ab494fe977143c6$var$isHalant(glyphs[i])) {\n // If we hit a halant, move before it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n if ($7ab494fe977143c6$var$isHalant(glyphs[i])) i--;\n glyphs.splice(start, 0, ...glyphs.splice(start + 1, i - start), glyphs[i]);\n break;\n }\n }\n // Move things back.\n for(i = start, j = end; i < end; i++){\n info = glyphs[i].shaperInfo;\n if ($7ab494fe977143c6$var$isBase(info) || $7ab494fe977143c6$var$isHalant(glyphs[i])) // If we hit a halant, move after it; otherwise it's a base: move to it's\n // place, and shift things in between backward.\n j = $7ab494fe977143c6$var$isHalant(glyphs[i]) ? i + 1 : i;\n else if ((info.category === 'VPre' || info.category === 'VMPre') && j < i) glyphs.splice(j, 1, glyphs[i], ...glyphs.splice(j, i - j));\n }\n }\n}\nfunction $7ab494fe977143c6$var$nextSyllable(glyphs, start) {\n if (start >= glyphs.length) return start;\n let syllable = glyphs[start].shaperInfo.syllable;\n while(++start < glyphs.length && glyphs[start].shaperInfo.syllable === syllable);\n return start;\n}\nfunction $7ab494fe977143c6$var$isHalant(glyph) {\n return glyph.shaperInfo.category === 'H' && !glyph.isLigated;\n}\nfunction $7ab494fe977143c6$var$isBase(info) {\n return info.category === 'B' || info.category === 'GB';\n}\n\n\nconst $102b6fe50f1d50b4$var$SHAPERS = {\n arab: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n mong: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n syrc: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n 'nko ': (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n phag: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n mand: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n mani: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n phlp: (0, $764eb544bbe1ccf0$export$2e2bcd8739ae039),\n hang: (0, $e1c6bbc8cb416f8c$export$2e2bcd8739ae039),\n bng2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n beng: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n dev2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n deva: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n gjr2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n gujr: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n guru: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n gur2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n knda: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n knd2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n mlm2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n mlym: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n ory2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n orya: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n taml: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n tml2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n telu: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n tel2: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n khmr: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n bali: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n batk: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n brah: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n bugi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n buhd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n cakm: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n cham: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n dupl: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n egyp: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n gran: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n hano: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n java: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n kthi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n kali: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n khar: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n khoj: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sind: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n lepc: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n limb: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n mahj: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n // mand: UniversalShaper, // Mandaic\n // mani: UniversalShaper, // Manichaean\n mtei: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n modi: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n // mong: UniversalShaper, // Mongolian\n // 'nko ': UniversalShaper, // N’Ko\n hmng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n // phag: UniversalShaper, // Phags-pa\n // phlp: UniversalShaper, // Psalter Pahlavi\n rjng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n saur: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n shrd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sidd: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sinh: (0, $7826f90f6f0cecc9$export$2e2bcd8739ae039),\n sund: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n sylo: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tglg: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tagb: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tale: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n lana: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tavt: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n takr: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tibt: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tfng: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n tirh: (0, $7ab494fe977143c6$export$2e2bcd8739ae039),\n latn: (0, $649970d87335b30f$export$2e2bcd8739ae039),\n DFLT: (0, $649970d87335b30f$export$2e2bcd8739ae039 // Default\n )\n};\nfunction $102b6fe50f1d50b4$export$7877a478dd30fd3d(script) {\n if (!Array.isArray(script)) script = [\n script\n ];\n for (let s of script){\n let shaper = $102b6fe50f1d50b4$var$SHAPERS[s];\n if (shaper) return shaper;\n }\n return 0, $649970d87335b30f$export$2e2bcd8739ae039;\n}\n\n\n\n\n\nclass $0a876c45f1f7c41c$export$2e2bcd8739ae039 extends (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039) {\n applyLookup(lookupType, table) {\n switch(lookupType){\n case 1:\n {\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n let glyph = this.glyphIterator.cur;\n switch(table.version){\n case 1:\n glyph.id = glyph.id + table.deltaGlyphID & 0xffff;\n break;\n case 2:\n glyph.id = table.substitute.get(index);\n break;\n }\n return true;\n }\n case 2:\n {\n let index = this.coverageIndex(table.coverage);\n if (index !== -1) {\n let sequence = table.sequences.get(index);\n if (sequence.length === 0) {\n // If the sequence length is zero, delete the glyph.\n // The OpenType spec disallows this, but seems like Harfbuzz and Uniscribe allow it.\n this.glyphs.splice(this.glyphIterator.index, 1);\n return true;\n }\n this.glyphIterator.cur.id = sequence[0];\n this.glyphIterator.cur.ligatureComponent = 0;\n let features = this.glyphIterator.cur.features;\n let curGlyph = this.glyphIterator.cur;\n let replacement = sequence.slice(1).map((gid, i)=>{\n let glyph = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, gid, undefined, features);\n glyph.shaperInfo = curGlyph.shaperInfo;\n glyph.isLigated = curGlyph.isLigated;\n glyph.ligatureComponent = i + 1;\n glyph.substituted = true;\n glyph.isMultiplied = true;\n return glyph;\n });\n this.glyphs.splice(this.glyphIterator.index + 1, 0, ...replacement);\n return true;\n }\n return false;\n }\n case 3:\n {\n let index = this.coverageIndex(table.coverage);\n if (index !== -1) {\n let USER_INDEX = 0; // TODO\n this.glyphIterator.cur.id = table.alternateSet.get(index)[USER_INDEX];\n return true;\n }\n return false;\n }\n case 4:\n {\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n for (let ligature of table.ligatureSets.get(index)){\n let matched = this.sequenceMatchIndices(1, ligature.components);\n if (!matched) continue;\n let curGlyph = this.glyphIterator.cur;\n // Concatenate all of the characters the new ligature will represent\n let characters = curGlyph.codePoints.slice();\n for (let index of matched)characters.push(...this.glyphs[index].codePoints);\n // Create the replacement ligature glyph\n let ligatureGlyph = new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, ligature.glyph, characters, curGlyph.features);\n ligatureGlyph.shaperInfo = curGlyph.shaperInfo;\n ligatureGlyph.isLigated = true;\n ligatureGlyph.substituted = true;\n // From Harfbuzz:\n // - If it *is* a mark ligature, we don't allocate a new ligature id, and leave\n // the ligature to keep its old ligature id. This will allow it to attach to\n // a base ligature in GPOS. Eg. if the sequence is: LAM,LAM,SHADDA,FATHA,HEH,\n // and LAM,LAM,HEH for a ligature, they will leave SHADDA and FATHA with a\n // ligature id and component value of 2. Then if SHADDA,FATHA form a ligature\n // later, we don't want them to lose their ligature id/component, otherwise\n // GPOS will fail to correctly position the mark ligature on top of the\n // LAM,LAM,HEH ligature. See https://bugzilla.gnome.org/show_bug.cgi?id=676343\n //\n // - If a ligature is formed of components that some of which are also ligatures\n // themselves, and those ligature components had marks attached to *their*\n // components, we have to attach the marks to the new ligature component\n // positions! Now *that*'s tricky! And these marks may be following the\n // last component of the whole sequence, so we should loop forward looking\n // for them and update them.\n //\n // Eg. the sequence is LAM,LAM,SHADDA,FATHA,HEH, and the font first forms a\n // 'calt' ligature of LAM,HEH, leaving the SHADDA and FATHA with a ligature\n // id and component == 1. Now, during 'liga', the LAM and the LAM-HEH ligature\n // form a LAM-LAM-HEH ligature. We need to reassign the SHADDA and FATHA to\n // the new ligature with a component value of 2.\n //\n // This in fact happened to a font... See https://bugzilla.gnome.org/show_bug.cgi?id=437633\n let isMarkLigature = curGlyph.isMark;\n for(let i = 0; i < matched.length && isMarkLigature; i++)isMarkLigature = this.glyphs[matched[i]].isMark;\n ligatureGlyph.ligatureID = isMarkLigature ? null : this.ligatureID++;\n let lastLigID = curGlyph.ligatureID;\n let lastNumComps = curGlyph.codePoints.length;\n let curComps = lastNumComps;\n let idx = this.glyphIterator.index + 1;\n // Set ligatureID and ligatureComponent on glyphs that were skipped in the matched sequence.\n // This allows GPOS to attach marks to the correct ligature components.\n for (let matchIndex of matched){\n // Don't assign new ligature components for mark ligatures (see above)\n if (isMarkLigature) idx = matchIndex;\n else while(idx < matchIndex){\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[idx].ligatureComponent || 1, lastNumComps);\n this.glyphs[idx].ligatureID = ligatureGlyph.ligatureID;\n this.glyphs[idx].ligatureComponent = ligatureComponent;\n idx++;\n }\n lastLigID = this.glyphs[idx].ligatureID;\n lastNumComps = this.glyphs[idx].codePoints.length;\n curComps += lastNumComps;\n idx++; // skip base glyph\n }\n // Adjust ligature components for any marks following\n if (lastLigID && !isMarkLigature) for(let i = idx; i < this.glyphs.length; i++){\n if (this.glyphs[i].ligatureID === lastLigID) {\n var ligatureComponent = curComps - lastNumComps + Math.min(this.glyphs[i].ligatureComponent || 1, lastNumComps);\n this.glyphs[i].ligatureComponent = ligatureComponent;\n } else break;\n }\n // Delete the matched glyphs, and replace the current glyph with the ligature glyph\n for(let i = matched.length - 1; i >= 0; i--)this.glyphs.splice(matched[i], 1);\n this.glyphs[this.glyphIterator.index] = ligatureGlyph;\n return true;\n }\n return false;\n }\n case 5:\n return this.applyContext(table);\n case 6:\n return this.applyChainingContext(table);\n case 7:\n return this.applyLookup(table.lookupType, table.extension);\n default:\n throw new Error(`GSUB lookupType ${lookupType} is not supported`);\n }\n }\n}\n\n\n\nclass $c96c93587d49c14d$export$2e2bcd8739ae039 extends (0, $a83b9c36aaa94fd3$export$2e2bcd8739ae039) {\n applyPositionValue(sequenceIndex, value) {\n let position = this.positions[this.glyphIterator.peekIndex(sequenceIndex)];\n if (value.xAdvance != null) position.xAdvance += value.xAdvance;\n if (value.yAdvance != null) position.yAdvance += value.yAdvance;\n if (value.xPlacement != null) position.xOffset += value.xPlacement;\n if (value.yPlacement != null) position.yOffset += value.yPlacement;\n // Adjustments for font variations\n let variationProcessor = this.font._variationProcessor;\n let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n if (variationProcessor && variationStore) {\n if (value.xPlaDevice) position.xOffset += variationProcessor.getDelta(variationStore, value.xPlaDevice.a, value.xPlaDevice.b);\n if (value.yPlaDevice) position.yOffset += variationProcessor.getDelta(variationStore, value.yPlaDevice.a, value.yPlaDevice.b);\n if (value.xAdvDevice) position.xAdvance += variationProcessor.getDelta(variationStore, value.xAdvDevice.a, value.xAdvDevice.b);\n if (value.yAdvDevice) position.yAdvance += variationProcessor.getDelta(variationStore, value.yAdvDevice.a, value.yAdvDevice.b);\n }\n // TODO: device tables\n }\n applyLookup(lookupType, table) {\n switch(lookupType){\n case 1:\n {\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n switch(table.version){\n case 1:\n this.applyPositionValue(0, table.value);\n break;\n case 2:\n this.applyPositionValue(0, table.values.get(index));\n break;\n }\n return true;\n }\n case 2:\n {\n let nextGlyph = this.glyphIterator.peek();\n if (!nextGlyph) return false;\n let index = this.coverageIndex(table.coverage);\n if (index === -1) return false;\n switch(table.version){\n case 1:\n let set = table.pairSets.get(index);\n for (let pair of set)if (pair.secondGlyph === nextGlyph.id) {\n this.applyPositionValue(0, pair.value1);\n this.applyPositionValue(1, pair.value2);\n return true;\n }\n return false;\n case 2:\n let class1 = this.getClassID(this.glyphIterator.cur.id, table.classDef1);\n let class2 = this.getClassID(nextGlyph.id, table.classDef2);\n if (class1 === -1 || class2 === -1) return false;\n var pair = table.classRecords.get(class1).get(class2);\n this.applyPositionValue(0, pair.value1);\n this.applyPositionValue(1, pair.value2);\n return true;\n }\n }\n case 3:\n {\n let nextIndex = this.glyphIterator.peekIndex();\n let nextGlyph = this.glyphs[nextIndex];\n if (!nextGlyph) return false;\n let curRecord = table.entryExitRecords[this.coverageIndex(table.coverage)];\n if (!curRecord || !curRecord.exitAnchor) return false;\n let nextRecord = table.entryExitRecords[this.coverageIndex(table.coverage, nextGlyph.id)];\n if (!nextRecord || !nextRecord.entryAnchor) return false;\n let entry = this.getAnchor(nextRecord.entryAnchor);\n let exit = this.getAnchor(curRecord.exitAnchor);\n let cur = this.positions[this.glyphIterator.index];\n let next = this.positions[nextIndex];\n let d;\n switch(this.direction){\n case 'ltr':\n cur.xAdvance = exit.x + cur.xOffset;\n d = entry.x + next.xOffset;\n next.xAdvance -= d;\n next.xOffset -= d;\n break;\n case 'rtl':\n d = exit.x + cur.xOffset;\n cur.xAdvance -= d;\n cur.xOffset -= d;\n next.xAdvance = entry.x + next.xOffset;\n break;\n }\n if (this.glyphIterator.flags.rightToLeft) {\n this.glyphIterator.cur.cursiveAttachment = nextIndex;\n cur.yOffset = entry.y - exit.y;\n } else {\n nextGlyph.cursiveAttachment = this.glyphIterator.index;\n cur.yOffset = exit.y - entry.y;\n }\n return true;\n }\n case 4:\n {\n let markIndex = this.coverageIndex(table.markCoverage);\n if (markIndex === -1) return false;\n // search backward for a base glyph\n let baseGlyphIndex = this.glyphIterator.index;\n while(--baseGlyphIndex >= 0 && (this.glyphs[baseGlyphIndex].isMark || this.glyphs[baseGlyphIndex].ligatureComponent > 0));\n if (baseGlyphIndex < 0) return false;\n let baseIndex = this.coverageIndex(table.baseCoverage, this.glyphs[baseGlyphIndex].id);\n if (baseIndex === -1) return false;\n let markRecord = table.markArray[markIndex];\n let baseAnchor = table.baseArray[baseIndex][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n return true;\n }\n case 5:\n {\n let markIndex = this.coverageIndex(table.markCoverage);\n if (markIndex === -1) return false;\n // search backward for a base glyph\n let baseGlyphIndex = this.glyphIterator.index;\n while(--baseGlyphIndex >= 0 && this.glyphs[baseGlyphIndex].isMark);\n if (baseGlyphIndex < 0) return false;\n let ligIndex = this.coverageIndex(table.ligatureCoverage, this.glyphs[baseGlyphIndex].id);\n if (ligIndex === -1) return false;\n let ligAttach = table.ligatureArray[ligIndex];\n let markGlyph = this.glyphIterator.cur;\n let ligGlyph = this.glyphs[baseGlyphIndex];\n let compIndex = ligGlyph.ligatureID && ligGlyph.ligatureID === markGlyph.ligatureID && markGlyph.ligatureComponent > 0 ? Math.min(markGlyph.ligatureComponent, ligGlyph.codePoints.length) - 1 : ligGlyph.codePoints.length - 1;\n let markRecord = table.markArray[markIndex];\n let baseAnchor = ligAttach[compIndex][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, baseGlyphIndex);\n return true;\n }\n case 6:\n {\n let mark1Index = this.coverageIndex(table.mark1Coverage);\n if (mark1Index === -1) return false;\n // get the previous mark to attach to\n let prevIndex = this.glyphIterator.peekIndex(-1);\n let prev = this.glyphs[prevIndex];\n if (!prev || !prev.isMark) return false;\n let cur = this.glyphIterator.cur;\n // The following logic was borrowed from Harfbuzz\n let good = false;\n if (cur.ligatureID === prev.ligatureID) {\n if (!cur.ligatureID) good = true;\n else if (cur.ligatureComponent === prev.ligatureComponent) good = true;\n } else // If ligature ids don't match, it may be the case that one of the marks\n // itself is a ligature, in which case match.\n if (cur.ligatureID && !cur.ligatureComponent || prev.ligatureID && !prev.ligatureComponent) good = true;\n if (!good) return false;\n let mark2Index = this.coverageIndex(table.mark2Coverage, prev.id);\n if (mark2Index === -1) return false;\n let markRecord = table.mark1Array[mark1Index];\n let baseAnchor = table.mark2Array[mark2Index][markRecord.class];\n this.applyAnchor(markRecord, baseAnchor, prevIndex);\n return true;\n }\n case 7:\n return this.applyContext(table);\n case 8:\n return this.applyChainingContext(table);\n case 9:\n return this.applyLookup(table.lookupType, table.extension);\n default:\n throw new Error(`Unsupported GPOS table: ${lookupType}`);\n }\n }\n applyAnchor(markRecord, baseAnchor, baseGlyphIndex) {\n let baseCoords = this.getAnchor(baseAnchor);\n let markCoords = this.getAnchor(markRecord.markAnchor);\n let basePos = this.positions[baseGlyphIndex];\n let markPos = this.positions[this.glyphIterator.index];\n markPos.xOffset = baseCoords.x - markCoords.x;\n markPos.yOffset = baseCoords.y - markCoords.y;\n this.glyphIterator.cur.markAttachment = baseGlyphIndex;\n }\n getAnchor(anchor) {\n // TODO: contour point, device tables\n let x = anchor.xCoordinate;\n let y = anchor.yCoordinate;\n // Adjustments for font variations\n let variationProcessor = this.font._variationProcessor;\n let variationStore = this.font.GDEF && this.font.GDEF.itemVariationStore;\n if (variationProcessor && variationStore) {\n if (anchor.xDeviceTable) x += variationProcessor.getDelta(variationStore, anchor.xDeviceTable.a, anchor.xDeviceTable.b);\n if (anchor.yDeviceTable) y += variationProcessor.getDelta(variationStore, anchor.yDeviceTable.a, anchor.yDeviceTable.b);\n }\n return {\n x: x,\n y: y\n };\n }\n applyFeatures(userFeatures, glyphs, advances) {\n super.applyFeatures(userFeatures, glyphs, advances);\n for(var i = 0; i < this.glyphs.length; i++)this.fixCursiveAttachment(i);\n this.fixMarkAttachment();\n }\n fixCursiveAttachment(i) {\n let glyph = this.glyphs[i];\n if (glyph.cursiveAttachment != null) {\n let j = glyph.cursiveAttachment;\n glyph.cursiveAttachment = null;\n this.fixCursiveAttachment(j);\n this.positions[i].yOffset += this.positions[j].yOffset;\n }\n }\n fixMarkAttachment() {\n for(let i = 0; i < this.glyphs.length; i++){\n let glyph = this.glyphs[i];\n if (glyph.markAttachment != null) {\n let j = glyph.markAttachment;\n this.positions[i].xOffset += this.positions[j].xOffset;\n this.positions[i].yOffset += this.positions[j].yOffset;\n if (this.direction === 'ltr') for(let k = j; k < i; k++){\n this.positions[i].xOffset -= this.positions[k].xAdvance;\n this.positions[i].yOffset -= this.positions[k].yAdvance;\n }\n else for(let k = j + 1; k < i + 1; k++){\n this.positions[i].xOffset += this.positions[k].xAdvance;\n this.positions[i].yOffset += this.positions[k].yAdvance;\n }\n }\n }\n }\n}\n\n\nclass $a62492810de27e3d$export$2e2bcd8739ae039 {\n setup(glyphRun) {\n // Map glyphs to GlyphInfo objects so data can be passed between\n // GSUB and GPOS without mutating the real (shared) Glyph objects.\n this.glyphInfos = glyphRun.glyphs.map((glyph)=>new (0, $10e7b257e1a9a756$export$2e2bcd8739ae039)(this.font, glyph.id, [\n ...glyph.codePoints\n ]));\n // Select a script based on what is available in GSUB/GPOS.\n let script = null;\n if (this.GPOSProcessor) script = this.GPOSProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n if (this.GSUBProcessor) script = this.GSUBProcessor.selectScript(glyphRun.script, glyphRun.language, glyphRun.direction);\n // Choose a shaper based on the script, and setup a shaping plan.\n // This determines which features to apply to which glyphs.\n this.shaper = $102b6fe50f1d50b4$export$7877a478dd30fd3d(script);\n this.plan = new (0, $94d7a73bd2edfc9a$export$2e2bcd8739ae039)(this.font, script, glyphRun.direction);\n this.shaper.plan(this.plan, this.glyphInfos, glyphRun.features);\n // Assign chosen features to output glyph run\n for(let key in this.plan.allFeatures)glyphRun.features[key] = true;\n }\n substitute(glyphRun) {\n if (this.GSUBProcessor) {\n this.plan.process(this.GSUBProcessor, this.glyphInfos);\n // Map glyph infos back to normal Glyph objects\n glyphRun.glyphs = this.glyphInfos.map((glyphInfo)=>this.font.getGlyph(glyphInfo.id, glyphInfo.codePoints));\n }\n }\n position(glyphRun) {\n if (this.shaper.zeroMarkWidths === 'BEFORE_GPOS') this.zeroMarkAdvances(glyphRun.positions);\n if (this.GPOSProcessor) this.plan.process(this.GPOSProcessor, this.glyphInfos, glyphRun.positions);\n if (this.shaper.zeroMarkWidths === 'AFTER_GPOS') this.zeroMarkAdvances(glyphRun.positions);\n // Reverse the glyphs and positions if the script is right-to-left\n if (glyphRun.direction === 'rtl') {\n glyphRun.glyphs.reverse();\n glyphRun.positions.reverse();\n }\n return this.GPOSProcessor && this.GPOSProcessor.features;\n }\n zeroMarkAdvances(positions) {\n for(let i = 0; i < this.glyphInfos.length; i++)if (this.glyphInfos[i].isMark) {\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n cleanup() {\n this.glyphInfos = null;\n this.plan = null;\n this.shaper = null;\n }\n getAvailableFeatures(script, language) {\n let features = [];\n if (this.GSUBProcessor) {\n this.GSUBProcessor.selectScript(script, language);\n features.push(...Object.keys(this.GSUBProcessor.features));\n }\n if (this.GPOSProcessor) {\n this.GPOSProcessor.selectScript(script, language);\n features.push(...Object.keys(this.GPOSProcessor.features));\n }\n return features;\n }\n constructor(font){\n this.font = font;\n this.glyphInfos = null;\n this.plan = null;\n this.GSUBProcessor = null;\n this.GPOSProcessor = null;\n this.fallbackPosition = true;\n if (font.GSUB) this.GSUBProcessor = new (0, $0a876c45f1f7c41c$export$2e2bcd8739ae039)(font, font.GSUB);\n if (font.GPOS) this.GPOSProcessor = new (0, $c96c93587d49c14d$export$2e2bcd8739ae039)(font, font.GPOS);\n }\n}\n\n\nclass $4c0a7fa5df7a9ab1$export$2e2bcd8739ae039 {\n layout(string, features, script, language, direction) {\n // Make the features parameter optional\n if (typeof features === 'string') {\n direction = language;\n language = script;\n script = features;\n features = [];\n }\n // Map string to glyphs if needed\n if (typeof string === 'string') {\n // Attempt to detect the script from the string if not provided.\n if (script == null) script = $130d1a642ebcd2b7$export$e5cb25e204fb8450(string);\n var glyphs = this.font.glyphsForString(string);\n } else {\n // Attempt to detect the script from the glyph code points if not provided.\n if (script == null) {\n let codePoints = [];\n for (let glyph of string)codePoints.push(...glyph.codePoints);\n script = $130d1a642ebcd2b7$export$16fab0757cfc223d(codePoints);\n }\n var glyphs = string;\n }\n let glyphRun = new (0, $be07b3e97a42687a$export$2e2bcd8739ae039)(glyphs, features, script, language, direction);\n // Return early if there are no glyphs\n if (glyphs.length === 0) {\n glyphRun.positions = [];\n return glyphRun;\n }\n // Setup the advanced layout engine\n if (this.engine && this.engine.setup) this.engine.setup(glyphRun);\n // Substitute and position the glyphs\n this.substitute(glyphRun);\n this.position(glyphRun);\n this.hideDefaultIgnorables(glyphRun.glyphs, glyphRun.positions);\n // Let the layout engine clean up any state it might have\n if (this.engine && this.engine.cleanup) this.engine.cleanup();\n return glyphRun;\n }\n substitute(glyphRun) {\n // Call the advanced layout engine to make substitutions\n if (this.engine && this.engine.substitute) this.engine.substitute(glyphRun);\n }\n position(glyphRun) {\n // Get initial glyph positions\n glyphRun.positions = glyphRun.glyphs.map((glyph)=>new (0, $1ac75d9a55b67f01$export$2e2bcd8739ae039)(glyph.advanceWidth));\n let positioned = null;\n // Call the advanced layout engine. Returns the features applied.\n if (this.engine && this.engine.position) positioned = this.engine.position(glyphRun);\n // if there is no GPOS table, use unicode properties to position marks.\n if (!positioned && (!this.engine || this.engine.fallbackPosition)) {\n if (!this.unicodeLayoutEngine) this.unicodeLayoutEngine = new (0, $0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039)(this.font);\n this.unicodeLayoutEngine.positionGlyphs(glyphRun.glyphs, glyphRun.positions);\n }\n // if kerning is not supported by GPOS, do kerning with the TrueType/AAT kern table\n if ((!positioned || !positioned.kern) && glyphRun.features.kern !== false && this.font.kern) {\n if (!this.kernProcessor) this.kernProcessor = new (0, $0bba3a9db57637f3$export$2e2bcd8739ae039)(this.font);\n this.kernProcessor.process(glyphRun.glyphs, glyphRun.positions);\n glyphRun.features.kern = true;\n }\n }\n hideDefaultIgnorables(glyphs, positions) {\n let space = this.font.glyphForCodePoint(0x20);\n for(let i = 0; i < glyphs.length; i++)if (this.isDefaultIgnorable(glyphs[i].codePoints[0])) {\n glyphs[i] = space;\n positions[i].xAdvance = 0;\n positions[i].yAdvance = 0;\n }\n }\n isDefaultIgnorable(ch) {\n // From DerivedCoreProperties.txt in the Unicode database,\n // minus U+115F, U+1160, U+3164 and U+FFA0, which is what\n // Harfbuzz and Uniscribe do.\n let plane = ch >> 16;\n if (plane === 0) // BMP\n switch(ch >> 8){\n case 0x00:\n return ch === 0x00AD;\n case 0x03:\n return ch === 0x034F;\n case 0x06:\n return ch === 0x061C;\n case 0x17:\n return 0x17B4 <= ch && ch <= 0x17B5;\n case 0x18:\n return 0x180B <= ch && ch <= 0x180E;\n case 0x20:\n return 0x200B <= ch && ch <= 0x200F || 0x202A <= ch && ch <= 0x202E || 0x2060 <= ch && ch <= 0x206F;\n case 0xFE:\n return 0xFE00 <= ch && ch <= 0xFE0F || ch === 0xFEFF;\n case 0xFF:\n return 0xFFF0 <= ch && ch <= 0xFFF8;\n default:\n return false;\n }\n else // Other planes\n switch(plane){\n case 0x01:\n return 0x1BCA0 <= ch && ch <= 0x1BCA3 || 0x1D173 <= ch && ch <= 0x1D17A;\n case 0x0E:\n return 0xE0000 <= ch && ch <= 0xE0FFF;\n default:\n return false;\n }\n }\n getAvailableFeatures(script, language) {\n let features = [];\n if (this.engine) features.push(...this.engine.getAvailableFeatures(script, language));\n if (this.font.kern && features.indexOf('kern') === -1) features.push('kern');\n return features;\n }\n stringsForGlyph(gid) {\n let result = new Set;\n let codePoints = this.font._cmapProcessor.codePointsForGlyph(gid);\n for (let codePoint of codePoints)result.add(String.fromCodePoint(codePoint));\n if (this.engine && this.engine.stringsForGlyph) for (let string of this.engine.stringsForGlyph(gid))result.add(string);\n return Array.from(result);\n }\n constructor(font){\n this.font = font;\n this.unicodeLayoutEngine = null;\n this.kernProcessor = null;\n // Choose an advanced layout engine. We try the AAT morx table first since more\n // scripts are currently supported because the shaping logic is built into the font.\n if (this.font.morx) this.engine = new (0, $ba6dd74203be8728$export$2e2bcd8739ae039)(this.font);\n else if (this.font.GSUB || this.font.GPOS) this.engine = new (0, $a62492810de27e3d$export$2e2bcd8739ae039)(this.font);\n }\n}\n\n\n\n\n\n\nconst $f43aec954cdfdf21$var$SVG_COMMANDS = {\n moveTo: 'M',\n lineTo: 'L',\n quadraticCurveTo: 'Q',\n bezierCurveTo: 'C',\n closePath: 'Z'\n};\nclass $f43aec954cdfdf21$export$2e2bcd8739ae039 {\n /**\n * Compiles the path to a JavaScript function that can be applied with\n * a graphics context in order to render the path.\n * @return {string}\n */ toFunction() {\n return (ctx)=>{\n this.commands.forEach((c)=>{\n return ctx[c.command].apply(ctx, c.args);\n });\n };\n }\n /**\n * Converts the path to an SVG path data string\n * @return {string}\n */ toSVG() {\n let cmds = this.commands.map((c)=>{\n let args = c.args.map((arg)=>Math.round(arg * 100) / 100);\n return `${$f43aec954cdfdf21$var$SVG_COMMANDS[c.command]}${args.join(' ')}`;\n });\n return cmds.join('');\n }\n /**\n * Gets the \"control box\" of a path.\n * This is like the bounding box, but it includes all points including\n * control points of bezier segments and is much faster to compute than\n * the real bounding box.\n * @type {BBox}\n */ get cbox() {\n if (!this._cbox) {\n let cbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n for (let command of this.commands)for(let i = 0; i < command.args.length; i += 2)cbox.addPoint(command.args[i], command.args[i + 1]);\n this._cbox = Object.freeze(cbox);\n }\n return this._cbox;\n }\n /**\n * Gets the exact bounding box of the path by evaluating curve segments.\n * Slower to compute than the control box, but more accurate.\n * @type {BBox}\n */ get bbox() {\n if (this._bbox) return this._bbox;\n let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n let cx = 0, cy = 0;\n let f = (t)=>Math.pow(1 - t, 3) * p0[i] + 3 * Math.pow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * Math.pow(t, 2) * p2[i] + Math.pow(t, 3) * p3[i];\n for (let c of this.commands)switch(c.command){\n case 'moveTo':\n case 'lineTo':\n let [x, y] = c.args;\n bbox.addPoint(x, y);\n cx = x;\n cy = y;\n break;\n case 'quadraticCurveTo':\n case 'bezierCurveTo':\n if (c.command === 'quadraticCurveTo') {\n // http://fontforge.org/bezier.html\n var [qp1x, qp1y, p3x, p3y] = c.args;\n var cp1x = cx + 2 / 3 * (qp1x - cx); // CP1 = QP0 + 2/3 * (QP1-QP0)\n var cp1y = cy + 2 / 3 * (qp1y - cy);\n var cp2x = p3x + 2 / 3 * (qp1x - p3x); // CP2 = QP2 + 2/3 * (QP1-QP2)\n var cp2y = p3y + 2 / 3 * (qp1y - p3y);\n } else var [cp1x, cp1y, cp2x, cp2y, p3x, p3y] = c.args;\n // http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n bbox.addPoint(p3x, p3y);\n var p0 = [\n cx,\n cy\n ];\n var p1 = [\n cp1x,\n cp1y\n ];\n var p2 = [\n cp2x,\n cp2y\n ];\n var p3 = [\n p3x,\n p3y\n ];\n for(var i = 0; i <= 1; i++){\n let b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n let a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n if (a === 0) {\n if (b === 0) continue;\n let t = -c / b;\n if (0 < t && t < 1) {\n if (i === 0) bbox.addPoint(f(t), bbox.maxY);\n else if (i === 1) bbox.addPoint(bbox.maxX, f(t));\n }\n continue;\n }\n let b2ac = Math.pow(b, 2) - 4 * c * a;\n if (b2ac < 0) continue;\n let t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n if (0 < t1 && t1 < 1) {\n if (i === 0) bbox.addPoint(f(t1), bbox.maxY);\n else if (i === 1) bbox.addPoint(bbox.maxX, f(t1));\n }\n let t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n if (0 < t2 && t2 < 1) {\n if (i === 0) bbox.addPoint(f(t2), bbox.maxY);\n else if (i === 1) bbox.addPoint(bbox.maxX, f(t2));\n }\n }\n cx = p3x;\n cy = p3y;\n break;\n }\n return this._bbox = Object.freeze(bbox);\n }\n /**\n * Applies a mapping function to each point in the path.\n * @param {function} fn\n * @return {Path}\n */ mapPoints(fn) {\n let path = new $f43aec954cdfdf21$export$2e2bcd8739ae039;\n for (let c of this.commands){\n let args = [];\n for(let i = 0; i < c.args.length; i += 2){\n let [x, y] = fn(c.args[i], c.args[i + 1]);\n args.push(x, y);\n }\n path[c.command](...args);\n }\n return path;\n }\n /**\n * Transforms the path by the given matrix.\n */ transform(m0, m1, m2, m3, m4, m5) {\n return this.mapPoints((x, y)=>{\n const tx = m0 * x + m2 * y + m4;\n const ty = m1 * x + m3 * y + m5;\n return [\n tx,\n ty\n ];\n });\n }\n /**\n * Translates the path by the given offset.\n */ translate(x, y) {\n return this.transform(1, 0, 0, 1, x, y);\n }\n /**\n * Rotates the path by the given angle (in radians).\n */ rotate(angle) {\n let cos = Math.cos(angle);\n let sin = Math.sin(angle);\n return this.transform(cos, sin, -sin, cos, 0, 0);\n }\n /**\n * Scales the path.\n */ scale(scaleX, scaleY = scaleX) {\n return this.transform(scaleX, 0, 0, scaleY, 0, 0);\n }\n constructor(){\n this.commands = [];\n this._bbox = null;\n this._cbox = null;\n }\n}\nfor (let command of [\n 'moveTo',\n 'lineTo',\n 'quadraticCurveTo',\n 'bezierCurveTo',\n 'closePath'\n])$f43aec954cdfdf21$export$2e2bcd8739ae039.prototype[command] = function(...args) {\n this._bbox = this._cbox = null;\n this.commands.push({\n command: command,\n args: args\n });\n return this;\n};\n\n\n\nvar $7713b9b7b438dff8$export$2e2bcd8739ae039 = [\n '.notdef',\n '.null',\n 'nonmarkingreturn',\n 'space',\n 'exclam',\n 'quotedbl',\n 'numbersign',\n 'dollar',\n 'percent',\n 'ampersand',\n 'quotesingle',\n 'parenleft',\n 'parenright',\n 'asterisk',\n 'plus',\n 'comma',\n 'hyphen',\n 'period',\n 'slash',\n 'zero',\n 'one',\n 'two',\n 'three',\n 'four',\n 'five',\n 'six',\n 'seven',\n 'eight',\n 'nine',\n 'colon',\n 'semicolon',\n 'less',\n 'equal',\n 'greater',\n 'question',\n 'at',\n 'A',\n 'B',\n 'C',\n 'D',\n 'E',\n 'F',\n 'G',\n 'H',\n 'I',\n 'J',\n 'K',\n 'L',\n 'M',\n 'N',\n 'O',\n 'P',\n 'Q',\n 'R',\n 'S',\n 'T',\n 'U',\n 'V',\n 'W',\n 'X',\n 'Y',\n 'Z',\n 'bracketleft',\n 'backslash',\n 'bracketright',\n 'asciicircum',\n 'underscore',\n 'grave',\n 'a',\n 'b',\n 'c',\n 'd',\n 'e',\n 'f',\n 'g',\n 'h',\n 'i',\n 'j',\n 'k',\n 'l',\n 'm',\n 'n',\n 'o',\n 'p',\n 'q',\n 'r',\n 's',\n 't',\n 'u',\n 'v',\n 'w',\n 'x',\n 'y',\n 'z',\n 'braceleft',\n 'bar',\n 'braceright',\n 'asciitilde',\n 'Adieresis',\n 'Aring',\n 'Ccedilla',\n 'Eacute',\n 'Ntilde',\n 'Odieresis',\n 'Udieresis',\n 'aacute',\n 'agrave',\n 'acircumflex',\n 'adieresis',\n 'atilde',\n 'aring',\n 'ccedilla',\n 'eacute',\n 'egrave',\n 'ecircumflex',\n 'edieresis',\n 'iacute',\n 'igrave',\n 'icircumflex',\n 'idieresis',\n 'ntilde',\n 'oacute',\n 'ograve',\n 'ocircumflex',\n 'odieresis',\n 'otilde',\n 'uacute',\n 'ugrave',\n 'ucircumflex',\n 'udieresis',\n 'dagger',\n 'degree',\n 'cent',\n 'sterling',\n 'section',\n 'bullet',\n 'paragraph',\n 'germandbls',\n 'registered',\n 'copyright',\n 'trademark',\n 'acute',\n 'dieresis',\n 'notequal',\n 'AE',\n 'Oslash',\n 'infinity',\n 'plusminus',\n 'lessequal',\n 'greaterequal',\n 'yen',\n 'mu',\n 'partialdiff',\n 'summation',\n 'product',\n 'pi',\n 'integral',\n 'ordfeminine',\n 'ordmasculine',\n 'Omega',\n 'ae',\n 'oslash',\n 'questiondown',\n 'exclamdown',\n 'logicalnot',\n 'radical',\n 'florin',\n 'approxequal',\n 'Delta',\n 'guillemotleft',\n 'guillemotright',\n 'ellipsis',\n 'nonbreakingspace',\n 'Agrave',\n 'Atilde',\n 'Otilde',\n 'OE',\n 'oe',\n 'endash',\n 'emdash',\n 'quotedblleft',\n 'quotedblright',\n 'quoteleft',\n 'quoteright',\n 'divide',\n 'lozenge',\n 'ydieresis',\n 'Ydieresis',\n 'fraction',\n 'currency',\n 'guilsinglleft',\n 'guilsinglright',\n 'fi',\n 'fl',\n 'daggerdbl',\n 'periodcentered',\n 'quotesinglbase',\n 'quotedblbase',\n 'perthousand',\n 'Acircumflex',\n 'Ecircumflex',\n 'Aacute',\n 'Edieresis',\n 'Egrave',\n 'Iacute',\n 'Icircumflex',\n 'Idieresis',\n 'Igrave',\n 'Oacute',\n 'Ocircumflex',\n 'apple',\n 'Ograve',\n 'Uacute',\n 'Ucircumflex',\n 'Ugrave',\n 'dotlessi',\n 'circumflex',\n 'tilde',\n 'macron',\n 'breve',\n 'dotaccent',\n 'ring',\n 'cedilla',\n 'hungarumlaut',\n 'ogonek',\n 'caron',\n 'Lslash',\n 'lslash',\n 'Scaron',\n 'scaron',\n 'Zcaron',\n 'zcaron',\n 'brokenbar',\n 'Eth',\n 'eth',\n 'Yacute',\n 'yacute',\n 'Thorn',\n 'thorn',\n 'minus',\n 'multiply',\n 'onesuperior',\n 'twosuperior',\n 'threesuperior',\n 'onehalf',\n 'onequarter',\n 'threequarters',\n 'franc',\n 'Gbreve',\n 'gbreve',\n 'Idotaccent',\n 'Scedilla',\n 'scedilla',\n 'Cacute',\n 'cacute',\n 'Ccaron',\n 'ccaron',\n 'dcroat'\n];\n\n\nclass $f92906be28e61769$export$2e2bcd8739ae039 {\n _getPath() {\n return new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039)();\n }\n _getCBox() {\n return this.path.cbox;\n }\n _getBBox() {\n return this.path.bbox;\n }\n _getTableMetrics(table) {\n if (this.id < table.metrics.length) return table.metrics.get(this.id);\n let metric = table.metrics.get(table.metrics.length - 1);\n let res = {\n advance: metric ? metric.advance : 0,\n bearing: table.bearings.get(this.id - table.metrics.length) || 0\n };\n return res;\n }\n _getMetrics(cbox) {\n if (this._metrics) return this._metrics;\n let { advance: advanceWidth, bearing: leftBearing } = this._getTableMetrics(this._font.hmtx);\n // For vertical metrics, use vmtx if available, or fall back to global data from OS/2 or hhea\n if (this._font.vmtx) var { advance: advanceHeight, bearing: topBearing } = this._getTableMetrics(this._font.vmtx);\n else {\n let os2;\n if (typeof cbox === 'undefined' || cbox === null) ({ cbox: cbox } = this);\n if ((os2 = this._font['OS/2']) && os2.version > 0) {\n var advanceHeight = Math.abs(os2.typoAscender - os2.typoDescender);\n var topBearing = os2.typoAscender - cbox.maxY;\n } else {\n let { hhea: hhea } = this._font;\n var advanceHeight = Math.abs(hhea.ascent - hhea.descent);\n var topBearing = hhea.ascent - cbox.maxY;\n }\n }\n if (this._font._variationProcessor && this._font.HVAR) advanceWidth += this._font._variationProcessor.getAdvanceAdjustment(this.id, this._font.HVAR);\n return this._metrics = {\n advanceWidth: advanceWidth,\n advanceHeight: advanceHeight,\n leftBearing: leftBearing,\n topBearing: topBearing\n };\n }\n /**\n * The glyph’s control box.\n * This is often the same as the bounding box, but is faster to compute.\n * Because of the way bezier curves are defined, some of the control points\n * can be outside of the bounding box. Where `bbox` takes this into account,\n * `cbox` does not. Thus, cbox is less accurate, but faster to compute.\n * See [here](http://www.freetype.org/freetype2/docs/glyphs/glyphs-6.html#section-2)\n * for a more detailed description.\n *\n * @type {BBox}\n */ get cbox() {\n return this._getCBox();\n }\n /**\n * The glyph’s bounding box, i.e. the rectangle that encloses the\n * glyph outline as tightly as possible.\n * @type {BBox}\n */ get bbox() {\n return this._getBBox();\n }\n /**\n * A vector Path object representing the glyph outline.\n * @type {Path}\n */ get path() {\n // Cache the path so we only decode it once\n // Decoding is actually performed by subclasses\n return this._getPath();\n }\n /**\n * Returns a path scaled to the given font size.\n * @param {number} size\n * @return {Path}\n */ getScaledPath(size) {\n let scale = 1 / this._font.unitsPerEm * size;\n return this.path.scale(scale);\n }\n /**\n * The glyph's advance width.\n * @type {number}\n */ get advanceWidth() {\n return this._getMetrics().advanceWidth;\n }\n /**\n * The glyph's advance height.\n * @type {number}\n */ get advanceHeight() {\n return this._getMetrics().advanceHeight;\n }\n get ligatureCaretPositions() {}\n _getName() {\n let { post: post } = this._font;\n if (!post) return null;\n switch(post.version){\n case 1:\n return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[this.id];\n case 2:\n let id = post.glyphNameIndex[this.id];\n if (id < (0, $7713b9b7b438dff8$export$2e2bcd8739ae039).length) return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[id];\n return post.names[id - (0, $7713b9b7b438dff8$export$2e2bcd8739ae039).length];\n case 2.5:\n return (0, $7713b9b7b438dff8$export$2e2bcd8739ae039)[this.id + post.offsets[this.id]];\n case 4:\n return String.fromCharCode(post.map[this.id]);\n }\n }\n /**\n * The glyph's name\n * @type {string}\n */ get name() {\n return this._getName();\n }\n /**\n * Renders the glyph to the given graphics context, at the specified font size.\n * @param {CanvasRenderingContext2d} ctx\n * @param {number} size\n */ render(ctx, size) {\n ctx.save();\n let scale = 1 / this._font.head.unitsPerEm * size;\n ctx.scale(scale, scale);\n let fn = this.path.toFunction();\n fn(ctx);\n ctx.fill();\n ctx.restore();\n }\n constructor(id, codePoints, font){\n /**\n * The glyph id in the font\n * @type {number}\n */ this.id = id;\n /**\n * An array of unicode code points that are represented by this glyph.\n * There can be multiple code points in the case of ligatures and other glyphs\n * that represent multiple visual characters.\n * @type {number[]}\n */ this.codePoints = codePoints;\n this._font = font;\n // TODO: get this info from GDEF if available\n this.isMark = this.codePoints.length > 0 && this.codePoints.every((0, $6uUbQ$isMark));\n this.isLigature = this.codePoints.length > 1;\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"cbox\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"bbox\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"path\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"advanceWidth\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"advanceHeight\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $f92906be28e61769$export$2e2bcd8739ae039.prototype, \"name\", null);\n\n\n\n\n\n// The header for both simple and composite glyphs\nlet $69aac16029968692$var$GlyfHeader = new $6uUbQ$Struct({\n numberOfContours: $6uUbQ$int16,\n xMin: $6uUbQ$int16,\n yMin: $6uUbQ$int16,\n xMax: $6uUbQ$int16,\n yMax: $6uUbQ$int16\n});\n// Flags for simple glyphs\nconst $69aac16029968692$var$ON_CURVE = 1;\nconst $69aac16029968692$var$X_SHORT_VECTOR = 2;\nconst $69aac16029968692$var$Y_SHORT_VECTOR = 4;\nconst $69aac16029968692$var$REPEAT = 8;\nconst $69aac16029968692$var$SAME_X = 16;\nconst $69aac16029968692$var$SAME_Y = 32;\n// Flags for composite glyphs\nconst $69aac16029968692$var$ARG_1_AND_2_ARE_WORDS = 1;\nconst $69aac16029968692$var$ARGS_ARE_XY_VALUES = 2;\nconst $69aac16029968692$var$ROUND_XY_TO_GRID = 4;\nconst $69aac16029968692$var$WE_HAVE_A_SCALE = 8;\nconst $69aac16029968692$var$MORE_COMPONENTS = 32;\nconst $69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE = 64;\nconst $69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO = 128;\nconst $69aac16029968692$var$WE_HAVE_INSTRUCTIONS = 256;\nconst $69aac16029968692$var$USE_MY_METRICS = 512;\nconst $69aac16029968692$var$OVERLAP_COMPOUND = 1024;\nconst $69aac16029968692$var$SCALED_COMPONENT_OFFSET = 2048;\nconst $69aac16029968692$var$UNSCALED_COMPONENT_OFFSET = 4096;\nclass $69aac16029968692$export$baf26146a414f24a {\n copy() {\n return new $69aac16029968692$export$baf26146a414f24a(this.onCurve, this.endContour, this.x, this.y);\n }\n constructor(onCurve, endContour, x = 0, y = 0){\n this.onCurve = onCurve;\n this.endContour = endContour;\n this.x = x;\n this.y = y;\n }\n}\n// Represents a component in a composite glyph\nclass $69aac16029968692$var$Component {\n constructor(glyphID, dx, dy){\n this.glyphID = glyphID;\n this.dx = dx;\n this.dy = dy;\n this.pos = 0;\n this.scaleX = this.scaleY = 1;\n this.scale01 = this.scale10 = 0;\n }\n}\nclass $69aac16029968692$export$2e2bcd8739ae039 extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {\n // Parses just the glyph header and returns the bounding box\n _getCBox(internal) {\n // We need to decode the glyph if variation processing is requested,\n // so it's easier just to recompute the path's cbox after decoding.\n if (this._font._variationProcessor && !internal) return this.path.cbox;\n let stream = this._font._getTableStream('glyf');\n stream.pos += this._font.loca.offsets[this.id];\n let glyph = $69aac16029968692$var$GlyfHeader.decode(stream);\n let cbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)(glyph.xMin, glyph.yMin, glyph.xMax, glyph.yMax);\n return Object.freeze(cbox);\n }\n // Parses a single glyph coordinate\n _parseGlyphCoord(stream, prev, short, same) {\n if (short) {\n var val = stream.readUInt8();\n if (!same) val = -val;\n val += prev;\n } else if (same) var val = prev;\n else var val = prev + stream.readInt16BE();\n return val;\n }\n // Decodes the glyph data into points for simple glyphs,\n // or components for composite glyphs\n _decode() {\n let glyfPos = this._font.loca.offsets[this.id];\n let nextPos = this._font.loca.offsets[this.id + 1];\n // Nothing to do if there is no data for this glyph\n if (glyfPos === nextPos) return null;\n let stream = this._font._getTableStream('glyf');\n stream.pos += glyfPos;\n let startPos = stream.pos;\n let glyph = $69aac16029968692$var$GlyfHeader.decode(stream);\n if (glyph.numberOfContours > 0) this._decodeSimple(glyph, stream);\n else if (glyph.numberOfContours < 0) this._decodeComposite(glyph, stream, startPos);\n return glyph;\n }\n _decodeSimple(glyph, stream) {\n // this is a simple glyph\n glyph.points = [];\n let endPtsOfContours = new $6uUbQ$Array($6uUbQ$uint16, glyph.numberOfContours).decode(stream);\n glyph.instructions = new $6uUbQ$Array($6uUbQ$uint8, $6uUbQ$uint16).decode(stream);\n let flags = [];\n let numCoords = endPtsOfContours[endPtsOfContours.length - 1] + 1;\n while(flags.length < numCoords){\n var flag = stream.readUInt8();\n flags.push(flag);\n // check for repeat flag\n if (flag & $69aac16029968692$var$REPEAT) {\n let count = stream.readUInt8();\n for(let j = 0; j < count; j++)flags.push(flag);\n }\n }\n for(var i = 0; i < flags.length; i++){\n var flag = flags[i];\n let point = new $69aac16029968692$export$baf26146a414f24a(!!(flag & $69aac16029968692$var$ON_CURVE), endPtsOfContours.indexOf(i) >= 0, 0, 0);\n glyph.points.push(point);\n }\n let px = 0;\n for(var i = 0; i < flags.length; i++){\n var flag = flags[i];\n glyph.points[i].x = px = this._parseGlyphCoord(stream, px, flag & $69aac16029968692$var$X_SHORT_VECTOR, flag & $69aac16029968692$var$SAME_X);\n }\n let py = 0;\n for(var i = 0; i < flags.length; i++){\n var flag = flags[i];\n glyph.points[i].y = py = this._parseGlyphCoord(stream, py, flag & $69aac16029968692$var$Y_SHORT_VECTOR, flag & $69aac16029968692$var$SAME_Y);\n }\n if (this._font._variationProcessor) {\n let points = glyph.points.slice();\n points.push(...this._getPhantomPoints(glyph));\n this._font._variationProcessor.transformPoints(this.id, points);\n glyph.phantomPoints = points.slice(-4);\n }\n return;\n }\n _decodeComposite(glyph, stream, offset = 0) {\n // this is a composite glyph\n glyph.components = [];\n let haveInstructions = false;\n let flags = $69aac16029968692$var$MORE_COMPONENTS;\n while(flags & $69aac16029968692$var$MORE_COMPONENTS){\n flags = stream.readUInt16BE();\n let gPos = stream.pos - offset;\n let glyphID = stream.readUInt16BE();\n if (!haveInstructions) haveInstructions = (flags & $69aac16029968692$var$WE_HAVE_INSTRUCTIONS) !== 0;\n if (flags & $69aac16029968692$var$ARG_1_AND_2_ARE_WORDS) {\n var dx = stream.readInt16BE();\n var dy = stream.readInt16BE();\n } else {\n var dx = stream.readInt8();\n var dy = stream.readInt8();\n }\n var component = new $69aac16029968692$var$Component(glyphID, dx, dy);\n component.pos = gPos;\n if (flags & $69aac16029968692$var$WE_HAVE_A_SCALE) // fixed number with 14 bits of fraction\n component.scaleX = component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n else if (flags & $69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE) {\n component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n } else if (flags & $69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO) {\n component.scaleX = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scale01 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scale10 = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n component.scaleY = (stream.readUInt8() << 24 | stream.readUInt8() << 16) / 1073741824;\n }\n glyph.components.push(component);\n }\n if (this._font._variationProcessor) {\n let points = [];\n for(let j = 0; j < glyph.components.length; j++){\n var component = glyph.components[j];\n points.push(new $69aac16029968692$export$baf26146a414f24a(true, true, component.dx, component.dy));\n }\n points.push(...this._getPhantomPoints(glyph));\n this._font._variationProcessor.transformPoints(this.id, points);\n glyph.phantomPoints = points.splice(-4, 4);\n for(let i = 0; i < points.length; i++){\n let point = points[i];\n glyph.components[i].dx = point.x;\n glyph.components[i].dy = point.y;\n }\n }\n return haveInstructions;\n }\n _getPhantomPoints(glyph) {\n let cbox = this._getCBox(true);\n if (this._metrics == null) this._metrics = (0, $f92906be28e61769$export$2e2bcd8739ae039).prototype._getMetrics.call(this, cbox);\n let { advanceWidth: advanceWidth, advanceHeight: advanceHeight, leftBearing: leftBearing, topBearing: topBearing } = this._metrics;\n return [\n new $69aac16029968692$export$baf26146a414f24a(false, true, glyph.xMin - leftBearing, 0),\n new $69aac16029968692$export$baf26146a414f24a(false, true, glyph.xMin - leftBearing + advanceWidth, 0),\n new $69aac16029968692$export$baf26146a414f24a(false, true, 0, glyph.yMax + topBearing),\n new $69aac16029968692$export$baf26146a414f24a(false, true, 0, glyph.yMax + topBearing + advanceHeight)\n ];\n }\n // Decodes font data, resolves composite glyphs, and returns an array of contours\n _getContours() {\n let glyph = this._decode();\n if (!glyph) return [];\n let points = [];\n if (glyph.numberOfContours < 0) // resolve composite glyphs\n for (let component of glyph.components){\n let contours = this._font.getGlyph(component.glyphID)._getContours();\n for(let i = 0; i < contours.length; i++){\n let contour = contours[i];\n for(let j = 0; j < contour.length; j++){\n let point = contour[j];\n let x = point.x * component.scaleX + point.y * component.scale01 + component.dx;\n let y = point.y * component.scaleY + point.x * component.scale10 + component.dy;\n points.push(new $69aac16029968692$export$baf26146a414f24a(point.onCurve, point.endContour, x, y));\n }\n }\n }\n else points = glyph.points || [];\n // Recompute and cache metrics if we performed variation processing, and don't have an HVAR table\n if (glyph.phantomPoints && !this._font.directory.tables.HVAR) {\n this._metrics.advanceWidth = glyph.phantomPoints[1].x - glyph.phantomPoints[0].x;\n this._metrics.advanceHeight = glyph.phantomPoints[3].y - glyph.phantomPoints[2].y;\n this._metrics.leftBearing = glyph.xMin - glyph.phantomPoints[0].x;\n this._metrics.topBearing = glyph.phantomPoints[2].y - glyph.yMax;\n }\n let contours = [];\n let cur = [];\n for(let k = 0; k < points.length; k++){\n var point = points[k];\n cur.push(point);\n if (point.endContour) {\n contours.push(cur);\n cur = [];\n }\n }\n return contours;\n }\n _getMetrics() {\n if (this._metrics) return this._metrics;\n let cbox = this._getCBox(true);\n super._getMetrics(cbox);\n if (this._font._variationProcessor && !this._font.HVAR) // No HVAR table, decode the glyph. This triggers recomputation of metrics.\n this.path;\n return this._metrics;\n }\n // Converts contours to a Path object that can be rendered\n _getPath() {\n let contours = this._getContours();\n let path = new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039);\n for(let i = 0; i < contours.length; i++){\n let contour = contours[i];\n let firstPt = contour[0];\n let lastPt = contour[contour.length - 1];\n let start = 0;\n if (firstPt.onCurve) {\n // The first point will be consumed by the moveTo command, so skip in the loop\n var curvePt = null;\n start = 1;\n } else {\n if (lastPt.onCurve) // Start at the last point if the first point is off curve and the last point is on curve\n firstPt = lastPt;\n else // Start at the middle if both the first and last points are off curve\n firstPt = new $69aac16029968692$export$baf26146a414f24a(false, false, (firstPt.x + lastPt.x) / 2, (firstPt.y + lastPt.y) / 2);\n var curvePt = firstPt;\n }\n path.moveTo(firstPt.x, firstPt.y);\n for(let j = start; j < contour.length; j++){\n let pt = contour[j];\n let prevPt = j === 0 ? firstPt : contour[j - 1];\n if (prevPt.onCurve && pt.onCurve) path.lineTo(pt.x, pt.y);\n else if (prevPt.onCurve && !pt.onCurve) var curvePt = pt;\n else if (!prevPt.onCurve && !pt.onCurve) {\n let midX = (prevPt.x + pt.x) / 2;\n let midY = (prevPt.y + pt.y) / 2;\n path.quadraticCurveTo(prevPt.x, prevPt.y, midX, midY);\n var curvePt = pt;\n } else if (!prevPt.onCurve && pt.onCurve) {\n path.quadraticCurveTo(curvePt.x, curvePt.y, pt.x, pt.y);\n var curvePt = null;\n } else throw new Error(\"Unknown TTF path state\");\n }\n // Connect the first and last points\n if (curvePt) path.quadraticCurveTo(curvePt.x, curvePt.y, firstPt.x, firstPt.y);\n path.closePath();\n }\n return path;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'TTF');\n }\n}\n\n\n\n\n\nclass $62cc5109c6101893$export$2e2bcd8739ae039 extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {\n _getName() {\n if (this._font.CFF2) return super._getName();\n return this._font['CFF '].getGlyphName(this.id);\n }\n bias(s) {\n if (s.length < 1240) return 107;\n else if (s.length < 33900) return 1131;\n else return 32768;\n }\n _getPath() {\n let cff = this._font.CFF2 || this._font['CFF '];\n let { stream: stream } = cff;\n let str = cff.topDict.CharStrings[this.id];\n let end = str.offset + str.length;\n stream.pos = str.offset;\n let path = new (0, $f43aec954cdfdf21$export$2e2bcd8739ae039);\n let stack = [];\n let trans = [];\n let width = null;\n let nStems = 0;\n let x = 0, y = 0;\n let usedGsubrs;\n let usedSubrs;\n let open = false;\n this._usedGsubrs = usedGsubrs = {};\n this._usedSubrs = usedSubrs = {};\n let gsubrs = cff.globalSubrIndex || [];\n let gsubrsBias = this.bias(gsubrs);\n let privateDict = cff.privateDictForGlyph(this.id) || {};\n let subrs = privateDict.Subrs || [];\n let subrsBias = this.bias(subrs);\n let vstore = cff.topDict.vstore && cff.topDict.vstore.itemVariationStore;\n let vsindex = privateDict.vsindex;\n let variationProcessor = this._font._variationProcessor;\n function checkWidth() {\n if (width == null) width = stack.shift() + privateDict.nominalWidthX;\n }\n function parseStems() {\n if (stack.length % 2 !== 0) checkWidth();\n nStems += stack.length >> 1;\n return stack.length = 0;\n }\n function moveTo(x, y) {\n if (open) path.closePath();\n path.moveTo(x, y);\n open = true;\n }\n let parse = function() {\n while(stream.pos < end){\n let op = stream.readUInt8();\n if (op < 32) {\n let index, subr, phase;\n let c1x, c1y, c2x, c2y, c3x, c3y;\n let c4x, c4y, c5x, c5y, c6x, c6y;\n let pts;\n switch(op){\n case 1:\n case 3:\n case 18:\n case 23:\n parseStems();\n break;\n case 4:\n if (stack.length > 1) checkWidth();\n y += stack.shift();\n moveTo(x, y);\n break;\n case 5:\n while(stack.length >= 2){\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n break;\n case 6:\n case 7:\n phase = op === 6;\n while(stack.length >= 1){\n if (phase) x += stack.shift();\n else y += stack.shift();\n path.lineTo(x, y);\n phase = !phase;\n }\n break;\n case 8:\n while(stack.length > 0){\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n case 10:\n index = stack.pop() + subrsBias;\n subr = subrs[index];\n if (subr) {\n usedSubrs[index] = true;\n let p = stream.pos;\n let e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n break;\n case 11:\n if (cff.version >= 2) break;\n return;\n case 14:\n if (cff.version >= 2) break;\n if (stack.length > 0) checkWidth();\n if (open) {\n path.closePath();\n open = false;\n }\n break;\n case 15:\n if (cff.version < 2) throw new Error('vsindex operator not supported in CFF v1');\n vsindex = stack.pop();\n break;\n case 16:\n {\n if (cff.version < 2) throw new Error('blend operator not supported in CFF v1');\n if (!variationProcessor) throw new Error('blend operator in non-variation font');\n let blendVector = variationProcessor.getBlendVector(vstore, vsindex);\n let numBlends = stack.pop();\n let numOperands = numBlends * blendVector.length;\n let delta = stack.length - numOperands;\n let base = delta - numBlends;\n for(let i = 0; i < numBlends; i++){\n let sum = stack[base + i];\n for(let j = 0; j < blendVector.length; j++)sum += blendVector[j] * stack[delta++];\n stack[base + i] = sum;\n }\n while(numOperands--)stack.pop();\n break;\n }\n case 19:\n case 20:\n parseStems();\n stream.pos += nStems + 7 >> 3;\n break;\n case 21:\n if (stack.length > 2) checkWidth();\n x += stack.shift();\n y += stack.shift();\n moveTo(x, y);\n break;\n case 22:\n if (stack.length > 1) checkWidth();\n x += stack.shift();\n moveTo(x, y);\n break;\n case 24:\n while(stack.length >= 8){\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n break;\n case 25:\n while(stack.length >= 8){\n x += stack.shift();\n y += stack.shift();\n path.lineTo(x, y);\n }\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n break;\n case 26:\n if (stack.length % 2) x += stack.shift();\n while(stack.length >= 4){\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x;\n y = c2y + stack.shift();\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n case 27:\n if (stack.length % 2) y += stack.shift();\n while(stack.length >= 4){\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n }\n break;\n case 28:\n stack.push(stream.readInt16BE());\n break;\n case 29:\n index = stack.pop() + gsubrsBias;\n subr = gsubrs[index];\n if (subr) {\n usedGsubrs[index] = true;\n let p = stream.pos;\n let e = end;\n stream.pos = subr.offset;\n end = subr.offset + subr.length;\n parse();\n stream.pos = p;\n end = e;\n }\n break;\n case 30:\n case 31:\n phase = op === 31;\n while(stack.length >= 4){\n if (phase) {\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n y = c2y + stack.shift();\n x = c2x + (stack.length === 1 ? stack.shift() : 0);\n } else {\n c1x = x;\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n x = c2x + stack.shift();\n y = c2y + (stack.length === 1 ? stack.shift() : 0);\n }\n path.bezierCurveTo(c1x, c1y, c2x, c2y, x, y);\n phase = !phase;\n }\n break;\n case 12:\n op = stream.readUInt8();\n switch(op){\n case 3:\n let a = stack.pop();\n let b = stack.pop();\n stack.push(a && b ? 1 : 0);\n break;\n case 4:\n a = stack.pop();\n b = stack.pop();\n stack.push(a || b ? 1 : 0);\n break;\n case 5:\n a = stack.pop();\n stack.push(a ? 0 : 1);\n break;\n case 9:\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case 10:\n a = stack.pop();\n b = stack.pop();\n stack.push(a + b);\n break;\n case 11:\n a = stack.pop();\n b = stack.pop();\n stack.push(a - b);\n break;\n case 12:\n a = stack.pop();\n b = stack.pop();\n stack.push(a / b);\n break;\n case 14:\n a = stack.pop();\n stack.push(-a);\n break;\n case 15:\n a = stack.pop();\n b = stack.pop();\n stack.push(a === b ? 1 : 0);\n break;\n case 18:\n stack.pop();\n break;\n case 20:\n let val = stack.pop();\n let idx = stack.pop();\n trans[idx] = val;\n break;\n case 21:\n idx = stack.pop();\n stack.push(trans[idx] || 0);\n break;\n case 22:\n let s1 = stack.pop();\n let s2 = stack.pop();\n let v1 = stack.pop();\n let v2 = stack.pop();\n stack.push(v1 <= v2 ? s1 : s2);\n break;\n case 23:\n stack.push(Math.random());\n break;\n case 24:\n a = stack.pop();\n b = stack.pop();\n stack.push(a * b);\n break;\n case 26:\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case 27:\n a = stack.pop();\n stack.push(a, a);\n break;\n case 28:\n a = stack.pop();\n b = stack.pop();\n stack.push(b, a);\n break;\n case 29:\n idx = stack.pop();\n if (idx < 0) idx = 0;\n else if (idx > stack.length - 1) idx = stack.length - 1;\n stack.push(stack[idx]);\n break;\n case 30:\n let n = stack.pop();\n let j = stack.pop();\n if (j >= 0) while(j > 0){\n var t = stack[n - 1];\n for(let i = n - 2; i >= 0; i--)stack[i + 1] = stack[i];\n stack[0] = t;\n j--;\n }\n else while(j < 0){\n var t = stack[0];\n for(let i = 0; i <= n; i++)stack[i] = stack[i + 1];\n stack[n - 1] = t;\n j++;\n }\n break;\n case 34:\n c1x = x + stack.shift();\n c1y = y;\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n c3x = c2x + stack.shift();\n c3y = c2y;\n c4x = c3x + stack.shift();\n c4y = c3y;\n c5x = c4x + stack.shift();\n c5y = c4y;\n c6x = c5x + stack.shift();\n c6y = c5y;\n x = c6x;\n y = c6y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n case 35:\n pts = [];\n for(let i = 0; i <= 5; i++){\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n path.bezierCurveTo(...pts.slice(0, 6));\n path.bezierCurveTo(...pts.slice(6));\n stack.shift(); // fd\n break;\n case 36:\n c1x = x + stack.shift();\n c1y = y + stack.shift();\n c2x = c1x + stack.shift();\n c2y = c1y + stack.shift();\n c3x = c2x + stack.shift();\n c3y = c2y;\n c4x = c3x + stack.shift();\n c4y = c3y;\n c5x = c4x + stack.shift();\n c5y = c4y + stack.shift();\n c6x = c5x + stack.shift();\n c6y = c5y;\n x = c6x;\n y = c6y;\n path.bezierCurveTo(c1x, c1y, c2x, c2y, c3x, c3y);\n path.bezierCurveTo(c4x, c4y, c5x, c5y, c6x, c6y);\n break;\n case 37:\n let startx = x;\n let starty = y;\n pts = [];\n for(let i = 0; i <= 4; i++){\n x += stack.shift();\n y += stack.shift();\n pts.push(x, y);\n }\n if (Math.abs(x - startx) > Math.abs(y - starty)) {\n x += stack.shift();\n y = starty;\n } else {\n x = startx;\n y += stack.shift();\n }\n pts.push(x, y);\n path.bezierCurveTo(...pts.slice(0, 6));\n path.bezierCurveTo(...pts.slice(6));\n break;\n default:\n throw new Error(`Unknown op: 12 ${op}`);\n }\n break;\n default:\n throw new Error(`Unknown op: ${op}`);\n }\n } else if (op < 247) stack.push(op - 139);\n else if (op < 251) {\n var b1 = stream.readUInt8();\n stack.push((op - 247) * 256 + b1 + 108);\n } else if (op < 255) {\n var b1 = stream.readUInt8();\n stack.push(-(op - 251) * 256 - b1 - 108);\n } else stack.push(stream.readInt32BE() / 65536);\n }\n };\n parse();\n if (open) path.closePath();\n return path;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'CFF');\n }\n}\n\n\n\n\n\nlet $25d8f049c222084c$var$SBIXImage = new $6uUbQ$Struct({\n originX: $6uUbQ$uint16,\n originY: $6uUbQ$uint16,\n type: new $6uUbQ$String(4),\n data: new $6uUbQ$Buffer((t)=>t.parent.buflen - t._currentOffset)\n});\nclass $25d8f049c222084c$export$2e2bcd8739ae039 extends (0, $69aac16029968692$export$2e2bcd8739ae039) {\n /**\n * Returns an object representing a glyph image at the given point size.\n * The object has a data property with a Buffer containing the actual image data,\n * along with the image type, and origin.\n *\n * @param {number} size\n * @return {object}\n */ getImageForSize(size) {\n for(let i = 0; i < this._font.sbix.imageTables.length; i++){\n var table = this._font.sbix.imageTables[i];\n if (table.ppem >= size) break;\n }\n let offsets = table.imageOffsets;\n let start = offsets[this.id];\n let end = offsets[this.id + 1];\n if (start === end) return null;\n this._font.stream.pos = start;\n return $25d8f049c222084c$var$SBIXImage.decode(this._font.stream, {\n buflen: end - start\n });\n }\n render(ctx, size) {\n let img = this.getImageForSize(size);\n if (img != null) {\n let scale = size / this._font.unitsPerEm;\n ctx.image(img.data, {\n height: size,\n x: img.originX,\n y: (this.bbox.minY - img.originY) * scale\n });\n }\n if (this._font.sbix.flags.renderOutlines) super.render(ctx, size);\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'SBIX');\n }\n}\n\n\n\n\n\nclass $0d411f0165859681$var$COLRLayer {\n constructor(glyph, color){\n this.glyph = glyph;\n this.color = color;\n }\n}\nclass $0d411f0165859681$export$2e2bcd8739ae039 extends (0, $f92906be28e61769$export$2e2bcd8739ae039) {\n _getBBox() {\n let bbox = new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039);\n for(let i = 0; i < this.layers.length; i++){\n let layer = this.layers[i];\n let b = layer.glyph.bbox;\n bbox.addPoint(b.minX, b.minY);\n bbox.addPoint(b.maxX, b.maxY);\n }\n return bbox;\n }\n /**\n * Returns an array of objects containing the glyph and color for\n * each layer in the composite color glyph.\n * @type {object[]}\n */ get layers() {\n let cpal = this._font.CPAL;\n let colr = this._font.COLR;\n let low = 0;\n let high = colr.baseGlyphRecord.length - 1;\n while(low <= high){\n let mid = low + high >> 1;\n var rec = colr.baseGlyphRecord[mid];\n if (this.id < rec.gid) high = mid - 1;\n else if (this.id > rec.gid) low = mid + 1;\n else {\n var baseLayer = rec;\n break;\n }\n }\n // if base glyph not found in COLR table,\n // default to normal glyph from glyf or CFF\n if (baseLayer == null) {\n var g = this._font._getBaseGlyph(this.id);\n var color = {\n red: 0,\n green: 0,\n blue: 0,\n alpha: 255\n };\n return [\n new $0d411f0165859681$var$COLRLayer(g, color)\n ];\n }\n // otherwise, return an array of all the layers\n let layers = [];\n for(let i = baseLayer.firstLayerIndex; i < baseLayer.firstLayerIndex + baseLayer.numLayers; i++){\n var rec = colr.layerRecords[i];\n var color = cpal.colorRecords[rec.paletteIndex];\n var g = this._font._getBaseGlyph(rec.gid);\n layers.push(new $0d411f0165859681$var$COLRLayer(g, color));\n }\n return layers;\n }\n render(ctx, size) {\n for (let { glyph: glyph, color: color } of this.layers){\n ctx.fillColor([\n color.red,\n color.green,\n color.blue\n ], color.alpha / 255 * 100);\n glyph.render(ctx, size);\n }\n return;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'COLR');\n }\n}\n\n\nconst $0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS = 0x8000;\nconst $0bb840cac04e911b$var$TUPLE_COUNT_MASK = 0x0fff;\nconst $0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD = 0x8000;\nconst $0bb840cac04e911b$var$INTERMEDIATE_TUPLE = 0x4000;\nconst $0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS = 0x2000;\nconst $0bb840cac04e911b$var$TUPLE_INDEX_MASK = 0x0fff;\nconst $0bb840cac04e911b$var$POINTS_ARE_WORDS = 0x80;\nconst $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK = 0x7f;\nconst $0bb840cac04e911b$var$DELTAS_ARE_ZERO = 0x80;\nconst $0bb840cac04e911b$var$DELTAS_ARE_WORDS = 0x40;\nconst $0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK = 0x3f;\nclass $0bb840cac04e911b$export$2e2bcd8739ae039 {\n normalizeCoords(coords) {\n // the default mapping is linear along each axis, in two segments:\n // from the minValue to defaultValue, and from defaultValue to maxValue.\n let normalized = [];\n for(var i = 0; i < this.font.fvar.axis.length; i++){\n let axis = this.font.fvar.axis[i];\n if (coords[i] < axis.defaultValue) normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.defaultValue - axis.minValue + Number.EPSILON));\n else normalized.push((coords[i] - axis.defaultValue + Number.EPSILON) / (axis.maxValue - axis.defaultValue + Number.EPSILON));\n }\n // if there is an avar table, the normalized value is calculated\n // by interpolating between the two nearest mapped values.\n if (this.font.avar) for(var i = 0; i < this.font.avar.segment.length; i++){\n let segment = this.font.avar.segment[i];\n for(let j = 0; j < segment.correspondence.length; j++){\n let pair = segment.correspondence[j];\n if (j >= 1 && normalized[i] < pair.fromCoord) {\n let prev = segment.correspondence[j - 1];\n normalized[i] = ((normalized[i] - prev.fromCoord) * (pair.toCoord - prev.toCoord) + Number.EPSILON) / (pair.fromCoord - prev.fromCoord + Number.EPSILON) + prev.toCoord;\n break;\n }\n }\n }\n return normalized;\n }\n transformPoints(gid, glyphPoints) {\n if (!this.font.fvar || !this.font.gvar) return;\n let { gvar: gvar } = this.font;\n if (gid >= gvar.glyphCount) return;\n let offset = gvar.offsets[gid];\n if (offset === gvar.offsets[gid + 1]) return;\n // Read the gvar data for this glyph\n let { stream: stream } = this.font;\n stream.pos = offset;\n if (stream.pos >= stream.length) return;\n let tupleCount = stream.readUInt16BE();\n let offsetToData = offset + stream.readUInt16BE();\n if (tupleCount & $0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS) {\n var here = stream.pos;\n stream.pos = offsetToData;\n var sharedPoints = this.decodePoints();\n offsetToData = stream.pos;\n stream.pos = here;\n }\n let origPoints = glyphPoints.map((pt)=>pt.copy());\n tupleCount &= $0bb840cac04e911b$var$TUPLE_COUNT_MASK;\n for(let i = 0; i < tupleCount; i++){\n let tupleDataSize = stream.readUInt16BE();\n let tupleIndex = stream.readUInt16BE();\n if (tupleIndex & $0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD) {\n var tupleCoords = [];\n for(let a = 0; a < gvar.axisCount; a++)tupleCoords.push(stream.readInt16BE() / 16384);\n } else {\n if ((tupleIndex & $0bb840cac04e911b$var$TUPLE_INDEX_MASK) >= gvar.globalCoordCount) throw new Error('Invalid gvar table');\n var tupleCoords = gvar.globalCoords[tupleIndex & $0bb840cac04e911b$var$TUPLE_INDEX_MASK];\n }\n if (tupleIndex & $0bb840cac04e911b$var$INTERMEDIATE_TUPLE) {\n var startCoords = [];\n for(let a = 0; a < gvar.axisCount; a++)startCoords.push(stream.readInt16BE() / 16384);\n var endCoords = [];\n for(let a = 0; a < gvar.axisCount; a++)endCoords.push(stream.readInt16BE() / 16384);\n }\n // Get the factor at which to apply this tuple\n let factor = this.tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords);\n if (factor === 0) {\n offsetToData += tupleDataSize;\n continue;\n }\n var here = stream.pos;\n stream.pos = offsetToData;\n if (tupleIndex & $0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS) var points = this.decodePoints();\n else var points = sharedPoints;\n // points.length = 0 means there are deltas for all points\n let nPoints = points.length === 0 ? glyphPoints.length : points.length;\n let xDeltas = this.decodeDeltas(nPoints);\n let yDeltas = this.decodeDeltas(nPoints);\n if (points.length === 0) for(let i = 0; i < glyphPoints.length; i++){\n var point = glyphPoints[i];\n point.x += Math.round(xDeltas[i] * factor);\n point.y += Math.round(yDeltas[i] * factor);\n }\n else {\n let outPoints = origPoints.map((pt)=>pt.copy());\n let hasDelta = glyphPoints.map(()=>false);\n for(let i = 0; i < points.length; i++){\n let idx = points[i];\n if (idx < glyphPoints.length) {\n let point = outPoints[idx];\n hasDelta[idx] = true;\n point.x += xDeltas[i] * factor;\n point.y += yDeltas[i] * factor;\n }\n }\n this.interpolateMissingDeltas(outPoints, origPoints, hasDelta);\n for(let i = 0; i < glyphPoints.length; i++){\n let deltaX = outPoints[i].x - origPoints[i].x;\n let deltaY = outPoints[i].y - origPoints[i].y;\n glyphPoints[i].x = Math.round(glyphPoints[i].x + deltaX);\n glyphPoints[i].y = Math.round(glyphPoints[i].y + deltaY);\n }\n }\n offsetToData += tupleDataSize;\n stream.pos = here;\n }\n }\n decodePoints() {\n let stream = this.font.stream;\n let count = stream.readUInt8();\n if (count & $0bb840cac04e911b$var$POINTS_ARE_WORDS) count = (count & $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK) << 8 | stream.readUInt8();\n let points = new Uint16Array(count);\n let i = 0;\n let point = 0;\n while(i < count){\n let run = stream.readUInt8();\n let runCount = (run & $0bb840cac04e911b$var$POINT_RUN_COUNT_MASK) + 1;\n let fn = run & $0bb840cac04e911b$var$POINTS_ARE_WORDS ? stream.readUInt16 : stream.readUInt8;\n for(let j = 0; j < runCount && i < count; j++){\n point += fn.call(stream);\n points[i++] = point;\n }\n }\n return points;\n }\n decodeDeltas(count) {\n let stream = this.font.stream;\n let i = 0;\n let deltas = new Int16Array(count);\n while(i < count){\n let run = stream.readUInt8();\n let runCount = (run & $0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK) + 1;\n if (run & $0bb840cac04e911b$var$DELTAS_ARE_ZERO) i += runCount;\n else {\n let fn = run & $0bb840cac04e911b$var$DELTAS_ARE_WORDS ? stream.readInt16BE : stream.readInt8;\n for(let j = 0; j < runCount && i < count; j++)deltas[i++] = fn.call(stream);\n }\n }\n return deltas;\n }\n tupleFactor(tupleIndex, tupleCoords, startCoords, endCoords) {\n let normalized = this.normalizedCoords;\n let { gvar: gvar } = this.font;\n let factor = 1;\n for(let i = 0; i < gvar.axisCount; i++){\n if (tupleCoords[i] === 0) continue;\n if (normalized[i] === 0) return 0;\n if ((tupleIndex & $0bb840cac04e911b$var$INTERMEDIATE_TUPLE) === 0) {\n if (normalized[i] < Math.min(0, tupleCoords[i]) || normalized[i] > Math.max(0, tupleCoords[i])) return 0;\n factor = (factor * normalized[i] + Number.EPSILON) / (tupleCoords[i] + Number.EPSILON);\n } else {\n if (normalized[i] < startCoords[i] || normalized[i] > endCoords[i]) return 0;\n else if (normalized[i] < tupleCoords[i]) factor = factor * (normalized[i] - startCoords[i] + Number.EPSILON) / (tupleCoords[i] - startCoords[i] + Number.EPSILON);\n else factor = factor * (endCoords[i] - normalized[i] + Number.EPSILON) / (endCoords[i] - tupleCoords[i] + Number.EPSILON);\n }\n }\n return factor;\n }\n // Interpolates points without delta values.\n // Needed for the Ø and Q glyphs in Skia.\n // Algorithm from Freetype.\n interpolateMissingDeltas(points, inPoints, hasDelta) {\n if (points.length === 0) return;\n let point = 0;\n while(point < points.length){\n let firstPoint = point;\n // find the end point of the contour\n let endPoint = point;\n let pt = points[endPoint];\n while(!pt.endContour)pt = points[++endPoint];\n // find the first point that has a delta\n while(point <= endPoint && !hasDelta[point])point++;\n if (point > endPoint) continue;\n let firstDelta = point;\n let curDelta = point;\n point++;\n while(point <= endPoint){\n // find the next point with a delta, and interpolate intermediate points\n if (hasDelta[point]) {\n this.deltaInterpolate(curDelta + 1, point - 1, curDelta, point, inPoints, points);\n curDelta = point;\n }\n point++;\n }\n // shift contour if we only have a single delta\n if (curDelta === firstDelta) this.deltaShift(firstPoint, endPoint, curDelta, inPoints, points);\n else {\n // otherwise, handle the remaining points at the end and beginning of the contour\n this.deltaInterpolate(curDelta + 1, endPoint, curDelta, firstDelta, inPoints, points);\n if (firstDelta > 0) this.deltaInterpolate(firstPoint, firstDelta - 1, curDelta, firstDelta, inPoints, points);\n }\n point = endPoint + 1;\n }\n }\n deltaInterpolate(p1, p2, ref1, ref2, inPoints, outPoints) {\n if (p1 > p2) return;\n let iterable = [\n 'x',\n 'y'\n ];\n for(let i = 0; i < iterable.length; i++){\n let k = iterable[i];\n if (inPoints[ref1][k] > inPoints[ref2][k]) {\n var p = ref1;\n ref1 = ref2;\n ref2 = p;\n }\n let in1 = inPoints[ref1][k];\n let in2 = inPoints[ref2][k];\n let out1 = outPoints[ref1][k];\n let out2 = outPoints[ref2][k];\n // If the reference points have the same coordinate but different\n // delta, inferred delta is zero. Otherwise interpolate.\n if (in1 !== in2 || out1 === out2) {\n let scale = in1 === in2 ? 0 : (out2 - out1) / (in2 - in1);\n for(let p = p1; p <= p2; p++){\n let out = inPoints[p][k];\n if (out <= in1) out += out1 - in1;\n else if (out >= in2) out += out2 - in2;\n else out = out1 + (out - in1) * scale;\n outPoints[p][k] = out;\n }\n }\n }\n }\n deltaShift(p1, p2, ref, inPoints, outPoints) {\n let deltaX = outPoints[ref].x - inPoints[ref].x;\n let deltaY = outPoints[ref].y - inPoints[ref].y;\n if (deltaX === 0 && deltaY === 0) return;\n for(let p = p1; p <= p2; p++)if (p !== ref) {\n outPoints[p].x += deltaX;\n outPoints[p].y += deltaY;\n }\n }\n getAdvanceAdjustment(gid, table) {\n let outerIndex, innerIndex;\n if (table.advanceWidthMapping) {\n let idx = gid;\n if (idx >= table.advanceWidthMapping.mapCount) idx = table.advanceWidthMapping.mapCount - 1;\n let entryFormat = table.advanceWidthMapping.entryFormat;\n ({ outerIndex: outerIndex, innerIndex: innerIndex } = table.advanceWidthMapping.mapData[idx]);\n } else {\n outerIndex = 0;\n innerIndex = gid;\n }\n return this.getDelta(table.itemVariationStore, outerIndex, innerIndex);\n }\n // See pseudo code from `Font Variations Overview'\n // in the OpenType specification.\n getDelta(itemStore, outerIndex, innerIndex) {\n if (outerIndex >= itemStore.itemVariationData.length) return 0;\n let varData = itemStore.itemVariationData[outerIndex];\n if (innerIndex >= varData.deltaSets.length) return 0;\n let deltaSet = varData.deltaSets[innerIndex];\n let blendVector = this.getBlendVector(itemStore, outerIndex);\n let netAdjustment = 0;\n for(let master = 0; master < varData.regionIndexCount; master++)netAdjustment += deltaSet.deltas[master] * blendVector[master];\n return netAdjustment;\n }\n getBlendVector(itemStore, outerIndex) {\n let varData = itemStore.itemVariationData[outerIndex];\n if (this.blendVectors.has(varData)) return this.blendVectors.get(varData);\n let normalizedCoords = this.normalizedCoords;\n let blendVector = [];\n // outer loop steps through master designs to be blended\n for(let master = 0; master < varData.regionIndexCount; master++){\n let scalar = 1;\n let regionIndex = varData.regionIndexes[master];\n let axes = itemStore.variationRegionList.variationRegions[regionIndex];\n // inner loop steps through axes in this region\n for(let j = 0; j < axes.length; j++){\n let axis = axes[j];\n let axisScalar;\n // compute the scalar contribution of this axis\n // ignore invalid ranges\n if (axis.startCoord > axis.peakCoord || axis.peakCoord > axis.endCoord) axisScalar = 1;\n else if (axis.startCoord < 0 && axis.endCoord > 0 && axis.peakCoord !== 0) axisScalar = 1;\n else if (axis.peakCoord === 0) axisScalar = 1;\n else if (normalizedCoords[j] < axis.startCoord || normalizedCoords[j] > axis.endCoord) axisScalar = 0;\n else {\n if (normalizedCoords[j] === axis.peakCoord) axisScalar = 1;\n else if (normalizedCoords[j] < axis.peakCoord) axisScalar = (normalizedCoords[j] - axis.startCoord + Number.EPSILON) / (axis.peakCoord - axis.startCoord + Number.EPSILON);\n else axisScalar = (axis.endCoord - normalizedCoords[j] + Number.EPSILON) / (axis.endCoord - axis.peakCoord + Number.EPSILON);\n }\n // take product of all the axis scalars\n scalar *= axisScalar;\n }\n blendVector[master] = scalar;\n }\n this.blendVectors.set(varData, blendVector);\n return blendVector;\n }\n constructor(font, coords){\n this.font = font;\n this.normalizedCoords = this.normalizeCoords(coords);\n this.blendVectors = new Map;\n }\n}\n\n\n\n\nconst $5cc7476da92df375$var$resolved = Promise.resolve();\nclass $5cc7476da92df375$export$2e2bcd8739ae039 {\n includeGlyph(glyph) {\n if (typeof glyph === 'object') glyph = glyph.id;\n if (this.mapping[glyph] == null) {\n this.glyphs.push(glyph);\n this.mapping[glyph] = this.glyphs.length - 1;\n }\n return this.mapping[glyph];\n }\n constructor(font){\n this.font = font;\n this.glyphs = [];\n this.mapping = {};\n // always include the missing glyph\n this.includeGlyph(0);\n }\n}\n\n\n\n\n\n// Flags for simple glyphs\nconst $807e58506be70005$var$ON_CURVE = 1;\nconst $807e58506be70005$var$X_SHORT_VECTOR = 2;\nconst $807e58506be70005$var$Y_SHORT_VECTOR = 4;\nconst $807e58506be70005$var$REPEAT = 8;\nconst $807e58506be70005$var$SAME_X = 16;\nconst $807e58506be70005$var$SAME_Y = 32;\nclass $807e58506be70005$var$Point {\n static size(val) {\n return val >= 0 && val <= 255 ? 1 : 2;\n }\n static encode(stream, value) {\n if (value >= 0 && value <= 255) stream.writeUInt8(value);\n else stream.writeInt16BE(value);\n }\n}\nlet $807e58506be70005$var$Glyf = new $6uUbQ$Struct({\n numberOfContours: $6uUbQ$int16,\n xMin: $6uUbQ$int16,\n yMin: $6uUbQ$int16,\n xMax: $6uUbQ$int16,\n yMax: $6uUbQ$int16,\n endPtsOfContours: new $6uUbQ$Array($6uUbQ$uint16, 'numberOfContours'),\n instructions: new $6uUbQ$Array($6uUbQ$uint8, $6uUbQ$uint16),\n flags: new $6uUbQ$Array($6uUbQ$uint8, 0),\n xPoints: new $6uUbQ$Array($807e58506be70005$var$Point, 0),\n yPoints: new $6uUbQ$Array($807e58506be70005$var$Point, 0)\n});\nclass $807e58506be70005$export$2e2bcd8739ae039 {\n encodeSimple(path, instructions = []) {\n let endPtsOfContours = [];\n let xPoints = [];\n let yPoints = [];\n let flags = [];\n let same = 0;\n let lastX = 0, lastY = 0, lastFlag = 0;\n let pointCount = 0;\n for(let i = 0; i < path.commands.length; i++){\n let c = path.commands[i];\n for(let j = 0; j < c.args.length; j += 2){\n let x = c.args[j];\n let y = c.args[j + 1];\n let flag = 0;\n // If the ending point of a quadratic curve is the midpoint\n // between the control point and the control point of the next\n // quadratic curve, we can omit the ending point.\n if (c.command === 'quadraticCurveTo' && j === 2) {\n let next = path.commands[i + 1];\n if (next && next.command === 'quadraticCurveTo') {\n let midX = (lastX + next.args[0]) / 2;\n let midY = (lastY + next.args[1]) / 2;\n if (x === midX && y === midY) continue;\n }\n }\n // All points except control points are on curve.\n if (!(c.command === 'quadraticCurveTo' && j === 0)) flag |= $807e58506be70005$var$ON_CURVE;\n flag = this._encodePoint(x, lastX, xPoints, flag, $807e58506be70005$var$X_SHORT_VECTOR, $807e58506be70005$var$SAME_X);\n flag = this._encodePoint(y, lastY, yPoints, flag, $807e58506be70005$var$Y_SHORT_VECTOR, $807e58506be70005$var$SAME_Y);\n if (flag === lastFlag && same < 255) {\n flags[flags.length - 1] |= $807e58506be70005$var$REPEAT;\n same++;\n } else {\n if (same > 0) {\n flags.push(same);\n same = 0;\n }\n flags.push(flag);\n lastFlag = flag;\n }\n lastX = x;\n lastY = y;\n pointCount++;\n }\n if (c.command === 'closePath') endPtsOfContours.push(pointCount - 1);\n }\n // Close the path if the last command didn't already\n if (path.commands.length > 1 && path.commands[path.commands.length - 1].command !== 'closePath') endPtsOfContours.push(pointCount - 1);\n let bbox = path.bbox;\n let glyf = {\n numberOfContours: endPtsOfContours.length,\n xMin: bbox.minX,\n yMin: bbox.minY,\n xMax: bbox.maxX,\n yMax: bbox.maxY,\n endPtsOfContours: endPtsOfContours,\n instructions: instructions,\n flags: flags,\n xPoints: xPoints,\n yPoints: yPoints\n };\n let size = $807e58506be70005$var$Glyf.size(glyf);\n let tail = 4 - size % 4;\n let stream = new $6uUbQ$EncodeStream(size + tail);\n $807e58506be70005$var$Glyf.encode(stream, glyf);\n // Align to 4-byte length\n if (tail !== 0) stream.fill(0, tail);\n return stream.buffer;\n }\n _encodePoint(value, last, points, flag, shortFlag, sameFlag) {\n let diff = value - last;\n if (value === last) flag |= sameFlag;\n else {\n if (-255 <= diff && diff <= 255) {\n flag |= shortFlag;\n if (diff < 0) diff = -diff;\n else flag |= sameFlag;\n }\n points.push(diff);\n }\n return flag;\n }\n}\n\n\nclass $4abbb6a5dbdc441a$export$2e2bcd8739ae039 extends (0, $5cc7476da92df375$export$2e2bcd8739ae039) {\n _addGlyph(gid) {\n let glyph = this.font.getGlyph(gid);\n let glyf = glyph._decode();\n // get the offset to the glyph from the loca table\n let curOffset = this.font.loca.offsets[gid];\n let nextOffset = this.font.loca.offsets[gid + 1];\n let stream = this.font._getTableStream('glyf');\n stream.pos += curOffset;\n let buffer = stream.readBuffer(nextOffset - curOffset);\n // if it is a compound glyph, include its components\n if (glyf && glyf.numberOfContours < 0) {\n buffer = new Uint8Array(buffer);\n let view = new DataView(buffer.buffer);\n for (let component of glyf.components){\n gid = this.includeGlyph(component.glyphID);\n view.setUint16(component.pos, gid);\n }\n } else if (glyf && this.font._variationProcessor) // If this is a TrueType variation glyph, re-encode the path\n buffer = this.glyphEncoder.encodeSimple(glyph.path, glyf.instructions);\n this.glyf.push(buffer);\n this.loca.offsets.push(this.offset);\n this.hmtx.metrics.push({\n advance: glyph.advanceWidth,\n bearing: glyph._getMetrics().leftBearing\n });\n this.offset += buffer.length;\n return this.glyf.length - 1;\n }\n encode() {\n // tables required by PDF spec:\n // head, hhea, loca, maxp, cvt , prep, glyf, hmtx, fpgm\n //\n // additional tables required for standalone fonts:\n // name, cmap, OS/2, post\n this.glyf = [];\n this.offset = 0;\n this.loca = {\n offsets: [],\n version: this.font.loca.version\n };\n this.hmtx = {\n metrics: [],\n bearings: []\n };\n // include all the glyphs\n // not using a for loop because we need to support adding more\n // glyphs to the array as we go, and CoffeeScript caches the length.\n let i = 0;\n while(i < this.glyphs.length)this._addGlyph(this.glyphs[i++]);\n let maxp = (0, $6uUbQ$clone)(this.font.maxp);\n maxp.numGlyphs = this.glyf.length;\n this.loca.offsets.push(this.offset);\n let head = (0, $6uUbQ$clone)(this.font.head);\n head.indexToLocFormat = this.loca.version;\n let hhea = (0, $6uUbQ$clone)(this.font.hhea);\n hhea.numberOfMetrics = this.hmtx.metrics.length;\n // map = []\n // for index in [0...256]\n // if index < @numGlyphs\n // map[index] = index\n // else\n // map[index] = 0\n //\n // cmapTable =\n // version: 0\n // length: 262\n // language: 0\n // codeMap: map\n //\n // cmap =\n // version: 0\n // numSubtables: 1\n // tables: [\n // platformID: 1\n // encodingID: 0\n // table: cmapTable\n // ]\n // TODO: subset prep, cvt, fpgm?\n return (0, $816c07a04b6dba87$export$2e2bcd8739ae039).toBuffer({\n tables: {\n head: head,\n hhea: hhea,\n loca: this.loca,\n maxp: maxp,\n 'cvt ': this.font['cvt '],\n prep: this.font.prep,\n glyf: this.glyf,\n hmtx: this.hmtx,\n fpgm: this.font.fpgm\n }\n });\n }\n constructor(font){\n super(font);\n this.glyphEncoder = new (0, $807e58506be70005$export$2e2bcd8739ae039);\n }\n}\n\n\n\n\n\n\nclass $001d739428a71d5a$export$2e2bcd8739ae039 extends (0, $5cc7476da92df375$export$2e2bcd8739ae039) {\n subsetCharstrings() {\n this.charstrings = [];\n let gsubrs = {};\n for (let gid of this.glyphs){\n this.charstrings.push(this.cff.getCharString(gid));\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for(let subr in glyph._usedGsubrs)gsubrs[subr] = true;\n }\n this.gsubrs = this.subsetSubrs(this.cff.globalSubrIndex, gsubrs);\n }\n subsetSubrs(subrs, used) {\n let res = [];\n for(let i = 0; i < subrs.length; i++){\n let subr = subrs[i];\n if (used[i]) {\n this.cff.stream.pos = subr.offset;\n res.push(this.cff.stream.readBuffer(subr.length));\n } else res.push(new Uint8Array([\n 11\n ])); // return\n }\n return res;\n }\n subsetFontdict(topDict) {\n topDict.FDArray = [];\n topDict.FDSelect = {\n version: 0,\n fds: []\n };\n let used_fds = {};\n let used_subrs = [];\n let fd_select = {};\n for (let gid of this.glyphs){\n let fd = this.cff.fdForGlyph(gid);\n if (fd == null) continue;\n if (!used_fds[fd]) {\n topDict.FDArray.push(Object.assign({}, this.cff.topDict.FDArray[fd]));\n used_subrs.push({});\n fd_select[fd] = topDict.FDArray.length - 1;\n }\n used_fds[fd] = true;\n topDict.FDSelect.fds.push(fd_select[fd]);\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for(let subr in glyph._usedSubrs)used_subrs[fd_select[fd]][subr] = true;\n }\n for(let i = 0; i < topDict.FDArray.length; i++){\n let dict = topDict.FDArray[i];\n delete dict.FontName;\n if (dict.Private && dict.Private.Subrs) {\n dict.Private = Object.assign({}, dict.Private);\n dict.Private.Subrs = this.subsetSubrs(dict.Private.Subrs, used_subrs[i]);\n }\n }\n return;\n }\n createCIDFontdict(topDict) {\n let used_subrs = {};\n for (let gid of this.glyphs){\n let glyph = this.font.getGlyph(gid);\n let path = glyph.path; // this causes the glyph to be parsed\n for(let subr in glyph._usedSubrs)used_subrs[subr] = true;\n }\n let privateDict = Object.assign({}, this.cff.topDict.Private);\n if (this.cff.topDict.Private && this.cff.topDict.Private.Subrs) privateDict.Subrs = this.subsetSubrs(this.cff.topDict.Private.Subrs, used_subrs);\n topDict.FDArray = [\n {\n Private: privateDict\n }\n ];\n return topDict.FDSelect = {\n version: 3,\n nRanges: 1,\n ranges: [\n {\n first: 0,\n fd: 0\n }\n ],\n sentinel: this.charstrings.length\n };\n }\n addString(string) {\n if (!string) return null;\n if (!this.strings) this.strings = [];\n this.strings.push(string);\n return (0, $229224aec43783c5$export$2e2bcd8739ae039).length + this.strings.length - 1;\n }\n encode() {\n this.subsetCharstrings();\n let charset = {\n version: this.charstrings.length > 255 ? 2 : 1,\n ranges: [\n {\n first: 1,\n nLeft: this.charstrings.length - 2\n }\n ]\n };\n let topDict = Object.assign({}, this.cff.topDict);\n topDict.Private = null;\n topDict.charset = charset;\n topDict.Encoding = null;\n topDict.CharStrings = this.charstrings;\n for (let key of [\n 'version',\n 'Notice',\n 'Copyright',\n 'FullName',\n 'FamilyName',\n 'Weight',\n 'PostScript',\n 'BaseFontName',\n 'FontName'\n ])topDict[key] = this.addString(this.cff.string(topDict[key]));\n topDict.ROS = [\n this.addString('Adobe'),\n this.addString('Identity'),\n 0\n ];\n topDict.CIDCount = this.charstrings.length;\n if (this.cff.isCIDFont) this.subsetFontdict(topDict);\n else this.createCIDFontdict(topDict);\n let top = {\n version: 1,\n hdrSize: this.cff.hdrSize,\n offSize: 4,\n header: this.cff.header,\n nameIndex: [\n this.cff.postscriptName\n ],\n topDictIndex: [\n topDict\n ],\n stringIndex: this.strings,\n globalSubrIndex: this.gsubrs\n };\n return (0, $b84fd3dd9d8eddb2$export$2e2bcd8739ae039).toBuffer(top);\n }\n constructor(font){\n super(font);\n this.cff = this.font['CFF '];\n if (!this.cff) throw new Error('Not a CFF Font');\n }\n}\n\n\n\n\nclass $4c1709dee528ea76$export$2e2bcd8739ae039 {\n static probe(buffer) {\n let format = (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4));\n return format === 'true' || format === 'OTTO' || format === String.fromCharCode(0, 1, 0, 0);\n }\n setDefaultLanguage(lang = null) {\n this.defaultLanguage = lang;\n }\n _getTable(table) {\n if (!(table.tag in this._tables)) try {\n this._tables[table.tag] = this._decodeTable(table);\n } catch (e) {\n if ($d636bc798e7178db$export$bd5c5d8b8dcafd78) {\n console.error(`Error decoding table ${table.tag}`);\n console.error(e.stack);\n }\n }\n return this._tables[table.tag];\n }\n _getTableStream(tag) {\n let table = this.directory.tables[tag];\n if (table) {\n this.stream.pos = table.offset;\n return this.stream;\n }\n return null;\n }\n _decodeDirectory() {\n return this.directory = (0, $816c07a04b6dba87$export$2e2bcd8739ae039).decode(this.stream, {\n _startOffset: 0\n });\n }\n _decodeTable(table) {\n let pos = this.stream.pos;\n let stream = this._getTableStream(table.tag);\n let result = (0, $c3395722bea751e2$export$2e2bcd8739ae039)[table.tag].decode(stream, this, table.length);\n this.stream.pos = pos;\n return result;\n }\n /**\n * Gets a string from the font's `name` table\n * `lang` is a BCP-47 language code.\n * @return {string}\n */ getName(key, lang = this.defaultLanguage || $d636bc798e7178db$export$42940898df819940) {\n let record = this.name && this.name.records[key];\n if (record) // Attempt to retrieve the entry, depending on which translation is available:\n return record[lang] || record[this.defaultLanguage] || record[$d636bc798e7178db$export$42940898df819940] || record['en'] || record[Object.keys(record)[0]] // Seriously, ANY language would be fine\n || null;\n return null;\n }\n /**\n * The unique PostScript name for this font, e.g. \"Helvetica-Bold\"\n * @type {string}\n */ get postscriptName() {\n return this.getName('postscriptName');\n }\n /**\n * The font's full name, e.g. \"Helvetica Bold\"\n * @type {string}\n */ get fullName() {\n return this.getName('fullName');\n }\n /**\n * The font's family name, e.g. \"Helvetica\"\n * @type {string}\n */ get familyName() {\n return this.getName('fontFamily');\n }\n /**\n * The font's sub-family, e.g. \"Bold\".\n * @type {string}\n */ get subfamilyName() {\n return this.getName('fontSubfamily');\n }\n /**\n * The font's copyright information\n * @type {string}\n */ get copyright() {\n return this.getName('copyright');\n }\n /**\n * The font's version number\n * @type {string}\n */ get version() {\n return this.getName('version');\n }\n /**\n * The font’s [ascender](https://en.wikipedia.org/wiki/Ascender_(typography))\n * @type {number}\n */ get ascent() {\n return this.hhea.ascent;\n }\n /**\n * The font’s [descender](https://en.wikipedia.org/wiki/Descender)\n * @type {number}\n */ get descent() {\n return this.hhea.descent;\n }\n /**\n * The amount of space that should be included between lines\n * @type {number}\n */ get lineGap() {\n return this.hhea.lineGap;\n }\n /**\n * The offset from the normal underline position that should be used\n * @type {number}\n */ get underlinePosition() {\n return this.post.underlinePosition;\n }\n /**\n * The weight of the underline that should be used\n * @type {number}\n */ get underlineThickness() {\n return this.post.underlineThickness;\n }\n /**\n * If this is an italic font, the angle the cursor should be drawn at to match the font design\n * @type {number}\n */ get italicAngle() {\n return this.post.italicAngle;\n }\n /**\n * The height of capital letters above the baseline.\n * See [here](https://en.wikipedia.org/wiki/Cap_height) for more details.\n * @type {number}\n */ get capHeight() {\n let os2 = this['OS/2'];\n return os2 ? os2.capHeight : this.ascent;\n }\n /**\n * The height of lower case letters in the font.\n * See [here](https://en.wikipedia.org/wiki/X-height) for more details.\n * @type {number}\n */ get xHeight() {\n let os2 = this['OS/2'];\n return os2 ? os2.xHeight : 0;\n }\n /**\n * The number of glyphs in the font.\n * @type {number}\n */ get numGlyphs() {\n return this.maxp.numGlyphs;\n }\n /**\n * The size of the font’s internal coordinate grid\n * @type {number}\n */ get unitsPerEm() {\n return this.head.unitsPerEm;\n }\n /**\n * The font’s bounding box, i.e. the box that encloses all glyphs in the font.\n * @type {BBox}\n */ get bbox() {\n return Object.freeze(new (0, $f34600ab9d7f70d8$export$2e2bcd8739ae039)(this.head.xMin, this.head.yMin, this.head.xMax, this.head.yMax));\n }\n get _cmapProcessor() {\n return new (0, $f08dd41ef10b694c$export$2e2bcd8739ae039)(this.cmap);\n }\n /**\n * An array of all of the unicode code points supported by the font.\n * @type {number[]}\n */ get characterSet() {\n return this._cmapProcessor.getCharacterSet();\n }\n /**\n * Returns whether there is glyph in the font for the given unicode code point.\n *\n * @param {number} codePoint\n * @return {boolean}\n */ hasGlyphForCodePoint(codePoint) {\n return !!this._cmapProcessor.lookup(codePoint);\n }\n /**\n * Maps a single unicode code point to a Glyph object.\n * Does not perform any advanced substitutions (there is no context to do so).\n *\n * @param {number} codePoint\n * @return {Glyph}\n */ glyphForCodePoint(codePoint) {\n return this.getGlyph(this._cmapProcessor.lookup(codePoint), [\n codePoint\n ]);\n }\n /**\n * Returns an array of Glyph objects for the given string.\n * This is only a one-to-one mapping from characters to glyphs.\n * For most uses, you should use font.layout (described below), which\n * provides a much more advanced mapping supporting AAT and OpenType shaping.\n *\n * @param {string} string\n * @return {Glyph[]}\n */ glyphsForString(string) {\n let glyphs = [];\n let len = string.length;\n let idx = 0;\n let last = -1;\n let state = -1;\n while(idx <= len){\n let code = 0;\n let nextState = 0;\n if (idx < len) {\n // Decode the next codepoint from UTF 16\n code = string.charCodeAt(idx++);\n if (0xd800 <= code && code <= 0xdbff && idx < len) {\n let next = string.charCodeAt(idx);\n if (0xdc00 <= next && next <= 0xdfff) {\n idx++;\n code = ((code & 0x3ff) << 10) + (next & 0x3ff) + 0x10000;\n }\n }\n // Compute the next state: 1 if the next codepoint is a variation selector, 0 otherwise.\n nextState = 0xfe00 <= code && code <= 0xfe0f || 0xe0100 <= code && code <= 0xe01ef ? 1 : 0;\n } else idx++;\n if (state === 0 && nextState === 1) // Variation selector following normal codepoint.\n glyphs.push(this.getGlyph(this._cmapProcessor.lookup(last, code), [\n last,\n code\n ]));\n else if (state === 0 && nextState === 0) // Normal codepoint following normal codepoint.\n glyphs.push(this.glyphForCodePoint(last));\n last = code;\n state = nextState;\n }\n return glyphs;\n }\n get _layoutEngine() {\n return new (0, $4c0a7fa5df7a9ab1$export$2e2bcd8739ae039)(this);\n }\n /**\n * Returns a GlyphRun object, which includes an array of Glyphs and GlyphPositions for the given string.\n *\n * @param {string} string\n * @param {string[]} [userFeatures]\n * @param {string} [script]\n * @param {string} [language]\n * @param {string} [direction]\n * @return {GlyphRun}\n */ layout(string, userFeatures, script, language, direction) {\n return this._layoutEngine.layout(string, userFeatures, script, language, direction);\n }\n /**\n * Returns an array of strings that map to the given glyph id.\n * @param {number} gid - glyph id\n */ stringsForGlyph(gid) {\n return this._layoutEngine.stringsForGlyph(gid);\n }\n /**\n * An array of all [OpenType feature tags](https://www.microsoft.com/typography/otspec/featuretags.htm)\n * (or mapped AAT tags) supported by the font.\n * The features parameter is an array of OpenType feature tags to be applied in addition to the default set.\n * If this is an AAT font, the OpenType feature tags are mapped to AAT features.\n *\n * @type {string[]}\n */ get availableFeatures() {\n return this._layoutEngine.getAvailableFeatures();\n }\n getAvailableFeatures(script, language) {\n return this._layoutEngine.getAvailableFeatures(script, language);\n }\n _getBaseGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.glyf) this._glyphs[glyph] = new (0, $69aac16029968692$export$2e2bcd8739ae039)(glyph, characters, this);\n else if (this.directory.tables['CFF '] || this.directory.tables.CFF2) this._glyphs[glyph] = new (0, $62cc5109c6101893$export$2e2bcd8739ae039)(glyph, characters, this);\n }\n return this._glyphs[glyph] || null;\n }\n /**\n * Returns a glyph object for the given glyph id.\n * You can pass the array of code points this glyph represents for\n * your use later, and it will be stored in the glyph object.\n *\n * @param {number} glyph\n * @param {number[]} characters\n * @return {Glyph}\n */ getGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.sbix) this._glyphs[glyph] = new (0, $25d8f049c222084c$export$2e2bcd8739ae039)(glyph, characters, this);\n else if (this.directory.tables.COLR && this.directory.tables.CPAL) this._glyphs[glyph] = new (0, $0d411f0165859681$export$2e2bcd8739ae039)(glyph, characters, this);\n else this._getBaseGlyph(glyph, characters);\n }\n return this._glyphs[glyph] || null;\n }\n /**\n * Returns a Subset for this font.\n * @return {Subset}\n */ createSubset() {\n if (this.directory.tables['CFF ']) return new (0, $001d739428a71d5a$export$2e2bcd8739ae039)(this);\n return new (0, $4abbb6a5dbdc441a$export$2e2bcd8739ae039)(this);\n }\n /**\n * Returns an object describing the available variation axes\n * that this font supports. Keys are setting tags, and values\n * contain the axis name, range, and default value.\n *\n * @type {object}\n */ get variationAxes() {\n let res = {};\n if (!this.fvar) return res;\n for (let axis of this.fvar.axis)res[axis.axisTag.trim()] = {\n name: axis.name.en,\n min: axis.minValue,\n default: axis.defaultValue,\n max: axis.maxValue\n };\n return res;\n }\n /**\n * Returns an object describing the named variation instances\n * that the font designer has specified. Keys are variation names\n * and values are the variation settings for this instance.\n *\n * @type {object}\n */ get namedVariations() {\n let res = {};\n if (!this.fvar) return res;\n for (let instance of this.fvar.instance){\n let settings = {};\n for(let i = 0; i < this.fvar.axis.length; i++){\n let axis = this.fvar.axis[i];\n settings[axis.axisTag.trim()] = instance.coord[i];\n }\n res[instance.name.en] = settings;\n }\n return res;\n }\n /**\n * Returns a new font with the given variation settings applied.\n * Settings can either be an instance name, or an object containing\n * variation tags as specified by the `variationAxes` property.\n *\n * @param {object} settings\n * @return {TTFFont}\n */ getVariation(settings) {\n if (!(this.directory.tables.fvar && (this.directory.tables.gvar && this.directory.tables.glyf || this.directory.tables.CFF2))) throw new Error('Variations require a font with the fvar, gvar and glyf, or CFF2 tables.');\n if (typeof settings === 'string') settings = this.namedVariations[settings];\n if (typeof settings !== 'object') throw new Error('Variation settings must be either a variation name or settings object.');\n // normalize the coordinates\n let coords = this.fvar.axis.map((axis, i)=>{\n let axisTag = axis.axisTag.trim();\n if (axisTag in settings) return Math.max(axis.minValue, Math.min(axis.maxValue, settings[axisTag]));\n else return axis.defaultValue;\n });\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer);\n stream.pos = this._directoryPos;\n let font = new $4c1709dee528ea76$export$2e2bcd8739ae039(stream, coords);\n font._tables = this._tables;\n return font;\n }\n get _variationProcessor() {\n if (!this.fvar) return null;\n let variationCoords = this.variationCoords;\n // Ignore if no variation coords and not CFF2\n if (!variationCoords && !this.CFF2) return null;\n if (!variationCoords) variationCoords = this.fvar.axis.map((axis)=>axis.defaultValue);\n return new (0, $0bb840cac04e911b$export$2e2bcd8739ae039)(this, variationCoords);\n }\n // Standardized format plugin API\n getFont(name) {\n return this.getVariation(name);\n }\n constructor(stream, variationCoords = null){\n (0, $6uUbQ$_)(this, \"type\", 'TTF');\n this.defaultLanguage = null;\n this.stream = stream;\n this.variationCoords = variationCoords;\n this._directoryPos = this.stream.pos;\n this._tables = {};\n this._glyphs = {};\n this._decodeDirectory();\n // define properties for each table to lazily parse\n for(let tag in this.directory.tables){\n let table = this.directory.tables[tag];\n if ((0, $c3395722bea751e2$export$2e2bcd8739ae039)[tag] && table.length > 0) Object.defineProperty(this, tag, {\n get: this._getTable.bind(this, table)\n });\n }\n }\n}\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"bbox\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"_cmapProcessor\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"characterSet\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"_layoutEngine\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"variationAxes\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"namedVariations\", null);\n(0, $6uUbQ$_1)([\n (0, $e71565f2ce09cb6b$export$69a3209f1a06c04d)\n], $4c1709dee528ea76$export$2e2bcd8739ae039.prototype, \"_variationProcessor\", null);\n\n\n\n\n\n\nlet $c1726355ecc5b889$var$WOFFDirectoryEntry = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n offset: new $6uUbQ$Pointer($6uUbQ$uint32, 'void', {\n type: 'global'\n }),\n compLength: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n origChecksum: $6uUbQ$uint32\n});\nlet $c1726355ecc5b889$var$WOFFDirectory = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n flavor: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n numTables: $6uUbQ$uint16,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n totalSfntSize: $6uUbQ$uint32,\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n metaOffset: $6uUbQ$uint32,\n metaLength: $6uUbQ$uint32,\n metaOrigLength: $6uUbQ$uint32,\n privOffset: $6uUbQ$uint32,\n privLength: $6uUbQ$uint32,\n tables: new $6uUbQ$Array($c1726355ecc5b889$var$WOFFDirectoryEntry, 'numTables')\n});\n$c1726355ecc5b889$var$WOFFDirectory.process = function() {\n let tables = {};\n for (let table of this.tables)tables[table.tag] = table;\n this.tables = tables;\n};\nvar $c1726355ecc5b889$export$2e2bcd8739ae039 = $c1726355ecc5b889$var$WOFFDirectory;\n\n\n\n\n\n\nclass $760785214b9fc52c$export$2e2bcd8739ae039 extends (0, $4c1709dee528ea76$export$2e2bcd8739ae039) {\n static probe(buffer) {\n return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === 'wOFF';\n }\n _decodeDirectory() {\n this.directory = (0, $c1726355ecc5b889$export$2e2bcd8739ae039).decode(this.stream, {\n _startOffset: 0\n });\n }\n _getTableStream(tag) {\n let table = this.directory.tables[tag];\n if (table) {\n this.stream.pos = table.offset;\n if (table.compLength < table.length) {\n this.stream.pos += 2; // skip deflate header\n let outBuffer = new Uint8Array(table.length);\n let buf = (0, $6uUbQ$tinyinflate)(this.stream.readBuffer(table.compLength - 2), outBuffer);\n return new $6uUbQ$DecodeStream(buf);\n } else return this.stream;\n }\n return null;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'WOFF');\n }\n}\n\n\n\n\n\n\n\n\n\nclass $8046190c9f1ad19e$export$2e2bcd8739ae039 extends (0, $69aac16029968692$export$2e2bcd8739ae039) {\n _decode() {\n // We have to decode in advance (in WOFF2Font), so just return the pre-decoded data.\n return this._font._transformedGlyphs[this.id];\n }\n _getCBox() {\n return this.path.bbox;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'WOFF2');\n }\n}\n\n\n\nconst $c28ec7bbb3b8de3a$var$Base128 = {\n decode (stream) {\n let result = 0;\n let iterable = [\n 0,\n 1,\n 2,\n 3,\n 4\n ];\n for(let j = 0; j < iterable.length; j++){\n let i = iterable[j];\n let code = stream.readUInt8();\n // If any of the top seven bits are set then we're about to overflow.\n if (result & 0xe0000000) throw new Error('Overflow');\n result = result << 7 | code & 0x7f;\n if ((code & 0x80) === 0) return result;\n }\n throw new Error('Bad base 128 number');\n }\n};\nlet $c28ec7bbb3b8de3a$var$knownTags = [\n 'cmap',\n 'head',\n 'hhea',\n 'hmtx',\n 'maxp',\n 'name',\n 'OS/2',\n 'post',\n 'cvt ',\n 'fpgm',\n 'glyf',\n 'loca',\n 'prep',\n 'CFF ',\n 'VORG',\n 'EBDT',\n 'EBLC',\n 'gasp',\n 'hdmx',\n 'kern',\n 'LTSH',\n 'PCLT',\n 'VDMX',\n 'vhea',\n 'vmtx',\n 'BASE',\n 'GDEF',\n 'GPOS',\n 'GSUB',\n 'EBSC',\n 'JSTF',\n 'MATH',\n 'CBDT',\n 'CBLC',\n 'COLR',\n 'CPAL',\n 'SVG ',\n 'sbix',\n 'acnt',\n 'avar',\n 'bdat',\n 'bloc',\n 'bsln',\n 'cvar',\n 'fdsc',\n 'feat',\n 'fmtx',\n 'fvar',\n 'gvar',\n 'hsty',\n 'just',\n 'lcar',\n 'mort',\n 'morx',\n 'opbd',\n 'prop',\n 'trak',\n 'Zapf',\n 'Silf',\n 'Glat',\n 'Gloc',\n 'Feat',\n 'Sill'\n];\nlet $c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry = new $6uUbQ$Struct({\n flags: $6uUbQ$uint8,\n customTag: new $6uUbQ$Optional(new $6uUbQ$String(4), (t)=>(t.flags & 0x3f) === 0x3f),\n tag: (t)=>t.customTag || $c28ec7bbb3b8de3a$var$knownTags[t.flags & 0x3f],\n length: $c28ec7bbb3b8de3a$var$Base128,\n transformVersion: (t)=>t.flags >>> 6 & 0x03,\n transformed: (t)=>t.tag === 'glyf' || t.tag === 'loca' ? t.transformVersion === 0 : t.transformVersion !== 0,\n transformLength: new $6uUbQ$Optional($c28ec7bbb3b8de3a$var$Base128, (t)=>t.transformed)\n});\nlet $c28ec7bbb3b8de3a$var$WOFF2Directory = new $6uUbQ$Struct({\n tag: new $6uUbQ$String(4),\n flavor: $6uUbQ$uint32,\n length: $6uUbQ$uint32,\n numTables: $6uUbQ$uint16,\n reserved: new $6uUbQ$Reserved($6uUbQ$uint16),\n totalSfntSize: $6uUbQ$uint32,\n totalCompressedSize: $6uUbQ$uint32,\n majorVersion: $6uUbQ$uint16,\n minorVersion: $6uUbQ$uint16,\n metaOffset: $6uUbQ$uint32,\n metaLength: $6uUbQ$uint32,\n metaOrigLength: $6uUbQ$uint32,\n privOffset: $6uUbQ$uint32,\n privLength: $6uUbQ$uint32,\n tables: new $6uUbQ$Array($c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry, 'numTables')\n});\n$c28ec7bbb3b8de3a$var$WOFF2Directory.process = function() {\n let tables = {};\n for(let i = 0; i < this.tables.length; i++){\n let table = this.tables[i];\n tables[table.tag] = table;\n }\n return this.tables = tables;\n};\nvar $c28ec7bbb3b8de3a$export$2e2bcd8739ae039 = $c28ec7bbb3b8de3a$var$WOFF2Directory;\n\n\n\nclass $21ee218f84ac7f32$export$2e2bcd8739ae039 extends (0, $4c1709dee528ea76$export$2e2bcd8739ae039) {\n static probe(buffer) {\n return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === 'wOF2';\n }\n _decodeDirectory() {\n this.directory = (0, $c28ec7bbb3b8de3a$export$2e2bcd8739ae039).decode(this.stream);\n this._dataPos = this.stream.pos;\n }\n _decompress() {\n // decompress data and setup table offsets if we haven't already\n if (!this._decompressed) {\n this.stream.pos = this._dataPos;\n let buffer = this.stream.readBuffer(this.directory.totalCompressedSize);\n let decompressedSize = 0;\n for(let tag in this.directory.tables){\n let entry = this.directory.tables[tag];\n entry.offset = decompressedSize;\n decompressedSize += entry.transformLength != null ? entry.transformLength : entry.length;\n }\n let decompressed = (0, $6uUbQ$brotlidecompressjs)(buffer, decompressedSize);\n if (!decompressed) throw new Error('Error decoding compressed data in WOFF2');\n this.stream = new $6uUbQ$DecodeStream(decompressed);\n this._decompressed = true;\n }\n }\n _decodeTable(table) {\n this._decompress();\n return super._decodeTable(table);\n }\n // Override this method to get a glyph and return our\n // custom subclass if there is a glyf table.\n _getBaseGlyph(glyph, characters = []) {\n if (!this._glyphs[glyph]) {\n if (this.directory.tables.glyf && this.directory.tables.glyf.transformed) {\n if (!this._transformedGlyphs) this._transformGlyfTable();\n return this._glyphs[glyph] = new (0, $8046190c9f1ad19e$export$2e2bcd8739ae039)(glyph, characters, this);\n } else return super._getBaseGlyph(glyph, characters);\n }\n }\n _transformGlyfTable() {\n this._decompress();\n this.stream.pos = this.directory.tables.glyf.offset;\n let table = $21ee218f84ac7f32$var$GlyfTable.decode(this.stream);\n let glyphs = [];\n for(let index = 0; index < table.numGlyphs; index++){\n let glyph = {};\n let nContours = table.nContours.readInt16BE();\n glyph.numberOfContours = nContours;\n if (nContours > 0) {\n let nPoints = [];\n let totalPoints = 0;\n for(let i = 0; i < nContours; i++){\n let r = $21ee218f84ac7f32$var$read255UInt16(table.nPoints);\n totalPoints += r;\n nPoints.push(totalPoints);\n }\n glyph.points = $21ee218f84ac7f32$var$decodeTriplet(table.flags, table.glyphs, totalPoints);\n for(let i = 0; i < nContours; i++)glyph.points[nPoints[i] - 1].endContour = true;\n var instructionSize = $21ee218f84ac7f32$var$read255UInt16(table.glyphs);\n } else if (nContours < 0) {\n let haveInstructions = (0, $69aac16029968692$export$2e2bcd8739ae039).prototype._decodeComposite.call({\n _font: this\n }, glyph, table.composites);\n if (haveInstructions) var instructionSize = $21ee218f84ac7f32$var$read255UInt16(table.glyphs);\n }\n glyphs.push(glyph);\n }\n this._transformedGlyphs = glyphs;\n }\n constructor(...args){\n super(...args);\n (0, $6uUbQ$_)(this, \"type\", 'WOFF2');\n }\n}\n// Special class that accepts a length and returns a sub-stream for that data\nclass $21ee218f84ac7f32$var$Substream {\n decode(stream, parent) {\n return new $6uUbQ$DecodeStream(this._buf.decode(stream, parent));\n }\n constructor(length){\n this.length = length;\n this._buf = new $6uUbQ$Buffer(length);\n }\n}\n// This struct represents the entire glyf table\nlet $21ee218f84ac7f32$var$GlyfTable = new $6uUbQ$Struct({\n version: $6uUbQ$uint32,\n numGlyphs: $6uUbQ$uint16,\n indexFormat: $6uUbQ$uint16,\n nContourStreamSize: $6uUbQ$uint32,\n nPointsStreamSize: $6uUbQ$uint32,\n flagStreamSize: $6uUbQ$uint32,\n glyphStreamSize: $6uUbQ$uint32,\n compositeStreamSize: $6uUbQ$uint32,\n bboxStreamSize: $6uUbQ$uint32,\n instructionStreamSize: $6uUbQ$uint32,\n nContours: new $21ee218f84ac7f32$var$Substream('nContourStreamSize'),\n nPoints: new $21ee218f84ac7f32$var$Substream('nPointsStreamSize'),\n flags: new $21ee218f84ac7f32$var$Substream('flagStreamSize'),\n glyphs: new $21ee218f84ac7f32$var$Substream('glyphStreamSize'),\n composites: new $21ee218f84ac7f32$var$Substream('compositeStreamSize'),\n bboxes: new $21ee218f84ac7f32$var$Substream('bboxStreamSize'),\n instructions: new $21ee218f84ac7f32$var$Substream('instructionStreamSize')\n});\nconst $21ee218f84ac7f32$var$WORD_CODE = 253;\nconst $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2 = 254;\nconst $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1 = 255;\nconst $21ee218f84ac7f32$var$LOWEST_U_CODE = 253;\nfunction $21ee218f84ac7f32$var$read255UInt16(stream) {\n let code = stream.readUInt8();\n if (code === $21ee218f84ac7f32$var$WORD_CODE) return stream.readUInt16BE();\n if (code === $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1) return stream.readUInt8() + $21ee218f84ac7f32$var$LOWEST_U_CODE;\n if (code === $21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2) return stream.readUInt8() + $21ee218f84ac7f32$var$LOWEST_U_CODE * 2;\n return code;\n}\nfunction $21ee218f84ac7f32$var$withSign(flag, baseval) {\n return flag & 1 ? baseval : -baseval;\n}\nfunction $21ee218f84ac7f32$var$decodeTriplet(flags, glyphs, nPoints) {\n let y;\n let x = y = 0;\n let res = [];\n for(let i = 0; i < nPoints; i++){\n let dx = 0, dy = 0;\n let flag = flags.readUInt8();\n let onCurve = !(flag >> 7);\n flag &= 0x7f;\n if (flag < 10) {\n dx = 0;\n dy = $21ee218f84ac7f32$var$withSign(flag, ((flag & 14) << 7) + glyphs.readUInt8());\n } else if (flag < 20) {\n dx = $21ee218f84ac7f32$var$withSign(flag, ((flag - 10 & 14) << 7) + glyphs.readUInt8());\n dy = 0;\n } else if (flag < 84) {\n var b0 = flag - 20;\n var b1 = glyphs.readUInt8();\n dx = $21ee218f84ac7f32$var$withSign(flag, 1 + (b0 & 0x30) + (b1 >> 4));\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, 1 + ((b0 & 0x0c) << 2) + (b1 & 0x0f));\n } else if (flag < 120) {\n var b0 = flag - 84;\n dx = $21ee218f84ac7f32$var$withSign(flag, 1 + (b0 / 12 << 8) + glyphs.readUInt8());\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, 1 + (b0 % 12 >> 2 << 8) + glyphs.readUInt8());\n } else if (flag < 124) {\n var b1 = glyphs.readUInt8();\n let b2 = glyphs.readUInt8();\n dx = $21ee218f84ac7f32$var$withSign(flag, (b1 << 4) + (b2 >> 4));\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, ((b2 & 0x0f) << 8) + glyphs.readUInt8());\n } else {\n dx = $21ee218f84ac7f32$var$withSign(flag, glyphs.readUInt16BE());\n dy = $21ee218f84ac7f32$var$withSign(flag >> 1, glyphs.readUInt16BE());\n }\n x += dx;\n y += dy;\n res.push(new (0, $69aac16029968692$export$baf26146a414f24a)(onCurve, false, x, y));\n }\n return res;\n}\n\n\n\n\n\n\n\n\nlet $cd5853a56c68fec7$var$TTCHeader = new $6uUbQ$VersionedStruct($6uUbQ$uint32, {\n 0x00010000: {\n numFonts: $6uUbQ$uint32,\n offsets: new $6uUbQ$Array($6uUbQ$uint32, 'numFonts')\n },\n 0x00020000: {\n numFonts: $6uUbQ$uint32,\n offsets: new $6uUbQ$Array($6uUbQ$uint32, 'numFonts'),\n dsigTag: $6uUbQ$uint32,\n dsigLength: $6uUbQ$uint32,\n dsigOffset: $6uUbQ$uint32\n }\n});\nclass $cd5853a56c68fec7$export$2e2bcd8739ae039 {\n static probe(buffer) {\n return (0, $12727730ddfc8bfe$export$3d28c1996ced1f14).decode(buffer.slice(0, 4)) === 'ttcf';\n }\n getFont(name) {\n for (let offset of this.header.offsets){\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer);\n stream.pos = offset;\n let font = new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream);\n if (font.postscriptName === name || font.postscriptName instanceof Uint8Array && name instanceof Uint8Array && font.postscriptName.every((v, i)=>name[i] === v)) return font;\n }\n return null;\n }\n get fonts() {\n let fonts = [];\n for (let offset of this.header.offsets){\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer);\n stream.pos = offset;\n fonts.push(new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream));\n }\n return fonts;\n }\n constructor(stream){\n (0, $6uUbQ$_)(this, \"type\", 'TTC');\n this.stream = stream;\n if (stream.readString(4) !== 'ttcf') throw new Error('Not a TrueType collection');\n this.header = $cd5853a56c68fec7$var$TTCHeader.decode(stream);\n }\n}\n\n\n\n\n\nlet $05f49f930186144e$var$DFontName = new $6uUbQ$String($6uUbQ$uint8);\nlet $05f49f930186144e$var$DFontData = new $6uUbQ$Struct({\n len: $6uUbQ$uint32,\n buf: new $6uUbQ$Buffer('len')\n});\nlet $05f49f930186144e$var$Ref = new $6uUbQ$Struct({\n id: $6uUbQ$uint16,\n nameOffset: $6uUbQ$int16,\n attr: $6uUbQ$uint8,\n dataOffset: $6uUbQ$uint24,\n handle: $6uUbQ$uint32\n});\nlet $05f49f930186144e$var$Type = new $6uUbQ$Struct({\n name: new $6uUbQ$String(4),\n maxTypeIndex: $6uUbQ$uint16,\n refList: new $6uUbQ$Pointer($6uUbQ$uint16, new $6uUbQ$Array($05f49f930186144e$var$Ref, (t)=>t.maxTypeIndex + 1), {\n type: 'parent'\n })\n});\nlet $05f49f930186144e$var$TypeList = new $6uUbQ$Struct({\n length: $6uUbQ$uint16,\n types: new $6uUbQ$Array($05f49f930186144e$var$Type, (t)=>t.length + 1)\n});\nlet $05f49f930186144e$var$DFontMap = new $6uUbQ$Struct({\n reserved: new $6uUbQ$Reserved($6uUbQ$uint8, 24),\n typeList: new $6uUbQ$Pointer($6uUbQ$uint16, $05f49f930186144e$var$TypeList),\n nameListOffset: new $6uUbQ$Pointer($6uUbQ$uint16, 'void')\n});\nlet $05f49f930186144e$var$DFontHeader = new $6uUbQ$Struct({\n dataOffset: $6uUbQ$uint32,\n map: new $6uUbQ$Pointer($6uUbQ$uint32, $05f49f930186144e$var$DFontMap),\n dataLength: $6uUbQ$uint32,\n mapLength: $6uUbQ$uint32\n});\nclass $05f49f930186144e$export$2e2bcd8739ae039 {\n static probe(buffer) {\n let stream = new $6uUbQ$DecodeStream(buffer);\n try {\n var header = $05f49f930186144e$var$DFontHeader.decode(stream);\n } catch (e) {\n return false;\n }\n for (let type of header.map.typeList.types){\n if (type.name === 'sfnt') return true;\n }\n return false;\n }\n getFont(name) {\n if (!this.sfnt) return null;\n for (let ref of this.sfnt.refList){\n let pos = this.header.dataOffset + ref.dataOffset + 4;\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer.slice(pos));\n let font = new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream);\n if (font.postscriptName === name || font.postscriptName instanceof Uint8Array && name instanceof Uint8Array && font.postscriptName.every((v, i)=>name[i] === v)) return font;\n }\n return null;\n }\n get fonts() {\n let fonts = [];\n for (let ref of this.sfnt.refList){\n let pos = this.header.dataOffset + ref.dataOffset + 4;\n let stream = new $6uUbQ$DecodeStream(this.stream.buffer.slice(pos));\n fonts.push(new (0, $4c1709dee528ea76$export$2e2bcd8739ae039)(stream));\n }\n return fonts;\n }\n constructor(stream){\n (0, $6uUbQ$_)(this, \"type\", 'DFont');\n this.stream = stream;\n this.header = $05f49f930186144e$var$DFontHeader.decode(this.stream);\n for (let type of this.header.map.typeList.types){\n for (let ref of type.refList)if (ref.nameOffset >= 0) {\n this.stream.pos = ref.nameOffset + this.header.map.nameListOffset;\n ref.name = $05f49f930186144e$var$DFontName.decode(this.stream);\n } else ref.name = null;\n if (type.name === 'sfnt') this.sfnt = type;\n }\n }\n}\n\n\n// Register font formats\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $4c1709dee528ea76$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $760785214b9fc52c$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $21ee218f84ac7f32$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $cd5853a56c68fec7$export$2e2bcd8739ae039));\n(0, $d636bc798e7178db$export$36b2f24e97d43be)((0, $05f49f930186144e$export$2e2bcd8739ae039));\n\n\nexport {$d636bc798e7178db$export$bd5c5d8b8dcafd78 as logErrors, $d636bc798e7178db$export$36b2f24e97d43be as registerFormat, $d636bc798e7178db$export$185802fd694ee1f5 as create, $d636bc798e7178db$export$42940898df819940 as defaultLanguage, $d636bc798e7178db$export$5157e7780d44cc36 as setDefaultLanguage};\n//# sourceMappingURL=browser-module.mjs.map\n"],"names":["buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","i","len","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","value","c","rt","exports","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","proto","createBuffer","length","buf","arg","encodingOrOffset","allocUnsafe","from","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","b","fromObject","assertSize","size","alloc","fill","encoding","checked","string","actual","fromArrayLike","array","arrayView","copy","byteOffset","obj","numberIsNaN","a","x","y","list","pos","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","str","max","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","dir","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","ret","out","hexSliceLookupTable","bytes","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","first","last","boundsError","lo","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","name","range","input","msg","received","addNumericalSeparator","checkBounds","type","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","ENCODING_MAPPING","DecodeStream","key","textEncoder","isBigEndian","EncodeStream","stringToUtf16","stringToAscii","stream","NumberT","endian","uint16be","uint16","uint24be","uint24","uint32be","uint32","int8","int16be","int16","int32be","int32","Fixed","fracBits","fixed16be","fixed16","fixed32be","fixed32","resolveLength","parent","PropertyDescriptor","opts","ArrayT","lengthType","ctx","utils.resolveLength","includePointers","item","ptr","LazyArray","LazyArrayValue","index","result","Bitfield","flags","flag","keys","BufferT","Optional","condition","Reserved","count","data","StringT","width","encodingWidth","c2","Struct","fields","utils.PropertyDescriptor","getPath","object","pathArray","prevObj","VersionedStruct","versions","Pointer","offsetType","options","relative","decodeValue","VoidPointer","_define_property","__decorate","decorators","desc","r","fastDeepEqual","equal","TINF_OK","TINF_DATA_ERROR","Tree","Data","source","dest","sltree","sdtree","length_bits","length_base","dist_bits","dist_base","clcidx","code_tree","lengths","tinf_build_bits_base","bits","base","delta","sum","tinf_build_fixed_trees","lt","dt","offs","tinf_build_tree","t","off","tinf_getbit","bit","tinf_read_bits","tinf_decode_symbol","cur","tag","tinf_decode_trees","hlit","hdist","hclen","clen","prev","tinf_inflate_block_data","dist","tinf_inflate_uncompressed_block","invlength","tinf_uncompress","bfinal","btype","tinyInflate","swap32","swap32LE","swap_1","inflate","require$$0","require$$1","SHIFT_1","SHIFT_2","SHIFT_1_2","OMITTED_BMP_INDEX_1_LENGTH","INDEX_2_BLOCK_LENGTH","INDEX_2_MASK","INDEX_SHIFT","DATA_BLOCK_LENGTH","DATA_MASK","LSCP_INDEX_2_OFFSET","LSCP_INDEX_2_LENGTH","INDEX_2_BMP_LENGTH","UTF8_2B_INDEX_2_OFFSET","UTF8_2B_INDEX_2_LENGTH","INDEX_1_OFFSET","DATA_GRANULARITY","UnicodeTrie","isBuffer","uncompressedLength","view","unicodeTrie","$parcel$interopDefault","$f4087201da764553$exports","$747425b437e121da$var$trie","$bdjGp$unicodetrie","$bdjGp$base64js","$747425b437e121da$var$log2","$747425b437e121da$var$bits","$747425b437e121da$var$CATEGORY_BITS","$747425b437e121da$var$COMBINING_BITS","$747425b437e121da$var$SCRIPT_BITS","$747425b437e121da$var$EAW_BITS","$747425b437e121da$var$NUMBER_BITS","$747425b437e121da$var$CATEGORY_SHIFT","$747425b437e121da$var$COMBINING_SHIFT","$747425b437e121da$var$SCRIPT_SHIFT","$747425b437e121da$var$CATEGORY_MASK","$747425b437e121da$var$COMBINING_MASK","$747425b437e121da$var$SCRIPT_MASK","$747425b437e121da$export$410364bbb673ddbc","$747425b437e121da$export$c03b919c6651ed55","$747425b437e121da$export$941569448d136665","$747425b437e121da$export$727d9dbc4fbb948f","$747425b437e121da$export$e33ad6871e762338","category","INITIAL_STATE","FAIL_STATE","StateMachine","dfa","self","state","startRun","lastAccepting","lastState","p","actions","tags","clone","_instanceof","nativeMap","nativeSet","nativePromise","circular","depth","prototype","includeNonEnumerable","allParents","allChildren","useBuffer","_clone","child","resolve","reject","err","__getRegExpFlags","keyChild","valueChild","entryChild","attrs","symbols","symbol","descriptor","allPropertyNames","propertyName","__objToStr","o","__isDate","__isArray","__isRegExp","re","module","BrotliInput","streams","BrotliOutput","BROTLI_READ_SIZE","BROTLI_IBUF_SIZE","BROTLI_IBUF_MASK","kBitMask","BrotliBitReader","bytes_read","n_bits","bit_reader","dictionary_bin","dictionaryBrowser","BrotliDecompressBuffer","compressed","require$$2","dictionary","HuffmanCode","huffman","MAX_LENGTH","GetNextKey","step","ReplicateValue","NextTableBitSize","root_bits","left","root_table","code_lengths","code_lengths_size","start_table","low","mask","table_bits","table_size","total_size","sorted","context","PrefixCodeRange","nbits","prefix","BrotliDictionary","kIdentity","kOmitLast1","kOmitLast2","kOmitLast3","kOmitLast4","kOmitLast5","kOmitLast6","kOmitLast7","kOmitLast8","kOmitLast9","kUppercaseFirst","kUppercaseAll","kOmitFirst1","kOmitFirst2","kOmitFirst3","kOmitFirst4","kOmitFirst5","kOmitFirst6","kOmitFirst7","kOmitFirst9","Transform","transform","suffix","kTransforms","ToUpperCase","idx","word","skip","start_idx","uppercase","prefix_pos","suffix_pos","require$$3","BrotliBuildHuffmanTable","Context","require$$4","Prefix","require$$5","require$$6","kDefaultCodeLength","kCodeLengthRepeatCode","kNumLiteralCodes","kNumInsertAndCopyCodes","kNumBlockLengthCodes","kLiteralContextBits","kDistanceContextBits","HUFFMAN_TABLE_BITS","HUFFMAN_TABLE_MASK","HUFFMAN_MAX_TABLE_SIZE","CODE_LENGTH_CODES","kCodeLengthCodeOrder","NUM_DISTANCE_SHORT_CODES","kDistanceShortCodeIndexOffset","kDistanceShortCodeValueOffset","kMaxHuffmanTableSize","DecodeWindowBits","br","DecodeVarLenUint8","MetaBlockLength","DecodeMetaBlockLength","size_nibbles","size_bytes","next_byte","next_nibble","ReadSymbol","ReadHuffmanCodeLengths","code_length_code_lengths","num_symbols","prev_code_len","repeat","repeat_code_len","space","code_len","extra_bits","old_repeat","repeat_delta","new_len","ReadHuffmanCode","alphabet_size","tables","simple_code_or_skip","max_bits_counter","max_bits","num_codes","huff","code_len_idx","v","ReadBlockLength","TranslateShortCodes","ringbuffer","MoveToFront","InverseMoveToFrontTransform","v_len","mtf","HuffmanTreeGroup","num_htrees","next","DecodeContextMap","context_map_size","use_rle_for_zeros","max_run_length_prefix","context_map","reps","DecodeBlockType","max_block_type","trees","tree_type","block_types","ringbuffers","indexes","type_code","block_type","CopyUncompressedBlockToOutput","ringbuffer_mask","rb_size","rb_pos","br_pos","nbytes","tail","JumpToByteBoundary","new_bit_pos","pad_bits","BrotliDecompressedSize","decode","output_size","output_buffer","BrotliDecompress","input_end","window_bits","max_backward_distance","max_distance","ringbuffer_size","ringbuffer_end","dist_rb","dist_rb_idx","prev_byte1","prev_byte2","hgroup","block_type_trees","block_len_trees","kRingBufferWriteAheadSlack","meta_block_remaining_len","is_uncompressed","block_length","num_block_types","block_type_rb","block_type_rb_index","distance_postfix_bits","num_direct_distance_codes","distance_postfix_mask","num_distance_codes","context_modes","num_literal_htrees","dist_context_map","num_dist_htrees","context_offset","context_map_slice","literal_htree_index","dist_context_offset","dist_context_map_slice","dist_htree_index","context_lookup_offset1","context_lookup_offset2","context_mode","htree_command","_out","_o1","_o2","cmd_code","range_idx","insert_code","copy_code","insert_length","copy_length","distance_code","distance","copy_dst","postfix","word_id","shift","word_idx","transform_idx","_x","decompress","$parcel$export","$d636bc798e7178db$exports","$d636bc798e7178db$export$bd5c5d8b8dcafd78","$d636bc798e7178db$export$36b2f24e97d43be","$d636bc798e7178db$export$185802fd694ee1f5","$d636bc798e7178db$export$42940898df819940","$d636bc798e7178db$export$5157e7780d44cc36","$d636bc798e7178db$var$formats","format","postscriptName","font","$6uUbQ$DecodeStream","lang","$e71565f2ce09cb6b$export$69a3209f1a06c04d","get","cache","memoized","args","$26a62205ad06574e$var$SubHeader","$6uUbQ$Struct","$6uUbQ$uint16","$6uUbQ$int16","$26a62205ad06574e$var$CmapGroup","$6uUbQ$uint32","$26a62205ad06574e$var$UnicodeValueRange","$6uUbQ$uint24","$6uUbQ$uint8","$26a62205ad06574e$var$UVSMapping","$26a62205ad06574e$var$DefaultUVS","$6uUbQ$Array","$26a62205ad06574e$var$NonDefaultUVS","$26a62205ad06574e$var$VarSelectorRecord","$6uUbQ$Pointer","$26a62205ad06574e$var$CmapSubtable","$6uUbQ$VersionedStruct","$6uUbQ$LazyArray","$6uUbQ$Reserved","$26a62205ad06574e$var$CmapEntry","$26a62205ad06574e$export$2e2bcd8739ae039","$f2612a29f92ac062$export$2e2bcd8739ae039","$6uUbQ$int32","$6uUbQ$Bitfield","$2c179dd593583073$export$2e2bcd8739ae039","$bdc9060542264b85$var$HmtxEntry","$bdc9060542264b85$export$2e2bcd8739ae039","$dbf51cb3d3fe409d$export$2e2bcd8739ae039","$e449ad78d50845fe$export$badc544e0651b6b1","platformID","encodingID","languageID","$e449ad78d50845fe$export$479e671907f486d1","$e449ad78d50845fe$export$6fef87b7618bdf0b","$e449ad78d50845fe$var$SINGLE_BYTE_ENCODINGS","$e449ad78d50845fe$var$MAC_ENCODINGS","$e449ad78d50845fe$var$encodingCache","$e449ad78d50845fe$export$1dceb3c14ed68bee","cached","mapping","decoder","$e449ad78d50845fe$export$2092376fd002e13","$2bcf221753ec8e32$var$NameRecord","$6uUbQ$String","$2bcf221753ec8e32$var$LangTagRecord","$2bcf221753ec8e32$var$NameTable","$2bcf221753ec8e32$export$2e2bcd8739ae039","$2bcf221753ec8e32$var$NAMES","records","record","language","$84b272aa31b70606$var$OS2","$84b272aa31b70606$var$versions","$84b272aa31b70606$export$2e2bcd8739ae039","$32d9e2eb9565d93c$export$2e2bcd8739ae039","$6uUbQ$fixed32","$5202bd9d9ad8eaac$export$2e2bcd8739ae039","$5c0f37ca5ffb1850$export$2e2bcd8739ae039","$2b2b260902b1c57e$var$loca","$2b2b260902b1c57e$export$2e2bcd8739ae039","$7afb878c7bea4f66$export$2e2bcd8739ae039","$6c92b6371bce8bd9$export$2e2bcd8739ae039","$6uUbQ$Buffer","$43e9821ef3717eec$export$2e2bcd8739ae039","offSize","startPos","sizes","$c2d28e92708f99da$var$FLOAT_EOF","$c2d28e92708f99da$var$FLOAT_LOOKUP","$c2d28e92708f99da$var$FLOAT_ENCODE_LOOKUP","$c2d28e92708f99da$export$2e2bcd8739ae039","n1","n2","c1","$61aa549f16d58b9b$export$2e2bcd8739ae039","operands","op","field","$6uUbQ$PropertyDescriptor","dict","k","$6uUbQ$fastdeepequal","ops","$0e34a43d05bde82c$export$2e2bcd8739ae039","$0e34a43d05bde82c$var$Ptr","$6d59db2e29cc77b3$var$CFFBlendOp","numBlends","$6d59db2e29cc77b3$export$2e2bcd8739ae039","$229224aec43783c5$export$2e2bcd8739ae039","$bc0433d9b7e41f5f$export$dee0027060fa13bd","$bc0433d9b7e41f5f$export$4f58f497e14a53c3","$ef658f5c9a1488b2$export$c33b50336c234f16","$ef658f5c9a1488b2$export$3ed0f9e1fee8d489","$ef658f5c9a1488b2$export$dc28be11139d4120","$7cbbe4e24ef3cb75$var$LangSysTable","$7cbbe4e24ef3cb75$var$LangSysRecord","$7cbbe4e24ef3cb75$var$Script","$7cbbe4e24ef3cb75$var$ScriptRecord","$7cbbe4e24ef3cb75$export$3e15fc05ce864229","$7cbbe4e24ef3cb75$var$FeatureParams","$7cbbe4e24ef3cb75$export$6e91cf7616333d5","$7cbbe4e24ef3cb75$var$FeatureRecord","$7cbbe4e24ef3cb75$export$aa18130def4b6cb4","$7cbbe4e24ef3cb75$var$LookupFlags","$7cbbe4e24ef3cb75$export$df0008c6ff2da22a","SubTable","Lookup","$6uUbQ$Optional","$7cbbe4e24ef3cb75$var$RangeRecord","$7cbbe4e24ef3cb75$export$17608c3f81a6111","$7cbbe4e24ef3cb75$var$ClassRangeRecord","$7cbbe4e24ef3cb75$export$843d551fbbafef71","$7cbbe4e24ef3cb75$export$8215d14a63d9fb10","$7cbbe4e24ef3cb75$var$LookupRecord","$7cbbe4e24ef3cb75$var$Rule","$7cbbe4e24ef3cb75$var$RuleSet","$7cbbe4e24ef3cb75$var$ClassRule","$7cbbe4e24ef3cb75$var$ClassSet","$7cbbe4e24ef3cb75$export$841858b892ce1f4c","$7cbbe4e24ef3cb75$var$ChainRule","$7cbbe4e24ef3cb75$var$ChainRuleSet","$7cbbe4e24ef3cb75$export$5e6d09e6861162f6","$1a47b0c45c1c22fe$var$F2DOT14","$6uUbQ$Fixed","$1a47b0c45c1c22fe$var$RegionAxisCoordinates","$1a47b0c45c1c22fe$var$VariationRegionList","$1a47b0c45c1c22fe$var$DeltaSet","$6uUbQ$int8","$1a47b0c45c1c22fe$var$ItemVariationData","$1a47b0c45c1c22fe$export$fe1b122a2710f241","$1a47b0c45c1c22fe$var$ConditionTable","$1a47b0c45c1c22fe$var$ConditionSet","$1a47b0c45c1c22fe$var$FeatureTableSubstitutionRecord","$1a47b0c45c1c22fe$var$FeatureTableSubstitution","$1a47b0c45c1c22fe$var$FeatureVariationRecord","$1a47b0c45c1c22fe$export$441b70b7971dd419","$b84fd3dd9d8eddb2$var$PredefinedOp","predefinedOps","$b84fd3dd9d8eddb2$var$CFFEncodingVersion","$6uUbQ$Number","$b84fd3dd9d8eddb2$var$Range1","$b84fd3dd9d8eddb2$var$Range2","$b84fd3dd9d8eddb2$var$CFFCustomEncoding","$b84fd3dd9d8eddb2$var$CFFEncoding","$b84fd3dd9d8eddb2$var$RangeArray","$6uUbQ$resolveLength","$b84fd3dd9d8eddb2$var$CFFCustomCharset","$b84fd3dd9d8eddb2$var$CFFCharset","$b84fd3dd9d8eddb2$var$FDRange3","$b84fd3dd9d8eddb2$var$FDRange4","$b84fd3dd9d8eddb2$var$FDSelect","$b84fd3dd9d8eddb2$var$ptr","$b84fd3dd9d8eddb2$var$CFFPrivateOp","$b84fd3dd9d8eddb2$var$FontDict","$b84fd3dd9d8eddb2$var$CFFTopDict","$b84fd3dd9d8eddb2$var$VariationStore","$b84fd3dd9d8eddb2$var$CFF2TopDict","$b84fd3dd9d8eddb2$var$CFFTop","$6uUbQ$fixed16","$b84fd3dd9d8eddb2$export$2e2bcd8739ae039","$822ac0d589e4e237$var$CFFFont","top","sid","glyph","gid","charset","ranges","high","mid","fd","$822ac0d589e4e237$export$2e2bcd8739ae039","$2bbf2bc1ce37cd8f$var$VerticalOrigin","$2bbf2bc1ce37cd8f$export$2e2bcd8739ae039","$0941618dc22a946d$export$16b227cb15d716a0","$0941618dc22a946d$export$62c53e75f69bfe12","$0941618dc22a946d$var$EBDTComponent","$0941618dc22a946d$var$ByteAligned","$0941618dc22a946d$var$BitAligned","$9911c4c7201c13de$var$SBitLineMetrics","$9911c4c7201c13de$var$CodeOffsetPair","$9911c4c7201c13de$var$IndexSubtable","$9911c4c7201c13de$var$IndexSubtableArray","$9911c4c7201c13de$var$BitmapSizeTable","$9911c4c7201c13de$export$2e2bcd8739ae039","$abb847051efd51b1$var$ImageTable","$abb847051efd51b1$export$2e2bcd8739ae039","$eb629188f3dfefdd$var$LayerRecord","$eb629188f3dfefdd$var$BaseGlyphRecord","$eb629188f3dfefdd$export$2e2bcd8739ae039","$08734b8e7dc64587$var$ColorRecord","$08734b8e7dc64587$export$2e2bcd8739ae039","$497cef411d884e34$var$BaseCoord","$497cef411d884e34$var$BaseValues","$497cef411d884e34$var$FeatMinMaxRecord","$497cef411d884e34$var$MinMax","$497cef411d884e34$var$BaseLangSysRecord","$497cef411d884e34$var$BaseScript","$497cef411d884e34$var$BaseScriptRecord","$497cef411d884e34$var$BaseScriptList","$497cef411d884e34$var$BaseTagList","$497cef411d884e34$var$Axis","$497cef411d884e34$export$2e2bcd8739ae039","$cf5f33c63ef209e6$var$AttachPoint","$cf5f33c63ef209e6$var$AttachList","$cf5f33c63ef209e6$var$CaretValue","$cf5f33c63ef209e6$var$LigGlyph","$cf5f33c63ef209e6$var$LigCaretList","$cf5f33c63ef209e6$var$MarkGlyphSetsDef","$cf5f33c63ef209e6$export$2e2bcd8739ae039","$47e0e8ef515d9903$var$ValueFormat","$47e0e8ef515d9903$var$types","$47e0e8ef515d9903$var$ValueRecord","struct","$47e0e8ef515d9903$var$PairValueRecord","$47e0e8ef515d9903$var$PairSet","$47e0e8ef515d9903$var$Class2Record","$47e0e8ef515d9903$var$Anchor","$47e0e8ef515d9903$var$EntryExitRecord","$47e0e8ef515d9903$var$MarkRecord","$47e0e8ef515d9903$var$MarkArray","$47e0e8ef515d9903$var$BaseRecord","$47e0e8ef515d9903$var$BaseArray","$47e0e8ef515d9903$var$ComponentRecord","$47e0e8ef515d9903$var$LigatureAttach","$47e0e8ef515d9903$var$LigatureArray","$47e0e8ef515d9903$export$73a8cfb19cd43a0f","$47e0e8ef515d9903$export$2e2bcd8739ae039","$d3f442064af66e06$var$Sequence","$d3f442064af66e06$var$AlternateSet","$d3f442064af66e06$var$Ligature","$d3f442064af66e06$var$LigatureSet","$d3f442064af66e06$var$GSUBLookup","$d3f442064af66e06$export$2e2bcd8739ae039","$71cfb3c4767fbd0c$var$JstfGSUBModList","$71cfb3c4767fbd0c$var$JstfPriority","$71cfb3c4767fbd0c$var$JstfLangSys","$71cfb3c4767fbd0c$var$JstfLangSysRecord","$71cfb3c4767fbd0c$var$JstfScript","$71cfb3c4767fbd0c$var$JstfScriptRecord","$71cfb3c4767fbd0c$export$2e2bcd8739ae039","$d059a6bd2d3b5b63$var$VariableSizeNumber","$d059a6bd2d3b5b63$var$MapDataEntry","$d059a6bd2d3b5b63$var$DeltaSetIndexMap","$d059a6bd2d3b5b63$export$2e2bcd8739ae039","$dceeca3e1977ce30$var$Signature","$dceeca3e1977ce30$var$SignatureBlock","$dceeca3e1977ce30$export$2e2bcd8739ae039","$8acd740a9435aad0$var$GaspRange","$8acd740a9435aad0$export$2e2bcd8739ae039","$b5f380243c34d6a0$var$DeviceRecord","$b5f380243c34d6a0$export$2e2bcd8739ae039","$ca2df1256966e313$var$KernPair","$ca2df1256966e313$var$ClassTable","$ca2df1256966e313$var$Kern2Array","$ca2df1256966e313$var$KernSubtable","$ca2df1256966e313$var$KernTable","$ca2df1256966e313$export$2e2bcd8739ae039","$7a9f92b0c46ebe33$export$2e2bcd8739ae039","$2b2ccc419d152631$export$2e2bcd8739ae039","$ca5b40b9bcda9c9b$var$Ratio","$ca5b40b9bcda9c9b$var$vTable","$ca5b40b9bcda9c9b$var$VdmxGroup","$ca5b40b9bcda9c9b$export$2e2bcd8739ae039","$69530a3c40755af0$export$2e2bcd8739ae039","$344073dd270f0e62$var$VmtxEntry","$344073dd270f0e62$export$2e2bcd8739ae039","$3793b781918cfced$var$shortFrac","$3793b781918cfced$var$Correspondence","$3793b781918cfced$var$Segment","$3793b781918cfced$export$2e2bcd8739ae039","$6cb7dd5f47d82580$var$UnboundedArrayAccessor","$6cb7dd5f47d82580$export$c5af1eebc882e39a","$6cb7dd5f47d82580$export$8351f8c2ae2f103c","ValueType","Shadow","BinarySearchHeader","LookupSegmentSingle","LookupSegmentArray","LookupSingle","$6cb7dd5f47d82580$export$79f7d93d790934ba","entryData","lookupType","entry","Entry","StateArray","$6cb7dd5f47d82580$export$105027425199cc51","ClassLookupTable","$6a3746e8c708f5a3$var$BslnSubtable","$6a3746e8c708f5a3$export$2e2bcd8739ae039","$d0c76fac617b308a$var$Setting","$d0c76fac617b308a$var$FeatureName","$d0c76fac617b308a$export$2e2bcd8739ae039","$e83fd065f00fcd01$var$Axis","$e83fd065f00fcd01$var$Instance","$e83fd065f00fcd01$export$2e2bcd8739ae039","$dbe33c8d3a7f131c$var$shortFrac","$dbe33c8d3a7f131c$var$Offset","$dbe33c8d3a7f131c$var$gvar","$dbe33c8d3a7f131c$export$2e2bcd8739ae039","$05b01887df96c4ee$var$ClassTable","$05b01887df96c4ee$var$WidthDeltaRecord","$05b01887df96c4ee$var$WidthDeltaCluster","$05b01887df96c4ee$var$ActionData","$05b01887df96c4ee$var$Action","$05b01887df96c4ee$var$PostcompensationAction","$05b01887df96c4ee$var$PostCompensationTable","$05b01887df96c4ee$var$JustificationTable","$05b01887df96c4ee$export$2e2bcd8739ae039","$03ee6ebd54db1053$var$LigatureData","$03ee6ebd54db1053$var$ContextualData","$03ee6ebd54db1053$var$InsertionData","$03ee6ebd54db1053$var$SubstitutionTable","$03ee6ebd54db1053$var$SubtableData","$03ee6ebd54db1053$var$Subtable","$03ee6ebd54db1053$var$FeatureEntry","$03ee6ebd54db1053$var$MorxChain","$03ee6ebd54db1053$export$2e2bcd8739ae039","$b7492a80b0d1a056$var$OpticalBounds","$b7492a80b0d1a056$export$2e2bcd8739ae039","$c3395722bea751e2$var$tables","$c3395722bea751e2$export$2e2bcd8739ae039","$816c07a04b6dba87$var$TableEntry","$816c07a04b6dba87$var$Directory","$6uUbQ$VoidPointer","maxExponentFor2","maxPowerOf2","$816c07a04b6dba87$export$2e2bcd8739ae039","$12727730ddfc8bfe$export$2e0ae67339d5f1ac","cmp","$12727730ddfc8bfe$export$d02631cccf789723","$12727730ddfc8bfe$export$3d28c1996ced1f14","$12727730ddfc8bfe$var$CHARS","$12727730ddfc8bfe$var$LOOKUP","$12727730ddfc8bfe$export$94fdf11bafc8de6b","bufferLength","encoded1","encoded2","encoded3","encoded4","$f08dd41ef10b694c$export$2e2bcd8739ae039","cmapTable","pairs","cmap","codepoint","variationSelector","rangeOffset","group","selectors","sel","endCodes","g","$6uUbQ$_1","$0bba3a9db57637f3$export$2e2bcd8739ae039","glyphs","positions","glyphIndex","right","pairIdx","pair","leftOffset","rightOffset","$0a4bdfeb6dfd6f5e$export$2e2bcd8739ae039","clusterStart","clusterEnd","baseBox","xOffset","yOffset","yGap","mark","markBox","position","combiningClass","$6uUbQ$getCombiningClass","$f34600ab9d7f70d8$export$2e2bcd8739ae039","minX","minY","maxX","maxY","$130d1a642ebcd2b7$var$UNICODE_SCRIPTS","$130d1a642ebcd2b7$var$OPENTYPE_SCRIPTS","script","$130d1a642ebcd2b7$export$ce50e82f12a827a4","$130d1a642ebcd2b7$export$e5cb25e204fb8450","$6uUbQ$getScript","$130d1a642ebcd2b7$export$16fab0757cfc223d","$130d1a642ebcd2b7$var$RTL","$130d1a642ebcd2b7$export$9fddb9d0dd7d8a54","$be07b3e97a42687a$export$2e2bcd8739ae039","height","bbox","features","direction","$1ac75d9a55b67f01$export$2e2bcd8739ae039","xAdvance","yAdvance","$3b6302b64eccc32c$var$features","$3b6302b64eccc32c$var$feature","selector","$3b6302b64eccc32c$var$OTMapping","$3b6302b64eccc32c$var$AATMapping","ot","aat","$3b6302b64eccc32c$export$b813f7d2a1677c16","$3b6302b64eccc32c$var$mapFeatureStrings","f","setting","typeCode","settingCode","$3b6302b64eccc32c$export$bd6df347a4f391c4","feature","$ff5ce077dae0f144$export$2e2bcd8739ae039","seg","classValue","segment","$50c7aac9316f2948$var$START_OF_TEXT_STATE","$50c7aac9316f2948$var$END_OF_TEXT_CLASS","$50c7aac9316f2948$var$OUT_OF_BOUNDS_CLASS","$50c7aac9316f2948$var$DELETED_GLYPH_CLASS","$50c7aac9316f2948$var$DONT_ADVANCE","$50c7aac9316f2948$export$2e2bcd8739ae039","reverse","processEntry","currentState","classCode","shouldAdvance","entryIndex","visited","nClasses","stateArray","entryTable","row","stateTable","$55f71433a605c87d$var$MARK_FIRST","$55f71433a605c87d$var$MARK_LAST","$55f71433a605c87d$var$VERB","$55f71433a605c87d$var$SET_MARK","$55f71433a605c87d$var$SET_COMPONENT","$55f71433a605c87d$var$PERFORM_ACTION","$55f71433a605c87d$var$LAST_MASK","$55f71433a605c87d$var$STORE_MASK","$55f71433a605c87d$var$OFFSET_MASK","$55f71433a605c87d$var$REVERSE_DIRECTION","$55f71433a605c87d$var$CURRENT_INSERT_BEFORE","$55f71433a605c87d$var$MARKED_INSERT_BEFORE","$55f71433a605c87d$var$CURRENT_INSERT_COUNT","$55f71433a605c87d$var$MARKED_INSERT_COUNT","$55f71433a605c87d$export$2e2bcd8739ae039","chain","subtable","stateMachine","process","$55f71433a605c87d$var$reorderGlyphs","subsitutions","lookupTable","components","ligatureList","actionIndex","ligatureIndex","ligatureGlyphs","componentGlyph","action","store","component","ligatureEntry","insertionActionIndex","isBefore","insertions","stack","$55f71433a605c87d$var$swap","rangeA","rangeB","reverseA","reverseB","verb","firstGlyph","lastGlyph","$ba6dd74203be8728$export$2e2bcd8739ae039","glyphRun","glyphStrings","strings","$94d7a73bd2edfc9a$export$2e2bcd8739ae039","global","stageIndex","stage","processor","$649970d87335b30f$var$VARIATION_FEATURES","$649970d87335b30f$var$COMMON_FEATURES","$649970d87335b30f$var$FRACTIONAL_FEATURES","$649970d87335b30f$var$HORIZONTAL_FEATURES","$649970d87335b30f$var$DIRECTIONAL_FEATURES","$649970d87335b30f$export$2e2bcd8739ae039","plan","userFeatures","$6uUbQ$isDigit","$6uUbQ$_","$764eb544bbe1ccf0$var$trie","$6uUbQ$unicodetrie","$764eb544bbe1ccf0$var$FEATURES","$764eb544bbe1ccf0$var$ShapingClasses","$764eb544bbe1ccf0$var$ISOL","$764eb544bbe1ccf0$var$FINA","$764eb544bbe1ccf0$var$FIN2","$764eb544bbe1ccf0$var$FIN3","$764eb544bbe1ccf0$var$MEDI","$764eb544bbe1ccf0$var$MED2","$764eb544bbe1ccf0$var$INIT","$764eb544bbe1ccf0$var$NONE","$764eb544bbe1ccf0$var$STATE_TABLE","$764eb544bbe1ccf0$export$2e2bcd8739ae039","curAction","prevAction","$764eb544bbe1ccf0$var$getShapingClass","$6uUbQ$getCategory","$85d408632270248b$export$2e2bcd8739ae039","$a83b9c36aaa94fd3$var$DEFAULT_SCRIPTS","$a83b9c36aaa94fd3$export$2e2bcd8739ae039","changed","featureIndex","substituteFeature","exclude","lookups","lookupIndex","substitutions","substitution","coords","variations","conditions","coord","advances","lookupRecords","lookupRecord","coverage","sequenceIndex","sequence","matched","classDef","classID","set","rule","rules","$10e7b257e1a9a756$export$2e2bcd8739ae039","id","GDEF","$6uUbQ$isMark","$e1c6bbc8cb416f8c$export$2e2bcd8739ae039","$e1c6bbc8cb416f8c$var$getType","$e1c6bbc8cb416f8c$var$STATE_TABLE","$e1c6bbc8cb416f8c$var$DECOMPOSE","$e1c6bbc8cb416f8c$var$decompose","$e1c6bbc8cb416f8c$var$COMPOSE","$e1c6bbc8cb416f8c$var$compose","$e1c6bbc8cb416f8c$var$TONE_MARK","$e1c6bbc8cb416f8c$var$reorderToneMark","$e1c6bbc8cb416f8c$var$INVALID","$e1c6bbc8cb416f8c$var$insertDottedCircle","$e1c6bbc8cb416f8c$var$HANGUL_BASE","$e1c6bbc8cb416f8c$var$HANGUL_END","$e1c6bbc8cb416f8c$var$HANGUL_COUNT","$e1c6bbc8cb416f8c$var$L_BASE","$e1c6bbc8cb416f8c$var$V_BASE","$e1c6bbc8cb416f8c$var$T_BASE","$e1c6bbc8cb416f8c$var$L_COUNT","$e1c6bbc8cb416f8c$var$V_COUNT","$e1c6bbc8cb416f8c$var$T_COUNT","$e1c6bbc8cb416f8c$var$L_END","$e1c6bbc8cb416f8c$var$V_END","$e1c6bbc8cb416f8c$var$T_END","$e1c6bbc8cb416f8c$var$DOTTED_CIRCLE","$e1c6bbc8cb416f8c$var$isL","$e1c6bbc8cb416f8c$var$isV","$e1c6bbc8cb416f8c$var$isT","$e1c6bbc8cb416f8c$var$isTone","$e1c6bbc8cb416f8c$var$isLVT","$e1c6bbc8cb416f8c$var$isLV","$e1c6bbc8cb416f8c$var$isCombiningL","$e1c6bbc8cb416f8c$var$isCombiningV","$e1c6bbc8cb416f8c$var$isCombiningT","$e1c6bbc8cb416f8c$var$X","$e1c6bbc8cb416f8c$var$L","$e1c6bbc8cb416f8c$var$V","$e1c6bbc8cb416f8c$var$T","$e1c6bbc8cb416f8c$var$LV","$e1c6bbc8cb416f8c$var$LVT","$e1c6bbc8cb416f8c$var$M","$e1c6bbc8cb416f8c$var$NO_ACTION","$e1c6bbc8cb416f8c$var$getGlyph","l","ljmo","vjmo","insert","tjmo","prevType","lv","del","$e1c6bbc8cb416f8c$var$getLength","dottedCircle","$4b0735ca6c692ea5$exports","$aa333a9607471296$exports","$90a9d3398ee54fe5$export$a513ea61a7bee91c","$90a9d3398ee54fe5$export$1a1f61c9c4dd9df0","$90a9d3398ee54fe5$export$8519deaa7de2b07","$90a9d3398ee54fe5$export$bbcd928767338e0d","$90a9d3398ee54fe5$export$ca9599b2a300afc","$90a9d3398ee54fe5$export$e99d119da76a0fc5","$90a9d3398ee54fe5$export$f647c9cfdd77d95a","$7826f90f6f0cecc9$var$decompositions","$7826f90f6f0cecc9$var$trie","$7826f90f6f0cecc9$var$stateMachine","$6uUbQ$dfa","$7826f90f6f0cecc9$export$2e2bcd8739ae039","$7826f90f6f0cecc9$var$setupSyllables","$7826f90f6f0cecc9$var$initialReordering","$7826f90f6f0cecc9$var$finalReordering","decomposed","$7826f90f6f0cecc9$var$indicCategory","$7826f90f6f0cecc9$var$indicPosition","$7826f90f6f0cecc9$var$IndicInfo","syllableType","syllable","$7826f90f6f0cecc9$var$isConsonant","$7826f90f6f0cecc9$var$isJoiner","$7826f90f6f0cecc9$var$isHalantOrCoeng","$7826f90f6f0cecc9$var$wouldSubstitute","$7826f90f6f0cecc9$var$consonantPosition","consonant","virama","indicConfig","info","$7826f90f6f0cecc9$var$nextSyllable","hasReph","seenBelow","disallowDoubleHalants","lastPos","blwf","prefLen","nonJoiner","tryPref","newPos","oldPos","newRephPos","rephPos","reph","$7ab494fe977143c6$var$categories","$7ab494fe977143c6$var$decompositions","$7ab494fe977143c6$var$trie","$7ab494fe977143c6$var$stateMachine","$7ab494fe977143c6$export$2e2bcd8739ae039","$7ab494fe977143c6$var$setupSyllables","$7ab494fe977143c6$var$clearSubstitutionFlags","$7ab494fe977143c6$var$recordRphf","$7ab494fe977143c6$var$recordPref","$7ab494fe977143c6$var$reorder","$7ab494fe977143c6$var$useCategory","$7ab494fe977143c6$var$USEInfo","$7ab494fe977143c6$var$nextSyllable","$7ab494fe977143c6$var$isBase","$7ab494fe977143c6$var$isHalant","$102b6fe50f1d50b4$var$SHAPERS","$102b6fe50f1d50b4$export$7877a478dd30fd3d","shaper","$0a876c45f1f7c41c$export$2e2bcd8739ae039","curGlyph","replacement","USER_INDEX","ligature","characters","ligatureGlyph","isMarkLigature","lastLigID","lastNumComps","curComps","matchIndex","ligatureComponent","$c96c93587d49c14d$export$2e2bcd8739ae039","variationProcessor","variationStore","nextGlyph","class1","class2","nextIndex","curRecord","nextRecord","exit","markIndex","baseGlyphIndex","baseIndex","markRecord","baseAnchor","ligIndex","ligAttach","markGlyph","ligGlyph","compIndex","mark1Index","prevIndex","good","mark2Index","baseCoords","markCoords","markPos","anchor","$a62492810de27e3d$export$2e2bcd8739ae039","glyphInfo","$4c0a7fa5df7a9ab1$export$2e2bcd8739ae039","positioned","ch","plane","$f43aec954cdfdf21$var$SVG_COMMANDS","$f43aec954cdfdf21$export$2e2bcd8739ae039","cbox","command","cx","cy","p0","p1","p2","p3","qp1x","qp1y","p3x","p3y","cp1x","cp1y","cp2x","cp2y","b2ac","t1","t2","path","m0","m1","m2","m3","m4","m5","tx","ty","angle","cos","sin","scaleX","scaleY","$7713b9b7b438dff8$export$2e2bcd8739ae039","$f92906be28e61769$export$2e2bcd8739ae039","metric","advanceWidth","leftBearing","advanceHeight","topBearing","os2","hhea","scale","post","$69aac16029968692$var$GlyfHeader","$69aac16029968692$var$ON_CURVE","$69aac16029968692$var$X_SHORT_VECTOR","$69aac16029968692$var$Y_SHORT_VECTOR","$69aac16029968692$var$REPEAT","$69aac16029968692$var$SAME_X","$69aac16029968692$var$SAME_Y","$69aac16029968692$var$ARG_1_AND_2_ARE_WORDS","$69aac16029968692$var$WE_HAVE_A_SCALE","$69aac16029968692$var$MORE_COMPONENTS","$69aac16029968692$var$WE_HAVE_AN_X_AND_Y_SCALE","$69aac16029968692$var$WE_HAVE_A_TWO_BY_TWO","$69aac16029968692$var$WE_HAVE_INSTRUCTIONS","$69aac16029968692$export$baf26146a414f24a","onCurve","endContour","$69aac16029968692$var$Component","glyphID","dx","dy","$69aac16029968692$export$2e2bcd8739ae039","internal","short","same","glyfPos","nextPos","endPtsOfContours","numCoords","point","px","py","points","haveInstructions","gPos","contours","contour","firstPt","lastPt","curvePt","pt","prevPt","midX","midY","$62cc5109c6101893$export$2e2bcd8739ae039","cff","trans","nStems","usedGsubrs","usedSubrs","open","gsubrs","gsubrsBias","privateDict","subrs","subrsBias","vstore","vsindex","checkWidth","parseStems","moveTo","parse","subr","phase","c1x","c1y","c2x","c2y","c3x","c3y","c4x","c4y","c5x","c5y","c6x","c6y","pts","blendVector","numOperands","s1","s2","v1","v2","startx","starty","b1","$25d8f049c222084c$var$SBIXImage","$25d8f049c222084c$export$2e2bcd8739ae039","offsets","img","$0d411f0165859681$var$COLRLayer","color","$0d411f0165859681$export$2e2bcd8739ae039","cpal","colr","rec","baseLayer","layers","$0bb840cac04e911b$var$TUPLES_SHARE_POINT_NUMBERS","$0bb840cac04e911b$var$TUPLE_COUNT_MASK","$0bb840cac04e911b$var$EMBEDDED_TUPLE_COORD","$0bb840cac04e911b$var$INTERMEDIATE_TUPLE","$0bb840cac04e911b$var$PRIVATE_POINT_NUMBERS","$0bb840cac04e911b$var$TUPLE_INDEX_MASK","$0bb840cac04e911b$var$POINTS_ARE_WORDS","$0bb840cac04e911b$var$POINT_RUN_COUNT_MASK","$0bb840cac04e911b$var$DELTAS_ARE_ZERO","$0bb840cac04e911b$var$DELTAS_ARE_WORDS","$0bb840cac04e911b$var$DELTA_RUN_COUNT_MASK","$0bb840cac04e911b$export$2e2bcd8739ae039","normalized","axis","glyphPoints","gvar","tupleCount","offsetToData","here","sharedPoints","origPoints","tupleDataSize","tupleIndex","tupleCoords","startCoords","endCoords","factor","nPoints","xDeltas","yDeltas","outPoints","hasDelta","deltaX","deltaY","run","runCount","deltas","inPoints","firstPoint","endPoint","firstDelta","curDelta","ref1","ref2","iterable","in1","in2","out1","out2","ref","outerIndex","innerIndex","itemStore","varData","deltaSet","netAdjustment","master","normalizedCoords","scalar","regionIndex","axes","axisScalar","$5cc7476da92df375$export$2e2bcd8739ae039","$807e58506be70005$var$ON_CURVE","$807e58506be70005$var$X_SHORT_VECTOR","$807e58506be70005$var$Y_SHORT_VECTOR","$807e58506be70005$var$REPEAT","$807e58506be70005$var$SAME_X","$807e58506be70005$var$SAME_Y","$807e58506be70005$var$Point","$807e58506be70005$var$Glyf","$807e58506be70005$export$2e2bcd8739ae039","instructions","xPoints","yPoints","lastX","lastY","lastFlag","pointCount","glyf","$6uUbQ$EncodeStream","shortFlag","sameFlag","diff","$4abbb6a5dbdc441a$export$2e2bcd8739ae039","curOffset","nextOffset","maxp","$6uUbQ$clone","head","$001d739428a71d5a$export$2e2bcd8739ae039","used","topDict","used_fds","used_subrs","fd_select","$4c1709dee528ea76$export$2e2bcd8739ae039","nextState","instance","settings","axisTag","variationCoords","$c1726355ecc5b889$var$WOFFDirectoryEntry","$c1726355ecc5b889$var$WOFFDirectory","$c1726355ecc5b889$export$2e2bcd8739ae039","$760785214b9fc52c$export$2e2bcd8739ae039","outBuffer","$6uUbQ$tinyinflate","$8046190c9f1ad19e$export$2e2bcd8739ae039","$c28ec7bbb3b8de3a$var$Base128","$c28ec7bbb3b8de3a$var$knownTags","$c28ec7bbb3b8de3a$var$WOFF2DirectoryEntry","$c28ec7bbb3b8de3a$var$WOFF2Directory","$c28ec7bbb3b8de3a$export$2e2bcd8739ae039","$21ee218f84ac7f32$export$2e2bcd8739ae039","decompressedSize","decompressed","$6uUbQ$brotlidecompressjs","$21ee218f84ac7f32$var$GlyfTable","nContours","totalPoints","$21ee218f84ac7f32$var$read255UInt16","$21ee218f84ac7f32$var$decodeTriplet","instructionSize","$21ee218f84ac7f32$var$Substream","$21ee218f84ac7f32$var$WORD_CODE","$21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE2","$21ee218f84ac7f32$var$ONE_MORE_BYTE_CODE1","$21ee218f84ac7f32$var$LOWEST_U_CODE","$21ee218f84ac7f32$var$withSign","baseval","b0","b2","$cd5853a56c68fec7$var$TTCHeader","$cd5853a56c68fec7$export$2e2bcd8739ae039","fonts","$05f49f930186144e$var$DFontName","$05f49f930186144e$var$Ref","$05f49f930186144e$var$Type","$05f49f930186144e$var$TypeList","$05f49f930186144e$var$DFontMap","$05f49f930186144e$var$DFontHeader","$05f49f930186144e$export$2e2bcd8739ae039","header"],"mappings":"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EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAK;AAAA;AAAA,EAE7D;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA;AAAA,EAE7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA;AAAA;AAAA,EAG7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA;AAAA,EAE7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA;AAAA,EAE7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA;AAAA,EAE7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA;AAAA,EAE5C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC9C;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA;AAAA,EAE3D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC3D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC3D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC3D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA;AAAA,EAE3D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAG;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAC5D;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA,EAAI;AAAA;AAAA,EAE5D;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAC7C;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,EAAG;AAAA,E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IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,OAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,IACR,MAAQ;AAAA,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ACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACAW;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA,IAAQF,GAA0C,IAAQpB,MAA2C;AAAA,MACjG,MAAM;AAAA,IAClB,CAAS;AAAA,IACD;AAAA,EACR;AACA,CAAC,GAKGyB,KAA2C;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAGA,IAAIC,KAA4C;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GACIC,KAA4C;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAGIC,KAA4C;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GACIC,KAA4C;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GACIC,KAA4C;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAOIC,KAAqC,IAAI7F,EAAc;AAAA,EACvD,UAAU,IAAIiB,GAAgBhB,CAAa;AAAA,EAC3C,iBAAiBA;AAAAA,EACjB,cAAcA;AAAAA,EACd,gBAAgB,IAAIS,EAAaT,GAAe,cAAc;AAClE,CAAC,GACG6F,KAAsC,IAAI9F,EAAc;AAAA,EACxD,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,SAAS,IAAI7B,EAAeZ,GAAe4F,IAAoC;AAAA,IAC3E,MAAM;AAAA,EACd,CAAK;AACL,CAAC,GACGE,KAA+B,IAAI/F,EAAc;AAAA,EACjD,gBAAgB,IAAIa,EAAeZ,GAAe4F,EAAkC;AAAA,EACpF,OAAO5F;AAAAA,EACP,gBAAgB,IAAIS,EAAaoF,IAAqC,OAAO;AACjF,CAAC,GACGE,KAAqC,IAAIhG,EAAc;AAAA,EACvD,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,QAAQ,IAAI7B,EAAeZ,GAAe8F,IAA8B;AAAA,IACpE,MAAM;AAAA,EACd,CAAK;AACL,CAAC,GACGE,KAA4C,IAAIvF,EAAasF,IAAoC/F,CAAa,GAI9GiG,KAAsC,IAAIlG,EAAc;AAAA,EACxD,SAASC;AAAAA,EACT,QAAQA;AACZ,CAAC,GACGkG,KAA2C,IAAInG,EAAc;AAAA,EAC7D,eAAe,IAAIa,EAAeZ,GAAeiG,EAAmC;AAAA,EACpF,aAAajG;AAAAA,EACb,mBAAmB,IAAIS,EAAaT,GAAe,aAAa;AACpE,CAAC,GACGmG,KAAsC,IAAIpG,EAAc;AAAA,EACxD,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,SAAS,IAAI7B,EAAeZ,GAAekG,IAA0C;AAAA,IACjF,MAAM;AAAA,EACd,CAAK;AACL,CAAC,GACGE,KAA4C,IAAI3F,EAAa0F,IAAqCnG,CAAa,GAC/GqG,KAAoC,IAAItG,EAAc;AAAA,EACtD,oBAAoBO;AAAAA,EACpB,OAAO,IAAIe,GAAgBf,GAAc;AAAA,IACrC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR,CAAK;AACL,CAAC;AACD,SAASgG,GAA0CC,GAAU;AACzD,MAAIC,IAAS,IAAIzG,EAAc;AAAA,IAC3B,YAAYC;AAAAA,IACZ,OAAOqG;AAAA,IACP,eAAerG;AAAAA,IACf,WAAW,IAAIS,EAAa,IAAIG,EAAeZ,GAAeuG,CAAQ,GAAG,eAAe;AAAA,IACxF,kBAAkB,IAAIE,GAAgBzG,GAAe,CAAC,MAAI,EAAE,MAAM,MAAM,mBAAmB;AAAA,EACnG,CAAK;AACD,SAAO,IAAIe,GAAiB,IAAIH,EAAeZ,GAAewG,CAAM,GAAGxG,CAAa;AACxF;AAIA,IAAI0G,KAAoC,IAAI3G,EAAc;AAAA,EACtD,OAAOC;AAAAA,EACP,KAAKA;AAAAA,EACL,oBAAoBA;AACxB,CAAC,GACG2G,KAA2C,IAAI7F,GAAuBd,GAAe;AAAA,EACrF,GAAG;AAAA,IACC,YAAYA;AAAAA,IACZ,QAAQ,IAAIS,EAAaT,GAAe,YAAY;AAAA,EAC5D;AAAA,EACI,GAAG;AAAA,IACC,YAAYA;AAAAA,IACZ,cAAc,IAAIS,EAAaiG,IAAmC,YAAY;AAAA,EACtF;AACA,CAAC,GAIGE,KAAyC,IAAI7G,EAAc;AAAA,EAC3D,OAAOC;AAAAA,EACP,KAAKA;AAAAA,EACL,OAAOA;AACX,CAAC,GACG6G,KAA4C,IAAI/F,GAAuBd,GAAe;AAAA,EACtF,GAAG;AAAA,IACC,YAAYA;AAAAA,IACZ,YAAYA;AAAAA,IACZ,iBAAiB,IAAIS,EAAaT,GAAe,YAAY;AAAA,EACrE;AAAA,EACI,GAAG;AAAA,IACC,iBAAiBA;AAAAA,IACjB,kBAAkB,IAAIS,EAAamG,IAAwC,iBAAiB;AAAA,EACpG;AACA,CAAC,GACGE,KAA4C,IAAI/G,EAAc;AAAA,EAC9D,GAAGC;AAAAA,EACH,GAAGA;AAAAA,EACH,aAAaA;AACjB,CAAC,GAIG+G,KAAqC,IAAIhH,EAAc;AAAA,EACvD,eAAeC;AAAAA,EACf,iBAAiBA;AACrB,CAAC,GACGgH,KAA6B,IAAIjH,EAAc;AAAA,EAC/C,YAAYC;AAAAA,EACZ,aAAaA;AAAAA,EACb,OAAO,IAAIS,EAAaT,GAAe,CAAC5W,MAAIA,EAAE,aAAa,CAAC;AAAA,EAC5D,eAAe,IAAIqX,EAAasG,IAAoC,aAAa;AACrF,CAAC,GACGE,KAAgC,IAAIxG,EAAa,IAAIG,EAAeZ,GAAegH,EAA0B,GAAGhH,CAAa,GAC7HkH,KAAkC,IAAInH,EAAc;AAAA,EACpD,YAAYC;AAAAA,EACZ,aAAaA;AAAAA,EACb,SAAS,IAAIS,EAAaT,GAAe,CAAC5W,MAAIA,EAAE,aAAa,CAAC;AAAA,EAC9D,eAAe,IAAIqX,EAAasG,IAAoC,aAAa;AACrF,CAAC,GACGI,KAAiC,IAAI1G,EAAa,IAAIG,EAAeZ,GAAekH,EAA+B,GAAGlH,CAAa,GACnIoH,KAA4C,IAAItG,GAAuBd,GAAe;AAAA,EACtF,GAAG;AAAA,IACC,UAAU,IAAIY,EAAeZ,GAAe2G,EAAwC;AAAA,IACpF,cAAc3G;AAAAA,IACd,UAAU,IAAIS,EAAa,IAAIG,EAAeZ,GAAeiH,EAA6B,GAAG,cAAc;AAAA,EACnH;AAAA,EACI,GAAG;AAAA,IACC,UAAU,IAAIrG,EAAeZ,GAAe2G,EAAwC;AAAA,IACpF,UAAU,IAAI/F,EAAeZ,GAAe6G,EAAyC;AAAA,IACrF,aAAa7G;AAAAA,IACb,UAAU,IAAIS,EAAa,IAAIG,EAAeZ,GAAemH,EAA8B,GAAG,aAAa;AAAA,EACnH;AAAA,EACI,GAAG;AAAA,IACC,YAAYnH;AAAAA,IACZ,aAAaA;AAAAA,IACb,WAAW,IAAIS,EAAa,IAAIG,EAAeZ,GAAe2G,EAAwC,GAAG,YAAY;AAAA,IACrH,eAAe,IAAIlG,EAAasG,IAAoC,aAAa;AAAA,EACzF;AACA,CAAC,GAIGM,KAAkC,IAAItH,EAAc;AAAA,EACpD,qBAAqBC;AAAAA,EACrB,WAAW,IAAIS,EAAaT,GAAe,qBAAqB;AAAA,EAChE,iBAAiBA;AAAAA,EACjB,OAAO,IAAIS,EAAaT,GAAe,CAAC5W,MAAIA,EAAE,kBAAkB,CAAC;AAAA,EACjE,qBAAqB4W;AAAAA,EACrB,WAAW,IAAIS,EAAaT,GAAe,qBAAqB;AAAA,EAChE,aAAaA;AAAAA,EACb,eAAe,IAAIS,EAAasG,IAAoC,aAAa;AACrF,CAAC,GACGO,KAAqC,IAAI7G,EAAa,IAAIG,EAAeZ,GAAeqH,EAA+B,GAAGrH,CAAa,GACvIuH,KAA4C,IAAIzG,GAAuBd,GAAe;AAAA,EACtF,GAAG;AAAA,IACC,UAAU,IAAIY,EAAeZ,GAAe2G,EAAwC;AAAA,IACpF,YAAY3G;AAAAA,IACZ,eAAe,IAAIS,EAAa,IAAIG,EAAeZ,GAAesH,EAAkC,GAAG,YAAY;AAAA,EAC3H;AAAA,EACI,GAAG;AAAA,IACC,UAAU,IAAI1G,EAAeZ,GAAe2G,EAAwC;AAAA,IACpF,mBAAmB,IAAI/F,EAAeZ,GAAe6G,EAAyC;AAAA,IAC9F,eAAe,IAAIjG,EAAeZ,GAAe6G,EAAyC;AAAA,IAC1F,mBAAmB,IAAIjG,EAAeZ,GAAe6G,EAAyC;AAAA,IAC9F,YAAY7G;AAAAA,IACZ,eAAe,IAAIS,EAAa,IAAIG,EAAeZ,GAAesH,EAAkC,GAAG,YAAY;AAAA,EAC3H;AAAA,EACI,GAAG;AAAA,IACC,qBAAqBtH;AAAAA,IACrB,mBAAmB,IAAIS,EAAa,IAAIG,EAAeZ,GAAe2G,EAAwC,GAAG,qBAAqB;AAAA,IACtI,iBAAiB3G;AAAAA,IACjB,eAAe,IAAIS,EAAa,IAAIG,EAAeZ,GAAe2G,EAAwC,GAAG,iBAAiB;AAAA,IAC9H,qBAAqB3G;AAAAA,IACrB,mBAAmB,IAAIS,EAAa,IAAIG,EAAeZ,GAAe2G,EAAwC,GAAG,qBAAqB;AAAA,IACtI,aAAa3G;AAAAA,IACb,eAAe,IAAIS,EAAasG,IAAoC,aAAa;AAAA,EACzF;AACA,CAAC,GAMyBS,KAAgC,IAAIC,GAAa,IAAI,MAAM,EAAE,GACnFC,KAA8C,IAAI3H,EAAc;AAAA,EAChE,YAAYyH;AAAA,EACZ,WAAWA;AAAA,EACX,UAAUA;AACd,CAAC,GACGG,KAA4C,IAAI5H,EAAc;AAAA,EAC9D,WAAWC;AAAAA,EACX,aAAaA;AAAAA,EACb,kBAAkB,IAAIS,EAAa,IAAIA,EAAaiH,IAA6C,WAAW,GAAG,aAAa;AAChI,CAAC,GACGE,KAAiC,IAAI7H,EAAc;AAAA,EACnD,aAAa,IAAIU,EAAaR,GAAc,CAAC7W,MAAIA,EAAE,OAAO,eAAe;AAAA,EACzE,cAAc,IAAIqX,EAAaoH,IAAa,CAACze,MAAIA,EAAE,OAAO,mBAAmBA,EAAE,OAAO,eAAe;AAAA,EACrG,QAAQ,CAACA,MAAIA,EAAE,YAAY,OAAOA,EAAE,YAAY;AACpD,CAAC,GACG0e,KAA0C,IAAI/H,EAAc;AAAA,EAC5D,WAAWC;AAAAA,EACX,iBAAiBA;AAAAA,EACjB,kBAAkBA;AAAAA,EAClB,eAAe,IAAIS,EAAaT,GAAe,kBAAkB;AAAA,EACjE,WAAW,IAAIS,EAAamH,IAAgC,WAAW;AAC3E,CAAC,GACGG,KAA4C,IAAIhI,EAAc;AAAA,EAC9D,QAAQC;AAAAA,EACR,qBAAqB,IAAIY,EAAeT,GAAewH,EAAyC;AAAA,EAChG,oBAAoB3H;AAAAA,EACpB,mBAAmB,IAAIS,EAAa,IAAIG,EAAeT,GAAe2H,EAAuC,GAAG,oBAAoB;AACxI,CAAC,GAG4BE,KAAuC,IAAIlH,GAAuBd,GAAe;AAAA,EAC1G,GAAG;AAAA,IACC,WAAWA;AAAAA,IACX,WAAWA;AAAAA,IACX,qBAAqBwH;AAAA,IACrB,qBAAqBA;AAAA,EAC7B;AACA,CAAC,GACGS,KAAqC,IAAIlI,EAAc;AAAA,EACvD,gBAAgBC;AAAAA,EAChB,gBAAgB,IAAIS,EAAa,IAAIG,EAAeT,GAAe6H,EAAoC,GAAG,gBAAgB;AAC9H,CAAC,GACGE,KAAuD,IAAInI,EAAc;AAAA,EACzE,cAAcC;AAAAA,EACd,uBAAuB,IAAIY,EAAeT,GAAmB+F,IAA2C;AAAA,IACpG,MAAM;AAAA,EACd,CAAK;AACL,CAAC,GACGiC,KAAiD,IAAIpI,EAAc;AAAA,EACnE,SAASsD;AAAAA,EACT,mBAAmBrD;AAAAA,EACnB,eAAe,IAAIS,EAAayH,IAAsD,mBAAmB;AAC7G,CAAC,GACGE,KAA+C,IAAIrI,EAAc;AAAA,EACjE,cAAc,IAAIa,EAAeT,GAAe8H,IAAoC;AAAA,IAChF,MAAM;AAAA,EACd,CAAK;AAAA,EACD,0BAA0B,IAAIrH,EAAeT,GAAegI,IAAgD;AAAA,IACxG,MAAM;AAAA,EACd,CAAK;AACL,CAAC,GACGE,KAA4C,IAAItI,EAAc;AAAA,EAC9D,cAAcC;AAAAA,EACd,cAAcA;AAAAA,EACd,6BAA6BG;AAAAA,EAC7B,yBAAyB,IAAIM,EAAa2H,IAA8C,6BAA6B;AACzH,CAAC;AAKD,MAAME,GAAmC;AAAA,EACrC,OAAOllB,GAAQqB,GAAQggB,GAAU;AAC7B,WAAI,KAAK,cAAcA,EAAS,CAAC,CAAC,IAAU,KAAK,cAAcA,EAAS,CAAC,CAAC,IACnE,KAAK,KAAK,OAAOrhB,GAAQqB,GAAQggB,CAAQ;AAAA,EACpD;AAAA,EACA,KAAKzrB,GAAO8L,GAAK;AACb,WAAO,KAAK,KAAK,KAAK9L,GAAO8L,CAAG;AAAA,EACpC;AAAA,EACA,OAAO1B,GAAQpK,GAAO8L,GAAK;AACvB,QAAIO,IAAQ,KAAK,cAAc,QAAQrM,CAAK;AAC5C,WAAIqM,MAAU,KAAWA,IAClB,KAAK,KAAK,OAAOjC,GAAQpK,GAAO8L,CAAG;AAAA,EAC9C;AAAA,EACA,YAAYyjB,GAAexmB,GAAK;AAC5B,SAAK,gBAAgBwmB,GACrB,KAAK,OAAOxmB;AAAA,EAChB;AACJ;AACA,MAAMymB,WAAiDC,GAAc;AAAA,EACjE,OAAOrlB,GAAQ;AACX,WAAOkd,EAAa,OAAOld,CAAM,IAAI;AAAA,EACzC;AAAA,EACA,cAAa;AACT,UAAM,OAAO;AAAA,EACjB;AACJ;AACA,IAAIslB,KAA+B,IAAI3I,EAAc;AAAA,EACjD,OAAOC;AAAAA,EACP,OAAOM;AACX,CAAC,GACGqI,KAA+B,IAAI5I,EAAc;AAAA,EACjD,OAAOC;AAAAA,EACP,OAAOA;AACX,CAAC,GACG4I,KAA0C,IAAI9H,GAAuB,IAAI0H,MAA4C;AAAA,EACrH,GAAG;AAAA,IACC,QAAQlI;AAAAA,IACR,OAAO,IAAIG,EAAaH,GAAc,QAAQ;AAAA,EACtD;AAAA,EACI,GAAG;AAAA,IACC,SAASA;AAAAA,IACT,QAAQ,IAAIG,EAAaiI,IAA8B,SAAS;AAAA,EACxE;AACA,CAAC,GACGG,KAAoC,IAAIP,GAAmC;AAAA,EACvE/C;AAAA,EACAC;AACR,GAAG,IAAQP,GAA0C2D,IAAyC;AAAA,EAC1F,MAAM;AACV,CAAC,CAAC;AAGF,MAAME,WAAyCrI,EAAa;AAAA,EACxD,OAAOrd,GAAQqB,GAAQ;AACnB,QAAIzK,IAAa+uB,GAAsB,KAAK,QAAQ3lB,GAAQqB,CAAM,GAC9DsB,IAAQ,GACRpH,IAAM,CAAA;AACV,WAAMoH,IAAQ/L,KAAO;AACjB,UAAIyH,IAAQ,KAAK,KAAK,OAAO2B,GAAQqB,CAAM;AAC3C,MAAAhD,EAAM,SAASsE,GACfA,KAAStE,EAAM,QAAQ,GACvB9C,EAAI,KAAK8C,CAAK;AAAA,IAClB;AACA,WAAO9C;AAAA,EACX;AACJ;AACA,IAAIqqB,KAAyC,IAAIlI,GAAuBR,GAAc;AAAA,EAClF,GAAG;AAAA,IACC,QAAQ,IAAIG,EAAaT,GAAe,CAAC5W,MAAIA,EAAE,OAAO,YAAY,SAAS,CAAC;AAAA,EACpF;AAAA,EACI,GAAG;AAAA,IACC,QAAQ,IAAI0f,GAAiCJ,IAA8B,CAACtf,MAAIA,EAAE,OAAO,YAAY,SAAS,CAAC;AAAA,EACvH;AAAA,EACI,GAAG;AAAA,IACC,QAAQ,IAAI0f,GAAiCH,IAA8B,CAACvf,MAAIA,EAAE,OAAO,YAAY,SAAS,CAAC;AAAA,EACvH;AACA,CAAC,GACG6f,KAAmC,IAAIX,GAAmC;AAAA,EACtE7C;AAAA,EACAC;AAAA,EACAC;AACR,GAAG,IAAQV,GAA0C+D,IAAwC;AAAA,EACzF,MAAM;AACV,CAAC,CAAC,GACEE,KAAiC,IAAInJ,EAAc;AAAA,EACnD,OAAOC;AAAAA,EACP,IAAIM;AACR,CAAC,GACG6I,KAAiC,IAAIpJ,EAAc;AAAA,EACnD,OAAOI;AAAAA,EACP,IAAIH;AACR,CAAC,GACGoJ,KAAiC,IAAItI,GAAuBR,GAAc;AAAA,EAC1E,GAAG;AAAA,IACC,KAAK,IAAIG,EAAaH,GAAc,CAAClX,MAAIA,EAAE,OAAO,YAAY,MAAM;AAAA,EAC5E;AAAA,EACI,GAAG;AAAA,IACC,SAAS4W;AAAAA,IACT,QAAQ,IAAIS,EAAayI,IAAgC,SAAS;AAAA,IAClE,UAAUlJ;AAAAA,EAClB;AAAA,EACI,GAAG;AAAA,IACC,SAASG;AAAAA,IACT,QAAQ,IAAIM,EAAa0I,IAAgC,SAAS;AAAA,IAClE,UAAUhJ;AAAAA,EAClB;AACA,CAAC,GACGkJ,KAA4B,IAAQpE,GAA8CI,EAAwC;AAC9H,MAAMiE,GAAmC;AAAA,EACrC,OAAOlmB,GAAQqB,GAAQggB,GAAU;AAC7B,WAAAhgB,EAAO,SAASggB,EAAS,CAAC,GACnB4E,GAA0B,OAAOjmB,GAAQqB,GAAQ;AAAA,MACpDggB,EAAS,CAAC;AAAA,IACtB,CAAS;AAAA,EACL;AAAA,EACA,KAAKI,GAAM/f,GAAK;AACZ,WAAO;AAAA,MACCugB,GAA0C,KAAKR,GAAM/f,GAAK,EAAK;AAAA,MACnEukB,GAA0B,KAAKxE,GAAM/f,CAAG,EAAE,CAAC;AAAA,IACvD;AAAA,EACI;AAAA,EACA,OAAO1B,GAAQyhB,GAAM/f,GAAK;AACtB,WAAO;AAAA,MACCugB,GAA0C,KAAKR,GAAM/f,GAAK,EAAK;AAAA,MACnEukB,GAA0B,OAAOjmB,GAAQyhB,GAAM/f,CAAG,EAAE,CAAC;AAAA,IACjE;AAAA,EACI;AACJ;AACA,IAAIykB,KAAiC,IAAQ/E,GAA0C;AAAA;AAAA,EAEnF;AAAA,IACI;AAAA,IACA;AAAA,IACA,IAAI8E;AAAA,IACJ;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,MACI;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AACA,CAAC,GACGE,KAAmC,IAAQhF,GAA0C;AAAA;AAAA,EAErF;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,MACI;AAAA,MACA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,MACI;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACI;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACAyE;AAAA,IACIxD;AAAA,EACZ;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACAoD;AAAA,IACItD;AAAA,EACZ;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA,IAAQN,GAA0C,IAAQpB,IAAyC;AAAA,IACnG;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA,IAAIyF;AAAA,IACJ;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA,IAAQrE,GAA0CmE,EAA8B;AAAA,IAChF;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA,IAAQnE,GAA0C,IAAQpB,GAA0C0F,EAA8B,CAAC;AAAA,IACnI;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,EACR;AACA,CAAC,GACGE,KAAuC,IAAI1J,EAAc;AAAA,EACzD,QAAQC;AAAAA,EACR,oBAAwB+H;AAC5B,CAAC,GACG2B,KAAoC,IAAQlF,GAA0C;AAAA,EACtF;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA;AAAA,IACA;AAAA,MACI;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA,IAAQS,GAA0C,IAAQpB,IAAyC;AAAA,IACnG;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA,IAAQoB,GAA0CmE,EAA8B;AAAA,IAChF;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,MACI;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,IACA,IAAQnE,GAA0C,IAAQpB,GAA0C0F,EAA8B,CAAC;AAAA,IACnI;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA,IAAQtE,GAA0CwE,EAAoC;AAAA,IACtF;AAAA,EACR;AAAA,EACI;AAAA,IACI;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR;AACA,CAAC,GACGE,KAA+B,IAAI7I,GAAuB8I,IAAgB;AAAA,EAC1E,GAAG;AAAA,IACC,SAAStJ;AAAAA,IACT,SAASA;AAAAA,IACT,WAAW,IAAQuD,GAA0C,IAAIpB,GAAc,QAAQ,CAAC;AAAA,IACxF,cAAc,IAAQoB,GAA0C2F,EAAgC;AAAA,IAChG,aAAa,IAAQ3F,GAA0C,IAAIpB,GAAc,QAAQ,CAAC;AAAA,IAC1F,iBAAiB,IAAQoB;AAAA,EACjC;AAAA,EACI,GAAG;AAAA,IACC,SAASvD;AAAAA,IACT,QAAQN;AAAAA,IACR,SAAS0J;AAAA,IACT,iBAAiB,IAAQ7F;AAAA,EACjC;AACA,CAAC;AACD,IAAIgG,KAA2CF;AAK/C,MAAMG,GAA8B;AAAA,EAChC,OAAO,OAAO1mB,GAAQ;AAClB,WAAO,IAAI0mB,GAA8B1mB,CAAM;AAAA,EACnD;AAAA,EACA,SAAS;AACO,SAAK,OAAO;AACxB,QAAI2mB,IAAUF,GAA0C,OAAO,KAAK,MAAM;AAC1E,aAAQ/mB,KAAOinB,GAAI;AACf,UAAIzsB,IAAMysB,EAAIjnB,CAAG;AACjB,WAAKA,CAAG,IAAIxF;AAAA,IAChB;AACA,QAAI,KAAK,UAAU,GAAG;AAClB,UAAI,KAAK,aAAa,WAAW,EAAG,OAAM,IAAI,MAAM,sCAAsC;AAC1F,WAAK,UAAU,KAAK,aAAa,CAAC;AAAA,IACtC;AACA,gBAAK,YAAY,KAAK,QAAQ,OAAO,MAC9B;AAAA,EACX;AAAA,EACA,OAAO0sB,GAAK;AACR,WAAI,KAAK,WAAW,IAAU,OAC1BA,IAAU1E,GAA0C,SAAmBA,GAA0C0E,CAAG,IACjH,KAAK,YAAYA,IAAU1E,GAA0C,MAAM;AAAA,EACtF;AAAA,EACA,IAAI,iBAAiB;AACjB,WAAI,KAAK,UAAU,IAAU,KAAK,UAAU,CAAC,IACtC;AAAA,EACX;AAAA,EACA,IAAI,WAAW;AACX,WAAO,KAAK,OAAO,KAAK,QAAQ,QAAQ;AAAA,EAC5C;AAAA,EACA,IAAI,aAAa;AACb,WAAO,KAAK,OAAO,KAAK,QAAQ,UAAU;AAAA,EAC9C;AAAA,EACA,cAAc2E,GAAO;AACjB,gBAAK,OAAO,MAAM,KAAK,QAAQ,YAAYA,CAAK,EAAE,QAC3C,KAAK,OAAO,WAAW,KAAK,QAAQ,YAAYA,CAAK,EAAE,MAAM;AAAA,EACxE;AAAA,EACA,aAAaC,GAAK;AAId,QAFI,KAAK,WAAW,KAEhB,KAAK,UAAW,QAAO;AAC3B,QAAI,EAAE,SAASC,EAAO,IAAK,KAAK;AAChC,QAAI,MAAM,QAAQA,CAAO,EAAG,QAAOA,EAAQD,CAAG;AAC9C,QAAIA,MAAQ,EAAG,QAAO;AAEtB,YADAA,KAAO,GACAC,EAAQ,SAAO;AAAA,MAClB,KAAK;AACD,eAAO,KAAK,OAAOA,EAAQ,OAAOD,CAAG,CAAC;AAAA,MAC1C,KAAK;AAAA,MACL,KAAK;AACD,iBAAQrzB,IAAI,GAAGA,IAAIszB,EAAQ,OAAO,QAAQtzB,KAAI;AAC1C,cAAI4K,IAAQ0oB,EAAQ,OAAOtzB,CAAC;AAC5B,cAAI4K,EAAM,UAAUyoB,KAAOA,KAAOzoB,EAAM,SAASA,EAAM,MAAO,QAAO,KAAK,OAAOA,EAAM,SAASyoB,IAAMzoB,EAAM,OAAO;AAAA,QACvH;AACA;AAAA,IAChB;AACQ,WAAO;AAAA,EACX;AAAA,EACA,WAAWyoB,GAAK;AACZ,QAAI,CAAC,KAAK,QAAQ,SAAU,QAAO;AACnC,YAAO,KAAK,QAAQ,SAAS,SAAO;AAAA,MAChC,KAAK;AACD,eAAO,KAAK,QAAQ,SAAS,IAAIA,CAAG;AAAA,MACxC,KAAK;AAAA,MACL,KAAK;AACD,YAAI,EAAE,QAAQE,EAAM,IAAK,KAAK,QAAQ,UAClC3X,IAAM,GACN4X,IAAOD,EAAO,SAAS;AAC3B,eAAM3X,KAAO4X,KAAK;AACd,cAAIC,IAAM7X,IAAM4X,KAAQ;AACxB,cAAIH,IAAME,EAAOE,CAAG,EAAE,MAAO,CAAAD,IAAOC,IAAM;AAAA,mBACjCA,IAAMD,KAAQH,KAAOE,EAAOE,IAAM,CAAC,EAAE,MAAO,CAAA7X,IAAM6X,IAAM;AAAA,cAC5D,QAAOF,EAAOE,CAAG,EAAE;AAAA,QAC5B;AAAA,MACJ;AACI,cAAM,IAAI,MAAM,6BAA6B,KAAK,QAAQ,SAAS,OAAO,EAAE;AAAA,IAC5F;AAAA,EACI;AAAA,EACA,oBAAoBJ,GAAK;AACrB,QAAI,KAAK,QAAQ,UAAU;AACvB,UAAIK,IAAK,KAAK,WAAWL,CAAG;AAC5B,aAAI,KAAK,QAAQ,QAAQK,CAAE,IAAU,KAAK,QAAQ,QAAQA,CAAE,EAAE,UACvD;AAAA,IACX;AACA,WAAI,KAAK,UAAU,IAAU,KAAK,QAAQ,UACnC,KAAK,QAAQ,QAAQ,CAAC,EAAE;AAAA,EACnC;AAAA,EACA,YAAYnnB,GAAO;AACf,SAAK,SAASA,GACd,KAAK,OAAM;AAAA,EACf;AACJ;AACA,IAAIonB,KAA2CV;AAI/C,IAAIW,KAAuC,IAAI1K,EAAc;AAAA,EACzD,YAAYC;AAAAA,EACZ,aAAaC;AACjB,CAAC;AACD,IAAIyK,KAA2C,IAAI3K,EAAc;AAAA,EAC7D,cAAcC;AAAAA,EACd,cAAcA;AAAAA,EACd,oBAAoBC;AAAAA,EACpB,uBAAuBD;AAAAA,EACvB,SAAS,IAAIS,EAAagK,IAAsC,uBAAuB;AAC3F,CAAC;AAKD,IAAIE,KAA4C,IAAI5K,EAAc;AAAA,EAC9D,QAAQO;AAAAA,EACR,OAAOA;AAAAA,EACP,cAAcuH;AAAAA,EACd,cAAcA;AAAAA,EACd,aAAavH;AAAAA,EACb,cAAcuH;AAAAA,EACd,cAAcA;AAAAA,EACd,aAAavH;AACjB,CAAC,GACGsK,KAA4C,IAAI7K,EAAc;AAAA,EAC9D,QAAQO;AAAAA,EACR,OAAOA;AAAAA,EACP,UAAUuH;AAAAA,EACV,UAAUA;AAAAA,EACV,SAASvH;AACb,CAAC,GACGuK,KAAsC,IAAI9K,EAAc;AAAA,EACxD,OAAOC;AAAAA,EACP,SAAS6H;AAAAA,EACT,SAASA;AACb,CAAC;AACD,MAAMiD,GAAkC;AACxC;AACA,MAAMC,GAAiC;AACvC;AAC8C,IAAIjK,GAAuB,WAAW;AAAA,EAChF,GAAG;AAAA,IACC,SAAS8J;AAAA,IACT,MAAME;AAAA,EACd;AAAA,EACI,GAAG;AAAA,IACC,SAASF;AAAA,IACT,MAAMG;AAAA,EACd;AAAA;AAAA;AAAA,EAGI,GAAG;AAAA,IACC,MAAMA;AAAA,EACd;AAAA,EACI,GAAG;AAAA,IACC,SAASJ;AAAA,IACT,MAAMG;AAAA,EACd;AAAA,EACI,GAAG;AAAA,IACC,SAASH;AAAA,IACT,MAAMI;AAAA,EACd;AAAA,EACI,GAAG;AAAA,IACC,SAASH;AAAA,IACT,KAAK,IAAI5J,GAAgBV,CAAY;AAAA,IACrC,eAAeN;AAAAA,IACf,YAAY,IAAIS,EAAaoK,IAAqC,eAAe;AAAA,EACzF;AAAA,EACI,GAAG;AAAA,IACC,SAASF;AAAA,IACT,KAAK,IAAI3J,GAAgBV,CAAY;AAAA,IACrC,eAAeN;AAAAA,IACf,YAAY,IAAIS,EAAaoK,IAAqC,eAAe;AAAA,EACzF;AAAA,EACI,IAAI;AAAA,IACA,SAASD;AAAA,IACT,SAASzK;AAAAA,IACT,MAAM,IAAIyD,GAAc,SAAS;AAAA,EACzC;AAAA,EACI,IAAI;AAAA,IACA,SAAS+G;AAAA,IACT,SAASxK;AAAAA,IACT,MAAM,IAAIyD,GAAc,SAAS;AAAA,EACzC;AAAA,EACI,IAAI;AAAA,IACA,SAASzD;AAAAA,IACT,MAAM,IAAIyD,GAAc,SAAS;AAAA,EACzC;AACA,CAAC;AAGD,IAAIoH,KAAwC,IAAIjL,EAAc;AAAA,EAC1D,UAAU8H;AAAAA,EACV,WAAWA;AAAAA,EACX,UAAUvH;AAAAA,EACV,qBAAqBuH;AAAAA,EACrB,uBAAuBA;AAAAA,EACvB,aAAaA;AAAAA,EACb,aAAaA;AAAAA,EACb,cAAcA;AAAAA,EACd,aAAaA;AAAAA,EACb,YAAYA;AAAAA,EACZ,KAAK,IAAI7G,GAAgB6G,IAAa,CAAC;AAC3C,CAAC,GACGoD,KAAuC,IAAIlL,EAAc;AAAA,EACzD,WAAWC;AAAAA,EACX,QAAQA;AACZ,CAAC,GACGkL,KAAsC,IAAIpK,GAAuBd,GAAe;AAAA,EAChF,QAAQ;AAAA,IACJ,aAAaA;AAAAA,IACb,iBAAiBG;AAAAA,EACzB;AAAA,EACI,GAAG;AAAA,IACC,aAAa,IAAIM,EAAaN,GAAe,CAAC/W,MAAIA,EAAE,OAAO,iBAAiBA,EAAE,OAAO,kBAAkB,CAAC;AAAA,EAChH;AAAA,EACI,GAAG;AAAA,IACC,WAAW+W;AAAAA,IACX,YAAgBwK;AAAA,EACxB;AAAA,EACI,GAAG;AAAA,IACC,aAAa,IAAIlK,EAAaT,GAAe,CAAC5W,MAAIA,EAAE,OAAO,iBAAiBA,EAAE,OAAO,kBAAkB,CAAC;AAAA,EAChH;AAAA,EACI,GAAG;AAAA,IACC,WAAW+W;AAAAA,IACX,YAAY,IAAIM,EAAawK,IAAsC,CAAC7hB,MAAIA,EAAE,YAAY,CAAC;AAAA,EAC/F;AAAA,EACI,GAAG;AAAA,IACC,WAAW+W;AAAAA,IACX,YAAgBwK;AAAA,IAChB,WAAWxK;AAAAA,IACX,gBAAgB,IAAIM,EAAaT,GAAe,WAAW;AAAA,EACnE;AACA,CAAC,GACGmL,KAA2C,IAAIpL,EAAc;AAAA,EAC7D,iBAAiBC;AAAAA,EACjB,gBAAgBA;AAAAA,EAChB,UAAU,IAAIY,EAAeT,GAAe+K,EAAmC;AACnF,CAAC,GACGE,KAAwC,IAAIrL,EAAc;AAAA,EAC1D,oBAAoB,IAAIa,EAAeT,GAAe,IAAIM,EAAa0K,IAA0C,CAAC,GAAG;AAAA,IACjH,MAAM;AAAA,EACd,CAAK;AAAA,EACD,iBAAiBhL;AAAAA,EACjB,wBAAwBA;AAAAA,EACxB,UAAUA;AAAAA,EACV,MAAM6K;AAAA,EACN,MAAMA;AAAA,EACN,iBAAiBhL;AAAAA,EACjB,eAAeA;AAAAA,EACf,OAAOM;AAAAA,EACP,OAAOA;AAAAA,EACP,UAAUA;AAAAA,EACV,OAAO,IAAIe,GAAgBf,GAAc;AAAA,IACrC;AAAA,IACA;AAAA,EACR,CAAK;AACL,CAAC;AACD,IAAI+K,KAA2C,IAAItL,EAAc;AAAA,EAC7D,SAASI;AAAAA,EACT,UAAUA;AAAAA,EACV,OAAO,IAAIM,EAAa2K,IAAuC,UAAU;AAC7E,CAAC;AAID,IAAIE,KAAmC,IAAIvL,EAAc;AAAA,EACrD,MAAMC;AAAAA,EACN,YAAYA;AAAAA,EACZ,cAAc,IAAIS,EAAa,IAAIG,EAAeT,GAAe,MAAM,GAAG,CAAC/W,MAAIA,EAAE,OAAO,OAAO,KAAK,YAAY,CAAC;AACrH,CAAC;AACD,IAGAmiB,KAA2C,IAAIxL,EAAc;AAAA,EACzD,SAASC;AAAAA,EACT,OAAO,IAAIqB,GAAgBrB,GAAe;AAAA,IACtC;AAAA,EACR,CAAK;AAAA,EACD,cAAcG;AAAAA,EACd,aAAa,IAAIM,EAAa,IAAIG,EAAeT,GAAemL,EAAgC,GAAG,cAAc;AACrH,CAAC;AAID,IAAIE,KAAoC,IAAIzL,EAAc;AAAA,EACtD,KAAKC;AAAAA,EACL,cAAcA;AAAAA;AAClB,CAAC,GAIGyL,KAAwC,IAAI1L,EAAc;AAAA,EAC1D,KAAKC;AAAAA;AAAAA,EAEL,iBAAiBA;AAAAA;AAAAA,EAEjB,WAAWA;AACf,CAAC;AACD,IAAI0L,KAA2C,IAAI3L,EAAc;AAAA,EAC7D,SAASC;AAAAA,EACT,qBAAqBA;AAAAA,EACrB,iBAAiB,IAAIY,EAAeT,GAAe,IAAIM,EAAagL,IAAuC,qBAAqB,CAAC;AAAA,EACjI,cAAc,IAAI7K,EAAeT,GAAe,IAAIM,EAAa+K,IAAmC,iBAAiB,GAAG;AAAA,IACpH,MAAM;AAAA,EACd,CAAK;AAAA,EACD,iBAAiBxL;AACrB,CAAC;AAID,IAAI2L,KAAoC,IAAI5L,EAAc;AAAA,EACtD,MAAMO;AAAAA,EACN,OAAOA;AAAAA,EACP,KAAKA;AAAAA,EACL,OAAOA;AACX,CAAC;AACD,IAAIsL,KAA2C,IAAI9K,GAAuBd,GAAe;AAAA,EACrF,QAAQ;AAAA,IACJ,mBAAmBA;AAAAA,IACnB,aAAaA;AAAAA,IACb,iBAAiBA;AAAAA,IACjB,cAAc,IAAIY,EAAeT,GAAe,IAAIM,EAAakL,IAAmC,iBAAiB,CAAC;AAAA,IACtH,oBAAoB,IAAIlL,EAAaT,GAAe,aAAa;AAAA,EACzE;AAAA,EACI,GAAG,CAAA;AAAA,EACH,GAAG;AAAA,IACC,wBAAwB,IAAIY,EAAeT,GAAe,IAAIM,EAAaN,GAAe,aAAa,CAAC;AAAA,IACxG,yBAAyB,IAAIS,EAAeT,GAAe,IAAIM,EAAaT,GAAe,aAAa,CAAC;AAAA,IACzG,8BAA8B,IAAIY,EAAeT,GAAe,IAAIM,EAAaT,GAAe,mBAAmB,CAAC;AAAA,EAC5H;AACA,CAAC;AAMD,IAAI6L,KAAkC,IAAI/K,GAAuBd,GAAe;AAAA,EAC5E,GAAG;AAAA,IACC,YAAYC;AAAAA;AAAAA,EACpB;AAAA,EACI,GAAG;AAAA,IACC,YAAYA;AAAAA,IACZ,gBAAgBD;AAAAA,IAChB,gBAAgBA;AAAAA;AAAAA,EACxB;AAAA,EACI,GAAG;AAAA,IACC,YAAYC;AAAAA,IACZ,aAAa,IAAIW,EAAeZ,GAAmB8G,EAAyC;AAAA;AAAA,EACpG;AACA,CAAC,GACGgF,KAAmC,IAAI/L,EAAc;AAAA,EACrD,cAAcC;AAAAA,EACd,gBAAgBA;AAAAA,EAChB,YAAY,IAAIS,EAAa,IAAIG,EAAeZ,GAAe6L,EAA+B,GAAG,gBAAgB;AACrH,CAAC,GACGE,KAAyC,IAAIhM,EAAc;AAAA,EAC3D,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,UAAU,IAAI7B,EAAeZ,GAAe6L,IAAiC;AAAA,IACzE,MAAM;AAAA,EACd,CAAK;AAAA,EACD,UAAU,IAAIjL,EAAeZ,GAAe6L,IAAiC;AAAA,IACzE,MAAM;AAAA,EACd,CAAK;AAAA;AACL,CAAC,GACGG,KAA+B,IAAIjM,EAAc;AAAA,EACjD,UAAU,IAAIa,EAAeZ,GAAe6L,EAA+B;AAAA,EAC3E,UAAU,IAAIjL,EAAeZ,GAAe6L,EAA+B;AAAA,EAC3E,iBAAiB7L;AAAAA,EACjB,mBAAmB,IAAIS,EAAasL,IAAwC,iBAAiB;AAAA;AACjG,CAAC,GACGE,KAA0C,IAAIlM,EAAc;AAAA,EAC5D,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,QAAQ,IAAI7B,EAAeZ,GAAegM,IAA8B;AAAA,IACpE,MAAM;AAAA,EACd,CAAK;AACL,CAAC,GACGE,KAAmC,IAAInM,EAAc;AAAA,EACrD,YAAY,IAAIa,EAAeZ,GAAe8L,EAAgC;AAAA,EAC9E,eAAe,IAAIlL,EAAeZ,GAAegM,EAA4B;AAAA,EAC7E,kBAAkBhM;AAAAA,EAClB,oBAAoB,IAAIS,EAAawL,IAAyC,kBAAkB;AAAA;AACpG,CAAC,GACGE,KAAyC,IAAIpM,EAAc;AAAA,EAC3D,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,QAAQ,IAAI7B,EAAeZ,GAAekM,IAAkC;AAAA,IACxE,MAAM;AAAA,EACd,CAAK;AACL,CAAC,GACGE,KAAuC,IAAI3L,EAAa0L,IAAwCnM,CAAa,GAE7GqM,KAAoC,IAAI5L,EAAa,IAAIgC,GAAc,CAAC,GAAGzC,CAAa,GACxFsM,KAA6B,IAAIvM,EAAc;AAAA,EAC/C,aAAa,IAAIa,EAAeZ,GAAeqM,EAAiC;AAAA,EAChF,gBAAgB,IAAIzL,EAAeZ,GAAeoM,EAAoC;AAC1F,CAAC;AACD,IAAIG,KAA2C,IAAIzL,GAAuBX,GAAe;AAAA,EACrF,QAAQ;AAAA,IACJ,WAAW,IAAIS,EAAeZ,GAAesM,EAA0B;AAAA,IACvE,UAAU,IAAI1L,EAAeZ,GAAesM,EAA0B;AAAA;AAAA,EAC9E;AAAA,EACI,OAAY,CAAA;AAAA,EACZ,OAAY;AAAA,IACR,oBAAoB,IAAI1L,EAAeT,GAAmB4H,EAAyC;AAAA,EAC3G;AACA,CAAC;AAMD,IAAIyE,KAAoC,IAAI/L,EAAaT,GAAeA,CAAa,GACjFyM,KAAmC,IAAI1M,EAAc;AAAA,EACrD,UAAU,IAAIa,EAAeZ,GAAmB2G,EAAwC;AAAA,EACxF,YAAY3G;AAAAA,EACZ,cAAc,IAAIS,EAAa,IAAIG,EAAeZ,GAAewM,EAAiC,GAAG,YAAY;AACrH,CAAC,GACGE,KAAmC,IAAI5L,GAAuBd,GAAe;AAAA,EAC7E,GAAG;AAAA,IACC,YAAYC;AAAAA,EACpB;AAAA,EACI,GAAG;AAAA,IACC,iBAAiBD;AAAAA,EACzB;AAAA,EACI,GAAG;AAAA,IACC,YAAYC;AAAAA,IACZ,aAAa,IAAIW,EAAeZ,GAAmB8G,EAAyC;AAAA,EACpG;AACA,CAAC,GACG6F,KAAiC,IAAIlM,EAAa,IAAIG,EAAeZ,GAAe0M,EAAgC,GAAG1M,CAAa,GACpI4M,KAAqC,IAAI7M,EAAc;AAAA,EACvD,UAAU,IAAIa,EAAeZ,GAAmB2G,EAAwC;AAAA,EACxF,eAAe3G;AAAAA,EACf,WAAW,IAAIS,EAAa,IAAIG,EAAeZ,GAAe2M,EAA8B,GAAG,eAAe;AAClH,CAAC,GACGE,KAAyC,IAAI9M,EAAc;AAAA,EAC3D,oBAAoBC;AAAAA,EACpB,cAAcA;AAAAA,EACd,UAAU,IAAIS,EAAa,IAAIG,EAAeT,GAAmBwG,EAAwC,GAAI,cAAc;AAC/H,CAAC;AACD,IAAImG,KAA2C,IAAIhM,GAAuBX,GAAe;AAAA,EACrF,QAAQ;AAAA,IACJ,eAAe,IAAIS,EAAeZ,GAAmB6G,EAAyC;AAAA,IAC9F,YAAY,IAAIjG,EAAeZ,GAAeyM,EAAgC;AAAA,IAC9E,cAAc,IAAI7L,EAAeZ,GAAe4M,EAAkC;AAAA,IAClF,oBAAoB,IAAIhM,EAAeZ,GAAmB6G,EAAyC;AAAA,EAC3G;AAAA,EACI,OAAY,CAAA;AAAA,EACZ,OAAY;AAAA,IACR,kBAAkB,IAAIjG,EAAeZ,GAAe6M,EAAsC;AAAA,EAClG;AAAA,EACI,OAAY;AAAA,IACR,kBAAkB,IAAIjM,EAAeZ,GAAe6M,EAAsC;AAAA,IAC1F,oBAAoB,IAAIjM,EAAeT,GAAmB4H,EAAyC;AAAA,EAC3G;AACA,CAAC;AAMD,IAAIgF,KAAoC,IAAI1L,GAAgBrB,GAAe;AAAA,EACvE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,CAAC,GACGgN,KAA8B;AAAA,EAC9B,YAAY/M;AAAAA,EACZ,YAAYA;AAAAA,EACZ,UAAUA;AAAAA,EACV,UAAUA;AAAAA,EACV,YAAY,IAAIW,EAAeZ,GAAmB8G,IAA4C;AAAA,IAC1F,MAAM;AAAA,IACN,YAAY,CAAChiB,MAAMA,EAAI;AAAA,EAC/B,CAAK;AAAA,EACD,YAAY,IAAI8b,EAAeZ,GAAmB8G,IAA4C;AAAA,IAC1F,MAAM;AAAA,IACN,YAAY,CAAChiB,MAAMA,EAAI;AAAA,EAC/B,CAAK;AAAA,EACD,YAAY,IAAI8b,EAAeZ,GAAmB8G,IAA4C;AAAA,IAC1F,MAAM;AAAA,IACN,YAAY,CAAChiB,MAAMA,EAAI;AAAA,EAC/B,CAAK;AAAA,EACD,YAAY,IAAI8b,EAAeZ,GAAmB8G,IAA4C;AAAA,IAC1F,MAAM;AAAA,IACN,YAAY,CAAChiB,MAAMA,EAAI;AAAA,EAC/B,CAAK;AACL;AACA,MAAMmoB,GAAkC;AAAA,EACpC,YAAYxoB,GAAQ;AAChB,QAAIyoB,IAASzoB;AACb,WAAM,CAACyoB,EAAO,KAAK,GAAG,KAAKA,EAAO,SAAO,CAAAA,IAASA,EAAO;AACzD,QAAI,CAACA,EAAO,KAAK,GAAG,EAAG;AACvB,QAAI5mB,IAAS,CAAA;AACb,IAAAA,EAAO,MAAM,MAAI4mB,EAAO;AACxB,QAAI9N,IAAS8N,EAAO,KAAK,GAAG;AAC5B,aAAQpqB,KAAOsc,EAAO,CAAIA,EAAOtc,CAAG,MAAGwD,EAAOxD,CAAG,IAAIkqB,GAA4BlqB,CAAG;AACpF,WAAO,IAAIid,EAAczZ,CAAM;AAAA,EACnC;AAAA,EACA,KAAKhJ,GAAKwH,GAAK;AACX,WAAO,KAAK,YAAYA,CAAG,EAAE,KAAKxH,GAAKwH,CAAG;AAAA,EAC9C;AAAA,EACA,OAAO1B,GAAQqB,GAAQ;AACnB,QAAI9F,IAAM,KAAK,YAAY8F,CAAM,EAAE,OAAOrB,GAAQqB,CAAM;AACxD,kBAAO9F,EAAI,KACJA;AAAA,EACX;AAAA,EACA,YAAYmE,IAAM,eAAc;AAC5B,SAAK,MAAMA;AAAA,EACf;AACJ;AACA,IAAIqqB,KAAwC,IAAIpN,EAAc;AAAA,EAC1D,aAAaC;AAAAA,EACb,QAAQ,IAAIiN,GAAkC,cAAc;AAAA,EAC5D,QAAQ,IAAIA,GAAkC,cAAc;AAChE,CAAC,GACGG,KAAgC,IAAI3M,EAAa0M,IAAuCnN,CAAa,GACrGqN,KAAqC,IAAItN,EAAc;AAAA,EACvD,QAAQ,IAAIkN,GAAkC,cAAc;AAAA,EAC5D,QAAQ,IAAIA,GAAkC,cAAc;AAChE,CAAC,GACGK,KAA+B,IAAIxM,GAAuBd,GAAe;AAAA,EACzE,GAAG;AAAA,IACC,aAAaC;AAAAA,IACb,aAAaA;AAAAA,EACrB;AAAA,EACI,GAAG;AAAA,IACC,aAAaA;AAAAA,IACb,aAAaA;AAAAA,IACb,aAAaD;AAAAA,EACrB;AAAA,EACI,GAAG;AAAA,IACC,aAAaC;AAAAA,IACb,aAAaA;AAAAA,IACb,cAAc,IAAIW,EAAeZ,GAAmB8G,EAAyC;AAAA,IAC7F,cAAc,IAAIlG,EAAeZ,GAAmB8G,EAAyC;AAAA,EACrG;AACA,CAAC,GACGyG,KAAwC,IAAIxN,EAAc;AAAA,EAC1D,aAAa,IAAIa,EAAeZ,GAAesN,IAA8B;AAAA,IACzE,MAAM;AAAA,EACd,CAAK;AAAA,EACD,YAAY,IAAI1M,EAAeZ,GAAesN,IAA8B;AAAA,IACxE,MAAM;AAAA,EACd,CAAK;AACL,CAAC,GACGE,KAAmC,IAAIzN,EAAc;AAAA,EACrD,OAAOC;AAAAA,EACP,YAAY,IAAIY,EAAeZ,GAAesN,IAA8B;AAAA,IACxE,MAAM;AAAA,EACd,CAAK;AACL,CAAC,GACGG,KAAkC,IAAIhN,EAAa+M,IAAkCxN,CAAa,GAClG0N,KAAmC,IAAIjN,EAAa,IAAIG,EAAeZ,GAAesN,EAA4B,GAAG,CAAClkB,MAAIA,EAAE,OAAO,UAAU,GAC7IukB,KAAkC,IAAIlN,EAAaiN,IAAkC1N,CAAa,GAClG4N,KAAwC,IAAInN,EAAa,IAAIG,EAAeZ,GAAesN,EAA4B,GAAG,CAAClkB,MAAIA,EAAE,OAAO,OAAO,UAAU,GACzJykB,KAAuC,IAAIpN,EAAamN,IAAuC5N,CAAa,GAC5G8N,KAAsC,IAAIrN,EAAa,IAAIG,EAAeZ,GAAe6N,EAAoC,GAAG7N,CAAa,GAC7I+N,KAA4C,IAAIjN,GAAuB,cAAc;AAAA,EACrF,GAAG,IAAIA,GAAuBd,GAAe;AAAA,IACzC,GAAG;AAAA,MACC,UAAU,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,MACxF,aAAaoG;AAAA,MACb,OAAO,IAAIE,GAAiC;AAAA,IACxD;AAAA,IACQ,GAAG;AAAA,MACC,UAAU,IAAIrM,EAAeZ,GAAmB2G,EAAwC;AAAA,MACxF,aAAaoG;AAAA,MACb,YAAY/M;AAAAA,MACZ,QAAQ,IAAIe,GAAiB,IAAIkM,GAAiC,GAAI,YAAY;AAAA,IAC9F;AAAA,EACA,CAAK;AAAA,EACD,GAAG,IAAInM,GAAuBd,GAAe;AAAA,IACzC,GAAG;AAAA,MACC,UAAU,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,MACxF,cAAcoG;AAAA,MACd,cAAcA;AAAA,MACd,cAAc/M;AAAAA,MACd,UAAU,IAAIe,GAAiB,IAAIH,EAAeZ,GAAeoN,EAA6B,GAAG,cAAc;AAAA,IAC3H;AAAA,IACQ,GAAG;AAAA,MACC,UAAU,IAAIxM,EAAeZ,GAAmB2G,EAAwC;AAAA,MACxF,cAAcoG;AAAA,MACd,cAAcA;AAAA,MACd,WAAW,IAAInM,EAAeZ,GAAmB6G,EAAyC;AAAA,MAC1F,WAAW,IAAIjG,EAAeZ,GAAmB6G,EAAyC;AAAA,MAC1F,aAAa7G;AAAAA,MACb,aAAaA;AAAAA,MACb,cAAc,IAAIe,GAAiB,IAAIA,GAAiBsM,IAAoC,aAAa,GAAG,aAAa;AAAA,IACrI;AAAA,EACA,CAAK;AAAA,EACD,GAAG;AAAA,IACC,QAAQrN;AAAAA,IACR,UAAU,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,IACxF,gBAAgB3G;AAAAA,IAChB,kBAAkB,IAAIS,EAAa8M,IAAuC,gBAAgB;AAAA,EAClG;AAAA,EACI,GAAG;AAAA,IACC,QAAQvN;AAAAA,IACR,cAAc,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,IAC5F,cAAc,IAAI/F,EAAeZ,GAAmB2G,EAAwC;AAAA,IAC5F,YAAY3G;AAAAA,IACZ,WAAW,IAAIY,EAAeZ,GAAeyN,EAA+B;AAAA,IAC5E,WAAW,IAAI7M,EAAeZ,GAAe2N,EAA+B;AAAA,EACpF;AAAA,EACI,GAAG;AAAA,IACC,QAAQ3N;AAAAA,IACR,cAAc,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,IAC5F,kBAAkB,IAAI/F,EAAeZ,GAAmB2G,EAAwC;AAAA,IAChG,YAAY3G;AAAAA,IACZ,WAAW,IAAIY,EAAeZ,GAAeyN,EAA+B;AAAA,IAC5E,eAAe,IAAI7M,EAAeZ,GAAe8N,EAAmC;AAAA,EAC5F;AAAA,EACI,GAAG;AAAA,IACC,QAAQ9N;AAAAA,IACR,eAAe,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,IAC7F,eAAe,IAAI/F,EAAeZ,GAAmB2G,EAAwC;AAAA,IAC7F,YAAY3G;AAAAA,IACZ,YAAY,IAAIY,EAAeZ,GAAeyN,EAA+B;AAAA,IAC7E,YAAY,IAAI7M,EAAeZ,GAAe2N,EAA+B;AAAA,EACrF;AAAA,EACI,GAAOvG;AAAA,EACP,GAAOG;AAAA,EACP,GAAG;AAAA,IACC,WAAWvH;AAAAA,IACX,YAAYA;AAAAA,IACZ,WAAW,IAAIY,EAAeT,GAAe,IAAI;AAAA,EACzD;AACA,CAAC;AAED4N,GAA0C,SAAS,CAAC,EAAE,UAAU,OAAOA;AACvE,IAAIC,KAA2C,IAAIlN,GAAuBX,GAAe;AAAA,EACrF,QAAQ;AAAA,IACJ,YAAY,IAAIS,EAAeZ,GAAmBgG,EAAyC;AAAA,IAC3F,aAAa,IAAIpF,EAAeZ,GAAmBoG,EAAyC;AAAA,IAC5F,YAAY,IAAIxF,EAAeZ,GAAe,IAAQsG,GAA2CyH,EAAyC,CAAC;AAAA,EACnJ;AAAA,EACI,OAAY,CAAA;AAAA,EACZ,OAAY;AAAA,IACR,mBAAmB,IAAInN,EAAeT,GAAmBkI,EAAyC;AAAA,EAC1G;AACA,CAAC;AAMD,IAAI4F,KAAiC,IAAIxN,EAAaT,GAAeA,CAAa,GAC9EkO,KAAqCD,IACrCE,KAAiC,IAAIpO,EAAc;AAAA,EACnD,OAAOC;AAAAA,EACP,WAAWA;AAAAA,EACX,YAAY,IAAIS,EAAaT,GAAe,CAAC5W,MAAIA,EAAE,YAAY,CAAC;AACpE,CAAC,GACGglB,KAAoC,IAAI3N,EAAa,IAAIG,EAAeZ,GAAemO,EAA8B,GAAGnO,CAAa,GACrIqO,KAAmC,IAAIvN,GAAuB,cAAc;AAAA,EAC5E,GAAG,IAAIA,GAAuBd,GAAe;AAAA,IACzC,GAAG;AAAA,MACC,UAAU,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,MACxF,cAAc1G;AAAAA,IAC1B;AAAA,IACQ,GAAG;AAAA,MACC,UAAU,IAAIW,EAAeZ,GAAmB2G,EAAwC;AAAA,MACxF,YAAY3G;AAAAA,MACZ,YAAY,IAAIe,GAAiBf,GAAe,YAAY;AAAA,IACxE;AAAA,EACA,CAAK;AAAA,EACD,GAAG;AAAA,IACC,aAAaA;AAAAA,IACb,UAAU,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,IACxF,OAAO3G;AAAAA,IACP,WAAW,IAAIe,GAAiB,IAAIH,EAAeZ,GAAeiO,EAA8B,GAAG,OAAO;AAAA,EAClH;AAAA,EACI,GAAG;AAAA,IACC,aAAajO;AAAAA,IACb,UAAU,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,IACxF,OAAO3G;AAAAA,IACP,cAAc,IAAIe,GAAiB,IAAIH,EAAeZ,GAAekO,EAAkC,GAAG,OAAO;AAAA,EACzH;AAAA,EACI,GAAG;AAAA,IACC,aAAalO;AAAAA,IACb,UAAU,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,IACxF,OAAO3G;AAAAA,IACP,cAAc,IAAIe,GAAiB,IAAIH,EAAeZ,GAAeoO,EAAiC,GAAG,OAAO;AAAA,EACxH;AAAA,EACI,GAAOhH;AAAA,EACP,GAAOG;AAAA,EACP,GAAG;AAAA,IACC,aAAavH;AAAAA,IACb,YAAYA;AAAAA,IACZ,WAAW,IAAIY,EAAeT,GAAe,IAAI;AAAA,EACzD;AAAA,EACI,GAAG;AAAA,IACC,aAAaH;AAAAA,IACb,UAAU,IAAIY,EAAeZ,GAAmB2G,EAAwC;AAAA,IACxF,mBAAmB,IAAIlG,EAAa,IAAIG,EAAeZ,GAAmB2G,EAAwC,GAAI,qBAAqB;AAAA,IAC3I,qBAAqB3G;AAAAA,IACrB,mBAAmB,IAAIS,EAAa,IAAIG,EAAeZ,GAAmB2G,EAAwC,GAAI,qBAAqB;AAAA,IAC3I,YAAY3G;AAAAA,IACZ,aAAa,IAAIS,EAAaT,GAAe,YAAY;AAAA,EACjE;AACA,CAAC;AAEDqO,GAAiC,SAAS,CAAC,EAAE,UAAU,OAAOA;AAC9D,IAAIC,KAA2C,IAAIxN,GAAuBX,GAAe;AAAA,EACrF,QAAQ;AAAA,IACJ,YAAY,IAAIS,EAAeZ,GAAmBgG,EAAyC;AAAA,IAC3F,aAAa,IAAIpF,EAAeZ,GAAmBoG,EAAyC;AAAA,IAC5F,YAAY,IAAIxF,EAAeZ,GAAe,IAAQsG,GAA2C+H,EAAgC,CAAC;AAAA,EAC1I;AAAA,EACI,OAAY,CAAA;AAAA,EACZ,OAAY;AAAA,IACR,mBAAmB,IAAIzN,EAAeT,GAAmBkI,EAAyC;AAAA,EAC1G;AACA,CAAC;AAMD,IAAIkG,KAAwC,IAAI9N,EAAaT,GAAeA,CAAa,GACrFwO,KAAqC,IAAIzO,EAAc;AAAA,EACvD,qBAAqB,IAAIa,EAAeZ,GAAeuO,EAAqC;AAAA,EAC5F,sBAAsB,IAAI3N,EAAeZ,GAAeuO,EAAqC;AAAA,EAC7F,qBAAqB,IAAI3N,EAAeZ,GAAeuO,EAAqC;AAAA,EAC5F,sBAAsB,IAAI3N,EAAeZ,GAAeuO,EAAqC;AAAA,EAC7F,kBAAkB,IAAI3N,EAAeZ,GAAe,IAAQsG,GAA+CyH,EAAyC,CAAE;AAAA,EACtJ,qBAAqB,IAAInN,EAAeZ,GAAeuO,EAAqC;AAAA,EAC5F,sBAAsB,IAAI3N,EAAeZ,GAAeuO,EAAqC;AAAA,EAC7F,qBAAqB,IAAI3N,EAAeZ,GAAeuO,EAAqC;AAAA,EAC5F,sBAAsB,IAAI3N,EAAeZ,GAAeuO,EAAqC;AAAA,EAC7F,kBAAkB,IAAI3N,EAAeZ,GAAe,IAAQsG,GAA+CyH,EAAyC,CAAE;AAC1J,CAAC,GACGU,KAAoC,IAAIhO,EAAa,IAAIG,EAAeZ,GAAewO,EAAkC,GAAGxO,CAAa,GACzI0O,KAA0C,IAAI3O,EAAc;AAAA,EAC5D,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,aAAa,IAAI7B,EAAeZ,GAAeyO,EAAiC;AACpF,CAAC,GACGE,KAAmC,IAAI5O,EAAc;AAAA,EACrD,gBAAgB,IAAIa,EAAeZ,GAAe,IAAIS,EAAaT,GAAeA,CAAa,CAAC;AAAA,EAChG,gBAAgB,IAAIY,EAAeZ,GAAeyO,EAAiC;AAAA,EACnF,cAAczO;AAAAA,EACd,gBAAgB,IAAIS,EAAaiO,IAAyC,cAAc;AAC5F,CAAC,GACGE,KAAyC,IAAI7O,EAAc;AAAA,EAC3D,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,QAAQ,IAAI7B,EAAeZ,GAAe2O,IAAkC;AAAA,IACxE,MAAM;AAAA,EACd,CAAK;AACL,CAAC;AACD,IAAIE,KAA2C,IAAI9O,EAAc;AAAA,EAC7D,SAASI;AAAAA,EACT,aAAaH;AAAAA,EACb,YAAY,IAAIS,EAAamO,IAAwC,aAAa;AACtF,CAAC;AAMD,MAAME,GAAyC;AAAA,EAC3C,OAAO1rB,GAAQqB,GAAQ;AACnB,YAAO,KAAK,KAAK,GAAGA,CAAM,GAAC;AAAA,MACvB,KAAK;AACD,eAAOrB,EAAO,UAAS;AAAA,MAC3B,KAAK;AACD,eAAOA,EAAO,aAAY;AAAA,MAC9B,KAAK;AACD,eAAOA,EAAO,aAAY;AAAA,MAC9B,KAAK;AACD,eAAOA,EAAO,aAAY;AAAA,IAC1C;AAAA,EACI;AAAA,EACA,KAAK9F,GAAKmH,GAAQ;AACd,WAAWskB,GAAsB,KAAK,OAAO,MAAMtkB,CAAM;AAAA,EAC7D;AAAA,EACA,YAAY3J,GAAK;AACb,SAAK,QAAQA;AAAA,EACjB;AACJ;AACA,IAAIi0B,KAAqC,IAAIhP,EAAc;AAAA,EACvD,OAAO,IAAI+O,GAAyC,CAAC1lB,QAAMA,EAAE,OAAO,cAAc,OAAW,KAAK,CAAC;AAAA,EACnG,YAAY,CAACA,MAAIA,EAAE,UAAUA,EAAE,OAAO,cAAc,MAAU;AAAA,EAC9D,YAAY,CAACA,MAAIA,EAAE,SAAS,MAAMA,EAAE,OAAO,cAAc,MAAU,KAAK;AAC5E,CAAC,GACG4lB,KAAyC,IAAIjP,EAAc;AAAA,EAC3D,aAAaC;AAAAA,EACb,UAAUA;AAAAA,EACV,SAAS,IAAIS,EAAasO,IAAoC,UAAU;AAC5E,CAAC;AACD,IAAIE,KAA2C,IAAIlP,EAAc;AAAA,EAC7D,cAAcC;AAAAA,EACd,cAAcA;AAAAA,EACd,oBAAoB,IAAIY,EAAeT,GAAmB4H,EAAyC;AAAA,EACnG,qBAAqB,IAAInH,EAAeT,GAAe6O,EAAsC;AAAA,EAC7F,YAAY,IAAIpO,EAAeT,GAAe6O,EAAsC;AAAA,EACpF,YAAY,IAAIpO,EAAeT,GAAe6O,EAAsC;AACxF,CAAC;AAID,IAAIE,KAAkC,IAAInP,EAAc;AAAA,EACpD,QAAQI;AAAAA,EACR,QAAQA;AAAAA,EACR,QAAQA;AACZ,CAAC,GACGgP,KAAuC,IAAIpP,EAAc;AAAA,EACzD,UAAU,IAAIiB,GAAgBhB,GAAe,CAAC;AAAA,EAC9C,aAAaG;AAAAA,EACb,WAAW,IAAIyD,GAAc,aAAa;AAC9C,CAAC;AACD,IAAIwL,KAA2C,IAAIrP,EAAc;AAAA,EAC7D,WAAWI;AAAAA,EACX,WAAWH;AAAAA,EACX,QAAQA;AAAAA,EACR,YAAY,IAAIS,EAAayO,IAAiC,WAAW;AAAA,EACzE,iBAAiB,IAAIzO,EAAa0O,IAAsC,WAAW;AACvF,CAAC;AAID,IAAIE,KAAkC,IAAItP,EAAc;AAAA,EACpD,cAAcC;AAAAA,EACd,mBAAmB,IAAIqB,GAAgBrB,GAAe;AAAA,IAClD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EACR,CAAK;AACL,CAAC;AACD,IAAIsP,KAA2C,IAAIvP,EAAc;AAAA,EAC7D,SAASC;AAAAA,EACT,WAAWA;AAAAA,EACX,YAAY,IAAIS,EAAa4O,IAAiC,WAAW;AAAA;AAC7E,CAAC;AAID,IAAIE,KAAqC,IAAIxP,EAAc;AAAA,EACvD,WAAWO;AAAAA,EACX,cAAcA;AAAAA,EACd,QAAQ,IAAIG,EAAaH,GAAc,CAAClX,MAAIA,EAAE,OAAO,OAAO,KAAK,SAAS;AAC9E,CAAC;AACD,IACAomB,KAA2C,IAAIzP,EAAc;AAAA,EACzD,SAASC;AAAAA,EACT,YAAYC;AAAAA,EACZ,kBAAkBmB;AAAAA,EAClB,SAAS,IAAIX,EAAa8O,IAAoC,YAAY;AAC9E,CAAC;AAID,IAAIE,KAAiC,IAAI1P,EAAc;AAAA,EACnD,MAAMC;AAAAA,EACN,OAAOA;AAAAA,EACP,OAAOC;AACX,CAAC,GACGyP,KAAmC,IAAI3P,EAAc;AAAA,EACrD,YAAYC;AAAAA,EACZ,SAASA;AAAAA,EACT,SAAS,IAAIS,EAAaT,GAAe,SAAS;AAAA,EAClD,KAAK,CAAC5W,MAAIA,EAAE,QAAQ,UAAU,KAAK,IAAI,MAAM,MAAMA,EAAE,OAAO;AAChE,CAAC,GACGumB,KAAmC,IAAI5P,EAAc;AAAA,EACrD,KAAK,CAAC3W,MAAIA,EAAE,eAAeA,EAAE,OAAO,OAAO;AAAA,EAC3C,KAAK,CAACA,QAAMA,EAAE,OAAO,UAAU,MAAMA,EAAE,OAAOA,EAAE,OAAO,WAAW,MAAMA,EAAE,OAAO,WAAW;AAAA,EAC5F,QAAQ,IAAI2X,GAAiBd,GAAc,KAAK;AACpD,CAAC,GACG2P,KAAqC,IAAI9O,GAAuB,UAAU;AAAA,EAC1E,GAAG;AAAA,IACC,QAAQd;AAAAA,IACR,aAAaA;AAAAA,IACb,eAAeA;AAAAA,IACf,YAAYA;AAAAA,IACZ,OAAO,IAAIS,EAAagP,IAAgC,QAAQ;AAAA,EACxE;AAAA,EACI,GAAG;AAAA,IACC,UAAUzP;AAAAA,IACV,WAAW,IAAIY,EAAeZ,GAAe0P,IAAkC;AAAA,MAC3E,MAAM;AAAA,IAClB,CAAS;AAAA,IACD,YAAY,IAAI9O,EAAeZ,GAAe0P,IAAkC;AAAA,MAC5E,MAAM;AAAA,IAClB,CAAS;AAAA,IACD,OAAO,IAAI9O,EAAeZ,GAAe2P,IAAkC;AAAA,MACvE,MAAM;AAAA,IAClB,CAAS;AAAA,EACT;AAAA,EACI,GAAG;AAAA,IACC,YAAY3P;AAAAA,IACZ,gBAAgBM;AAAAA,IAChB,gBAAgBA;AAAAA,IAChB,iBAAiBA;AAAAA,IACjB,OAAOA;AAAAA,IACP,WAAW,IAAIG,EAAaR,GAAc,gBAAgB;AAAA,IAC1D,WAAW,IAAIQ,EAAaH,GAAc,YAAY;AAAA,IACtD,YAAY,IAAIG,EAAaH,GAAc,YAAY;AAAA,IACvD,WAAW,IAAIG,EAAaH,GAAc,CAAClX,MAAIA,EAAE,iBAAiBA,EAAE,eAAe;AAAA,EAC3F;AACA,CAAC,GACGymB,KAAkC,IAAI/O,GAAuB,WAAW;AAAA,EACxE,GAAG;AAAA,IACC,YAAYd;AAAAA,IACZ,QAAQA;AAAAA,IACR,QAAQM;AAAAA,IACR,UAAU,IAAIe,GAAgBf,GAAc;AAAA,MACxC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IACZ,CAAS;AAAA,IACD,UAAUsP;AAAA,IACV,SAAS,IAAI5O,GAAgBV,GAAc,CAAClX,MAAIA,EAAE,SAASA,EAAE,cAAc;AAAA,EACnF;AAAA,EACI,GAAG;AAAA,IACC,QAAQ+W;AAAAA,IACR,UAAU,IAAIkB,GAAgBf,GAAc;AAAA,MACxC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IACZ,CAAS;AAAA,IACD,QAAQA;AAAAA,IACR,YAAYN;AAAAA,IACZ,UAAU4P;AAAA,IACV,SAAS,IAAI5O,GAAgBV,GAAc,CAAClX,MAAIA,EAAE,SAASA,EAAE,cAAc;AAAA,EACnF;AACA,CAAC;AACD,IAAI0mB,KAA2C,IAAIhP,GAAuBd,GAAe;AAAA,EACrF,GAAG;AAAA,IACC,SAASA;AAAAA,IACT,QAAQ,IAAIS,EAAaoP,IAAiC,SAAS;AAAA,EAC3E;AAAA,EACI,GAAG;AAAA,IACC,UAAU,IAAI7O,GAAgBhB,CAAa;AAAA,IAC3C,SAASG;AAAAA,IACT,QAAQ,IAAIM,EAAaoP,IAAiC,SAAS;AAAA,EAC3E;AACA,CAAC,GAODE,KAA2C,IAAIhQ,EAAc;AAAA,EACzD,SAASC;AAAAA,EACT,WAAWA;AAAAA,EACX,OAAO,IAAIS,EAAaH,GAAc,WAAW;AACrD,CAAC,GAMD0P,KAA2C,IAAIjQ,EAAc;AAAA,EACzD,SAASC;AAAAA,EACT,YAAYG;AAAAA,EACZ,OAAOH;AAAAA,EACP,SAASA;AAAAA,EACT,OAAOA;AAAAA,EACP,YAAYA;AAAAA,EACZ,WAAWA;AAAAA,EACX,WAAWA;AAAAA,EACX,UAAU,IAAIyC,GAAc,EAAE;AAAA,EAC9B,qBAAqB,IAAIA,GAAc,CAAC;AAAA,EACxC,UAAU,IAAIA,GAAc,CAAC;AAAA,EAC7B,cAAc,IAAIA,GAAc,CAAC;AAAA,EACjC,WAAW,IAAIA,GAAc,CAAC;AAAA,EAC9B,YAAYnC;AAAAA,EACZ,UAAU,IAAIU,GAAgBV,CAAY;AAC9C,CAAC;AAMD,IAAI2P,KAA8B,IAAIlQ,EAAc;AAAA,EAChD,UAAUO;AAAAA,EACV,QAAQA;AAAAA,EACR,aAAaA;AAAAA,EACb,WAAWA;AAAAA;AACf,CAAC,GACG4P,KAA+B,IAAInQ,EAAc;AAAA,EACjD,YAAYC;AAAAA,EACZ,MAAMC;AAAAA,EACN,MAAMA;AAAAA;AACV,CAAC,GACGkQ,KAAkC,IAAIpQ,EAAc;AAAA,EACpD,MAAMC;AAAAA,EACN,SAASM;AAAAA,EACT,OAAOA;AAAAA,EACP,SAAS,IAAIG,EAAayP,IAA8B,MAAM;AAAA;AAClE,CAAC;AACD,IAAIE,KAA2C,IAAIrQ,EAAc;AAAA,EAC7D,SAASC;AAAAA,EACT,SAASA;AAAAA,EACT,WAAWA;AAAAA,EACX,aAAa,IAAIS,EAAawP,IAA6B,WAAW;AAAA,EACtE,SAAS,IAAIxP,EAAaT,GAAe,WAAW;AAAA,EACpD,QAAQ,IAAIS,EAAa0P,IAAiC,SAAS;AAAA;AACvE,CAAC,GAKDE,KAA2C,IAAItQ,EAAc;AAAA,EACzD,SAASC;AAAAA,EACT,QAAQC;AAAAA,EACR,SAASA;AAAAA,EACT,SAASA;AAAAA,EACT,kBAAkBA;AAAAA,EAClB,mBAAmBA;AAAAA,EACnB,sBAAsBA;AAAAA,EACtB,YAAYA;AAAAA,EACZ,gBAAgBA;AAAAA,EAChB,eAAeA;AAAAA,EACf,aAAaA;AAAAA,EACb,UAAU,IAAIe,GAAgBf,GAAc,CAAC;AAAA,EAC7C,kBAAkBA;AAAAA,EAClB,iBAAiBD;AAAAA;AACrB,CAAC;AAID,IAAIsQ,KAAkC,IAAIvQ,EAAc;AAAA,EACpD,SAASC;AAAAA,EACT,SAASC;AAAAA;AACb,CAAC;AACD,IACAsQ,KAA2C,IAAIxQ,EAAc;AAAA,EACzD,SAAS,IAAIgB,GAAiBuP,IAAiC,CAAClnB,MAAIA,EAAE,OAAO,KAAK,eAAe;AAAA,EACjG,UAAU,IAAI2X,GAAiBd,GAAc,CAAC7W,MAAIA,EAAE,OAAO,KAAK,YAAYA,EAAE,OAAO,KAAK,eAAe;AAC7G,CAAC;AAID,IAAIonB,KAAkC,IAAI/I,GAAa,IAAI,MAAM,EAAE,GAC/DgJ,KAAuC,IAAI1Q,EAAc;AAAA,EACzD,WAAWyQ;AAAA,EACX,SAASA;AACb,CAAC,GACGE,KAAgC,IAAI3Q,EAAc;AAAA,EAClD,WAAWC;AAAAA,EACX,gBAAgB,IAAIS,EAAagQ,IAAsC,WAAW;AACtF,CAAC;AACD,IAAIE,KAA2C,IAAI5Q,EAAc;AAAA,EAC7D,SAASsD;AAAAA,EACT,WAAWlD;AAAAA,EACX,SAAS,IAAIM,EAAaiQ,IAA+B,WAAW;AACxE,CAAC;AAKD,MAAME,GAA6C;AAAA,EAC/C,QAAQvrB,GAAO;AACX,QAAI,KAAK,OAAOA,CAAK,KAAK,MAAM;AAC5B,UAAIrJ,IAAM,KAAK,OAAO;AACtB,WAAK,OAAO,MAAM,KAAK,OAAO,KAAK,KAAK,KAAK,MAAM,KAAK,MAAM,IAAIqJ,GAClE,KAAK,OAAOA,CAAK,IAAI,KAAK,KAAK,OAAO,KAAK,QAAQ,KAAK,MAAM,GAC9D,KAAK,OAAO,MAAMrJ;AAAA,IACtB;AACA,WAAO,KAAK,OAAOqJ,CAAK;AAAA,EAC5B;AAAA,EACA,UAAU;AACN,WAAO,mBAAmB,KAAK,KAAK,YAAY,IAAI;AAAA,EACxD;AAAA,EACA,YAAYtD,GAAMqB,GAAQqB,GAAO;AAC7B,SAAK,OAAO1C,GACZ,KAAK,SAASqB,GACd,KAAK,SAASqB,GACd,KAAK,OAAO,KAAK,OAAO,KACxB,KAAK,SAAS,CAAA;AAAA,EAClB;AACJ;AACA,MAAMosB,WAAkDpQ,EAAa;AAAA,EACjE,OAAOrd,GAAQqB,GAAQ;AACnB,WAAO,IAAImsB,GAA6C,KAAK,MAAMxtB,GAAQqB,CAAM;AAAA,EACrF;AAAA,EACA,YAAY1C,GAAK;AACb,UAAMA,GAAM,CAAC;AAAA,EACjB;AACJ;AACA,IAAI+uB,KAA4C,SAASC,IAAY/Q,GAAe;AAAA,EAEhF,MAAMgR,EAAO;AAAA,IACT,OAAO5tB,GAAQ0B,GAAK;AAChB,aAAAA,IAAMA,EAAI,OAAO,QACV,KAAK,KAAK,OAAO1B,GAAQ0B,CAAG;AAAA,IACvC;AAAA,IACA,KAAKxH,GAAKwH,GAAK;AACX,aAAAA,IAAMA,EAAI,OAAO,QACV,KAAK,KAAK,KAAKxH,GAAKwH,CAAG;AAAA,IAClC;AAAA,IACA,OAAO1B,GAAQ9F,GAAKwH,GAAK;AACrB,aAAAA,IAAMA,EAAI,OAAO,QACV,KAAK,KAAK,OAAO1B,GAAQ9F,GAAKwH,CAAG;AAAA,IAC5C;AAAA,IACA,YAAY/C,GAAK;AACb,WAAK,OAAOA;AAAA,IAChB;AAAA,EACR;AACI,EAAAgvB,IAAY,IAAIC,EAAOD,CAAS;AAChC,MAAIE,IAAqB,IAAIlR,EAAc;AAAA,IACvC,UAAUC;AAAAA,IACV,QAAQA;AAAAA,IACR,aAAaA;AAAAA,IACb,eAAeA;AAAAA,IACf,YAAYA;AAAAA,EACpB,CAAK,GACGkR,IAAsB,IAAInR,EAAc;AAAA,IACxC,WAAWC;AAAAA,IACX,YAAYA;AAAAA,IACZ,OAAO+Q;AAAA,EACf,CAAK,GACGI,IAAqB,IAAIpR,EAAc;AAAA,IACvC,WAAWC;AAAAA,IACX,YAAYA;AAAAA,IACZ,QAAQ,IAAIY,EAAeZ,GAAe,IAAIS,EAAasQ,GAAW,CAAC3nB,MAAIA,EAAE,YAAYA,EAAE,aAAa,CAAC,GAAG;AAAA,MACxG,MAAM;AAAA,IAClB,CAAS;AAAA,EACT,CAAK,GACGgoB,IAAe,IAAIrR,EAAc;AAAA,IACjC,OAAOC;AAAAA,IACP,OAAO+Q;AAAA,EACf,CAAK;AACD,SAAO,IAAIjQ,GAAuBd,GAAe;AAAA,IAC7C,GAAG;AAAA,MACC,QAAQ,IAAI6Q,GAA0CE,CAAS;AAAA;AAAA,IAC3E;AAAA,IACQ,GAAG;AAAA,MACC,oBAAoBE;AAAA,MACpB,UAAU,IAAIxQ,EAAayQ,GAAqB,CAAC9nB,MAAIA,EAAE,mBAAmB,MAAM;AAAA,IAC5F;AAAA,IACQ,GAAG;AAAA,MACC,oBAAoB6nB;AAAA,MACpB,UAAU,IAAIxQ,EAAa0Q,GAAoB,CAAC/nB,MAAIA,EAAE,mBAAmB,MAAM;AAAA,IAC3F;AAAA,IACQ,GAAG;AAAA,MACC,oBAAoB6nB;AAAA,MACpB,UAAU,IAAIxQ,EAAa2Q,GAAc,CAAChoB,MAAIA,EAAE,mBAAmB,MAAM;AAAA,IACrF;AAAA,IACQ,GAAG;AAAA,MACC,YAAY4W;AAAAA,MACZ,OAAOA;AAAAA,MACP,QAAQ,IAAIS,EAAasQ,GAAW,OAAO;AAAA,IACvD;AAAA,EACA,CAAK;AACL;AACA,SAASM,GAA0CC,IAAY,IAAIC,IAAavR,GAAe;AAC3F,MAAIwR,IAAQ,OAAO,OAAO;AAAA,IACtB,UAAUxR;AAAAA,IACV,OAAOA;AAAAA,EACf,GAAOsR,CAAS,GACRG,IAAQ,IAAI1R,EAAcyR,CAAK,GAC/BE,IAAa,IAAIb,GAA0C,IAAIpQ,EAAaT,GAAe,CAAC5W,MAAIA,EAAE,QAAQ,CAAC;AAO/G,SANkB,IAAI2W,EAAc;AAAA,IAChC,UAAUI;AAAAA,IACV,YAAY,IAAIS,EAAeT,GAAe,IAAI2Q,GAA0CS,CAAU,CAAC;AAAA,IACvG,YAAY,IAAI3Q,EAAeT,GAAeuR,CAAU;AAAA,IACxD,YAAY,IAAI9Q,EAAeT,GAAe,IAAI0Q,GAA0CY,CAAK,CAAC;AAAA,EAC1G,CAAK;AAEL;AACA,SAASE,GAA0CL,IAAY,IAAIC,IAAavR,GAAe;AAC3F,MAAI4R,IAAmB,IAAI7R,EAAc;AAAA,IACrC,UAAW;AACP,aAAO;AAAA,IACX;AAAA,IACA,YAAYC;AAAAA,IACZ,QAAQ,IAAIS,EAAaH,GAAcN,CAAa;AAAA,EAC5D,CAAK,GACGwR,IAAQ,OAAO,OAAO;AAAA,IACtB,gBAAgBxR;AAAAA;AAAAA,IAEhB,UAAU,CAAC5W,OAAKA,EAAE,kBAAkBA,EAAE,OAAO,WAAW,OAAOA,EAAE,OAAO,iBAAiBA,EAAE,OAAO;AAAA,IAClG,OAAO4W;AAAAA,EACf,GAAOsR,CAAS,GACRG,IAAQ,IAAI1R,EAAcyR,CAAK,GAC/BE,IAAa,IAAIb,GAA0C,IAAIpQ,EAAaH,GAAc,CAAClX,MAAIA,EAAE,QAAQ,CAAC;AAO9G,SANmB,IAAI2W,EAAc;AAAA,IACjC,UAAUC;AAAAA,IACV,YAAY,IAAIY,EAAeZ,GAAe4R,CAAgB;AAAA,IAC9D,YAAY,IAAIhR,EAAeZ,GAAe0R,CAAU;AAAA,IACxD,YAAY,IAAI9Q,EAAeZ,GAAe,IAAI6Q,GAA0CY,CAAK,CAAC;AAAA,EAC1G,CAAK;AAEL;AAGA,IAAII,KAAqC,IAAI/Q,GAAuB,UAAU;AAAA,EAC1E,GAAG;AAAA,IACC,QAAQ,IAAIL,EAAaR,GAAc,EAAE;AAAA,EACjD;AAAA,EACI,GAAG;AAAA,IACC,QAAQ,IAAIQ,EAAaR,GAAc,EAAE;AAAA,IACzC,aAAa,IAAQ6Q,GAA2C9Q,CAAa;AAAA,EACrF;AAAA,EACI,GAAG;AAAA,IACC,eAAeA;AAAAA,IACf,eAAe,IAAIS,EAAaT,GAAe,EAAE;AAAA,EACzD;AAAA,EACI,GAAG;AAAA,IACC,eAAeA;AAAAA,IACf,eAAe,IAAIS,EAAaT,GAAe,EAAE;AAAA,IACjD,aAAa,IAAQ8Q,GAA2C9Q,CAAa;AAAA,EACrF;AACA,CAAC;AACD,IAAI8R,KAA2C,IAAI/R,EAAc;AAAA,EAC7D,SAASsD;AAAAA,EACT,QAAQrD;AAAAA,EACR,iBAAiBA;AAAAA,EACjB,UAAU6R;AACd,CAAC;AAID,IAAIE,KAAgC,IAAIhS,EAAc;AAAA,EAClD,SAASC;AAAAA,EACT,WAAWC;AAAAA,EACX,MAAM,CAAC7W,MAAIA,EAAE,OAAO,OAAO,OAAO,KAAK,QAAQ,aAAaA,EAAE,SAAS;AAC3E,CAAC,GACG4oB,KAAoC,IAAIjS,EAAc;AAAA,EACtD,SAASC;AAAAA,EACT,WAAWA;AAAAA,EACX,cAAc,IAAIY,EAAeT,GAAe,IAAIM,EAAasR,IAA+B,WAAW,GAAG;AAAA,IAC1G,MAAM;AAAA,EACd,CAAK;AAAA,EACD,cAAc,IAAI1Q,GAAgBf,GAAc;AAAA,IAC5C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACR,CAAK;AAAA,EACD,gBAAgBA;AAAAA,EAChB,WAAWL;AAAAA,EACX,MAAM,CAAC7W,MAAIA,EAAE,OAAO,OAAO,KAAK,QAAQ,aAAaA,EAAE,SAAS;AACpE,CAAC;AACD,IAAI6oB,KAA2C,IAAIlS,EAAc;AAAA,EAC7D,SAASsD;AAAAA,EACT,kBAAkBrD;AAAAA,EAClB,WAAW,IAAIgB,GAAgBhB,CAAa;AAAA,EAC5C,WAAW,IAAIgB,GAAgBb,CAAa;AAAA,EAC5C,cAAc,IAAIM,EAAauR,IAAmC,kBAAkB;AACxF,CAAC;AAID,IAAIE,KAA6B,IAAInS,EAAc;AAAA,EAC/C,SAAS,IAAI0C,GAAc,CAAC;AAAA,EAC5B,UAAUY;AAAAA,EACV,cAAcA;AAAAA,EACd,UAAUA;AAAAA,EACV,OAAOrD;AAAAA,EACP,QAAQA;AAAAA,EACR,MAAM,CAAC5W,MAAIA,EAAE,OAAO,OAAO,KAAK,QAAQ,aAAaA,EAAE,MAAM;AACjE,CAAC,GACG+oB,KAAiC,IAAIpS,EAAc;AAAA,EACnD,QAAQC;AAAAA,EACR,MAAM,CAAC5W,MAAIA,EAAE,OAAO,OAAO,KAAK,QAAQ,aAAaA,EAAE,MAAM;AAAA,EAC7D,OAAO4W;AAAAA,EACP,OAAO,IAAIS,EAAa4C,IAAgB,CAACja,MAAIA,EAAE,OAAO,SAAS;AAAA,EAC/D,kBAAkB,IAAIqd,GAAgBzG,GAAe,CAAC5W,MAAIA,EAAE,OAAO,eAAeA,EAAE,iBAAiB,CAAC;AAC1G,CAAC;AACD,IAAIgpB,KAA2C,IAAIrS,EAAc;AAAA,EAC7D,SAASsD;AAAAA,EACT,cAAcrD;AAAAA,EACd,gBAAgBA;AAAAA,EAChB,WAAWA;AAAAA,EACX,UAAUA;AAAAA,EACV,eAAeA;AAAAA,EACf,cAAcA;AAAAA,EACd,MAAM,IAAIS,EAAayR,IAA4B,WAAW;AAAA,EAC9D,UAAU,IAAIzR,EAAa0R,IAAgC,eAAe;AAC9E,CAAC;AAID,IAAIE,KAAkC,IAAI5K,GAAa,IAAI,MAAM,EAAE;AACnE,MAAM6K,GAA6B;AAAA,EAC/B,OAAO,OAAOlvB,GAAQqB,GAAQ;AAI1B,WAAOA,EAAO,QAAQrB,EAAO,aAAY,IAAKA,EAAO,aAAY,IAAK;AAAA,EAC1E;AACJ;AACA,IAAImvB,KAA6B,IAAIxS,EAAc;AAAA,EAC/C,SAASC;AAAAA,EACT,UAAU,IAAIgB,GAAgBhB,CAAa;AAAA,EAC3C,WAAWA;AAAAA,EACX,kBAAkBA;AAAAA,EAClB,cAAc,IAAIY,EAAeT,GAAe,IAAIM,EAAa,IAAIA,EAAa4R,IAAiC,WAAW,GAAG,kBAAkB,CAAC;AAAA,EACpJ,YAAYrS;AAAAA,EACZ,OAAOA;AAAAA,EACP,cAAcG;AAAAA,EACd,SAAS,IAAIM,EAAa,IAAIG,EAAe0R,IAA8B,QAAQ;AAAA,IAC/E,YAAY,CAACxtB,MAAMA,EAAI;AAAA,IACvB,WAAW;AAAA,EACnB,CAAK,GAAG,CAACsE,MAAIA,EAAE,aAAa,CAAC;AAC7B,CAAC;AACD,IAAIopB,KAA2CD;AAK/C,IAAIE,KAAmC,IAAI1S,EAAc;AAAA,EACrD,QAAQC;AAAAA,EACR,UAAUA;AAAAA,EACV,iBAAiBG;AAAAA,EACjB,YAAY,IAAQwR;AACxB,CAAC,GACGe,KAAyC,IAAI3S,EAAc;AAAA,EAC3D,WAAWI;AAAAA,EACX,iBAAiBkD;AAAAA,EACjB,mBAAmBA;AAAAA,EACnB,gBAAgBA;AAAAA,EAChB,kBAAkBA;AAAAA,EAClB,WAAWrD;AAAAA,EACX,aAAaA;AACjB,CAAC,GACG2S,KAA0C,IAAIlS,EAAaiS,IAAwCvS,CAAa,GAChHyS,KAAmC,IAAI9R,GAAuB,cAAc;AAAA,EAC5E,GAAG;AAAA,IACC,YAAYuC;AAAAA,IACZ,YAAYA;AAAAA,IACZ,OAAOrD;AAAAA,IACP,QAAQ,IAAIS,EAAaT,GAAeA,CAAa;AAAA,EAC7D;AAAA,EACI,GAAG;AAAA,IACC,UAAUA;AAAAA,EAClB;AAAA,EACI,GAAG;AAAA,IACC,gBAAgBqD;AAAAA,IAChB,UAAUrD;AAAAA,IACV,YAAYA;AAAAA,EACpB;AAAA,EACI,GAAG,CAAA;AAAA,EACH,GAAG;AAAA,IACC,eAAeG;AAAAA,IACf,cAAckD;AAAAA,IACd,gBAAgBA;AAAAA,IAChB,cAAcA;AAAAA,EACtB;AAAA,EACI,GAAG;AAAA,IACC,OAAOrD;AAAAA,IACP,OAAOA;AAAAA,EACf;AACA,CAAC,GACG6S,KAA+B,IAAI9S,EAAc;AAAA,EACjD,aAAaC;AAAAA,EACb,YAAYA;AAAAA,EACZ,cAAcG;AAAAA,EACd,YAAYyS;AAAA,EACZ,SAAS,IAAI5R,GAAgBV,GAAc,CAAClX,MAAIA,EAAE,eAAeA,EAAE,cAAc;AACrF,CAAC,GACG0pB,KAA+C,IAAIrS,EAAaoS,IAA8B1S,CAAa,GAC3G4S,KAA8C,IAAIhT,EAAc;AAAA,EAChE,aAAa,IAAQ+Q,GAA2C,IAAIlQ,EAAeZ,GAAe8S,EAA4C,CAAC;AACnJ,CAAC,GACGE,KAA2C,IAAIjT,EAAc;AAAA,EAC7D,YAAY,IAAIa,EAAeZ,GAAeyS,IAAkC;AAAA,IAC5E,MAAM;AAAA,EACd,CAAK;AAAA,EACD,WAAWzS;AAAAA,EACX,uBAAuB,IAAIY,EAAeZ,GAAe+S,IAA6C;AAAA,IAClG,MAAM;AAAA,EACd,CAAK;AAAA,EACD,oBAAoB,IAAQjC,GAA2C,IAAIlQ,EAAeZ,GAAe2S,IAAyC;AAAA,IAC9I,MAAM;AAAA,IACN,YAAY,CAAC7tB,MAAMA,EAAI;AAAA,EAC/B,CAAK,CAAC;AACN,CAAC;AACD,IAAImuB,KAA2C,IAAIlT,EAAc;AAAA,EAC7D,SAASI;AAAAA,EACT,QAAQH;AAAAA,EACR,YAAY,IAAIY,EAAeZ,GAAegT,EAAwC;AAAA,EACtF,UAAU,IAAIpS,EAAeZ,GAAegT,EAAwC;AACxF,CAAC;AAKD,IAAIE,KAAqC;AAAA,EACrC,QAAQlT;AACZ,GACImT,KAAuC;AAAA,EACvC,WAAWnT;AAAAA,EACX,cAAcA;AAClB,GACIoT,KAAsC;AAAA,EACtC,oBAAoBpT;AAAAA,EACpB,mBAAmBA;AACvB,GACIqT,KAA0C,IAAItT,EAAc;AAAA,EAC5D,OAAO,IAAQ8Q,GAA2C,IAAIjQ,EAAeT,GAAe,IAAQ2Q,IAA0C,CAAC;AACnJ,CAAC,GACGwC,KAAqC,IAAIxS,GAAuB,QAAQ;AAAA,EACxE,GAAG;AAAA,IACC,YAAY,IAAQuQ;AAAA,EAC5B;AAAA,EACI,GAAG;AAAA,IACC,YAAY,IAAQA,GAA2C8B,EAAoC;AAAA,IACnG,mBAAmB,IAAIvS,EAAeT,GAAekT,EAAuC;AAAA,EACpG;AAAA,EACI,GAAG;AAAA,IACC,YAAY,IAAQhC,GAA2C6B,EAAkC;AAAA,IACjG,iBAAiB,IAAItS,EAAeT,GAAe,IAAQ0Q,GAA2C1Q,CAAa,CAAC;AAAA,IACpH,YAAY,IAAIS,EAAeT,GAAe,IAAQ0Q,GAA2C7Q,CAAa,CAAC;AAAA,IAC/G,cAAc,IAAIY,EAAeT,GAAe,IAAQ0Q,GAA2C7Q,CAAa,CAAC;AAAA,EACzH;AAAA,EACI,GAAG;AAAA,IACC,aAAa,IAAQ8Q;AAAA,EAC7B;AAAA,EACI,GAAG;AAAA,IACC,YAAY,IAAQO,GAA2C+B,EAAmC;AAAA,IAClG,kBAAkB,IAAIxS,EAAeT,GAAe,IAAQ0Q,GAA2C7Q,CAAa,CAAC;AAAA,EAC7H;AACA,CAAC,GACGuT,KAAiC,IAAIxT,EAAc;AAAA,EACnD,QAAQI;AAAAA,EACR,UAAUE;AAAAA,EACV,MAAMC;AAAAA,EACN,iBAAiBH;AAAAA,EACjB,OAAOmT;AAAA,EACP,SAAS,IAAItS,GAAgBV,GAAc,CAAClX,MAAIA,EAAE,SAASA,EAAE,cAAc;AAC/E,CAAC,GACGoqB,KAAqC,IAAIzT,EAAc;AAAA,EACvD,aAAaC;AAAAA,EACb,gBAAgBA;AAAAA,EAChB,aAAaG;AAAAA,EACb,cAAcA;AAClB,CAAC,GACGsT,KAAkC,IAAI1T,EAAc;AAAA,EACpD,cAAcI;AAAAA,EACd,aAAaA;AAAAA,EACb,iBAAiBA;AAAAA,EACjB,YAAYA;AAAAA,EACZ,UAAU,IAAIM,EAAa+S,IAAoC,iBAAiB;AAAA,EAChF,WAAW,IAAI/S,EAAa8S,IAAgC,YAAY;AAC5E,CAAC;AACD,IAAIG,KAA2C,IAAI3T,EAAc;AAAA,EAC7D,SAASC;AAAAA,EACT,QAAQ,IAAIgB,GAAgBhB,CAAa;AAAA,EACzC,SAASG;AAAAA,EACT,QAAQ,IAAIM,EAAagT,IAAiC,SAAS;AACvE,CAAC;AAKD,IAAIE,KAAsC,IAAI5T,EAAc;AAAA,EACxD,MAAME;AAAAA,EACN,KAAKA;AAAAA,EACL,OAAOA;AAAAA,EACP,QAAQA;AACZ,CAAC;AACD,IAAI2T,KAA2C,IAAI7T,EAAc;AAAA,EAC7D,SAASsD;AAAAA,EACT,QAAQrD;AAAAA,EACR,aAAa,IAAQ8Q,GAA2C6C,EAAmC;AACvG,CAAC;AAGD,IAAIE,IAA+B,CAAA;AACnC,IAAIC,KAA2CD;AAC/CA,EAA6B,OAAW3S;AACxC2S,EAA6B,OAAW1S;AACxC0S,EAA6B,OAAWvS;AACxCuS,EAA6B,OAAWrS;AACxCqS,EAA6B,OAAWpS;AACxCoS,EAA6B,OAAWjR;AACxCiR,EAA6B,MAAM,IAAQ1Q;AAC3C0Q,EAA6B,OAAWzQ;AACxCyQ,EAA6B,OAAWtQ;AACxCsQ,EAA6B,OAAWpQ;AACxCoQ,EAA6B,OAAWnQ;AACxCmQ,EAA6B,MAAM,IAAQvQ;AAC3CuQ,EAA6B,OAAWlQ;AACxCkQ,EAA6B,MAAM,IAAQrJ;AAC3CqJ,EAA6B,OAAcrJ;AAC3CqJ,EAA6B,OAAWnJ;AACxCmJ,EAA6B,OAAWxI;AACxCwI,EAA6B,OAAOA,EAA6B;AACjEA,EAA6B,OAAWtI;AACxCsI,EAA6B,OAAWnI;AACxCmI,EAA6B,OAAWjI;AACxCiI,EAA6B,OAAWtH;AACxCsH,EAA6B,OAAW/G;AACxC+G,EAA6B,OAAW7F;AACxC6F,EAA6B,OAAWvF;AACxCuF,EAA6B,OAAWhF;AACxCgF,EAA6B,OAAW5E;AACxC4E,EAA6B,OAAWzE;AACxCyE,EAA6B,OAAWvE;AACxCuE,EAA6B,OAAWrE;AACxCqE,EAA6B,OAAW/D;AACxC+D,EAA6B,OAAW9D;AACxC8D,EAA6B,OAAW7D;AACxC6D,EAA6B,OAAWzD;AACxCyD,EAA6B,OAAWxD;AACxCwD,EAA6B,OAAWtD;AACxCsD,EAA6B,OAAWlD;AACxCkD,EAA6B,OAAW/B;AACxC+B,EAA6B,OAAW5B;AACxC4B,EAA6B,OAAWzB;AACxCyB,EAA6B,OAAWrB;AACxCqB,EAA6B,OAAWZ;AACxCY,EAA6B,OAAWH;AACxCG,EAA6B,OAAWD;AAGxC,IAAIG,KAAmC,IAAIhU,EAAc;AAAA,EACrD,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,UAAUtC;AAAAA,EACV,QAAQ,IAAIS,EAAeT,GAAe,QAAQ;AAAA,IAC9C,MAAM;AAAA,EACd,CAAK;AAAA,EACD,QAAQA;AACZ,CAAC,GACG6T,KAAkC,IAAIjU,EAAc;AAAA,EACpD,KAAK,IAAI0C,GAAc,CAAC;AAAA,EACxB,WAAWzC;AAAAA,EACX,aAAaA;AAAAA,EACb,eAAeA;AAAAA,EACf,YAAYA;AAAAA,EACZ,QAAQ,IAAIS,EAAasT,IAAkC,WAAW;AAC1E,CAAC;AACDC,GAAgC,UAAU,WAAW;AACjD,MAAI7b,IAAS,CAAA;AACb,WAAS3V,KAAS,KAAK,OAAO,CAAA2V,EAAO3V,EAAM,GAAG,IAAIA;AAClD,OAAK,SAAS2V;AAClB;AACA6b,GAAgC,YAAY,WAAW;AACnD,MAAI,CAAC,MAAM,QAAQ,KAAK,MAAM,GAAG;AAC7B,QAAI7b,IAAS,CAAA;AACb,aAAQxO,KAAO,KAAK,QAAO;AACvB,UAAInH,IAAQ,KAAK,OAAOmH,CAAG;AAC3B,MAAInH,KAAO2V,EAAO,KAAK;AAAA,QACnB,KAAKxO;AAAA,QACL,UAAU;AAAA,QACV,QAAQ,IAAIsqB,GAAuBH,GAA0CnqB,CAAG,GAAGnH,CAAK;AAAA,QACxF,QAAYsxB,GAA0CnqB,CAAG,EAAE,KAAKnH,CAAK;AAAA,MACrF,CAAa;AAAA,IACL;AACA,SAAK,SAAS2V;AAAA,EAClB;AACA,OAAK,MAAM,QACX,KAAK,YAAY,KAAK,OAAO;AAC7B,MAAI+b,IAAkB,KAAK,MAAM,KAAK,IAAI,KAAK,SAAS,IAAI,KAAK,GAAG,GAChEC,IAAc,KAAK,IAAI,GAAGD,CAAe;AAC7C,OAAK,cAAcC,IAAc,IACjC,KAAK,gBAAgB,KAAK,IAAIA,CAAW,IAAI,KAAK,KAClD,KAAK,aAAa,KAAK,YAAY,KAAK,KAAK;AACjD;AACA,IAAIC,KAA2CJ;AAK/C,SAASK,GAA0C/8B,GAAKg9B,GAAK;AACzD,MAAI/zB,IAAM,GACNxD,IAAMzF,EAAI,SAAS;AACvB,SAAMiJ,KAAOxD,KAAI;AACb,QAAIutB,IAAM/pB,IAAMxD,KAAO,GACnB4B,IAAM21B,EAAIh9B,EAAIgzB,CAAG,CAAC;AACtB,QAAI3rB,IAAM,EAAG,CAAA5B,IAAMutB,IAAM;AAAA,aAChB3rB,IAAM,EAAG,CAAA4B,IAAM+pB,IAAM;AAAA,QACzB,QAAOA;AAAA,EAChB;AACA,SAAO;AACX;AACA,SAASiK,GAA0ClvB,GAAOxN,GAAK;AAC3D,MAAI4J,IAAQ,CAAA;AACZ,SAAM4D,IAAQxN,IAAI,CAAA4J,EAAM,KAAK4D,GAAO;AACpC,SAAO5D;AACX;AACA,MAAM+yB,KAA4C,IAAI,YAAY,OAAO,GAEnEC,KAA8B,oEAC9BC,KAA+B,IAAI,WAAW,GAAG;AACvD,SAAQ79B,IAAI,GAAGA,IAAI49B,GAA4B,QAAQ59B,IAAI,CAAA69B,GAA6BD,GAA4B,WAAW59B,CAAC,CAAC,IAAIA;AACrI,SAAS89B,GAA0Cv7B,GAAQ;AACvD,MAAIw7B,IAAex7B,EAAO,SAAS;AACnC,EAAIA,EAAOA,EAAO,SAAS,CAAC,MAAM,QAC9Bw7B,KACIx7B,EAAOA,EAAO,SAAS,CAAC,MAAM,OAAKw7B;AAE3C,MAAIn1B,IAAQ,IAAI,WAAWm1B,CAAY,GACnCtmB,IAAI;AACR,WAAQzX,IAAI,GAAGC,IAAMsC,EAAO,QAAQvC,IAAIC,GAAKD,KAAK,GAAE;AAChD,QAAIg+B,IAAWH,GAA6Bt7B,EAAO,WAAWvC,CAAC,CAAC,GAC5Di+B,IAAWJ,GAA6Bt7B,EAAO,WAAWvC,IAAI,CAAC,CAAC,GAChEk+B,IAAWL,GAA6Bt7B,EAAO,WAAWvC,IAAI,CAAC,CAAC,GAChEm+B,IAAWN,GAA6Bt7B,EAAO,WAAWvC,IAAI,CAAC,CAAC;AACpE,IAAA4I,EAAM6O,GAAG,IAAIumB,KAAY,IAAIC,KAAY,GACzCr1B,EAAM6O,GAAG,KAAKwmB,IAAW,OAAO,IAAIC,KAAY,GAChDt1B,EAAM6O,GAAG,KAAKymB,IAAW,MAAM,IAAIC,IAAW;AAAA,EAClD;AACA,SAAOv1B;AACX;AAKA,MAAMw1B,GAAyC;AAAA,EAC3C,aAAaC,GAAWC,GAAO;AAC3B,aAAS,CAACxT,GAAYC,CAAU,KAAKuT,EAAM,UAASC,KAAQF,EAAU;AAClE,UAAIE,EAAK,eAAezT,KAAcyT,EAAK,eAAexT,EAAY,QAAOwT,EAAK;AAEtF,WAAO;AAAA,EACX;AAAA,EACA,OAAOC,GAAWC,GAAmB;AAGjC,QAAI,KAAK,SAAU,CAAAD,IAAY,KAAK,SAAS,IAAIA,CAAS,KAAKA;AAAA,aACtDC,GAAmB;AACxB,UAAIpL,IAAM,KAAK,qBAAqBmL,GAAWC,CAAiB;AAChE,UAAIpL,EAAK,QAAOA;AAAA,IACpB;AACA,QAAIkL,IAAO,KAAK;AAChB,YAAOA,EAAK,SAAO;AAAA,MACf,KAAK;AACD,eAAOA,EAAK,QAAQ,IAAIC,CAAS,KAAK;AAAA,MAC1C,KAAK,GACD;AACI,YAAI90B,IAAM,GACNxD,IAAMq4B,EAAK,WAAW;AAC1B,eAAM70B,KAAOxD,KAAI;AACb,cAAIutB,IAAM/pB,IAAMxD,KAAO;AACvB,cAAIs4B,IAAYD,EAAK,UAAU,IAAI9K,CAAG,EAAG,CAAAvtB,IAAMutB,IAAM;AAAA,mBAC5C+K,IAAYD,EAAK,QAAQ,IAAI9K,CAAG,EAAG,CAAA/pB,IAAM+pB,IAAM;AAAA,eACnD;AACD,gBAAIiL,IAAcH,EAAK,cAAc,IAAI9K,CAAG,GACxCJ;AACJ,gBAAIqL,MAAgB,EAAG,CAAArL,IAAMmL,IAAYD,EAAK,QAAQ,IAAI9K,CAAG;AAAA,iBACxD;AACD,kBAAIjlB,IAAQkwB,IAAc,KAAKF,IAAYD,EAAK,UAAU,IAAI9K,CAAG,MAAM8K,EAAK,WAAW9K;AACvF,cAAAJ,IAAMkL,EAAK,gBAAgB,IAAI/vB,CAAK,KAAK,GACrC6kB,MAAQ,MAAGA,KAAOkL,EAAK,QAAQ,IAAI9K,CAAG;AAAA,YAC9C;AACA,mBAAOJ,IAAM;AAAA,UACjB;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,MACJ,KAAK;AACD,cAAM,IAAI,MAAM,qBAAqB;AAAA,MACzC,KAAK;AAAA,MACL,KAAK;AACD,eAAOkL,EAAK,aAAa,IAAIC,IAAYD,EAAK,SAAS,KAAK;AAAA,MAChE,KAAK;AAAA,MACL,KAAK,IACD;AACI,YAAI70B,IAAM,GACNxD,IAAMq4B,EAAK,UAAU;AACzB,eAAM70B,KAAOxD,KAAI;AACb,cAAIutB,IAAM/pB,IAAMxD,KAAO,GACnBy4B,IAAQJ,EAAK,OAAO,IAAI9K,CAAG;AAC/B,cAAI+K,IAAYG,EAAM,cAAe,CAAAz4B,IAAMutB,IAAM;AAAA,mBACxC+K,IAAYG,EAAM,YAAa,CAAAj1B,IAAM+pB,IAAM;AAAA;AAEhD,mBAAI8K,EAAK,YAAY,KAAWI,EAAM,WAAWH,IAAYG,EAAM,iBACvDA,EAAM;AAAA,QAE1B;AACA,eAAO;AAAA,MACX;AAAA,MACJ,KAAK;AACD,cAAM,IAAI,MAAM,sBAAsB;AAAA,MAC1C;AACI,cAAM,IAAI,MAAM,uBAAuBJ,EAAK,OAAO,EAAE;AAAA,IACrE;AAAA,EACI;AAAA,EACA,qBAAqBC,GAAWC,GAAmB;AAC/C,QAAI,CAAC,KAAK,IAAK,QAAO;AACtB,QAAIG,IAAY,KAAK,IAAI,aAAa,QAAO,GACzC5+B,IAAQw9B,GAA2CoB,GAAW,CAAC55B,MAAIy5B,IAAoBz5B,EAAE,WAAW,GACpG65B,IAAMD,EAAU5+B,CAAC;AAErB,WADIA,MAAM,MAAM6+B,EAAI,eAAY7+B,IAAQw9B,GAA2CqB,EAAI,YAAY,CAAC75B,MAAIw5B,IAAYx5B,EAAE,oBAAoB,KAAKw5B,IAAYx5B,EAAE,oBAAoBA,EAAE,kBAAkB,IAAI,CAAC,IACtMhF,MAAM,MAAM6+B,EAAI,kBAChB7+B,IAAQw9B,GAA2CqB,EAAI,eAAe,CAAC75B,MAAIw5B,IAAYx5B,EAAE,YAAY,GACjGhF,MAAM,MAAW6+B,EAAI,cAAc7+B,CAAC,EAAE,UAEvC;AAAA,EACX;AAAA,EACA,kBAAkB;AACd,QAAIu+B,IAAO,KAAK;AAChB,YAAOA,EAAK,SAAO;AAAA,MACf,KAAK;AACD,eAAWb,GAA2C,GAAGa,EAAK,QAAQ,MAAM;AAAA,MAChF,KAAK,GACD;AACI,YAAIz2B,IAAM,CAAA,GACNg3B,IAAWP,EAAK,QAAQ,QAAO;AACnC,iBAAQv+B,IAAI,GAAGA,IAAI8+B,EAAS,QAAQ9+B,KAAI;AACpC,cAAI6jB,IAAOib,EAAS9+B,CAAC,IAAI,GACrBe,IAAQw9B,EAAK,UAAU,IAAIv+B,CAAC;AAChC,UAAA8H,EAAI,KAAK,GAAO41B,GAA2C38B,GAAO8iB,CAAI,CAAC;AAAA,QAC3E;AACA,eAAO/b;AAAA,MACX;AAAA,MACJ,KAAK;AACD,cAAM,IAAI,MAAM,qBAAqB;AAAA,MACzC,KAAK;AAAA,MACL,KAAK;AACD,eAAW41B,GAA2Ca,EAAK,WAAWA,EAAK,YAAYA,EAAK,aAAa,MAAM;AAAA,MACnH,KAAK;AAAA,MACL,KAAK,IACD;AACI,YAAIz2B,IAAM,CAAA;AACV,iBAAS62B,KAASJ,EAAK,OAAO,QAAO,EAAG,CAAAz2B,EAAI,KAAK,GAAO41B,GAA2CiB,EAAM,eAAeA,EAAM,cAAc,CAAC,CAAC;AAC9I,eAAO72B;AAAA,MACX;AAAA,MACJ,KAAK;AACD,cAAM,IAAI,MAAM,sBAAsB;AAAA,MAC1C;AACI,cAAM,IAAI,MAAM,uBAAuBy2B,EAAK,OAAO,EAAE;AAAA,IACrE;AAAA,EACI;AAAA,EACA,mBAAmBlL,GAAK;AACpB,QAAIkL,IAAO,KAAK;AAChB,YAAOA,EAAK,SAAO;AAAA,MACf,KAAK,GACD;AACI,YAAIz2B,IAAM,CAAA;AACV,iBAAQ9H,IAAI,GAAGA,IAAI,KAAKA,IAAI,CAAIu+B,EAAK,QAAQ,IAAIv+B,CAAC,MAAMqzB,KAAKvrB,EAAI,KAAK9H,CAAC;AACvE,eAAO8H;AAAA,MACX;AAAA,MACJ,KAAK,GACD;AACI,YAAIA,IAAM,CAAA;AACV,iBAAQ9H,IAAI,GAAGA,IAAIu+B,EAAK,UAAUv+B,KAAI;AAClC,cAAIgB,IAAMu9B,EAAK,QAAQ,IAAIv+B,CAAC,GACxBe,IAAQw9B,EAAK,UAAU,IAAIv+B,CAAC,GAC5B0+B,IAAcH,EAAK,cAAc,IAAIv+B,CAAC,GACtCgS,IAAQusB,EAAK,QAAQ,IAAIv+B,CAAC;AAC9B,mBAAQoC,IAAIrB,GAAOqB,KAAKpB,GAAKoB,KAAI;AAC7B,gBAAI28B,IAAI;AACR,gBAAIL,MAAgB,EAAG,CAAAK,IAAI38B,IAAI4P;AAAA,iBAC1B;AACD,kBAAIxD,IAAQkwB,IAAc,KAAKt8B,IAAIrB,MAAUw9B,EAAK,WAAWv+B;AAC7D,cAAA++B,IAAIR,EAAK,gBAAgB,IAAI/vB,CAAK,KAAK,GACnCuwB,MAAM,MAAGA,KAAK/sB;AAAA,YACtB;AACA,YAAI+sB,MAAM1L,KAAKvrB,EAAI,KAAK1F,CAAC;AAAA,UAC7B;AAAA,QACJ;AACA,eAAO0F;AAAA,MACX;AAAA,MACJ,KAAK,IACD;AACI,YAAIA,IAAM,CAAA;AACV,iBAAS62B,KAASJ,EAAK,OAAO,QAAO,EAAG,CAAIlL,KAAOsL,EAAM,WAAWtL,KAAOsL,EAAM,WAAWA,EAAM,cAAcA,EAAM,kBAAgB72B,EAAI,KAAK62B,EAAM,iBAAiBtL,IAAMsL,EAAM,QAAQ;AAC1L,eAAO72B;AAAA,MACX;AAAA,MACJ,KAAK,IACD;AACI,YAAIA,IAAM,CAAA;AACV,iBAAS62B,KAASJ,EAAK,OAAO,QAAO,EAAG,CAAIlL,MAAQsL,EAAM,WAAS72B,EAAI,KAAK,GAAO41B,GAA2CiB,EAAM,eAAeA,EAAM,cAAc,CAAC,CAAC;AACzK,eAAO72B;AAAA,MACX;AAAA,MACJ;AACI,cAAM,IAAI,MAAM,uBAAuBy2B,EAAK,OAAO,EAAE;AAAA,IACrE;AAAA,EACI;AAAA,EACA,YAAYF,GAAU;AAwClB,QAtCA,KAAK,WAAW,MAChB,KAAK,OAAO,KAAK,aAAaA,GAAW;AAAA;AAAA,MAErC;AAAA,QACI;AAAA,QACA;AAAA,MAChB;AAAA,MACY;AAAA,QACI;AAAA,QACA;AAAA,MAChB;AAAA,MACY;AAAA,QACI;AAAA,QACA;AAAA,MAChB;AAAA;AAAA,MAEY;AAAA,QACI;AAAA,QACA;AAAA,MAChB;AAAA,MACY;AAAA,QACI;AAAA,QACA;AAAA,MAChB;AAAA,MACY;AAAA,QACI;AAAA,QACA;AAAA,MAChB;AAAA,MACY;AAAA,QACI;AAAA,QACA;AAAA,MAChB;AAAA,MACY;AAAA,QACI;AAAA,QACA;AAAA,MAChB;AAAA,IACA,CAAS,GAEG,CAAC,KAAK,KAAM,UAASE,KAAQF,EAAU,QAAO;AAC9C,UAAIj6B,IAAeymB,GAA2C0T,EAAK,YAAYA,EAAK,YAAYA,EAAK,MAAM,WAAW,CAAC,GACnH/S,IAAcF,GAA2ClnB,CAAQ;AACrE,MAAIonB,MACA,KAAK,OAAO+S,EAAK,OACjB,KAAK,WAAW/S;AAAA,IAExB;AACA,QAAI,CAAC,KAAK,KAAM,OAAM,IAAI,MAAM,uCAAuC;AACvE,SAAK,MAAM,KAAK,aAAa6S,GAAW;AAAA,MACpC;AAAA,QACI;AAAA,QACA;AAAA,MAChB;AAAA,IACA,CAAS,GACG,KAAK,OAAO,KAAK,IAAI,YAAY,OAAI,KAAK,MAAM;AAAA,EACxD;AACJ;AACIW,GAAW;AAAA,EACPpW;AACR,GAAGwV,GAAyC,WAAW,mBAAmB,IAAI;AAC1EY,GAAW;AAAA,EACPpW;AACR,GAAGwV,GAAyC,WAAW,sBAAsB,IAAI;AAIjF,MAAMa,GAAyC;AAAA,EAC3C,QAAQC,GAAQC,GAAW;AACvB,aAAQC,IAAa,GAAGA,IAAaF,EAAO,SAAS,GAAGE,KAAa;AACjE,UAAI7jB,IAAO2jB,EAAOE,CAAU,EAAE,IAC1BC,IAAQH,EAAOE,IAAa,CAAC,EAAE;AACnC,MAAAD,EAAUC,CAAU,EAAE,YAAY,KAAK,WAAW7jB,GAAM8jB,CAAK;AAAA,IACjE;AAAA,EACJ;AAAA,EACA,WAAW9jB,GAAM8jB,GAAO;AACpB,QAAIv3B,IAAM;AACV,aAAS6D,KAAS,KAAK,KAAK,QAAO;AAC/B,UAAIA,EAAM,SAAS,YAAa;AAChC,cAAOA,EAAM,SAAO;AAAA,QAChB,KAAK;AACD,cAAI,CAACA,EAAM,SAAS,WAAY;AAChC;AAAA,QACJ,KAAK;AACD,cAAIA,EAAM,SAAS,YAAYA,EAAM,SAAS,UAAW;AACzD;AAAA,QACJ;AACI,gBAAM,IAAI,MAAM,qCAAqCA,EAAM,OAAO,EAAE;AAAA,MACxF;AACY,UAAIlF,IAAM,GACNvE,IAAIyJ,EAAM;AACd,cAAOA,EAAM,QAAM;AAAA,QACf,KAAK;AACD,cAAI2zB,IAAc9B,GAA2Ct7B,EAAE,OAAO,SAASq9B,GAAM;AACjF,mBAAOhkB,IAAOgkB,EAAK,QAAQF,IAAQE,EAAK;AAAA,UAC5C,CAAC;AACD,UAAID,KAAW,MAAG74B,IAAMvE,EAAE,MAAMo9B,CAAO,EAAE;AACzC;AAAA,QACJ,KAAK;AACD,cAAIE,IAAa,GAAGC,IAAc;AAClC,UAAIlkB,KAAQrZ,EAAE,UAAU,cAAcqZ,IAAOrZ,EAAE,UAAU,aAAaA,EAAE,UAAU,UAASs9B,IAAat9B,EAAE,UAAU,QAAQqZ,IAAOrZ,EAAE,UAAU,UAAU,IACpJs9B,IAAat9B,EAAE,MAAM,KACtBm9B,KAASn9B,EAAE,WAAW,cAAcm9B,IAAQn9B,EAAE,WAAW,aAAaA,EAAE,WAAW,YAASu9B,IAAcv9B,EAAE,WAAW,QAAQm9B,IAAQn9B,EAAE,WAAW,UAAU;AAClK,cAAIsM,KAASgxB,IAAaC,IAAcv9B,EAAE,MAAM,OAAO;AACvD,UAAAuE,IAAMvE,EAAE,MAAM,OAAO,IAAIsM,CAAK;AAC9B;AAAA,QACJ,KAAK;AACD,cAAI+M,KAAQrZ,EAAE,cAAcm9B,KAASn9B,EAAE,WAAY,QAAO;AAC1D,UAAAuE,IAAMvE,EAAE,UAAUA,EAAE,UAAUA,EAAE,UAAUqZ,CAAI,IAAIrZ,EAAE,kBAAkBA,EAAE,WAAWm9B,CAAK,CAAC,CAAC;AAC1F;AAAA,QACJ;AACI,gBAAM,IAAI,MAAM,wCAAwC1zB,EAAM,MAAM,EAAE;AAAA,MAC1F;AAGY,MAAIA,EAAM,SAAS,WAAU7D,IAAMrB,IAC9BqB,KAAOrB;AAAA,IAChB;AACA,WAAOqB;AAAA,EACX;AAAA,EACA,YAAY2gB,GAAK;AACb,SAAK,OAAOA,EAAK;AAAA,EACrB;AACJ;AAIA,MAAMiX,GAAyC;AAAA,EAC3C,eAAeR,GAAQC,GAAW;AAE9B,QAAIQ,IAAe,GACfC,IAAa;AACjB,aAAQpxB,IAAQ,GAAGA,IAAQ0wB,EAAO,QAAQ1wB;AAEtC,MADY0wB,EAAO1wB,CAAK,EACd,SAAQoxB,IAAapxB,KAEvBmxB,MAAiBC,KAAY,KAAK,gBAAgBV,GAAQC,GAAWQ,GAAcC,CAAU,GACjGD,IAAeC,IAAapxB;AAGpC,WAAImxB,MAAiBC,KAAY,KAAK,gBAAgBV,GAAQC,GAAWQ,GAAcC,CAAU,GAC1FT;AAAA,EACX;AAAA,EACA,gBAAgBD,GAAQC,GAAWQ,GAAcC,GAAY;AACzD,QAAI7tB,IAAOmtB,EAAOS,CAAY,GAC1BE,IAAU9tB,EAAK,KAAK,KAAI;AAE5B,IAAIA,EAAK,WAAW,SAAS,MAC7B8tB,EAAQ,SAAS9tB,EAAK,WAAW,SAAS,KAAK8tB,EAAQ,QAAQ9tB,EAAK,WAAW;AAC/E,QAAI+tB,IAAU,CAACX,EAAUQ,CAAY,EAAE,UACnCI,IAAU,GACVC,IAAO,KAAK,KAAK,aAAa;AAElC,aAAQxxB,IAAQmxB,IAAe,GAAGnxB,KAASoxB,GAAYpxB,KAAQ;AAC3D,UAAIyxB,IAAOf,EAAO1wB,CAAK,GACnB0xB,IAAUD,EAAK,MACfE,IAAWhB,EAAU3wB,CAAK,GAC1B4xB,IAAiB,KAAK,kBAAkBH,EAAK,WAAW,CAAC,CAAC;AAC9D,UAAIG,MAAmB,iBAAiB;AAGpC,gBAFAD,EAAS,UAAUA,EAAS,UAAU,GAE/BC,GAAc;AAAA,UACjB,KAAK;AAAA,UACL,KAAK;AAED,YAAAD,EAAS,WAAWN,EAAQ,OAAOK,EAAQ,QAAQ,IAAIA,EAAQ;AAC/D;AAAA,UACJ,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAED,YAAAC,EAAS,WAAWN,EAAQ,OAAOK,EAAQ;AAC3C;AAAA,UACJ,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAED,YAAAC,EAAS,WAAWN,EAAQ,OAAOK,EAAQ,QAAQA,EAAQ;AAC3D;AAAA,UACJ;AAEI,YAAAC,EAAS,WAAWN,EAAQ,QAAQA,EAAQ,QAAQK,EAAQ,SAAS,IAAIA,EAAQ;AAAA,QACzG;AAEgB,gBAAOE,GAAc;AAAA,UACjB,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAED,aAAIA,MAAmB,yBAAyBA,MAAmB,sBAAkBP,EAAQ,QAAQG,IACrGG,EAAS,UAAU,CAACN,EAAQ,OAAOK,EAAQ,MAC3CL,EAAQ,QAAQK,EAAQ;AACxB;AAAA,UACJ,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAED,aAAIE,MAAmB,oBAAoBA,MAAmB,4BAAwBP,EAAQ,QAAQG,IACtGG,EAAS,UAAUN,EAAQ,OAAOK,EAAQ,MAC1CL,EAAQ,QAAQK,EAAQ;AACxB;AAAA,QACxB;AACgB,QAAAC,EAAS,WAAWA,EAAS,WAAW,GACxCA,EAAS,WAAWL,GACpBK,EAAS,WAAWJ;AAAA,MACxB;AACI,QAAAD,KAAWK,EAAS,UACpBJ,KAAWI,EAAS;AAAA,IAE5B;AAAA,EAEJ;AAAA,EACA,kBAAkBn4B,GAAW;AACzB,QAAIo4B,IAAqBC,GAA0Br4B,CAAS;AAE5D,SAAKA,IAAY,UAAU;AACvB,UAAIo4B,MAAmB,gBAAiB,SAAOp4B,GAAS;AAAA,QACpD,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD,iBAAO;AAAA,QACX,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD,iBAAO;AAAA,QACX,KAAK;AACD,iBAAO;AAAA,MAC3B;AAAA,eACqBA,MAAc,KAAQ,QAAO;AAAA;AAE1C,YAAOo4B,GAAc;AAAA;AAAA,MAEjB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD;AAAA;AAAA,MAEJ,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA;AAAA,MAEX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA;AAAA,MAEX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA;AAAA,MAEX,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,IACvB;AACQ,WAAOA;AAAA,EACX;AAAA,EACA,YAAY3X,GAAK;AACb,SAAK,OAAOA;AAAA,EAChB;AACJ;AAKI,MAAM6X,GAAyC;AAAA;AAAA;AAAA;AAAA;AAAA,EAI7C,IAAI,QAAQ;AACV,WAAO,KAAK,OAAO,KAAK;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAIE,IAAI,SAAS;AACX,WAAO,KAAK,OAAO,KAAK;AAAA,EAC5B;AAAA,EACA,SAASt7B,GAAGC,GAAG;AACX,IAAI,KAAK,IAAID,CAAC,MAAM,UACZA,IAAI,KAAK,SAAM,KAAK,OAAOA,IAC3BA,IAAI,KAAK,SAAM,KAAK,OAAOA,KAE/B,KAAK,IAAIC,CAAC,MAAM,UACZA,IAAI,KAAK,SAAM,KAAK,OAAOA,IAC3BA,IAAI,KAAK,SAAM,KAAK,OAAOA;AAAA,EAEvC;AAAA,EACA,OAAO;AACH,WAAO,IAAIq7B,GAAyC,KAAK,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI;AAAA,EAClG;AAAA,EACA,YAAYC,IAAO,OAAUC,IAAO,OAAUC,IAAO,QAAWC,IAAO,QAAU;AAI7E,SAAK,OAAOH,GAIZ,KAAK,OAAOC,GAIZ,KAAK,OAAOC,GAIZ,KAAK,OAAOC;AAAA,EAChB;AACJ;AAOA,MAAMC,KAAwC;AAAA,EAC1C,oBAAoB;AAAA,EACpB,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AAAA,EACV,OAAO;AAAA,EACP,WAAW;AAAA,EACX,OAAO;AAAA,EACP,SAAS;AAAA,IACL;AAAA,IACA;AAAA,EACR;AAAA,EACI,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,qBAAqB;AAAA,EACrB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,IACR;AAAA,IACA;AAAA,EACR;AAAA,EACI,SAAS;AAAA,EACT,UAAU;AAAA,EACV,sBAAsB;AAAA,EACtB,SAAS;AAAA,EACT,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AAAA,IACN;AAAA,IACA;AAAA,EACR;AAAA,EACI,UAAU;AAAA,IACN;AAAA,IACA;AAAA,EACR;AAAA,EACI,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,cAAc;AAAA,EACd,sBAAsB;AAAA,EACtB,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,IACL;AAAA,IACA;AAAA,EACR;AAAA,EACI,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,KAAK;AAAA,EACL,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,WAAW;AAAA,IACP;AAAA,IACA;AAAA,EACR;AAAA,EACI,MAAM;AAAA,EACN,WAAW;AAAA,EACX,KAAK;AAAA,EACL,cAAc;AAAA,EACd,SAAS;AAAA,IACL;AAAA,IACA;AAAA,EACR;AAAA,EACI,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,KAAK;AAAA,EACL,OAAO;AAAA,EACP,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,IACH;AAAA,IACA;AAAA,EACR;AAAA,EACI,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,UAAU;AAAA,EACV,uBAAuB;AAAA,EACvB,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,wBAAwB;AAAA,EACxB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,cAAc;AAAA,EACd,WAAW;AAAA,EACX,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,OAAO;AAAA,IACH;AAAA,IACA;AAAA,EACR;AAAA,EACI,UAAU;AAAA,EACV,QAAQ;AAAA,IACJ;AAAA,IACA;AAAA,EACR;AAAA,EACI,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,KAAK;AAAA,EACL,aAAa;AAAA,EACb,aAAa;AAAA,EACb,WAAW;AAAA,EACX,IAAI;AAAA,EACJ,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AACb,GACMC,KAAyC,CAAA;AAC/C,SAAQC,KAAUF,IAAsC;AACpD,MAAI7tB,IAAM6tB,GAAsCE,CAAM;AACtD,MAAI,MAAM,QAAQ/tB,CAAG,EAAG,UAAS,KAAKA,EAAI,CAAA8tB,GAAuC,CAAC,IAAIC;AAAA,MACjF,CAAAD,GAAuC9tB,CAAG,IAAI+tB;AACvD;AAIA,SAASC,GAA0ChuB,GAAK;AACpD,SAAO8tB,GAAuC9tB,CAAG;AACrD;AACA,SAASiuB,GAA0Cz8B,GAAQ;AACvD,MAAIrE,IAAMqE,EAAO,QACb0Z,IAAM;AACV,SAAMA,IAAM/d,KAAI;AACZ,QAAIF,IAAOuE,EAAO,WAAW0Z,GAAK;AAElC,QAAI,SAAUje,KAAQA,KAAQ,SAAUie,IAAM/d,GAAK;AAC/C,UAAIsiB,IAAOje,EAAO,WAAW0Z,CAAG;AAEhC,MAAI,SAAUuE,KAAQA,KAAQ,UAC1BvE,KACAje,MAASA,IAAO,SAAU,OAAOwiB,IAAO,QAAS;AAAA,IAEzD;AACA,QAAIse,IAAaG,GAAkBjhC,CAAI;AACvC,QAAI8gC,MAAW,YAAYA,MAAW,eAAeA,MAAW,UAAW,QAAOF,GAAsCE,CAAM;AAAA,EAClI;AACA,SAAOF,GAAsC;AACjD;AACA,SAASM,GAA0Cz4B,GAAY;AAC3D,WAAQxI,IAAI,GAAGA,IAAIwI,EAAW,QAAQxI,KAAI;AACtC,QAAIgI,IAAYQ,EAAWxI,CAAC,GACxB6gC,IAAaG,GAAkBh5B,CAAS;AAC5C,QAAI64B,MAAW,YAAYA,MAAW,eAAeA,MAAW,UAAW,QAAOF,GAAsCE,CAAM;AAAA,EAClI;AACA,SAAOF,GAAsC;AACjD;AAEA,MAAMO,KAA4B;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA;AAAA,EAEN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA;AACV;AACA,SAASC,GAA0CN,GAAQ;AACvD,SAAIK,GAA0BL,CAAM,IAAU,QACvC;AACX;AAGA,MAAMO,GAAyC;AAAA;AAAA;AAAA;AAAA;AAAA,EAIzC,IAAI,eAAe;AACjB,QAAI/xB,IAAQ;AACZ,aAAS8wB,KAAY,KAAK,UAAU,CAAA9wB,KAAS8wB,EAAS;AACtD,WAAO9wB;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAIC,IAAI,gBAAgB;AACjB,QAAIgyB,IAAS;AACb,aAASlB,KAAY,KAAK,UAAU,CAAAkB,KAAUlB,EAAS;AACvD,WAAOkB;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAIC,IAAI,OAAO;AACR,QAAIC,IAAO,IAAQhB,MACft7B,IAAI,GACJC,IAAI;AACR,aAAQuJ,IAAQ,GAAGA,IAAQ,KAAK,OAAO,QAAQA,KAAQ;AACnD,UAAI4kB,IAAQ,KAAK,OAAO5kB,CAAK,GACzBiJ,IAAI,KAAK,UAAUjJ,CAAK,GACxB1K,IAAIsvB,EAAM;AACd,MAAAkO,EAAK,SAASx9B,EAAE,OAAOkB,IAAIyS,EAAE,SAAS3T,EAAE,OAAOmB,IAAIwS,EAAE,OAAO,GAC5D6pB,EAAK,SAASx9B,EAAE,OAAOkB,IAAIyS,EAAE,SAAS3T,EAAE,OAAOmB,IAAIwS,EAAE,OAAO,GAC5DzS,KAAKyS,EAAE,UACPxS,KAAKwS,EAAE;AAAA,IACX;AACA,WAAO6pB;AAAA,EACX;AAAA,EACA,YAAYpC,GAAQqC,GAAUV,GAAQ1U,GAAUqV,GAAU;AA6BtD,QAzBA,KAAK,SAAStC,GAId,KAAK,YAAY,MAIjB,KAAK,SAAS2B,GAKd,KAAK,WAAW1U,KAAY,MAK5B,KAAK,YAAYqV,KAAaL,GAA0CN,CAAM,GAK9E,KAAK,WAAW,CAAA,GAEZ,MAAM,QAAQU,CAAQ,EAAG,UAASzuB,KAAOyuB,EAAS,MAAK,SAASzuB,CAAG,IAAI;AAAA,QACtE,CAAI,OAAOyuB,KAAa,aAAU,KAAK,WAAWA;AAAA,EAC3D;AACJ;AAKI,MAAME,GAAyC;AAAA,EAC/C,YAAYC,IAAW,GAAGC,IAAW,GAAG7B,IAAU,GAAGC,IAAU,GAAE;AAI7D,SAAK,WAAW2B,GAIhB,KAAK,WAAWC,GAIhB,KAAK,UAAU7B,GAIf,KAAK,UAAUC;AAAA,EACnB;AACJ;AAMA,MAAM6B,KAAiC;AAAA,EACnC,wBAAwB;AAAA,IACpB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,iBAAiB;AAAA,EACzB;AAAA,EACI,WAAW;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,eAAe;AAAA;AAAA,IAEf,eAAe;AAAA,IACf,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EAC7B;AAAA,EACI,mBAAmB;AAAA,IACf,MAAM;AAAA,IACN,WAAW;AAAA,IACX,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,SAAS;AAAA,EACjB;AAAA,EACI,YAAY;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOI,sBAAsB;AAAA,IAClB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,yBAAyB;AAAA,EACjC;AAAA,EACI,yBAAyB;AAAA,IACrB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,yBAAyB;AAAA,EACjC;AAAA,EACI,eAAe;AAAA,IACX,MAAM;AAAA,IACN,WAAW;AAAA,IACX,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,EAC7B;AAAA,EACI,YAAY;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,oBAAoB;AAAA,IACpB,kBAAkB;AAAA;AAAA;AAAA,IAGlB,iBAAiB;AAAA,EACzB;AAAA,EACI,YAAY;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,EAC7B;AAAA,EACI,kBAAkB;AAAA,IACd,MAAM;AAAA,IACN,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV,qBAAqB;AAAA,EAC7B;AAAA,EACI,WAAW;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,EAC3B;AAAA,EACI,uBAAuB;AAAA,IACnB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,gBAAgB;AAAA,EACxB;AAAA,EACI,mBAAmB;AAAA,IACf,MAAM;AAAA,IACN,WAAW;AAAA;AAAA;AAAA,IAGX,aAAa;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAII,oBAAoB;AAAA,IAChB,MAAM;AAAA,IACN,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMX,mBAAmB;AAAA,EAC3B;AAAA,EACI,cAAc;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,IACV,cAAc;AAAA,IACd,UAAU;AAAA,IACV,mBAAmB;AAAA,IACnB,sBAAsB;AAAA,IACtB,aAAa;AAAA,EACrB;AAAA,EACI,uBAAuB;AAAA,IACnB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,cAAc;AAAA,EACtB;AAAA;AAAA,EAEI,kBAAkB;AAAA,IACd,MAAM;AAAA,IACN,WAAW;AAAA,IACX,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,IACd,cAAc;AAAA,EACtB;AAAA,EACI,cAAc;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,aAAa;AAAA,IACb,UAAU;AAAA,EAClB;AAAA,EACI,gBAAgB;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,uBAAuB;AAAA,IACvB,sBAAsB;AAAA,IACtB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,mBAAmB;AAAA,IACnB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,4BAA4B;AAAA,EACpC;AAAA,EACI,YAAY;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,EAC1B;AAAA,EACI,aAAa;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,EAC1B;AAAA,EACI,iBAAiB;AAAA,IACb,MAAM;AAAA,IACN,WAAW;AAAA,IACX,mBAAmB;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUI,YAAY;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,IACf,sBAAsB;AAAA,IACtB,kBAAkB;AAAA,IAClB,0BAA0B;AAAA,IAC1B,uBAAuB;AAAA,IACvB,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,uBAAuB;AAAA,IACvB,8BAA8B;AAAA,EACtC;AAAA,EACI,aAAa;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,eAAe;AAAA,IACf,kBAAkB;AAAA,EAC1B;AAAA,EACI,oBAAoB;AAAA,IAChB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,qBAAqB;AAAA,IACrB,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,EAC7B;AAAA,EACI,sBAAsB;AAAA,IAClB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,sBAAsB;AAAA,IACtB,0BAA0B;AAAA,IAC1B,wBAAwB;AAAA,EAChC;AAAA,EACI,UAAU;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA;AAAA;AAAA,IAGX,UAAU;AAAA,EAClB;AAAA,EACI,uBAAuB;AAAA,IACnB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,yBAAyB;AAAA,IACzB,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,EAC1B;AAAA,EACI,yBAAyB;AAAA,IACrB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,2BAA2B;AAAA,IAC3B,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,EAC5B;AAAA,EACI,2BAA2B;AAAA,IACvB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,0BAA0B;AAAA,IAC1B,2BAA2B;AAAA,EACnC;AAAA,EACI,gBAAgB;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA;AAAA;AAAA,IAGX,gBAAgB;AAAA,EACxB;AAAA,EACI,qBAAqB;AAAA,IACjB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,qBAAqB;AAAA,IACrB,sBAAsB;AAAA,EAC9B;AAAA,EACI,eAAe;AAAA,IACX,MAAM;AAAA,IACN,WAAW;AAAA,IACX,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,EAC3B;AAAA,EACI,uBAAuB;AAAA,IACnB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,uBAAuB;AAAA,IACvB,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,IACnB,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,IACvB,sBAAsB;AAAA,IACtB,sBAAsB;AAAA,IACtB,oBAAoB;AAAA,EAC5B;AAAA,EACI,sBAAsB;AAAA,IAClB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,sBAAsB;AAAA,IACtB,iBAAiB;AAAA,IACjB,2BAA2B;AAAA,EACnC;AAAA,EACI,WAAW;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,EAC7B;AAAA,EACI,WAAW;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,kBAAkB;AAAA,IAClB,oBAAoB;AAAA,IACpB,qBAAqB;AAAA,EAC7B;AAAA,EACI,aAAa;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,EACnB;AAAA,EACI,iBAAiB;AAAA,IACb,MAAM;AAAA,IACN,WAAW;AAAA,IACX,mBAAmB;AAAA,IACnB,sBAAsB;AAAA,IACtB,iBAAiB;AAAA,IACjB,mBAAmB;AAAA,EAC3B;AACA,GACMC,IAAgC,CAACl3B,GAAMm3B,MAAW;AAAA,EAChDF,GAA+Bj3B,CAAI,EAAE;AAAA,EACrCi3B,GAA+Bj3B,CAAI,EAAEm3B,CAAQ;AACrD,GACMC,KAAkC;AAAA,EACpC,MAAMF,EAA8B,aAAa,mBAAmB;AAAA,EACpE,MAAMA,EAA8B,aAAa,qBAAqB;AAAA,EACtE,MAAMA,EAA8B,aAAa,eAAe;AAAA,EAChE,MAAMA,EAA8B,aAAa,qBAAqB;AAAA,EACtE,MAAMA,EAA8B,aAAa,iBAAiB;AAAA,EAClE,MAAMA,EAA8B,aAAa,qBAAqB;AAAA,EACtE,MAAMA,EAA8B,aAAa,oBAAoB;AAAA,EACrE,MAAMA,EAA8B,aAAa,qBAAqB;AAAA,EACtE,MAAMA,EAA8B,aAAa,mBAAmB;AAAA,EACpE,MAAMA,EAA8B,aAAa,mBAAmB;AAAA,EACpE,MAAMA,EAA8B,aAAa,mBAAmB;AAAA,EACpE,MAAMA,EAA8B,aAAa,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUpE,MAAMA,EAA8B,uBAAuB,qBAAqB;AAAA,EAChF,MAAMA,EAA8B,wBAAwB,sBAAsB;AAAA,EAClF,MAAMA,EAA8B,6BAA6B,0BAA0B;AAAA,EAC3F,MAAMA,EAA8B,6BAA6B,0BAA0B;AAAA,EAC3F,MAAMA,EAA8B,wBAAwB,iBAAiB;AAAA,EAC7E,MAAMA,EAA8B,wBAAwB,2BAA2B;AAAA,EACvF,MAAMA,EAA8B,qBAAqB,SAAS;AAAA,EAClE,MAAMA,EAA8B,aAAa,qBAAqB;AAAA,EACtE,MAAMA,EAA8B,aAAa,oBAAoB;AAAA,EACrE,MAAMA,EAA8B,cAAc,oBAAoB;AAAA,EACtE,MAAMA,EAA8B,cAAc,kBAAkB;AAAA,EACpE,MAAMA,EAA8B,cAAc,iBAAiB;AAAA,EACnE,MAAMA,EAA8B,cAAc,iBAAiB;AAAA,EACnE,MAAMA,EAA8B,cAAc,kBAAkB;AAAA,EACpE,MAAMA,EAA8B,cAAc,kBAAkB;AAAA,EACpE,MAAMA,EAA8B,eAAe,kBAAkB;AAAA,EACrE,MAAMA,EAA8B,eAAe,eAAe;AAAA,EAClE,MAAMA,EAA8B,eAAe,kBAAkB;AAAA,EACrE,MAAMA,EAA8B,iBAAiB,oBAAoB;AAAA,EACzE,MAAMA,EAA8B,iBAAiB,mBAAmB;AAAA;AAAA,EAExE,MAAMA,EAA8B,kBAAkB,gBAAgB;AAAA,EACtE,MAAMA,EAA8B,cAAc,kBAAkB;AAAA,EACpE,MAAMA,EAA8B,cAAc,kBAAkB;AAAA,EACpE,MAAMA,EAA8B,sBAAsB,mBAAmB;AAAA;AAAA;AAAA,EAG7E,MAAMA,EAA8B,wBAAwB,sBAAsB;AAAA,EAClF,MAAMA,EAA8B,wBAAwB,yBAAyB;AAAA,EACrF,MAAMA,EAA8B,wBAAwB,yBAAyB;AAAA,EACrF,MAAMA,EAA8B,iBAAiB,mBAAmB;AAAA,EACxE,MAAMA,EAA8B,iBAAiB,qBAAqB;AAAA,EAC1E,MAAMA,EAA8B,oBAAoB,WAAW;AAAA,EACnE,MAAMA,EAA8B,oBAAoB,WAAW;AAAA,EACnE,MAAMA,EAA8B,oBAAoB,UAAU;AAAA,EAClE,MAAMA,EAA8B,eAAe,kBAAkB;AAAA,EACrE,MAAMA,EAA8B,eAAe,eAAe;AAAA,EAClE,MAAMA,EAA8B,eAAe,kBAAkB;AAAA,EACrE,MAAMA,EAA8B,eAAe,gBAAgB;AAAA,EACnE,MAAMA,EAA8B,eAAe,kBAAkB;AAAA,EACrE,MAAMA,EAA8B,eAAe,qBAAqB;AAAA,EACxE,MAAMA,EAA8B,kBAAkB,uBAAuB;AAAA,EAC7E,MAAMA,EAA8B,kBAAkB,sBAAsB;AAAA,EAC5E,MAAMA,EAA8B,kBAAkB,mBAAmB;AAAA,EACzE,MAAMA,EAA8B,kBAAkB,mBAAmB;AAAA,EACzE,MAAMA,EAA8B,kBAAkB,mBAAmB;AAAA,EACzE,MAAMA,EAA8B,kBAAkB,mBAAmB;AAAA,EACzE,MAAMA,EAA8B,kBAAkB,kBAAkB;AAAA,EACxE,MAAMA,EAA8B,kBAAkB,gBAAgB;AAAA,EACtE,MAAMA,EAA8B,kBAAkB,eAAe;AAAA,EACrE,MAAMA,EAA8B,kBAAkB,4BAA4B;AAAA,EAClF,MAAMA,EAA8B,YAAY,UAAU;AAAA,EAC1D,MAAMA,EAA8B,gBAAgB,aAAa;AAAA,EACjE,MAAMA,EAA8B,qBAAqB,aAAa;AAAA,EACtE,MAAMA,EAA8B,yBAAyB,iBAAiB;AAAA,EAC9E,MAAMA,EAA8B,yBAAyB,iBAAiB;AAAA,EAC9E,MAAMA,EAA8B,yBAAyB,mBAAmB;AAAA,EAChF,MAAMA,EAA8B,yBAAyB,kBAAkB;AAAA,EAC/E,MAAMA,EAA8B,yBAAyB,kBAAkB;AAAA,EAC/E,MAAMA,EAA8B,yBAAyB,iBAAiB;AAAA,EAC9E,MAAMA,EAA8B,yBAAyB,mBAAmB;AAAA,EAChF,MAAMA,EAA8B,yBAAyB,mBAAmB;AAAA,EAChF,MAAMA,EAA8B,yBAAyB,kBAAkB;AAAA,EAC/E,MAAMA,EAA8B,yBAAyB,iBAAiB;AAAA,EAC9E,MAAMA,EAA8B,yBAAyB,oBAAoB;AAAA,EACjF,MAAMA,EAA8B,yBAAyB,oBAAoB;AAAA,EACjF,MAAMA,EAA8B,yBAAyB,sBAAsB;AAAA,EACnF,MAAMA,EAA8B,yBAAyB,sBAAsB;AAAA,EACnF,MAAMA,EAA8B,yBAAyB,qBAAqB;AAAA,EAClF,MAAMA,EAA8B,yBAAyB,qBAAqB;AAAA,EAClF,MAAMA,EAA8B,yBAAyB,uBAAuB;AAAA,EACpF,MAAMA,EAA8B,yBAAyB,sBAAsB;AAAA,EACnF,MAAMA,EAA8B,yBAAyB,sBAAsB;AAAA,EACnF,MAAMA,EAA8B,yBAAyB,oBAAoB;AACrF;AAGA,SAAQ7hC,IAAI,GAAGA,KAAK,IAAIA,IAAI,CAAA+hC,GAAgC,KAAK,KAAK/hC,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI;AAAA,EACrF4hC,GAA+B,sBAAsB;AAAA,EACrD5hC;AACJ;AAEA,IAAIgiC,KAAmC,CAAA;AACvC,SAAQC,KAAMF,IAAgC;AAC1C,MAAIG,IAAMH,GAAgCE,CAAE;AAC5C,EAAID,GAAiCE,EAAI,CAAC,CAAC,KAAK,SAAMF,GAAiCE,EAAI,CAAC,CAAC,IAAI,CAAA,IACjGF,GAAiCE,EAAI,CAAC,CAAC,EAAEA,EAAI,CAAC,CAAC,IAAID;AACvD;AACA,SAASE,GAA0CZ,GAAU;AACzD,MAAIz5B,IAAM,CAAA;AACV,WAAQmmB,KAAKsT,GAAS;AAClB,QAAI;AACJ,KAAI,IAAIQ,GAAgC9T,CAAC,OACjCnmB,EAAI,EAAE,CAAC,CAAC,KAAK,SAAMA,EAAI,EAAE,CAAC,CAAC,IAAI,CAAA,IACnCA,EAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAIy5B,EAAStT,CAAC;AAAA,EAEpC;AACA,SAAOnmB;AACX;AAGA,SAASs6B,GAAwCC,GAAG;AAChD,MAAI,CAACn3B,GAAMo3B,CAAO,IAAID;AACtB,MAAI,MAAMn3B,CAAI,EAAG,KAAIq3B,IAAWX,GAA+B12B,CAAI,KAAK02B,GAA+B12B,CAAI,EAAE;AAAA,MACxG,KAAIq3B,IAAWr3B;AACpB,MAAI,MAAMo3B,CAAO,EAAG,KAAIE,IAAcZ,GAA+B12B,CAAI,KAAK02B,GAA+B12B,CAAI,EAAEo3B,CAAO;AAAA,MACrH,KAAIE,IAAcF;AACvB,SAAO;AAAA,IACHC;AAAA,IACAC;AAAA,EACR;AACA;AACA,SAASC,GAA0ClB,GAAU;AACzD,MAAIz5B,IAAM,CAAA;AACV,MAAI,MAAM,QAAQy5B,CAAQ,EAAG,UAAQtT,IAAI,GAAGA,IAAIsT,EAAS,QAAQtT,KAAI;AACjE,QAAI,GACAoU,IAAID,GAAwCb,EAAStT,CAAC,CAAC;AAC3D,KAAI,IAAI+T,GAAiCK,EAAE,CAAC,CAAC,KAAKL,GAAiCK,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,OAAGv6B,EAAI,CAAC,IAAI;AAAA,EAC7G;AAAA,WACS,OAAOy5B,KAAa,SAAU,UAAQr2B,KAAQq2B,GAAS;AAC5D,QAAImB,IAAUnB,EAASr2B,CAAI;AAC3B,aAAQo3B,KAAWI,GAAQ;AACvB,UAAI/xB,GACA0xB,IAAID,GAAwC;AAAA,QAC5Cl3B;AAAA,QACAo3B;AAAA,MAChB,CAAa;AACD,MAAII,EAAQJ,CAAO,MAAM3xB,IAAIqxB,GAAiCK,EAAE,CAAC,CAAC,KAAKL,GAAiCK,EAAE,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,OAAIv6B,EAAI6I,CAAC,IAAI;AAAA,IACnI;AAAA,EACJ;AACA,SAAO,OAAO,KAAK7I,CAAG;AAC1B;AAQA,MAAM66B,GAAyC;AAAA,EAC3C,OAAOvP,GAAO;AACV,YAAO,KAAK,MAAM,SAAO;AAAA,MACrB,KAAK;AACD,eAAO,KAAK,MAAM,OAAO,QAAQA,CAAK;AAAA,MAC1C,KAAK;AAAA,MACL,KAAK,GACD;AACI,YAAI1pB,IAAM,GACNxD,IAAM,KAAK,MAAM,mBAAmB,SAAS;AACjD,eAAMwD,KAAOxD,KAAI;AACb,cAAIutB,IAAM/pB,IAAMxD,KAAO,GACnB08B,IAAM,KAAK,MAAM,SAASnP,CAAG;AAEjC,cAAImP,EAAI,eAAe,MAAQ,QAAO;AACtC,cAAIxP,IAAQwP,EAAI,WAAY,CAAA18B,IAAMutB,IAAM;AAAA,mBAC/BL,IAAQwP,EAAI,UAAW,CAAAl5B,IAAM+pB,IAAM;AAAA;AAExC,mBAAI,KAAK,MAAM,YAAY,IAAUmP,EAAI,QAC7BA,EAAI,OAAOxP,IAAQwP,EAAI,UAAU;AAAA,QAErD;AACA,eAAO;AAAA,MACX;AAAA,MACJ,KAAK,GACD;AACI,YAAIl5B,IAAM,GACNxD,IAAM,KAAK,MAAM,mBAAmB,SAAS;AACjD,eAAMwD,KAAOxD,KAAI;AACb,cAAIutB,IAAM/pB,IAAMxD,KAAO,GACnB08B,IAAM,KAAK,MAAM,SAASnP,CAAG;AAEjC,cAAImP,EAAI,UAAU,MAAQ,QAAO;AACjC,cAAIxP,IAAQwP,EAAI,MAAO,CAAA18B,IAAMutB,IAAM;AAAA,mBAC1BL,IAAQwP,EAAI,MAAO,CAAAl5B,IAAM+pB,IAAM;AAAA,cACnC,QAAOmP,EAAI;AAAA,QACpB;AACA,eAAO;AAAA,MACX;AAAA,MACJ,KAAK;AACD,eAAO,KAAK,MAAM,OAAOxP,IAAQ,KAAK,MAAM,UAAU;AAAA,MAC1D;AACI,cAAM,IAAI,MAAM,gCAAgC,KAAK,MAAM,OAAO,EAAE;AAAA,IACpF;AAAA,EACI;AAAA,EACA,eAAeyP,GAAY;AACvB,QAAI/6B,IAAM,CAAA;AACV,YAAO,KAAK,MAAM,SAAO;AAAA,MACrB,KAAK;AAAA,MACL,KAAK;AACD,iBAASg7B,KAAW,KAAK,MAAM,SAAS,KAAI,KAAK,MAAM,YAAY,KAAKA,EAAQ,UAAUD,EAAY,CAAA/6B,EAAI,KAAK,GAAO41B,GAA2CoF,EAAQ,YAAYA,EAAQ,YAAY,CAAC,CAAC;AAAA;AAEvM,mBAAQt0B,IAAQ,GAAGA,IAAQs0B,EAAQ,OAAO,QAAQt0B,IAAQ,CAAIs0B,EAAQ,OAAOt0B,CAAK,MAAMq0B,KAAY/6B,EAAI,KAAKg7B,EAAQ,aAAat0B,CAAK;AAE3I;AAAA,MACJ,KAAK;AACD,iBAASs0B,KAAW,KAAK,MAAM,SAAS,CAAIA,EAAQ,UAAUD,KAAY/6B,EAAI,KAAKg7B,EAAQ,KAAK;AAChG;AAAA,MACJ,KAAK;AACD,iBAAQ9iC,IAAI,GAAGA,IAAI,KAAK,MAAM,OAAO,QAAQA,IAAI,CAAI,KAAK,MAAM,OAAOA,CAAC,MAAM6iC,KAAY/6B,EAAI,KAAK,KAAK,MAAM,aAAa9H,CAAC;AAC5H;AAAA,MACJ;AACI,cAAM,IAAI,MAAM,gCAAgC,KAAK,MAAM,OAAO,EAAE;AAAA,IACpF;AACQ,WAAO8H;AAAA,EACX;AAAA,EACA,YAAY6D,GAAM;AACd,SAAK,QAAQA;AAAA,EACjB;AACJ;AACIqzB,GAAW;AAAA,EACPpW;AACR,GAAG+Z,GAAyC,WAAW,kBAAkB,IAAI;AAG7E,MAAMI,KAA4C,GAE5CC,KAA0C,GAC1CC,KAA4C,GAC5CC,KAA4C,GAE5CC,KAAqC;AAC3C,MAAMC,GAAyC;AAAA,EAC3C,QAAQlE,GAAQmE,GAASC,GAAc;AACnC,QAAIC,IAAeR,IACfv0B,IAAQ60B,IAAUnE,EAAO,SAAS,IAAI,GACtCx4B,IAAM28B,IAAU,KAAK;AACzB,WAAM38B,MAAQ,KAAK8H,KAAS0wB,EAAO,UAAUx4B,MAAQ,MAAM8H,KAAS,MAAG;AACnE,UAAI4kB,IAAQ,MACRoQ,IAAYP,IACZQ,IAAgB;AACpB,MAAIj1B,MAAU0wB,EAAO,UAAU1wB,MAAU,KAAIg1B,IAAYR,MAErD5P,IAAQ8L,EAAO1wB,CAAK,GAChB4kB,EAAM,OAAO,QAAQoQ,IAAYN,MAEjCM,IAAY,KAAK,YAAY,OAAOpQ,EAAM,EAAE,GACxCoQ,KAAa,SAAMA,IAAYP;AAI3C,UAAIS,IADM,KAAK,WAAW,WAAW,QAAQH,CAAY,EACpCC,CAAS,GAC1B7I,IAAQ,KAAK,WAAW,WAAW,QAAQ+I,CAAU;AACzD,MAAIF,MAAcR,MAA2CQ,MAAcN,OACvEI,EAAalQ,GAAOuH,GAAOnsB,CAAK,GAChCi1B,IAAgB,EAAE9I,EAAM,QAAQwI,MAEpCI,IAAe5I,EAAM,UACjB8I,MAAej1B,KAAS9H;AAAA,IAChC;AACA,WAAOw4B;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAIE,SAASpxB,GAAMuJ,IAAQ,GAAGssB,IAAU,oBAAI,OAAK;AAC3C,QAAIA,EAAQ,IAAItsB,CAAK,EAAG;AACxB,IAAAssB,EAAQ,IAAItsB,CAAK;AACjB,QAAI,EAAE,UAAUusB,GAAU,YAAYC,GAAY,YAAYC,MAAe,KAAK,YAC9EC,IAAMF,EAAW,QAAQxsB,CAAK;AAElC,aAAQmsB,IAAY,GAAGA,IAAYI,GAAUJ,KAAY;AACrD,UAAIE,IAAaK,EAAIP,CAAS,GAC1B7I,IAAQmJ,EAAW,QAAQJ,CAAU;AAEzC,eAAStQ,KAAS,KAAK,YAAY,eAAeoQ,CAAS;AACvD,QAAI11B,EAAK,SAAOA,EAAK,MAAMslB,GAAOuH,CAAK,GACnCA,EAAM,aAAa,KAAG,KAAK,SAAS7sB,GAAM6sB,EAAM,UAAUgJ,CAAO,GACjE71B,EAAK,QAAMA,EAAK,KAAKslB,GAAOuH,CAAK;AAAA,IAE7C;AAAA,EACJ;AAAA,EACA,YAAYqJ,GAAW;AACnB,SAAK,aAAaA,GAClB,KAAK,cAAc,IAAQrB,GAA0CqB,EAAW,UAAU;AAAA,EAC9F;AACJ;AAMA,MAAMC,KAAmC,OACnCC,KAAkC,MAClCC,KAA6B,IAE7BC,KAAiC,OAEjCC,KAAsC,OACtCC,KAAuC,MAEvCC,KAAkC,YAClCC,KAAmC,YACnCC,KAAoC,YAEpCC,KAA0C,SAK1CC,KAA8C,MAC9CC,KAA6C,MAC7CC,KAA6C,KAC7CC,KAA4C;AAClD,MAAMC,GAAyC;AAAA;AAAA;AAAA,EAG3C,QAAQ7F,GAAQqC,IAAW,IAAI;AAC3B,aAASyD,KAAS,KAAK,KAAK,QAAO;AAC/B,UAAIr2B,IAAQq2B,EAAM;AAElB,eAAStC,KAAWsC,EAAM,UAAS;AAC/B,YAAI3C;AACJ,SAAIA,IAAId,EAASmB,EAAQ,WAAW,OAC5BL,EAAEK,EAAQ,cAAc,KACxB/zB,KAAS+zB,EAAQ,cACjB/zB,KAAS+zB,EAAQ,eACVL,EAAEK,EAAQ,cAAc,MAAM,OACrC/zB,KAAS,CAAC+zB,EAAQ,cAClB/zB,KAAS,CAAC+zB,EAAQ;AAAA,MAG9B;AACA,eAASuC,KAAYD,EAAM,UAAU,CAAIC,EAAS,kBAAkBt2B,KAAO,KAAK,gBAAgBs2B,GAAU/F,CAAM;AAAA,IACpH;AAEA,QAAI1wB,IAAQ0wB,EAAO,SAAS;AAC5B,WAAM1wB,KAAS;AACX,MAAI0wB,EAAO1wB,CAAK,EAAE,OAAO,SAAQ0wB,EAAO,OAAO1wB,GAAO,CAAC,GACvDA;AAEJ,WAAO0wB;AAAA,EACX;AAAA,EACA,gBAAgB+F,GAAU/F,GAAQ;AAG9B,QAFA,KAAK,WAAW+F,GAChB,KAAK,SAAS/F,GACV,KAAK,SAAS,SAAS,GAAG;AAC1B,WAAK,kCAAkC,KAAK,UAAU,KAAK,MAAM;AACjE;AAAA,IACJ;AACA,SAAK,gBAAgB,CAAA,GACrB,KAAK,cAAc,MACnB,KAAK,aAAa,MAClB,KAAK,YAAY,MACjB,KAAK,cAAc;AACnB,QAAIgG,IAAe,KAAK,gBAAgBD,CAAQ,GAC5CE,IAAU,KAAK,aAAY,GAC3B9B,IAAU,CAAC,EAAE,KAAK,SAAS,WAAWqB;AAC1C,WAAOQ,EAAa,QAAQ,KAAK,QAAQ7B,GAAS8B,CAAO;AAAA,EAC7D;AAAA,EACA,gBAAgBF,GAAU;AACtB,WAAO,IAAQ7B,GAA0C6B,EAAS,MAAM,UAAU;AAAA,EACtF;AAAA,EACA,eAAe;AACX,YAAO,KAAK,SAAS,MAAI;AAAA,MACrB,KAAK;AACD,eAAO,KAAK;AAAA,MAChB,KAAK;AACD,eAAO,KAAK;AAAA,MAChB,KAAK;AACD,eAAO,KAAK;AAAA,MAChB,KAAK;AACD,eAAO,KAAK;AAAA,MAChB,KAAK;AACD,eAAO,KAAK;AAAA,MAChB;AACI,cAAM,IAAI,MAAM,+BAA+B,KAAK,SAAS,IAAI,EAAE;AAAA,IACnF;AAAA,EACI;AAAA,EACA,yBAAyB7R,GAAOuH,GAAOnsB,GAAO;AAC1C,IAAImsB,EAAM,QAAQsJ,OAAkC,KAAK,aAAaz1B,IAClEmsB,EAAM,QAAQuJ,OAAiC,KAAK,YAAY11B,IACpE42B,GAAoC,KAAK,QAAQzK,EAAM,QAAQwJ,IAA4B,KAAK,YAAY,KAAK,SAAS;AAAA,EAC9H;AAAA,EACA,8BAA8B/Q,GAAOuH,GAAOnsB,GAAO;AAC/C,QAAI62B,IAAe,KAAK,SAAS,MAAM,kBAAkB;AACzD,QAAI1K,EAAM,cAAc,OAAQ;AAC5B,UAAI/6B,IAASylC,EAAa,QAAQ1K,EAAM,SAAS,GAC7C2K,IAAc,IAAQ3C,GAA0C/iC,CAAM;AAC1E,MAAAwzB,IAAQ,KAAK,OAAO,KAAK,WAAW;AACpC,UAAIC,IAAMiS,EAAY,OAAOlS,EAAM,EAAE;AACrC,MAAIC,MAAK,KAAK,OAAO,KAAK,WAAW,IAAI,KAAK,KAAK,SAASA,GAAKD,EAAM,UAAU;AAAA,IACrF;AACA,QAAIuH,EAAM,iBAAiB,OAAQ;AAC/B,UAAI/6B,IAASylC,EAAa,QAAQ1K,EAAM,YAAY,GAChD2K,IAAc,IAAQ3C,GAA0C/iC,CAAM;AAC1E,MAAAwzB,IAAQ,KAAK,OAAO5kB,CAAK;AACzB,UAAI6kB,IAAMiS,EAAY,OAAOlS,EAAM,EAAE;AACrC,MAAIC,MAAK,KAAK,OAAO7kB,CAAK,IAAI,KAAK,KAAK,SAAS6kB,GAAKD,EAAM,UAAU;AAAA,IAC1E;AACA,IAAIuH,EAAM,QAAQyJ,OAAgC,KAAK,cAAc51B;AAAA,EACzE;AAAA,EACA,gBAAgB4kB,GAAOuH,GAAOnsB,GAAO;AAEjC,QADImsB,EAAM,QAAQ0J,MAAqC,KAAK,cAAc,KAAK71B,CAAK,GAChFmsB,EAAM,QAAQ2J,IAAsC;AACpD,UAAI5sB,IAAU,KAAK,SAAS,MAAM,iBAC9B6tB,IAAa,KAAK,SAAS,MAAM,YACjCC,IAAe,KAAK,SAAS,MAAM,cACnCC,IAAc9K,EAAM,QACpBtxB,IAAO,IACPq8B,IAAgB,GAChBl9B,IAAa,CAAA,GACbm9B,IAAiB,CAAA;AACrB,aAAM,CAACt8B,KAAK;AACR,YAAIu8B,IAAiB,KAAK,cAAc,IAAG;AAC3C,QAAAp9B,EAAW,QAAQ,GAAG,KAAK,OAAOo9B,CAAc,EAAE,UAAU;AAC5D,YAAIC,IAASnuB,EAAQ,QAAQ+tB,GAAa;AAC1C,QAAAp8B,IAAO,CAAC,EAAEw8B,IAAStB;AACnB,YAAIuB,IAAQ,CAAC,EAAED,IAASrB,KACpBjjC,KAAUskC,IAASpB,OAAsC,KAAK;AAClE,QAAAljC,KAAU,KAAK,OAAOqkC,CAAc,EAAE;AACtC,YAAIG,IAAYR,EAAW,QAAQhkC,CAAM;AAEzC,YADAmkC,KAAiBK,GACb18B,KAAQy8B,GAAO;AACf,cAAIE,IAAgBR,EAAa,QAAQE,CAAa;AACtD,eAAK,OAAOE,CAAc,IAAI,KAAK,KAAK,SAASI,GAAex9B,CAAU,GAC1Em9B,EAAe,KAAKC,CAAc,GAClCF,IAAgB,GAChBl9B,IAAa,CAAA;AAAA,QACjB,MAAO,MAAK,OAAOo9B,CAAc,IAAI,KAAK,KAAK,SAAS,KAAM;AAAA,MAClE;AAEA,WAAK,cAAc,KAAK,GAAGD,CAAc;AAAA,IAC7C;AAAA,EACJ;AAAA,EACA,kCAAkCV,GAAU/F,GAAQ1wB,GAAO;AACvD,QAAI82B,IAAc,IAAQ3C,GAA0CsC,EAAS,MAAM,WAAW;AAC9F,SAAIz2B,IAAQ,GAAGA,IAAQ0wB,EAAO,QAAQ1wB,KAAQ;AAC1C,UAAI4kB,IAAQ8L,EAAO1wB,CAAK;AACxB,UAAI4kB,EAAM,OAAO,OAAQ;AACrB,YAAIC,IAAMiS,EAAY,OAAOlS,EAAM,EAAE;AACrC,QAAIC,MAAK6L,EAAO1wB,CAAK,IAAI,KAAK,KAAK,SAAS6kB,GAAKD,EAAM,UAAU;AAAA,MACrE;AAAA,IACJ;AAAA,EACJ;AAAA,EACA,cAAcgM,GAAY6G,GAAsB/2B,GAAOg3B,GAAU;AAC7D,QAAIC,IAAa,CAAA;AACjB,WAAMj3B,OAAQ;AACV,UAAImkB,IAAM,KAAK,SAAS,MAAM,iBAAiB,QAAQ4S,GAAsB;AAC7E,MAAAE,EAAW,KAAK,KAAK,KAAK,SAAS9S,CAAG,CAAC;AAAA,IAC3C;AACA,IAAK6S,KAAU9G,KACf,KAAK,OAAO,OAAOA,GAAY,GAAG,GAAG+G,CAAU;AAAA,EACnD;AAAA,EACA,sBAAsB/S,GAAOuH,GAAOnsB,GAAO;AAEvC,QADImsB,EAAM,QAAQyJ,OAAgC,KAAK,cAAc51B,IACjEmsB,EAAM,sBAAsB,OAAQ;AACpC,UAAIzrB,KAASyrB,EAAM,QAAQmK,QAA+C,GACtEoB,IAAW,CAAC,EAAEvL,EAAM,QAAQiK;AAChC,WAAK,cAAc,KAAK,aAAajK,EAAM,mBAAmBzrB,GAAOg3B,CAAQ;AAAA,IACjF;AACA,QAAIvL,EAAM,uBAAuB,OAAQ;AACrC,UAAIzrB,KAASyrB,EAAM,QAAQkK,QAAgD,GACvEqB,IAAW,CAAC,EAAEvL,EAAM,QAAQgK;AAChC,WAAK,cAAcn2B,GAAOmsB,EAAM,oBAAoBzrB,GAAOg3B,CAAQ;AAAA,IACvE;AAAA,EACJ;AAAA,EACA,uBAAuB;AACnB,QAAI3E,IAAW,CAAA;AACf,aAASyD,KAAS,KAAK,KAAK,OAAO,UAAStC,KAAWsC,EAAM,SAAS,CAAAzD,EAAS,KAAK;AAAA,MAChFmB,EAAQ;AAAA,MACRA,EAAQ;AAAA,IACpB,CAAS;AACD,WAAOnB;AAAA,EACX;AAAA,EACA,eAAelO,GAAK;AAChB,WAAK,KAAK,cAAY,KAAK,mBAAkB,GACtC,KAAK,WAAWA,CAAG,KAAK,CAAA;AAAA,EACnC;AAAA,EACA,qBAAqB;AACjB,SAAK,aAAa,CAAA;AAClB,aAAS2R,KAAS,KAAK,KAAK,QAAO;AAC/B,UAAIr2B,IAAQq2B,EAAM;AAClB,eAASC,KAAYD,EAAM,UAAU,CAAIC,EAAS,kBAAkBt2B,KAAO,KAAK,0BAA0Bs2B,CAAQ;AAAA,IACtH;AAAA,EACJ;AAAA,EACA,0BAA0BA,GAAU;AAEhC,QAAIA,EAAS,SAAS,EAAG;AAEzB,QADc,CAAC,EAAEA,EAAS,WAAWP,IACxB,OAAM,IAAI,MAAM,kCAAkC;AAC/D,SAAK,WAAWO,GAChB,KAAK,gBAAgB,CAAA;AACrB,QAAIC,IAAe,KAAK,gBAAgBD,CAAQ,GAC5CE,IAAU,KAAK,aAAY,GAC3Bt6B,IAAQ,CAAA,GACRu7B,IAAQ,CAAA;AACZ,SAAK,SAAS,CAAA,GACdlB,EAAa,SAAS;AAAA,MAClB,OAAO,CAAC9R,GAAOuH,MAAQ;AACnB,YAAIuE,IAAS,KAAK;AAClB,QAAAkH,EAAM,KAAK;AAAA,UACP,QAAQlH,EAAO,MAAK;AAAA,UACpB,eAAe,KAAK,cAAc,MAAK;AAAA,QAC3D,CAAiB;AAED,YAAIH,IAAI,KAAK,KAAK,SAAS3L,CAAK;AAChC,QAAAvoB,EAAM,KAAKk0B,CAAC,GACZG,EAAO,KAAKr0B,EAAMA,EAAM,SAAS,CAAC,CAAC,GAEnCs6B,EAAQjG,EAAOA,EAAO,SAAS,CAAC,GAAGvE,GAAOuE,EAAO,SAAS,CAAC;AAE3D,YAAIhwB,IAAQ,GACRjI,IAAQ;AACZ,iBAAQjH,IAAI,GAAGA,IAAIk/B,EAAO,UAAUhwB,KAAS,GAAGlP,IAAI,CAAIk/B,EAAOl/B,CAAC,EAAE,OAAO,UACrEkP,KACAjI,IAAQi4B,EAAOl/B,CAAC,EAAE;AAEtB,YAAIkP,MAAU,GAAG;AACb,cAAIT,IAAS5D,EAAM,IAAI,CAACk0B,MAAIA,EAAE,EAAE,GAC5BjW,IAAQ,KAAK,WAAW7hB,CAAK;AACjC,UAAI6hB,IAAOA,EAAM,KAAKra,CAAM,IACvB,KAAK,WAAWxH,CAAK,IAAI;AAAA,YAC1BwH;AAAA,UACxB;AAAA,QACgB;AAAA,MACJ;AAAA,MACA,MAAM,MAAI;AACN,SAAC,EAAE,QAAQ,KAAK,QAAQ,eAAe,KAAK,cAAa,IAAK23B,EAAM,IAAG,IACvEv7B,EAAM,IAAG;AAAA,MACb;AAAA,IACZ,CAAS;AAAA,EACL;AAAA,EACA,YAAY4d,GAAK;AACb,SAAK,2BAA2B,KAAK,yBAAyB,KAAK,IAAI,GACvE,KAAK,gCAAgC,KAAK,8BAA8B,KAAK,IAAI,GACjF,KAAK,kBAAkB,KAAK,gBAAgB,KAAK,IAAI,GACrD,KAAK,oCAAoC,KAAK,kCAAkC,KAAK,IAAI,GACzF,KAAK,wBAAwB,KAAK,sBAAsB,KAAK,IAAI,GACjE,KAAK,OAAOA,GACZ,KAAK,OAAOA,EAAK,MACjB,KAAK,aAAa;AAAA,EACtB;AACJ;AACIuW,GAAW;AAAA,EACPpW;AACR,GAAGmc,GAAyC,WAAW,mBAAmB,IAAI;AAI9E,SAASsB,GAA2BnH,GAAQoH,GAAQC,GAAQC,IAAW,IAAOC,IAAW,IAAO;AAC5F,MAAIzlC,IAAMk+B,EAAO,OAAOqH,EAAO,CAAC,KAAKA,EAAO,CAAC,IAAI,IAAIA,EAAO,CAAC,CAAC;AAC9D,EAAIE,KAAUzlC,EAAI,QAAO;AACzB,MAAID,IAAQm+B,EAAO,OAAOoH,EAAO,CAAC,GAAGA,EAAO,CAAC,GAAG,GAAGtlC,CAAG;AACtD,SAAIwlC,KAAUzlC,EAAM,QAAO,GAC3Bm+B,EAAO,OAAOqH,EAAO,CAAC,KAAKD,EAAO,CAAC,IAAI,IAAI,GAAG,GAAGvlC,CAAK,GAC/Cm+B;AACX;AACA,SAASkG,GAAoClG,GAAQwH,GAAMC,GAAYC,GAAW;AAE9E,UAAOF,GAAI;AAAA,IACP,KAAK;AACD,aAAOxH;AAAA,IACX,KAAK;AACD,aAAOmH,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,CAAa;AAAA,IACL,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,CAAa;AAAA,IACL,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,CAAa;AAAA,IACL,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,CAAa;AAAA,IACL,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,GAAe,IAAM,EAAK;AAAA,IAClB,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,CAAa;AAAA,IACL,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,GAAe,IAAO,EAAI;AAAA,IAClB,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,CAAa;AAAA,IACL,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,GAAe,IAAO,EAAI;AAAA,IAClB,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,CAAa;AAAA,IACL,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,GAAe,IAAM,EAAK;AAAA,IAClB,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,CAAa;AAAA,IACL,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,GAAe,IAAM,EAAK;AAAA,IAClB,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,GAAe,IAAO,EAAI;AAAA,IAClB,KAAK;AACD,aAAOP,GAA2BnH,GAAQ;AAAA,QACtCyH;AAAA,QACA;AAAA,MAChB,GAAe;AAAA,QACCC;AAAA,QACA;AAAA,MAChB,GAAe,IAAM,EAAI;AAAA,IACjB;AACI,YAAM,IAAI,MAAM,iBAAiBF,CAAI,EAAE;AAAA,EACnD;AACA;AAGA,MAAMG,GAAyC;AAAA,EAC3C,WAAWC,GAAU;AAGjB,IAAIA,EAAS,cAAc,SAAOA,EAAS,OAAO,QAAO,GACzD,KAAK,cAAc,QAAQA,EAAS,QAAQ3E,GAA0C2E,EAAS,QAAQ,CAAC;AAAA,EAC5G;AAAA,EACA,qBAAqBjG,GAAQ1U,GAAU;AACnC,WAAOsW,GAA0C,KAAK,cAAc,qBAAoB,CAAE;AAAA,EAC9F;AAAA,EACA,gBAAgBpP,GAAK;AACjB,QAAI0T,IAAe,KAAK,cAAc,eAAe1T,CAAG,GACpD5kB,IAAS,oBAAI;AACjB,aAASywB,KAAU6H,EAAa,MAAK,YAAY7H,GAAQ,GAAGzwB,GAAQ,EAAE;AACtE,WAAOA;AAAA,EACX;AAAA,EACA,YAAYywB,GAAQ1wB,GAAOw4B,GAAS1iC,GAAQ;AACxC,QAAIkE,IAAa,KAAK,KAAK,eAAe,mBAAmB02B,EAAO1wB,CAAK,CAAC;AAC1E,aAASxG,KAAaQ,GAAW;AAC7B,UAAItG,IAAIoC,IAAS,OAAO,cAAc0D,CAAS;AAC/C,MAAIwG,IAAQ0wB,EAAO,SAAS,IAAG,KAAK,YAAYA,GAAQ1wB,IAAQ,GAAGw4B,GAAS9kC,CAAC,IACxE8kC,EAAQ,IAAI9kC,CAAC;AAAA,IACtB;AAAA,EACJ;AAAA,EACA,YAAYumB,GAAK;AACb,SAAK,OAAOA,GACZ,KAAK,gBAAgB,IAAQsc,GAA0Ctc,CAAI,GAC3E,KAAK,mBAAmB;AAAA,EAC5B;AACJ;AAIA,MAAMwe,GAAyC;AAAA;AAAA;AAAA;AAAA;AAAA,EAIzC,aAAa1F,GAAU2F,GAAQ;AAC7B,QAAIC,IAAa,KAAK,OAAO,SAAS,GAClCC,IAAQ,KAAK,OAAOD,CAAU;AAClC,aAASzE,KAAWnB,EAAS,CAAI,KAAK,YAAYmB,CAAO,KAAK,SAC1D0E,EAAM,KAAK1E,CAAO,GAClB,KAAK,YAAYA,CAAO,IAAIyE,GACxBD,MAAQ,KAAK,eAAexE,CAAO,IAAI;AAAA,EAEnD;AAAA;AAAA;AAAA;AAAA,EAGE,IAAIr/B,GAAK6jC,IAAS,IAAM;AAKtB,QAJI,KAAK,OAAO,WAAW,KAAG,KAAK,OAAO,KAAK,EAAE,GAC7C,OAAO7jC,KAAQ,aAAUA,IAAM;AAAA,MAC/BA;AAAA,IACZ,IACY,MAAM,QAAQA,CAAG,EAAG,MAAK,aAAaA,GAAK6jC,CAAM;AAAA,aAC5C,OAAO7jC,KAAQ;AACpB,WAAK,aAAaA,EAAI,UAAU,CAAA,GAAI,EAAI,GACxC,KAAK,aAAaA,EAAI,SAAS,CAAA,GAAI,EAAK;AAAA,QACrC,OAAM,IAAI,MAAM,yCAAyC;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA,EAGE,SAASA,GAAK6jC,GAAQ;AACpB,IAAI,OAAO7jC,KAAQ,aAAY,KAAK,OAAO,KAAKA,GAAK,EAAE,KAEnD,KAAK,OAAO,KAAK,EAAE,GACnB,KAAK,IAAIA,GAAK6jC,CAAM;AAAA,EAE5B;AAAA,EACA,oBAAoB3F,GAAU;AAC1B,QAAI,MAAM,QAAQA,CAAQ,EAAG,MAAK,IAAIA,CAAQ;AAAA,aACrC,OAAOA,KAAa;AAAU,eAAQzuB,KAAOyuB;AAClD,YAAIA,EAASzuB,CAAG,EAAG,MAAK,IAAIA,CAAG;AAAA,iBACtB,KAAK,YAAYA,CAAG,KAAK,MAAM;AACpC,cAAIs0B,IAAQ,KAAK,OAAO,KAAK,YAAYt0B,CAAG,CAAC;AAC7C,UAAAs0B,EAAM,OAAOA,EAAM,QAAQt0B,CAAG,GAAG,CAAC,GAClC,OAAO,KAAK,YAAYA,CAAG,GAC3B,OAAO,KAAK,eAAeA,CAAG;AAAA,QAClC;AAAA;AAAA,EAER;AAAA;AAAA;AAAA;AAAA,EAGE,qBAAqBosB,GAAQ;AAC3B,aAAS9L,KAAS8L,EAAO,UAAQwD,KAAW,KAAK,eAAe,CAAAtP,EAAM,SAASsP,CAAO,IAAI;AAAA,EAC9F;AAAA;AAAA;AAAA;AAAA,EAGE,QAAQ2E,GAAWnI,GAAQC,GAAW;AACpC,aAASiI,KAAS,KAAK;AACnB,MAAI,OAAOA,KAAU,aACZjI,KAAWiI,EAAM,KAAK,MAAMlI,GAAQ,IAAI,IACtCkI,EAAM,SAAS,KAAGC,EAAU,cAAcD,GAAOlI,GAAQC,CAAS;AAAA,EAErF;AAAA,EACA,YAAY1W,GAAMoY,GAAQW,GAAU;AAChC,SAAK,OAAO/Y,GACZ,KAAK,SAASoY,GACd,KAAK,YAAYW,GACjB,KAAK,SAAS,CAAA,GACd,KAAK,iBAAiB,CAAA,GACtB,KAAK,cAAc,CAAA;AAAA,EACvB;AACJ;AAKA,MAAM8F,KAA2C;AAAA,EAC7C;AACJ,GACMC,KAAwC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GACMC,KAA4C;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AACJ,GACMC,KAA4C;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAIMC,KAA6C;AAAA,EAC/C,KAAK;AAAA,IACD;AAAA,IACA;AAAA,EACR;AAAA,EACI,KAAK;AAAA,IACD;AAAA,IACA;AAAA,EACR;AACA;AACA,MAAMC,GAAyC;AAAA,EAC3C,OAAO,KAAKC,GAAM1I,GAAQqC,GAAU;AAEhC,SAAK,kBAAkBqG,CAAI,GAC3B,KAAK,aAAaA,CAAI,GACtB,KAAK,mBAAmBA,GAAMrG,CAAQ,GAEtCqG,EAAK,qBAAqB1I,CAAM,GAEhC,KAAK,eAAe0I,GAAM1I,CAAM;AAAA,EACpC;AAAA,EACA,OAAO,kBAAkB0I,GAAM;AAC3B,IAAAA,EAAK,IAAI;AAAA,MACL,QAAQ;AAAA,QACJ,GAAGN;AAAA,QACH,GAAGI,GAA2CE,EAAK,SAAS;AAAA,MAC5E;AAAA,MACY,OAAOJ;AAAA,IACnB,CAAS;AAAA,EACL;AAAA,EACA,OAAO,aAAaI,GAAM;AAAA,EAE1B;AAAA,EACA,OAAO,mBAAmBA,GAAMC,GAAc;AAC1C,IAAAD,EAAK,IAAI;AAAA,MACL,GAAGL;AAAA,MACH,GAAGE;AAAA,IACf,CAAS,GACDG,EAAK,oBAAoBC,CAAY;AAAA,EACzC;AAAA,EACA,OAAO,eAAeD,GAAM1I,GAAQ;AAEhC,aAAQl/B,IAAI,GAAGA,IAAIk/B,EAAO,QAAQl/B,KAAI;AAClC,UAAIozB,IAAQ8L,EAAOl/B,CAAC;AACpB,UAAIozB,EAAM,WAAW,CAAC,MAAM,MAAQ;AAChC,YAAIryB,IAAQf,GACRgB,IAAMhB,IAAI;AAEd,eAAMe,IAAQ,KAAS+mC,GAAgB5I,EAAOn+B,IAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;AAClE,UAAAm+B,EAAOn+B,IAAQ,CAAC,EAAE,SAAS,OAAO,IAClCm+B,EAAOn+B,IAAQ,CAAC,EAAE,SAAS,OAAO,IAClCA;AAGJ,eAAMC,IAAMk+B,EAAO,UAAc4I,GAAgB5I,EAAOl+B,CAAG,EAAE,WAAW,CAAC,CAAC;AACtE,UAAAk+B,EAAOl+B,CAAG,EAAE,SAAS,OAAO,IAC5Bk+B,EAAOl+B,CAAG,EAAE,SAAS,OAAO,IAC5BA;AAGJ,QAAAoyB,EAAM,SAAS,OAAO,IACtBpzB,IAAIgB,IAAM;AAAA,MACd;AAAA,IACJ;AAAA,EACJ;AACJ;AACI+mC,GAAUJ,IAA0C,kBAAkB,YAAY;AAOtF,MAAMK,KAA6B,IAAQC,GAAwBnK,GAA2C,ksBAAksB,CAAC,GAC3yBoK,KAAiC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GACMC,KAAuC;AAAA,EACzC,aAAa;AAAA,EAOb,aAAa;AACjB,GACMC,KAA6B,QAC7BC,KAA6B,QAC7BC,KAA6B,QAC7BC,KAA6B,QAC7BC,KAA6B,QAC7BC,KAA6B,QAC7BC,KAA6B,QAC7BC,KAA6B,MAE7BC,KAAoC;AAAA;AAAA;AAAA,EAGtC;AAAA,IACI;AAAA,MACID;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACIO;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAL;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIK;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACIO;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIM;AAAA,MACAL;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIK;AAAA,MACAL;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIK;AAAA,MACAL;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIK;AAAA,MACAL;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACIM;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACII;AAAA,MACAH;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIG;AAAA,MACAH;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIG;AAAA,MACAH;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIG;AAAA,MACAH;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACIM;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIK;AAAA,MACAL;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIK;AAAA,MACAL;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIK;AAAA,MACAH;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIG;AAAA,MACAL;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACIO;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAE;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIF;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACIO;AAAA,MACAA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIO;AAAA,MACAJ;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACII;AAAA,MACAP;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AACA;AACA,MAAMS,WAAqDlB,GAA0C;AAAA,EACjG,OAAO,aAAaC,GAAM;AACtB,IAAAA,EAAK,IAAI;AAAA,MACL;AAAA,MACA;AAAA,IACZ,CAAS;AACD,aAAQ5nC,IAAI,GAAGA,IAAIkoC,GAA+B,QAAQloC,KAAI;AAC1D,UAAI0iC,IAAUwF,GAA+BloC,CAAC;AAC9C,MAAA4nC,EAAK,SAASlF,GAAS,EAAK;AAAA,IAChC;AACA,IAAAkF,EAAK,SAAS,MAAM;AAAA,EACxB;AAAA,EACA,OAAO,eAAeA,GAAM1I,GAAQ;AAChC,UAAM,eAAe0I,GAAM1I,CAAM;AACjC,QAAI9rB,IAAO,IACPiE,IAAQ,GACRK,IAAU,CAAA;AAEd,aAAQ1X,IAAI,GAAGA,IAAIk/B,EAAO,QAAQl/B,KAAI;AAClC,UAAI8oC,GAAWC;AACf,UAAI3V,IAAQ8L,EAAOl/B,CAAC;AACpB,UAAIkL,IAAO89B,GAAsC5V,EAAM,WAAW,CAAC,CAAC;AACpE,UAAIloB,MAASi9B,GAAqC,aAAa;AAC3D,QAAAzwB,EAAQ1X,CAAC,IAAI2oC;AACb;AAAA,MACJ;AACA,OAACI,GAAYD,GAAWzxB,CAAK,IAAIuxB,GAAkCvxB,CAAK,EAAEnM,CAAI,GAC1E69B,MAAeJ,MAA8Bv1B,MAAS,OAAIsE,EAAQtE,CAAI,IAAI21B,IAC9ErxB,EAAQ1X,CAAC,IAAI8oC,GACb11B,IAAOpT;AAAA,IACX;AAEA,aAAQwO,IAAQ,GAAGA,IAAQ0wB,EAAO,QAAQ1wB,KAAQ;AAC9C,UAAIk0B;AACJ,UAAItP,IAAQ8L,EAAO1wB,CAAK;AACxB,OAAIk0B,IAAUhrB,EAAQlJ,CAAK,OAAG4kB,EAAM,SAASsP,CAAO,IAAI;AAAA,IAC5D;AAAA,EACJ;AACJ;AACA,SAASsG,GAAsChhC,GAAW;AACtD,MAAIF,IAAMkgC,GAA2B,IAAIhgC,CAAS;AAClD,MAAIF,EAAK,QAAOA,IAAM;AACtB,MAAIiP,IAAekyB,GAAoBjhC,CAAS;AAChD,SAAI+O,MAAa,QAAQA,MAAa,QAAQA,MAAa,OAAaoxB,GAAqC,cACtGA,GAAqC;AAChD;AAMA,MAAMe,GAAyC;AAAA,EAC3C,MAAM/4B,IAAU,IAAI3B,IAAQ,GAAG;AAC3B,SAAK,UAAU2B,GACf,KAAK,QAAQA,EAAQ,SAAS,CAAA,GAC9B,KAAK,qBAAqBA,EAAQ,sBAAsB,GACxD,KAAK,QAAQ3B;AAAA,EACjB;AAAA,EACA,IAAI,MAAM;AACN,WAAO,KAAK,OAAO,KAAK,KAAK,KAAK;AAAA,EACtC;AAAA,EACA,aAAa4kB,GAAO;AAChB,WAAO,KAAK,MAAM,eAAeA,EAAM,UAAU,KAAK,MAAM,oBAAoBA,EAAM,UAAU,KAAK,MAAM,mBAAmBA,EAAM,cAAc,KAAK,sBAAsBA,EAAM,UAAUA,EAAM,uBAAuB,KAAK;AAAA,EACnO;AAAA,EACA,KAAK1sB,GAAK;AAEN,SADA,KAAK,SAASA,GACR,KAAK,KAAK,SAAS,KAAK,QAAQ,KAAK,OAAO,UAAU,KAAK,aAAa,KAAK,OAAO,KAAK,KAAK,CAAC,IAAE,MAAK,SAASA;AACrH,WAAI,IAAI,KAAK,SAAS,KAAK,SAAS,KAAK,OAAO,SAAe,OACxD,KAAK,OAAO,KAAK,KAAK;AAAA,EACjC;AAAA,EACA,OAAO;AACH,WAAO,KAAK,KAAK,CAAC;AAAA,EACtB;AAAA,EACA,OAAO;AACH,WAAO,KAAK,KAAK,EAAE;AAAA,EACvB;AAAA,EACA,KAAKwI,IAAQ,GAAG;AACZ,QAAI8O,IAAM,KAAK,OACXlW,IAAM,KAAK,UAAUoH,CAAK;AAC9B,gBAAK,QAAQ8O,GACNlW;AAAA,EACX;AAAA,EACA,UAAUoH,IAAQ,GAAG;AACjB,QAAI8O,IAAM,KAAK;AACf,SAAK,UAAU9O,CAAK;AACpB,QAAIpH,IAAM,KAAK;AACf,gBAAK,QAAQkW,GACNlW;AAAA,EACX;AAAA,EACA,UAAUoH,IAAQ,GAAG;AACjB,QAAIxI,IAAMwI,IAAQ,IAAI,KAAK;AAE3B,SADAA,IAAQ,KAAK,IAAIA,CAAK,GAChBA,MAAQ,MAAK,KAAKxI,CAAG;AAC3B,WAAO,KAAK,OAAO,KAAK,KAAK;AAAA,EACjC;AAAA,EACA,YAAYw4B,GAAQ/uB,GAAQ;AACxB,SAAK,SAAS+uB,GACd,KAAK,MAAM/uB,CAAO;AAAA,EACtB;AACJ;AAIA,MAAMg5B,KAAwC;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AACJ;AACA,MAAMC,GAAyC;AAAA,EAC3C,WAAWvI,GAAQ;AACf,QAAI,KAAK,MAAM,cAAc,KAAM,QAAO;AAC1C,IAAK,MAAM,QAAQA,CAAM,MAAGA,IAAS;AAAA,MACjCA;AAAA,IACZ;AACQ,aAAS3+B,KAAK2+B,EAAO,UAASlG,KAAS,KAAK,MAAM;AAC9C,UAAIA,EAAM,QAAQz4B,EAAG,QAAOy4B;AAEhC,WAAO;AAAA,EACX;AAAA,EACA,aAAakG,GAAQ1U,GAAUqV,GAAW;AACtC,QAAI6H,IAAU,IACV1O;AACJ,QAAI,CAAC,KAAK,UAAUkG,MAAW,KAAK,WAAW;AAG3C,UAFAlG,IAAQ,KAAK,WAAWkG,CAAM,GACzBlG,MAAOA,IAAQ,KAAK,WAAWwO,EAAqC,IACrE,CAACxO,EAAO,QAAO,KAAK;AACxB,WAAK,YAAYA,EAAM,KACvB,KAAK,SAASA,EAAM,QACpB,KAAK,WAAW,MAChB,KAAK,cAAc,MACnB0O,IAAU;AAAA,IACd;AAGA,SAFI,CAAC7H,KAAaA,MAAc,KAAK,eAAW,KAAK,YAAYA,KAAaL,GAA0CN,CAAM,IAC1H1U,KAAYA,EAAS,SAAS,MAAGA,KAAY,IAAI,OAAO,IAAIA,EAAS,MAAM,IAC3E,CAACA,KAAYA,MAAa,KAAK,aAAa;AAC5C,WAAK,WAAW;AAChB,eAASxD,KAAQ,KAAK,OAAO,eAAe,KAAIA,EAAK,QAAQwD,GAAU;AACnE,aAAK,WAAWxD,EAAK,SACrB,KAAK,cAAcA,EAAK;AACxB;AAAA,MACJ;AACA,MAAK,KAAK,aACN,KAAK,WAAW,KAAK,OAAO,gBAC5B,KAAK,cAAc,OAEvB0gB,IAAU;AAAA,IACd;AAEA,QAAIA,MACA,KAAK,WAAW,CAAA,GACZ,KAAK;AAAU,eAASC,KAAgB,KAAK,SAAS,gBAAe;AACrE,YAAIpd,IAAS,KAAK,MAAM,YAAYod,CAAY,GAC5CC,IAAoB,KAAK,+BAA+BD,CAAY;AACxE,aAAK,SAASpd,EAAO,GAAG,IAAIqd,KAAqBrd,EAAO;AAAA,MAC5D;AAEJ,WAAO,KAAK;AAAA,EAChB;AAAA,EACA,mBAAmB2b,IAAe,CAAA,GAAI2B,GAAS;AAC3C,QAAIC,IAAU,CAAA;AACd,aAAS32B,KAAO+0B,GAAa;AACzB,UAAInF,IAAU,KAAK,SAAS5vB,CAAG;AAC/B,UAAK4vB;AACL,iBAASgH,KAAehH,EAAQ;AAC5B,UAAI8G,KAAWA,EAAQ,QAAQE,CAAW,MAAM,MAChDD,EAAQ,KAAK;AAAA,YACT,SAAS32B;AAAA,YACT,OAAO42B;AAAA,YACP,QAAQ,KAAK,MAAM,WAAW,IAAIA,CAAW;AAAA,UACjE,CAAiB;AAAA,IAET;AACA,WAAAD,EAAQ,KAAK,CAAC1kC,GAAGjB,MAAIiB,EAAE,QAAQjB,EAAE,KAAK,GAC/B2lC;AAAA,EACX;AAAA,EACA,+BAA+BH,GAAc;AACzC,QAAI,KAAK,oBAAoB,GAAI,QAAO;AAExC,QAAIK,IADS,KAAK,MAAM,kBAAkB,wBAAwB,KAAK,eAAe,EAC3D,yBAAyB;AACpD,aAASC,KAAgBD;AACrB,UAAIC,EAAa,iBAAiBN,EAAc,QAAOM,EAAa;AAExE,WAAO;AAAA,EACX;AAAA,EACA,oBAAoBC,GAAQ;AACxB,QAAIC,IAAa,KAAK,MAAM;AAC5B,QAAI,CAACA,EAAY,QAAO;AACxB,QAAI7d,IAAU6d,EAAW;AACzB,aAAQ9pC,IAAI,GAAGA,IAAIisB,EAAQ,QAAQjsB,KAAI;AACnC,UAAI+pC,IAAa9d,EAAQjsB,CAAC,EAAE,aAAa;AACzC,UAAI,KAAK,yBAAyB+pC,GAAYF,CAAM,EAAG,QAAO7pC;AAAA,IAClE;AACA,WAAO;AAAA,EACX;AAAA,EACA,yBAAyB+pC,GAAYF,GAAQ;AACzC,WAAOE,EAAW,MAAM,CAAC/6B,MAAY;AACjC,UAAIg7B,IAAQh7B,EAAU,YAAY66B,EAAO,SAASA,EAAO76B,EAAU,SAAS,IAAI;AAChF,aAAOA,EAAU,uBAAuBg7B,KAASA,KAASh7B,EAAU;AAAA,IACxE,CAAC;AAAA,EACL;AAAA,EACA,cAAc64B,GAAc3I,GAAQ+K,GAAU;AAC1C,QAAIR,IAAU,KAAK,mBAAmB5B,CAAY;AAClD,SAAK,aAAa4B,GAASvK,GAAQ+K,CAAQ;AAAA,EAC/C;AAAA,EACA,aAAaR,GAASvK,GAAQC,GAAW;AACrC,SAAK,SAASD,GACd,KAAK,YAAYC,GACjB,KAAK,gBAAgB,IAAQ+J,GAA0ChK,CAAM;AAC7E,aAAS,EAAE,SAASwD,GAAS,QAAQ9iC,EAAM,KAAM6pC;AAG7C,WAFA,KAAK,iBAAiB/G,GACtB,KAAK,cAAc,MAAM9iC,EAAO,KAAK,GAC/B,KAAK,cAAc,QAAQs/B,EAAO,UAAO;AAC3C,YAAI,EAAEwD,KAAW,KAAK,cAAc,IAAI,WAAW;AAC/C,eAAK,cAAc,KAAI;AACvB;AAAA,QACJ;AACA,iBAAS/2B,KAAS/L,EAAO;AAErB,cADU,KAAK,YAAYA,EAAO,YAAY+L,CAAK,EAC1C;AAEb,aAAK,cAAc,KAAI;AAAA,MAC3B;AAAA,EAER;AAAA,EACA,YAAY/L,GAAQ+L,GAAO;AACvB,UAAM,IAAI,MAAM,+CAA+C;AAAA,EACnE;AAAA,EACA,gBAAgBu+B,GAAe;AAC3B,QAAI/5B,IAAU,KAAK,cAAc,SAC7BivB,IAAa,KAAK,cAAc;AACpC,aAAS+K,KAAgBD,GAAc;AAEnC,WAAK,cAAc,MAAM/5B,GAASivB,CAAU,GAC5C,KAAK,cAAc,UAAU+K,EAAa,aAAa;AAEvD,UAAIvqC,IAAS,KAAK,MAAM,WAAW,IAAIuqC,EAAa,eAAe;AACnE,WAAK,cAAc,MAAMvqC,EAAO,OAAO,KAAK,cAAc,KAAK;AAE/D,eAAS+L,KAAS/L,EAAO;AACrB,YAAI,KAAK,YAAYA,EAAO,YAAY+L,CAAK,EAAG;AAAA,IAExD;AACA,gBAAK,cAAc,MAAMwE,GAASivB,CAAU,GACrC;AAAA,EACX;AAAA,EACA,cAAcgL,GAAUhX,GAAO;AAE3B,YADIA,KAAS,SAAMA,IAAQ,KAAK,cAAc,IAAI,KAC3CgX,EAAS,SAAO;AAAA,MACnB,KAAK;AACD,eAAOA,EAAS,OAAO,QAAQhX,CAAK;AAAA,MACxC,KAAK;AACD,iBAASxoB,KAASw/B,EAAS;AACvB,cAAIx/B,EAAM,SAASwoB,KAASA,KAASxoB,EAAM,IAAK,QAAOA,EAAM,qBAAqBwoB,IAAQxoB,EAAM;AAEpG;AAAA,IAChB;AACQ,WAAO;AAAA,EACX;AAAA,EACA,MAAMy/B,GAAeC,GAAUz+B,GAAI0+B,GAAS;AACxC,QAAIplC,IAAM,KAAK,cAAc,OACzBiuB,IAAQ,KAAK,cAAc,UAAUiX,CAAa,GAClDrsB,IAAM;AACV,WAAMA,IAAMssB,EAAS,UAAUlX,KAASvnB,EAAGy+B,EAAStsB,CAAG,GAAGoV,CAAK;AAC3D,MAAImX,KAASA,EAAQ,KAAK,KAAK,cAAc,KAAK,GAClDvsB,KACAoV,IAAQ,KAAK,cAAc,KAAI;AAGnC,WADA,KAAK,cAAc,QAAQjuB,GACvB6Y,IAAMssB,EAAS,SAAe,KAC3BC,KAAW;AAAA,EACtB;AAAA,EACA,gBAAgBF,GAAeC,GAAU;AACrC,WAAO,KAAK,MAAMD,GAAeC,GAAU,CAACvE,GAAW3S,MAAQ2S,MAAc3S,EAAM,EAAE;AAAA,EACzF;AAAA,EACA,qBAAqBiX,GAAeC,GAAU;AAC1C,WAAO,KAAK,MAAMD,GAAeC,GAAU,CAACvE,GAAW3S,MAE7C,KAAK,kBAAkBA,EAAM,WAC5B2S,MAAc3S,EAAM,KAD0B,IAEtD,CAAA,CAAE;AAAA,EACT;AAAA,EACA,wBAAwBiX,GAAeC,GAAU;AAC7C,WAAO,KAAK,MAAMD,GAAeC,GAAU,CAACF,GAAUhX,MAAQ,KAAK,cAAcgX,GAAUhX,EAAM,EAAE,KAAK,CAAC;AAAA,EAC7G;AAAA,EACA,WAAWA,GAAOoX,GAAU;AACxB,YAAOA,EAAS,SAAO;AAAA,MACnB,KAAK;AACD,YAAIxqC,IAAIozB,IAAQoX,EAAS;AACzB,YAAIxqC,KAAK,KAAKA,IAAIwqC,EAAS,gBAAgB,OAAQ,QAAOA,EAAS,gBAAgBxqC,CAAC;AACpF;AAAA,MACJ,KAAK;AACD,iBAAS4K,KAAS4/B,EAAS;AACvB,cAAI5/B,EAAM,SAASwoB,KAASA,KAASxoB,EAAM,IAAK,QAAOA,EAAM;AAEjE;AAAA,IAChB;AACQ,WAAO;AAAA,EACX;AAAA,EACA,qBAAqBy/B,GAAeC,GAAUE,GAAU;AACpD,WAAO,KAAK,MAAMH,GAAeC,GAAU,CAACG,GAASrX,MAAQqX,MAAY,KAAK,WAAWrX,EAAM,IAAIoX,CAAQ,CAAC;AAAA,EAChH;AAAA,EACA,aAAa7+B,GAAO;AAChB,QAAI6C,GAAOk8B;AACX,YAAO/+B,EAAM,SAAO;AAAA,MAChB,KAAK;AAED,YADA6C,IAAQ,KAAK,cAAc7C,EAAM,QAAQ,GACrC6C,MAAU,GAAI,QAAO;AACzB,QAAAk8B,IAAM/+B,EAAM,SAAS6C,CAAK;AAC1B,iBAASm8B,KAAQD;AACb,cAAI,KAAK,gBAAgB,GAAGC,EAAK,KAAK,EAAG,QAAO,KAAK,gBAAgBA,EAAK,aAAa;AAE3F;AAAA,MACJ,KAAK;AAGD,YAFI,KAAK,cAAch/B,EAAM,QAAQ,MAAM,OAC3C6C,IAAQ,KAAK,WAAW,KAAK,cAAc,IAAI,IAAI7C,EAAM,QAAQ,GAC7D6C,MAAU,IAAI,QAAO;AACzB,QAAAk8B,IAAM/+B,EAAM,SAAS6C,CAAK;AAC1B,iBAASm8B,KAAQD;AACb,cAAI,KAAK,qBAAqB,GAAGC,EAAK,SAASh/B,EAAM,QAAQ,EAAG,QAAO,KAAK,gBAAgBg/B,EAAK,aAAa;AAElH;AAAA,MACJ,KAAK;AACD,YAAI,KAAK,wBAAwB,GAAGh/B,EAAM,SAAS,EAAG,QAAO,KAAK,gBAAgBA,EAAM,aAAa;AACrG;AAAA,IAChB;AACQ,WAAO;AAAA,EACX;AAAA,EACA,qBAAqBA,GAAO;AACxB,QAAI6C;AACJ,YAAO7C,EAAM,SAAO;AAAA,MAChB,KAAK;AAED,YADA6C,IAAQ,KAAK,cAAc7C,EAAM,QAAQ,GACrC6C,MAAU,GAAI,QAAO;AACzB,YAAIk8B,IAAM/+B,EAAM,cAAc6C,CAAK;AACnC,iBAASm8B,KAAQD;AACb,cAAI,KAAK,gBAAgB,CAACC,EAAK,UAAU,QAAQA,EAAK,SAAS,KAAK,KAAK,gBAAgB,GAAGA,EAAK,KAAK,KAAK,KAAK,gBAAgB,IAAIA,EAAK,MAAM,QAAQA,EAAK,SAAS,EAAG,QAAO,KAAK,gBAAgBA,EAAK,aAAa;AAE1N;AAAA,MACJ,KAAK;AACD,YAAI,KAAK,cAAch/B,EAAM,QAAQ,MAAM,GAAI,QAAO;AACtD,QAAA6C,IAAQ,KAAK,WAAW,KAAK,cAAc,IAAI,IAAI7C,EAAM,aAAa;AACtE,YAAIi/B,IAAQj/B,EAAM,cAAc6C,CAAK;AACrC,YAAI,CAACo8B,EAAO,QAAO;AACnB,iBAASD,KAAQC;AACb,cAAI,KAAK,qBAAqB,CAACD,EAAK,UAAU,QAAQA,EAAK,WAAWh/B,EAAM,iBAAiB,KAAK,KAAK,qBAAqB,GAAGg/B,EAAK,OAAOh/B,EAAM,aAAa,KAAK,KAAK,qBAAqB,IAAIg/B,EAAK,MAAM,QAAQA,EAAK,WAAWh/B,EAAM,iBAAiB,EAAG,QAAO,KAAK,gBAAgBg/B,EAAK,aAAa;AAEhT;AAAA,MACJ,KAAK;AACD,YAAI,KAAK,wBAAwB,CAACh/B,EAAM,qBAAqBA,EAAM,iBAAiB,KAAK,KAAK,wBAAwB,GAAGA,EAAM,aAAa,KAAK,KAAK,wBAAwBA,EAAM,iBAAiBA,EAAM,iBAAiB,EAAG,QAAO,KAAK,gBAAgBA,EAAM,aAAa;AAC9Q;AAAA,IAChB;AACQ,WAAO;AAAA,EACX;AAAA,EACA,YAAY8c,GAAM9c,GAAM;AACpB,SAAK,OAAO8c,GACZ,KAAK,QAAQ9c,GACb,KAAK,SAAS,MACd,KAAK,YAAY,MACjB,KAAK,WAAW,MAChB,KAAK,cAAc,MACnB,KAAK,WAAW,CAAA,GAChB,KAAK,UAAU,CAAA,GAEf,KAAK,kBAAkB8c,EAAK,sBAAsB,KAAK,oBAAoBA,EAAK,oBAAoB,gBAAgB,IAAI,IAExH,KAAK,aAAY,GAEjB,KAAK,SAAS,CAAA,GACd,KAAK,YAAY,IACjB,KAAK,aAAa,GAClB,KAAK,iBAAiB;AAAA,EAC1B;AACJ;AAGA,MAAMoiB,GAAyC;AAAA,EAC3C,IAAI,KAAK;AACL,WAAO,KAAK;AAAA,EAChB;AAAA,EACA,IAAI,GAAGC,GAAI;AACP,SAAK,MAAMA,GACX,KAAK,cAAc;AACnB,QAAIC,IAAO,KAAK,MAAM;AACtB,QAAIA,KAAQA,EAAK,eAAe;AAE5B,UAAIN,IAAcrB,GAA0C,UAAU,WAAW0B,GAAIC,EAAK,aAAa;AACvG,WAAK,SAASN,MAAY,GAC1B,KAAK,aAAaA,MAAY,GAC9B,KAAK,SAASA,MAAY,GAC1B,KAAK,qBAAqBM,EAAK,qBAAyB3B,GAA0C,UAAU,WAAW0B,GAAIC,EAAK,kBAAkB,IAAI;AAAA,IAC1J;AACI,WAAK,SAAS,KAAK,WAAW,SAAS,KAAK,KAAK,WAAW,MAAUC,EAAa,GACnF,KAAK,SAAS,CAAC,KAAK,QACpB,KAAK,aAAa,KAAK,WAAW,SAAS,GAC3C,KAAK,qBAAqB;AAAA,EAElC;AAAA,EACA,OAAO;AACH,WAAO,IAAIH,GAAyC,KAAK,OAAO,KAAK,IAAI,KAAK,YAAY,KAAK,QAAQ;AAAA,EAC3G;AAAA,EACA,YAAYpiB,GAAMqiB,GAAItiC,IAAa,CAAA,GAAI+4B,GAAS;AAK5C,QAJA,KAAK,QAAQ9Y,GACb,KAAK,aAAajgB,GAClB,KAAK,KAAKsiC,GACV,KAAK,WAAW,CAAA,GACZ,MAAM,QAAQvJ,CAAQ,EAAG,UAAQvhC,IAAI,GAAGA,IAAIuhC,EAAS,QAAQvhC,KAAI;AACjE,UAAI0iC,IAAUnB,EAASvhC,CAAC;AACxB,WAAK,SAAS0iC,CAAO,IAAI;AAAA,IAC7B;AAAA,QACK,CAAI,OAAOnB,KAAa,YAAU,OAAO,OAAO,KAAK,UAAUA,CAAQ;AAC5E,SAAK,aAAa,MAClB,KAAK,oBAAoB,MACzB,KAAK,YAAY,IACjB,KAAK,oBAAoB,MACzB,KAAK,iBAAiB,MACtB,KAAK,aAAa,MAClB,KAAK,cAAc,IACnB,KAAK,eAAe;AAAA,EACxB;AACJ;AAGA,MAAM0J,WAAqDtD,GAA0C;AAAA,EACjG,OAAO,aAAaC,GAAM;AACtB,IAAAA,EAAK,IAAI;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACZ,GAAW,EAAK;AAAA,EACZ;AAAA,EACA,OAAO,eAAeA,GAAM1I,GAAQ;AAChC,QAAI7nB,IAAQ,GACRrX,IAAI;AACR,WAAMA,IAAIk/B,EAAO,UAAO;AACpB,UAAI2G,GAEA9lC,IADQm/B,EAAOl/B,CAAC,EACH,WAAW,CAAC,GACzBkL,IAAOggC,GAA8BnrC,CAAI;AAE7C,cADA,CAAC8lC,GAAQxuB,CAAK,IAAI8zB,GAAkC9zB,CAAK,EAAEnM,CAAI,GACxD26B,GAAM;AAAA,QACT,KAAKuF;AAED,UAAKxD,EAAK,KAAK,qBAAqB7nC,CAAI,MAAGC,IAAIqrC,GAAgCnM,GAAQl/B,GAAG4nC,EAAK,IAAI;AACnG;AAAA,QACJ,KAAK0D;AAED,UAAAtrC,IAAIurC,GAA8BrM,GAAQl/B,GAAG4nC,EAAK,IAAI;AACtD;AAAA,QACJ,KAAK4D;AAED,UAAAC,GAAsCvM,GAAQl/B,GAAG4nC,EAAK,IAAI;AAC1D;AAAA,QACJ,KAAK8D;AAED,UAAA1rC,IAAI2rC,GAAyCzM,GAAQl/B,GAAG4nC,EAAK,IAAI;AACjE;AAAA,MACpB;AACY,MAAA5nC;AAAA,IACJ;AAAA,EACJ;AACJ;AACI+nC,GAAUkD,IAA0C,kBAAkB,MAAM;AAChF,MAAMW,KAAoC,OACpCC,KAAmC,OACnCC,KAAqCD,KAAmCD,KAAoC,GAC5GG,KAA+B,MAC/BC,KAA+B,MAC/BC,KAA+B,MAC/BC,KAAgC,IAChCC,KAAgC,IAChCC,KAAgC,IAChCC,KAA8BN,KAA+BG,KAAgC,GAC7FI,KAA8BN,KAA+BG,KAAgC,GAC7FI,KAA8BN,KAA+BG,KAAgC,GAC7FI,KAAsC,MACtCC,KAA4B,CAAC1sC,MAAO,QAAUA,KAAQA,KAAQ,QAAU,SAAUA,KAAQA,KAAQ,OAClG2sC,KAA4B,CAAC3sC,MAAO,QAAUA,KAAQA,KAAQ,QAAU,SAAUA,KAAQA,KAAQ,OAClG4sC,KAA4B,CAAC5sC,MAAO,QAAUA,KAAQA,KAAQ,QAAU,SAAUA,KAAQA,KAAQ,OAClG6sC,KAA+B,CAAC7sC,MAAO,SAAUA,KAAQA,KAAQ,OACjE8sC,KAA8B,CAAC9sC,MAAO6rC,MAAqC7rC,KAAQA,KAAQ8rC,IAC3FiB,KAA6B,CAAC/sC,MAAOA,IAAO6rC,KAAoCE,OAAuC/rC,IAAO6rC,MAAqCQ,OAAkC,GACrMW,KAAqC,CAAChtC,MAAOgsC,MAAgChsC,KAAQA,KAAQssC,IAC7FW,KAAqC,CAACjtC,MAAOisC,MAAgCjsC,KAAQA,KAAQusC,IAC7FW,KAAqC,CAACltC,MAA2C,KAAKA,KAAQA,KAAQwsC,IAEtGW,KAA0B,GAC1BC,KAA0B,GAC1BC,KAA0B,GAC1BC,KAA0B,GAC1BC,KAA2B,GAC3BC,KAA4B,GAC5BC,KAA0B;AAEhC,SAAStC,GAA8BnrC,GAAM;AACzC,SAAI0sC,GAA0B1sC,CAAI,IAAUotC,KACxCT,GAA0B3sC,CAAI,IAAUqtC,KACxCT,GAA0B5sC,CAAI,IAAUstC,KACxCP,GAA2B/sC,CAAI,IAAUutC,KACzCT,GAA4B9sC,CAAI,IAAUwtC,KAC1CX,GAA6B7sC,CAAI,IAAUytC,KACxCN;AACX;AAEA,MAAMO,KAAkC,GAClCrC,KAAkC,GAClCE,KAAgC,GAChCE,KAAkC,GAClCE,KAAgC,GAGhCP,KAAoC;AAAA;AAAA;AAAA,EAGtC;AAAA,IACI;AAAA,MACIsC;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIrC;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIM;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACI+B;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACInC;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACImC;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIrC;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIM;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACI+B;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACInC;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIF;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACII;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AAAA;AAAA,EAEI;AAAA,IACI;AAAA,MACIiC;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIrC;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACIA;AAAA,MACA;AAAA,IACZ;AAAA,IACQ;AAAA,MACII;AAAA,MACA;AAAA,IACZ;AAAA,EACA;AACA;AACA,SAASkC,GAA+BjlB,GAAM1oB,GAAMwhC,GAAU;AAC1D,SAAO,IAAQsJ,GAA0CpiB,GAAMA,EAAK,kBAAkB1oB,CAAI,EAAE,IAAI;AAAA,IAC5FA;AAAA,EACR,GAAOwhC,CAAQ;AACf;AACA,SAAS8J,GAAgCnM,GAAQl/B,GAAGyoB,GAAM;AACtD,MAAI2K,IAAQ8L,EAAOl/B,CAAC,GAEhB,IADOozB,EAAM,WAAW,CAAC,IACdwY,IACXr5B,IAAI05B,KAA+B,IAAIG;AAC3C,MAAI,IAAIA,KAAgC;AACxC,MAAIuB,IAAI5B,KAA+B,IAAII,KAAgC,GACvEtqB,IAAImqB,KAA+B,IAAIG;AAE3C,MAAI,CAAC1jB,EAAK,qBAAqBklB,CAAC,KAAK,CAACllB,EAAK,qBAAqB5G,CAAC,KAAKtP,MAAM05B,MAAgC,CAACxjB,EAAK,qBAAqBlW,CAAC,EAAG,QAAOvS;AAGlJ,MAAI4tC,IAAOF,GAA+BjlB,GAAMklB,GAAGva,EAAM,QAAQ;AACjE,EAAAwa,EAAK,SAAS,OAAO;AACrB,MAAIC,IAAOH,GAA+BjlB,GAAM5G,GAAGuR,EAAM,QAAQ;AACjE,EAAAya,EAAK,SAAS,OAAO;AACrB,MAAIC,IAAS;AAAA,IACTF;AAAA,IACAC;AAAA,EACR;AACI,MAAIt7B,IAAI05B,IAA8B;AAClC,QAAI8B,IAAOL,GAA+BjlB,GAAMlW,GAAG6gB,EAAM,QAAQ;AACjE,IAAA2a,EAAK,SAAS,OAAO,IACrBD,EAAO,KAAKC,CAAI;AAAA,EACpB;AACA,SAAA7O,EAAO,OAAOl/B,GAAG,GAAG,GAAG8tC,CAAM,GACtB9tC,IAAI8tC,EAAO,SAAS;AAC/B;AACA,SAASvC,GAA8BrM,GAAQl/B,GAAGyoB,GAAM;AACpD,MAAI2K,IAAQ8L,EAAOl/B,CAAC,GAChBD,IAAOm/B,EAAOl/B,CAAC,EAAE,WAAW,CAAC,GAC7BkL,IAAOggC,GAA8BnrC,CAAI,GACzCqT,IAAO8rB,EAAOl/B,IAAI,CAAC,EAAE,WAAW,CAAC,GACjCguC,IAAW9C,GAA8B93B,CAAI,GAE7C66B,GAAIL,GAAMC,GAAME;AACpB,MAAIC,MAAaV,MAA4BpiC,MAASmiC;AAElD,IAAAY,IAAK76B,GACL26B,IAAO3a;AAAA,OACJ;AACH,IAAIloB,MAASkiC,MAETQ,IAAO1O,EAAOl/B,IAAI,CAAC,GACnB6tC,IAAOza,MAGPwa,IAAO1O,EAAOl/B,IAAI,CAAC,GACnB6tC,IAAO3O,EAAOl/B,IAAI,CAAC,GACnB+tC,IAAO3a;AAEX,QAAIua,IAAIC,EAAK,WAAW,CAAC,GACrB/rB,IAAIgsB,EAAK,WAAW,CAAC;AAEzB,IAAId,GAAmCY,CAAC,KAAKX,GAAmCnrB,CAAC,MAAGosB,IAAKrC,OAAsC+B,IAAI5B,MAAgCI,MAAiCtqB,IAAImqB,OAAiCI;AAAA,EAC7O;AACA,MAAI75B,IAAIw7B,KAAQA,EAAK,WAAW,CAAC,KAAK9B;AACtC,MAAIgC,KAAM,SAAS17B,MAAM05B,MAAgCgB,GAAmC16B,CAAC,IAAI;AAC7F,QAAIrQ,IAAI+rC,KAAM17B,IAAI05B;AAGlB,QAAIxjB,EAAK,qBAAqBvmB,CAAC,GAAG;AAC9B,UAAIgsC,IAAMF,MAAaZ,KAA0B,IAAI;AACrD,aAAAlO,EAAO,OAAOl/B,IAAIkuC,IAAM,GAAGA,GAAKR,GAA+BjlB,GAAMvmB,GAAGkxB,EAAM,QAAQ,CAAC,GAChFpzB,IAAIkuC,IAAM;AAAA,IACrB;AAAA,EACJ;AAKA,SAHIN,MAAMA,EAAK,SAAS,OAAO,KAC3BC,MAAMA,EAAK,SAAS,OAAO,KAC3BE,MAAMA,EAAK,SAAS,OAAO,KAC3BC,MAAaV,MAIbjC,GAAgCnM,GAAQl/B,IAAI,GAAGyoB,CAAI,GAC5CzoB,IAAI,KAERA;AACX;AACA,SAASmuC,GAAgCpuC,GAAM;AAC3C,UAAOmrC,GAA8BnrC,CAAI,GAAC;AAAA,IACtC,KAAKutC;AAAA,IACL,KAAKC;AACD,aAAO;AAAA,IACX,KAAKH;AACD,aAAO;AAAA,IACX,KAAKC;AACD,aAAO;AAAA,EACnB;AACA;AACA,SAAS5B,GAAsCvM,GAAQl/B,GAAGyoB,GAAM;AAC5D,MAAI2K,IAAQ8L,EAAOl/B,CAAC,GAChBD,IAAOm/B,EAAOl/B,CAAC,EAAE,WAAW,CAAC;AAEjC,MAAIyoB,EAAK,kBAAkB1oB,CAAI,EAAE,iBAAiB,EAAG;AACrD,MAAIqT,IAAO8rB,EAAOl/B,IAAI,CAAC,EAAE,WAAW,CAAC,GACjCC,IAAMkuC,GAAgC/6B,CAAI;AAC9C,SAAA8rB,EAAO,OAAOl/B,GAAG,CAAC,GACXk/B,EAAO,OAAOl/B,IAAIC,GAAK,GAAGmzB,CAAK;AAC1C;AACA,SAASuY,GAAyCzM,GAAQl/B,GAAGyoB,GAAM;AAC/D,MAAI2K,IAAQ8L,EAAOl/B,CAAC,GAChBD,IAAOm/B,EAAOl/B,CAAC,EAAE,WAAW,CAAC;AACjC,MAAIyoB,EAAK,qBAAqB+jB,EAAmC,GAAG;AAChE,QAAI4B,IAAeV,GAA+BjlB,GAAM+jB,IAAqCpZ,EAAM,QAAQ,GAEvGpV,IAAMyK,EAAK,kBAAkB1oB,CAAI,EAAE,iBAAiB,IAAIC,IAAIA,IAAI;AACpE,IAAAk/B,EAAO,OAAOlhB,GAAK,GAAGowB,CAAY,GAClCpuC;AAAA,EACJ;AACA,SAAOA;AACX;AAUA,IAAIquC,KAA4B,CAAA;AAChCA,KAA4B,KAAK,MAAM,it1CAAmm3C;AAG1o3C,IAAIC,KAA4B,CAAA;AAChCA,KAA4B,KAAK,MAAM,4nOAAo5O;AAK37O,MAAMC,KAA4C;AAAA,EAC9C,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,MAAM;AAAA,EACN,KAAK;AAAA,EACL,GAAG;AAAA,EAIH,aAAa;AAAA,EACb,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAER,GACMC,IAA4C;AAAA,EAC9C,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,YAAY;AAAA,EAEZ,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,WAAW;AAAA,EACX,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,MAAM;AAAA,EACN,KAAK;AACT,GACMC,KAA2CF,GAA0C,IAAIA,GAA0C,KAAKA,GAA0C,KAAKA,GAA0C,IAAIA,GAA0C,cAAcA,GAA0C,eACvUG,KAA4CH,GAA0C,MAAMA,GAA0C,MACtII,KAA2CJ,GAA0C,IAAIA,GAA0C,OACnIK,KAA4C;AAAA,EAC9C,SAAS;AAAA,IACL,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASJ,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA,EACI,YAAY;AAAA,IACR,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA,EACI,SAAS;AAAA,IACL,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA,EACI,UAAU;AAAA,IACN,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA,EACI,UAAU;AAAA,IACN,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA,EACI,OAAO;AAAA,IACH,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA,EACI,OAAO;AAAA,IACH,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA,EACI,QAAQ;AAAA,IACJ,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA,EACI,SAAS;AAAA,IACL,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA,EACI,WAAW;AAAA,IACP,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUI,OAAO;AAAA,IACH,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,SAASA,EAA0C;AAAA,IACnD,UAAU;AAAA,IACV,UAAU;AAAA,EAClB;AACA,GACMK,KAA4C;AAAA;AAAA,EAE9C,MAAQ;AAAA,IACJ;AAAA,IACA;AAAA,EACR;AAAA,EACI,MAAQ;AAAA,IACJ;AAAA,IACA;AAAA,EACR;AAAA,EACI,MAAQ;AAAA,IACJ;AAAA,IACA;AAAA,EACR;AAAA,EACI,MAAQ;AAAA,IACJ;AAAA,IACA;AAAA,EACR;AAAA,EACI,MAAQ;AAAA,IACJ;AAAA,IACA;AAAA,EACR;AACA,GAIM,EAAE,gBAAgBC,GAAoC,IAAuB,gBAAAt5B,GAAuB84B,EAAyB,GAC7HS,KAA6B,IAAQ9G,GAAwBnK,GAA2C,kqKAAkqK,CAAC,GAC3wKkR,KAAqC,IAAQC,GAA8B,gBAAAz5B,GAAuB64B,EAAyB,CAAE;AACnI,MAAMa,WAAqDvH,GAA0C;AAAA,EACjG,OAAO,aAAaC,GAAM;AACtB,IAAAA,EAAK,SAASuH,EAAoC,GAClDvH,EAAK,SAAS;AAAA,MACV;AAAA,MACA;AAAA,IACZ,CAAS,GACDA,EAAK,SAASwH,EAAuC,GACrDxH,EAAK,SAAS,MAAM,GACpBA,EAAK,SAAS,MAAM,GACpBA,EAAK,SAAS,QAAQ,EAAK,GAC3BA,EAAK,SAAS,MAAM,GACpBA,EAAK,SAAS,QAAQ,EAAK,GAC3BA,EAAK,SAAS,QAAQ,EAAK,GAC3BA,EAAK,SAAS,QAAQ,EAAK,GAC3BA,EAAK,SAAS,QAAQ,EAAK,GAC3BA,EAAK,SAAS,QAAQ,EAAK,GAC3BA,EAAK,SAAS,MAAM,GACpBA,EAAK,SAAS,MAAM,GACpBA,EAAK,SAAS,QAAQ,EAAK,GAC3BA,EAAK,SAASyH,EAAqC,GACnDzH,EAAK,SAAS;AAAA,MACV,OAAO;AAAA,QACH;AAAA,MAChB;AAAA,MACY,QAAQ;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAChB;AAAA,IACA,CAAS,GAEDA,EAAK,gBAAgB9G,GAA0C8G,EAAK,MAAM,GAC1EA,EAAK,cAAkBgH,GAA2ChH,EAAK,aAAa,KAASgH,GAA2C,SACxIhH,EAAK,YAAYA,EAAK,YAAY,cAAcA,EAAK,OAAOA,EAAK,OAAO,SAAS,CAAC,MAAM;AAAA,EAE5F;AAAA,EACA,OAAO,eAAeA,GAAM1I,GAAQ;AAGhC,aAAQl/B,IAAIk/B,EAAO,SAAS,GAAGl/B,KAAK,GAAGA,KAAI;AACvC,UAAIw+B,IAAYU,EAAOl/B,CAAC,EAAE,WAAW,CAAC,GAClCiC,IAAQ4sC,GAA2CrQ,CAAS,KAAKsQ,GAAqCtQ,CAAS;AACnH,UAAIv8B,GAAG;AACH,YAAIqtC,IAAartC,EAAE,IAAI,CAAC,MAAI;AACxB,cAAI88B,IAAI6I,EAAK,KAAK,kBAAkB,CAAC;AACrC,iBAAO,IAAQiD,GAA0CjD,EAAK,MAAM7I,EAAE,IAAI;AAAA,YACtE;AAAA,UACxB,GAAuBG,EAAOl/B,CAAC,EAAE,QAAQ;AAAA,QACzB,CAAC;AACD,QAAAk/B,EAAO,OAAOl/B,GAAG,GAAG,GAAGsvC,CAAU;AAAA,MACrC;AAAA,IACJ;AAAA,EACJ;AACJ;AACIvH,GAAUmH,IAA0C,kBAAkB,MAAM;AAChF,SAASK,GAAoCnc,GAAO;AAChD,SAAO2b,GAA2B,IAAI3b,EAAM,WAAW,CAAC,CAAC,KAAK;AAClE;AACA,SAASoc,GAAoCpc,GAAO;AAChD,SAAO,MAAM2b,GAA2B,IAAI3b,EAAM,WAAW,CAAC,CAAC,IAAI;AACvE;AACA,MAAMqc,GAAgC;AAAA,EAClC,YAAY14B,GAAUopB,GAAUuP,GAAcC,GAAS;AACnD,SAAK,WAAW54B,GAChB,KAAK,WAAWopB,GAChB,KAAK,eAAeuP,GACpB,KAAK,WAAWC;AAAA,EACpB;AACJ;AACA,SAASR,GAAqC1mB,GAAMyW,GAAQ;AACxD,MAAIyQ,IAAW,GACXtmC,IAAO;AACX,WAAS,CAACtI,GAAOC,GAAK2W,CAAI,KAAKq3B,GAAmC,MAAM9P,EAAO,IAAIqQ,EAAmC,CAAC,GAAE;AACrH,QAAIxuC,IAAQsI,GAAM;AACd,QAAEsmC;AACF,eAAQ3vC,IAAIqJ,GAAMrJ,IAAIe,GAAOf,IAAI,CAAAk/B,EAAOl/B,CAAC,EAAE,aAAa,IAAIyvC,GAAoClB,GAA2C,GAAOC,EAA2C,KAAK,qBAAqBmB,CAAQ;AAAA,IACnO;AACA,MAAEA;AAEF,aAAQ3vC,IAAIe,GAAOf,KAAKgB,GAAKhB,IAAI,CAAAk/B,EAAOl/B,CAAC,EAAE,aAAa,IAAIyvC,GAAgC,KAAKF,GAAoCrQ,EAAOl/B,CAAC,CAAC,GAAGwvC,GAAoCtQ,EAAOl/B,CAAC,CAAC,GAAG2X,EAAK,CAAC,GAAGg4B,CAAQ;AAClN,IAAAtmC,IAAOrI,IAAM;AAAA,EACjB;AACA,MAAIqI,IAAO61B,EAAO,QAAQ;AACtB,MAAEyQ;AACF,aAAQ3vC,IAAIqJ,GAAMrJ,IAAIk/B,EAAO,QAAQl/B,IAAI,CAAAk/B,EAAOl/B,CAAC,EAAE,aAAa,IAAIyvC,GAAoClB,GAA2C,GAAOC,EAA2C,KAAK,qBAAqBmB,CAAQ;AAAA,EAC3O;AACJ;AACA,SAASC,GAAkCxc,GAAO;AAC9C,SAAOA,EAAM,WAAW,WAAeqb;AAC3C;AACA,SAASoB,GAA+Bzc,GAAO;AAC3C,SAAOA,EAAM,WAAW,WAAesb;AAC3C;AACA,SAASoB,GAAsC1c,GAAO;AAClD,SAAOA,EAAM,WAAW,WAAeub;AAC3C;AACA,SAASoB,GAAsC7Q,GAAQwD,GAAS;AAC5D,WAAStP,KAAS8L,EAAO,CAAA9L,EAAM,WAAW;AAAA,IACtC,CAACsP,CAAO,GAAG;AAAA,EACnB;AAEI,SADWxD,EAAO,CAAC,EAAE,MAAM,cAAc,OAAO,cAC3C,cAAc;AAAA,IACfwD;AAAA,EACR,GAAOxD,CAAM,GACFA,EAAO,WAAW;AAC7B;AACA,SAAS8Q,GAAwCvnB,GAAMwnB,GAAWC,GAAQ;AACtE,MAAIhR,IAAS;AAAA,IACTgR;AAAA,IACAD;AAAA,IACAC;AAAA,EACR;AACI,SAAIH,GAAsC7Q,EAAO,MAAM,GAAG,CAAC,GAAG,MAAM,KAAK6Q,GAAsC7Q,EAAO,MAAM,GAAG,CAAC,GAAG,MAAM,IAAcsP,EAA2C,UACzLuB,GAAsC7Q,EAAO,MAAM,GAAG,CAAC,GAAG,MAAM,KAAK6Q,GAAsC7Q,EAAO,MAAM,GAAG,CAAC,GAAG,MAAM,KACrI6Q,GAAsC7Q,EAAO,MAAM,GAAG,CAAC,GAAG,MAAM,KAAK6Q,GAAsC7Q,EAAO,MAAM,GAAG,CAAC,GAAG,MAAM,IADcsP,EAA2C,SAE5LA,EAA2C;AAC1D;AACA,SAASY,GAAwC3mB,GAAMyW,GAAQ0I,GAAM;AACjE,MAAIuI,IAAcvI,EAAK,aACnBrG,IAAW9Y,EAAK,cAAc,OAAO,cAAc,UACnD2lB,IAAe3lB,EAAK,kBAAkB,IAAM,EAAE,IAC9CynB,IAASznB,EAAK,kBAAkB0nB,EAAY,MAAM,EAAE;AACxD,MAAID,GAAQ;AACR,QAAIE,IAAO,IAAQvF,GAA0CpiB,GAAMynB,GAAQ;AAAA,MACvEC,EAAY;AAAA,IACxB,CAAS;AACD,aAAQnwC,IAAI,GAAGA,IAAIk/B,EAAO,QAAQl/B,IAAI,CAAIk/B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBwuC,EAA2C,WAAQtP,EAAOl/B,CAAC,EAAE,WAAW,WAAWgwC,GAAwCvnB,GAAMyW,EAAOl/B,CAAC,EAAE,KAAI,GAAIowC,CAAI;AAAA,EAC3O;AACA,WAAQrvC,IAAQ,GAAGC,IAAMqvC,GAAmCnR,GAAQ,CAAC,GAAGn+B,IAAQm+B,EAAO,QAAQn+B,IAAQC,GAAKA,IAAMqvC,GAAmCnR,GAAQn+B,CAAK,GAAE;AAChK,QAAI,EAAE,UAAUgW,GAAU,cAAc24B,EAAY,IAAKxQ,EAAOn+B,CAAK,EAAE;AACvE,QAAI2uC,MAAiB,oBAAoBA,MAAiB,oBAAqB;AAC/E,QAAIA,MAAiB,oBAAoBtB,GAAc;AACnD,UAAIrP,IAAI,IAAQ8L,GAA0CpiB,GAAM2lB,GAAc;AAAA,QAC1E;AAAA,MAChB,CAAa;AACD,MAAArP,EAAE,aAAa,IAAI0Q,GAAgC,KAAKF,GAAoCxQ,CAAC,GAAGyQ,GAAoCzQ,CAAC,GAAGG,EAAOn+B,CAAK,EAAE,WAAW,cAAcm+B,EAAOn+B,CAAK,EAAE,WAAW,QAAQ;AAEhN,UAAIf,IAAIe;AACR,aAAMf,IAAIgB,KAAOk+B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,QAAM,CAAAvuC;AACxG,MAAAk/B,EAAO,OAAOl/B,KAAK,GAAG++B,CAAC,GACvB/9B;AAAA,IACJ;AASA,QAAI+Q,IAAO/Q,GACP+I,IAAQhJ,GACRuvC,IAAU;AAId,QAAIH,EAAY,YAAgB3B,EAA2C,qBAAqBjN,EAAS,QAAQxgC,IAAQ,KAAKC,MAAQmvC,EAAY,aAAa,cAAc,CAACN,GAA+B3Q,EAAOn+B,IAAQ,CAAC,CAAC,KAAKovC,EAAY,aAAa,cAAcjR,EAAOn+B,IAAQ,CAAC,EAAE,WAAW,aAAiBwtC,GAA2C,MAAM;AAErW,UAAIxP,IAAI;AAAA,QACJG,EAAOn+B,CAAK,EAAE,KAAI;AAAA,QAClBm+B,EAAOn+B,IAAQ,CAAC,EAAE,KAAI;AAAA,QACtBm+B,EAAOn+B,IAAQ,CAAC,EAAE,KAAI;AAAA,MACtC;AACY,UAAIgvC,GAAsChR,EAAE,MAAM,GAAG,CAAC,GAAG,MAAM,KAAKoR,EAAY,aAAa,cAAcJ,GAAsChR,GAAG,MAAM,GAAG;AAEzJ,aADAh1B,KAAS,GACHA,IAAQ/I,KAAO6uC,GAA+B3Q,EAAOn1B,CAAK,CAAC,IAAE,CAAAA;AACnE,QAAAgI,IAAOhR,GACPuvC,IAAU;AAAA,MACd;AAAA,IACJ,WAAWH,EAAY,aAAa,eAAejR,EAAOn+B,CAAK,EAAE,WAAW,aAAiBwtC,GAA2C,OAAO;AAE3I,WADAxkC,KACMA,IAAQ/I,KAAO6uC,GAA+B3Q,EAAOn1B,CAAK,CAAC,IAAE,CAAAA;AACnE,MAAAgI,IAAOhR,GACPuvC,IAAU;AAAA,IACd;AACA,YAAOH,EAAY,SAAO;AAAA,MACtB,KAAK,QACD;AAEI,YAAInwC,IAAIgB,GACJuvC,IAAY;AAChB,WAAG;AACC,cAAIH,IAAOlR,EAAO,EAAEl/B,CAAC,EAAE;AAEvB,cAAI4vC,GAAkC1Q,EAAOl/B,CAAC,CAAC,GAAG;AAG9C,gBAAIowC,EAAK,aAAiB5B,EAA2C,YAAY4B,EAAK,aAAiB5B,EAA2C,UAAU+B,IAAY;AACpK,cAAAx+B,IAAO/R;AACP;AAAA,YACJ;AAUA,YAAIowC,EAAK,aAAiB5B,EAA2C,YAAS+B,IAAY,KAC1Fx+B,IAAO/R;AAAA,UACX,WAAWe,IAAQf,KAAKowC,EAAK,aAAiB7B,GAA2C,OAAOrP,EAAOl/B,IAAI,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,EAAG;AAAA,QAC5L,SAAQvuC,IAAI+J;AACZ;AAAA,MACJ;AAAA,MACJ,KAAK;AAED,QAAAgI,IAAOhR;AAEP,iBAAQf,IAAI+R,IAAO,GAAG/R,IAAIgB,GAAKhB,IAAI,CAAI4vC,GAAkC1Q,EAAOl/B,CAAC,CAAC,MAAGk/B,EAAOl/B,CAAC,EAAE,WAAW,WAAewuC,EAA2C;AAAA,IACpL;AAMQ,IAAI8B,KAAWv+B,MAAShR,KAASgJ,IAAQgI,KAAQ,MAAGu+B,IAAU;AA4B9D,aAAQtwC,IAAIe,GAAOf,IAAI+R,GAAM/R,KAAI;AAC7B,UAAIowC,IAAOlR,EAAOl/B,CAAC,EAAE;AACrB,MAAAowC,EAAK,WAAW,KAAK,IAAQ5B,EAA2C,OAAO4B,EAAK,QAAQ;AAAA,IAChG;AACA,IAAIr+B,IAAO/Q,MAAKk+B,EAAOntB,CAAI,EAAE,WAAW,WAAey8B,EAA2C;AAGlG,aAAQxuC,IAAI+R,IAAO,GAAG/R,IAAIgB,GAAKhB,IAAI,KAAIk/B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,GAAG;AACvH,eAAQrnC,IAAIlH,IAAI,GAAGkH,IAAIlG,GAAKkG,IAAI,KAAI0oC,GAAkC1Q,EAAOh4B,CAAC,CAAC,GAAG;AAC9E,QAAAg4B,EAAOh4B,CAAC,EAAE,WAAW,WAAesnC,EAA2C;AAC/E;AAAA,MACJ;AACA;AAAA,IACJ;AAmBA,QAjBI8B,MAASpR,EAAOn+B,CAAK,EAAE,WAAW,WAAeytC,EAA2C,oBAiB5F5G,EAAK,WAAW;AAChB,UAAI4I,IAAwB5I,EAAK,kBAAkB;AACnD,eAAQ5nC,IAAI+R,IAAO,GAAG/R,IAAIgB,GAAKhB,IAAI,KAAIk/B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,GAAG;AACvH,YAAIrnC;AACJ,aAAIA,IAAIlG,IAAM,GAAGkG,IAAIlH,KACb,EAAA4vC,GAAkC1Q,EAAOh4B,CAAC,CAAC,KAAKspC,KAAyBtR,EAAOh4B,CAAC,EAAE,WAAW,aAAiBqnC,GAA2C,IAD1IrnC;AACpB;AAEJ,YAAIg4B,EAAOh4B,CAAC,EAAE,WAAW,aAAiBqnC,GAA2C,KAAKrnC,IAAIlH,GAAG;AAE7F,cAAIuS,KAAI2sB,EAAOl/B,CAAC;AAChB,UAAAk/B,EAAO,OAAOl/B,GAAG,GAAG,GAAGk/B,EAAO,OAAOl/B,IAAI,GAAGkH,IAAIlH,CAAC,CAAC,GAClDk/B,EAAOh4B,CAAC,IAAIqL;AAAA,QAChB;AACA;AAAA,MACJ;AAAA,IACJ;AAEA,QAAIk+B,IAAcjC,EAA2C;AAC7D,aAAQxuC,IAAIe,GAAOf,IAAIgB,GAAKhB,KAAI;AAC5B,UAAIowC,IAAOlR,EAAOl/B,CAAC,EAAE;AACrB,UAAIowC,EAAK,YAAgB1B,KAAiDH,GAA2C,IAAQA,GAA2C,KAASA,GAA2C,KAASI,KAA4CyB,EAAK;AAElR,YADAA,EAAK,WAAWK,GACZL,EAAK,aAAiB7B,GAA2C,KAAK6B,EAAK,aAAiB5B,EAA2C;AAQvI,mBAAQtnC,IAAIlH,GAAGkH,IAAInG,GAAOmG,IAAI,KAAIg4B,EAAOh4B,IAAI,CAAC,EAAE,WAAW,aAAiBsnC,EAA2C,OAAO;AAC1H,YAAA4B,EAAK,WAAWlR,EAAOh4B,IAAI,CAAC,EAAE,WAAW;AACzC;AAAA,UACJ;AAAA;AAAA,YAED,CAAIkpC,EAAK,aAAiB5B,EAA2C,SAAMiC,IAAUL,EAAK;AAAA,IACrG;AAGA,QAAI/mC,IAAO0I;AACX,aAAQ/R,IAAI+R,IAAO,GAAG/R,IAAIgB,GAAKhB;AAC3B,UAAI4vC,GAAkC1Q,EAAOl/B,CAAC,CAAC,GAAG;AAC9C,iBAAQkH,IAAImC,IAAO,GAAGnC,IAAIlH,GAAGkH,IAAI,CAAIg4B,EAAOh4B,CAAC,EAAE,WAAW,WAAesnC,EAA2C,SAAMtP,EAAOh4B,CAAC,EAAE,WAAW,WAAWg4B,EAAOl/B,CAAC,EAAE,WAAW;AAC/K,QAAAqJ,IAAOrJ;AAAA,MACX,MAAO,CAAIk/B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,MAAGllC,IAAOrJ;AAE1G,QAAIS,IAAMy+B,EAAO,MAAMn+B,GAAOC,CAAG;AACjC,IAAAP,EAAI,KAAK,CAACsE,GAAGjB,MAAIiB,EAAE,WAAW,WAAWjB,EAAE,WAAW,QAAQ,GAC9Do7B,EAAO,OAAOn+B,GAAON,EAAI,QAAQ,GAAGA,CAAG;AAEvC,aAAQT,IAAIe,GAAOf,IAAIgB,GAAKhB,IAAI,KAAIk/B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBwuC,EAA2C,QAAQ;AACzH,MAAAz8B,IAAO/R;AACP;AAAA,IACJ;AAGA,aAAQA,IAAIe,GAAOf,IAAIgB,KAAOk+B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBwuC,EAA2C,mBAAmBxuC,IAAI,CAAAk/B,EAAOl/B,CAAC,EAAE,SAAS,OAAO;AAEhK,QAAI0wC,IAAO,CAAC9I,EAAK,aAAauI,EAAY,aAAa;AACvD,aAAQnwC,IAAIe,GAAOf,IAAI+R,GAAM/R;AACzB,MAAAk/B,EAAOl/B,CAAC,EAAE,SAAS,OAAO,IACtB0wC,MAAMxR,EAAOl/B,CAAC,EAAE,SAAS,OAAO;AAGxC,aAAQA,IAAI+R,IAAO,GAAG/R,IAAIgB,GAAKhB;AAC3B,MAAAk/B,EAAOl/B,CAAC,EAAE,SAAS,OAAO,IAC1Bk/B,EAAOl/B,CAAC,EAAE,SAAS,OAAO,IAC1Bk/B,EAAOl/B,CAAC,EAAE,SAAS,OAAO;AAE9B,QAAI4nC,EAAK,aAAaA,EAAK,kBAAkB;AAkBzC,eAAQ5nC,IAAIe,GAAOf,IAAI,IAAI+R,GAAM/R,IAAI,CAAIk/B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,MAAMrP,EAAOl/B,IAAI,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,MAAMvuC,IAAI,MAAM+R,KAAQmtB,EAAOl/B,IAAI,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,SAC9TrP,EAAOl/B,CAAC,EAAE,SAAS,OAAO,IAC1Bk/B,EAAOl/B,IAAI,CAAC,EAAE,SAAS,OAAO;AAGtC,QAAI2wC,IAAU;AACd,QAAIpP,EAAS,QAAQxvB,IAAO4+B,IAAU3vC;AACtC,eAAQhB,IAAI+R,IAAO,GAAG/R,IAAI2wC,IAAU,IAAI3vC,GAAKhB,KAAI;AAC7C,YAAI++B,IAAI;AAAA,UACJG,EAAOl/B,CAAC,EAAE,KAAI;AAAA,UACdk/B,EAAOl/B,IAAI,CAAC,EAAE,KAAI;AAAA,QAClC;AACY,YAAI+vC,GAAsChR,GAAG,MAAM,GAAG;AAClD,mBAAQ73B,IAAI,GAAGA,IAAIypC,GAASzpC,IAAI,CAAAg4B,EAAOl/B,GAAG,EAAE,SAAS,OAAO;AAM5D,cAAIuhC,EAAS,KAAM,QAAMvhC,IAAIgB,GAAKhB,IAAI,CAAAk/B,EAAOl/B,CAAC,EAAE,SAAS,OAAO;AAChE;AAAA,QACJ;AAAA,MACJ;AAEA,aAAQA,IAAIe,IAAQ,GAAGf,IAAIgB,GAAKhB,IAAI,KAAI6vC,GAA+B3Q,EAAOl/B,CAAC,CAAC,GAAG;AAC/E,UAAI4wC,IAAY1R,EAAOl/B,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,MAC7FrnC,IAAIlH;AACR;AACI,QAAAkH,KAKI0pC,KAAW,OAAO1R,EAAOh4B,CAAC,EAAE,SAAS;AAAA,aACrCA,IAAInG,KAAS,CAAC6uC,GAAkC1Q,EAAOh4B,CAAC,CAAC;AAAA,IACrE;AAAA,EACJ;AACJ;AACA,SAASmoC,GAAsC5mB,GAAMyW,GAAQ0I,GAAM;AAC/D,MAAIuI,IAAcvI,EAAK,aACnBrG,IAAW9Y,EAAK,cAAc,OAAO,cAAc;AACvD,WAAQ1nB,IAAQ,GAAGC,IAAMqvC,GAAmCnR,GAAQ,CAAC,GAAGn+B,IAAQm+B,EAAO,QAAQn+B,IAAQC,GAAKA,IAAMqvC,GAAmCnR,GAAQn+B,CAAK,GAAE;AAOhK,QAAI8vC,IAAU,CAAC,CAACtP,EAAS,MAErBxvB,IAAOhR;AACX,WAAMgR,IAAO/Q,GAAK+Q,IAAO,KAAImtB,EAAOntB,CAAI,EAAE,WAAW,YAAgBy8B,EAA2C,QAAQ;AACpH,UAAIqC,KAAW9+B,IAAO,IAAI/Q;AACtB,iBAAQhB,IAAI+R,IAAO,GAAG/R,IAAIgB,GAAKhB,IAAI,KAAIk/B,EAAOl/B,CAAC,EAAE,SAAS,MAAM;AAC5D,cAAI,EAAEk/B,EAAOl/B,CAAC,EAAE,eAAek/B,EAAOl/B,CAAC,EAAE,aAAa,CAACk/B,EAAOl/B,CAAC,EAAE,eAAe;AAI5E,iBADA+R,IAAO/R,GACD+R,IAAO/Q,KAAO8uC,GAAsC5Q,EAAOntB,CAAI,CAAC,IAAE,CAAAA;AACxE,YAAAmtB,EAAOntB,CAAI,EAAE,WAAW,WAAey8B,EAA2C,QAClFqC,IAAU;AAAA,UACd;AACA;AAAA,QACJ;AAAA;AAGJ,UAAIjJ,EAAK,kBAAkB,YAAa,UAAQ5nC,IAAI+R,IAAO,GAAG/R,IAAIgB,GAAKhB,KAAI;AACvE,eAAMA,IAAIgB,KAAO6uC,GAA+B3Q,EAAOl/B,CAAC,CAAC,IAAE,CAAAA;AAC3D,YAAIA,MAAMgB,KAAO,CAAC8uC,GAAsC5Q,EAAOl/B,CAAC,CAAC,EAAG;AAEpE,aADAA,KACMA,IAAIgB,KAAO6uC,GAA+B3Q,EAAOl/B,CAAC,CAAC,IAAE,CAAAA;AAC3D,QAAIA,IAAIgB,KAAO4uC,GAAkC1Q,EAAOl/B,CAAC,CAAC,KAAKk/B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBwuC,EAA2C,YAC5Iz8B,IAAO/R,GACPk/B,EAAOntB,CAAI,EAAE,WAAW,WAAey8B,EAA2C;AAAA,MAE1F;AACA,MAAIztC,IAAQgR,KAAQmtB,EAAOntB,CAAI,EAAE,WAAW,WAAey8B,EAA2C,UAAQz8B;AAC9G;AAAA,IACJ;AAEA,QADIA,MAAS/Q,KAAOD,IAAQgR,KAAQmtB,EAAOntB,IAAO,CAAC,EAAE,WAAW,aAAiBw8B,GAA2C,OAAKx8B,KAC7HA,IAAO/Q,EAAK,QAAMD,IAAQgR,KAAQmtB,EAAOntB,CAAI,EAAE,WAAW,YAAgBw8B,GAA2C,IAAQI,MAA2C,CAAA58B;AAU5K,QAAIhR,IAAQ,IAAIC,KAAOD,IAAQgR,GAAM;AAEjC,UAAI++B,IAAS/+B,MAAS/Q,IAAM+Q,IAAO,IAAIA,IAAO;AAI9C,UAAI61B,EAAK,kBAAkB,eAAeA,EAAK,kBAAkB,SAAS;AACtE,eAAMkJ,IAAS/vC,KAAS,EAAEm+B,EAAO4R,CAAM,EAAE,WAAW,YAAgBvC,GAA2C,IAAQI,OAA4C,CAAAmC;AAInK,QAAIhB,GAAsC5Q,EAAO4R,CAAM,CAAC,KAAK5R,EAAO4R,CAAM,EAAE,WAAW,aAAiBtC,EAA2C,QAE3IsC,IAAS,IAAI9vC,KAAO6uC,GAA+B3Q,EAAO4R,IAAS,CAAC,CAAC,KAAGA,MACzEA,IAAS/vC;AAAA,MACpB;AACA,UAAIA,IAAQ+vC,KAAU5R,EAAO4R,CAAM,EAAE,WAAW,aAAiBtC,EAA2C;AAExG,iBAAQxuC,IAAI8wC,GAAQ9wC,IAAIe,GAAOf,IAAI,KAAIk/B,EAAOl/B,IAAI,CAAC,EAAE,WAAW,aAAiBwuC,EAA2C,OAAO;AAC/H,cAAIuC,IAAS/wC,IAAI;AACjB,UAAI+wC,IAASh/B,KAAQA,KAAQ++B,KAAQ/+B;AACrC,cAAIvR,IAAM0+B,EAAO6R,CAAM;AACvB,UAAA7R,EAAO,OAAO6R,GAAQ,GAAG,GAAG7R,EAAO,OAAO6R,IAAS,GAAGD,IAASC,CAAM,CAAC,GACtE7R,EAAO4R,CAAM,IAAItwC,GACjBswC;AAAA,QACJ;AAAA;AAAA,IAER;AAgBA,QAAI/vC,IAAQ,IAAIC,KAAOk+B,EAAOn+B,CAAK,EAAE,WAAW,aAAiBytC,EAA2C,qBAAqBtP,EAAOn+B,CAAK,EAAE,WAAW,aAAiBwtC,GAA2C,WAAWrP,EAAOn+B,CAAK,EAAE,aAAa,CAACm+B,EAAOn+B,CAAK,EAAE,eAAe;AACtR,UAAIiwC,GACAC,IAAUd,EAAY,SACtBlpC,IAAQ;AAGZ,UAAIgqC,MAAgBzC,EAA2C,YAAY;AAYvE,aADAwC,IAAajwC,IAAQ,GACfiwC,IAAaj/B,KAAQ,CAAC+9B,GAAsC5Q,EAAO8R,CAAU,CAAC,IAAE,CAAAA;AAStF,YARIA,IAAaj/B,KAAQ+9B,GAAsC5Q,EAAO8R,CAAU,CAAC,MAEzEA,IAAa,IAAIj/B,KAAQ89B,GAA+B3Q,EAAO8R,IAAa,CAAC,CAAC,KAAGA,KACrF/pC,IAAQ,KAKR,CAACA,KAASgqC,MAAgBzC,EAA2C,YAAY;AAEjF,eADAwC,IAAaj/B,GACPi/B,IAAa,IAAIhwC,KAAOk+B,EAAO8R,IAAa,CAAC,EAAE,WAAW,YAAgBxC,EAA2C,aAAW,CAAAwC;AACtI,UAAA/pC,IAAQ+pC,IAAahwC;AAAA,QACzB;AAOA,YAAI,CAACiG,KAASgqC,MAAgBzC,EAA2C,WAAW;AAEhF,eADAwC,IAAaj/B,GACPi/B,IAAa,IAAIhwC,KAAO,EAAEk+B,EAAO8R,IAAa,CAAC,EAAE,WAAW,YAAgBxC,EAA2C,SAAaA,EAA2C,aAAiBA,EAA2C,SAAO,CAAAwC;AACxP,UAAA/pC,IAAQ+pC,IAAahwC;AAAA,QACzB;AAAA,MACJ;AAOA,UAAI,CAACiG,GAAO;AAGR,aADA+pC,IAAajwC,IAAQ,GACfiwC,IAAaj/B,KAAQ,CAAC+9B,GAAsC5Q,EAAO8R,CAAU,CAAC,IAAE,CAAAA;AACtF,QAAIA,IAAaj/B,KAAQ+9B,GAAsC5Q,EAAO8R,CAAU,CAAC,MAEzEA,IAAa,IAAIj/B,KAAQ89B,GAA+B3Q,EAAO8R,IAAa,CAAC,CAAC,KAAGA,KACrF/pC,IAAQ;AAAA,MAEhB;AAEA,UAAI,CAACA,GAAO;AAER,aADA+pC,IAAahwC,IAAM,GACbgwC,IAAajwC,KAASm+B,EAAO8R,CAAU,EAAE,WAAW,aAAiBxC,EAA2C,OAAK,CAAAwC;AAM3H,YAAIlB,GAAsC5Q,EAAO8R,CAAU,CAAC;AACxD,mBAAQhxC,IAAI+R,IAAO,GAAG/R,IAAIgxC,GAAYhxC,IAAI,CAAIk/B,EAAOl/B,CAAC,EAAE,WAAW,aAAiBuuC,GAA2C,KAAGyC;AAAA,MAE1I;AACA,UAAIE,IAAOhS,EAAOn+B,CAAK;AACvB,MAAAm+B,EAAO,OAAOn+B,GAAO,GAAG,GAAGm+B,EAAO,OAAOn+B,IAAQ,GAAGiwC,IAAajwC,CAAK,CAAC,GACvEm+B,EAAO8R,CAAU,IAAIE,GACjBnwC,IAAQgR,KAAQA,KAAQi/B,KAAYj/B;AAAA,IAC5C;AAKA,QAAI8+B,KAAW9+B,IAAO,IAAI/Q;AACtB,eAAQhB,IAAI+R,IAAO,GAAG/R,IAAIgB,GAAKhB,IAAI,KAAIk/B,EAAOl/B,CAAC,EAAE,SAAS,MAAM;AAQ5D,YAAIk/B,EAAOl/B,CAAC,EAAE,aAAa,CAACk/B,EAAOl/B,CAAC,EAAE,cAAc;AAMhD,cAAI8wC,IAAS/+B;AAIb,cAAI61B,EAAK,kBAAkB,eAAeA,EAAK,kBAAkB,SAAS;AACtE,mBAAMkJ,IAAS/vC,KAAS,EAAEm+B,EAAO4R,IAAS,CAAC,EAAE,WAAW,YAAgBvC,GAA2C,IAAQI,OAA4C,CAAAmC;AAGvK,gBAAIA,IAAS/vC,KAASm+B,EAAO4R,IAAS,CAAC,EAAE,WAAW,aAAiBvC,GAA2C,GAAG;AAC/G,kBAAIwC,IAAS/wC;AACb,uBAAQkH,IAAI6K,IAAO,GAAG7K,IAAI6pC,GAAQ7pC,IAAI,KAAIg4B,EAAOh4B,CAAC,EAAE,WAAW,aAAiBqnC,GAA2C,GAAG;AAC1H,gBAAAuC;AACA;AAAA,cACJ;AAAA,YACJ;AAAA,UACJ;AACA,UAAIA,IAAS/vC,KAAS+uC,GAAsC5Q,EAAO4R,IAAS,CAAC,CAAC,KAEtEA,IAAS9vC,KAAO6uC,GAA+B3Q,EAAO4R,CAAM,CAAC,KAAGA;AAExE,cAAIC,IAAS/wC,GACTQ,IAAM0+B,EAAO6R,CAAM;AACvB,UAAA7R,EAAO,OAAO4R,IAAS,GAAG,GAAG,GAAG5R,EAAO,OAAO4R,GAAQC,IAASD,CAAM,CAAC,GACtE5R,EAAO4R,CAAM,IAAItwC,GACbswC,KAAU/+B,KAAQA,IAAOg/B,KAAQh/B;AAAA,QACzC;AACA;AAAA,MACJ;AAAA;AAGJ,IAAImtB,EAAOn+B,CAAK,EAAE,WAAW,aAAiBytC,EAA2C,UAAU,CAACztC,KAAS,CAAC,QAAQ,KAASkoC,GAAoB/J,EAAOn+B,IAAQ,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,OAAIm+B,EAAOn+B,CAAK,EAAE,SAAS,OAAO;AAAA,EACzN;AACJ;AACA,SAASsvC,GAAmCnR,GAAQn+B,GAAO;AACvD,MAAIA,KAASm+B,EAAO,OAAQ,QAAOn+B;AACnC,MAAI4uC,IAAWzQ,EAAOn+B,CAAK,EAAE,WAAW;AACxC,SAAM,EAAEA,IAAQm+B,EAAO,UAAUA,EAAOn+B,CAAK,EAAE,WAAW,aAAa4uC,IAAS;AAChF,SAAO5uC;AACX;AAUA,MAAM,EAAE,YAAYowC,IAAkC,gBAAgBC,GAAoC,IAAuB,gBAAA57B,GAAuB84B,EAAyB,GAC3K+C,KAA6B,IAAQpJ,GAAwBnK,GAA2C,0sJAA0sJ,CAAC,GACnzJwT,KAAqC,IAAQrC,GAA8B,gBAAAz5B,GAAuB84B,EAAyB,CAAE;AACnI,MAAMiD,WAAqD5J,GAA0C;AAAA,EACjG,OAAO,aAAaC,GAAM;AACtB,IAAAA,EAAK,SAAS4J,EAAoC,GAElD5J,EAAK,SAAS;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ,CAAS,GAEDA,EAAK,SAAS6J,EAA4C,GAC1D7J,EAAK,SAAS;AAAA,MACV;AAAA,IACZ,GAAW,EAAK,GACRA,EAAK,SAAS8J,EAAgC,GAC9C9J,EAAK,SAAS6J,EAA4C,GAC1D7J,EAAK,SAAS;AAAA,MACV;AAAA,IACZ,CAAS,GACDA,EAAK,SAAS+J,EAAgC,GAE9C/J,EAAK,SAAS;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ,CAAS,GACDA,EAAK,SAASgK,EAA6B,GAK3ChK,EAAK,SAAS;AAAA,MACV;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACZ,CAAS;AAAA,EACL;AAAA,EACA,OAAO,eAAeA,GAAM1I,GAAQ;AAGhC,aAAQl/B,IAAIk/B,EAAO,SAAS,GAAGl/B,KAAK,GAAGA,KAAI;AACvC,UAAIw+B,IAAYU,EAAOl/B,CAAC,EAAE,WAAW,CAAC;AACtC,UAAIoxC,GAAqC5S,CAAS,GAAG;AACjD,YAAI8Q,IAAa8B,GAAqC5S,CAAS,EAAE,IAAI,CAACp8B,MAAI;AACtE,cAAI28B,IAAI6I,EAAK,KAAK,kBAAkBxlC,CAAC;AACrC,iBAAO,IAAQyoC,GAA0CjD,EAAK,MAAM7I,EAAE,IAAI;AAAA,YACtE38B;AAAA,UACxB,GAAuB88B,EAAOl/B,CAAC,EAAE,QAAQ;AAAA,QACzB,CAAC;AACD,QAAAk/B,EAAO,OAAOl/B,GAAG,GAAG,GAAGsvC,CAAU;AAAA,MACrC;AAAA,IACJ;AAAA,EACJ;AACJ;AACIvH,GAAUwJ,IAA0C,kBAAkB,aAAa;AACvF,SAASM,GAAkCze,GAAO;AAC9C,SAAOie,GAA2B,IAAIje,EAAM,WAAW,CAAC,CAAC;AAC7D;AACA,MAAM0e,GAA8B;AAAA,EAChC,YAAY/6B,GAAU24B,GAAcC,GAAS;AACzC,SAAK,WAAW54B,GAChB,KAAK,eAAe24B,GACpB,KAAK,WAAWC;AAAA,EACpB;AACJ;AACA,SAAS6B,GAAqC/oB,GAAMyW,GAAQ;AACxD,MAAIyQ,IAAW;AACf,WAAS,CAAC5uC,GAAOC,GAAK2W,CAAI,KAAK25B,GAAmC,MAAMpS,EAAO,IAAI2S,EAAiC,CAAC,GAAE;AACnH,MAAElC;AAEF,aAAQ3vC,IAAIe,GAAOf,KAAKgB,GAAKhB,IAAI,CAAAk/B,EAAOl/B,CAAC,EAAE,aAAa,IAAI8xC,GAA8BX,GAAiCU,GAAkC3S,EAAOl/B,CAAC,CAAC,CAAC,GAAG2X,EAAK,CAAC,GAAGg4B,CAAQ;AAE3L,QAAI5lC,IAAQm1B,EAAOn+B,CAAK,EAAE,WAAW,aAAa,MAAM,IAAI,KAAK,IAAI,GAAGC,IAAMD,CAAK;AACnF,aAAQf,IAAIe,GAAOf,IAAIe,IAAQgJ,GAAO/J,IAAI,CAAAk/B,EAAOl/B,CAAC,EAAE,SAAS,OAAO;AAAA,EACxE;AACJ;AACA,SAASyxC,GAA6ChpB,GAAMyW,GAAQ;AAChE,WAAS9L,KAAS8L,EAAO,CAAA9L,EAAM,cAAc;AACjD;AACA,SAASse,GAAiCjpB,GAAMyW,GAAQ;AACpD,WAAS9L,KAAS8L,EAAO,CAAI9L,EAAM,eAAeA,EAAM,SAAS,SACjEA,EAAM,WAAW,WAAW;AAChC;AACA,SAASue,GAAiClpB,GAAMyW,GAAQ;AACpD,WAAS9L,KAAS8L,EAAO,CAAI9L,EAAM,gBACnCA,EAAM,WAAW,WAAW;AAChC;AACA,SAASwe,GAA8BnpB,GAAMyW,GAAQ;AACjD,MAAIkP,IAAe3lB,EAAK,kBAAkB,IAAM,EAAE;AAClD,WAAQ1nB,IAAQ,GAAGC,IAAM+wC,GAAmC7S,GAAQ,CAAC,GAAGn+B,IAAQm+B,EAAO,QAAQn+B,IAAQC,GAAKA,IAAM+wC,GAAmC7S,GAAQn+B,CAAK,GAAE;AAChK,QAAIf,GAAGkH,GACHkpC,IAAOlR,EAAOn+B,CAAK,EAAE,YACrBmK,IAAOklC,EAAK;AAEhB,QAAI,EAAAllC,MAAS,+BAA+BA,MAAS,sBAAsBA,MAAS,mBAEpF;AAAA,UAAIA,MAAS,oBAAoBkjC,GAAc;AAC3C,YAAIrP,IAAI,IAAQ8L,GAA0CpiB,GAAM2lB,GAAc;AAAA,UAC1E;AAAA,QAChB,CAAa;AAGD,aAFArP,EAAE,aAAaqR,GAEXpwC,IAAIe,GAAOf,IAAIgB,KAAOk+B,EAAOl/B,CAAC,EAAE,WAAW,aAAa,KAAKA,IAAI;AACrE,QAAAk/B,EAAO,OAAO,EAAEl/B,GAAG,GAAG++B,CAAC,GACvB/9B;AAAA,MACJ;AAEA,UAAIovC,EAAK,aAAa,OAAOpvC,IAAMD,IAAQ;AAC3C,aAAIf,IAAIe,IAAQ,GAAGf,IAAIgB,GAAKhB;AAExB,cADAowC,IAAOlR,EAAOl/B,CAAC,EAAE,YACbgyC,GAA6B5B,CAAI,KAAK6B,GAA+B/S,EAAOl/B,CAAC,CAAC,GAAG;AAGjF,YAAIiyC,GAA+B/S,EAAOl/B,CAAC,CAAC,KAAGA,KAC/Ck/B,EAAO,OAAOn+B,GAAO,GAAG,GAAGm+B,EAAO,OAAOn+B,IAAQ,GAAGf,IAAIe,CAAK,GAAGm+B,EAAOl/B,CAAC,CAAC;AACzE;AAAA,UACJ;AAAA;AAGJ,WAAIA,IAAIe,GAAOmG,IAAIlG,GAAKhB,IAAIgB,GAAKhB;AAC7B,QAAAowC,IAAOlR,EAAOl/B,CAAC,EAAE,YACbgyC,GAA6B5B,CAAI,KAAK6B,GAA+B/S,EAAOl/B,CAAC,CAAC,IAElFkH,IAAI+qC,GAA+B/S,EAAOl/B,CAAC,CAAC,IAAIA,IAAI,IAAIA,KAC9CowC,EAAK,aAAa,UAAUA,EAAK,aAAa,YAAYlpC,IAAIlH,KAAGk/B,EAAO,OAAOh4B,GAAG,GAAGg4B,EAAOl/B,CAAC,GAAG,GAAGk/B,EAAO,OAAOh4B,GAAGlH,IAAIkH,CAAC,CAAC;AAAA;AAAA,EAE5I;AACJ;AACA,SAAS6qC,GAAmC7S,GAAQn+B,GAAO;AACvD,MAAIA,KAASm+B,EAAO,OAAQ,QAAOn+B;AACnC,MAAI4uC,IAAWzQ,EAAOn+B,CAAK,EAAE,WAAW;AACxC,SAAM,EAAEA,IAAQm+B,EAAO,UAAUA,EAAOn+B,CAAK,EAAE,WAAW,aAAa4uC,IAAS;AAChF,SAAO5uC;AACX;AACA,SAASkxC,GAA+B7e,GAAO;AAC3C,SAAOA,EAAM,WAAW,aAAa,OAAO,CAACA,EAAM;AACvD;AACA,SAAS4e,GAA6B5B,GAAM;AACxC,SAAOA,EAAK,aAAa,OAAOA,EAAK,aAAa;AACtD;AAGA,MAAM8B,KAAgC;AAAA,EAClC,MAAUrJ;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,QAAYA;AAAA,EACZ,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUoC;AAAA,EACV,MAAUiE;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUqC;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA;AAAA;AAAA,EAGV,MAAUA;AAAA,EACV,MAAUA;AAAA;AAAA;AAAA,EAGV,MAAUA;AAAA;AAAA;AAAA,EAGV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUrC;AAAA,EACV,MAAUqC;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAUA;AAAA,EACV,MAAU5J;AAAA,EACV,MAAUA;AAEd;AACA,SAASwK,GAA0CtR,GAAQ;AACvD,EAAK,MAAM,QAAQA,CAAM,MAAGA,IAAS;AAAA,IACjCA;AAAA,EACR;AACI,WAAS3+B,KAAK2+B,GAAO;AACjB,QAAIuR,IAASF,GAA8BhwC,CAAC;AAC5C,QAAIkwC,EAAQ,QAAOA;AAAA,EACvB;AACA,SAAUzK;AACd;AAMA,MAAM0K,WAAqDjJ,GAA0C;AAAA,EACjG,YAAY1O,GAAY/uB,GAAO;AAC3B,YAAO+uB,GAAU;AAAA,MACb,KAAK,GACD;AACI,YAAIlsB,IAAQ,KAAK,cAAc7C,EAAM,QAAQ;AAC7C,YAAI6C,MAAU,GAAI,QAAO;AACzB,YAAI4kB,IAAQ,KAAK,cAAc;AAC/B,gBAAOznB,EAAM,SAAO;AAAA,UAChB,KAAK;AACD,YAAAynB,EAAM,KAAKA,EAAM,KAAKznB,EAAM,eAAe;AAC3C;AAAA,UACJ,KAAK;AACD,YAAAynB,EAAM,KAAKznB,EAAM,WAAW,IAAI6C,CAAK;AACrC;AAAA,QAC5B;AACoB,eAAO;AAAA,MACX;AAAA,MACJ,KAAK,GACD;AACI,YAAIA,IAAQ,KAAK,cAAc7C,EAAM,QAAQ;AAC7C,YAAI6C,MAAU,IAAI;AACd,cAAI87B,IAAW3+B,EAAM,UAAU,IAAI6C,CAAK;AACxC,cAAI87B,EAAS,WAAW;AAGpB,wBAAK,OAAO,OAAO,KAAK,cAAc,OAAO,CAAC,GACvC;AAEX,eAAK,cAAc,IAAI,KAAKA,EAAS,CAAC,GACtC,KAAK,cAAc,IAAI,oBAAoB;AAC3C,cAAI/I,IAAW,KAAK,cAAc,IAAI,UAClC+Q,IAAW,KAAK,cAAc,KAC9BC,IAAcjI,EAAS,MAAM,CAAC,EAAE,IAAI,CAACjX,GAAKrzB,MAAI;AAC9C,gBAAIozB,IAAQ,IAAQyX,GAA0C,KAAK,MAAMxX,GAAK,QAAWkO,CAAQ;AACjG,mBAAAnO,EAAM,aAAakf,EAAS,YAC5Blf,EAAM,YAAYkf,EAAS,WAC3Blf,EAAM,oBAAoBpzB,IAAI,GAC9BozB,EAAM,cAAc,IACpBA,EAAM,eAAe,IACdA;AAAA,UACX,CAAC;AACD,sBAAK,OAAO,OAAO,KAAK,cAAc,QAAQ,GAAG,GAAG,GAAGmf,CAAW,GAC3D;AAAA,QACX;AACA,eAAO;AAAA,MACX;AAAA,MACJ,KAAK,GACD;AACI,YAAI/jC,IAAQ,KAAK,cAAc7C,EAAM,QAAQ;AAC7C,YAAI6C,MAAU,IAAI;AACd,cAAIgkC,IAAa;AACjB,sBAAK,cAAc,IAAI,KAAK7mC,EAAM,aAAa,IAAI6C,CAAK,EAAEgkC,CAAU,GAC7D;AAAA,QACX;AACA,eAAO;AAAA,MACX;AAAA,MACJ,KAAK,GACD;AACI,YAAIhkC,IAAQ,KAAK,cAAc7C,EAAM,QAAQ;AAC7C,YAAI6C,MAAU,GAAI,QAAO;AACzB,iBAASikC,KAAY9mC,EAAM,aAAa,IAAI6C,CAAK,GAAE;AAC/C,cAAI+7B,IAAU,KAAK,qBAAqB,GAAGkI,EAAS,UAAU;AAC9D,cAAI,CAAClI,EAAS;AACd,cAAI+H,IAAW,KAAK,cAAc,KAE9BI,IAAaJ,EAAS,WAAW,MAAK;AAC1C,mBAAS9jC,KAAS+7B,EAAQ,CAAAmI,EAAW,KAAK,GAAG,KAAK,OAAOlkC,CAAK,EAAE,UAAU;AAE1E,cAAImkC,IAAgB,IAAQ9H,GAA0C,KAAK,MAAM4H,EAAS,OAAOC,GAAYJ,EAAS,QAAQ;AAC9H,UAAAK,EAAc,aAAaL,EAAS,YACpCK,EAAc,YAAY,IAC1BA,EAAc,cAAc;AAyB5B,cAAIC,IAAiBN,EAAS;AAC9B,mBAAQtyC,IAAI,GAAGA,IAAIuqC,EAAQ,UAAUqI,GAAgB5yC,IAAI,CAAA4yC,IAAiB,KAAK,OAAOrI,EAAQvqC,CAAC,CAAC,EAAE;AAClG,UAAA2yC,EAAc,aAAaC,IAAiB,OAAO,KAAK;AACxD,cAAIC,IAAYP,EAAS,YACrBQ,IAAeR,EAAS,WAAW,QACnCS,IAAWD,GACX90B,IAAM,KAAK,cAAc,QAAQ;AAGrC,mBAASg1B,KAAczI,GAAQ;AAE3B,gBAAIqI,EAAgB,CAAA50B,IAAMg1B;AAAA,gBACrB,QAAMh1B,IAAMg1B,KAAW;AACxB,kBAAIC,IAAoBF,IAAWD,IAAe,KAAK,IAAI,KAAK,OAAO90B,CAAG,EAAE,qBAAqB,GAAG80B,CAAY;AAChH,mBAAK,OAAO90B,CAAG,EAAE,aAAa20B,EAAc,YAC5C,KAAK,OAAO30B,CAAG,EAAE,oBAAoBi1B,GACrCj1B;AAAA,YACJ;AACA,YAAA60B,IAAY,KAAK,OAAO70B,CAAG,EAAE,YAC7B80B,IAAe,KAAK,OAAO90B,CAAG,EAAE,WAAW,QAC3C+0B,KAAYD,GACZ90B;AAAA,UACJ;AAEA,cAAI60B,KAAa,CAACD,EAAgB,UAAQ5yC,IAAIge,GAAKhe,IAAI,KAAK,OAAO,UAC3D,KAAK,OAAOA,CAAC,EAAE,eAAe6yC,GADqC7yC,KAC1B;AACzC,gBAAIizC,IAAoBF,IAAWD,IAAe,KAAK,IAAI,KAAK,OAAO9yC,CAAC,EAAE,qBAAqB,GAAG8yC,CAAY;AAC9G,iBAAK,OAAO9yC,CAAC,EAAE,oBAAoBizC;AAAA,UACvC;AAGJ,mBAAQjzC,IAAIuqC,EAAQ,SAAS,GAAGvqC,KAAK,GAAGA,IAAI,MAAK,OAAO,OAAOuqC,EAAQvqC,CAAC,GAAG,CAAC;AAC5E,sBAAK,OAAO,KAAK,cAAc,KAAK,IAAI2yC,GACjC;AAAA,QACX;AACA,eAAO;AAAA,MACX;AAAA,MACJ,KAAK;AACD,eAAO,KAAK,aAAahnC,CAAK;AAAA,MAClC,KAAK;AACD,eAAO,KAAK,qBAAqBA,CAAK;AAAA,MAC1C,KAAK;AACD,eAAO,KAAK,YAAYA,EAAM,YAAYA,EAAM,SAAS;AAAA,MAC7D;AACI,cAAM,IAAI,MAAM,mBAAmB+uB,CAAU,mBAAmB;AAAA,IAChF;AAAA,EACI;AACJ;AAIA,MAAMwY,WAAqD9J,GAA0C;AAAA,EACjG,mBAAmBiB,GAAeloC,GAAO;AACrC,QAAIg+B,IAAW,KAAK,UAAU,KAAK,cAAc,UAAUkK,CAAa,CAAC;AACzE,IAAIloC,EAAM,YAAY,SAAMg+B,EAAS,YAAYh+B,EAAM,WACnDA,EAAM,YAAY,SAAMg+B,EAAS,YAAYh+B,EAAM,WACnDA,EAAM,cAAc,SAAMg+B,EAAS,WAAWh+B,EAAM,aACpDA,EAAM,cAAc,SAAMg+B,EAAS,WAAWh+B,EAAM;AAExD,QAAIgxC,IAAqB,KAAK,KAAK,qBAC/BC,IAAiB,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK;AACtD,IAAID,KAAsBC,MAClBjxC,EAAM,eAAYg+B,EAAS,WAAWgT,EAAmB,SAASC,GAAgBjxC,EAAM,WAAW,GAAGA,EAAM,WAAW,CAAC,IACxHA,EAAM,eAAYg+B,EAAS,WAAWgT,EAAmB,SAASC,GAAgBjxC,EAAM,WAAW,GAAGA,EAAM,WAAW,CAAC,IACxHA,EAAM,eAAYg+B,EAAS,YAAYgT,EAAmB,SAASC,GAAgBjxC,EAAM,WAAW,GAAGA,EAAM,WAAW,CAAC,IACzHA,EAAM,eAAYg+B,EAAS,YAAYgT,EAAmB,SAASC,GAAgBjxC,EAAM,WAAW,GAAGA,EAAM,WAAW,CAAC;AAAA,EAGrI;AAAA,EACA,YAAYu4B,GAAY/uB,GAAO;AAC3B,YAAO+uB,GAAU;AAAA,MACb,KAAK,GACD;AACI,YAAIlsB,IAAQ,KAAK,cAAc7C,EAAM,QAAQ;AAC7C,YAAI6C,MAAU,GAAI,QAAO;AACzB,gBAAO7C,EAAM,SAAO;AAAA,UAChB,KAAK;AACD,iBAAK,mBAAmB,GAAGA,EAAM,KAAK;AACtC;AAAA,UACJ,KAAK;AACD,iBAAK,mBAAmB,GAAGA,EAAM,OAAO,IAAI6C,CAAK,CAAC;AAClD;AAAA,QAC5B;AACoB,eAAO;AAAA,MACX;AAAA,MACJ,KAAK,GACD;AACI,YAAI6kC,IAAY,KAAK,cAAc,KAAI;AACvC,YAAI,CAACA,EAAW,QAAO;AACvB,YAAI7kC,IAAQ,KAAK,cAAc7C,EAAM,QAAQ;AAC7C,YAAI6C,MAAU,GAAI,QAAO;AACzB,gBAAO7C,EAAM,SAAO;AAAA,UAChB,KAAK;AACD,gBAAI++B,IAAM/+B,EAAM,SAAS,IAAI6C,CAAK;AAClC,qBAAS+wB,KAAQmL,EAAI,KAAInL,EAAK,gBAAgB8T,EAAU;AACpD,0BAAK,mBAAmB,GAAG9T,EAAK,MAAM,GACtC,KAAK,mBAAmB,GAAGA,EAAK,MAAM,GAC/B;AAEX,mBAAO;AAAA,UACX,KAAK;AACD,gBAAI+T,IAAS,KAAK,WAAW,KAAK,cAAc,IAAI,IAAI3nC,EAAM,SAAS,GACnE4nC,IAAS,KAAK,WAAWF,EAAU,IAAI1nC,EAAM,SAAS;AAC1D,gBAAI2nC,MAAW,MAAMC,MAAW,GAAI,QAAO;AAC3C,gBAAIhU,IAAO5zB,EAAM,aAAa,IAAI2nC,CAAM,EAAE,IAAIC,CAAM;AACpD,wBAAK,mBAAmB,GAAGhU,EAAK,MAAM,GACtC,KAAK,mBAAmB,GAAGA,EAAK,MAAM,GAC/B;AAAA,QACnC;AAAA,MACgB;AAAA,MACJ,KAAK,GACD;AACI,YAAIiU,IAAY,KAAK,cAAc,UAAS,GACxCH,IAAY,KAAK,OAAOG,CAAS;AACrC,YAAI,CAACH,EAAW,QAAO;AACvB,YAAII,IAAY9nC,EAAM,iBAAiB,KAAK,cAAcA,EAAM,QAAQ,CAAC;AACzE,YAAI,CAAC8nC,KAAa,CAACA,EAAU,WAAY,QAAO;AAChD,YAAIC,IAAa/nC,EAAM,iBAAiB,KAAK,cAAcA,EAAM,UAAU0nC,EAAU,EAAE,CAAC;AACxF,YAAI,CAACK,KAAc,CAACA,EAAW,YAAa,QAAO;AACnD,YAAI/Y,IAAQ,KAAK,UAAU+Y,EAAW,WAAW,GAC7CC,IAAO,KAAK,UAAUF,EAAU,UAAU,GAC1C5gC,IAAM,KAAK,UAAU,KAAK,cAAc,KAAK,GAC7C0P,IAAO,KAAK,UAAUixB,CAAS,GAC/BvxC;AACJ,gBAAO,KAAK,WAAS;AAAA,UACjB,KAAK;AACD,YAAA4Q,EAAI,WAAW8gC,EAAK,IAAI9gC,EAAI,SAC5B5Q,IAAI04B,EAAM,IAAIpY,EAAK,SACnBA,EAAK,YAAYtgB,GACjBsgB,EAAK,WAAWtgB;AAChB;AAAA,UACJ,KAAK;AACD,YAAAA,IAAI0xC,EAAK,IAAI9gC,EAAI,SACjBA,EAAI,YAAY5Q,GAChB4Q,EAAI,WAAW5Q,GACfsgB,EAAK,WAAWoY,EAAM,IAAIpY,EAAK;AAC/B;AAAA,QAC5B;AACoB,eAAI,KAAK,cAAc,MAAM,eACzB,KAAK,cAAc,IAAI,oBAAoBixB,GAC3C3gC,EAAI,UAAU8nB,EAAM,IAAIgZ,EAAK,MAE7BN,EAAU,oBAAoB,KAAK,cAAc,OACjDxgC,EAAI,UAAU8gC,EAAK,IAAIhZ,EAAM,IAE1B;AAAA,MACX;AAAA,MACJ,KAAK,GACD;AACI,YAAIiZ,IAAY,KAAK,cAAcjoC,EAAM,YAAY;AACrD,YAAIioC,MAAc,GAAI,QAAO;AAE7B,YAAIC,IAAiB,KAAK,cAAc;AACxC,eAAM,EAAEA,KAAkB,MAAM,KAAK,OAAOA,CAAc,EAAE,UAAU,KAAK,OAAOA,CAAc,EAAE,oBAAoB,KAAG;AACzH,YAAIA,IAAiB,EAAG,QAAO;AAC/B,YAAIC,IAAY,KAAK,cAAcnoC,EAAM,cAAc,KAAK,OAAOkoC,CAAc,EAAE,EAAE;AACrF,YAAIC,MAAc,GAAI,QAAO;AAC7B,YAAIC,IAAapoC,EAAM,UAAUioC,CAAS,GACtCI,IAAaroC,EAAM,UAAUmoC,CAAS,EAAEC,EAAW,KAAK;AAC5D,oBAAK,YAAYA,GAAYC,GAAYH,CAAc,GAChD;AAAA,MACX;AAAA,MACJ,KAAK,GACD;AACI,YAAID,IAAY,KAAK,cAAcjoC,EAAM,YAAY;AACrD,YAAIioC,MAAc,GAAI,QAAO;AAE7B,YAAIC,IAAiB,KAAK,cAAc;AACxC,eAAM,EAAEA,KAAkB,KAAK,KAAK,OAAOA,CAAc,EAAE,SAAO;AAClE,YAAIA,IAAiB,EAAG,QAAO;AAC/B,YAAII,IAAW,KAAK,cAActoC,EAAM,kBAAkB,KAAK,OAAOkoC,CAAc,EAAE,EAAE;AACxF,YAAII,MAAa,GAAI,QAAO;AAC5B,YAAIC,IAAYvoC,EAAM,cAAcsoC,CAAQ,GACxCE,IAAY,KAAK,cAAc,KAC/BC,IAAW,KAAK,OAAOP,CAAc,GACrCQ,IAAYD,EAAS,cAAcA,EAAS,eAAeD,EAAU,cAAcA,EAAU,oBAAoB,IAAI,KAAK,IAAIA,EAAU,mBAAmBC,EAAS,WAAW,MAAM,IAAI,IAAIA,EAAS,WAAW,SAAS,GAC1NL,IAAapoC,EAAM,UAAUioC,CAAS,GACtCI,IAAaE,EAAUG,CAAS,EAAEN,EAAW,KAAK;AACtD,oBAAK,YAAYA,GAAYC,GAAYH,CAAc,GAChD;AAAA,MACX;AAAA,MACJ,KAAK,GACD;AACI,YAAIS,IAAa,KAAK,cAAc3oC,EAAM,aAAa;AACvD,YAAI2oC,MAAe,GAAI,QAAO;AAE9B,YAAIC,IAAY,KAAK,cAAc,UAAU,EAAE,GAC3CnhC,IAAO,KAAK,OAAOmhC,CAAS;AAChC,YAAI,CAACnhC,KAAQ,CAACA,EAAK,OAAQ,QAAO;AAClC,YAAIP,IAAM,KAAK,cAAc,KAEzB2hC,IAAO;AAOX,YANI3hC,EAAI,eAAeO,EAAK,aACnBP,EAAI,aACAA,EAAI,sBAAsBO,EAAK,sBAAmBohC,IAAO,MAD7CA,IAAO,MAI5B3hC,EAAI,cAAc,CAACA,EAAI,qBAAqBO,EAAK,cAAc,CAACA,EAAK,uBAAmBohC,IAAO,KAC/F,CAACA,EAAM,QAAO;AAClB,YAAIC,IAAa,KAAK,cAAc9oC,EAAM,eAAeyH,EAAK,EAAE;AAChE,YAAIqhC,MAAe,GAAI,QAAO;AAC9B,YAAIV,IAAapoC,EAAM,WAAW2oC,CAAU,GACxCN,IAAaroC,EAAM,WAAW8oC,CAAU,EAAEV,EAAW,KAAK;AAC9D,oBAAK,YAAYA,GAAYC,GAAYO,CAAS,GAC3C;AAAA,MACX;AAAA,MACJ,KAAK;AACD,eAAO,KAAK,aAAa5oC,CAAK;AAAA,MAClC,KAAK;AACD,eAAO,KAAK,qBAAqBA,CAAK;AAAA,MAC1C,KAAK;AACD,eAAO,KAAK,YAAYA,EAAM,YAAYA,EAAM,SAAS;AAAA,MAC7D;AACI,cAAM,IAAI,MAAM,2BAA2B+uB,CAAU,EAAE;AAAA,IACvE;AAAA,EACI;AAAA,EACA,YAAYqZ,GAAYC,GAAYH,GAAgB;AAChD,QAAIa,IAAa,KAAK,UAAUV,CAAU,GACtCW,IAAa,KAAK,UAAUZ,EAAW,UAAU;AACvC,SAAK,UAAUF,CAAc;AAC3C,QAAIe,IAAU,KAAK,UAAU,KAAK,cAAc,KAAK;AACrD,IAAAA,EAAQ,UAAUF,EAAW,IAAIC,EAAW,GAC5CC,EAAQ,UAAUF,EAAW,IAAIC,EAAW,GAC5C,KAAK,cAAc,IAAI,iBAAiBd;AAAA,EAC5C;AAAA,EACA,UAAUgB,GAAQ;AAEd,QAAI7vC,IAAI6vC,EAAO,aACX5vC,IAAI4vC,EAAO,aAEX1B,IAAqB,KAAK,KAAK,qBAC/BC,IAAiB,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK;AACtD,WAAID,KAAsBC,MAClByB,EAAO,iBAAc7vC,KAAKmuC,EAAmB,SAASC,GAAgByB,EAAO,aAAa,GAAGA,EAAO,aAAa,CAAC,IAClHA,EAAO,iBAAc5vC,KAAKkuC,EAAmB,SAASC,GAAgByB,EAAO,aAAa,GAAGA,EAAO,aAAa,CAAC,KAEnH;AAAA,MACH,GAAG7vC;AAAA,MACH,GAAGC;AAAA,IACf;AAAA,EACI;AAAA,EACA,cAAc4iC,GAAc3I,GAAQ+K,GAAU;AAC1C,UAAM,cAAcpC,GAAc3I,GAAQ+K,CAAQ;AAClD,aAAQjqC,IAAI,GAAGA,IAAI,KAAK,OAAO,QAAQA,IAAI,MAAK,qBAAqBA,CAAC;AACtE,SAAK,kBAAiB;AAAA,EAC1B;AAAA,EACA,qBAAqBA,GAAG;AACpB,QAAIozB,IAAQ,KAAK,OAAOpzB,CAAC;AACzB,QAAIozB,EAAM,qBAAqB,MAAM;AACjC,UAAIlsB,IAAIksB,EAAM;AACd,MAAAA,EAAM,oBAAoB,MAC1B,KAAK,qBAAqBlsB,CAAC,GAC3B,KAAK,UAAUlH,CAAC,EAAE,WAAW,KAAK,UAAUkH,CAAC,EAAE;AAAA,IACnD;AAAA,EACJ;AAAA,EACA,oBAAoB;AAChB,aAAQlH,IAAI,GAAGA,IAAI,KAAK,OAAO,QAAQA,KAAI;AACvC,UAAIozB,IAAQ,KAAK,OAAOpzB,CAAC;AACzB,UAAIozB,EAAM,kBAAkB,MAAM;AAC9B,YAAIlsB,IAAIksB,EAAM;AAGd,YAFA,KAAK,UAAUpzB,CAAC,EAAE,WAAW,KAAK,UAAUkH,CAAC,EAAE,SAC/C,KAAK,UAAUlH,CAAC,EAAE,WAAW,KAAK,UAAUkH,CAAC,EAAE,SAC3C,KAAK,cAAc,MAAO,UAAQ+mB,IAAI/mB,GAAG+mB,IAAIjuB,GAAGiuB;AAChD,eAAK,UAAUjuB,CAAC,EAAE,WAAW,KAAK,UAAUiuB,CAAC,EAAE,UAC/C,KAAK,UAAUjuB,CAAC,EAAE,WAAW,KAAK,UAAUiuB,CAAC,EAAE;AAAA,YAE9C,UAAQA,IAAI/mB,IAAI,GAAG+mB,IAAIjuB,IAAI,GAAGiuB;AAC/B,eAAK,UAAUjuB,CAAC,EAAE,WAAW,KAAK,UAAUiuB,CAAC,EAAE,UAC/C,KAAK,UAAUjuB,CAAC,EAAE,WAAW,KAAK,UAAUiuB,CAAC,EAAE;AAAA,MAEvD;AAAA,IACJ;AAAA,EACJ;AACJ;AAGA,MAAM6mB,GAAyC;AAAA,EAC3C,MAAMhO,GAAU;AAGZ,SAAK,aAAaA,EAAS,OAAO,IAAI,CAAC1T,MAAQ,IAAQyX,GAA0C,KAAK,MAAMzX,EAAM,IAAI;AAAA,MAC9G,GAAGA,EAAM;AAAA,IACzB,CAAa,CAAC;AAEN,QAAIyN,IAAS;AACb,IAAI,KAAK,kBAAeA,IAAS,KAAK,cAAc,aAAaiG,EAAS,QAAQA,EAAS,UAAUA,EAAS,SAAS,IACnH,KAAK,kBAAejG,IAAS,KAAK,cAAc,aAAaiG,EAAS,QAAQA,EAAS,UAAUA,EAAS,SAAS,IAGvH,KAAK,SAASqL,GAA0CtR,CAAM,GAC9D,KAAK,OAAO,IAAQoG,GAA0C,KAAK,MAAMpG,GAAQiG,EAAS,SAAS,GACnG,KAAK,OAAO,KAAK,KAAK,MAAM,KAAK,YAAYA,EAAS,QAAQ;AAE9D,aAAQ76B,KAAO,KAAK,KAAK,YAAY,CAAA66B,EAAS,SAAS76B,CAAG,IAAI;AAAA,EAClE;AAAA,EACA,WAAW66B,GAAU;AACjB,IAAI,KAAK,kBACL,KAAK,KAAK,QAAQ,KAAK,eAAe,KAAK,UAAU,GAErDA,EAAS,SAAS,KAAK,WAAW,IAAI,CAACiO,MAAY,KAAK,KAAK,SAASA,EAAU,IAAIA,EAAU,UAAU,CAAC;AAAA,EAEjH;AAAA,EACA,SAASjO,GAAU;AACf,WAAI,KAAK,OAAO,mBAAmB,iBAAe,KAAK,iBAAiBA,EAAS,SAAS,GACtF,KAAK,iBAAe,KAAK,KAAK,QAAQ,KAAK,eAAe,KAAK,YAAYA,EAAS,SAAS,GAC7F,KAAK,OAAO,mBAAmB,gBAAc,KAAK,iBAAiBA,EAAS,SAAS,GAErFA,EAAS,cAAc,UACvBA,EAAS,OAAO,QAAO,GACvBA,EAAS,UAAU,QAAO,IAEvB,KAAK,iBAAiB,KAAK,cAAc;AAAA,EACpD;AAAA,EACA,iBAAiB3H,GAAW;AACxB,aAAQn/B,IAAI,GAAGA,IAAI,KAAK,WAAW,QAAQA,IAAI,CAAI,KAAK,WAAWA,CAAC,EAAE,WAClEm/B,EAAUn/B,CAAC,EAAE,WAAW,GACxBm/B,EAAUn/B,CAAC,EAAE,WAAW;AAAA,EAEhC;AAAA,EACA,UAAU;AACN,SAAK,aAAa,MAClB,KAAK,OAAO,MACZ,KAAK,SAAS;AAAA,EAClB;AAAA,EACA,qBAAqB6gC,GAAQ1U,GAAU;AACnC,QAAIoV,IAAW,CAAA;AACf,WAAI,KAAK,kBACL,KAAK,cAAc,aAAaV,GAAQ1U,CAAQ,GAChDoV,EAAS,KAAK,GAAG,OAAO,KAAK,KAAK,cAAc,QAAQ,CAAC,IAEzD,KAAK,kBACL,KAAK,cAAc,aAAaV,GAAQ1U,CAAQ,GAChDoV,EAAS,KAAK,GAAG,OAAO,KAAK,KAAK,cAAc,QAAQ,CAAC,IAEtDA;AAAA,EACX;AAAA,EACA,YAAY9Y,GAAK;AACb,SAAK,OAAOA,GACZ,KAAK,aAAa,MAClB,KAAK,OAAO,MACZ,KAAK,gBAAgB,MACrB,KAAK,gBAAgB,MACrB,KAAK,mBAAmB,IACpBA,EAAK,SAAM,KAAK,gBAAgB,IAAQ4pB,GAA0C5pB,GAAMA,EAAK,IAAI,IACjGA,EAAK,SAAM,KAAK,gBAAgB,IAAQyqB,GAA0CzqB,GAAMA,EAAK,IAAI;AAAA,EACzG;AACJ;AAGA,MAAMusB,GAAyC;AAAA,EAC3C,OAAO1wC,GAAQi9B,GAAUV,GAAQ1U,GAAUqV,GAAW;AASlD,QAPI,OAAOD,KAAa,aACpBC,IAAYrV,GACZA,IAAW0U,GACXA,IAASU,GACTA,IAAW,CAAA,IAGX,OAAOj9B,KAAW,UAAU;AAE5B,MAAIu8B,KAAU,SAAMA,IAASE,GAA0Cz8B,CAAM;AAC7E,UAAI46B,IAAS,KAAK,KAAK,gBAAgB56B,CAAM;AAAA,IACjD,OAAO;AAEH,UAAIu8B,KAAU,MAAM;AAChB,YAAIr4B,IAAa,CAAA;AACjB,iBAAS4qB,KAAS9uB,EAAO,CAAAkE,EAAW,KAAK,GAAG4qB,EAAM,UAAU;AAC5D,QAAAyN,IAASI,GAA0Cz4B,CAAU;AAAA,MACjE;AACA,UAAI02B,IAAS56B;AAAA,IACjB;AACA,QAAIwiC,IAAW,IAAQ1F,GAA0ClC,GAAQqC,GAAUV,GAAQ1U,GAAUqV,CAAS;AAE9G,WAAItC,EAAO,WAAW,KAClB4H,EAAS,YAAY,CAAA,GACdA,MAGP,KAAK,UAAU,KAAK,OAAO,SAAO,KAAK,OAAO,MAAMA,CAAQ,GAEhE,KAAK,WAAWA,CAAQ,GACxB,KAAK,SAASA,CAAQ,GACtB,KAAK,sBAAsBA,EAAS,QAAQA,EAAS,SAAS,GAE1D,KAAK,UAAU,KAAK,OAAO,WAAS,KAAK,OAAO,QAAO,GACpDA;AAAA,EACX;AAAA,EACA,WAAWA,GAAU;AAEjB,IAAI,KAAK,UAAU,KAAK,OAAO,cAAY,KAAK,OAAO,WAAWA,CAAQ;AAAA,EAC9E;AAAA,EACA,SAASA,GAAU;AAEf,IAAAA,EAAS,YAAYA,EAAS,OAAO,IAAI,CAAC1T,MAAQ,IAAQqO,GAA0CrO,EAAM,YAAY,CAAC;AACvH,QAAI6hB,IAAa;AAEjB,IAAI,KAAK,UAAU,KAAK,OAAO,aAAUA,IAAa,KAAK,OAAO,SAASnO,CAAQ,IAE/E,CAACmO,MAAe,CAAC,KAAK,UAAU,KAAK,OAAO,sBACvC,KAAK,wBAAqB,KAAK,sBAAsB,IAAQvV,GAA0C,KAAK,IAAI,IACrH,KAAK,oBAAoB,eAAeoH,EAAS,QAAQA,EAAS,SAAS,KAG1E,CAACmO,KAAc,CAACA,EAAW,SAASnO,EAAS,SAAS,SAAS,MAAS,KAAK,KAAK,SAC9E,KAAK,kBAAe,KAAK,gBAAgB,IAAQ7H,GAA0C,KAAK,IAAI,IACzG,KAAK,cAAc,QAAQ6H,EAAS,QAAQA,EAAS,SAAS,GAC9DA,EAAS,SAAS,OAAO;AAAA,EAEjC;AAAA,EACA,sBAAsB5H,GAAQC,GAAW;AACrC,QAAIre,IAAQ,KAAK,KAAK,kBAAkB,EAAI;AAC5C,aAAQ9gB,IAAI,GAAGA,IAAIk/B,EAAO,QAAQl/B,IAAI,CAAI,KAAK,mBAAmBk/B,EAAOl/B,CAAC,EAAE,WAAW,CAAC,CAAC,MACrFk/B,EAAOl/B,CAAC,IAAI8gB,GACZqe,EAAUn/B,CAAC,EAAE,WAAW,GACxBm/B,EAAUn/B,CAAC,EAAE,WAAW;AAAA,EAEhC;AAAA,EACA,mBAAmBk1C,GAAI;AAInB,QAAIC,IAAQD,KAAM;AAClB,QAAIC,MAAU;AACd,cAAOD,KAAM,GAAC;AAAA,QACV,KAAK;AACD,iBAAOA,MAAO;AAAA,QAClB,KAAK;AACD,iBAAOA,MAAO;AAAA,QAClB,KAAK;AACD,iBAAOA,MAAO;AAAA,QAClB,KAAK;AACD,iBAAO,QAAUA,KAAMA,KAAM;AAAA,QACjC,KAAK;AACD,iBAAO,QAAUA,KAAMA,KAAM;AAAA,QACjC,KAAK;AACD,iBAAO,QAAUA,KAAMA,KAAM,QAAU,QAAUA,KAAMA,KAAM,QAAU,QAAUA,KAAMA,KAAM;AAAA,QACjG,KAAK;AACD,iBAAO,SAAUA,KAAMA,KAAM,SAAUA,MAAO;AAAA,QAClD,KAAK;AACD,iBAAO,SAAUA,KAAMA,KAAM;AAAA,QACjC;AACI,iBAAO;AAAA,MACvB;AAAA;AAEQ,cAAOC,GAAK;AAAA,QACR,KAAK;AACD,iBAAO,UAAWD,KAAMA,KAAM,UAAW,UAAWA,KAAMA,KAAM;AAAA,QACpE,KAAK;AACD,iBAAO,UAAWA,KAAMA,KAAM;AAAA,QAClC;AACI,iBAAO;AAAA,MACvB;AAAA,EACI;AAAA,EACA,qBAAqBrU,GAAQ1U,GAAU;AACnC,QAAIoV,IAAW,CAAA;AACf,WAAI,KAAK,UAAQA,EAAS,KAAK,GAAG,KAAK,OAAO,qBAAqBV,GAAQ1U,CAAQ,CAAC,GAChF,KAAK,KAAK,QAAQoV,EAAS,QAAQ,MAAM,MAAM,MAAIA,EAAS,KAAK,MAAM,GACpEA;AAAA,EACX;AAAA,EACA,gBAAgBlO,GAAK;AACjB,QAAI5kB,IAAS,oBAAI,OACbjG,IAAa,KAAK,KAAK,eAAe,mBAAmB6qB,CAAG;AAChE,aAASrrB,KAAaQ,EAAW,CAAAiG,EAAO,IAAI,OAAO,cAAczG,CAAS,CAAC;AAC3E,QAAI,KAAK,UAAU,KAAK,OAAO,gBAAiB,UAAS1D,KAAU,KAAK,OAAO,gBAAgB+uB,CAAG,EAAE,CAAA5kB,EAAO,IAAInK,CAAM;AACrH,WAAO,MAAM,KAAKmK,CAAM;AAAA,EAC5B;AAAA,EACA,YAAYga,GAAK;AACb,SAAK,OAAOA,GACZ,KAAK,sBAAsB,MAC3B,KAAK,gBAAgB,MAGjB,KAAK,KAAK,OAAM,KAAK,SAAS,IAAQoe,GAA0C,KAAK,IAAI,KACpF,KAAK,KAAK,QAAQ,KAAK,KAAK,UAAM,KAAK,SAAS,IAAQiO,GAA0C,KAAK,IAAI;AAAA,EACxH;AACJ;AAOA,MAAMM,KAAqC;AAAA,EACvC,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,WAAW;AACf;AACA,MAAMC,GAAyC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzC,aAAa;AACX,WAAO,CAACpnC,MAAM;AACV,WAAK,SAAS,QAAQ,CAAC7L,MACZ6L,EAAI7L,EAAE,OAAO,EAAE,MAAM6L,GAAK7L,EAAE,IAAI,CAC1C;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAIE,QAAQ;AAKN,WAJW,KAAK,SAAS,IAAI,CAACA,MAAI;AAC9B,UAAI4mB,IAAO5mB,EAAE,KAAK,IAAI,CAACiB,MAAM,KAAK,MAAMA,IAAM,GAAG,IAAI,GAAG;AACxD,aAAO,GAAG+xC,GAAmChzC,EAAE,OAAO,CAAC,GAAG4mB,EAAK,KAAK,GAAG,CAAC;AAAA,IAC5E,CAAC,EACW,KAAK,EAAE;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOE,IAAI,OAAO;AACT,QAAI,CAAC,KAAK,OAAO;AACb,UAAIssB,IAAO,IAAQhV;AACnB,eAASiV,KAAW,KAAK,SAAS,UAAQv1C,IAAI,GAAGA,IAAIu1C,EAAQ,KAAK,QAAQv1C,KAAK,EAAE,CAAAs1C,EAAK,SAASC,EAAQ,KAAKv1C,CAAC,GAAGu1C,EAAQ,KAAKv1C,IAAI,CAAC,CAAC;AACnI,WAAK,QAAQ,OAAO,OAAOs1C,CAAI;AAAA,IACnC;AACA,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKE,IAAI,OAAO;AACT,QAAI,KAAK,MAAO,QAAO,KAAK;AAC5B,QAAIhU,IAAO,IAAQhB,MACfkV,IAAK,GAAGC,IAAK,GACbpT,IAAI,CAAC9vB,MAAI,KAAK,IAAI,IAAIA,GAAG,CAAC,IAAImjC,EAAG11C,CAAC,IAAI,IAAI,KAAK,IAAI,IAAIuS,GAAG,CAAC,IAAIA,IAAIojC,EAAG31C,CAAC,IAAI,KAAK,IAAIuS,KAAK,KAAK,IAAIA,GAAG,CAAC,IAAIqjC,EAAG51C,CAAC,IAAI,KAAK,IAAIuS,GAAG,CAAC,IAAIsjC,EAAG71C,CAAC;AAC3I,aAASoC,KAAK,KAAK,SAAS,SAAOA,EAAE,SAAO;AAAA,MACxC,KAAK;AAAA,MACL,KAAK;AACD,YAAI,CAAC4C,GAAGC,CAAC,IAAI7C,EAAE;AACf,QAAAk/B,EAAK,SAASt8B,GAAGC,CAAC,GAClBuwC,IAAKxwC,GACLywC,IAAKxwC;AACL;AAAA,MACJ,KAAK;AAAA,MACL,KAAK;AACD,YAAI7C,EAAE,YAAY;AAEd,cAAI,CAAC0zC,GAAMC,GAAMC,GAAKC,CAAG,IAAI7zC,EAAE,MAC3B8zC,IAAOV,IAAK,IAAI,KAAKM,IAAON,IAC5BW,IAAOV,IAAK,IAAI,KAAKM,IAAON,IAC5BW,IAAOJ,IAAM,IAAI,KAAKF,IAAOE,IAC7BK,IAAOJ,IAAM,IAAI,KAAKF,IAAOE;AAAA,YAC9B,KAAI,CAACC,GAAMC,GAAMC,GAAMC,GAAML,GAAKC,CAAG,IAAI7zC,EAAE;AAElD,QAAAk/B,EAAK,SAAS0U,GAAKC,CAAG;AAiBtB,iBAhBIP,IAAK;AAAA,UACLF;AAAA,UACAC;AAAA,QACpB,GACoBE,IAAK;AAAA,UACLO;AAAA,UACAC;AAAA,QACpB,GACoBP,IAAK;AAAA,UACLQ;AAAA,UACAC;AAAA,QACpB,GACoBR,IAAK;AAAA,UACLG;AAAA,UACAC;AAAA,QACpB,GACwBj2C,IAAI,GAAGA,KAAK,GAAGA,KAAI;AACvB,cAAI8D,IAAI,IAAI4xC,EAAG11C,CAAC,IAAI,KAAK21C,EAAG31C,CAAC,IAAI,IAAI41C,EAAG51C,CAAC,GACrC+E,KAAI,KAAK2wC,EAAG11C,CAAC,IAAI,IAAI21C,EAAG31C,CAAC,IAAI,IAAI41C,EAAG51C,CAAC,IAAI,IAAI61C,EAAG71C,CAAC;AAErD,cADAoC,IAAI,IAAIuzC,EAAG31C,CAAC,IAAI,IAAI01C,EAAG11C,CAAC,GACpB+E,OAAM,GAAG;AACT,gBAAIjB,MAAM,EAAG;AACb,gBAAIyO,IAAI,CAACnQ,IAAI0B;AACb,YAAI,IAAIyO,KAAKA,IAAI,MACTvS,MAAM,IAAGshC,EAAK,SAASe,EAAE9vB,CAAC,GAAG+uB,EAAK,IAAI,IACjCthC,MAAM,KAAGshC,EAAK,SAASA,EAAK,MAAMe,EAAE9vB,CAAC,CAAC;AAEnD;AAAA,UACJ;AACA,cAAI+jC,IAAO,KAAK,IAAIxyC,GAAG,CAAC,IAAI,IAAI1B,IAAI2C;AACpC,cAAIuxC,IAAO,EAAG;AACd,cAAIC,KAAM,CAACzyC,IAAI,KAAK,KAAKwyC,CAAI,MAAM,IAAIvxC;AACvC,UAAI,IAAIwxC,KAAMA,IAAK,MACXv2C,MAAM,IAAGshC,EAAK,SAASe,EAAEkU,CAAE,GAAGjV,EAAK,IAAI,IAClCthC,MAAM,KAAGshC,EAAK,SAASA,EAAK,MAAMe,EAAEkU,CAAE,CAAC;AAEpD,cAAIC,MAAM,CAAC1yC,IAAI,KAAK,KAAKwyC,CAAI,MAAM,IAAIvxC;AACvC,UAAI,IAAIyxC,MAAMA,KAAK,MACXx2C,MAAM,IAAGshC,EAAK,SAASe,EAAEmU,EAAE,GAAGlV,EAAK,IAAI,IAClCthC,MAAM,KAAGshC,EAAK,SAASA,EAAK,MAAMe,EAAEmU,EAAE,CAAC;AAAA,QAExD;AACA,QAAAhB,IAAKQ,GACLP,IAAKQ;AACL;AAAA,IAChB;AACQ,WAAO,KAAK,QAAQ,OAAO,OAAO3U,CAAI;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKE,UAAUz1B,GAAI;AACZ,QAAI4qC,IAAO,IAAIpB;AACf,aAASjzC,KAAK,KAAK,UAAS;AACxB,UAAI4mB,IAAO,CAAA;AACX,eAAQhpB,IAAI,GAAGA,IAAIoC,EAAE,KAAK,QAAQpC,KAAK,GAAE;AACrC,YAAI,CAACgF,GAAGC,CAAC,IAAI4G,EAAGzJ,EAAE,KAAKpC,CAAC,GAAGoC,EAAE,KAAKpC,IAAI,CAAC,CAAC;AACxC,QAAAgpB,EAAK,KAAKhkB,GAAGC,CAAC;AAAA,MAClB;AACA,MAAAwxC,EAAKr0C,EAAE,OAAO,EAAE,GAAG4mB,CAAI;AAAA,IAC3B;AACA,WAAOytB;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAGE,UAAUC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAI;AAChC,WAAO,KAAK,UAAU,CAAC/xC,GAAGC,MAAI;AAC1B,YAAM+xC,IAAKN,IAAK1xC,IAAI4xC,IAAK3xC,IAAI6xC,GACvBG,IAAKN,IAAK3xC,IAAI6xC,IAAK5xC,IAAI8xC;AAC7B,aAAO;AAAA,QACHC;AAAA,QACAC;AAAA,MAChB;AAAA,IACQ,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAGE,UAAUjyC,GAAGC,GAAG;AACd,WAAO,KAAK,UAAU,GAAG,GAAG,GAAG,GAAGD,GAAGC,CAAC;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAGE,OAAOiyC,GAAO;AACZ,QAAIC,IAAM,KAAK,IAAID,CAAK,GACpBE,IAAM,KAAK,IAAIF,CAAK;AACxB,WAAO,KAAK,UAAUC,GAAKC,GAAK,CAACA,GAAKD,GAAK,GAAG,CAAC;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAGE,MAAME,GAAQC,IAASD,GAAQ;AAC7B,WAAO,KAAK,UAAUA,GAAQ,GAAG,GAAGC,GAAQ,GAAG,CAAC;AAAA,EACpD;AAAA,EACA,cAAa;AACT,SAAK,WAAW,CAAA,GAChB,KAAK,QAAQ,MACb,KAAK,QAAQ;AAAA,EACjB;AACJ;AACA,SAAS/B,KAAW;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,EAAE,CAAAF,GAAyC,UAAUE,CAAO,IAAI,YAAYvsB,GAAM;AAC9E,cAAK,QAAQ,KAAK,QAAQ,MAC1B,KAAK,SAAS,KAAK;AAAA,IACf,SAASusB;AAAA,IACT,MAAMvsB;AAAA,EACd,CAAK,GACM;AACX;AAIA,IAAIuuB,KAA2C;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AAGA,MAAMC,GAAyC;AAAA,EAC3C,WAAW;AACP,WAAO,IAAQnC,GAAwC;AAAA,EAC3D;AAAA,EACA,WAAW;AACP,WAAO,KAAK,KAAK;AAAA,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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37]}
|