@servicetitan/anvil2 2.8.0 → 2.9.1
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/CHANGELOG.md +42 -0
- package/dist/{AiMark-Cwc9KoyE.js → AiMark-DR-w6Nbm.js} +4 -4
- package/dist/{AiMark-Cwc9KoyE.js.map → AiMark-DR-w6Nbm.js.map} +1 -1
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-5qhkSUN3.js → Alert-Dj61Bq8h.js} +3 -3
- package/dist/{Alert-5qhkSUN3.js.map → Alert-Dj61Bq8h.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-fQmFNysn.js → Announcement-B9zm-_1S.js} +2 -2
- package/dist/{Announcement-fQmFNysn.js.map → Announcement-B9zm-_1S.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{AnvilProvider-ClfmLl_6.js → AnvilProvider-DUPYyMc7.js} +2 -2
- package/dist/{AnvilProvider-ClfmLl_6.js.map → AnvilProvider-DUPYyMc7.js.map} +1 -1
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Breadcrumbs-BXo2FO2n.js → Breadcrumbs-ojgYVZwe.js} +2 -2
- package/dist/{Breadcrumbs-BXo2FO2n.js.map → Breadcrumbs-ojgYVZwe.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Button-BdrrhBTI.js +2185 -0
- package/dist/Button-BdrrhBTI.js.map +1 -0
- package/dist/Button.js +1 -1
- package/dist/{ButtonToggle-CmY77gUp.js → ButtonToggle-DaFQ3DBG.js} +2 -2
- package/dist/{ButtonToggle-CmY77gUp.js.map → ButtonToggle-DaFQ3DBG.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-d2owsYe9.js → Calendar-Cka4unyi.js} +2 -2
- package/dist/{Calendar-d2owsYe9.js.map → Calendar-Cka4unyi.js.map} +1 -1
- package/dist/{Calendar-Bd_WELZC.js → Calendar-Dxl9QnfP.js} +3 -3
- package/dist/{Calendar-Bd_WELZC.js.map → Calendar-Dxl9QnfP.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-BlFc6ZWy.js → Checkbox-B-XTVPbX.js} +3 -3
- package/dist/{Checkbox-BlFc6ZWy.js.map → Checkbox-B-XTVPbX.js.map} +1 -1
- package/dist/{Checkbox-DbaZrUE2.js → Checkbox-Cw1-KFvq.js} +2 -2
- package/dist/{Checkbox-DbaZrUE2.js.map → Checkbox-Cw1-KFvq.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-BnofwIUN.js → Chip-Ce0WGKAc.js} +2 -2
- package/dist/{Chip-BnofwIUN.js.map → Chip-Ce0WGKAc.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-BOxAzG9v.js → Combobox-CNQUROyr.js} +4 -4
- package/dist/{Combobox-BOxAzG9v.js.map → Combobox-CNQUROyr.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-DK9xRjnq.js → DataTable-JRxu2yTP.js} +862 -497
- package/dist/DataTable-JRxu2yTP.js.map +1 -0
- package/dist/DataTable.css +185 -109
- package/dist/{DateFieldRange-5Jrz6dLl.js → DateFieldRange-D2hnF50O.js} +4 -4
- package/dist/{DateFieldRange-5Jrz6dLl.js.map → DateFieldRange-D2hnF50O.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-DWFr6Ew4.js → DateFieldSingle-BuaB7RDr.js} +4 -4
- package/dist/{DateFieldSingle-DWFr6Ew4.js.map → DateFieldSingle-BuaB7RDr.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-UU22A5-E.js → DateFieldYearless-DLeMEutt.js} +4 -4
- package/dist/{DateFieldYearless-UU22A5-E.js.map → DateFieldYearless-DLeMEutt.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BoPLxm6t.js → DateFieldYearlessRange-BfPuYKKC.js} +3 -3
- package/dist/{DateFieldYearlessRange-BoPLxm6t.js.map → DateFieldYearlessRange-BfPuYKKC.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-4cfTmjzm.js → DaysOfTheWeek-BW1T8sTU.js} +3 -3
- package/dist/{DaysOfTheWeek-4cfTmjzm.js.map → DaysOfTheWeek-BW1T8sTU.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-Dn836WQM.js → Dialog-Cewu2pd_.js} +38 -10
- package/dist/Dialog-Cewu2pd_.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-B-jfihJr.js → DialogCancelButton-Czz4Wpse.js} +2 -2
- package/dist/{DialogCancelButton-B-jfihJr.js.map → DialogCancelButton-Czz4Wpse.js.map} +1 -1
- package/dist/{Drawer-CdDWt_Ba.js → Drawer-Cb5asXWf.js} +38 -10
- package/dist/Drawer-Cb5asXWf.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/DrillDown.module-C8VOhzaF.js.map +1 -1
- package/dist/{EditCard-CZibhEfS.js → EditCard-DlJE3LXN.js} +3 -3
- package/dist/{EditCard-CZibhEfS.js.map → EditCard-DlJE3LXN.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-Dr41PRxH.js → FieldLabel-HO2VP-4B.js} +2 -2
- package/dist/{FieldLabel-Dr41PRxH.js.map → FieldLabel-HO2VP-4B.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{InputMask-CcXqzqdx.js → InputMask-CLLTehFI.js} +3 -3
- package/dist/{InputMask-CcXqzqdx.js.map → InputMask-CLLTehFI.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-D9cZUVer.js → ListView-CPi-qG2w.js} +2 -2
- package/dist/{ListView-D9cZUVer.js.map → ListView-CPi-qG2w.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-CgDwzRfz.js → Listbox-Bp4hqIpH.js} +2 -2
- package/dist/{Listbox-CgDwzRfz.js.map → Listbox-Bp4hqIpH.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-CPbuIsqC.js → Menu-CCavGohP.js} +91 -93
- package/dist/Menu-CCavGohP.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-Ei7DXzvs.js → MultiSelectFieldSync-ChZCW4M9.js} +7 -7
- package/dist/{MultiSelectFieldSync-Ei7DXzvs.js.map → MultiSelectFieldSync-ChZCW4M9.js.map} +1 -1
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-B_mXpTEe.js → MultiSelectMenuSync-7C1wW4oO.js} +3 -3
- package/dist/{MultiSelectMenuSync-B_mXpTEe.js.map → MultiSelectMenuSync-7C1wW4oO.js.map} +1 -1
- package/dist/{NumberField-C5t47Obp.js → NumberField-CZSTHBeO.js} +4 -4
- package/dist/{NumberField-C5t47Obp.js.map → NumberField-CZSTHBeO.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-2hbQxUj6.js → Page-BHdvTlfE.js} +111 -62
- package/dist/Page-BHdvTlfE.js.map +1 -0
- package/dist/Page.css +76 -76
- package/dist/Page.js +1 -1
- package/dist/{Pagination-CjGmJ_rU.js → Pagination-B5jqHYG3.js} +7 -7
- package/dist/{Pagination-CjGmJ_rU.js.map → Pagination-B5jqHYG3.js.map} +1 -1
- package/dist/Pagination.css +7 -6
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-CpU9VAcb.js → Popover-BbqTZw-1.js} +3 -3
- package/dist/{Popover-CpU9VAcb.js.map → Popover-BbqTZw-1.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-FMuK8viJ.js → ProgressBar-CZcxkdX6.js} +2 -2
- package/dist/{ProgressBar-FMuK8viJ.js.map → ProgressBar-CZcxkdX6.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-DmtVWAmN.js → Radio-BFr8AdHc.js} +2 -2
- package/dist/{Radio-DmtVWAmN.js.map → Radio-BFr8AdHc.js.map} +1 -1
- package/dist/{Radio-CZZd8phn.js → Radio-DJZVMCv0.js} +3 -3
- package/dist/{Radio-CZZd8phn.js.map → Radio-DJZVMCv0.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{SelectCard-8OmIDl1m.js → SelectCard-DVcWJRbX.js} +3 -3
- package/dist/{SelectCard-8OmIDl1m.js.map → SelectCard-DVcWJRbX.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-C8PrXxDU.js → SelectFieldLabel-kEBS8L4l.js} +2 -2
- package/dist/{SelectFieldLabel-C8PrXxDU.js.map → SelectFieldLabel-kEBS8L4l.js.map} +1 -1
- package/dist/{SelectFieldSync-DGK8F2G9.js → SelectFieldSync-o1Cp9UYC.js} +6 -6
- package/dist/{SelectFieldSync-DGK8F2G9.js.map → SelectFieldSync-o1Cp9UYC.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-CuZp9mnt.js → SelectMenuSync-DXrwecFt.js} +3 -3
- package/dist/{SelectMenuSync-CuZp9mnt.js.map → SelectMenuSync-DXrwecFt.js.map} +1 -1
- package/dist/{SelectOptions-CmElsiTd.js → SelectOptions-Dy2OWqxn.js} +2 -2
- package/dist/{SelectOptions-CmElsiTd.js.map → SelectOptions-Dy2OWqxn.js.map} +1 -1
- package/dist/{SelectTrigger-KF8w6Ynk.js → SelectTrigger-DhKYzEAr.js} +2 -2
- package/dist/{SelectTrigger-KF8w6Ynk.js.map → SelectTrigger-DhKYzEAr.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-Bxmv6oXk.js → SelectTriggerBase-Ni8WqeUx.js} +76 -63
- package/dist/SelectTriggerBase-Ni8WqeUx.js.map +1 -0
- package/dist/SelectTriggerBase.css +83 -66
- package/dist/SelectTriggerBase.module-CKoq6qzX.js +38 -0
- package/dist/SelectTriggerBase.module-CKoq6qzX.js.map +1 -0
- package/dist/{Stepper-_27Lmm2K.js → Stepper-Dt2xAXth.js} +2 -2
- package/dist/{Stepper-_27Lmm2K.js.map → Stepper-Dt2xAXth.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-DPGz7wC_.js → Switch-C84MBChG.js} +2 -2
- package/dist/{Switch-DPGz7wC_.js.map → Switch-C84MBChG.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-MVxRo6yx.js → Text-WiS8UZkY.js} +2 -2
- package/dist/{Text-MVxRo6yx.js.map → Text-WiS8UZkY.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-BpSxZa0z.js → TextField-Bul_uln5.js} +3 -3
- package/dist/{TextField-BpSxZa0z.js.map → TextField-Bul_uln5.js.map} +1 -1
- package/dist/{TextField-D93iv_pk.js → TextField-OznkTx4e.js} +2 -2
- package/dist/{TextField-D93iv_pk.js.map → TextField-OznkTx4e.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-1u2fSMTh.js → Textarea-CCYLsJ1x.js} +3 -3
- package/dist/{Textarea-1u2fSMTh.js.map → Textarea-CCYLsJ1x.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-B4gLlBQJ.js → TimeField-BPvPbD8H.js} +4 -4
- package/dist/{TimeField-B4gLlBQJ.js.map → TimeField-BPvPbD8H.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-DbWYnF_t.js → Toaster-CIaIvwH6.js} +2 -2
- package/dist/{Toaster-DbWYnF_t.js.map → Toaster-CIaIvwH6.js.map} +1 -1
- package/dist/{Toaster-CSJfSOHx.js → Toaster-DYJm06Vb.js} +4 -4
- package/dist/{Toaster-CSJfSOHx.js.map → Toaster-DYJm06Vb.js.map} +1 -1
- package/dist/{Toolbar-CWRk523l.js → Toolbar-ByyI7SqG.js} +14 -14
- package/dist/{Toolbar-CWRk523l.js.map → Toolbar-ByyI7SqG.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{YearlessDateInputWithPicker-BSl5z2zo.js → YearlessDateInputWithPicker-C_twiQW5.js} +2 -2
- package/dist/{YearlessDateInputWithPicker-BSl5z2zo.js.map → YearlessDateInputWithPicker-C_twiQW5.js.map} +1 -1
- package/dist/assets/icons/st/unsorted.svg +1 -0
- package/dist/assets/icons/st.ts +1 -0
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +28 -3
- package/dist/beta/components/Table/DataTable/internal/DataTableBody.d.ts +19 -4
- package/dist/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +18 -1
- package/dist/beta/components/Table/DataTable/internal/DataTableFooter.d.ts +5 -5
- package/dist/beta/components/Table/DataTable/internal/DataTableHeader.d.ts +4 -2
- package/dist/beta/components/Table/DataTable/internal/cells/DataTableBodyCell.d.ts +0 -2
- package/dist/beta/components/Table/DataTable/internal/cells/DataTableBodyImmutableCell.d.ts +0 -5
- package/dist/beta/components/Table/DataTable/internal/cells/DataTableBodyMutableCell.d.ts +0 -5
- package/dist/beta/components/Table/DataTable/internal/cells/DataTableHeaderCell.d.ts +4 -4
- package/dist/beta/components/Table/DataTable/internal/cells/useCellFocusListener.d.ts +10 -0
- package/dist/beta/components/Table/DataTable/internal/context/focus/DTFocusProvider.d.ts +4 -1
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +0 -1
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +0 -1
- package/dist/beta/components/Table/DataTable/internal/editable-cells/types.d.ts +0 -4
- package/dist/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +3 -6
- package/dist/beta/components/Table/DataTable/internal/useDataTableVirtualizer.d.ts +29 -0
- package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +13 -2
- package/dist/beta/components/Table/DataTable/internal/util/shallowSortingEqual.d.ts +2 -0
- package/dist/beta/components/Table/DataTable/stories/DataTable.story-data.d.ts +1 -0
- package/dist/beta/components/Table/base/cells/TableHeaderCell.d.ts +4 -0
- package/dist/beta/components/Table/createColumnHelper.d.ts +36 -12
- package/dist/beta/components/Table/formatters/htmlFormatter.d.ts +13 -0
- package/dist/beta/components/Table/formatters/htmlToMarkdown.d.ts +11 -0
- package/dist/beta/components/Table/formatters/index.d.ts +2 -0
- package/dist/beta/components/Table/formatters/markdownFormatter.d.ts +11 -0
- package/dist/beta/components/Table/types.d.ts +64 -10
- package/dist/beta.js +9 -9
- package/dist/components/DrillDown/internal/DrillDownContext.d.ts +4 -0
- package/dist/components/DrillDown/internal/useDrillDownContextState.d.ts +4 -0
- package/dist/index.js +43 -44
- package/dist/index.js.map +1 -1
- package/dist/internal/flubber/a2c.d.ts +16 -0
- package/dist/internal/flubber/add.d.ts +3 -0
- package/dist/internal/flubber/arc.d.ts +26 -0
- package/dist/internal/flubber/bezier.d.ts +32 -0
- package/dist/internal/flubber/errors.d.ts +5 -0
- package/dist/internal/flubber/index.d.ts +6 -0
- package/dist/internal/flubber/interpolate.d.ts +7 -0
- package/dist/internal/flubber/linear.d.ts +27 -0
- package/dist/internal/flubber/math.d.ts +10 -0
- package/dist/internal/flubber/normalize.d.ts +4 -0
- package/dist/internal/flubber/parse.d.ts +7 -0
- package/dist/internal/flubber/path-properties.d.ts +23 -0
- package/dist/internal/flubber/rotate.d.ts +2 -0
- package/dist/internal/flubber/svg.d.ts +9 -0
- package/dist/internal/index.d.ts +1 -0
- package/dist/{stripInlineMarkdown-DyqLAQnf.js → stripInlineMarkdown-Cg1qlNwL.js} +2 -2
- package/dist/{stripInlineMarkdown-DyqLAQnf.js.map → stripInlineMarkdown-Cg1qlNwL.js.map} +1 -1
- package/dist/{syncFilterUtils-CsbCnI1-.js → syncFilterUtils-UR5Vgqkh.js} +7 -8
- package/dist/{syncFilterUtils-CsbCnI1-.js.map → syncFilterUtils-UR5Vgqkh.js.map} +1 -1
- package/dist/{useDrilldown-C7eMBl68.js → useDrilldown-D6VZNSCX.js} +46 -20
- package/dist/{useDrilldown-C7eMBl68.js.map → useDrilldown-D6VZNSCX.js.map} +1 -1
- package/dist/{useInitialFocus-DbaB-x5T.js → useInitialFocus-BUxEDMEG.js} +65 -23
- package/dist/useInitialFocus-BUxEDMEG.js.map +1 -0
- package/dist/{usePopoverTransitionStates-B1opfxxn.js → usePopoverTransitionStates-CDXCdyKa.js} +2 -1
- package/dist/{usePopoverTransitionStates-B1opfxxn.js.map → usePopoverTransitionStates-CDXCdyKa.js.map} +1 -1
- package/dist/{useToggleSelection-BM8asdFj.js → useToggleSelection-BBdrIVWs.js} +2 -2
- package/dist/{useToggleSelection-BM8asdFj.js.map → useToggleSelection-BBdrIVWs.js.map} +1 -1
- package/package.json +1 -3
- package/dist/Button-a_D7tUgM.js +0 -4517
- package/dist/Button-a_D7tUgM.js.map +0 -1
- package/dist/DataTable-DK9xRjnq.js.map +0 -1
- package/dist/Dialog-Dn836WQM.js.map +0 -1
- package/dist/Drawer-CdDWt_Ba.js.map +0 -1
- package/dist/Menu-CPbuIsqC.js.map +0 -1
- package/dist/Page-2hbQxUj6.js.map +0 -1
- package/dist/SelectTriggerBase-Bxmv6oXk.js.map +0 -1
- package/dist/SelectTriggerBase.module-B0NFRlQP.js +0 -36
- package/dist/SelectTriggerBase.module-B0NFRlQP.js.map +0 -1
- package/dist/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +0 -16
- package/dist/beta/components/Table/DataTable/internal/context/hover/DTHoverContext.d.ts +0 -31
- package/dist/beta/components/Table/DataTable/internal/context/hover/DTHoverProvider.d.ts +0 -3
- package/dist/beta/components/Table/DataTable/internal/context/hover/useDTHoverDispatchContext.d.ts +0 -1
- package/dist/beta/components/Table/DataTable/internal/context/hover/useDTHoverStateContext.d.ts +0 -4
- package/dist/beta/components/Table/internal/getColSpanWidth.d.ts +0 -7
- package/dist/useInitialFocus-DbaB-x5T.js.map +0 -1
- /package/dist/{anvil-fonts.css → AnvilProvider.css} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Button-a_D7tUgM.js","sources":["../../../node_modules/.pnpm/motion-utils@12.23.6/node_modules/motion-utils/dist/es/wrap.mjs","../../../node_modules/.pnpm/motion-utils@12.23.6/node_modules/motion-utils/dist/es/easing/utils/get-easing-for-segment.mjs","../../../node_modules/.pnpm/motion-dom@12.23.12/node_modules/motion-dom/dist/es/animation/GroupAnimation.mjs","../../../node_modules/.pnpm/motion-dom@12.23.12/node_modules/motion-dom/dist/es/animation/GroupAnimationWithThen.mjs","../../../node_modules/.pnpm/motion-dom@12.23.12/node_modules/motion-dom/dist/es/utils/transform.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/value/use-motion-value.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/value/use-combine-values.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/value/use-computed.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/value/use-transform.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/animate/resolve-subjects.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/sequence/utils/calc-repeat-duration.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/sequence/utils/normalize-times.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/sequence/create.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/render/object/ObjectVisualElement.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/animate/subject.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/animate/sequence.mjs","../../../node_modules/.pnpm/framer-motion@12.23.12_@emotion+is-prop-valid@1.4.0_react-dom@18.2.0_react@18.2.0__react@18.2.0/node_modules/framer-motion/dist/es/animation/animate/index.mjs","../../../node_modules/.pnpm/d3-polygon@1.0.6/node_modules/d3-polygon/src/area.js","../../../node_modules/.pnpm/d3-polygon@1.0.6/node_modules/d3-polygon/src/length.js","../../../node_modules/.pnpm/svgpath@2.6.0/node_modules/svgpath/lib/path_parse.js","../../../node_modules/.pnpm/svgpath@2.6.0/node_modules/svgpath/lib/matrix.js","../../../node_modules/.pnpm/svgpath@2.6.0/node_modules/svgpath/lib/transform_parse.js","../../../node_modules/.pnpm/svgpath@2.6.0/node_modules/svgpath/lib/a2c.js","../../../node_modules/.pnpm/svgpath@2.6.0/node_modules/svgpath/lib/ellipse.js","../../../node_modules/.pnpm/svgpath@2.6.0/node_modules/svgpath/lib/svgpath.js","../../../node_modules/.pnpm/svgpath@2.6.0/node_modules/svgpath/index.js","../../../node_modules/.pnpm/svg-path-properties@0.2.2/node_modules/svg-path-properties/src/parse.js","../../../node_modules/.pnpm/svg-path-properties@0.2.2/node_modules/svg-path-properties/src/bezier.js","../../../node_modules/.pnpm/svg-path-properties@0.2.2/node_modules/svg-path-properties/src/a2c.js","../../../node_modules/.pnpm/svg-path-properties@0.2.2/node_modules/svg-path-properties/src/arc.js","../../../node_modules/.pnpm/svg-path-properties@0.2.2/node_modules/svg-path-properties/src/linear.js","../../../node_modules/.pnpm/svg-path-properties@0.2.2/node_modules/svg-path-properties/src/path-properties.js","../../../node_modules/.pnpm/flubber@0.4.2/node_modules/flubber/src/math.js","../../../node_modules/.pnpm/flubber@0.4.2/node_modules/flubber/src/errors.js","../../../node_modules/.pnpm/flubber@0.4.2/node_modules/flubber/src/svg.js","../../../node_modules/.pnpm/flubber@0.4.2/node_modules/flubber/src/add.js","../../../node_modules/.pnpm/flubber@0.4.2/node_modules/flubber/src/normalize.js","../../../node_modules/.pnpm/flubber@0.4.2/node_modules/flubber/src/rotate.js","../../../node_modules/.pnpm/flubber@0.4.2/node_modules/flubber/src/interpolate.js","../../../node_modules/.pnpm/earcut@2.2.4/node_modules/earcut/src/earcut.js","../../../node_modules/.pnpm/d3-array@1.2.4/node_modules/d3-array/src/ascending.js","../../../node_modules/.pnpm/d3-array@1.2.4/node_modules/d3-array/src/bisector.js","../../../node_modules/.pnpm/d3-array@1.2.4/node_modules/d3-array/src/bisect.js","../src/components/AiMark/internal/AiMarkIconAnimated.tsx","../public/assets/icons/st/ai_chat.svg","../public/assets/icons/st/ai_edit.svg","../public/assets/icons/st/ai_form.svg","../public/assets/icons/st/ai_mic.svg","../public/assets/icons/st/ai_search.svg","../src/components/Button/internal/buttonAiMarkUtils.ts","../src/components/Button/Button.tsx"],"sourcesContent":["const wrap = (min, max, v) => {\n const rangeSize = max - min;\n return ((((v - min) % rangeSize) + rangeSize) % rangeSize) + min;\n};\n\nexport { wrap };\n","import { wrap } from '../../wrap.mjs';\nimport { isEasingArray } from './is-easing-array.mjs';\n\nfunction getEasingForSegment(easing, i) {\n return isEasingArray(easing) ? easing[wrap(0, easing.length, i)] : easing;\n}\n\nexport { getEasingForSegment };\n","class GroupAnimation {\n constructor(animations) {\n // Bound to accomadate common `return animation.stop` pattern\n this.stop = () => this.runAll(\"stop\");\n this.animations = animations.filter(Boolean);\n }\n get finished() {\n return Promise.all(this.animations.map((animation) => animation.finished));\n }\n /**\n * TODO: Filter out cancelled or stopped animations before returning\n */\n getAll(propName) {\n return this.animations[0][propName];\n }\n setAll(propName, newValue) {\n for (let i = 0; i < this.animations.length; i++) {\n this.animations[i][propName] = newValue;\n }\n }\n attachTimeline(timeline) {\n const subscriptions = this.animations.map((animation) => animation.attachTimeline(timeline));\n return () => {\n subscriptions.forEach((cancel, i) => {\n cancel && cancel();\n this.animations[i].stop();\n });\n };\n }\n get time() {\n return this.getAll(\"time\");\n }\n set time(time) {\n this.setAll(\"time\", time);\n }\n get speed() {\n return this.getAll(\"speed\");\n }\n set speed(speed) {\n this.setAll(\"speed\", speed);\n }\n get state() {\n return this.getAll(\"state\");\n }\n get startTime() {\n return this.getAll(\"startTime\");\n }\n get duration() {\n let max = 0;\n for (let i = 0; i < this.animations.length; i++) {\n max = Math.max(max, this.animations[i].duration);\n }\n return max;\n }\n runAll(methodName) {\n this.animations.forEach((controls) => controls[methodName]());\n }\n play() {\n this.runAll(\"play\");\n }\n pause() {\n this.runAll(\"pause\");\n }\n cancel() {\n this.runAll(\"cancel\");\n }\n complete() {\n this.runAll(\"complete\");\n }\n}\n\nexport { GroupAnimation };\n","import { GroupAnimation } from './GroupAnimation.mjs';\n\nclass GroupAnimationWithThen extends GroupAnimation {\n then(onResolve, _onReject) {\n return this.finished.finally(onResolve).then(() => { });\n }\n}\n\nexport { GroupAnimationWithThen };\n","import { interpolate } from './interpolate.mjs';\n\nfunction transform(...args) {\n const useImmediate = !Array.isArray(args[0]);\n const argOffset = useImmediate ? 0 : -1;\n const inputValue = args[0 + argOffset];\n const inputRange = args[1 + argOffset];\n const outputRange = args[2 + argOffset];\n const options = args[3 + argOffset];\n const interpolator = interpolate(inputRange, outputRange, options);\n return useImmediate ? interpolator(inputValue) : interpolator;\n}\n\nexport { transform };\n","import { motionValue } from 'motion-dom';\nimport { useContext, useState, useEffect } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\n\n/**\n * Creates a `MotionValue` to track the state and velocity of a value.\n *\n * Usually, these are created automatically. For advanced use-cases, like use with `useTransform`, you can create `MotionValue`s externally and pass them into the animated component via the `style` prop.\n *\n * ```jsx\n * export const MyComponent = () => {\n * const scale = useMotionValue(1)\n *\n * return <motion.div style={{ scale }} />\n * }\n * ```\n *\n * @param initial - The initial state.\n *\n * @public\n */\nfunction useMotionValue(initial) {\n const value = useConstant(() => motionValue(initial));\n /**\n * If this motion value is being used in static mode, like on\n * the Framer canvas, force components to rerender when the motion\n * value is updated.\n */\n const { isStatic } = useContext(MotionConfigContext);\n if (isStatic) {\n const [, setLatest] = useState(initial);\n useEffect(() => value.on(\"change\", setLatest), []);\n }\n return value;\n}\n\nexport { useMotionValue };\n","import { cancelFrame, frame } from 'motion-dom';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\nimport { useMotionValue } from './use-motion-value.mjs';\n\nfunction useCombineMotionValues(values, combineValues) {\n /**\n * Initialise the returned motion value. This remains the same between renders.\n */\n const value = useMotionValue(combineValues());\n /**\n * Create a function that will update the template motion value with the latest values.\n * This is pre-bound so whenever a motion value updates it can schedule its\n * execution in Framesync. If it's already been scheduled it won't be fired twice\n * in a single frame.\n */\n const updateValue = () => value.set(combineValues());\n /**\n * Synchronously update the motion value with the latest values during the render.\n * This ensures that within a React render, the styles applied to the DOM are up-to-date.\n */\n updateValue();\n /**\n * Subscribe to all motion values found within the template. Whenever any of them change,\n * schedule an update.\n */\n useIsomorphicLayoutEffect(() => {\n const scheduleUpdate = () => frame.preRender(updateValue, false, true);\n const subscriptions = values.map((v) => v.on(\"change\", scheduleUpdate));\n return () => {\n subscriptions.forEach((unsubscribe) => unsubscribe());\n cancelFrame(updateValue);\n };\n });\n return value;\n}\n\nexport { useCombineMotionValues };\n","import { collectMotionValues } from 'motion-dom';\nimport { useCombineMotionValues } from './use-combine-values.mjs';\n\nfunction useComputed(compute) {\n /**\n * Open session of collectMotionValues. Any MotionValue that calls get()\n * will be saved into this array.\n */\n collectMotionValues.current = [];\n compute();\n const value = useCombineMotionValues(collectMotionValues.current, compute);\n /**\n * Synchronously close session of collectMotionValues.\n */\n collectMotionValues.current = undefined;\n return value;\n}\n\nexport { useComputed };\n","import { transform } from 'motion-dom';\nimport { useConstant } from '../utils/use-constant.mjs';\nimport { useCombineMotionValues } from './use-combine-values.mjs';\nimport { useComputed } from './use-computed.mjs';\n\nfunction useTransform(input, inputRangeOrTransformer, outputRange, options) {\n if (typeof input === \"function\") {\n return useComputed(input);\n }\n const transformer = typeof inputRangeOrTransformer === \"function\"\n ? inputRangeOrTransformer\n : transform(inputRangeOrTransformer, outputRange, options);\n return Array.isArray(input)\n ? useListTransform(input, transformer)\n : useListTransform([input], ([latest]) => transformer(latest));\n}\nfunction useListTransform(values, transformer) {\n const latest = useConstant(() => []);\n return useCombineMotionValues(values, () => {\n latest.length = 0;\n const numValues = values.length;\n for (let i = 0; i < numValues; i++) {\n latest[i] = values[i].get();\n }\n return transformer(latest);\n });\n}\n\nexport { useTransform };\n","function isDOMKeyframes(keyframes) {\n return typeof keyframes === \"object\" && !Array.isArray(keyframes);\n}\n\nexport { isDOMKeyframes };\n","import { resolveElements } from 'motion-dom';\nimport { isDOMKeyframes } from '../utils/is-dom-keyframes.mjs';\n\nfunction resolveSubjects(subject, keyframes, scope, selectorCache) {\n if (typeof subject === \"string\" && isDOMKeyframes(keyframes)) {\n return resolveElements(subject, scope, selectorCache);\n }\n else if (subject instanceof NodeList) {\n return Array.from(subject);\n }\n else if (Array.isArray(subject)) {\n return subject;\n }\n else {\n return [subject];\n }\n}\n\nexport { resolveSubjects };\n","function calculateRepeatDuration(duration, repeat, _repeatDelay) {\n return duration * (repeat + 1);\n}\n\nexport { calculateRepeatDuration };\n","/**\n * Given a absolute or relative time definition and current/prev time state of the sequence,\n * calculate an absolute time for the next keyframes.\n */\nfunction calcNextTime(current, next, prev, labels) {\n if (typeof next === \"number\") {\n return next;\n }\n else if (next.startsWith(\"-\") || next.startsWith(\"+\")) {\n return Math.max(0, current + parseFloat(next));\n }\n else if (next === \"<\") {\n return prev;\n }\n else if (next.startsWith(\"<\")) {\n return Math.max(0, prev + parseFloat(next.slice(1)));\n }\n else {\n return labels.get(next) ?? current;\n }\n}\n\nexport { calcNextTime };\n","import { mixNumber } from 'motion-dom';\nimport { getEasingForSegment, removeItem } from 'motion-utils';\n\nfunction eraseKeyframes(sequence, startTime, endTime) {\n for (let i = 0; i < sequence.length; i++) {\n const keyframe = sequence[i];\n if (keyframe.at > startTime && keyframe.at < endTime) {\n removeItem(sequence, keyframe);\n // If we remove this item we have to push the pointer back one\n i--;\n }\n }\n}\nfunction addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) {\n /**\n * Erase every existing value between currentTime and targetTime,\n * this will essentially splice this timeline into any currently\n * defined ones.\n */\n eraseKeyframes(sequence, startTime, endTime);\n for (let i = 0; i < keyframes.length; i++) {\n sequence.push({\n value: keyframes[i],\n at: mixNumber(startTime, endTime, offset[i]),\n easing: getEasingForSegment(easing, i),\n });\n }\n}\n\nexport { addKeyframes, eraseKeyframes };\n","/**\n * Take an array of times that represent repeated keyframes. For instance\n * if we have original times of [0, 0.5, 1] then our repeated times will\n * be [0, 0.5, 1, 1, 1.5, 2]. Loop over the times and scale them back\n * down to a 0-1 scale.\n */\nfunction normalizeTimes(times, repeat) {\n for (let i = 0; i < times.length; i++) {\n times[i] = times[i] / (repeat + 1);\n }\n}\n\nexport { normalizeTimes };\n","function compareByTime(a, b) {\n if (a.at === b.at) {\n if (a.value === null)\n return 1;\n if (b.value === null)\n return -1;\n return 0;\n }\n else {\n return a.at - b.at;\n }\n}\n\nexport { compareByTime };\n","import { isMotionValue, defaultOffset, isGenerator, createGeneratorEasing, fillOffset } from 'motion-dom';\nimport { progress, secondsToMilliseconds, invariant, getEasingForSegment } from 'motion-utils';\nimport { resolveSubjects } from '../animate/resolve-subjects.mjs';\nimport { calculateRepeatDuration } from './utils/calc-repeat-duration.mjs';\nimport { calcNextTime } from './utils/calc-time.mjs';\nimport { addKeyframes } from './utils/edit.mjs';\nimport { normalizeTimes } from './utils/normalize-times.mjs';\nimport { compareByTime } from './utils/sort.mjs';\n\nconst defaultSegmentEasing = \"easeInOut\";\nconst MAX_REPEAT = 20;\nfunction createAnimationsFromSequence(sequence, { defaultTransition = {}, ...sequenceTransition } = {}, scope, generators) {\n const defaultDuration = defaultTransition.duration || 0.3;\n const animationDefinitions = new Map();\n const sequences = new Map();\n const elementCache = {};\n const timeLabels = new Map();\n let prevTime = 0;\n let currentTime = 0;\n let totalDuration = 0;\n /**\n * Build the timeline by mapping over the sequence array and converting\n * the definitions into keyframes and offsets with absolute time values.\n * These will later get converted into relative offsets in a second pass.\n */\n for (let i = 0; i < sequence.length; i++) {\n const segment = sequence[i];\n /**\n * If this is a timeline label, mark it and skip the rest of this iteration.\n */\n if (typeof segment === \"string\") {\n timeLabels.set(segment, currentTime);\n continue;\n }\n else if (!Array.isArray(segment)) {\n timeLabels.set(segment.name, calcNextTime(currentTime, segment.at, prevTime, timeLabels));\n continue;\n }\n let [subject, keyframes, transition = {}] = segment;\n /**\n * If a relative or absolute time value has been specified we need to resolve\n * it in relation to the currentTime.\n */\n if (transition.at !== undefined) {\n currentTime = calcNextTime(currentTime, transition.at, prevTime, timeLabels);\n }\n /**\n * Keep track of the maximum duration in this definition. This will be\n * applied to currentTime once the definition has been parsed.\n */\n let maxDuration = 0;\n const resolveValueSequence = (valueKeyframes, valueTransition, valueSequence, elementIndex = 0, numSubjects = 0) => {\n const valueKeyframesAsList = keyframesAsList(valueKeyframes);\n const { delay = 0, times = defaultOffset(valueKeyframesAsList), type = \"keyframes\", repeat, repeatType, repeatDelay = 0, ...remainingTransition } = valueTransition;\n let { ease = defaultTransition.ease || \"easeOut\", duration } = valueTransition;\n /**\n * Resolve stagger() if defined.\n */\n const calculatedDelay = typeof delay === \"function\"\n ? delay(elementIndex, numSubjects)\n : delay;\n /**\n * If this animation should and can use a spring, generate a spring easing function.\n */\n const numKeyframes = valueKeyframesAsList.length;\n const createGenerator = isGenerator(type)\n ? type\n : generators?.[type || \"keyframes\"];\n if (numKeyframes <= 2 && createGenerator) {\n /**\n * As we're creating an easing function from a spring,\n * ideally we want to generate it using the real distance\n * between the two keyframes. However this isn't always\n * possible - in these situations we use 0-100.\n */\n let absoluteDelta = 100;\n if (numKeyframes === 2 &&\n isNumberKeyframesArray(valueKeyframesAsList)) {\n const delta = valueKeyframesAsList[1] - valueKeyframesAsList[0];\n absoluteDelta = Math.abs(delta);\n }\n const springTransition = { ...remainingTransition };\n if (duration !== undefined) {\n springTransition.duration = secondsToMilliseconds(duration);\n }\n const springEasing = createGeneratorEasing(springTransition, absoluteDelta, createGenerator);\n ease = springEasing.ease;\n duration = springEasing.duration;\n }\n duration ?? (duration = defaultDuration);\n const startTime = currentTime + calculatedDelay;\n /**\n * If there's only one time offset of 0, fill in a second with length 1\n */\n if (times.length === 1 && times[0] === 0) {\n times[1] = 1;\n }\n /**\n * Fill out if offset if fewer offsets than keyframes\n */\n const remainder = times.length - valueKeyframesAsList.length;\n remainder > 0 && fillOffset(times, remainder);\n /**\n * If only one value has been set, ie [1], push a null to the start of\n * the keyframe array. This will let us mark a keyframe at this point\n * that will later be hydrated with the previous value.\n */\n valueKeyframesAsList.length === 1 &&\n valueKeyframesAsList.unshift(null);\n /**\n * Handle repeat options\n */\n if (repeat) {\n invariant(repeat < MAX_REPEAT, \"Repeat count too high, must be less than 20\", \"repeat-count-high\");\n duration = calculateRepeatDuration(duration, repeat);\n const originalKeyframes = [...valueKeyframesAsList];\n const originalTimes = [...times];\n ease = Array.isArray(ease) ? [...ease] : [ease];\n const originalEase = [...ease];\n for (let repeatIndex = 0; repeatIndex < repeat; repeatIndex++) {\n valueKeyframesAsList.push(...originalKeyframes);\n for (let keyframeIndex = 0; keyframeIndex < originalKeyframes.length; keyframeIndex++) {\n times.push(originalTimes[keyframeIndex] + (repeatIndex + 1));\n ease.push(keyframeIndex === 0\n ? \"linear\"\n : getEasingForSegment(originalEase, keyframeIndex - 1));\n }\n }\n normalizeTimes(times, repeat);\n }\n const targetTime = startTime + duration;\n /**\n * Add keyframes, mapping offsets to absolute time.\n */\n addKeyframes(valueSequence, valueKeyframesAsList, ease, times, startTime, targetTime);\n maxDuration = Math.max(calculatedDelay + duration, maxDuration);\n totalDuration = Math.max(targetTime, totalDuration);\n };\n if (isMotionValue(subject)) {\n const subjectSequence = getSubjectSequence(subject, sequences);\n resolveValueSequence(keyframes, transition, getValueSequence(\"default\", subjectSequence));\n }\n else {\n const subjects = resolveSubjects(subject, keyframes, scope, elementCache);\n const numSubjects = subjects.length;\n /**\n * For every element in this segment, process the defined values.\n */\n for (let subjectIndex = 0; subjectIndex < numSubjects; subjectIndex++) {\n /**\n * Cast necessary, but we know these are of this type\n */\n keyframes = keyframes;\n transition = transition;\n const thisSubject = subjects[subjectIndex];\n const subjectSequence = getSubjectSequence(thisSubject, sequences);\n for (const key in keyframes) {\n resolveValueSequence(keyframes[key], getValueTransition(transition, key), getValueSequence(key, subjectSequence), subjectIndex, numSubjects);\n }\n }\n }\n prevTime = currentTime;\n currentTime += maxDuration;\n }\n /**\n * For every element and value combination create a new animation.\n */\n sequences.forEach((valueSequences, element) => {\n for (const key in valueSequences) {\n const valueSequence = valueSequences[key];\n /**\n * Arrange all the keyframes in ascending time order.\n */\n valueSequence.sort(compareByTime);\n const keyframes = [];\n const valueOffset = [];\n const valueEasing = [];\n /**\n * For each keyframe, translate absolute times into\n * relative offsets based on the total duration of the timeline.\n */\n for (let i = 0; i < valueSequence.length; i++) {\n const { at, value, easing } = valueSequence[i];\n keyframes.push(value);\n valueOffset.push(progress(0, totalDuration, at));\n valueEasing.push(easing || \"easeOut\");\n }\n /**\n * If the first keyframe doesn't land on offset: 0\n * provide one by duplicating the initial keyframe. This ensures\n * it snaps to the first keyframe when the animation starts.\n */\n if (valueOffset[0] !== 0) {\n valueOffset.unshift(0);\n keyframes.unshift(keyframes[0]);\n valueEasing.unshift(defaultSegmentEasing);\n }\n /**\n * If the last keyframe doesn't land on offset: 1\n * provide one with a null wildcard value. This will ensure it\n * stays static until the end of the animation.\n */\n if (valueOffset[valueOffset.length - 1] !== 1) {\n valueOffset.push(1);\n keyframes.push(null);\n }\n if (!animationDefinitions.has(element)) {\n animationDefinitions.set(element, {\n keyframes: {},\n transition: {},\n });\n }\n const definition = animationDefinitions.get(element);\n definition.keyframes[key] = keyframes;\n definition.transition[key] = {\n ...defaultTransition,\n duration: totalDuration,\n ease: valueEasing,\n times: valueOffset,\n ...sequenceTransition,\n };\n }\n });\n return animationDefinitions;\n}\nfunction getSubjectSequence(subject, sequences) {\n !sequences.has(subject) && sequences.set(subject, {});\n return sequences.get(subject);\n}\nfunction getValueSequence(name, sequences) {\n if (!sequences[name])\n sequences[name] = [];\n return sequences[name];\n}\nfunction keyframesAsList(keyframes) {\n return Array.isArray(keyframes) ? keyframes : [keyframes];\n}\nfunction getValueTransition(transition, key) {\n return transition && transition[key]\n ? {\n ...transition,\n ...transition[key],\n }\n : { ...transition };\n}\nconst isNumber = (keyframe) => typeof keyframe === \"number\";\nconst isNumberKeyframesArray = (keyframes) => keyframes.every(isNumber);\n\nexport { createAnimationsFromSequence, getValueTransition };\n","import { createBox } from '../../projection/geometry/models.mjs';\nimport { VisualElement } from '../VisualElement.mjs';\n\nfunction isObjectKey(key, object) {\n return key in object;\n}\nclass ObjectVisualElement extends VisualElement {\n constructor() {\n super(...arguments);\n this.type = \"object\";\n }\n readValueFromInstance(instance, key) {\n if (isObjectKey(key, instance)) {\n const value = instance[key];\n if (typeof value === \"string\" || typeof value === \"number\") {\n return value;\n }\n }\n return undefined;\n }\n getBaseTargetFromProps() {\n return undefined;\n }\n removeValueFromRenderState(key, renderState) {\n delete renderState.output[key];\n }\n measureInstanceViewportBox() {\n return createBox();\n }\n build(renderState, latestValues) {\n Object.assign(renderState.output, latestValues);\n }\n renderInstance(instance, { output }) {\n Object.assign(instance, output);\n }\n sortInstanceNodePosition() {\n return 0;\n }\n}\n\nexport { ObjectVisualElement };\n","import { isSVGElement, isSVGSVGElement } from 'motion-dom';\nimport { HTMLVisualElement } from '../../render/html/HTMLVisualElement.mjs';\nimport { ObjectVisualElement } from '../../render/object/ObjectVisualElement.mjs';\nimport { visualElementStore } from '../../render/store.mjs';\nimport { SVGVisualElement } from '../../render/svg/SVGVisualElement.mjs';\n\nfunction createDOMVisualElement(element) {\n const options = {\n presenceContext: null,\n props: {},\n visualState: {\n renderState: {\n transform: {},\n transformOrigin: {},\n style: {},\n vars: {},\n attrs: {},\n },\n latestValues: {},\n },\n };\n const node = isSVGElement(element) && !isSVGSVGElement(element)\n ? new SVGVisualElement(options)\n : new HTMLVisualElement(options);\n node.mount(element);\n visualElementStore.set(element, node);\n}\nfunction createObjectVisualElement(subject) {\n const options = {\n presenceContext: null,\n props: {},\n visualState: {\n renderState: {\n output: {},\n },\n latestValues: {},\n },\n };\n const node = new ObjectVisualElement(options);\n node.mount(subject);\n visualElementStore.set(subject, node);\n}\n\nexport { createDOMVisualElement, createObjectVisualElement };\n","import { isMotionValue } from 'motion-dom';\nimport { invariant } from 'motion-utils';\nimport { visualElementStore } from '../../render/store.mjs';\nimport { animateTarget } from '../interfaces/visual-element-target.mjs';\nimport { createDOMVisualElement, createObjectVisualElement } from '../utils/create-visual-element.mjs';\nimport { isDOMKeyframes } from '../utils/is-dom-keyframes.mjs';\nimport { resolveSubjects } from './resolve-subjects.mjs';\nimport { animateSingleValue } from './single-value.mjs';\n\nfunction isSingleValue(subject, keyframes) {\n return (isMotionValue(subject) ||\n typeof subject === \"number\" ||\n (typeof subject === \"string\" && !isDOMKeyframes(keyframes)));\n}\n/**\n * Implementation\n */\nfunction animateSubject(subject, keyframes, options, scope) {\n const animations = [];\n if (isSingleValue(subject, keyframes)) {\n animations.push(animateSingleValue(subject, isDOMKeyframes(keyframes)\n ? keyframes.default || keyframes\n : keyframes, options ? options.default || options : options));\n }\n else {\n const subjects = resolveSubjects(subject, keyframes, scope);\n const numSubjects = subjects.length;\n invariant(Boolean(numSubjects), \"No valid elements provided.\", \"no-valid-elements\");\n for (let i = 0; i < numSubjects; i++) {\n const thisSubject = subjects[i];\n invariant(thisSubject !== null, \"You're trying to perform an animation on null. Ensure that selectors are correctly finding elements and refs are correctly hydrated.\", \"animate-null\");\n const createVisualElement = thisSubject instanceof Element\n ? createDOMVisualElement\n : createObjectVisualElement;\n if (!visualElementStore.has(thisSubject)) {\n createVisualElement(thisSubject);\n }\n const visualElement = visualElementStore.get(thisSubject);\n const transition = { ...options };\n /**\n * Resolve stagger function if provided.\n */\n if (\"delay\" in transition &&\n typeof transition.delay === \"function\") {\n transition.delay = transition.delay(i, numSubjects);\n }\n animations.push(...animateTarget(visualElement, { ...keyframes, transition }, {}));\n }\n }\n return animations;\n}\n\nexport { animateSubject };\n","import { spring } from 'motion-dom';\nimport { createAnimationsFromSequence } from '../sequence/create.mjs';\nimport { animateSubject } from './subject.mjs';\n\nfunction animateSequence(sequence, options, scope) {\n const animations = [];\n const animationDefinitions = createAnimationsFromSequence(sequence, options, scope, { spring });\n animationDefinitions.forEach(({ keyframes, transition }, subject) => {\n animations.push(...animateSubject(subject, keyframes, transition));\n });\n return animations;\n}\n\nexport { animateSequence };\n","import { GroupAnimationWithThen } from 'motion-dom';\nimport { removeItem } from 'motion-utils';\nimport { animateSequence } from './sequence.mjs';\nimport { animateSubject } from './subject.mjs';\n\nfunction isSequence(value) {\n return Array.isArray(value) && value.some(Array.isArray);\n}\n/**\n * Creates an animation function that is optionally scoped\n * to a specific element.\n */\nfunction createScopedAnimate(scope) {\n /**\n * Implementation\n */\n function scopedAnimate(subjectOrSequence, optionsOrKeyframes, options) {\n let animations = [];\n if (isSequence(subjectOrSequence)) {\n animations = animateSequence(subjectOrSequence, optionsOrKeyframes, scope);\n }\n else {\n animations = animateSubject(subjectOrSequence, optionsOrKeyframes, options, scope);\n }\n const animation = new GroupAnimationWithThen(animations);\n if (scope) {\n scope.animations.push(animation);\n animation.finished.then(() => {\n removeItem(scope.animations, animation);\n });\n }\n return animation;\n }\n return scopedAnimate;\n}\nconst animate = createScopedAnimate();\n\nexport { animate, createScopedAnimate };\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n a,\n b = polygon[n - 1],\n area = 0;\n\n while (++i < n) {\n a = b;\n b = polygon[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n\n return area / 2;\n}\n","export default function(polygon) {\n var i = -1,\n n = polygon.length,\n b = polygon[n - 1],\n xa,\n ya,\n xb = b[0],\n yb = b[1],\n perimeter = 0;\n\n while (++i < n) {\n xa = xb;\n ya = yb;\n b = polygon[i];\n xb = b[0];\n yb = b[1];\n xa -= xb;\n ya -= yb;\n perimeter += Math.sqrt(xa * xa + ya * ya);\n }\n\n return perimeter;\n}\n","'use strict';\n\n\nvar paramCounts = { a: 7, c: 6, h: 1, l: 2, m: 2, r: 4, q: 4, s: 4, t: 2, v: 1, z: 0 };\n\nvar SPECIAL_SPACES = [\n 0x1680, 0x180E, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006,\n 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF\n];\n\nfunction isSpace(ch) {\n return (ch === 0x0A) || (ch === 0x0D) || (ch === 0x2028) || (ch === 0x2029) || // Line terminators\n // White spaces\n (ch === 0x20) || (ch === 0x09) || (ch === 0x0B) || (ch === 0x0C) || (ch === 0xA0) ||\n (ch >= 0x1680 && SPECIAL_SPACES.indexOf(ch) >= 0);\n}\n\nfunction isCommand(code) {\n /*eslint-disable no-bitwise*/\n switch (code | 0x20) {\n case 0x6D/* m */:\n case 0x7A/* z */:\n case 0x6C/* l */:\n case 0x68/* h */:\n case 0x76/* v */:\n case 0x63/* c */:\n case 0x73/* s */:\n case 0x71/* q */:\n case 0x74/* t */:\n case 0x61/* a */:\n case 0x72/* r */:\n return true;\n }\n return false;\n}\n\nfunction isArc(code) {\n return (code | 0x20) === 0x61;\n}\n\nfunction isDigit(code) {\n return (code >= 48 && code <= 57); // 0..9\n}\n\nfunction isDigitStart(code) {\n return (code >= 48 && code <= 57) || /* 0..9 */\n code === 0x2B || /* + */\n code === 0x2D || /* - */\n code === 0x2E; /* . */\n}\n\n\nfunction State(path) {\n this.index = 0;\n this.path = path;\n this.max = path.length;\n this.result = [];\n this.param = 0.0;\n this.err = '';\n this.segmentStart = 0;\n this.data = [];\n}\n\nfunction skipSpaces(state) {\n while (state.index < state.max && isSpace(state.path.charCodeAt(state.index))) {\n state.index++;\n }\n}\n\n\nfunction scanFlag(state) {\n var ch = state.path.charCodeAt(state.index);\n\n if (ch === 0x30/* 0 */) {\n state.param = 0;\n state.index++;\n return;\n }\n\n if (ch === 0x31/* 1 */) {\n state.param = 1;\n state.index++;\n return;\n }\n\n state.err = 'SvgPath: arc flag can be 0 or 1 only (at pos ' + state.index + ')';\n}\n\n\nfunction scanParam(state) {\n var start = state.index,\n index = start,\n max = state.max,\n zeroFirst = false,\n hasCeiling = false,\n hasDecimal = false,\n hasDot = false,\n ch;\n\n if (index >= max) {\n state.err = 'SvgPath: missed param (at pos ' + index + ')';\n return;\n }\n ch = state.path.charCodeAt(index);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n index++;\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n }\n\n // This logic is shamelessly borrowed from Esprima\n // https://github.com/ariya/esprimas\n //\n if (!isDigit(ch) && ch !== 0x2E/* . */) {\n state.err = 'SvgPath: param should start with 0..9 or `.` (at pos ' + index + ')';\n return;\n }\n\n if (ch !== 0x2E/* . */) {\n zeroFirst = (ch === 0x30/* 0 */);\n index++;\n\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n\n if (zeroFirst && index < max) {\n // decimal number starts with '0' such as '09' is illegal.\n if (ch && isDigit(ch)) {\n state.err = 'SvgPath: numbers started with `0` such as `09` are illegal (at pos ' + start + ')';\n return;\n }\n }\n\n while (index < max && isDigit(state.path.charCodeAt(index))) {\n index++;\n hasCeiling = true;\n }\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n }\n\n if (ch === 0x2E/* . */) {\n hasDot = true;\n index++;\n while (isDigit(state.path.charCodeAt(index))) {\n index++;\n hasDecimal = true;\n }\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n }\n\n if (ch === 0x65/* e */ || ch === 0x45/* E */) {\n if (hasDot && !hasCeiling && !hasDecimal) {\n state.err = 'SvgPath: invalid float exponent (at pos ' + index + ')';\n return;\n }\n\n index++;\n\n ch = (index < max) ? state.path.charCodeAt(index) : 0;\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n index++;\n }\n if (index < max && isDigit(state.path.charCodeAt(index))) {\n while (index < max && isDigit(state.path.charCodeAt(index))) {\n index++;\n }\n } else {\n state.err = 'SvgPath: invalid float exponent (at pos ' + index + ')';\n return;\n }\n }\n\n state.index = index;\n state.param = parseFloat(state.path.slice(start, index)) + 0.0;\n}\n\n\nfunction finalizeSegment(state) {\n var cmd, cmdLC;\n\n // Process duplicated commands (without comand name)\n\n // This logic is shamelessly borrowed from Raphael\n // https://github.com/DmitryBaranovskiy/raphael/\n //\n cmd = state.path[state.segmentStart];\n cmdLC = cmd.toLowerCase();\n\n var params = state.data;\n\n if (cmdLC === 'm' && params.length > 2) {\n state.result.push([ cmd, params[0], params[1] ]);\n params = params.slice(2);\n cmdLC = 'l';\n cmd = (cmd === 'm') ? 'l' : 'L';\n }\n\n if (cmdLC === 'r') {\n state.result.push([ cmd ].concat(params));\n } else {\n\n while (params.length >= paramCounts[cmdLC]) {\n state.result.push([ cmd ].concat(params.splice(0, paramCounts[cmdLC])));\n if (!paramCounts[cmdLC]) {\n break;\n }\n }\n }\n}\n\n\nfunction scanSegment(state) {\n var max = state.max,\n cmdCode, is_arc, comma_found, need_params, i;\n\n state.segmentStart = state.index;\n cmdCode = state.path.charCodeAt(state.index);\n is_arc = isArc(cmdCode);\n\n if (!isCommand(cmdCode)) {\n state.err = 'SvgPath: bad command ' + state.path[state.index] + ' (at pos ' + state.index + ')';\n return;\n }\n\n need_params = paramCounts[state.path[state.index].toLowerCase()];\n\n state.index++;\n skipSpaces(state);\n\n state.data = [];\n\n if (!need_params) {\n // Z\n finalizeSegment(state);\n return;\n }\n\n comma_found = false;\n\n for (;;) {\n for (i = need_params; i > 0; i--) {\n if (is_arc && (i === 3 || i === 4)) scanFlag(state);\n else scanParam(state);\n\n if (state.err.length) {\n finalizeSegment(state);\n return;\n }\n state.data.push(state.param);\n\n skipSpaces(state);\n comma_found = false;\n\n if (state.index < max && state.path.charCodeAt(state.index) === 0x2C/* , */) {\n state.index++;\n skipSpaces(state);\n comma_found = true;\n }\n }\n\n // after ',' param is mandatory\n if (comma_found) {\n continue;\n }\n\n if (state.index >= state.max) {\n break;\n }\n\n // Stop on next segment\n if (!isDigitStart(state.path.charCodeAt(state.index))) {\n break;\n }\n }\n\n finalizeSegment(state);\n}\n\n\n/* Returns array of segments:\n *\n * [\n * [ command, coord1, coord2, ... ]\n * ]\n */\nmodule.exports = function pathParse(svgPath) {\n var state = new State(svgPath);\n var max = state.max;\n\n skipSpaces(state);\n\n while (state.index < max && !state.err.length) {\n scanSegment(state);\n }\n\n if (state.result.length) {\n if ('mM'.indexOf(state.result[0][0]) < 0) {\n state.err = 'SvgPath: string should start with `M` or `m`';\n state.result = [];\n } else {\n state.result[0][0] = 'M';\n }\n }\n\n return {\n err: state.err,\n segments: state.result\n };\n};\n","'use strict';\n\n// combine 2 matrixes\n// m1, m2 - [a, b, c, d, e, g]\n//\nfunction combine(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5]\n ];\n}\n\n\nfunction Matrix() {\n if (!(this instanceof Matrix)) { return new Matrix(); }\n this.queue = []; // list of matrixes to apply\n this.cache = null; // combined matrix cache\n}\n\n\nMatrix.prototype.matrix = function (m) {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1 && m[4] === 0 && m[5] === 0) {\n return this;\n }\n this.cache = null;\n this.queue.push(m);\n return this;\n};\n\n\nMatrix.prototype.translate = function (tx, ty) {\n if (tx !== 0 || ty !== 0) {\n this.cache = null;\n this.queue.push([ 1, 0, 0, 1, tx, ty ]);\n }\n return this;\n};\n\n\nMatrix.prototype.scale = function (sx, sy) {\n if (sx !== 1 || sy !== 1) {\n this.cache = null;\n this.queue.push([ sx, 0, 0, sy, 0, 0 ]);\n }\n return this;\n};\n\n\nMatrix.prototype.rotate = function (angle, rx, ry) {\n var rad, cos, sin;\n\n if (angle !== 0) {\n this.translate(rx, ry);\n\n rad = angle * Math.PI / 180;\n cos = Math.cos(rad);\n sin = Math.sin(rad);\n\n this.queue.push([ cos, sin, -sin, cos, 0, 0 ]);\n this.cache = null;\n\n this.translate(-rx, -ry);\n }\n return this;\n};\n\n\nMatrix.prototype.skewX = function (angle) {\n if (angle !== 0) {\n this.cache = null;\n this.queue.push([ 1, 0, Math.tan(angle * Math.PI / 180), 1, 0, 0 ]);\n }\n return this;\n};\n\n\nMatrix.prototype.skewY = function (angle) {\n if (angle !== 0) {\n this.cache = null;\n this.queue.push([ 1, Math.tan(angle * Math.PI / 180), 0, 1, 0, 0 ]);\n }\n return this;\n};\n\n\n// Flatten queue\n//\nMatrix.prototype.toArray = function () {\n if (this.cache) {\n return this.cache;\n }\n\n if (!this.queue.length) {\n this.cache = [ 1, 0, 0, 1, 0, 0 ];\n return this.cache;\n }\n\n this.cache = this.queue[0];\n\n if (this.queue.length === 1) {\n return this.cache;\n }\n\n for (var i = 1; i < this.queue.length; i++) {\n this.cache = combine(this.cache, this.queue[i]);\n }\n\n return this.cache;\n};\n\n\n// Apply list of matrixes to (x,y) point.\n// If `isRelative` set, `translate` component of matrix will be skipped\n//\nMatrix.prototype.calc = function (x, y, isRelative) {\n var m;\n\n // Don't change point on empty transforms queue\n if (!this.queue.length) { return [ x, y ]; }\n\n // Calculate final matrix, if not exists\n //\n // NB. if you deside to apply transforms to point one-by-one,\n // they should be taken in reverse order\n\n if (!this.cache) {\n this.cache = this.toArray();\n }\n\n m = this.cache;\n\n // Apply matrix to point\n return [\n x * m[0] + y * m[2] + (isRelative ? 0 : m[4]),\n x * m[1] + y * m[3] + (isRelative ? 0 : m[5])\n ];\n};\n\n\nmodule.exports = Matrix;\n","'use strict';\n\n\nvar Matrix = require('./matrix');\n\nvar operations = {\n matrix: true,\n scale: true,\n rotate: true,\n translate: true,\n skewX: true,\n skewY: true\n};\n\nvar CMD_SPLIT_RE = /\\s*(matrix|translate|scale|rotate|skewX|skewY)\\s*\\(\\s*(.+?)\\s*\\)[\\s,]*/;\nvar PARAMS_SPLIT_RE = /[\\s,]+/;\n\n\nmodule.exports = function transformParse(transformString) {\n var matrix = new Matrix();\n var cmd, params;\n\n // Split value into ['', 'translate', '10 50', '', 'scale', '2', '', 'rotate', '-45', '']\n transformString.split(CMD_SPLIT_RE).forEach(function (item) {\n\n // Skip empty elements\n if (!item.length) { return; }\n\n // remember operation\n if (typeof operations[item] !== 'undefined') {\n cmd = item;\n return;\n }\n\n // extract params & att operation to matrix\n params = item.split(PARAMS_SPLIT_RE).map(function (i) {\n return +i || 0;\n });\n\n // If params count is not correct - ignore command\n switch (cmd) {\n case 'matrix':\n if (params.length === 6) {\n matrix.matrix(params);\n }\n return;\n\n case 'scale':\n if (params.length === 1) {\n matrix.scale(params[0], params[0]);\n } else if (params.length === 2) {\n matrix.scale(params[0], params[1]);\n }\n return;\n\n case 'rotate':\n if (params.length === 1) {\n matrix.rotate(params[0], 0, 0);\n } else if (params.length === 3) {\n matrix.rotate(params[0], params[1], params[2]);\n }\n return;\n\n case 'translate':\n if (params.length === 1) {\n matrix.translate(params[0], 0);\n } else if (params.length === 2) {\n matrix.translate(params[0], params[1]);\n }\n return;\n\n case 'skewX':\n if (params.length === 1) {\n matrix.skewX(params[0]);\n }\n return;\n\n case 'skewY':\n if (params.length === 1) {\n matrix.skewY(params[0]);\n }\n return;\n }\n });\n\n return matrix;\n};\n","// Convert an arc to a sequence of cubic bézier curves\n//\n'use strict';\n\n\nvar TAU = Math.PI * 2;\n\n\n/* eslint-disable space-infix-ops */\n\n// Calculate an angle between two unit vectors\n//\n// Since we measure angle between radii of circular arcs,\n// we can use simplified math (without length normalization)\n//\nfunction unit_vector_angle(ux, uy, vx, vy) {\n var sign = (ux * vy - uy * vx < 0) ? -1 : 1;\n var dot = ux * vx + uy * vy;\n\n // Add this to work with arbitrary vectors:\n // dot /= Math.sqrt(ux * ux + uy * uy) * Math.sqrt(vx * vx + vy * vy);\n\n // rounding errors, e.g. -1.0000000000000002 can screw up this\n if (dot > 1.0) { dot = 1.0; }\n if (dot < -1.0) { dot = -1.0; }\n\n return sign * Math.acos(dot);\n}\n\n\n// Convert from endpoint to center parameterization,\n// see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n//\n// Return [cx, cy, theta1, delta_theta]\n//\nfunction get_arc_center(x1, y1, x2, y2, fa, fs, rx, ry, sin_phi, cos_phi) {\n // Step 1.\n //\n // Moving an ellipse so origin will be the middlepoint between our two\n // points. After that, rotate it to line up ellipse axes with coordinate\n // axes.\n //\n var x1p = cos_phi*(x1-x2)/2 + sin_phi*(y1-y2)/2;\n var y1p = -sin_phi*(x1-x2)/2 + cos_phi*(y1-y2)/2;\n\n var rx_sq = rx * rx;\n var ry_sq = ry * ry;\n var x1p_sq = x1p * x1p;\n var y1p_sq = y1p * y1p;\n\n // Step 2.\n //\n // Compute coordinates of the centre of this ellipse (cx', cy')\n // in the new coordinate system.\n //\n var radicant = (rx_sq * ry_sq) - (rx_sq * y1p_sq) - (ry_sq * x1p_sq);\n\n if (radicant < 0) {\n // due to rounding errors it might be e.g. -1.3877787807814457e-17\n radicant = 0;\n }\n\n radicant /= (rx_sq * y1p_sq) + (ry_sq * x1p_sq);\n radicant = Math.sqrt(radicant) * (fa === fs ? -1 : 1);\n\n var cxp = radicant * rx/ry * y1p;\n var cyp = radicant * -ry/rx * x1p;\n\n // Step 3.\n //\n // Transform back to get centre coordinates (cx, cy) in the original\n // coordinate system.\n //\n var cx = cos_phi*cxp - sin_phi*cyp + (x1+x2)/2;\n var cy = sin_phi*cxp + cos_phi*cyp + (y1+y2)/2;\n\n // Step 4.\n //\n // Compute angles (theta1, delta_theta).\n //\n var v1x = (x1p - cxp) / rx;\n var v1y = (y1p - cyp) / ry;\n var v2x = (-x1p - cxp) / rx;\n var v2y = (-y1p - cyp) / ry;\n\n var theta1 = unit_vector_angle(1, 0, v1x, v1y);\n var delta_theta = unit_vector_angle(v1x, v1y, v2x, v2y);\n\n if (fs === 0 && delta_theta > 0) {\n delta_theta -= TAU;\n }\n if (fs === 1 && delta_theta < 0) {\n delta_theta += TAU;\n }\n\n return [ cx, cy, theta1, delta_theta ];\n}\n\n//\n// Approximate one unit arc segment with bézier curves,\n// see http://math.stackexchange.com/questions/873224\n//\nfunction approximate_unit_arc(theta1, delta_theta) {\n var alpha = 4/3 * Math.tan(delta_theta/4);\n\n var x1 = Math.cos(theta1);\n var y1 = Math.sin(theta1);\n var x2 = Math.cos(theta1 + delta_theta);\n var y2 = Math.sin(theta1 + delta_theta);\n\n return [ x1, y1, x1 - y1*alpha, y1 + x1*alpha, x2 + y2*alpha, y2 - x2*alpha, x2, y2 ];\n}\n\nmodule.exports = function a2c(x1, y1, x2, y2, fa, fs, rx, ry, phi) {\n var sin_phi = Math.sin(phi * TAU / 360);\n var cos_phi = Math.cos(phi * TAU / 360);\n\n // Make sure radii are valid\n //\n var x1p = cos_phi*(x1-x2)/2 + sin_phi*(y1-y2)/2;\n var y1p = -sin_phi*(x1-x2)/2 + cos_phi*(y1-y2)/2;\n\n if (x1p === 0 && y1p === 0) {\n // we're asked to draw line to itself\n return [];\n }\n\n if (rx === 0 || ry === 0) {\n // one of the radii is zero\n return [];\n }\n\n\n // Compensate out-of-range radii\n //\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = (x1p * x1p) / (rx * rx) + (y1p * y1p) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n\n // Get center parameters (cx, cy, theta1, delta_theta)\n //\n var cc = get_arc_center(x1, y1, x2, y2, fa, fs, rx, ry, sin_phi, cos_phi);\n\n var result = [];\n var theta1 = cc[2];\n var delta_theta = cc[3];\n\n // Split an arc to multiple segments, so each segment\n // will be less than τ/4 (= 90°)\n //\n var segments = Math.max(Math.ceil(Math.abs(delta_theta) / (TAU / 4)), 1);\n delta_theta /= segments;\n\n for (var i = 0; i < segments; i++) {\n result.push(approximate_unit_arc(theta1, delta_theta));\n theta1 += delta_theta;\n }\n\n // We have a bezier approximation of a unit circle,\n // now need to transform back to the original ellipse\n //\n return result.map(function (curve) {\n for (var i = 0; i < curve.length; i += 2) {\n var x = curve[i + 0];\n var y = curve[i + 1];\n\n // scale\n x *= rx;\n y *= ry;\n\n // rotate\n var xp = cos_phi*x - sin_phi*y;\n var yp = sin_phi*x + cos_phi*y;\n\n // translate\n curve[i + 0] = xp + cc[0];\n curve[i + 1] = yp + cc[1];\n }\n\n return curve;\n });\n};\n","'use strict';\n\n/* eslint-disable space-infix-ops */\n\n// The precision used to consider an ellipse as a circle\n//\nvar epsilon = 0.0000000001;\n\n// To convert degree in radians\n//\nvar torad = Math.PI / 180;\n\n// Class constructor :\n// an ellipse centred at 0 with radii rx,ry and x - axis - angle ax.\n//\nfunction Ellipse(rx, ry, ax) {\n if (!(this instanceof Ellipse)) { return new Ellipse(rx, ry, ax); }\n this.rx = rx;\n this.ry = ry;\n this.ax = ax;\n}\n\n// Apply a linear transform m to the ellipse\n// m is an array representing a matrix :\n// - -\n// | m[0] m[2] |\n// | m[1] m[3] |\n// - -\n//\nEllipse.prototype.transform = function (m) {\n // We consider the current ellipse as image of the unit circle\n // by first scale(rx,ry) and then rotate(ax) ...\n // So we apply ma = m x rotate(ax) x scale(rx,ry) to the unit circle.\n var c = Math.cos(this.ax * torad), s = Math.sin(this.ax * torad);\n var ma = [\n this.rx * (m[0]*c + m[2]*s),\n this.rx * (m[1]*c + m[3]*s),\n this.ry * (-m[0]*s + m[2]*c),\n this.ry * (-m[1]*s + m[3]*c)\n ];\n\n // ma * transpose(ma) = [ J L ]\n // [ L K ]\n // L is calculated later (if the image is not a circle)\n var J = ma[0]*ma[0] + ma[2]*ma[2],\n K = ma[1]*ma[1] + ma[3]*ma[3];\n\n // the discriminant of the characteristic polynomial of ma * transpose(ma)\n var D = ((ma[0]-ma[3])*(ma[0]-ma[3]) + (ma[2]+ma[1])*(ma[2]+ma[1])) *\n ((ma[0]+ma[3])*(ma[0]+ma[3]) + (ma[2]-ma[1])*(ma[2]-ma[1]));\n\n // the \"mean eigenvalue\"\n var JK = (J + K) / 2;\n\n // check if the image is (almost) a circle\n if (D < epsilon * JK) {\n // if it is\n this.rx = this.ry = Math.sqrt(JK);\n this.ax = 0;\n return this;\n }\n\n // if it is not a circle\n var L = ma[0]*ma[1] + ma[2]*ma[3];\n\n D = Math.sqrt(D);\n\n // {l1,l2} = the two eigen values of ma * transpose(ma)\n var l1 = JK + D/2,\n l2 = JK - D/2;\n // the x - axis - rotation angle is the argument of the l1 - eigenvector\n /*eslint-disable indent*/\n this.ax = (Math.abs(L) < epsilon && Math.abs(l1 - K) < epsilon) ?\n 90\n :\n Math.atan(Math.abs(L) > Math.abs(l1 - K) ?\n (l1 - J) / L\n :\n L / (l1 - K)\n ) * 180 / Math.PI;\n /*eslint-enable indent*/\n\n // if ax > 0 => rx = sqrt(l1), ry = sqrt(l2), else exchange axes and ax += 90\n if (this.ax >= 0) {\n // if ax in [0,90]\n this.rx = Math.sqrt(l1);\n this.ry = Math.sqrt(l2);\n } else {\n // if ax in ]-90,0[ => exchange axes\n this.ax += 90;\n this.rx = Math.sqrt(l2);\n this.ry = Math.sqrt(l1);\n }\n\n return this;\n};\n\n// Check if the ellipse is (almost) degenerate, i.e. rx = 0 or ry = 0\n//\nEllipse.prototype.isDegenerate = function () {\n return (this.rx < epsilon * this.ry || this.ry < epsilon * this.rx);\n};\n\nmodule.exports = Ellipse;\n","// SVG Path transformations library\n//\n// Usage:\n//\n// SvgPath('...')\n// .translate(-150, -100)\n// .scale(0.5)\n// .translate(-150, -100)\n// .toFixed(1)\n// .toString()\n//\n\n'use strict';\n\n\nvar pathParse = require('./path_parse');\nvar transformParse = require('./transform_parse');\nvar matrix = require('./matrix');\nvar a2c = require('./a2c');\nvar ellipse = require('./ellipse');\n\n\n// Class constructor\n//\nfunction SvgPath(path) {\n if (!(this instanceof SvgPath)) { return new SvgPath(path); }\n\n var pstate = pathParse(path);\n\n // Array of path segments.\n // Each segment is array [command, param1, param2, ...]\n this.segments = pstate.segments;\n\n // Error message on parse error.\n this.err = pstate.err;\n\n // Transforms stack for lazy evaluation\n this.__stack = [];\n}\n\nSvgPath.from = function (src) {\n if (typeof src === 'string') return new SvgPath(src);\n\n if (src instanceof SvgPath) {\n // Create empty object\n var s = new SvgPath('');\n\n // Clone properies\n s.err = src.err;\n s.segments = src.segments.map(function (sgm) { return sgm.slice(); });\n s.__stack = src.__stack.map(function (m) {\n return matrix().matrix(m.toArray());\n });\n\n return s;\n }\n\n throw new Error('SvgPath.from: invalid param type ' + src);\n};\n\n\nSvgPath.prototype.__matrix = function (m) {\n var self = this, i;\n\n // Quick leave for empty matrix\n if (!m.queue.length) { return; }\n\n this.iterate(function (s, index, x, y) {\n var p, result, name, isRelative;\n\n switch (s[0]) {\n\n // Process 'assymetric' commands separately\n case 'v':\n p = m.calc(0, s[1], true);\n result = (p[0] === 0) ? [ 'v', p[1] ] : [ 'l', p[0], p[1] ];\n break;\n\n case 'V':\n p = m.calc(x, s[1], false);\n result = (p[0] === m.calc(x, y, false)[0]) ? [ 'V', p[1] ] : [ 'L', p[0], p[1] ];\n break;\n\n case 'h':\n p = m.calc(s[1], 0, true);\n result = (p[1] === 0) ? [ 'h', p[0] ] : [ 'l', p[0], p[1] ];\n break;\n\n case 'H':\n p = m.calc(s[1], y, false);\n result = (p[1] === m.calc(x, y, false)[1]) ? [ 'H', p[0] ] : [ 'L', p[0], p[1] ];\n break;\n\n case 'a':\n case 'A':\n // ARC is: ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n\n // Drop segment if arc is empty (end point === start point)\n /*if ((s[0] === 'A' && s[6] === x && s[7] === y) ||\n (s[0] === 'a' && s[6] === 0 && s[7] === 0)) {\n return [];\n }*/\n\n // Transform rx, ry and the x-axis-rotation\n var ma = m.toArray();\n var e = ellipse(s[1], s[2], s[3]).transform(ma);\n\n // flip sweep-flag if matrix is not orientation-preserving\n if (ma[0] * ma[3] - ma[1] * ma[2] < 0) {\n s[5] = s[5] ? '0' : '1';\n }\n\n // Transform end point as usual (without translation for relative notation)\n p = m.calc(s[6], s[7], s[0] === 'a');\n\n // Empty arcs can be ignored by renderer, but should not be dropped\n // to avoid collisions with `S A S` and so on. Replace with empty line.\n if ((s[0] === 'A' && s[6] === x && s[7] === y) ||\n (s[0] === 'a' && s[6] === 0 && s[7] === 0)) {\n result = [ s[0] === 'a' ? 'l' : 'L', p[0], p[1] ];\n break;\n }\n\n // if the resulting ellipse is (almost) a segment ...\n if (e.isDegenerate()) {\n // replace the arc by a line\n result = [ s[0] === 'a' ? 'l' : 'L', p[0], p[1] ];\n } else {\n // if it is a real ellipse\n // s[0], s[4] and s[5] are not modified\n result = [ s[0], e.rx, e.ry, e.ax, s[4], s[5], p[0], p[1] ];\n }\n\n break;\n\n case 'm':\n // Edge case. The very first `m` should be processed as absolute, if happens.\n // Make sense for coord shift transforms.\n isRelative = index > 0;\n\n p = m.calc(s[1], s[2], isRelative);\n result = [ 'm', p[0], p[1] ];\n break;\n\n default:\n name = s[0];\n result = [ name ];\n isRelative = (name.toLowerCase() === name);\n\n // Apply transformations to the segment\n for (i = 1; i < s.length; i += 2) {\n p = m.calc(s[i], s[i + 1], isRelative);\n result.push(p[0], p[1]);\n }\n }\n\n self.segments[index] = result;\n }, true);\n};\n\n\n// Apply stacked commands\n//\nSvgPath.prototype.__evaluateStack = function () {\n var m, i;\n\n if (!this.__stack.length) { return; }\n\n if (this.__stack.length === 1) {\n this.__matrix(this.__stack[0]);\n this.__stack = [];\n return;\n }\n\n m = matrix();\n i = this.__stack.length;\n\n while (--i >= 0) {\n m.matrix(this.__stack[i].toArray());\n }\n\n this.__matrix(m);\n this.__stack = [];\n};\n\n\n// Convert processed SVG Path back to string\n//\nSvgPath.prototype.toString = function () {\n var result = '', prevCmd = '', cmdSkipped = false;\n\n this.__evaluateStack();\n\n for (var i = 0, len = this.segments.length; i < len; i++) {\n var segment = this.segments[i];\n var cmd = segment[0];\n\n // Command not repeating => store\n if (cmd !== prevCmd || cmd === 'm' || cmd === 'M') {\n // workaround for FontForge SVG importing bug, keep space between \"z m\".\n if (cmd === 'm' && prevCmd === 'z') result += ' ';\n result += cmd;\n\n cmdSkipped = false;\n } else {\n cmdSkipped = true;\n }\n\n // Store segment params\n for (var pos = 1; pos < segment.length; pos++) {\n var val = segment[pos];\n // Space can be skipped\n // 1. After command (always)\n // 2. For negative value (with '-' at start)\n if (pos === 1) {\n if (cmdSkipped && val >= 0) result += ' ';\n } else if (val >= 0) result += ' ';\n\n result += val;\n }\n\n prevCmd = cmd;\n }\n\n return result;\n};\n\n\n// Translate path to (x [, y])\n//\nSvgPath.prototype.translate = function (x, y) {\n this.__stack.push(matrix().translate(x, y || 0));\n return this;\n};\n\n\n// Scale path to (sx [, sy])\n// sy = sx if not defined\n//\nSvgPath.prototype.scale = function (sx, sy) {\n this.__stack.push(matrix().scale(sx, (!sy && (sy !== 0)) ? sx : sy));\n return this;\n};\n\n\n// Rotate path around point (sx [, sy])\n// sy = sx if not defined\n//\nSvgPath.prototype.rotate = function (angle, rx, ry) {\n this.__stack.push(matrix().rotate(angle, rx || 0, ry || 0));\n return this;\n};\n\n\n// Skew path along the X axis by `degrees` angle\n//\nSvgPath.prototype.skewX = function (degrees) {\n this.__stack.push(matrix().skewX(degrees));\n return this;\n};\n\n\n// Skew path along the Y axis by `degrees` angle\n//\nSvgPath.prototype.skewY = function (degrees) {\n this.__stack.push(matrix().skewY(degrees));\n return this;\n};\n\n\n// Apply matrix transform (array of 6 elements)\n//\nSvgPath.prototype.matrix = function (m) {\n this.__stack.push(matrix().matrix(m));\n return this;\n};\n\n\n// Transform path according to \"transform\" attr of SVG spec\n//\nSvgPath.prototype.transform = function (transformString) {\n if (!transformString.trim()) {\n return this;\n }\n this.__stack.push(transformParse(transformString));\n return this;\n};\n\n\n// Round coords with given decimal precition.\n// 0 by default (to integers)\n//\nSvgPath.prototype.round = function (d) {\n var contourStartDeltaX = 0, contourStartDeltaY = 0, deltaX = 0, deltaY = 0, l;\n\n d = d || 0;\n\n this.__evaluateStack();\n\n this.segments.forEach(function (s) {\n var isRelative = (s[0].toLowerCase() === s[0]);\n\n switch (s[0]) {\n case 'H':\n case 'h':\n if (isRelative) { s[1] += deltaX; }\n deltaX = s[1] - s[1].toFixed(d);\n s[1] = +s[1].toFixed(d);\n return;\n\n case 'V':\n case 'v':\n if (isRelative) { s[1] += deltaY; }\n deltaY = s[1] - s[1].toFixed(d);\n s[1] = +s[1].toFixed(d);\n return;\n\n case 'Z':\n case 'z':\n deltaX = contourStartDeltaX;\n deltaY = contourStartDeltaY;\n return;\n\n case 'M':\n case 'm':\n if (isRelative) {\n s[1] += deltaX;\n s[2] += deltaY;\n }\n\n deltaX = s[1] - s[1].toFixed(d);\n deltaY = s[2] - s[2].toFixed(d);\n\n contourStartDeltaX = deltaX;\n contourStartDeltaY = deltaY;\n\n s[1] = +s[1].toFixed(d);\n s[2] = +s[2].toFixed(d);\n return;\n\n case 'A':\n case 'a':\n // [cmd, rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n if (isRelative) {\n s[6] += deltaX;\n s[7] += deltaY;\n }\n\n deltaX = s[6] - s[6].toFixed(d);\n deltaY = s[7] - s[7].toFixed(d);\n\n s[1] = +s[1].toFixed(d);\n s[2] = +s[2].toFixed(d);\n s[3] = +s[3].toFixed(d + 2); // better precision for rotation\n s[6] = +s[6].toFixed(d);\n s[7] = +s[7].toFixed(d);\n return;\n\n default:\n // a c l q s t\n l = s.length;\n\n if (isRelative) {\n s[l - 2] += deltaX;\n s[l - 1] += deltaY;\n }\n\n deltaX = s[l - 2] - s[l - 2].toFixed(d);\n deltaY = s[l - 1] - s[l - 1].toFixed(d);\n\n s.forEach(function (val, i) {\n if (!i) { return; }\n s[i] = +s[i].toFixed(d);\n });\n return;\n }\n });\n\n return this;\n};\n\n\n// Apply iterator function to all segments. If function returns result,\n// current segment will be replaced to array of returned segments.\n// If empty array is returned, current regment will be deleted.\n//\nSvgPath.prototype.iterate = function (iterator, keepLazyStack) {\n var segments = this.segments,\n replacements = {},\n needReplace = false,\n lastX = 0,\n lastY = 0,\n countourStartX = 0,\n countourStartY = 0;\n var i, j, newSegments;\n\n if (!keepLazyStack) {\n this.__evaluateStack();\n }\n\n segments.forEach(function (s, index) {\n\n var res = iterator(s, index, lastX, lastY);\n\n if (Array.isArray(res)) {\n replacements[index] = res;\n needReplace = true;\n }\n\n var isRelative = (s[0] === s[0].toLowerCase());\n\n // calculate absolute X and Y\n switch (s[0]) {\n case 'm':\n case 'M':\n lastX = s[1] + (isRelative ? lastX : 0);\n lastY = s[2] + (isRelative ? lastY : 0);\n countourStartX = lastX;\n countourStartY = lastY;\n return;\n\n case 'h':\n case 'H':\n lastX = s[1] + (isRelative ? lastX : 0);\n return;\n\n case 'v':\n case 'V':\n lastY = s[1] + (isRelative ? lastY : 0);\n return;\n\n case 'z':\n case 'Z':\n // That make sence for multiple contours\n lastX = countourStartX;\n lastY = countourStartY;\n return;\n\n default:\n lastX = s[s.length - 2] + (isRelative ? lastX : 0);\n lastY = s[s.length - 1] + (isRelative ? lastY : 0);\n }\n });\n\n // Replace segments if iterator return results\n\n if (!needReplace) { return this; }\n\n newSegments = [];\n\n for (i = 0; i < segments.length; i++) {\n if (typeof replacements[i] !== 'undefined') {\n for (j = 0; j < replacements[i].length; j++) {\n newSegments.push(replacements[i][j]);\n }\n } else {\n newSegments.push(segments[i]);\n }\n }\n\n this.segments = newSegments;\n\n return this;\n};\n\n\n// Converts segments from relative to absolute\n//\nSvgPath.prototype.abs = function () {\n\n this.iterate(function (s, index, x, y) {\n var name = s[0],\n nameUC = name.toUpperCase(),\n i;\n\n // Skip absolute commands\n if (name === nameUC) { return; }\n\n s[0] = nameUC;\n\n switch (name) {\n case 'v':\n // v has shifted coords parity\n s[1] += y;\n return;\n\n case 'a':\n // ARC is: ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n // touch x, y only\n s[6] += x;\n s[7] += y;\n return;\n\n default:\n for (i = 1; i < s.length; i++) {\n s[i] += i % 2 ? x : y; // odd values are X, even - Y\n }\n }\n }, true);\n\n return this;\n};\n\n\n// Converts segments from absolute to relative\n//\nSvgPath.prototype.rel = function () {\n\n this.iterate(function (s, index, x, y) {\n var name = s[0],\n nameLC = name.toLowerCase(),\n i;\n\n // Skip relative commands\n if (name === nameLC) { return; }\n\n // Don't touch the first M to avoid potential confusions.\n if (index === 0 && name === 'M') { return; }\n\n s[0] = nameLC;\n\n switch (name) {\n case 'V':\n // V has shifted coords parity\n s[1] -= y;\n return;\n\n case 'A':\n // ARC is: ['A', rx, ry, x-axis-rotation, large-arc-flag, sweep-flag, x, y]\n // touch x, y only\n s[6] -= x;\n s[7] -= y;\n return;\n\n default:\n for (i = 1; i < s.length; i++) {\n s[i] -= i % 2 ? x : y; // odd values are X, even - Y\n }\n }\n }, true);\n\n return this;\n};\n\n\n// Converts arcs to cubic bézier curves\n//\nSvgPath.prototype.unarc = function () {\n this.iterate(function (s, index, x, y) {\n var new_segments, nextX, nextY, result = [], name = s[0];\n\n // Skip anything except arcs\n if (name !== 'A' && name !== 'a') { return null; }\n\n if (name === 'a') {\n // convert relative arc coordinates to absolute\n nextX = x + s[6];\n nextY = y + s[7];\n } else {\n nextX = s[6];\n nextY = s[7];\n }\n\n new_segments = a2c(x, y, nextX, nextY, s[4], s[5], s[1], s[2], s[3]);\n\n // Degenerated arcs can be ignored by renderer, but should not be dropped\n // to avoid collisions with `S A S` and so on. Replace with empty line.\n if (new_segments.length === 0) {\n return [ [ s[0] === 'a' ? 'l' : 'L', s[6], s[7] ] ];\n }\n\n new_segments.forEach(function (s) {\n result.push([ 'C', s[2], s[3], s[4], s[5], s[6], s[7] ]);\n });\n\n return result;\n });\n\n return this;\n};\n\n\n// Converts smooth curves (with missed control point) to generic curves\n//\nSvgPath.prototype.unshort = function () {\n var segments = this.segments;\n var prevControlX, prevControlY, prevSegment;\n var curControlX, curControlY;\n\n // TODO: add lazy evaluation flag when relative commands supported\n\n this.iterate(function (s, idx, x, y) {\n var name = s[0], nameUC = name.toUpperCase(), isRelative;\n\n // First command MUST be M|m, it's safe to skip.\n // Protect from access to [-1] for sure.\n if (!idx) { return; }\n\n if (nameUC === 'T') { // quadratic curve\n isRelative = (name === 't');\n\n prevSegment = segments[idx - 1];\n\n if (prevSegment[0] === 'Q') {\n prevControlX = prevSegment[1] - x;\n prevControlY = prevSegment[2] - y;\n } else if (prevSegment[0] === 'q') {\n prevControlX = prevSegment[1] - prevSegment[3];\n prevControlY = prevSegment[2] - prevSegment[4];\n } else {\n prevControlX = 0;\n prevControlY = 0;\n }\n\n curControlX = -prevControlX;\n curControlY = -prevControlY;\n\n if (!isRelative) {\n curControlX += x;\n curControlY += y;\n }\n\n segments[idx] = [\n isRelative ? 'q' : 'Q',\n curControlX, curControlY,\n s[1], s[2]\n ];\n\n } else if (nameUC === 'S') { // cubic curve\n isRelative = (name === 's');\n\n prevSegment = segments[idx - 1];\n\n if (prevSegment[0] === 'C') {\n prevControlX = prevSegment[3] - x;\n prevControlY = prevSegment[4] - y;\n } else if (prevSegment[0] === 'c') {\n prevControlX = prevSegment[3] - prevSegment[5];\n prevControlY = prevSegment[4] - prevSegment[6];\n } else {\n prevControlX = 0;\n prevControlY = 0;\n }\n\n curControlX = -prevControlX;\n curControlY = -prevControlY;\n\n if (!isRelative) {\n curControlX += x;\n curControlY += y;\n }\n\n segments[idx] = [\n isRelative ? 'c' : 'C',\n curControlX, curControlY,\n s[1], s[2], s[3], s[4]\n ];\n }\n });\n\n return this;\n};\n\n\nmodule.exports = SvgPath;\n","'use strict';\n\nmodule.exports = require('./lib/svgpath');\n","//Parses an SVG path into an object.\n//Taken from https://github.com/jkroso/parse-svg-path\n//Re-written so it can be used with rollup\nvar length = {a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0};\nvar segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig;\n\nexport default function(path) {\n var data = [];\n\tpath.replace(segment, function(_, command, args){\n\t\tvar type = command.toLowerCase();\n\t\targs = parseValues(args);\n\n\t\t// overloaded moveTo\n\t\tif (type === 'm' && args.length > 2) {\n\t\t\tdata.push([command].concat(args.splice(0, 2)));\n\t\t\ttype = 'l';\n\t\t\tcommand = command === 'm' ? 'l' : 'L';\n\t\t}\n\n\t\twhile (args.length >= 0) {\n\t\t\tif (args.length === length[type]) {\n\t\t\t\targs.unshift(command);\n\t\t\t\treturn data.push(args);\n\t\t\t}\n\t\t\tif (args.length < length[type]) {\n throw new Error('malformed path data');\n }\n\t\t\tdata.push([command].concat(args.splice(0, length[type])));\n\t\t}\n\t});\n return data;\n}\n\nvar number = /-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/ig;\n\nfunction parseValues(args) {\n\tvar numbers = args.match(number);\n\treturn numbers ? numbers.map(Number) : [];\n}\n","//Calculate Bezier curve length and positionAtLength\n//Algorithms taken from http://bl.ocks.org/hnakamur/e7efd0602bfc15f66fc5, https://gist.github.com/tunght13488/6744e77c242cc7a94859 and http://stackoverflow.com/questions/11854907/calculate-the-length-of-a-segment-of-a-quadratic-bezier\n\nexport default function(ax, ay, bx, by, cx, cy, dx, dy) {\n return new Bezier(ax, ay, bx, by, cx, cy, dx, dy);\n}\n\nfunction Bezier(ax, ay, bx, by, cx, cy, dx, dy) {\n this.a = {x:ax, y:ay};\n this.b = {x:bx, y:by};\n this.c = {x:cx, y:cy};\n this.d = {x:dx, y:dy};\n\n if(dx !== null && dx !== undefined && dy !== null && dy !== undefined){\n this.getArcLength = getCubicArcLength;\n this.getPoint = cubicPoint;\n this.getDerivative = cubicDerivative;\n } else {\n this.getArcLength = getQuadraticArcLength;\n this.getPoint = quadraticPoint;\n this.getDerivative = quadraticDerivative;\n }\n\n this.init();\n}\n\nBezier.prototype = {\n constructor: Bezier,\n init: function() {\n\n this.length = this.getArcLength([this.a.x, this.b.x, this.c.x, this.d.x],\n [this.a.y, this.b.y, this.c.y, this.d.y]);\n },\n\n getTotalLength: function() {\n return this.length;\n },\n getPointAtLength: function(length) {\n var t = t2length(length, this.length, this.getArcLength,\n [this.a.x, this.b.x, this.c.x, this.d.x],\n [this.a.y, this.b.y, this.c.y, this.d.y]);\n\n return this.getPoint([this.a.x, this.b.x, this.c.x, this.d.x],\n [this.a.y, this.b.y, this.c.y, this.d.y],\n t);\n },\n getTangentAtLength: function(length){\n var t = t2length(length, this.length, this.getArcLength,\n [this.a.x, this.b.x, this.c.x, this.d.x],\n [this.a.y, this.b.y, this.c.y, this.d.y]);\n\n var derivative = this.getDerivative([this.a.x, this.b.x, this.c.x, this.d.x],\n [this.a.y, this.b.y, this.c.y, this.d.y], t);\n var mdl = Math.sqrt(derivative.x * derivative.x + derivative.y * derivative.y);\n var tangent;\n if (mdl > 0){\n tangent = {x: derivative.x/mdl, y: derivative.y/mdl};\n } else {\n tangent = {x: 0, y: 0};\n }\n return tangent;\n },\n getPropertiesAtLength: function(length){\n var t = t2length(length, this.length, this.getArcLength,\n [this.a.x, this.b.x, this.c.x, this.d.x],\n [this.a.y, this.b.y, this.c.y, this.d.y]);\n\n var derivative = this.getDerivative([this.a.x, this.b.x, this.c.x, this.d.x],\n [this.a.y, this.b.y, this.c.y, this.d.y], t);\n var mdl = Math.sqrt(derivative.x * derivative.x + derivative.y * derivative.y);\n var tangent;\n if (mdl > 0){\n tangent = {x: derivative.x/mdl, y: derivative.y/mdl};\n } else {\n tangent = {x: 0, y: 0};\n }\n var point = this.getPoint([this.a.x, this.b.x, this.c.x, this.d.x],\n [this.a.y, this.b.y, this.c.y, this.d.y],\n t);\n return {x: point.x, y: point.y, tangentX: tangent.x, tangentY: tangent.y};\n }\n};\n\nfunction quadraticDerivative(xs, ys, t){\n return {x: (1 - t) * 2*(xs[1] - xs[0]) +t * 2*(xs[2] - xs[1]),\n y: (1 - t) * 2*(ys[1] - ys[0]) +t * 2*(ys[2] - ys[1])\n };\n}\n\nfunction cubicDerivative(xs, ys, t){\n var derivative = quadraticPoint(\n [3*(xs[1] - xs[0]), 3*(xs[2] - xs[1]), 3*(xs[3] - xs[2])],\n [3*(ys[1] - ys[0]), 3*(ys[2] - ys[1]), 3*(ys[3] - ys[2])],\n t);\n return derivative;\n}\n\nfunction t2length(length, total_length, func, xs, ys){\n var error = 1;\n var t = length/total_length;\n var step = (length - func(xs, ys, t))/total_length\n\n while (error > 0.001){\n var increasedTLength = func(xs, ys, t + step);\n var decreasedTLength = func(xs, ys, t - step);\n var increasedTError = Math.abs(length - increasedTLength)/total_length;\n var decreasedTError = Math.abs(length - decreasedTLength)/total_length;\n if (increasedTError < error) {\n error = increasedTError\n t += step\n } else if (decreasedTError < error) {\n error = decreasedTError\n t -= step\n } else {\n step /= 2\n }\n }\n\n return t;\n}\n\nfunction quadraticPoint(xs, ys, t){\n var x = (1 - t) * (1 - t) * xs[0] + 2 * (1 - t) * t * xs[1] + t * t * xs[2];\n var y = (1 - t) * (1 - t) * ys[0] + 2 * (1 - t) * t * ys[1] + t * t * ys[2];\n return {x: x, y: y};\n}\n\nfunction cubicPoint(xs, ys, t){\n var x = (1 - t) * (1 - t) * (1 - t) * xs[0] + 3 * (1 - t) * (1 - t) * t * xs[1] +\n 3 * (1 - t) * t * t * xs[2] + t * t * t * xs[3];\n var y = (1 - t) * (1 - t) * (1 - t) * ys[0] + 3 * (1 - t) * (1 - t) * t * ys[1] +\n 3 * (1 - t) * t * t * ys[2] + t * t * t * ys[3];\n\n return {x: x, y: y};\n}\n\nfunction getQuadraticArcLength(xs, ys, t) {\n if (t === undefined) {\n t = 1;\n }\n var ax = xs[0] - 2 * xs[1] + xs[2];\n var ay = ys[0] - 2 * ys[1] + ys[2];\n var bx = 2 * xs[1] - 2 * xs[0];\n var by = 2 * ys[1] - 2 * ys[0];\n\n var A = 4 * (ax * ax + ay * ay);\n var B = 4 * (ax * bx + ay * by);\n var C = bx * bx + by * by;\n\n if(A === 0){\n return t * Math.sqrt(Math.pow(xs[2] - xs[0], 2) + Math.pow(ys[2] - ys[0], 2));\n }\n var b = B/(2*A);\n var c = C/A;\n var u = t + b;\n var k = c - b*b;\n\n return (Math.sqrt(A)/2)*(\n u*Math.sqrt(u*u+k)-b*Math.sqrt(b*b+k)+\n k*Math.log(Math.abs(\n (u+Math.sqrt(u*u+k))/(b+Math.sqrt(b*b+k))\n ))\n );\n\n}\n\n// Legendre-Gauss abscissae (xi values, defined at i=n as the roots of the nth order Legendre polynomial Pn(x))\nvar tValues = [\n [],\n [],\n [-0.5773502691896257645091487805019574556476,0.5773502691896257645091487805019574556476],\n [0,-0.7745966692414833770358530799564799221665,0.7745966692414833770358530799564799221665],\n [-0.3399810435848562648026657591032446872005,0.3399810435848562648026657591032446872005,-0.8611363115940525752239464888928095050957,0.8611363115940525752239464888928095050957],\n [0,-0.5384693101056830910363144207002088049672,0.5384693101056830910363144207002088049672,-0.9061798459386639927976268782993929651256,0.9061798459386639927976268782993929651256],\n [0.6612093864662645136613995950199053470064,-0.6612093864662645136613995950199053470064,-0.2386191860831969086305017216807119354186,0.2386191860831969086305017216807119354186,-0.9324695142031520278123015544939946091347,0.9324695142031520278123015544939946091347],\n [0, 0.4058451513773971669066064120769614633473,-0.4058451513773971669066064120769614633473,-0.7415311855993944398638647732807884070741,0.7415311855993944398638647732807884070741,-0.9491079123427585245261896840478512624007,0.9491079123427585245261896840478512624007],\n [-0.1834346424956498049394761423601839806667,0.1834346424956498049394761423601839806667,-0.5255324099163289858177390491892463490419,0.5255324099163289858177390491892463490419,-0.7966664774136267395915539364758304368371,0.7966664774136267395915539364758304368371,-0.9602898564975362316835608685694729904282,0.9602898564975362316835608685694729904282],\n [0,-0.8360311073266357942994297880697348765441,0.8360311073266357942994297880697348765441,-0.9681602395076260898355762029036728700494,0.9681602395076260898355762029036728700494,-0.3242534234038089290385380146433366085719,0.3242534234038089290385380146433366085719,-0.6133714327005903973087020393414741847857,0.6133714327005903973087020393414741847857],\n [-0.1488743389816312108848260011297199846175,0.1488743389816312108848260011297199846175,-0.4333953941292471907992659431657841622000,0.4333953941292471907992659431657841622000,-0.6794095682990244062343273651148735757692,0.6794095682990244062343273651148735757692,-0.8650633666889845107320966884234930485275,0.8650633666889845107320966884234930485275,-0.9739065285171717200779640120844520534282,0.9739065285171717200779640120844520534282],\n [0,-0.2695431559523449723315319854008615246796,0.2695431559523449723315319854008615246796,-0.5190961292068118159257256694586095544802,0.5190961292068118159257256694586095544802,-0.7301520055740493240934162520311534580496,0.7301520055740493240934162520311534580496,-0.8870625997680952990751577693039272666316,0.8870625997680952990751577693039272666316,-0.9782286581460569928039380011228573907714,0.9782286581460569928039380011228573907714],\n [-0.1252334085114689154724413694638531299833,0.1252334085114689154724413694638531299833,-0.3678314989981801937526915366437175612563,0.3678314989981801937526915366437175612563,-0.5873179542866174472967024189405342803690,0.5873179542866174472967024189405342803690,-0.7699026741943046870368938332128180759849,0.7699026741943046870368938332128180759849,-0.9041172563704748566784658661190961925375,0.9041172563704748566784658661190961925375,-0.9815606342467192506905490901492808229601,0.9815606342467192506905490901492808229601],\n [0,-0.2304583159551347940655281210979888352115,0.2304583159551347940655281210979888352115,-0.4484927510364468528779128521276398678019,0.4484927510364468528779128521276398678019,-0.6423493394403402206439846069955156500716,0.6423493394403402206439846069955156500716,-0.8015780907333099127942064895828598903056,0.8015780907333099127942064895828598903056,-0.9175983992229779652065478365007195123904,0.9175983992229779652065478365007195123904,-0.9841830547185881494728294488071096110649,0.9841830547185881494728294488071096110649],\n [-0.1080549487073436620662446502198347476119,0.1080549487073436620662446502198347476119,-0.3191123689278897604356718241684754668342,0.3191123689278897604356718241684754668342,-0.5152486363581540919652907185511886623088,0.5152486363581540919652907185511886623088,-0.6872929048116854701480198030193341375384,0.6872929048116854701480198030193341375384,-0.8272013150697649931897947426503949610397,0.8272013150697649931897947426503949610397,-0.9284348836635735173363911393778742644770,0.9284348836635735173363911393778742644770,-0.9862838086968123388415972667040528016760,0.9862838086968123388415972667040528016760],\n [0,-0.2011940939974345223006283033945962078128,0.2011940939974345223006283033945962078128,-0.3941513470775633698972073709810454683627,0.3941513470775633698972073709810454683627,-0.5709721726085388475372267372539106412383,0.5709721726085388475372267372539106412383,-0.7244177313601700474161860546139380096308,0.7244177313601700474161860546139380096308,-0.8482065834104272162006483207742168513662,0.8482065834104272162006483207742168513662,-0.9372733924007059043077589477102094712439,0.9372733924007059043077589477102094712439,-0.9879925180204854284895657185866125811469,0.9879925180204854284895657185866125811469],\n [-0.0950125098376374401853193354249580631303,0.0950125098376374401853193354249580631303,-0.2816035507792589132304605014604961064860,0.2816035507792589132304605014604961064860,-0.4580167776572273863424194429835775735400,0.4580167776572273863424194429835775735400,-0.6178762444026437484466717640487910189918,0.6178762444026437484466717640487910189918,-0.7554044083550030338951011948474422683538,0.7554044083550030338951011948474422683538,-0.8656312023878317438804678977123931323873,0.8656312023878317438804678977123931323873,-0.9445750230732325760779884155346083450911,0.9445750230732325760779884155346083450911,-0.9894009349916499325961541734503326274262,0.9894009349916499325961541734503326274262],\n [0,-0.1784841814958478558506774936540655574754,0.1784841814958478558506774936540655574754,-0.3512317634538763152971855170953460050405,0.3512317634538763152971855170953460050405,-0.5126905370864769678862465686295518745829,0.5126905370864769678862465686295518745829,-0.6576711592166907658503022166430023351478,0.6576711592166907658503022166430023351478,-0.7815140038968014069252300555204760502239,0.7815140038968014069252300555204760502239,-0.8802391537269859021229556944881556926234,0.8802391537269859021229556944881556926234,-0.9506755217687677612227169578958030214433,0.9506755217687677612227169578958030214433,-0.9905754753144173356754340199406652765077,0.9905754753144173356754340199406652765077],\n [-0.0847750130417353012422618529357838117333,0.0847750130417353012422618529357838117333,-0.2518862256915055095889728548779112301628,0.2518862256915055095889728548779112301628,-0.4117511614628426460359317938330516370789,0.4117511614628426460359317938330516370789,-0.5597708310739475346078715485253291369276,0.5597708310739475346078715485253291369276,-0.6916870430603532078748910812888483894522,0.6916870430603532078748910812888483894522,-0.8037049589725231156824174550145907971032,0.8037049589725231156824174550145907971032,-0.8926024664975557392060605911271455154078,0.8926024664975557392060605911271455154078,-0.9558239495713977551811958929297763099728,0.9558239495713977551811958929297763099728,-0.9915651684209309467300160047061507702525,0.9915651684209309467300160047061507702525],\n [0,-0.1603586456402253758680961157407435495048,0.1603586456402253758680961157407435495048,-0.3165640999636298319901173288498449178922,0.3165640999636298319901173288498449178922,-0.4645707413759609457172671481041023679762,0.4645707413759609457172671481041023679762,-0.6005453046616810234696381649462392798683,0.6005453046616810234696381649462392798683,-0.7209661773352293786170958608237816296571,0.7209661773352293786170958608237816296571,-0.8227146565371428249789224867127139017745,0.8227146565371428249789224867127139017745,-0.9031559036148179016426609285323124878093,0.9031559036148179016426609285323124878093,-0.9602081521348300308527788406876515266150,0.9602081521348300308527788406876515266150,-0.9924068438435844031890176702532604935893,0.9924068438435844031890176702532604935893],\n [-0.0765265211334973337546404093988382110047,0.0765265211334973337546404093988382110047,-0.2277858511416450780804961953685746247430,0.2277858511416450780804961953685746247430,-0.3737060887154195606725481770249272373957,0.3737060887154195606725481770249272373957,-0.5108670019508270980043640509552509984254,0.5108670019508270980043640509552509984254,-0.6360536807265150254528366962262859367433,0.6360536807265150254528366962262859367433,-0.7463319064601507926143050703556415903107,0.7463319064601507926143050703556415903107,-0.8391169718222188233945290617015206853296,0.8391169718222188233945290617015206853296,-0.9122344282513259058677524412032981130491,0.9122344282513259058677524412032981130491,-0.9639719272779137912676661311972772219120,0.9639719272779137912676661311972772219120,-0.9931285991850949247861223884713202782226,0.9931285991850949247861223884713202782226],\n [0,-0.1455618541608950909370309823386863301163,0.1455618541608950909370309823386863301163,-0.2880213168024010966007925160646003199090,0.2880213168024010966007925160646003199090,-0.4243421202074387835736688885437880520964,0.4243421202074387835736688885437880520964,-0.5516188358872198070590187967243132866220,0.5516188358872198070590187967243132866220,-0.6671388041974123193059666699903391625970,0.6671388041974123193059666699903391625970,-0.7684399634756779086158778513062280348209,0.7684399634756779086158778513062280348209,-0.8533633645833172836472506385875676702761,0.8533633645833172836472506385875676702761,-0.9200993341504008287901871337149688941591,0.9200993341504008287901871337149688941591,-0.9672268385663062943166222149076951614246,0.9672268385663062943166222149076951614246,-0.9937521706203895002602420359379409291933,0.9937521706203895002602420359379409291933],\n [-0.0697392733197222212138417961186280818222,0.0697392733197222212138417961186280818222,-0.2078604266882212854788465339195457342156,0.2078604266882212854788465339195457342156,-0.3419358208920842251581474204273796195591,0.3419358208920842251581474204273796195591,-0.4693558379867570264063307109664063460953,0.4693558379867570264063307109664063460953,-0.5876404035069115929588769276386473488776,0.5876404035069115929588769276386473488776,-0.6944872631866827800506898357622567712673,0.6944872631866827800506898357622567712673,-0.7878168059792081620042779554083515213881,0.7878168059792081620042779554083515213881,-0.8658125777203001365364256370193787290847,0.8658125777203001365364256370193787290847,-0.9269567721871740005206929392590531966353,0.9269567721871740005206929392590531966353,-0.9700604978354287271239509867652687108059,0.9700604978354287271239509867652687108059,-0.9942945854823992920730314211612989803930,0.9942945854823992920730314211612989803930],\n [0,-0.1332568242984661109317426822417661370104,0.1332568242984661109317426822417661370104,-0.2641356809703449305338695382833096029790,0.2641356809703449305338695382833096029790,-0.3903010380302908314214888728806054585780,0.3903010380302908314214888728806054585780,-0.5095014778460075496897930478668464305448,0.5095014778460075496897930478668464305448,-0.6196098757636461563850973116495956533871,0.6196098757636461563850973116495956533871,-0.7186613631319501944616244837486188483299,0.7186613631319501944616244837486188483299,-0.8048884016188398921511184069967785579414,0.8048884016188398921511184069967785579414,-0.8767523582704416673781568859341456716389,0.8767523582704416673781568859341456716389,-0.9329710868260161023491969890384229782357,0.9329710868260161023491969890384229782357,-0.9725424712181152319560240768207773751816,0.9725424712181152319560240768207773751816,-0.9947693349975521235239257154455743605736,0.9947693349975521235239257154455743605736],\n [-0.0640568928626056260850430826247450385909,0.0640568928626056260850430826247450385909,-0.1911188674736163091586398207570696318404,0.1911188674736163091586398207570696318404,-0.3150426796961633743867932913198102407864,0.3150426796961633743867932913198102407864,-0.4337935076260451384870842319133497124524,0.4337935076260451384870842319133497124524,-0.5454214713888395356583756172183723700107,0.5454214713888395356583756172183723700107,-0.6480936519369755692524957869107476266696,0.6480936519369755692524957869107476266696,-0.7401241915785543642438281030999784255232,0.7401241915785543642438281030999784255232,-0.8200019859739029219539498726697452080761,0.8200019859739029219539498726697452080761,-0.8864155270044010342131543419821967550873,0.8864155270044010342131543419821967550873,-0.9382745520027327585236490017087214496548,0.9382745520027327585236490017087214496548,-0.9747285559713094981983919930081690617411,0.9747285559713094981983919930081690617411,-0.9951872199970213601799974097007368118745,0.9951872199970213601799974097007368118745]\n];\n\n// Legendre-Gauss weights (wi values, defined by a function linked to in the Bezier primer article)\nvar cValues = [\n [],[],\n [1.0,1.0],\n [0.8888888888888888888888888888888888888888,0.5555555555555555555555555555555555555555,0.5555555555555555555555555555555555555555],\n [0.6521451548625461426269360507780005927646,0.6521451548625461426269360507780005927646,0.3478548451374538573730639492219994072353,0.3478548451374538573730639492219994072353],\n [0.5688888888888888888888888888888888888888,0.4786286704993664680412915148356381929122,0.4786286704993664680412915148356381929122,0.2369268850561890875142640407199173626432,0.2369268850561890875142640407199173626432],\n [0.3607615730481386075698335138377161116615,0.3607615730481386075698335138377161116615,0.4679139345726910473898703439895509948116,0.4679139345726910473898703439895509948116,0.1713244923791703450402961421727328935268,0.1713244923791703450402961421727328935268],\n [0.4179591836734693877551020408163265306122,0.3818300505051189449503697754889751338783,0.3818300505051189449503697754889751338783,0.2797053914892766679014677714237795824869,0.2797053914892766679014677714237795824869,0.1294849661688696932706114326790820183285,0.1294849661688696932706114326790820183285],\n [0.3626837833783619829651504492771956121941,0.3626837833783619829651504492771956121941,0.3137066458778872873379622019866013132603,0.3137066458778872873379622019866013132603,0.2223810344533744705443559944262408844301,0.2223810344533744705443559944262408844301,0.1012285362903762591525313543099621901153,0.1012285362903762591525313543099621901153],\n [0.3302393550012597631645250692869740488788,0.1806481606948574040584720312429128095143,0.1806481606948574040584720312429128095143,0.0812743883615744119718921581105236506756,0.0812743883615744119718921581105236506756,0.3123470770400028400686304065844436655987,0.3123470770400028400686304065844436655987,0.2606106964029354623187428694186328497718,0.2606106964029354623187428694186328497718],\n [0.2955242247147528701738929946513383294210,0.2955242247147528701738929946513383294210,0.2692667193099963550912269215694693528597,0.2692667193099963550912269215694693528597,0.2190863625159820439955349342281631924587,0.2190863625159820439955349342281631924587,0.1494513491505805931457763396576973324025,0.1494513491505805931457763396576973324025,0.0666713443086881375935688098933317928578,0.0666713443086881375935688098933317928578],\n [0.2729250867779006307144835283363421891560,0.2628045445102466621806888698905091953727,0.2628045445102466621806888698905091953727,0.2331937645919904799185237048431751394317,0.2331937645919904799185237048431751394317,0.1862902109277342514260976414316558916912,0.1862902109277342514260976414316558916912,0.1255803694649046246346942992239401001976,0.1255803694649046246346942992239401001976,0.0556685671161736664827537204425485787285,0.0556685671161736664827537204425485787285],\n [0.2491470458134027850005624360429512108304,0.2491470458134027850005624360429512108304,0.2334925365383548087608498989248780562594,0.2334925365383548087608498989248780562594,0.2031674267230659217490644558097983765065,0.2031674267230659217490644558097983765065,0.1600783285433462263346525295433590718720,0.1600783285433462263346525295433590718720,0.1069393259953184309602547181939962242145,0.1069393259953184309602547181939962242145,0.0471753363865118271946159614850170603170,0.0471753363865118271946159614850170603170],\n [0.2325515532308739101945895152688359481566,0.2262831802628972384120901860397766184347,0.2262831802628972384120901860397766184347,0.2078160475368885023125232193060527633865,0.2078160475368885023125232193060527633865,0.1781459807619457382800466919960979955128,0.1781459807619457382800466919960979955128,0.1388735102197872384636017768688714676218,0.1388735102197872384636017768688714676218,0.0921214998377284479144217759537971209236,0.0921214998377284479144217759537971209236,0.0404840047653158795200215922009860600419,0.0404840047653158795200215922009860600419],\n [0.2152638534631577901958764433162600352749,0.2152638534631577901958764433162600352749,0.2051984637212956039659240656612180557103,0.2051984637212956039659240656612180557103,0.1855383974779378137417165901251570362489,0.1855383974779378137417165901251570362489,0.1572031671581935345696019386238421566056,0.1572031671581935345696019386238421566056,0.1215185706879031846894148090724766259566,0.1215185706879031846894148090724766259566,0.0801580871597602098056332770628543095836,0.0801580871597602098056332770628543095836,0.0351194603317518630318328761381917806197,0.0351194603317518630318328761381917806197],\n [0.2025782419255612728806201999675193148386,0.1984314853271115764561183264438393248186,0.1984314853271115764561183264438393248186,0.1861610000155622110268005618664228245062,0.1861610000155622110268005618664228245062,0.1662692058169939335532008604812088111309,0.1662692058169939335532008604812088111309,0.1395706779261543144478047945110283225208,0.1395706779261543144478047945110283225208,0.1071592204671719350118695466858693034155,0.1071592204671719350118695466858693034155,0.0703660474881081247092674164506673384667,0.0703660474881081247092674164506673384667,0.0307532419961172683546283935772044177217,0.0307532419961172683546283935772044177217],\n [0.1894506104550684962853967232082831051469,0.1894506104550684962853967232082831051469,0.1826034150449235888667636679692199393835,0.1826034150449235888667636679692199393835,0.1691565193950025381893120790303599622116,0.1691565193950025381893120790303599622116,0.1495959888165767320815017305474785489704,0.1495959888165767320815017305474785489704,0.1246289712555338720524762821920164201448,0.1246289712555338720524762821920164201448,0.0951585116824927848099251076022462263552,0.0951585116824927848099251076022462263552,0.0622535239386478928628438369943776942749,0.0622535239386478928628438369943776942749,0.0271524594117540948517805724560181035122,0.0271524594117540948517805724560181035122],\n [0.1794464703562065254582656442618856214487,0.1765627053669926463252709901131972391509,0.1765627053669926463252709901131972391509,0.1680041021564500445099706637883231550211,0.1680041021564500445099706637883231550211,0.1540457610768102880814315948019586119404,0.1540457610768102880814315948019586119404,0.1351363684685254732863199817023501973721,0.1351363684685254732863199817023501973721,0.1118838471934039710947883856263559267358,0.1118838471934039710947883856263559267358,0.0850361483171791808835353701910620738504,0.0850361483171791808835353701910620738504,0.0554595293739872011294401653582446605128,0.0554595293739872011294401653582446605128,0.0241483028685479319601100262875653246916,0.0241483028685479319601100262875653246916],\n [0.1691423829631435918406564701349866103341,0.1691423829631435918406564701349866103341,0.1642764837458327229860537764659275904123,0.1642764837458327229860537764659275904123,0.1546846751262652449254180038363747721932,0.1546846751262652449254180038363747721932,0.1406429146706506512047313037519472280955,0.1406429146706506512047313037519472280955,0.1225552067114784601845191268002015552281,0.1225552067114784601845191268002015552281,0.1009420441062871655628139849248346070628,0.1009420441062871655628139849248346070628,0.0764257302548890565291296776166365256053,0.0764257302548890565291296776166365256053,0.0497145488949697964533349462026386416808,0.0497145488949697964533349462026386416808,0.0216160135264833103133427102664524693876,0.0216160135264833103133427102664524693876],\n [0.1610544498487836959791636253209167350399,0.1589688433939543476499564394650472016787,0.1589688433939543476499564394650472016787,0.1527660420658596667788554008976629984610,0.1527660420658596667788554008976629984610,0.1426067021736066117757461094419029724756,0.1426067021736066117757461094419029724756,0.1287539625393362276755157848568771170558,0.1287539625393362276755157848568771170558,0.1115666455473339947160239016817659974813,0.1115666455473339947160239016817659974813,0.0914900216224499994644620941238396526609,0.0914900216224499994644620941238396526609,0.0690445427376412265807082580060130449618,0.0690445427376412265807082580060130449618,0.0448142267656996003328381574019942119517,0.0448142267656996003328381574019942119517,0.0194617882297264770363120414644384357529,0.0194617882297264770363120414644384357529],\n [0.1527533871307258506980843319550975934919,0.1527533871307258506980843319550975934919,0.1491729864726037467878287370019694366926,0.1491729864726037467878287370019694366926,0.1420961093183820513292983250671649330345,0.1420961093183820513292983250671649330345,0.1316886384491766268984944997481631349161,0.1316886384491766268984944997481631349161,0.1181945319615184173123773777113822870050,0.1181945319615184173123773777113822870050,0.1019301198172404350367501354803498761666,0.1019301198172404350367501354803498761666,0.0832767415767047487247581432220462061001,0.0832767415767047487247581432220462061001,0.0626720483341090635695065351870416063516,0.0626720483341090635695065351870416063516,0.0406014298003869413310399522749321098790,0.0406014298003869413310399522749321098790,0.0176140071391521183118619623518528163621,0.0176140071391521183118619623518528163621],\n [0.1460811336496904271919851476833711882448,0.1445244039899700590638271665537525436099,0.1445244039899700590638271665537525436099,0.1398873947910731547221334238675831108927,0.1398873947910731547221334238675831108927,0.1322689386333374617810525744967756043290,0.1322689386333374617810525744967756043290,0.1218314160537285341953671771257335983563,0.1218314160537285341953671771257335983563,0.1087972991671483776634745780701056420336,0.1087972991671483776634745780701056420336,0.0934444234560338615532897411139320884835,0.0934444234560338615532897411139320884835,0.0761001136283793020170516533001831792261,0.0761001136283793020170516533001831792261,0.0571344254268572082836358264724479574912,0.0571344254268572082836358264724479574912,0.0369537897708524937999506682993296661889,0.0369537897708524937999506682993296661889,0.0160172282577743333242246168584710152658,0.0160172282577743333242246168584710152658],\n [0.1392518728556319933754102483418099578739,0.1392518728556319933754102483418099578739,0.1365414983460151713525738312315173965863,0.1365414983460151713525738312315173965863,0.1311735047870623707329649925303074458757,0.1311735047870623707329649925303074458757,0.1232523768105124242855609861548144719594,0.1232523768105124242855609861548144719594,0.1129322960805392183934006074217843191142,0.1129322960805392183934006074217843191142,0.1004141444428809649320788378305362823508,0.1004141444428809649320788378305362823508,0.0859416062170677274144436813727028661891,0.0859416062170677274144436813727028661891,0.0697964684245204880949614189302176573987,0.0697964684245204880949614189302176573987,0.0522933351526832859403120512732112561121,0.0522933351526832859403120512732112561121,0.0337749015848141547933022468659129013491,0.0337749015848141547933022468659129013491,0.0146279952982722006849910980471854451902,0.0146279952982722006849910980471854451902],\n [0.1336545721861061753514571105458443385831,0.1324620394046966173716424647033169258050,0.1324620394046966173716424647033169258050,0.1289057221880821499785953393997936532597,0.1289057221880821499785953393997936532597,0.1230490843067295304675784006720096548158,0.1230490843067295304675784006720096548158,0.1149966402224113649416435129339613014914,0.1149966402224113649416435129339613014914,0.1048920914645414100740861850147438548584,0.1048920914645414100740861850147438548584,0.0929157660600351474770186173697646486034,0.0929157660600351474770186173697646486034,0.0792814117767189549228925247420432269137,0.0792814117767189549228925247420432269137,0.0642324214085258521271696151589109980391,0.0642324214085258521271696151589109980391,0.0480376717310846685716410716320339965612,0.0480376717310846685716410716320339965612,0.0309880058569794443106942196418845053837,0.0309880058569794443106942196418845053837,0.0134118594871417720813094934586150649766,0.0134118594871417720813094934586150649766],\n [0.1279381953467521569740561652246953718517,0.1279381953467521569740561652246953718517,0.1258374563468282961213753825111836887264,0.1258374563468282961213753825111836887264,0.1216704729278033912044631534762624256070,0.1216704729278033912044631534762624256070,0.1155056680537256013533444839067835598622,0.1155056680537256013533444839067835598622,0.1074442701159656347825773424466062227946,0.1074442701159656347825773424466062227946,0.0976186521041138882698806644642471544279,0.0976186521041138882698806644642471544279,0.0861901615319532759171852029837426671850,0.0861901615319532759171852029837426671850,0.0733464814110803057340336152531165181193,0.0733464814110803057340336152531165181193,0.0592985849154367807463677585001085845412,0.0592985849154367807463677585001085845412,0.0442774388174198061686027482113382288593,0.0442774388174198061686027482113382288593,0.0285313886289336631813078159518782864491,0.0285313886289336631813078159518782864491,0.0123412297999871995468056670700372915759,0.0123412297999871995468056670700372915759]\n];\n\n// LUT for binomial coefficient arrays per curve order 'n'\nvar binomialCoefficients = [[1], [1, 1], [1, 2, 1], [1, 3, 3, 1]];\n\n// Look up what the binomial coefficient is for pair {n,k}\nfunction binomials(n, k) {\n return binomialCoefficients[n][k];\n}\n\n/**\n * Compute the curve derivative (hodograph) at t.\n */\nfunction getDerivative(derivative, t, vs) {\n // the derivative of any 't'-less function is zero.\n var n = vs.length - 1,\n _vs,\n value,\n k;\n if (n === 0) {\n return 0;\n }\n\n // direct values? compute!\n if (derivative === 0) {\n value = 0;\n for (k = 0; k <= n; k++) {\n value += binomials(n, k) * Math.pow(1 - t, n - k) * Math.pow(t, k) * vs[k];\n }\n return value;\n } else {\n // Still some derivative? go down one order, then try\n // for the lower order curve's.\n _vs = new Array(n);\n for (k = 0; k < n; k++) {\n _vs[k] = n * (vs[k + 1] - vs[k]);\n }\n return getDerivative(derivative - 1, t, _vs);\n }\n}\n\nfunction B(xs, ys, t) {\n var xbase = getDerivative(1, t, xs);\n var ybase = getDerivative(1, t, ys);\n var combined = xbase * xbase + ybase * ybase;\n return Math.sqrt(combined);\n}\n\nfunction getCubicArcLength(xs, ys, t) {\n var z, sum, i, correctedT;\n\n /*if (xs.length >= tValues.length) {\n throw new Error('too high n bezier');\n }*/\n\n if (t === undefined) {\n t = 1;\n }\n var n = 20;\n\n z = t / 2;\n sum = 0;\n for (i = 0; i < n; i++) {\n correctedT = z * tValues[n][i] + z;\n sum += cValues[n][i] * B(xs, ys, correctedT);\n }\n return z * sum;\n}\n","//This file is taken from the following project: https://github.com/fontello/svgpath\n// Convert an arc to a sequence of cubic bézier curves\n//\n'use strict';\n\n\nvar TAU = Math.PI * 2;\n\n\n/* eslint-disable space-infix-ops */\n\n// Calculate an angle between two unit vectors\n//\n// Since we measure angle between radii of circular arcs,\n// we can use simplified math (without length normalization)\n//\nfunction unit_vector_angle(ux, uy, vx, vy) {\n var sign = (ux * vy - uy * vx < 0) ? -1 : 1;\n var dot = ux * vx + uy * vy;\n\n // Add this to work with arbitrary vectors:\n // dot /= Math.sqrt(ux * ux + uy * uy) * Math.sqrt(vx * vx + vy * vy);\n\n // rounding errors, e.g. -1.0000000000000002 can screw up this\n if (dot > 1.0) { dot = 1.0; }\n if (dot < -1.0) { dot = -1.0; }\n\n return sign * Math.acos(dot);\n}\n\n\n// Convert from endpoint to center parameterization,\n// see http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n//\n// Return [cx, cy, theta1, delta_theta]\n//\nfunction get_arc_center(x1, y1, x2, y2, fa, fs, rx, ry, sin_phi, cos_phi) {\n // Step 1.\n //\n // Moving an ellipse so origin will be the middlepoint between our two\n // points. After that, rotate it to line up ellipse axes with coordinate\n // axes.\n //\n var x1p = cos_phi*(x1-x2)/2 + sin_phi*(y1-y2)/2;\n var y1p = -sin_phi*(x1-x2)/2 + cos_phi*(y1-y2)/2;\n\n var rx_sq = rx * rx;\n var ry_sq = ry * ry;\n var x1p_sq = x1p * x1p;\n var y1p_sq = y1p * y1p;\n\n // Step 2.\n //\n // Compute coordinates of the centre of this ellipse (cx', cy')\n // in the new coordinate system.\n //\n var radicant = (rx_sq * ry_sq) - (rx_sq * y1p_sq) - (ry_sq * x1p_sq);\n\n if (radicant < 0) {\n // due to rounding errors it might be e.g. -1.3877787807814457e-17\n radicant = 0;\n }\n\n radicant /= (rx_sq * y1p_sq) + (ry_sq * x1p_sq);\n radicant = Math.sqrt(radicant) * (fa === fs ? -1 : 1);\n\n var cxp = radicant * rx/ry * y1p;\n var cyp = radicant * -ry/rx * x1p;\n\n // Step 3.\n //\n // Transform back to get centre coordinates (cx, cy) in the original\n // coordinate system.\n //\n var cx = cos_phi*cxp - sin_phi*cyp + (x1+x2)/2;\n var cy = sin_phi*cxp + cos_phi*cyp + (y1+y2)/2;\n\n // Step 4.\n //\n // Compute angles (theta1, delta_theta).\n //\n var v1x = (x1p - cxp) / rx;\n var v1y = (y1p - cyp) / ry;\n var v2x = (-x1p - cxp) / rx;\n var v2y = (-y1p - cyp) / ry;\n\n var theta1 = unit_vector_angle(1, 0, v1x, v1y);\n var delta_theta = unit_vector_angle(v1x, v1y, v2x, v2y);\n\n if (fs === 0 && delta_theta > 0) {\n delta_theta -= TAU;\n }\n if (fs === 1 && delta_theta < 0) {\n delta_theta += TAU;\n }\n\n return [ cx, cy, theta1, delta_theta ];\n}\n\n//\n// Approximate one unit arc segment with bézier curves,\n// see http://math.stackexchange.com/questions/873224\n//\nfunction approximate_unit_arc(theta1, delta_theta) {\n var alpha = 4/3 * Math.tan(delta_theta/4);\n\n var x1 = Math.cos(theta1);\n var y1 = Math.sin(theta1);\n var x2 = Math.cos(theta1 + delta_theta);\n var y2 = Math.sin(theta1 + delta_theta);\n\n return [ x1, y1, x1 - y1*alpha, y1 + x1*alpha, x2 + y2*alpha, y2 - x2*alpha, x2, y2 ];\n}\n\nexport default function(x1, y1, rx, ry, phi, fa, fs, x2, y2) {\n var sin_phi = Math.sin(phi * TAU / 360);\n var cos_phi = Math.cos(phi * TAU / 360);\n\n // Make sure radii are valid\n //\n var x1p = cos_phi*(x1-x2)/2 + sin_phi*(y1-y2)/2;\n var y1p = -sin_phi*(x1-x2)/2 + cos_phi*(y1-y2)/2;\n\n if (x1p === 0 && y1p === 0) {\n // we're asked to draw line to itself\n return [];\n }\n\n if (rx === 0 || ry === 0) {\n // one of the radii is zero\n return [];\n }\n\n\n // Compensate out-of-range radii\n //\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var lambda = (x1p * x1p) / (rx * rx) + (y1p * y1p) / (ry * ry);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n\n\n // Get center parameters (cx, cy, theta1, delta_theta)\n //\n var cc = get_arc_center(x1, y1, x2, y2, fa, fs, rx, ry, sin_phi, cos_phi);\n\n var result = [];\n var theta1 = cc[2];\n var delta_theta = cc[3];\n\n // Split an arc to multiple segments, so each segment\n // will be less than τ/4 (= 90°)\n //\n var segments = Math.max(Math.ceil(Math.abs(delta_theta) / (TAU / 4)), 1);\n delta_theta /= segments;\n\n for (var i = 0; i < segments; i++) {\n result.push(approximate_unit_arc(theta1, delta_theta));\n theta1 += delta_theta;\n }\n\n // We have a bezier approximation of a unit circle,\n // now need to transform back to the original ellipse\n //\n return result.map(function (curve) {\n for (var i = 0; i < curve.length; i += 2) {\n var x = curve[i + 0];\n var y = curve[i + 1];\n\n // scale\n x *= rx;\n y *= ry;\n\n // rotate\n var xp = cos_phi*x - sin_phi*y;\n var yp = sin_phi*x + cos_phi*y;\n\n // translate\n curve[i + 0] = xp + cc[0];\n curve[i + 1] = yp + cc[1];\n }\n\n return curve;\n });\n}","//Calculate ans Arc curve length and positionAtLength\n//Definitions taken from https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths\nimport a2c from \"./a2c\";\nimport Bezier from \"./bezier\";\n\n\nexport default function(x0, y0, rx,ry, xAxisRotate, LargeArcFlag,SweepFlag, x,y) {\n return new Arc(x0, y0, rx,ry, xAxisRotate, LargeArcFlag,SweepFlag, x,y);\n}\n\nfunction Arc(x0, y0,rx,ry, xAxisRotate, LargeArcFlag,SweepFlag,x,y) {\n var length = 0;\n var partialLengths = [];\n var curves = [];\n var res = a2c(x0, y0,rx,ry, xAxisRotate, LargeArcFlag,SweepFlag,x,y);\n res.forEach(function(d){\n var curve = new Bezier(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7]);\n var curveLength = curve.getTotalLength();\n length += curveLength;\n partialLengths.push(curveLength);\n curves.push(curve);\n });\n this.length = length;\n this.partialLengths = partialLengths;\n this.curves = curves;\n}\n\nArc.prototype = {\n constructor: Arc,\n init: function() {\n\n \n },\n\n getTotalLength: function() {\n return this.length;\n },\n getPointAtLength: function(fractionLength) {\n \n if(fractionLength < 0){\n fractionLength = 0;\n } else if(fractionLength > this.length){\n fractionLength = this.length;\n }\n var i = this.partialLengths.length - 1;\n\n while(this.partialLengths[i] >= fractionLength && this.partialLengths[i] > 0){\n i--;\n }\n if(i<this.partialLengths.length-1){\n i++;\n }\n\n var lengthOffset = 0;\n for(var j=0; j<i; j++){\n lengthOffset += this.partialLengths[j];\n }\n\n return this.curves[i].getPointAtLength(fractionLength - lengthOffset);\n },\n getTangentAtLength: function(fractionLength) {\n if(fractionLength < 0){\n fractionLength = 0;\n } else if(fractionLength > this.length){\n fractionLength = this.length;\n }\n var i = this.partialLengths.length - 1;\n\n while(this.partialLengths[i] >= fractionLength && this.partialLengths[i] > 0){\n i--;\n }\n if(i<this.partialLengths.length-1){\n i++;\n }\n\n var lengthOffset = 0;\n for(var j=0; j<i; j++){\n lengthOffset += this.partialLengths[j];\n }\n\n return this.curves[i].getTangentAtLength(fractionLength - lengthOffset);\n },\n getPropertiesAtLength: function(fractionLength){\n var tangent = this.getTangentAtLength(fractionLength);\n var point = this.getPointAtLength(fractionLength);\n return {x: point.x, y: point.y, tangentX: tangent.x, tangentY: tangent.y};\n }\n};","export default function(x0, x1, y0, y1) {\n return new LinearPosition(x0, x1, y0, y1);\n\n}\n\nfunction LinearPosition(x0, x1, y0, y1){\n this.x0 = x0;\n this.x1 = x1;\n this.y0 = y0;\n this.y1 = y1;\n}\n\nLinearPosition.prototype.getTotalLength = function(){\n return Math.sqrt(Math.pow(this.x0 - this.x1, 2) +\n Math.pow(this.y0 - this.y1, 2));\n};\n\nLinearPosition.prototype.getPointAtLength = function(pos){\n var fraction = pos/ (Math.sqrt(Math.pow(this.x0 - this.x1, 2) +\n Math.pow(this.y0 - this.y1, 2)));\n\n var newDeltaX = (this.x1 - this.x0)*fraction;\n var newDeltaY = (this.y1 - this.y0)*fraction;\n return { x: this.x0 + newDeltaX, y: this.y0 + newDeltaY };\n};\nLinearPosition.prototype.getTangentAtLength = function(){\n var module = Math.sqrt((this.x1 - this.x0) * (this.x1 - this.x0) +\n (this.y1 - this.y0) * (this.y1 - this.y0));\n return { x: (this.x1 - this.x0)/module, y: (this.y1 - this.y0)/module };\n};\nLinearPosition.prototype.getPropertiesAtLength = function(pos){\n var point = this.getPointAtLength(pos);\n var tangent = this.getTangentAtLength();\n return {x: point.x, y: point.y, tangentX: tangent.x, tangentY: tangent.y};\n};\n","import parse from \"./parse\";\nimport Bezier from \"./bezier\";\nimport Arc from \"./arc\";\nimport LinearPosition from \"./linear\";\n\nexport default function(svgString) {\n var length = 0;\n var partial_lengths = [];\n var functions = [];\n\n function svgProperties(string){\n if(!string){return null;}\n var parsed = parse(string);\n var cur = [0, 0];\n var prev_point = [0, 0];\n var curve;\n var ringStart;\n for (var i = 0; i < parsed.length; i++){\n //moveTo\n if(parsed[i][0] === \"M\"){\n cur = [parsed[i][1], parsed[i][2]];\n ringStart = [cur[0], cur[1]];\n functions.push(null);\n } else if(parsed[i][0] === \"m\"){\n cur = [parsed[i][1] + cur[0], parsed[i][2] + cur[1]];\n ringStart = [cur[0], cur[1]];\n functions.push(null);\n }\n //lineTo\n else if(parsed[i][0] === \"L\"){\n length = length + Math.sqrt(Math.pow(cur[0] - parsed[i][1], 2) + Math.pow(cur[1] - parsed[i][2], 2));\n functions.push(new LinearPosition(cur[0], parsed[i][1], cur[1], parsed[i][2]));\n cur = [parsed[i][1], parsed[i][2]];\n } else if(parsed[i][0] === \"l\"){\n length = length + Math.sqrt(Math.pow(parsed[i][1], 2) + Math.pow(parsed[i][2], 2));\n functions.push(new LinearPosition(cur[0], parsed[i][1] + cur[0], cur[1], parsed[i][2] + cur[1]));\n cur = [parsed[i][1] + cur[0], parsed[i][2] + cur[1]];\n } else if(parsed[i][0] === \"H\"){\n length = length + Math.abs(cur[0] - parsed[i][1]);\n functions.push(new LinearPosition(cur[0], parsed[i][1], cur[1], cur[1]));\n cur[0] = parsed[i][1];\n } else if(parsed[i][0] === \"h\"){\n length = length + Math.abs(parsed[i][1]);\n functions.push(new LinearPosition(cur[0], cur[0] + parsed[i][1], cur[1], cur[1]));\n cur[0] = parsed[i][1] + cur[0];\n } else if(parsed[i][0] === \"V\"){\n length = length + Math.abs(cur[1] - parsed[i][1]);\n functions.push(new LinearPosition(cur[0], cur[0], cur[1], parsed[i][1]));\n cur[1] = parsed[i][1];\n } else if(parsed[i][0] === \"v\"){\n length = length + Math.abs(parsed[i][1]);\n functions.push(new LinearPosition(cur[0], cur[0], cur[1], cur[1] + parsed[i][1]));\n cur[1] = parsed[i][1] + cur[1];\n //Close path\n } else if(parsed[i][0] === \"z\" || parsed[i][0] === \"Z\"){\n length = length + Math.sqrt(Math.pow(ringStart[0] - cur[0], 2) + Math.pow(ringStart[1] - cur[1], 2));\n functions.push(new LinearPosition(cur[0], ringStart[0], cur[1], ringStart[1]));\n cur = [ringStart[0], ringStart[1]];\n }\n //Cubic Bezier curves\n else if(parsed[i][0] === \"C\"){\n curve = new Bezier(cur[0], cur[1] , parsed[i][1], parsed[i][2] , parsed[i][3], parsed[i][4] , parsed[i][5], parsed[i][6]);\n length = length + curve.getTotalLength();\n cur = [parsed[i][5], parsed[i][6]];\n functions.push(curve);\n } else if(parsed[i][0] === \"c\"){\n curve = new Bezier(cur[0], cur[1] , cur[0] + parsed[i][1], cur[1] + parsed[i][2] , cur[0] + parsed[i][3], cur[1] + parsed[i][4] , cur[0] + parsed[i][5], cur[1] + parsed[i][6]);\n length = length + curve.getTotalLength();\n cur = [parsed[i][5] + cur[0], parsed[i][6] + cur[1]];\n functions.push(curve);\n } else if(parsed[i][0] === \"S\"){\n if(i>0 && [\"C\",\"c\",\"S\",\"s\"].indexOf(parsed[i-1][0]) > -1){\n curve = new Bezier(cur[0], cur[1] , 2*cur[0] - parsed[i-1][parsed[i-1].length - 4], 2*cur[1] - parsed[i-1][parsed[i-1].length - 3], parsed[i][1], parsed[i][2] , parsed[i][3], parsed[i][4]);\n } else {\n curve = new Bezier(cur[0], cur[1] , cur[0], cur[1], parsed[i][1], parsed[i][2] , parsed[i][3], parsed[i][4]);\n }\n length = length + curve.getTotalLength();\n cur = [parsed[i][3], parsed[i][4]];\n functions.push(curve);\n } else if(parsed[i][0] === \"s\"){ //240 225\n if(i>0 && [\"C\",\"c\",\"S\",\"s\"].indexOf(parsed[i-1][0]) > -1){\n curve = new Bezier(cur[0], cur[1] , cur[0] + curve.d.x - curve.c.x, cur[1] + curve.d.y - curve.c.y, cur[0] + parsed[i][1], cur[1] + parsed[i][2] , cur[0] + parsed[i][3], cur[1] + parsed[i][4]);\n } else {\n curve = new Bezier(cur[0], cur[1] , cur[0], cur[1], cur[0] + parsed[i][1], cur[1] + parsed[i][2] , cur[0] + parsed[i][3], cur[1] + parsed[i][4]);\n }\n length = length + curve.getTotalLength();\n cur = [parsed[i][3] + cur[0], parsed[i][4] + cur[1]];\n functions.push(curve);\n }\n //Quadratic Bezier curves\n else if(parsed[i][0] === \"Q\"){\n if(cur[0] != parsed[i][1] && cur[1] != parsed[i][2]){\n curve = new Bezier(cur[0], cur[1] , parsed[i][1], parsed[i][2] , parsed[i][3], parsed[i][4]);\n } else {\n curve = new LinearPosition(parsed[i][1], parsed[i][3], parsed[i][2], parsed[i][4]);\n }\n length = length + curve.getTotalLength();\n functions.push(curve);\n cur = [parsed[i][3], parsed[i][4]];\n prev_point = [parsed[i][1], parsed[i][2]];\n\n } else if(parsed[i][0] === \"q\"){\n if(!(parsed[i][1] == 0 && parsed[i][2] == 0)){\n curve = new Bezier(cur[0], cur[1] , cur[0] + parsed[i][1], cur[1] + parsed[i][2] , cur[0] + parsed[i][3], cur[1] + parsed[i][4]);\n } else {\n curve = new LinearPosition(cur[0] + parsed[i][1], cur[0] + parsed[i][3], cur[1] + parsed[i][2], cur[1] + parsed[i][4]);\n }\n length = length + curve.getTotalLength();\n prev_point = [cur[0] + parsed[i][1], cur[1] + parsed[i][2]];\n cur = [parsed[i][3] + cur[0], parsed[i][4] + cur[1]];\n functions.push(curve);\n } else if(parsed[i][0] === \"T\"){\n if(i>0 && [\"Q\",\"q\",\"T\",\"t\"].indexOf(parsed[i-1][0]) > -1){\n curve = new Bezier(cur[0], cur[1] , 2 * cur[0] - prev_point[0] , 2 * cur[1] - prev_point[1] , parsed[i][1], parsed[i][2]);\n } else {\n curve = new LinearPosition(cur[0], parsed[i][1], cur[1], parsed[i][2]);\n }\n functions.push(curve);\n length = length + curve.getTotalLength();\n prev_point = [2 * cur[0] - prev_point[0] , 2 * cur[1] - prev_point[1]];\n cur = [parsed[i][1], parsed[i][2]];\n\n } else if(parsed[i][0] === \"t\"){\n if(i>0 && [\"Q\",\"q\",\"T\",\"t\"].indexOf(parsed[i-1][0]) > -1){\n curve = new Bezier(cur[0], cur[1] , 2 * cur[0] - prev_point[0] , 2 * cur[1] - prev_point[1] , cur[0] + parsed[i][1], cur[1] + parsed[i][2]);\n } else {\n curve = new LinearPosition(cur[0], cur[0] + parsed[i][1], cur[1], cur[1] + parsed[i][2]);\n }\n length = length + curve.getTotalLength();\n prev_point = [2 * cur[0] - prev_point[0] , 2 * cur[1] - prev_point[1]];\n cur = [parsed[i][1] + cur[0], parsed[i][2] + cur[0]];\n functions.push(curve);\n } else if(parsed[i][0] === \"A\"){\n curve = new Arc(cur[0], cur[1], parsed[i][1], parsed[i][2], parsed[i][3], parsed[i][4], parsed[i][5], parsed[i][6], parsed[i][7]);\n\n length = length + curve.getTotalLength();\n cur = [parsed[i][6], parsed[i][7]];\n functions.push(curve);\n } else if(parsed[i][0] === \"a\"){\n curve = new Arc(cur[0], cur[1], parsed[i][1], parsed[i][2], parsed[i][3], parsed[i][4], parsed[i][5], cur[0] + parsed[i][6], cur[1] + parsed[i][7]);\n\n length = length + curve.getTotalLength();\n cur = [cur[0] + parsed[i][6], cur[1] + parsed[i][7]];\n functions.push(curve);\n }\n partial_lengths.push(length);\n\n }\n return svgProperties;\n }\n\n svgProperties.getTotalLength = function(){\n return length;\n };\n\n svgProperties.getPointAtLength = function(fractionLength){\n var fractionPart = getPartAtLength(fractionLength);\n return functions[fractionPart.i].getPointAtLength(fractionPart.fraction);\n };\n\n svgProperties.getTangentAtLength = function(fractionLength){\n var fractionPart = getPartAtLength(fractionLength);\n return functions[fractionPart.i].getTangentAtLength(fractionPart.fraction);\n };\n\n svgProperties.getPropertiesAtLength = function(fractionLength){\n var fractionPart = getPartAtLength(fractionLength);\n return functions[fractionPart.i].getPropertiesAtLength(fractionPart.fraction);\n };\n\n var getPartAtLength = function(fractionLength){\n if(fractionLength < 0){\n fractionLength = 0;\n } else if(fractionLength > length){\n fractionLength = length;\n }\n\n var i = partial_lengths.length - 1;\n\n while(partial_lengths[i] >= fractionLength && partial_lengths[i] > 0){\n i--;\n }\n i++;\n return {fraction: fractionLength-partial_lengths[i-1], i: i};\n };\n\n return svgProperties(svgString);\n}\n","import { toPathString } from \"./svg.js\";\nimport { polygonCentroid as d3Centroid } from \"d3-polygon\";\n\nexport function distance(a, b) {\n return Math.sqrt((a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]));\n}\n\nexport function pointAlong(a, b, pct) {\n return [a[0] + (b[0] - a[0]) * pct, a[1] + (b[1] - a[1]) * pct];\n}\n\nexport function samePoint(a, b) {\n return distance(a, b) < 1e-9;\n}\n\nexport function interpolatePoints(a, b, string) {\n let interpolators = a.map((d, i) => interpolatePoint(d, b[i]));\n\n return function(t) {\n let values = interpolators.map(fn => fn(t));\n return string ? toPathString(values) : values;\n };\n}\n\nexport function interpolatePoint(a, b) {\n return function(t) {\n return a.map((d, i) => d + t * (b[i] - d));\n };\n}\n\nexport function isFiniteNumber(number) {\n return typeof number === \"number\" && isFinite(number);\n}\n\n// Use plain mean if it's a degenerate polygon (colinear points or single point)\nexport function polygonCentroid(polygon) {\n return nonZeroArea(polygon) ? d3Centroid(polygon) : [\n (polygon[0][0] + polygon[polygon.length - 1][0]) / 2,\n (polygon[0][1] + polygon[polygon.length - 1][1]) / 2\n ];\n}\n\nfunction nonZeroArea(polygon) {\n\n for (let i = 0; i < polygon.length - 2; i++) {\n\n let a = polygon[i],\n b = polygon[i + 1],\n c = polygon[i + 2];\n\n if (a[0] * (b[1] - c[1]) + b[0] * (c[1] - a[1]) + c[0] * (a[1] - b[1])) {\n return true;\n }\n\n }\n\n return false;\n\n}\n","export const INVALID_INPUT = `All shapes must be supplied as arrays of [x, y] points or an SVG path string (https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d).\nExample valid ways of supplying a shape would be:\n[[0, 0], [10, 0], [10, 10]]\n\"M0,0 L10,0 L10,10Z\"\n`;\n\nexport const INVALID_INPUT_ALL = `flubber.all() expects two arrays of equal length as arguments. Each element in both arrays should be an array of [x, y] points or an SVG path string (https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d).`;\n\nexport const INVALID_PATH_STRING = `Invalid SVG path string supplied.\nPath string reference: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d\n`;\n","import Path from \"svgpath\";\nimport { svgPathProperties } from \"svg-path-properties\";\nimport normalizeRing from \"./normalize.js\";\nimport { isFiniteNumber } from \"./math.js\";\nimport { INVALID_INPUT } from \"./errors.js\";\n\nfunction parse(str) {\n return new Path(str).abs();\n}\n\nfunction split(parsed) {\n return parsed\n .toString()\n .split(\"M\")\n .map((d, i) => {\n d = d.trim();\n return i && d ? \"M\" + d : d;\n })\n .filter(d => d);\n}\n\nexport function toPathString(ring) {\n return \"M\" + ring.join(\"L\") + \"Z\";\n}\n\nexport function splitPathString(str) {\n return split(parse(str));\n}\n\nexport function pathStringToRing(str, maxSegmentLength) {\n let parsed = parse(str);\n\n return exactRing(parsed) || approximateRing(parsed, maxSegmentLength);\n}\n\nfunction exactRing(parsed) {\n let segments = parsed.segments || [],\n ring = [];\n\n if (!segments.length || segments[0][0] !== \"M\") {\n return false;\n }\n\n for (let i = 0; i < segments.length; i++) {\n let [command, x, y] = segments[i];\n if ((command === \"M\" && i) || command === \"Z\") {\n break;\n } else if (command === \"M\" || command === \"L\") {\n ring.push([x, y]);\n } else if (command === \"H\") {\n ring.push([x, ring[ring.length - 1][1]]);\n } else if (command === \"V\") {\n ring.push([ring[ring.length - 1][0], x]);\n } else {\n return false;\n }\n }\n\n return ring.length ? { ring } : false;\n}\n\nfunction approximateRing(parsed, maxSegmentLength) {\n let ringPath = split(parsed)[0],\n ring = [],\n props,\n len,\n m,\n numPoints = 3;\n\n if (!ringPath) {\n throw new TypeError(INVALID_INPUT);\n }\n\n m = measure(ringPath);\n len = m.getTotalLength();\n\n if (maxSegmentLength && isFiniteNumber(maxSegmentLength) && maxSegmentLength > 0) {\n numPoints = Math.max(numPoints, Math.ceil(len / maxSegmentLength));\n }\n\n for (let i = 0; i < numPoints; i++) {\n let p = m.getPointAtLength(len * i / numPoints);\n ring.push([p.x, p.y]);\n }\n\n return {\n ring,\n skipBisect: true\n };\n}\n\nfunction measure(d) {\n // Use native browser measurement if running in browser\n if (typeof window !== \"undefined\" && window && window.document) {\n try {\n let path = window.document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\");\n path.setAttributeNS(null, \"d\", d);\n return path;\n } catch (e) {}\n }\n // Fall back to svg-path-properties\n return svgPathProperties(d);\n}\n","import { polygonLength } from \"d3-polygon\";\nimport { distance, pointAlong } from \"./math.js\";\n\nexport function addPoints(ring, numPoints) {\n const desiredLength = ring.length + numPoints,\n step = polygonLength(ring) / numPoints;\n\n let i = 0,\n cursor = 0,\n insertAt = step / 2;\n\n while (ring.length < desiredLength) {\n let a = ring[i],\n b = ring[(i + 1) % ring.length],\n segment = distance(a, b);\n\n if (insertAt <= cursor + segment) {\n ring.splice(i + 1, 0, segment ? pointAlong(a, b, (insertAt - cursor) / segment) : a.slice(0));\n insertAt += step;\n continue;\n }\n\n cursor += segment;\n i++;\n }\n}\n\nexport function bisect(ring, maxSegmentLength = Infinity) {\n for (let i = 0; i < ring.length; i++) {\n let a = ring[i],\n b = i === ring.length - 1 ? ring[0] : ring[i + 1];\n\n // Could splice the whole set for a segment instead, but a bit messy\n while (distance(a, b) > maxSegmentLength) {\n b = pointAlong(a, b, 0.5);\n ring.splice(i + 1, 0, b);\n }\n }\n}\n","import { polygonArea } from \"d3-polygon\";\nimport { pathStringToRing } from \"./svg.js\";\nimport { samePoint, isFiniteNumber } from \"./math.js\";\nimport { bisect } from \"./add.js\";\nimport { INVALID_INPUT } from \"./errors.js\";\n\nexport default function normalizeRing(ring, maxSegmentLength) {\n let points, area, skipBisect;\n\n if (typeof ring === \"string\") {\n let converted = pathStringToRing(ring, maxSegmentLength);\n ring = converted.ring;\n skipBisect = converted.skipBisect;\n } else if (!Array.isArray(ring)) {\n throw new TypeError(INVALID_INPUT);\n }\n\n points = ring.slice(0);\n\n if (!validRing(points)) {\n throw new TypeError(INVALID_INPUT);\n }\n\n // TODO skip this test to avoid scale issues?\n // Chosen epsilon (1e-6) is problematic for small coordinate range\n if (points.length > 1 && samePoint(points[0], points[points.length - 1])) {\n points.pop();\n }\n\n area = polygonArea(points);\n\n // Make all rings clockwise\n if (area > 0) {\n points.reverse();\n }\n\n if (\n !skipBisect &&\n maxSegmentLength &&\n isFiniteNumber(maxSegmentLength) &&\n maxSegmentLength > 0\n ) {\n bisect(points, maxSegmentLength);\n }\n\n return points;\n}\n\nfunction validRing(ring) {\n return ring.every(function(point) {\n return (\n Array.isArray(point) &&\n point.length >= 2 &&\n isFiniteNumber(point[0]) &&\n isFiniteNumber(point[1])\n );\n });\n}\n","import { distance } from \"./math.js\";\n\nexport default function(ring, vs) {\n let len = ring.length,\n min = Infinity,\n bestOffset,\n sumOfSquares,\n spliced;\n\n for (let offset = 0; offset < len; offset++) {\n sumOfSquares = 0;\n\n vs.forEach(function(p, i){\n let d = distance(ring[(offset + i) % len], p);\n sumOfSquares += d * d;\n });\n\n if (sumOfSquares < min) {\n min = sumOfSquares;\n bestOffset = offset;\n }\n }\n\n if (bestOffset) {\n spliced = ring.splice(0, bestOffset);\n ring.splice(ring.length, 0, ...spliced);\n }\n}\n","import normalizeRing from \"./normalize.js\";\nimport { addPoints } from \"./add.js\";\nimport rotate from \"./rotate.js\";\nimport { interpolatePoints } from \"./math.js\";\n\nexport default function(fromShape, toShape, { maxSegmentLength = 10, string = true } = {}) {\n let fromRing = normalizeRing(fromShape, maxSegmentLength),\n toRing = normalizeRing(toShape, maxSegmentLength),\n interpolator = interpolateRing(fromRing, toRing, string);\n\n // Extra optimization for near either end with path strings\n if (!string || (typeof fromShape !== \"string\" && typeof toShape !== \"string\")) {\n return interpolator;\n }\n\n return t => {\n if (t < 1e-4 && typeof fromShape === \"string\") {\n return fromShape;\n }\n if (1 - t < 1e-4 && typeof toShape === \"string\") {\n return toShape;\n }\n return interpolator(t);\n };\n}\n\nexport function interpolateRing(fromRing, toRing, string) {\n let diff;\n\n diff = fromRing.length - toRing.length;\n\n // TODO bisect and add points in one step?\n addPoints(fromRing, diff < 0 ? diff * -1 : 0);\n addPoints(toRing, diff > 0 ? diff : 0);\n\n rotate(fromRing, toRing);\n\n return interpolatePoints(fromRing, toRing, string);\n}\n","'use strict';\n\nmodule.exports = earcut;\nmodule.exports.default = earcut;\n\nfunction earcut(data, holeIndices, dim) {\n\n dim = dim || 2;\n\n var hasHoles = holeIndices && holeIndices.length,\n outerLen = hasHoles ? holeIndices[0] * dim : data.length,\n outerNode = linkedList(data, 0, outerLen, dim, true),\n triangles = [];\n\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n\n var minX, minY, maxX, maxY, x, y, invSize;\n\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n\n // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n\n // minX, minY and invSize are later used to transform coords into integers for z-order calculation\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 32767 / invSize : 0;\n }\n\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n\n return triangles;\n}\n\n// create a circular doubly linked list from polygon points in the specified winding order\nfunction linkedList(data, start, end, dim, clockwise) {\n var i, last;\n\n if (clockwise === (signedArea(data, start, end, dim) > 0)) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n\n return last;\n}\n\n// eliminate colinear or duplicate points\nfunction filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n\n var p = start,\n again;\n do {\n again = false;\n\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n\n return end;\n}\n\n// main ear slicing loop which triangulates a polygon (given as a linked list)\nfunction earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n\n // interlink polygon nodes in z-order\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n\n var stop = ear,\n prev, next;\n\n // iterate through ears, slicing them one by one\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n // cut off the triangle\n triangles.push(prev.i / dim | 0);\n triangles.push(ear.i / dim | 0);\n triangles.push(next.i / dim | 0);\n\n removeNode(ear);\n\n // skipping the next vertex leads to less sliver triangles\n ear = next.next;\n stop = next.next;\n\n continue;\n }\n\n ear = next;\n\n // if we looped through the whole remaining polygon and can't find any more ears\n if (ear === stop) {\n // try filtering points and slicing again\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n\n // if this didn't work, try curing all small self-intersections locally\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n\n // as a last resort, try splitting the remaining polygon into two\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n\n break;\n }\n }\n}\n\n// check whether a polygon node forms a valid ear with adjacent nodes\nfunction isEar(ear) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n // now make sure we don't have other points inside the potential ear\n var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n // triangle bbox; min & max are calculated like this for speed\n var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx),\n y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy),\n x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx),\n y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy);\n\n var p = c.next;\n while (p !== a) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 &&\n pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) &&\n area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n\n return true;\n}\n\nfunction isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev,\n b = ear,\n c = ear.next;\n\n if (area(a, b, c) >= 0) return false; // reflex, can't be an ear\n\n var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n\n // triangle bbox; min & max are calculated like this for speed\n var x0 = ax < bx ? (ax < cx ? ax : cx) : (bx < cx ? bx : cx),\n y0 = ay < by ? (ay < cy ? ay : cy) : (by < cy ? by : cy),\n x1 = ax > bx ? (ax > cx ? ax : cx) : (bx > cx ? bx : cx),\n y1 = ay > by ? (ay > cy ? ay : cy) : (by > cy ? by : cy);\n\n // z-order range for the current triangle bbox;\n var minZ = zOrder(x0, y0, minX, minY, invSize),\n maxZ = zOrder(x1, y1, minX, minY, invSize);\n\n var p = ear.prevZ,\n n = ear.nextZ;\n\n // look for points inside the triangle in both directions\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n // look for remaining points in decreasing z-order\n while (p && p.z >= minZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c &&\n pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n\n // look for remaining points in increasing z-order\n while (n && n.z <= maxZ) {\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c &&\n pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n\n return true;\n}\n\n// go through all polygon nodes and cure small local self-intersections\nfunction cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev,\n b = p.next.next;\n\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n\n triangles.push(a.i / dim | 0);\n triangles.push(p.i / dim | 0);\n triangles.push(b.i / dim | 0);\n\n // remove two nodes involved\n removeNode(p);\n removeNode(p.next);\n\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n\n return filterPoints(p);\n}\n\n// try splitting polygon into two and triangulate them independently\nfunction splitEarcut(start, triangles, dim, minX, minY, invSize) {\n // look for a valid diagonal that divides the polygon into two\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n // split the polygon in two by the diagonal\n var c = splitPolygon(a, b);\n\n // filter colinear points around the cuts\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n\n // run earcut on each half\n earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n}\n\n// link every hole into the outer loop, producing a single-ring polygon without holes\nfunction eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [],\n i, len, start, end, list;\n\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n\n queue.sort(compareX);\n\n // process holes from left to right\n for (i = 0; i < queue.length; i++) {\n outerNode = eliminateHole(queue[i], outerNode);\n }\n\n return outerNode;\n}\n\nfunction compareX(a, b) {\n return a.x - b.x;\n}\n\n// find a bridge between vertices that connects hole with an outer ring and and link it\nfunction eliminateHole(hole, outerNode) {\n var bridge = findHoleBridge(hole, outerNode);\n if (!bridge) {\n return outerNode;\n }\n\n var bridgeReverse = splitPolygon(bridge, hole);\n\n // filter collinear points around the cuts\n filterPoints(bridgeReverse, bridgeReverse.next);\n return filterPoints(bridge, bridge.next);\n}\n\n// David Eberly's algorithm for finding a bridge between hole and outer polygon\nfunction findHoleBridge(hole, outerNode) {\n var p = outerNode,\n hx = hole.x,\n hy = hole.y,\n qx = -Infinity,\n m;\n\n // find a segment intersected by a ray from the hole's leftmost point to the left;\n // segment's endpoint with lesser x will be potential connection point\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n m = p.x < p.next.x ? p : p.next;\n if (x === hx) return m; // hole touches outer segment; pick leftmost endpoint\n }\n }\n p = p.next;\n } while (p !== outerNode);\n\n if (!m) return null;\n\n // look for points inside the triangle of hole point, segment intersection and endpoint;\n // if there are no points found, we have a valid connection;\n // otherwise choose the point of the minimum angle with the ray as connection point\n\n var stop = m,\n mx = m.x,\n my = m.y,\n tanMin = Infinity,\n tan;\n\n p = m;\n\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x &&\n pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n\n tan = Math.abs(hy - p.y) / (hx - p.x); // tangential\n\n if (locallyInside(p, hole) &&\n (tan < tanMin || (tan === tanMin && (p.x > m.x || (p.x === m.x && sectorContainsSector(m, p)))))) {\n m = p;\n tanMin = tan;\n }\n }\n\n p = p.next;\n } while (p !== stop);\n\n return m;\n}\n\n// whether sector in vertex m contains sector in vertex p in the same coordinates\nfunction sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n}\n\n// interlink polygon nodes in z-order\nfunction indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n\n p.prevZ.nextZ = null;\n p.prevZ = null;\n\n sortLinked(p);\n}\n\n// Simon Tatham's linked list merge sort algorithm\n// http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.html\nfunction sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize,\n inSize = 1;\n\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n\n while (pSize > 0 || (qSize > 0 && q)) {\n\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n\n if (tail) tail.nextZ = e;\n else list = e;\n\n e.prevZ = tail;\n tail = e;\n }\n\n p = q;\n }\n\n tail.nextZ = null;\n inSize *= 2;\n\n } while (numMerges > 1);\n\n return list;\n}\n\n// z-order of a point given coords and inverse of the longer side of data bbox\nfunction zOrder(x, y, minX, minY, invSize) {\n // coords are transformed into non-negative 15-bit integer range\n x = (x - minX) * invSize | 0;\n y = (y - minY) * invSize | 0;\n\n x = (x | (x << 8)) & 0x00FF00FF;\n x = (x | (x << 4)) & 0x0F0F0F0F;\n x = (x | (x << 2)) & 0x33333333;\n x = (x | (x << 1)) & 0x55555555;\n\n y = (y | (y << 8)) & 0x00FF00FF;\n y = (y | (y << 4)) & 0x0F0F0F0F;\n y = (y | (y << 2)) & 0x33333333;\n y = (y | (y << 1)) & 0x55555555;\n\n return x | (y << 1);\n}\n\n// find the leftmost node of a polygon ring\nfunction getLeftmost(start) {\n var p = start,\n leftmost = start;\n do {\n if (p.x < leftmost.x || (p.x === leftmost.x && p.y < leftmost.y)) leftmost = p;\n p = p.next;\n } while (p !== start);\n\n return leftmost;\n}\n\n// check if a point lies within a convex triangle\nfunction pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) >= (ax - px) * (cy - py) &&\n (ax - px) * (by - py) >= (bx - px) * (ay - py) &&\n (bx - px) * (cy - py) >= (cx - px) * (by - py);\n}\n\n// check if a diagonal between two polygon nodes is valid (lies in polygon interior)\nfunction isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0); // special zero-length case\n}\n\n// signed area of a triangle\nfunction area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n}\n\n// check if two points are equal\nfunction equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n}\n\n// check if two segments intersect\nfunction intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n\n if (o1 !== o2 && o3 !== o4) return true; // general case\n\n if (o1 === 0 && onSegment(p1, p2, q1)) return true; // p1, q1 and p2 are collinear and p2 lies on p1q1\n if (o2 === 0 && onSegment(p1, q2, q1)) return true; // p1, q1 and q2 are collinear and q2 lies on p1q1\n if (o3 === 0 && onSegment(p2, p1, q2)) return true; // p2, q2 and p1 are collinear and p1 lies on p2q2\n if (o4 === 0 && onSegment(p2, q1, q2)) return true; // p2, q2 and q1 are collinear and q1 lies on p2q2\n\n return false;\n}\n\n// for collinear points p, q, r, check if point q lies on segment pr\nfunction onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n}\n\nfunction sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n}\n\n// check if a polygon diagonal intersects any polygon segments\nfunction intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i &&\n intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n\n return false;\n}\n\n// check if a polygon diagonal is locally inside the polygon\nfunction locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ?\n area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 :\n area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n}\n\n// check if the middle point of a polygon diagonal is inside the polygon\nfunction middleInside(a, b) {\n var p = a,\n inside = false,\n px = (a.x + b.x) / 2,\n py = (a.y + b.y) / 2;\n do {\n if (((p.y > py) !== (p.next.y > py)) && p.next.y !== p.y &&\n (px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x))\n inside = !inside;\n p = p.next;\n } while (p !== a);\n\n return inside;\n}\n\n// link two polygon vertices with a bridge; if the vertices belong to the same ring, it splits polygon into two;\n// if one belongs to the outer ring and another to a hole, it merges it into a single ring\nfunction splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y),\n b2 = new Node(b.i, b.x, b.y),\n an = a.next,\n bp = b.prev;\n\n a.next = b;\n b.prev = a;\n\n a2.next = an;\n an.prev = a2;\n\n b2.next = a2;\n a2.prev = b2;\n\n bp.next = b2;\n b2.prev = bp;\n\n return b2;\n}\n\n// create a node and optionally link it with previous one (in a circular doubly linked list)\nfunction insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n\n if (!last) {\n p.prev = p;\n p.next = p;\n\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n}\n\nfunction removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n}\n\nfunction Node(i, x, y) {\n // vertex index in coordinates array\n this.i = i;\n\n // vertex coordinates\n this.x = x;\n this.y = y;\n\n // previous and next vertex nodes in a polygon ring\n this.prev = null;\n this.next = null;\n\n // z-order curve value\n this.z = 0;\n\n // previous and next nodes in z-order\n this.prevZ = null;\n this.nextZ = null;\n\n // indicates whether this is a steiner point\n this.steiner = false;\n}\n\n// return a percentage difference between the polygon area and its triangulation area;\n// used to verify correctness of triangulation\nearcut.deviation = function (data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) -\n (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n\n return polygonArea === 0 && trianglesArea === 0 ? 0 :\n Math.abs((trianglesArea - polygonArea) / polygonArea);\n};\n\nfunction signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n}\n\n// turn a polygon in a multi-dimensional array form (e.g. as in GeoJSON) into a form Earcut accepts\nearcut.flatten = function (data) {\n var dim = data[0][0].length,\n result = {vertices: [], holes: [], dimensions: dim},\n holeIndex = 0;\n\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n};\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import { useState, useEffect, useMemo, memo } from \"react\";\nimport { motion, animate, useMotionValue, useTransform } from \"motion/react\";\nimport { interpolate } from \"flubber\";\nimport { usePrefersReducedMotion } from \"../../../hooks\";\nimport { useTheme } from \"../../../providers\";\n\n// SVG path constants\nconst SHARP_PATH =\n \"m23 12-8.036-3.23L12.006 0 9.047 8.77 1 12l8.047 3.23L12.006 24l2.958-8.77z\";\nconst ROUND_PATH =\n \"M17.425 13.854c1.665-.675 1.665-3.033 0-3.708l-2.73-1.106-.793-2.37c-.609-1.82-3.184-1.82-3.793 0l-.793 2.37-2.734 1.106c-1.666.674-1.666 3.034 0 3.708l2.734 1.106.793 2.37c.609 1.82 3.184 1.82 3.793 0l.793-2.37z\";\n\n// Inline style constants\nconst SVG_STYLE = { width: \"100%\", height: \"100%\", display: \"block\" } as const;\n\n// Stable gradient ID — safe to reuse across instances because the gradient is\n// defined inside each individual <svg>, scoping it to that element's coordinate space.\nconst GRADIENT_ID = \"ai-mark-gradient\";\n\n/**\n * Props for the SVGMorph component\n * @property {string[]} paths - Array of SVG path data strings to morph between\n * @property {number} [delay] - Delay in seconds before starting the animation\n * @property {boolean} [inheritColor] - Whether to inherit color from parent instead of using gradient\n */\ntype SVGMorphProps = {\n paths: string[];\n delay?: number;\n inheritColor?: boolean;\n};\n\n/**\n * SVGMorph component that animates morphing between multiple SVG paths.\n *\n * Features:\n * - Smooth morphing animation between paths using flubber interpolation\n * - Configurable animation delay\n * - Loops through all provided paths\n * - Supports gradient or inherited color fill\n *\n * @example\n * <SVGMorph\n * paths={[sharpPath, roundPath, sharpPath]}\n * delay={0.5}\n * gradientId=\"unique-gradient\"\n * />\n */\nfunction SVGMorph({ delay, paths, inheritColor = false }: SVGMorphProps) {\n const [pathIndex, setPathIndex] = useState(0);\n const progress = useMotionValue(0);\n\n const arrayOfIndex = useMemo(() => paths.map((_, i) => i), [paths]);\n const path = useTransform(progress, arrayOfIndex, paths, {\n mixer: (a, b) => interpolate(a, b, { maxSegmentLength: 1 }),\n });\n\n useEffect(() => {\n const animation = animate(progress, pathIndex, {\n duration: 0.8,\n ease: [0.5, 0, 0.65, 1],\n delay: delay,\n onComplete: () => {\n if (pathIndex === paths.length - 1) {\n progress.set(0);\n setPathIndex(1);\n } else {\n setPathIndex(pathIndex + 1);\n }\n },\n });\n return () => {\n animation.stop();\n };\n }, [pathIndex, paths.length, progress, delay]);\n\n return (\n <motion.path\n fill={inheritColor ? \"currentColor\" : `url(#${GRADIENT_ID})`}\n d={path}\n />\n );\n}\n\n/**\n * Props for the AiMarkIconAnimatedSegment component\n * @property {boolean} [animate] - Whether to animate; triggers morph (and spin if enabled). When false, renders a static plain SVG.\n * @property {number} [delay] - Delay in seconds before starting the animation\n * @property {string} [className] - CSS class name for styling\n * @property {boolean} [inheritColor] - Whether to inherit color from parent instead of using gradient\n * @property {boolean} [spin] - Whether to enable the rotation animation in addition to the morph pulse\n */\ninterface AiMarkIconAnimatedSegmentProps {\n animate?: boolean;\n delay?: number;\n className?: string;\n inheritColor?: boolean;\n spin?: boolean;\n}\n\n/**\n * AiMarkIconAnimatedSegment renders a single animated star icon with rotation and morph effects.\n *\n * Features:\n * - Animates rotation on hover when spin is enabled\n * - Morphs between sharp and round star shapes\n * - Supports gradient or inherited color\n * - Unique gradient IDs to prevent conflicts\n * - Optional spin to add rotation on top of the morph pulse\n *\n * @example\n * <AiMarkIconAnimatedSegment animate={true} delay={0.15} />\n */\nconst AiMarkIconAnimatedSegment = memo(\n ({\n animate = false,\n delay,\n className,\n inheritColor = false,\n spin = false,\n }: AiMarkIconAnimatedSegmentProps) => {\n const fill = inheritColor ? \"currentColor\" : `url(#${GRADIENT_ID})`;\n const { mode } = useTheme();\n\n const gradientDef = !inheritColor && (\n <defs>\n <linearGradient\n id={GRADIENT_ID}\n x1=\"0.4962\"\n y1=\"0.2483\"\n x2=\"-0.0543\"\n y2=\"0.4319\"\n gradientUnits=\"objectBoundingBox\"\n >\n <stop\n stopColor={mode === \"dark\" ? \"#77C5EA\" : \"#026EE4\"}\n style={{\n stopColor: mode === \"dark\" ? \"#77C5EA\" : \"#026EE4\",\n stopOpacity: 1,\n }}\n />\n <stop\n offset=\"1\"\n stopColor={mode === \"dark\" ? \"#D0D8E1\" : \"#27AEEE\"}\n style={{\n stopColor: mode === \"dark\" ? \"#D0D8E1\" : \"#27AEEE\",\n stopOpacity: 1,\n }}\n />\n </linearGradient>\n </defs>\n );\n\n if (!animate) {\n return (\n <svg className={className} style={SVG_STYLE} viewBox=\"0 0 24 24\">\n {gradientDef}\n <path fill={fill} d={SHARP_PATH} />\n </svg>\n );\n }\n\n return (\n <motion.svg\n className={className}\n style={SVG_STYLE}\n viewBox=\"0 0 24 24\"\n animate={spin ? { rotate: 180 } : {}}\n transition={{\n duration: 2,\n type: \"spring\",\n repeat: 0,\n repeatType: \"loop\",\n repeatDelay: 1.5,\n delay,\n }}\n >\n {gradientDef}\n <SVGMorph\n paths={[SHARP_PATH, ROUND_PATH, SHARP_PATH]}\n delay={delay}\n inheritColor={inheritColor}\n />\n </motion.svg>\n );\n },\n);\n\nAiMarkIconAnimatedSegment.displayName = \"AiMarkIconAnimatedSegment\";\n\n/**\n * Props for the AiMarkIconAnimated component\n * @property {boolean} [animate] - Whether to trigger animations (on hover or focus)\n * @property {number} [size] - Size of the icon in pixels\n * @property {boolean} [inheritColor] - Whether to inherit color from parent instead of using gradient\n * @property {boolean} [spin] - Whether to enable the rotation animation in addition to the morph pulse\n */\ninterface AiMarkIconAnimatedProps {\n animate?: boolean;\n size?: number;\n inheritColor?: boolean;\n spin?: boolean;\n}\n\n/**\n * AiMarkIconAnimated renders two animated Atlas AI star icons with rotation and morph effects.\n *\n * Features:\n * - Displays two stars in different sizes positioned in a composition\n * - Animates morphing on hover\n * - Supports rotation animation via spin prop\n * - Supports gradient or inherited color\n * - Automatically respects reduced motion preferences\n * - Configurable size\n * - Unique gradient IDs prevent conflicts when multiple icons render\n *\n * @example\n * <AiMarkIconAnimated animate={isActive} size={24} />\n */\nexport const AiMarkIconAnimated = ({\n animate = false,\n size = 16,\n inheritColor = false,\n spin = false,\n}: AiMarkIconAnimatedProps) => {\n const { prefersReducedMotion } = usePrefersReducedMotion();\n const shouldAnimate = animate && !prefersReducedMotion;\n const largeSvgSize = size * 0.75;\n const smallSvgSize = (size * 6) / 16;\n\n const containerStyle = useMemo(\n () => ({ position: \"relative\" as const, width: size, height: size }),\n [size],\n );\n const largeIconStyle = useMemo(\n () => ({\n position: \"absolute\" as const,\n bottom: size / 16,\n left: size / 16,\n width: largeSvgSize,\n height: largeSvgSize,\n }),\n [largeSvgSize, size],\n );\n const smallIconStyle = useMemo(\n () => ({\n position: \"absolute\" as const,\n top: size / 16,\n right: size / 16,\n width: smallSvgSize,\n height: smallSvgSize,\n }),\n [smallSvgSize, size],\n );\n\n return (\n <div style={containerStyle} data-anv=\"ai-mark-icon-animated\">\n <div style={largeIconStyle}>\n <AiMarkIconAnimatedSegment\n animate={shouldAnimate}\n delay={0.15}\n inheritColor={inheritColor}\n spin={spin}\n />\n </div>\n <div style={smallIconStyle}>\n <AiMarkIconAnimatedSegment\n animate={shouldAnimate}\n inheritColor={inheritColor}\n spin={spin}\n />\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nconst SvgAiChat = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M20.488 7.014A1.51 1.51 0 0 1 22 8.513v8.991a1.51 1.51 0 0 1-1.512 1.499H9.9L6.875 22v-9.975l.757-2.763 6.404-2.248zm-9.831 7.493a.756.756 0 0 0-.757.75c0 .412.34.749.757.749h7.562a.755.755 0 0 0 .756-.75.755.755 0 0 0-.756-.749zm0-2.248a.756.756 0 0 0-.757.75c0 .412.34.749.757.749h7.562a.755.755 0 0 0 .756-.75.755.755 0 0 0-.756-.749zm0-2.248a.756.756 0 0 0-.757.75c0 .412.34.749.757.749h7.562a.755.755 0 0 0 .756-.75.755.755 0 0 0-.756-.749z\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"m6.56 5.49 3.811 1.36L6.56 8.213l-1.373 3.776L3.81 8.213 0 6.85l3.81-1.36 1.376-3.778zm3.639-3.607 1.9.685-1.9.687-.692 1.883-.692-1.883-1.901-.687 1.9-.685L9.508 0z\" }));\nexport default SvgAiChat;\n","import * as React from \"react\";\nconst SvgAiEdit = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.655 10.414 7.218 21.844A.5.5 0 0 1 6.85 22H3.666a.52.52 0 0 1-.524-.523V18.29q0-.22.157-.376l11.428-11.43zM6.814 5.756l3.96 1.427-3.96 1.43-1.427 3.958L3.96 8.612 0 7.183l3.959-1.427 1.428-3.96zM18.503 3.14a1.05 1.05 0 0 1 .74.307l2.45 2.45a1.05 1.05 0 0 1 .227 1.14q-.08.19-.227.338l-1.916 1.917-3.928-3.929 1.916-1.916a1.05 1.05 0 0 1 .738-.307m-7.908-1.165 1.975.718-1.975.72-.718 1.975-.72-1.975-1.975-.72 1.975-.718L9.877 0z\" }));\nexport default SvgAiEdit;\n","import * as React from \"react\";\nconst SvgAiForm = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M22 6c1.1 0 2 .9 2 2v14c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2v-9.17c0-.53.21-1.04.59-1.41l4.83-4.83c.37-.38.88-.59 1.41-.59zM11 18c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1h8c.55 0 1-.45 1-1s-.45-1-1-1zm3-4c-.55 0-1 .45-1 1s.45 1 1 1h5c.55 0 1-.45 1-1s-.45-1-1-1z\", clipRule: \"evenodd\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"m6.505 5.495 3.781 1.363-3.78 1.363L5.142 12 3.78 8.22 0 6.859l3.78-1.363 1.363-3.78zm3.61-3.608L12 2.572l-1.885.686-.687 1.885-.686-1.885-1.885-.686 1.885-.685L9.428 0z\" }));\nexport default SvgAiForm;\n","import * as React from \"react\";\nconst SvgAiMic = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M21.513 13.737c.595 0 1.071.554.974 1.17a7.3 7.3 0 0 1-1.958 3.959 6.7 6.7 0 0 1-3.805 1.973v2.134c0 .565-.439 1.027-.975 1.027s-.974-.462-.974-1.027V20.84c-2.945-.441-5.287-2.854-5.765-5.933-.087-.615.381-1.169.976-1.169.232.002.456.09.631.25s.29.38.324.622c.4 2.412 2.4 4.26 4.808 4.26s4.408-1.848 4.808-4.26c.078-.503.479-.872.956-.872\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M15.749 4.5c1.619 0 2.925 1.375 2.925 3.08v6.157c0 1.704-1.306 3.08-2.925 3.08s-2.925-1.376-2.926-3.08V7.58c0-1.703 1.307-3.079 2.926-3.079m-7.743.994 3.78 1.362-3.78 1.364L6.643 12 5.28 8.22 1.5 6.858l3.78-1.362 1.363-3.781zm3.609-3.61 1.885.686-1.885.687-.685 1.885-.688-1.885-1.885-.687 1.885-.686L10.93 0z\" }));\nexport default SvgAiMic;\n","import * as React from \"react\";\nconst SvgAiSearch = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M11.757 7.838a6.3 6.3 0 0 1 2.828-.288c2.71.329 4.955 2.476 5.41 5.165a6.28 6.28 0 0 1-1.431 5.165l.27.26h.765l4.104 4.121a1.02 1.02 0 0 1 0 1.442 1.024 1.024 0 0 1-1.443 0l-4.112-4.11v-.765l-.262-.271a6.29 6.29 0 0 1-5.168 1.43c-2.69-.454-4.84-2.698-5.168-5.406a6.29 6.29 0 0 1 4.207-6.743m2.034 1.599a4.35 4.35 0 0 0-4.355 4.352 4.35 4.35 0 0 0 4.355 4.352 4.35 4.35 0 0 0 4.357-4.352 4.35 4.35 0 0 0-4.357-4.352\", clipRule: \"evenodd\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"m6.505 5.495 3.781 1.362-3.78 1.364L5.142 12 3.779 8.22 0 6.858l3.78-1.362 1.363-3.781zm3.61-3.61L12 2.571l-1.885.687-.686 1.885-.687-1.885-1.885-.687 1.885-.686L9.43 0z\" }));\nexport default SvgAiSearch;\n","import type { IconProps } from \"../../Icon\";\n\nimport AiChatIcon from \"../../../../public/assets/icons/st/ai_chat.svg\";\nimport AiEditIcon from \"../../../../public/assets/icons/st/ai_edit.svg\";\nimport AiFormIcon from \"../../../../public/assets/icons/st/ai_form.svg\";\nimport AiMicIcon from \"../../../../public/assets/icons/st/ai_mic.svg\";\nimport AiSearchIcon from \"../../../../public/assets/icons/st/ai_search.svg\";\n\n/**\n * AI icon names for `Button` `aiMark`. `\"mark\"` (or boolean `true`) uses the animated AI mark;\n * other values use static AI icons.\n */\nexport type AiIconName = \"chat\" | \"edit\" | \"form\" | \"mark\" | \"mic\" | \"search\";\n\nexport const AI_ICON_MAP: Record<\n Exclude<AiIconName, \"mark\">,\n IconProps[\"svg\"]\n> = {\n chat: AiChatIcon,\n edit: AiEditIcon,\n form: AiFormIcon,\n mic: AiMicIcon,\n search: AiSearchIcon,\n};\n\nexport type ButtonAiMarkSize = \"xsmall\" | \"small\" | \"medium\" | \"large\";\n\n/**\n * Icon-only AI icon container size (px). Medium/large match custom icon-only parity.\n */\nexport const ICON_ONLY_AI_SIZE_PX: Record<ButtonAiMarkSize, number> = {\n xsmall: 12,\n small: 14,\n medium: 24,\n large: 24,\n};\n\nexport function iconHasLeadingSlot(\n icon:\n | IconProps[\"svg\"]\n | { before: IconProps[\"svg\"] }\n | { after: IconProps[\"svg\"] }\n | undefined,\n): boolean {\n if (!icon) {\n return false;\n }\n if (typeof icon !== \"object\") {\n return true;\n }\n return \"before\" in icon;\n}\n\nexport function aiMarkShowsAnimatedMark(\n aiMark?: boolean | AiIconName,\n): boolean {\n return aiMark === true || aiMark === \"mark\";\n}\n","import { ButtonAppearance, Size } from \"../../types\";\nimport {\n ComponentPropsWithoutRef,\n Ref,\n forwardRef,\n useCallback,\n useMemo,\n useState,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId, LayoutUtilProps } from \"../../types\";\nimport { Icon, IconProps } from \"../Icon\";\nimport { childrenToString } from \"../../internal/functions\";\nimport Spinner from \"../Spinner\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { warnOnce } from \"../../internal/functions/warnOnce\";\nimport { AiMarkIconAnimated } from \"../AiMark/internal/AiMarkIconAnimated\";\nimport {\n type AiIconName,\n AI_ICON_MAP,\n ICON_ONLY_AI_SIZE_PX,\n aiMarkShowsAnimatedMark,\n iconHasLeadingSlot,\n} from \"./internal\";\n\nimport cx from \"classnames\";\nimport styles from \"./Button.module.scss\";\n\nexport type { AiIconName };\n\n/**\n * Props for the Button component\n * @extends Omit<ComponentPropsWithoutRef<\"button\">, \"children\">\n * @extends LayoutUtilProps\n * @extends DataTrackingId\n */\nexport type ButtonProps = Omit<ComponentPropsWithoutRef<\"button\">, \"children\"> &\n LayoutUtilProps &\n DataTrackingId & {\n /**\n * When `true` or an icon name, shows an AI indicator. With button text, any leading\n * `icon` (plain Svg or `icon.before`) is not shown—the AI icon is used instead.\n * On an icon-only button, `icon` is not shown—the AI icon is used instead.\n * Icon-only usage must include an accessible name (for example `aria-label`).\n * In development, a console warning is logged when `icon` is overridden.\n */\n aiMark?: boolean | AiIconName;\n\n /**\n * The visual variant of the button.\n * @default secondary\n */\n appearance?: ButtonAppearance;\n\n /**\n * The size of the button.\n * @default medium\n */\n size?: Extract<Size, \"xsmall\" | \"small\" | \"medium\" | \"large\">;\n\n /**\n * The loading state of the button.\n * If true, it will show infinite state of the loading.\n * @default false\n */\n loading?: boolean;\n } & (\n | {\n children?: ComponentPropsWithoutRef<\"button\">[\"children\"];\n /**\n * The icons of the button.\n */\n icon?:\n | IconProps[\"svg\"]\n | { after: IconProps[\"svg\"] }\n | { before: IconProps[\"svg\"] };\n }\n | {\n children?: never;\n /**\n * The icon of the icon only button.\n */\n icon?: IconProps[\"svg\"];\n }\n );\n\n/**\n * Button component for triggering actions and user interactions.\n *\n * Features:\n * - Multiple visual appearances (primary, secondary, ghost, danger variants)\n * - Four size options (xsmall, small, medium, large)\n * - Loading state with spinner animation\n * - Icon support (before, after, or icon-only)\n * - Optional AI mark / named AI icons via `aiMark`\n * - Full accessibility support with ARIA attributes\n * - Supports layout utilities for positioning and spacing\n * - Automatic disabled state when loading\n * - Flexible content with text and/or icons\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Button appearance=\"primary\" size=\"medium\" onClick={() => console.log('clicked')}>\n * Click Me\n * </Button>\n */\nexport const Button = forwardRef(\n (props: ButtonProps, ref: Ref<HTMLButtonElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n\n const {\n aiMark,\n children,\n className,\n appearance = \"secondary\",\n size = \"medium\",\n icon,\n loading = false,\n disabled,\n style,\n type = \"button\",\n onMouseEnter,\n onMouseLeave,\n onFocus,\n onBlur,\n ...rest\n } = componentProps;\n\n const aiOn = !!aiMark;\n const isIconOnly = !children;\n\n if (aiOn && icon) {\n if (isIconOnly) {\n warnOnce(\n \"[Anvil2 Button] The `icon` prop is ignored when `aiMark` is set on an icon-only button. Only the AI icon is rendered.\",\n );\n } else if (iconHasLeadingSlot(icon)) {\n warnOnce(\n \"[Anvil2 Button] The leading `icon` (plain Svg or `icon.before`) is ignored when `aiMark` is set with button text. Use `icon={{ after: Svg }}` for a trailing icon, or omit `icon`.\",\n );\n }\n }\n\n const data = {\n children: childrenToString(props.children),\n appearance,\n icon,\n size,\n type,\n aiMark,\n };\n\n const trackingId = useTrackingId({\n name: \"Button\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const [isHovered, setIsHovered] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const isAnimated = isHovered || isFocused;\n\n const inheritColorForMark =\n appearance !== \"secondary\" && appearance !== \"ghost\";\n\n const renderStandardLeading = useCallback(() => {\n if (typeof icon === \"object\" && icon !== null && \"before\" in icon) {\n return (\n <Icon\n className={styles[\"icon\"]}\n inherit\n aria-hidden\n svg={icon.before}\n />\n );\n }\n if (icon && typeof icon !== \"object\") {\n return (\n <Icon\n className={styles[\"icon\"]}\n inherit\n aria-hidden\n svg={icon}\n size={!children && !size.includes(\"small\") ? \"large\" : \"medium\"}\n />\n );\n }\n return null;\n }, [icon, children, size]);\n\n const renderAiLeading = useCallback(() => {\n if (aiMarkShowsAnimatedMark(aiMark)) {\n return (\n <AiMarkIconAnimated\n animate={isAnimated}\n inheritColor={inheritColorForMark}\n size={isIconOnly ? ICON_ONLY_AI_SIZE_PX[size] : undefined}\n spin\n />\n );\n }\n const SvgIcon = AI_ICON_MAP[aiMark as Exclude<AiIconName, \"mark\">];\n return (\n <Icon\n className={styles[\"icon\"]}\n inherit\n aria-hidden\n data-anv=\"ai-mark-icon\"\n svg={SvgIcon}\n size={isIconOnly && !size.includes(\"small\") ? \"large\" : \"medium\"}\n />\n );\n }, [aiMark, isAnimated, inheritColorForMark, isIconOnly, size]);\n\n const leadingContent = useMemo(() => {\n if (loading) {\n return (\n <Spinner inherit size=\"small\" className={styles[\"loading-spinner\"]} />\n );\n }\n if (aiOn) {\n return renderAiLeading();\n }\n return renderStandardLeading();\n }, [aiOn, loading, renderAiLeading, renderStandardLeading]);\n\n const trailingAfter =\n !isIconOnly && typeof icon === \"object\" && \"after\" in icon ? (\n <Icon className={styles[\"icon\"]} inherit aria-hidden svg={icon.after} />\n ) : null;\n\n const buttonClassNames = cx(className, styles[\"button\"], {\n [styles[\"appearance-primary\"]]: appearance === \"primary\",\n [styles[\"appearance-secondary\"]]: appearance === \"secondary\",\n [styles[\"appearance-ghost\"]]: appearance === \"ghost\",\n [styles[\"danger-secondary\"]]: appearance === \"danger-secondary\",\n [styles[\"danger-primary\"]]: appearance === \"danger\",\n [styles[\"size-xsmall\"]]: size === \"xsmall\",\n [styles[\"size-small\"]]: size === \"small\",\n [styles[\"size-medium\"]]: size === \"medium\",\n [styles[\"size-large\"]]: size === \"large\",\n [styles[\"type-icon\"]]: isIconOnly,\n [styles[\"loading\"]]: loading,\n });\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const handleMouseEnter = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n setIsHovered(true);\n onMouseEnter?.(e);\n },\n [onMouseEnter],\n );\n\n const handleMouseLeave = useCallback(\n (e: React.MouseEvent<HTMLButtonElement>) => {\n setIsHovered(false);\n onMouseLeave?.(e);\n },\n [onMouseLeave],\n );\n\n const handleFocus = useCallback(\n (e: React.FocusEvent<HTMLButtonElement>) => {\n setIsFocused(true);\n onFocus?.(e);\n },\n [onFocus],\n );\n\n const handleBlur = useCallback(\n (e: React.FocusEvent<HTMLButtonElement>) => {\n setIsFocused(false);\n onBlur?.(e);\n },\n [onBlur],\n );\n\n return (\n <button\n data-tracking-id={trackingId}\n className={buttonClassNames}\n type={type}\n disabled={disabled || loading}\n aria-busy={loading ? true : undefined}\n data-anv=\"button\"\n style={styleCombined}\n ref={ref}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...rest}\n >\n {leadingContent}\n {children}\n {trailingAfter}\n </button>\n );\n },\n);\n\nButton.displayName = \"Button\";\n"],"names":["interpolate","require$$0","a2c","require$$1","require$$2","require$$3","require$$4","svgpath","Bezier","Arc","LinearPosition","parse","earcutModule","earcut","animate","AiChatIcon","AiEditIcon","AiFormIcon","AiMicIcon","AiSearchIcon"],"mappings":"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AAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC;AACnrB,EAAE,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC;AAC9tB,EAAE,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC;AACzwB,EAAE,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC;AACpzB,EAAE,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC;AAC/1B,EAAE,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC;AAC14B,EAAE,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC;AACr7B,EAAE,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC;AACh+B,EAAE,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C,CAAC,0CAA0C;AAC1gC,CAAC;;AAED;AACA,IAAI,oBAAoB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;AAEjE;AACA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AACzB,EAAE,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC;;AAEA;AACA;AACA;AACA,SAAS,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;AAC1C;AACA,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC;AACvB,MAAM,GAAG;AACT,MAAM,KAAK;AACX,MAAM,CAAC;AACP,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;AACf,IAAI,OAAO,CAAC;AACZ,EAAE;;AAEF;AACA,EAAE,IAAI,UAAU,KAAK,CAAC,EAAE;AACxB,IAAI,KAAK,GAAG,CAAC;AACb,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7B,MAAM,KAAK,IAAI,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAChF,IAAI;AACJ,IAAI,OAAO,KAAK;AAChB,EAAE,CAAC,MAAM;AACT;AACA;AACA,IAAI,GAAG,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC;AACtB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5B,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtC,IAAI;AACJ,IAAI,OAAO,aAAa,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AAChD,EAAE;AACF;;AAEA,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;AACtB,EAAE,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACrC,EAAE,IAAI,KAAK,GAAG,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACrC,EAAE,IAAI,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK;AAC9C,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5B;;AAEA,SAAS,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE;AACtC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU;;AAE3B;AACA;AACA;;AAEA,EAAE,IAAI,CAAC,KAAK,SAAS,EAAE;AACvB,IAAI,CAAC,GAAG,CAAC;AACT,EAAE;AACF,EAAE,IAAI,CAAC,GAAG,EAAE;;AAEZ,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC;AACX,EAAE,GAAG,GAAG,CAAC;AACT,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1B,IAAI,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACtC,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC;AAChD,EAAE;AACF,EAAE,OAAO,CAAC,GAAG,GAAG;AAChB;;AChSA;AACA;AACA;;;AAIA,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC;;;AAGrB;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC3C,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC;AAC7C,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;;AAE9B;AACA;;AAEA;AACA,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC;AAChC,EAAE,IAAI,GAAG,GAAG,EAAI,EAAE,EAAE,GAAG,GAAG,EAAI,CAAC,CAAC;;AAEhC,EAAE,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9B;;;AAGA;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,GAAG,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;AAElD,EAAE,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE;AACvB,EAAE,IAAI,KAAK,KAAK,EAAE,GAAG,EAAE;AACvB,EAAE,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG;AACxB,EAAE,IAAI,MAAM,GAAG,GAAG,GAAG,GAAG;;AAExB;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,QAAQ,GAAG,CAAC,KAAK,GAAG,KAAK,KAAK,KAAK,GAAG,MAAM,CAAC,IAAI,KAAK,GAAG,MAAM,CAAC;;AAEtE,EAAE,IAAI,QAAQ,GAAG,CAAC,EAAE;AACpB;AACA,IAAI,QAAQ,GAAG,CAAC;AAChB,EAAE;;AAEF,EAAE,QAAQ,MAAM,CAAC,KAAK,GAAG,MAAM,KAAK,KAAK,GAAG,MAAM,CAAC;AACnD,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;;AAEvD,EAAE,IAAI,GAAG,GAAG,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG;AACnC,EAAE,IAAI,GAAG,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG;;AAEnC;AACA;AACA;AACA;AACA;AACA,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAChD,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;AAEhD;AACA;AACA;AACA;AACA,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE;AAC7B,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE;AAC7B,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE;AAC7B,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE;;AAE7B,EAAE,IAAI,MAAM,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC;AAChD,EAAE,IAAI,WAAW,GAAG,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;AAEzD,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;AACnC,IAAI,WAAW,IAAI,GAAG;AACtB,EAAE;AACF,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;AACnC,IAAI,WAAW,IAAI,GAAG;AACtB,EAAE;;AAEF,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;AACxC;;AAEA;AACA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE;AACnD,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;;AAE3C,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3B,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3B,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC;AACzC,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC;;AAEzC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;AACvF;;AAEe,YAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC7D,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACzC,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;;AAEzC;AACA;AACA,EAAE,IAAI,GAAG,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,EAAE,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;;AAElD,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE;AAC9B;AACA,IAAI,OAAO,EAAE;AACb,EAAE;;AAEF,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE;AAC5B;AACA,IAAI,OAAO,EAAE;AACb,EAAE;;;AAGF;AACA;AACA,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACnB,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;;AAEnB,EAAE,IAAI,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC;AAChE,EAAE,IAAI,MAAM,GAAG,CAAC,EAAE;AAClB,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC3B,EAAE;;;AAGF;AACA;AACA,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC;;AAE3E,EAAE,IAAI,MAAM,GAAG,EAAE;AACjB,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AACpB,EAAE,IAAI,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC;;AAEzB;AACA;AACA;AACA,EAAE,IAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1E,EAAE,WAAW,IAAI,QAAQ;;AAEzB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACrC,IAAI,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC1D,IAAI,MAAM,IAAI,WAAW;AACzB,EAAE;;AAEF;AACA;AACA;AACA,EAAE,OAAO,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE;AACrC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC9C,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;;AAE1B;AACA,MAAM,CAAC,IAAI,EAAE;AACb,MAAM,CAAC,IAAI,EAAE;;AAEb;AACA,MAAM,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;AACpC,MAAM,IAAI,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;;AAEpC;AACA,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/B,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC/B,IAAI;;AAEJ,IAAI,OAAO,KAAK;AAChB,EAAE,CAAC,CAAC;AACJ;;AC5LA;AACA;;;AAKe,YAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;AACjF,EAAE,OAAO,IAAIC,KAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE;;AAEA,SAASA,KAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;AACpE,IAAI,IAAI,MAAM,GAAG,CAAC;AAClB,IAAI,IAAI,cAAc,GAAG,EAAE;AAC3B,IAAI,IAAI,MAAM,GAAG,EAAE;AACnB,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC3B,QAAQ,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,QAAQ,IAAI,WAAW,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,MAAM,IAAI,WAAW;AAC7B,QAAQ,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;AACxC,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1B,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB,IAAI,IAAI,CAAC,cAAc,GAAG,cAAc;AACxC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM;AACxB;;AAEAA,KAAG,CAAC,SAAS,GAAG;AAChB,EAAE,WAAW,EAAEA,KAAG;AAClB,EAAE,IAAI,EAAE,WAAW;;AAEnB;AACA,EAAE,CAAC;;AAEH,EAAE,cAAc,EAAE,WAAW;AAC7B,IAAI,OAAO,IAAI,CAAC,MAAM;AACtB,EAAE,CAAC;AACH,EAAE,gBAAgB,EAAE,SAAS,cAAc,EAAE;AAC7C;AACA,IAAI,GAAG,cAAc,GAAG,CAAC,CAAC;AAC1B,MAAM,cAAc,GAAG,CAAC;AACxB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM;AAClC,IAAI;AACJ,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;;AAE1C,IAAI,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjF,MAAM,CAAC,EAAE;AACT,IAAI;AACJ,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AACtC,QAAQ,CAAC,EAAE;AACX,IAAI;;AAEJ,IAAI,IAAI,YAAY,GAAG,CAAC;AACxB,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC1B,QAAQ,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC9C,IAAI;;AAEJ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,cAAc,GAAG,YAAY,CAAC;AACzE,EAAE,CAAC;AACH,EAAE,kBAAkB,EAAE,SAAS,cAAc,EAAE;AAC/C,IAAI,GAAG,cAAc,GAAG,CAAC,CAAC;AAC1B,QAAQ,cAAc,GAAG,CAAC;AAC1B,QAAQ,CAAC,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/C,QAAQ,cAAc,GAAG,IAAI,CAAC,MAAM;AACpC,QAAQ;AACR,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;;AAE9C,QAAQ,MAAM,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACrF,QAAQ,CAAC,EAAE;AACX,QAAQ;AACR,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1C,YAAY,CAAC,EAAE;AACf,QAAQ;;AAER,QAAQ,IAAI,YAAY,GAAG,CAAC;AAC5B,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9B,YAAY,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAClD,QAAQ;;AAER,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,GAAG,YAAY,CAAC;AAC3E,EAAE,CAAC;AACH,EAAE,qBAAqB,EAAE,SAAS,cAAc,CAAC;AACjD,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC;AACzD,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC;AACrD,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7E,EAAE;AACF,CAAC;;ACvFc,uBAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACxC,EAAE,OAAO,IAAIC,gBAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;;AAE3C;;AAEA,SAASA,gBAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACvC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;AACd,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;AACd,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;AACd,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;AACd;;AAEAA,gBAAc,CAAC,SAAS,CAAC,cAAc,GAAG,UAAU;AACpD,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AACxC,CAAC;;AAEDA,gBAAc,CAAC,SAAS,CAAC,gBAAgB,GAAG,SAAS,GAAG,CAAC;AACzD,EAAE,IAAI,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/D,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;;AAEzC,EAAE,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ;AAC9C,EAAE,IAAI,SAAS,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ;AAC9C,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE;AAC3D,CAAC;AACDA,gBAAc,CAAC,SAAS,CAAC,kBAAkB,GAAG,UAAU;AACxD,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AAClE,cAAc,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;AACxD,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE;AACzE,CAAC;AACDA,gBAAc,CAAC,SAAS,CAAC,qBAAqB,GAAG,SAAS,GAAG,CAAC;AAC9D,EAAE,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;AACxC,EAAE,IAAI,OAAO,GAAG,IAAI,CAAC,kBAAkB,EAAE;AACzC,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3E,CAAC;;AC7Bc,0BAAQ,CAAC,SAAS,EAAE;AACnC,EAAE,IAAI,MAAM,GAAG,CAAC;AAChB,EAAE,IAAI,eAAe,GAAG,EAAE;AAC1B,EAAE,IAAI,SAAS,GAAG,EAAE;;AAEpB,EAAE,SAAS,aAAa,CAAC,MAAM,CAAC;AAChC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;AAC5B,IAAI,IAAI,MAAM,GAAGC,OAAK,CAAC,MAAM,CAAC;AAC9B,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,IAAI,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3B,IAAI,IAAI,KAAK;AACb,IAAI,IAAI,SAAS;AACjB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AAC3C;AACA,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAC9B,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAQ,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,MAAM;AACN;AACA,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACnC,QAAQ,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5G,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1F,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtC;AACA,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AAC9D,QAAQ,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5G,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAC1C,MAAM;AACN;AACA,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACnC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjI,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvL,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjE,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtM,QAAQ,CAAC,MAAM;AACf,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtH,QAAQ;AACR,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACtC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjE,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1M,QAAQ,CAAC,MAAM;AACf,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1J,QAAQ;AACR,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,MAAM;AACN;AACA,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACnC,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtG,QAAQ,CAAC,MAAM;AACf,UAAU,KAAK,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,QAAQ;AACR,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEjD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACtC,QAAQ,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACrD,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1I,QAAQ,CAAC,MAAM;AACf,UAAU,KAAK,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChI,QAAQ;AACR,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjE,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnI,QAAQ,CAAC,MAAM;AACf,UAAU,KAAK,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,QAAQ;AACR,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9E,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE1C,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACjE,UAAU,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrJ,QAAQ,CAAC,MAAM;AACf,UAAU,KAAK,GAAG,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,QAAQ;AACR,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,UAAU,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC9E,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEzI,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;AACrC,QAAQ,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE3J,QAAQ,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,cAAc,EAAE;AAChD,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAQ,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,MAAM;AACN,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;;AAElC,IAAI;AACJ,IAAI,OAAO,aAAa;AACxB,EAAE;;AAEF,CAAC,aAAa,CAAC,cAAc,GAAG,UAAU;AAC1C,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC;;AAEH,EAAE,aAAa,CAAC,gBAAgB,GAAG,SAAS,cAAc,CAAC;AAC3D,IAAI,IAAI,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC;AACtD,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC5E,EAAE,CAAC;;AAEH,EAAE,aAAa,CAAC,kBAAkB,GAAG,SAAS,cAAc,CAAC;AAC7D,IAAI,IAAI,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC;AACtD,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,YAAY,CAAC,QAAQ,CAAC;AAC9E,EAAE,CAAC;;AAEH,EAAE,aAAa,CAAC,qBAAqB,GAAG,SAAS,cAAc,CAAC;AAChE,IAAI,IAAI,YAAY,GAAG,eAAe,CAAC,cAAc,CAAC;AACtD,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC;AACjF,EAAE,CAAC;;AAEH,EAAE,IAAI,eAAe,GAAG,SAAS,cAAc,CAAC;AAChD,IAAI,GAAG,cAAc,GAAG,CAAC,CAAC;AAC1B,MAAM,cAAc,GAAG,CAAC;AACxB,IAAI,CAAC,MAAM,GAAG,cAAc,GAAG,MAAM,CAAC;AACtC,MAAM,cAAc,GAAG,MAAM;AAC7B,IAAI;;AAEJ,IAAI,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC;;AAEtC,IAAI,MAAM,eAAe,CAAC,CAAC,CAAC,IAAI,cAAc,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACzE,MAAM,CAAC,EAAE;AACT,IAAI;AACJ,IAAI,CAAC,EAAE;AACP,IAAI,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChE,EAAE,CAAC;;AAEH,EAAE,OAAO,aAAa,CAAC,SAAS,CAAC;AACjC;;ACxLO,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/B,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF;;AAEO,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE;AACtC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AACjE;;AAEO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;AAChC,EAAE,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;AAC9B;;AAEO,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;AAChD,EAAE,IAAI,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEhE,EAAE,OAAO,SAAS,CAAC,EAAE;AACrB,IAAI,IAAI,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,OAAO,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM;AACjD,EAAE,CAAC;AACH;;AAEO,SAAS,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE;AACvC,EAAE,OAAO,SAAS,CAAC,EAAE;AACrB,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9C,EAAE,CAAC;AACH;;AAEO,SAAS,cAAc,CAAC,MAAM,EAAE;AACvC,EAAE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC;AACvD;;AChCO,MAAM,aAAa,GAAG,CAAC;AAC9B;AACA;AACA;AACA,CAAC;;ACED,SAAS,KAAK,CAAC,GAAG,EAAE;AACpB,EAAE,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE;AAC5B;;AAEA,SAAS,KAAK,CAAC,MAAM,EAAE;AACvB,EAAE,OAAO;AACT,KAAK,QAAQ;AACb,KAAK,KAAK,CAAC,GAAG;AACd,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK;AACnB,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AAClB,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AACjC,IAAI,CAAC;AACL,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AACnB;;AAEO,SAAS,YAAY,CAAC,IAAI,EAAE;AACnC,EAAE,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;AACnC;;AAMO,SAAS,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE;AACxD,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;;AAEzB,EAAE,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,gBAAgB,CAAC;AACvE;;AAEA,SAAS,SAAS,CAAC,MAAM,EAAE;AAC3B,EAAE,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE;AACtC,IAAI,IAAI,GAAG,EAAE;;AAEb,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAClD,IAAI,OAAO,KAAK;AAChB,EAAE;;AAEF,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;AACrC,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,CAAC,KAAK,OAAO,KAAK,GAAG,EAAE;AACnD,MAAM;AACN,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE;AACnD,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvB,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,GAAG,EAAE;AAChC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,IAAI,CAAC,MAAM,IAAI,OAAO,KAAK,GAAG,EAAE;AAChC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,KAAK;AAClB,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,GAAG,KAAK;AACvC;;AAEA,SAAS,eAAe,CAAC,MAAM,EAAE,gBAAgB,EAAE;AACnD,EAAK,IAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,GAAG,EAAE;AACb,IACI,GAAG;AACP,IAAI,CAAC;AACL,IAAI,SAAS,GAAG;;AAEhB,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC;AACtC,EAAE;;AAEF,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;AACvB,EAAE,GAAG,GAAG,CAAC,CAAC,cAAc,EAAE;;AAE1B,EAAE,IAAI,gBAAgB,IAAI,cAAc,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,GAAG,CAAC,EAAE;AACpF,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAAC;AACtE,EAAE;;AAEF,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AACtC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;AACnD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,EAAE;;AAEF,EAAE,OAAO;AACT,IAAI,IAAI;AACR,IAAI,UAAU,EAAE;AAChB,GAAG;AACH;;AAEA,SAAS,OAAO,CAAC,CAAC,EAAE;AACpB;AACA,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,EAAE;AAClE,IAAI,IAAI;AACR,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,MAAM,CAAC;AACtF,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AACvC,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;AACjB,EAAE;AACF;AACA,EAAE,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAC7B;;ACnGO,SAAS,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE;AAC3C,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS;AAC/C,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS;;AAE1C,EAAE,IAAI,CAAC,GAAG,CAAC;AACX,IAAI,MAAM,GAAG,CAAC;AACd,IAAI,QAAQ,GAAG,IAAI,GAAG,CAAC;;AAEvB,EAAE,OAAO,IAAI,CAAC,MAAM,GAAG,aAAa,EAAE;AACtC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;AACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;AAE9B,IAAI,IAAI,QAAQ,IAAI,MAAM,GAAG,OAAO,EAAE;AACtC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnG,MAAM,QAAQ,IAAI,IAAI;AACtB,MAAM;AACN,IAAI;;AAEJ,IAAI,MAAM,IAAI,OAAO;AACrB,IAAI,CAAC,EAAE;AACP,EAAE;AACF;;AAEO,SAAS,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,QAAQ,EAAE;AAC1D,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACnB,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;;AAEvD;AACA,IAAI,OAAO,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,EAAE;AAC9C,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC9B,IAAI;AACJ,EAAE;AACF;;AChCe,SAAS,aAAa,CAAC,IAAI,EAAE,gBAAgB,EAAE;AAC9D,EAAE,IAAI,MAAM,EAAE,IAAI,EAAE,UAAU;;AAE9B,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAChC,IAAI,IAAI,SAAS,GAAG,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAC5D,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI;AACzB,IAAI,UAAU,GAAG,SAAS,CAAC,UAAU;AACrC,EAAE,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACnC,IAAI,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC;AACtC,EAAE;;AAEF,EAAE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;;AAExB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;AAC1B,IAAI,MAAM,IAAI,SAAS,CAAC,aAAa,CAAC;AACtC,EAAE;;AAEF;AACA;AACA,EAAE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;AAC5E,IAAI,MAAM,CAAC,GAAG,EAAE;AAChB,EAAE;;AAEF,EAAE,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC;;AAE5B;AACA,EAAE,IAAI,IAAI,GAAG,CAAC,EAAE;AAChB,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,EAAE;;AAEF,EAAE;AACF,IAAI,CAAC,UAAU;AACf,IAAI,gBAAgB;AACpB,IAAI,cAAc,CAAC,gBAAgB,CAAC;AACpC,IAAI,gBAAgB,GAAG;AACvB,IAAI;AACJ,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC;AACpC,EAAE;;AAEF,EAAE,OAAO,MAAM;AACf;;AAEA,SAAS,SAAS,CAAC,IAAI,EAAE;AACzB,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,EAAE;AACpC,IAAI;AACJ,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC1B,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC;AACvB,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B;AACA,EAAE,CAAC,CAAC;AACJ;;ACvDe,eAAQ,CAAC,IAAI,EAAE,EAAE,EAAE;AAClC,EAAE,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM;AACvB,MAAM,GAAG,GAAG,QAAQ;AACpB,MAAM,UAAU;AAChB,MAAM,YAAY;AAClB,MAAM,OAAO;;AAEb,EAAE,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE;AAC/C,IAAI,YAAY,GAAG,CAAC;;AAEpB,IAAI,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7B,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;AACnD,MAAM,YAAY,IAAI,CAAC,GAAG,CAAC;AAC3B,IAAI,CAAC,CAAC;;AAEN,IAAI,IAAI,YAAY,GAAG,GAAG,EAAE;AAC5B,MAAM,GAAG,GAAG,YAAY;AACxB,MAAM,UAAU,GAAG,MAAM;AACzB,IAAI;AACJ,EAAE;;AAEF,EAAE,IAAI,UAAU,EAAE;AAClB,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC;AACxC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC;AAC3C,EAAE;AACF;;ACtBe,oBAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,gBAAgB,GAAG,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;AAC3F,EAAE,IAAI,QAAQ,GAAG,aAAa,CAAC,SAAS,EAAE,gBAAgB,CAAC;AAC3D,IAAI,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACrD,IAAI,YAAY,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;;AAE5D;AACA,EAAE,IAAI,CAAC,MAAM,KAAK,OAAO,SAAS,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,EAAE;AACjF,IAAI,OAAO,YAAY;AACvB,EAAE;;AAEF,EAAE,OAAO,CAAC,IAAI;AACd,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACnD,MAAM,OAAO,SAAS;AACtB,IAAI;AACJ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AACrD,MAAM,OAAO,OAAO;AACpB,IAAI;AACJ,IAAI,OAAO,YAAY,CAAC,CAAC,CAAC;AAC1B,EAAE,CAAC;AACH;;AAEO,SAAS,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;AAC1D,EAAE,IAAI,IAAI;;AAEV,EAAE,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM;;AAExC;AACA,EAAE,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;AAC/C,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;;AAExC,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC;;AAE1B,EAAE,OAAO,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;AACpD;;;;;;;;;;ACpCA,CAAAC,MAAA,CAAA,OAAc,GAAGC,QAAM;AACvB,CAAAD,MAAA,CAAA,OAAA,CAAA,OAAsB,GAAGC,QAAM;;AAE/B,CAAA,SAASA,QAAM,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE;;AAExC,KAAI,GAAG,GAAG,GAAG,IAAI,CAAC;;AAElB,KAAI,IAAI,QAAQ,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM;AACpD,SAAQ,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;AAChE,SAAQ,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC;SACpD,SAAS,GAAG,EAAE;;AAEtB,KAAI,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,OAAO,SAAS;;AAEzE,KAAI,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO;;AAE7C,KAAI,IAAI,QAAQ,EAAE,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC;;AAE/E;KACI,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE;AAChC,SAAQ,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;AAC7B,SAAQ,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;;AAE7B,SAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,GAAG,EAAE;AAClD,aAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACvB,aAAY,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;AAC3B,aAAY,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC;AAClC,aAAY,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC;AAClC,aAAY,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC;AAClC,aAAY,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,GAAG,CAAC;AAClC,SAAA;;AAEA;AACA,SAAQ,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;SAC5C,OAAO,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,CAAC;AACrD,KAAA;;AAEA,KAAI,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;AAEnE,KAAI,OAAO,SAAS;AACpB,CAAA;;AAEA;CACA,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE;KAClD,IAAI,CAAC,EAAE,IAAI;;AAEf,KAAI,IAAI,SAAS,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/D,SAAQ,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAC3F,KAAA,CAAK,MAAM;AACX,SAAQ,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,IAAI,GAAG,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAClG,KAAA;;KAEI,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;SACjC,UAAU,CAAC,IAAI,CAAC;AACxB,SAAQ,IAAI,GAAG,IAAI,CAAC,IAAI;AACxB,KAAA;;AAEA,KAAI,OAAO,IAAI;AACf,CAAA;;AAEA;AACA,CAAA,SAAS,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE;AAClC,KAAI,IAAI,CAAC,KAAK,EAAE,OAAO,KAAK;AAC5B,KAAI,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK;;KAErB,IAAI,CAAC,GAAG,KAAK;AACjB,SAAQ,KAAK;AACb,KAAI,GAAG;SACC,KAAK,GAAG,KAAK;;AAErB,SAAQ,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;aACpE,UAAU,CAAC,CAAC,CAAC;AACzB,aAAY,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI;AAC5B,aAAY,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;aAClB,KAAK,GAAG,IAAI;;AAExB,SAAA,CAAS,MAAM;AACf,aAAY,CAAC,GAAG,CAAC,CAAC,IAAI;AACtB,SAAA;AACA,KAAA,CAAK,QAAQ,KAAK,IAAI,CAAC,KAAK,GAAG;;AAE/B,KAAI,OAAO,GAAG;AACd,CAAA;;AAEA;AACA,CAAA,SAAS,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAClE,IAAI,CAAC,GAAG,EAAE;;AAEd;AACA,KAAI,IAAI,CAAC,IAAI,IAAI,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;;KAE1D,IAAI,IAAI,GAAG,GAAG;SACV,IAAI,EAAE,IAAI;;AAElB;KACI,OAAO,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE;AAClC,SAAQ,IAAI,GAAG,GAAG,CAAC,IAAI;AACvB,SAAQ,IAAI,GAAG,GAAG,CAAC,IAAI;;AAEvB,SAAQ,IAAI,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE;AAC1E;aACY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;aAChC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;aAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;;aAEhC,UAAU,CAAC,GAAG,CAAC;;AAE3B;AACA,aAAY,GAAG,GAAG,IAAI,CAAC,IAAI;AAC3B,aAAY,IAAI,GAAG,IAAI,CAAC,IAAI;;aAEhB;AACZ,SAAA;;SAEQ,GAAG,GAAG,IAAI;;AAElB;AACA,SAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AAC1B;aACY,IAAI,CAAC,IAAI,EAAE;AACvB,iBAAgB,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;AAEvF;AACA,aAAA,CAAa,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACnC,iBAAgB,GAAG,GAAG,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC;AAC/E,iBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;;AAEzE;AACA,aAAA,CAAa,MAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACnC,iBAAgB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AACrE,aAAA;;aAEY;AACZ,SAAA;AACA,KAAA;AACA,CAAA;;AAEA;CACA,SAAS,KAAK,CAAC,GAAG,EAAE;AACpB,KAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI;SACZ,CAAC,GAAG,GAAG;AACf,SAAQ,CAAC,GAAG,GAAG,CAAC,IAAI;;AAEpB,KAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;;AAEzC;AACA,KAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;;AAElE;KACI,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;SACxD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;SACxD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;SACxD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;;AAEhE,KAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;AAClB,KAAI,OAAO,CAAC,KAAK,CAAC,EAAE;SACZ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;aAChD,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,aAAY,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;AACtD,SAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;AAClB,KAAA;;AAEA,KAAI,OAAO,IAAI;AACf,CAAA;;CAEA,SAAS,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/C,KAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI;SACZ,CAAC,GAAG,GAAG;AACf,SAAQ,CAAC,GAAG,GAAG,CAAC,IAAI;;AAEpB,KAAI,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC;;AAEzC,KAAI,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;;AAElE;KACI,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;SACxD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;SACxD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;SACxD,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;;AAEhE;AACA,KAAI,IAAI,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AAClD,SAAQ,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;;AAElD,KAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK;AACrB,SAAQ,CAAC,GAAG,GAAG,CAAC,KAAK;;AAErB;AACA,KAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AACjD,SAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAClF,aAAY,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;AAC3G,SAAQ,CAAC,GAAG,CAAC,CAAC,KAAK;;AAEnB,SAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAClF,aAAY,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;AAC3G,SAAQ,CAAC,GAAG,CAAC,CAAC,KAAK;AACnB,KAAA;;AAEA;KACI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAC7B,SAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAClF,aAAY,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;AAC3G,SAAQ,CAAC,GAAG,CAAC,CAAC,KAAK;AACnB,KAAA;;AAEA;KACI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AAC7B,SAAQ,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;AAClF,aAAY,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK;AAC3G,SAAQ,CAAC,GAAG,CAAC,CAAC,KAAK;AACnB,KAAA;;AAEA,KAAI,OAAO,IAAI;AACf,CAAA;;AAEA;AACA,CAAA,SAAS,sBAAsB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE;KACnD,IAAI,CAAC,GAAG,KAAK;AACjB,KAAI,GAAG;AACP,SAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI;AACtB,aAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI;;AAE3B,SAAQ,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;;aAE5F,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;aAC7B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;aAC7B,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;;AAEzC;aACY,UAAU,CAAC,CAAC,CAAC;AACzB,aAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;;AAE9B,aAAY,CAAC,GAAG,KAAK,GAAG,CAAC;AACzB,SAAA;AACA,SAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;KAClB,CAAK,QAAQ,CAAC,KAAK,KAAK;;AAExB,KAAI,OAAO,YAAY,CAAC,CAAC,CAAC;AAC1B,CAAA;;AAEA;AACA,CAAA,SAAS,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AACjE;KACI,IAAI,CAAC,GAAG,KAAK;AACjB,KAAI,GAAG;AACP,SAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI;AAC3B,SAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;AAC7B,aAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AACtD;iBACgB,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;;AAE1C;iBACgB,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;iBAC3B,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;;AAE3C;AACA,iBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACvE,iBAAgB,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;iBACvD;AAChB,aAAA;AACA,aAAY,CAAC,GAAG,CAAC,CAAC,IAAI;AACtB,SAAA;AACA,SAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;KAClB,CAAK,QAAQ,CAAC,KAAK,KAAK;AACxB,CAAA;;AAEA;CACA,SAAS,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE;KACvD,IAAI,KAAK,GAAG,EAAE;SACV,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI;;AAEhC,KAAI,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AACxD,SAAQ,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG;AACpC,SAAQ,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;AAClE,SAAQ,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;SAC/C,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI;SAC3C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACrC,KAAA;;AAEA,KAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAExB;AACA,KAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;SAC/B,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;AACtD,KAAA;;AAEA,KAAI,OAAO,SAAS;AACpB,CAAA;;AAEA,CAAA,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AACxB,KAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,CAAA;;AAEA;AACA,CAAA,SAAS,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE;KACpC,IAAI,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC;KAC5C,IAAI,CAAC,MAAM,EAAE;AACjB,SAAQ,OAAO,SAAS;AACxB,KAAA;;KAEI,IAAI,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;;AAElD;AACA,KAAI,YAAY,CAAC,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC;KAC/C,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;AAC5C,CAAA;;AAEA;AACA,CAAA,SAAS,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;KACrC,IAAI,CAAC,GAAG,SAAS;AACrB,SAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;AACnB,SAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;SACX,EAAE,GAAG,CAAC,QAAQ;AACtB,SAAQ,CAAC;;AAET;AACA;AACA,KAAI,GAAG;SACC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC7D,aAAY,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAC9D,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;iBACnB,EAAE,GAAG,CAAC;AACtB,iBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;AAC/C,iBAAgB,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;AACvC,aAAA;AACA,SAAA;AACA,SAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;KAClB,CAAK,QAAQ,CAAC,KAAK,SAAS;;AAE5B,KAAI,IAAI,CAAC,CAAC,EAAE,OAAO,IAAI;;AAEvB;AACA;AACA;;KAEI,IAAI,IAAI,GAAG,CAAC;AAChB,SAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AAChB,SAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;SACR,MAAM,GAAG,QAAQ;AACzB,SAAQ,GAAG;;KAEP,CAAC,GAAG,CAAC;;AAET,KAAI,GAAG;AACP,SAAQ,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAChD,iBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;;AAEjG,aAAY,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;AAElD,aAAY,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC;AACtC,kBAAiB,GAAG,GAAG,MAAM,KAAK,GAAG,KAAK,MAAM,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;iBAClG,CAAC,GAAG,CAAC;iBACL,MAAM,GAAG,GAAG;AAC5B,aAAA;AACA,SAAA;;AAEA,SAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;KAClB,CAAK,QAAQ,CAAC,KAAK,IAAI;;AAEvB,KAAI,OAAO,CAAC;AACZ,CAAA;;AAEA;AACA,CAAA,SAAS,oBAAoB,CAAC,CAAC,EAAE,CAAC,EAAE;AACpC,KAAI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACrE,CAAA;;AAEA;CACA,SAAS,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;KAC5C,IAAI,CAAC,GAAG,KAAK;AACjB,KAAI,GAAG;SACC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AAClE,SAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI;AACxB,SAAQ,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI;AACxB,SAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;KAClB,CAAK,QAAQ,CAAC,KAAK,KAAK;;AAExB,KAAI,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI;AACxB,KAAI,CAAC,CAAC,KAAK,GAAG,IAAI;;KAEd,UAAU,CAAC,CAAC,CAAC;AACjB,CAAA;;AAEA;AACA;CACA,SAAS,UAAU,CAAC,IAAI,EAAE;AAC1B,KAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK;SACzC,MAAM,GAAG,CAAC;;AAElB,KAAI,GAAG;SACC,CAAC,GAAG,IAAI;SACR,IAAI,GAAG,IAAI;SACX,IAAI,GAAG,IAAI;SACX,SAAS,GAAG,CAAC;;SAEb,OAAO,CAAC,EAAE;AAClB,aAAY,SAAS,EAAE;aACX,CAAC,GAAG,CAAC;aACL,KAAK,GAAG,CAAC;aACT,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,iBAAgB,KAAK,EAAE;AACvB,iBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK;iBACX,IAAI,CAAC,CAAC,EAAE;AACxB,aAAA;aACY,KAAK,GAAG,MAAM;;aAEd,OAAO,KAAK,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;;iBAElC,IAAI,KAAK,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;qBAClD,CAAC,GAAG,CAAC;AACzB,qBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK;AAC/B,qBAAoB,KAAK,EAAE;AAC3B,iBAAA,CAAiB,MAAM;qBACH,CAAC,GAAG,CAAC;AACzB,qBAAoB,CAAC,GAAG,CAAC,CAAC,KAAK;AAC/B,qBAAoB,KAAK,EAAE;AAC3B,iBAAA;;AAEA,iBAAgB,IAAI,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC;sBACnB,IAAI,GAAG,CAAC;;AAE7B,iBAAgB,CAAC,CAAC,KAAK,GAAG,IAAI;iBACd,IAAI,GAAG,CAAC;AACxB,aAAA;;aAEY,CAAC,GAAG,CAAC;AACjB,SAAA;;AAEA,SAAQ,IAAI,CAAC,KAAK,GAAG,IAAI;SACjB,MAAM,IAAI,CAAC;;KAEnB,CAAK,QAAQ,SAAS,GAAG,CAAC;;AAE1B,KAAI,OAAO,IAAI;AACf,CAAA;;AAEA;CACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C;KACI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC;KAC5B,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,GAAG,CAAC;;KAE5B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU;KAC/B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU;KAC/B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU;KAC/B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU;;KAE/B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU;KAC/B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU;KAC/B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU;KAC/B,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU;;AAEnC,KAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,CAAA;;AAEA;CACA,SAAS,WAAW,CAAC,KAAK,EAAE;KACxB,IAAI,CAAC,GAAG,KAAK;SACT,QAAQ,GAAG,KAAK;AACxB,KAAI,GAAG;AACP,SAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC;AACtF,SAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;KAClB,CAAK,QAAQ,CAAC,KAAK,KAAK;;AAExB,KAAI,OAAO,QAAQ;AACnB,CAAA;;AAEA;AACA,CAAA,SAAS,eAAe,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACzD,KAAI,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACzD,YAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACzD,YAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACzD,CAAA;;AAEA;AACA,CAAA,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;KAC3B,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3E,aAAY,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;cAC/D,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3D,aAAY,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACxF,CAAA;;AAEA;AACA,CAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB,KAAI,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAChE,CAAA;;AAEA;AACA,CAAA,SAAS,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE;AACxB,KAAI,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACzC,CAAA;;AAEA;CACA,SAAS,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AACpC,KAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnC,KAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnC,KAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACnC,KAAI,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;;KAE/B,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI,CAAC;;AAE5C,KAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD,KAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD,KAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;AACvD,KAAI,IAAI,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,IAAI,CAAC;;AAEvD,KAAI,OAAO,KAAK;AAChB,CAAA;;AAEA;AACA,CAAA,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,KAAI,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3H,CAAA;;CAEA,SAAS,IAAI,CAAC,GAAG,EAAE;AACnB,KAAI,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AACzC,CAAA;;AAEA;AACA,CAAA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;KAC7B,IAAI,CAAC,GAAG,CAAC;AACb,KAAI,GAAG;AACP,SAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9E,iBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,IAAI;AACxD,SAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;KAClB,CAAK,QAAQ,CAAC,KAAK,CAAC;;AAEpB,KAAI,OAAO,KAAK;AAChB,CAAA;;AAEA;AACA,CAAA,SAAS,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;AAC7B,KAAI,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;SAC9B,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;SAClD,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC;AACxD,CAAA;;AAEA;AACA,CAAA,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;KACxB,IAAI,CAAC,GAAG,CAAC;SACL,MAAM,GAAG,KAAK;SACd,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;SACpB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5B,KAAI,GAAG;SACC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAChE,kBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACjE,MAAM,GAAG,CAAC,MAAM;AAC5B,SAAQ,CAAC,GAAG,CAAC,CAAC,IAAI;KAClB,CAAK,QAAQ,CAAC,KAAK,CAAC;;AAEpB,KAAI,OAAO,MAAM;AACjB,CAAA;;AAEA;AACA;AACA,CAAA,SAAS,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE;AAC5B,KAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,SAAQ,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpC,SAAQ,EAAE,GAAG,CAAC,CAAC,IAAI;AACnB,SAAQ,EAAE,GAAG,CAAC,CAAC,IAAI;;AAEnB,KAAI,CAAC,CAAC,IAAI,GAAG,CAAC;AACd,KAAI,CAAC,CAAC,IAAI,GAAG,CAAC;;AAEd,KAAI,EAAE,CAAC,IAAI,GAAG,EAAE;AAChB,KAAI,EAAE,CAAC,IAAI,GAAG,EAAE;;AAEhB,KAAI,EAAE,CAAC,IAAI,GAAG,EAAE;AAChB,KAAI,EAAE,CAAC,IAAI,GAAG,EAAE;;AAEhB,KAAI,EAAE,CAAC,IAAI,GAAG,EAAE;AAChB,KAAI,EAAE,CAAC,IAAI,GAAG,EAAE;;AAEhB,KAAI,OAAO,EAAE;AACb,CAAA;;AAEA;CACA,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;KAC/B,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;KAEzB,IAAI,CAAC,IAAI,EAAE;AACf,SAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;AAClB,SAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;;AAElB,KAAA,CAAK,MAAM;AACX,SAAQ,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;AAC1B,SAAQ,CAAC,CAAC,IAAI,GAAG,IAAI;AACrB,SAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;AAC1B,SAAQ,IAAI,CAAC,IAAI,GAAG,CAAC;AACrB,KAAA;AACA,KAAI,OAAO,CAAC;AACZ,CAAA;;CAEA,SAAS,UAAU,CAAC,CAAC,EAAE;KACnB,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;KACpB,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI;;AAExB,KAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;AACxC,KAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK;AACxC,CAAA;;AAEA,CAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACvB;AACA,KAAI,IAAI,CAAC,CAAC,GAAG,CAAC;;AAEd;AACA,KAAI,IAAI,CAAC,CAAC,GAAG,CAAC;AACd,KAAI,IAAI,CAAC,CAAC,GAAG,CAAC;;AAEd;AACA,KAAI,IAAI,CAAC,IAAI,GAAG,IAAI;AACpB,KAAI,IAAI,CAAC,IAAI,GAAG,IAAI;;AAEpB;AACA,KAAI,IAAI,CAAC,CAAC,GAAG,CAAC;;AAEd;AACA,KAAI,IAAI,CAAC,KAAK,GAAG,IAAI;AACrB,KAAI,IAAI,CAAC,KAAK,GAAG,IAAI;;AAErB;AACA,KAAI,IAAI,CAAC,OAAO,GAAG,KAAK;AACxB,CAAA;;AAEA;AACA;CACAA,QAAM,CAAC,SAAS,GAAG,UAAU,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,SAAS,EAAE;AAChE,KAAI,IAAI,QAAQ,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM;AACpD,KAAI,IAAI,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;;AAEhE,KAAI,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;KAC9D,IAAI,QAAQ,EAAE;AAClB,SAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;aACpD,IAAI,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG;aAChC,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM;AAC1E,aAAY,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACtE,SAAA;AACA,KAAA;;KAEI,IAAI,aAAa,GAAG,CAAC;AACzB,KAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;SACtC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG;SAC1B,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;SAC9B,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG;AACtC,SAAQ,aAAa,IAAI,IAAI,CAAC,GAAG;aACrB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACjD,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9D,KAAA;;KAEI,OAAO,WAAW,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,GAAG,CAAC;SAC/C,IAAI,CAAC,GAAG,CAAC,CAAC,aAAa,GAAG,WAAW,IAAI,WAAW,CAAC;CAC7D,CAAC;;CAED,SAAS,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;KACvC,IAAI,GAAG,GAAG,CAAC;AACf,KAAI,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE;SAClD,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACxD,CAAC,GAAG,CAAC;AACb,KAAA;AACA,KAAI,OAAO,GAAG;AACd,CAAA;;AAEA;AACA,CAAAA,QAAM,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE;KAC7B,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM;AAC/B,SAAQ,MAAM,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC;SACnD,SAAS,GAAG,CAAC;;AAErB,KAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,SAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACjD,aAAY,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,SAAA;AACA,SAAQ,IAAI,CAAC,GAAG,CAAC,EAAE;aACP,SAAS,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AAC3C,aAAY,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;AACxC,SAAA;AACA,KAAA;AACA,KAAI,OAAO,MAAM;CACjB,CAAC;;;;;;ACxqBc,kBAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9B,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG;AAClD;;ACAe,iBAAQ,CAAC,OAAO,EAAE;AACjC,EAAE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAClE,EAAE,OAAO;AACT,IAAI,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;AACjC,MAAM,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC;AAC5B,MAAM,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM;AACnC,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;AAC/B,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,CAAC;AAChD,aAAa,EAAE,GAAG,GAAG;AACrB,MAAM;AACN,MAAM,OAAO,EAAE;AACf,IAAI,CAAC;AACL,IAAI,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;AAClC,MAAM,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC;AAC5B,MAAM,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM;AACnC,MAAM,OAAO,EAAE,GAAG,EAAE,EAAE;AACtB,QAAQ,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC;AAC/B,QAAQ,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,GAAG;AAC5C,aAAa,EAAE,GAAG,GAAG,GAAG,CAAC;AACzB,MAAM;AACN,MAAM,OAAO,EAAE;AACf,IAAI;AACJ,GAAG;AACH;;AAEA,SAAS,mBAAmB,CAAC,CAAC,EAAE;AAChC,EAAE,OAAO,SAAS,CAAC,EAAE,CAAC,EAAE;AACxB,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B,EAAE,CAAC;AACH;;AC7BsB,QAAQ,CAAC,SAAS;;ACIxC,MAAM,UAAA,GACJ,6EAAA;AACF,MAAM,UAAA,GACJ,sNAAA;AAGF,MAAM,YAAY,EAAE,KAAA,EAAO,QAAQ,MAAA,EAAQ,MAAA,EAAQ,SAAS,OAAA,EAAQ;AAIpE,MAAM,WAAA,GAAc,kBAAA;AA8BpB,SAAS,SAAS,EAAE,KAAA,EAAO,KAAA,EAAO,YAAA,GAAe,OAAM,EAAkB;AACvE,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,CAAC,CAAA;AAC5C,EAAA,MAAM,QAAA,GAAW,eAAe,CAAC,CAAA;AAEjC,EAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,MAAM,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,EAAG,CAAA,KAAM,CAAC,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAClE,EAAA,MAAM,IAAA,GAAO,YAAA,CAAa,QAAA,EAAU,YAAA,EAAc,KAAA,EAAO;AAAA,IACvD,KAAA,EAAO,CAAC,CAAA,EAAG,CAAA,KAAM,WAAA,CAAY,GAAG,CAAA,EAAG,EAAE,gBAAA,EAAkB,CAAA,EAAG;AAAA,GAC3D,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,SAAA,GAAY,OAAA,CAAQ,QAAA,EAAU,SAAA,EAAW;AAAA,MAC7C,QAAA,EAAU,GAAA;AAAA,MACV,IAAA,EAAM,CAAC,GAAA,EAAK,CAAA,EAAG,MAAM,CAAC,CAAA;AAAA,MACtB,KAAA;AAAA,MACA,YAAY,MAAM;AAChB,QAAA,IAAI,SAAA,KAAc,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AAClC,UAAA,QAAA,CAAS,IAAI,CAAC,CAAA;AACd,UAAA,YAAA,CAAa,CAAC,CAAA;AAAA,QAChB,CAAA,MAAO;AACL,UAAA,YAAA,CAAa,YAAY,CAAC,CAAA;AAAA,QAC5B;AAAA,MACF;AAAA,KACD,CAAA;AACD,IAAA,OAAO,MAAM;AACX,MAAA,SAAA,CAAU,IAAA,EAAK;AAAA,IACjB,CAAA;AAAA,EACF,GAAG,CAAC,SAAA,EAAW,MAAM,MAAA,EAAQ,QAAA,EAAU,KAAK,CAAC,CAAA;AAE7C,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA,CAAO,IAAA;AAAA,IAAP;AAAA,MACC,IAAA,EAAM,YAAA,GAAe,cAAA,GAAiB,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAA,CAAA;AAAA,MACzD,CAAA,EAAG;AAAA;AAAA,GACL;AAEJ;AA+BA,MAAM,yBAAA,GAA4B,IAAA;AAAA,EAChC,CAAC;AAAA,IACC,SAAAC,QAAAA,GAAU,KAAA;AAAA,IACV,KAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA,GAAe,KAAA;AAAA,IACf,IAAA,GAAO;AAAA,GACT,KAAsC;AACpC,IAAA,MAAM,IAAA,GAAO,YAAA,GAAe,cAAA,GAAiB,CAAA,KAAA,EAAQ,WAAW,CAAA,CAAA,CAAA;AAChE,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,QAAA,EAAS;AAE1B,IAAA,MAAM,WAAA,GAAc,CAAC,YAAA,oBACnB,GAAA,CAAC,MAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,WAAA;AAAA,QACJ,EAAA,EAAG,QAAA;AAAA,QACH,EAAA,EAAG,QAAA;AAAA,QACH,EAAA,EAAG,SAAA;AAAA,QACH,EAAA,EAAG,QAAA;AAAA,QACH,aAAA,EAAc,mBAAA;AAAA,QAEd,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,IAAA,KAAS,MAAA,GAAS,SAAA,GAAY,SAAA;AAAA,cACzC,KAAA,EAAO;AAAA,gBACL,SAAA,EAAW,IAAA,KAAS,MAAA,GAAS,SAAA,GAAY,SAAA;AAAA,gBACzC,WAAA,EAAa;AAAA;AACf;AAAA,WACF;AAAA,0BACA,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,MAAA,EAAO,GAAA;AAAA,cACP,SAAA,EAAW,IAAA,KAAS,MAAA,GAAS,SAAA,GAAY,SAAA;AAAA,cACzC,KAAA,EAAO;AAAA,gBACL,SAAA,EAAW,IAAA,KAAS,MAAA,GAAS,SAAA,GAAY,SAAA;AAAA,gBACzC,WAAA,EAAa;AAAA;AACf;AAAA;AACF;AAAA;AAAA,KACF,EACF,CAAA;AAGF,IAAA,IAAI,CAACA,QAAAA,EAAS;AACZ,MAAA,4BACG,KAAA,EAAA,EAAI,SAAA,EAAsB,KAAA,EAAO,SAAA,EAAW,SAAQ,WAAA,EAClD,QAAA,EAAA;AAAA,QAAA,WAAA;AAAA,wBACD,GAAA,CAAC,MAAA,EAAA,EAAK,IAAA,EAAY,CAAA,EAAG,UAAA,EAAY;AAAA,OAAA,EACnC,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,MAAA,CAAO,GAAA;AAAA,MAAP;AAAA,QACC,SAAA;AAAA,QACA,KAAA,EAAO,SAAA;AAAA,QACP,OAAA,EAAQ,WAAA;AAAA,QACR,SAAS,IAAA,GAAO,EAAE,MAAA,EAAQ,GAAA,KAAQ,EAAC;AAAA,QACnC,UAAA,EAAY;AAAA,UACV,QAAA,EAAU,CAAA;AAAA,UACV,IAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ,CAAA;AAAA,UACR,UAAA,EAAY,MAAA;AAAA,UACZ,WAAA,EAAa,GAAA;AAAA,UACb;AAAA,SACF;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,WAAA;AAAA,0BACD,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO,CAAC,UAAA,EAAY,UAAA,EAAY,UAAU,CAAA;AAAA,cAC1C,KAAA;AAAA,cACA;AAAA;AAAA;AACF;AAAA;AAAA,KACF;AAAA,EAEJ;AACF,CAAA;AAEA,yBAAA,CAA0B,WAAA,GAAc,2BAAA;AA+BjC,MAAM,qBAAqB,CAAC;AAAA,EACjC,SAAAA,QAAAA,GAAU,KAAA;AAAA,EACV,IAAA,GAAO,EAAA;AAAA,EACP,YAAA,GAAe,KAAA;AAAA,EACf,IAAA,GAAO;AACT,CAAA,KAA+B;AAC7B,EAAA,MAAM,EAAE,oBAAA,EAAqB,GAAI,uBAAA,EAAwB;AACzD,EAAA,MAAM,aAAA,GAAgBA,YAAW,CAAC,oBAAA;AAClC,EAAA,MAAM,eAAe,IAAA,GAAO,IAAA;AAC5B,EAAA,MAAM,YAAA,GAAgB,OAAO,CAAA,GAAK,EAAA;AAElC,EAAA,MAAM,cAAA,GAAiB,OAAA;AAAA,IACrB,OAAO,EAAE,QAAA,EAAU,YAAqB,KAAA,EAAO,IAAA,EAAM,QAAQ,IAAA,EAAK,CAAA;AAAA,IAClE,CAAC,IAAI;AAAA,GACP;AACA,EAAA,MAAM,cAAA,GAAiB,OAAA;AAAA,IACrB,OAAO;AAAA,MACL,QAAA,EAAU,UAAA;AAAA,MACV,QAAQ,IAAA,GAAO,EAAA;AAAA,MACf,MAAM,IAAA,GAAO,EAAA;AAAA,MACb,KAAA,EAAO,YAAA;AAAA,MACP,MAAA,EAAQ;AAAA,KACV,CAAA;AAAA,IACA,CAAC,cAAc,IAAI;AAAA,GACrB;AACA,EAAA,MAAM,cAAA,GAAiB,OAAA;AAAA,IACrB,OAAO;AAAA,MACL,QAAA,EAAU,UAAA;AAAA,MACV,KAAK,IAAA,GAAO,EAAA;AAAA,MACZ,OAAO,IAAA,GAAO,EAAA;AAAA,MACd,KAAA,EAAO,YAAA;AAAA,MACP,MAAA,EAAQ;AAAA,KACV,CAAA;AAAA,IACA,CAAC,cAAc,IAAI;AAAA,GACrB;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,cAAA,EAAgB,YAAS,uBAAA,EACnC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,OAAO,cAAA,EACV,QAAA,kBAAA,GAAA;AAAA,MAAC,yBAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,aAAA;AAAA,QACT,KAAA,EAAO,IAAA;AAAA,QACP,YAAA;AAAA,QACA;AAAA;AAAA,KACF,EACF,CAAA;AAAA,oBACA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,cAAA,EACV,QAAA,kBAAA,GAAA;AAAA,MAAC,yBAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,aAAA;AAAA,QACT,YAAA;AAAA,QACA;AAAA;AAAA,KACF,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;;AChRA,MAAM,SAAS,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,+bAA+b,EAAE,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,uKAAuK,EAAE,CAAC,CAAC;;ACAz3B,MAAM,SAAS,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,mbAAmb,EAAE,CAAC,CAAC;;ACAhpB,MAAM,SAAS,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,kTAAkT,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,2KAA2K,EAAE,CAAC,CAAC;;ACA1xB,MAAM,QAAQ,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,oVAAoV,EAAE,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,uTAAuT,EAAE,CAAC,CAAC;;ACA75B,MAAM,WAAW,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE,gaAAga,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,2KAA2K,EAAE,CAAC,CAAC;;ACan4B,MAAM,WAAA,GAGT;AAAA,EACF,IAAA,EAAMC,SAAA;AAAA,EACN,IAAA,EAAMC,SAAA;AAAA,EACN,IAAA,EAAMC,SAAA;AAAA,EACN,GAAA,EAAKC,QAAA;AAAA,EACL,MAAA,EAAQC;AACV,CAAA;AAOO,MAAM,oBAAA,GAAyD;AAAA,EACpE,MAAA,EAAQ,EAAA;AAAA,EACR,KAAA,EAAO,EAAA;AAAA,EACP,MAAA,EAAQ,EAAA;AAAA,EACR,KAAA,EAAO;AACT,CAAA;AAEO,SAAS,mBACd,IAAA,EAKS;AACT,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,SAAS,QAAA,EAAU;AAC5B,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,QAAA,IAAY,IAAA;AACrB;AAEO,SAAS,wBACd,MAAA,EACS;AACT,EAAA,OAAO,MAAA,KAAW,QAAQ,MAAA,KAAW,MAAA;AACvC;;ACiDO,MAAM,MAAA,GAAS,UAAA;AAAA,EACpB,CAAC,OAAoB,GAAA,KAAgC;AACnD,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AAEjE,IAAA,MAAM;AAAA,MACJ,MAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA,GAAa,WAAA;AAAA,MACb,IAAA,GAAO,QAAA;AAAA,MACP,IAAA;AAAA,MACA,OAAA,GAAU,KAAA;AAAA,MACV,QAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA,GAAO,QAAA;AAAA,MACP,YAAA;AAAA,MACA,YAAA;AAAA,MACA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,cAAA;AAEJ,IAAA,MAAM,IAAA,GAAO,CAAC,CAAC,MAAA;AACf,IAAA,MAAM,aAAa,CAAC,QAAA;AAEpB,IAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,MAAA,IAAI,UAAA,EAAY;AACd,QAAA,QAAA;AAAA,UACE;AAAA,SACF;AAAA,MACF,CAAA,MAAA,IAAW,kBAAA,CAAmB,IAAI,CAAA,EAAG;AACnC,QAAA,QAAA;AAAA,UACE;AAAA,SACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,QAAA,EAAU,gBAAA,CAAiB,KAAA,CAAM,QAAQ,CAAA;AAAA,MACzC,UAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,QAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,KAAK,CAAA;AAChD,IAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,KAAK,CAAA;AAChD,IAAA,MAAM,aAAa,SAAA,IAAa,SAAA;AAEhC,IAAA,MAAM,mBAAA,GACJ,UAAA,KAAe,WAAA,IAAe,UAAA,KAAe,OAAA;AAE/C,IAAA,MAAM,qBAAA,GAAwB,YAAY,MAAM;AAC9C,MAAA,IAAI,OAAO,IAAA,KAAS,QAAA,IAAY,IAAA,KAAS,IAAA,IAAQ,YAAY,IAAA,EAAM;AACjE,QAAA,uBACE,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,OAAO,MAAM,CAAA;AAAA,YACxB,OAAA,EAAO,IAAA;AAAA,YACP,aAAA,EAAW,IAAA;AAAA,YACX,KAAK,IAAA,CAAK;AAAA;AAAA,SACZ;AAAA,MAEJ;AACA,MAAA,IAAI,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACpC,QAAA,uBACE,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,OAAO,MAAM,CAAA;AAAA,YACxB,OAAA,EAAO,IAAA;AAAA,YACP,aAAA,EAAW,IAAA;AAAA,YACX,GAAA,EAAK,IAAA;AAAA,YACL,IAAA,EAAM,CAAC,QAAA,IAAY,CAAC,KAAK,QAAA,CAAS,OAAO,IAAI,OAAA,GAAU;AAAA;AAAA,SACzD;AAAA,MAEJ;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA,EAAG,CAAC,IAAA,EAAM,QAAA,EAAU,IAAI,CAAC,CAAA;AAEzB,IAAA,MAAM,eAAA,GAAkB,YAAY,MAAM;AACxC,MAAA,IAAI,uBAAA,CAAwB,MAAM,CAAA,EAAG;AACnC,QAAA,uBACE,GAAA;AAAA,UAAC,kBAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,UAAA;AAAA,YACT,YAAA,EAAc,mBAAA;AAAA,YACd,IAAA,EAAM,UAAA,GAAa,oBAAA,CAAqB,IAAI,CAAA,GAAI,MAAA;AAAA,YAChD,IAAA,EAAI;AAAA;AAAA,SACN;AAAA,MAEJ;AACA,MAAA,MAAM,OAAA,GAAU,YAAY,MAAqC,CAAA;AACjE,MAAA,uBACE,GAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,OAAO,MAAM,CAAA;AAAA,UACxB,OAAA,EAAO,IAAA;AAAA,UACP,aAAA,EAAW,IAAA;AAAA,UACX,UAAA,EAAS,cAAA;AAAA,UACT,GAAA,EAAK,OAAA;AAAA,UACL,MAAM,UAAA,IAAc,CAAC,KAAK,QAAA,CAAS,OAAO,IAAI,OAAA,GAAU;AAAA;AAAA,OAC1D;AAAA,IAEJ,GAAG,CAAC,MAAA,EAAQ,YAAY,mBAAA,EAAqB,UAAA,EAAY,IAAI,CAAC,CAAA;AAE9D,IAAA,MAAM,cAAA,GAAiB,QAAQ,MAAM;AACnC,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,uBACE,GAAA,CAAC,WAAQ,OAAA,EAAO,IAAA,EAAC,MAAK,OAAA,EAAQ,SAAA,EAAW,MAAA,CAAO,iBAAiB,CAAA,EAAG,CAAA;AAAA,MAExE;AACA,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,OAAO,eAAA,EAAgB;AAAA,MACzB;AACA,MAAA,OAAO,qBAAA,EAAsB;AAAA,IAC/B,GAAG,CAAC,IAAA,EAAM,OAAA,EAAS,eAAA,EAAiB,qBAAqB,CAAC,CAAA;AAE1D,IAAA,MAAM,aAAA,GACJ,CAAC,UAAA,IAAc,OAAO,SAAS,QAAA,IAAY,OAAA,IAAW,uBACpD,GAAA,CAAC,IAAA,EAAA,EAAK,WAAW,MAAA,CAAO,MAAM,GAAG,OAAA,EAAO,IAAA,EAAC,eAAW,IAAA,EAAC,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,CAAA,GACpE,IAAA;AAEN,IAAA,MAAM,gBAAA,GAAmB,EAAA,CAAG,SAAA,EAAW,MAAA,CAAO,QAAQ,CAAA,EAAG;AAAA,MACvD,CAAC,MAAA,CAAO,oBAAoB,CAAC,GAAG,UAAA,KAAe,SAAA;AAAA,MAC/C,CAAC,MAAA,CAAO,sBAAsB,CAAC,GAAG,UAAA,KAAe,WAAA;AAAA,MACjD,CAAC,MAAA,CAAO,kBAAkB,CAAC,GAAG,UAAA,KAAe,OAAA;AAAA,MAC7C,CAAC,MAAA,CAAO,kBAAkB,CAAC,GAAG,UAAA,KAAe,kBAAA;AAAA,MAC7C,CAAC,MAAA,CAAO,gBAAgB,CAAC,GAAG,UAAA,KAAe,QAAA;AAAA,MAC3C,CAAC,MAAA,CAAO,aAAa,CAAC,GAAG,IAAA,KAAS,QAAA;AAAA,MAClC,CAAC,MAAA,CAAO,YAAY,CAAC,GAAG,IAAA,KAAS,OAAA;AAAA,MACjC,CAAC,MAAA,CAAO,aAAa,CAAC,GAAG,IAAA,KAAS,QAAA;AAAA,MAClC,CAAC,MAAA,CAAO,YAAY,CAAC,GAAG,IAAA,KAAS,OAAA;AAAA,MACjC,CAAC,MAAA,CAAO,WAAW,CAAC,GAAG,UAAA;AAAA,MACvB,CAAC,MAAA,CAAO,SAAS,CAAC,GAAG;AAAA,KACtB,CAAA;AAED,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,gBAAA,GAAmB,WAAA;AAAA,MACvB,CAAC,CAAA,KAA2C;AAC1C,QAAA,YAAA,CAAa,IAAI,CAAA;AACjB,QAAA,YAAA,GAAe,CAAC,CAAA;AAAA,MAClB,CAAA;AAAA,MACA,CAAC,YAAY;AAAA,KACf;AAEA,IAAA,MAAM,gBAAA,GAAmB,WAAA;AAAA,MACvB,CAAC,CAAA,KAA2C;AAC1C,QAAA,YAAA,CAAa,KAAK,CAAA;AAClB,QAAA,YAAA,GAAe,CAAC,CAAA;AAAA,MAClB,CAAA;AAAA,MACA,CAAC,YAAY;AAAA,KACf;AAEA,IAAA,MAAM,WAAA,GAAc,WAAA;AAAA,MAClB,CAAC,CAAA,KAA2C;AAC1C,QAAA,YAAA,CAAa,IAAI,CAAA;AACjB,QAAA,OAAA,GAAU,CAAC,CAAA;AAAA,MACb,CAAA;AAAA,MACA,CAAC,OAAO;AAAA,KACV;AAEA,IAAA,MAAM,UAAA,GAAa,WAAA;AAAA,MACjB,CAAC,CAAA,KAA2C;AAC1C,QAAA,YAAA,CAAa,KAAK,CAAA;AAClB,QAAA,MAAA,GAAS,CAAC,CAAA;AAAA,MACZ,CAAA;AAAA,MACA,CAAC,MAAM;AAAA,KACT;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,SAAA,EAAW,gBAAA;AAAA,QACX,IAAA;AAAA,QACA,UAAU,QAAA,IAAY,OAAA;AAAA,QACtB,WAAA,EAAW,UAAU,IAAA,GAAO,MAAA;AAAA,QAC5B,UAAA,EAAS,QAAA;AAAA,QACT,KAAA,EAAO,aAAA;AAAA,QACP,GAAA;AAAA,QACA,YAAA,EAAc,gBAAA;AAAA,QACd,YAAA,EAAc,gBAAA;AAAA,QACd,OAAA,EAAS,WAAA;AAAA,QACT,MAAA,EAAQ,UAAA;AAAA,QACP,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,cAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;AAEA,MAAA,CAAO,WAAA,GAAc,QAAA;;;;","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,38,39,40,41,42,43,44,45,46,47]}
|